@toptal/picasso 17.4.1 → 18.3.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/Calendar/Calendar.d.ts +23 -0
- package/Calendar/Calendar.js +86 -0
- package/Calendar/Calendar.js.map +1 -0
- package/Calendar/index.d.ts +2 -0
- package/Calendar/index.js +3 -0
- package/Calendar/index.js.map +1 -0
- package/Calendar/styles.d.ts +3 -0
- package/Calendar/styles.js +97 -0
- package/Calendar/styles.js.map +1 -0
- package/Calendar/types.d.ts +36 -0
- package/Calendar/types.js +2 -0
- package/Calendar/types.js.map +1 -0
- package/DatePicker/DatePicker.d.ts +62 -0
- package/DatePicker/DatePicker.js +198 -0
- package/DatePicker/DatePicker.js.map +1 -0
- package/DatePicker/constants.d.ts +12 -0
- package/DatePicker/constants.js +13 -0
- package/DatePicker/constants.js.map +1 -0
- package/DatePicker/index.d.ts +5 -0
- package/DatePicker/index.js +4 -0
- package/DatePicker/index.js.map +1 -0
- package/DatePicker/styles.d.ts +2 -0
- package/DatePicker/styles.js +7 -0
- package/DatePicker/styles.js.map +1 -0
- package/DatePicker/types.d.ts +13 -0
- package/DatePicker/types.js +2 -0
- package/DatePicker/types.js.map +1 -0
- package/DatePicker/utils.d.ts +12 -0
- package/DatePicker/utils.js +102 -0
- package/DatePicker/utils.js.map +1 -0
- package/Drawer/Drawer.d.ts +22 -0
- package/Drawer/Drawer.js +55 -0
- package/Drawer/Drawer.js.map +1 -0
- package/Drawer/index.d.ts +4 -0
- package/Drawer/index.js +2 -0
- package/Drawer/index.js.map +1 -0
- package/Drawer/styles.d.ts +2 -0
- package/Drawer/styles.js +40 -0
- package/Drawer/styles.js.map +1 -0
- package/DrawerTitle/DrawerTitle.d.ts +9 -0
- package/DrawerTitle/DrawerTitle.js +20 -0
- package/DrawerTitle/DrawerTitle.js.map +1 -0
- package/DrawerTitle/index.d.ts +1 -0
- package/DrawerTitle/index.js +2 -0
- package/DrawerTitle/index.js.map +1 -0
- package/DrawerTitle/styles.d.ts +3 -0
- package/DrawerTitle/styles.js +11 -0
- package/DrawerTitle/styles.js.map +1 -0
- package/Dropzone/Dropzone.d.ts +37 -0
- package/Dropzone/Dropzone.js +56 -0
- package/Dropzone/Dropzone.js.map +1 -0
- package/Dropzone/index.d.ts +5 -0
- package/Dropzone/index.js +3 -0
- package/Dropzone/index.js.map +1 -0
- package/Dropzone/styles.d.ts +3 -0
- package/Dropzone/styles.js +42 -0
- package/Dropzone/styles.js.map +1 -0
- package/Dropzone/types.d.ts +43 -0
- package/Dropzone/types.js +7 -0
- package/Dropzone/types.js.map +1 -0
- package/EmptyState/EmptyState.d.ts +5 -0
- package/EmptyState/EmptyState.js +7 -0
- package/EmptyState/EmptyState.js.map +1 -0
- package/EmptyState/index.d.ts +1 -0
- package/EmptyState/index.js +2 -0
- package/EmptyState/index.js.map +1 -0
- package/EmptyStateCollection/EmptyStateCollection.d.ts +7 -0
- package/EmptyStateCollection/EmptyStateCollection.js +36 -0
- package/EmptyStateCollection/EmptyStateCollection.js.map +1 -0
- package/EmptyStateCollection/index.d.ts +1 -0
- package/EmptyStateCollection/index.js +2 -0
- package/EmptyStateCollection/index.js.map +1 -0
- package/EmptyStateCollection/styles.d.ts +2 -0
- package/EmptyStateCollection/styles.js +9 -0
- package/EmptyStateCollection/styles.js.map +1 -0
- package/EmptyStatePage/EmptyStatePage.d.ts +9 -0
- package/EmptyStatePage/EmptyStatePage.js +31 -0
- package/EmptyStatePage/EmptyStatePage.js.map +1 -0
- package/EmptyStatePage/index.d.ts +1 -0
- package/EmptyStatePage/index.js +2 -0
- package/EmptyStatePage/index.js.map +1 -0
- package/EmptyStatePage/styles.d.ts +2 -0
- package/EmptyStatePage/styles.js +8 -0
- package/EmptyStatePage/styles.js.map +1 -0
- package/FormLabel/FormLabel.d.ts +3 -1
- package/FormLabel/FormLabel.js +6 -5
- package/FormLabel/FormLabel.js.map +1 -1
- package/FormLabel/styles.d.ts +1 -1
- package/FormLabel/styles.js +8 -6
- package/FormLabel/styles.js.map +1 -1
- package/Note/Note.d.ts +12 -0
- package/Note/Note.js +31 -0
- package/Note/Note.js.map +1 -0
- package/Note/index.d.ts +4 -0
- package/Note/index.js +2 -0
- package/Note/index.js.map +1 -0
- package/Note/styles.d.ts +3 -0
- package/Note/styles.js +23 -0
- package/Note/styles.js.map +1 -0
- package/NoteContent/NoteContent.d.ts +7 -0
- package/NoteContent/NoteContent.js +21 -0
- package/NoteContent/NoteContent.js.map +1 -0
- package/NoteContent/index.d.ts +1 -0
- package/NoteContent/index.js +2 -0
- package/NoteContent/index.js.map +1 -0
- package/NoteSubtitle/NoteSubtitle.d.ts +7 -0
- package/NoteSubtitle/NoteSubtitle.js +23 -0
- package/NoteSubtitle/NoteSubtitle.js.map +1 -0
- package/NoteSubtitle/index.d.ts +1 -0
- package/NoteSubtitle/index.js +2 -0
- package/NoteSubtitle/index.js.map +1 -0
- package/NoteTitle/NoteTitle.d.ts +7 -0
- package/NoteTitle/NoteTitle.js +27 -0
- package/NoteTitle/NoteTitle.js.map +1 -0
- package/NoteTitle/index.d.ts +1 -0
- package/NoteTitle/index.js +2 -0
- package/NoteTitle/index.js.map +1 -0
- package/NoteTitle/styles.d.ts +2 -0
- package/NoteTitle/styles.js +7 -0
- package/NoteTitle/styles.js.map +1 -0
- package/OverviewBlock/OverviewBlock.d.ts +25 -0
- package/OverviewBlock/OverviewBlock.js +54 -0
- package/OverviewBlock/OverviewBlock.js.map +1 -0
- package/OverviewBlock/index.d.ts +4 -0
- package/OverviewBlock/index.js +2 -0
- package/OverviewBlock/index.js.map +1 -0
- package/OverviewBlock/styles.d.ts +3 -0
- package/OverviewBlock/styles.js +42 -0
- package/OverviewBlock/styles.js.map +1 -0
- package/OverviewBlockGroup/OverviewBlockGroup.d.ts +10 -0
- package/OverviewBlockGroup/OverviewBlockGroup.js +36 -0
- package/OverviewBlockGroup/OverviewBlockGroup.js.map +1 -0
- package/OverviewBlockGroup/OverviewBlockGroupContext.d.ts +8 -0
- package/OverviewBlockGroup/OverviewBlockGroupContext.js +10 -0
- package/OverviewBlockGroup/OverviewBlockGroupContext.js.map +1 -0
- package/OverviewBlockGroup/index.d.ts +1 -0
- package/OverviewBlockGroup/index.js +2 -0
- package/OverviewBlockGroup/index.js.map +1 -0
- package/OverviewBlockGroup/settings.d.ts +2 -0
- package/OverviewBlockGroup/settings.js +2 -0
- package/OverviewBlockGroup/settings.js.map +1 -0
- package/OverviewBlockRow/OverviewBlockRow.d.ts +4 -0
- package/OverviewBlockRow/OverviewBlockRow.js +26 -0
- package/OverviewBlockRow/OverviewBlockRow.js.map +1 -0
- package/OverviewBlockRow/index.d.ts +1 -0
- package/OverviewBlockRow/index.js +2 -0
- package/OverviewBlockRow/index.js.map +1 -0
- package/OverviewBlockRow/styles.d.ts +3 -0
- package/OverviewBlockRow/styles.js +26 -0
- package/OverviewBlockRow/styles.js.map +1 -0
- package/PageFooter/PageFooter.d.ts +2 -0
- package/PageFooter/PageFooter.js +5 -4
- package/PageFooter/PageFooter.js.map +1 -1
- package/PageTopBar/PageTopBar.d.ts +2 -0
- package/PageTopBar/PageTopBar.js +6 -3
- package/PageTopBar/PageTopBar.js.map +1 -1
- package/Section/Section.d.ts +29 -0
- package/Section/Section.js +60 -0
- package/Section/Section.js.map +1 -0
- package/Section/index.d.ts +4 -0
- package/Section/index.js +2 -0
- package/Section/index.js.map +1 -0
- package/Section/styles.d.ts +3 -0
- package/Section/styles.js +62 -0
- package/Section/styles.js.map +1 -0
- package/Timeline/Timeline.d.ts +23 -0
- package/Timeline/Timeline.js +9 -0
- package/Timeline/Timeline.js.map +1 -0
- package/Timeline/index.d.ts +4 -0
- package/Timeline/index.js +2 -0
- package/Timeline/index.js.map +1 -0
- package/TimelineRow/TimelineRow.d.ts +24 -0
- package/TimelineRow/TimelineRow.js +27 -0
- package/TimelineRow/TimelineRow.js.map +1 -0
- package/TimelineRow/index.d.ts +4 -0
- package/TimelineRow/index.js +2 -0
- package/TimelineRow/index.js.map +1 -0
- package/TimelineRow/styles.d.ts +3 -0
- package/TimelineRow/styles.js +45 -0
- package/TimelineRow/styles.js.map +1 -0
- package/TypographyOverflow/TypographyOverflow.d.ts +26 -0
- package/TypographyOverflow/TypographyOverflow.js +79 -0
- package/TypographyOverflow/TypographyOverflow.js.map +1 -0
- package/TypographyOverflow/index.d.ts +4 -0
- package/TypographyOverflow/index.js +2 -0
- package/TypographyOverflow/index.js.map +1 -0
- package/TypographyOverflow/styles.d.ts +2 -0
- package/TypographyOverflow/styles.js +28 -0
- package/TypographyOverflow/styles.js.map +1 -0
- package/index.d.ts +19 -0
- package/index.js +10 -0
- package/index.js.map +1 -1
- package/package.json +7 -2
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
import { BaseProps } from '@toptal/picasso-shared';
|
|
3
|
+
import { DayProps } from './types';
|
|
4
|
+
export declare type DateOrDateRangeType = Date | DateRangeType;
|
|
5
|
+
export declare type DateRangeType = [Date, Date];
|
|
6
|
+
export type { DayProps };
|
|
7
|
+
export interface Props extends BaseProps, Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'onBlur'> {
|
|
8
|
+
onChange: (value: DateOrDateRangeType) => void;
|
|
9
|
+
onBlur?: (event: React.FocusEvent<HTMLDivElement>) => void;
|
|
10
|
+
renderDay?: (args: DayProps) => ReactNode;
|
|
11
|
+
minDate?: Date;
|
|
12
|
+
maxDate?: Date;
|
|
13
|
+
range?: boolean;
|
|
14
|
+
value?: DateOrDateRangeType;
|
|
15
|
+
activeMonth?: Date;
|
|
16
|
+
disabledIntervals?: {
|
|
17
|
+
start: Date;
|
|
18
|
+
end: Date;
|
|
19
|
+
}[];
|
|
20
|
+
weekStartsOn?: number;
|
|
21
|
+
}
|
|
22
|
+
export declare const Calendar: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
|
|
23
|
+
export default Calendar;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import React, { forwardRef } from 'react';
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
14
|
+
// @ts-ignore
|
|
15
|
+
import SimpleReactCalendar from 'simple-react-calendar';
|
|
16
|
+
import cx from 'classnames';
|
|
17
|
+
import format from 'date-fns/format';
|
|
18
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
19
|
+
import { ChevronMinor16, BackMinor16 } from '@toptal/picasso/Icon';
|
|
20
|
+
import Button from '../Button';
|
|
21
|
+
import Typography from '../Typography';
|
|
22
|
+
import styles from './styles';
|
|
23
|
+
const getNormalizedValue = (value) => {
|
|
24
|
+
if (!value) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (value instanceof Date) {
|
|
28
|
+
return value;
|
|
29
|
+
}
|
|
30
|
+
const [start, end] = value;
|
|
31
|
+
return { start, end };
|
|
32
|
+
};
|
|
33
|
+
const isDateRange = (value) => {
|
|
34
|
+
return !(value instanceof Date) && Boolean(value.start && value.end);
|
|
35
|
+
};
|
|
36
|
+
const useStyles = makeStyles(styles, { name: 'PicassoCalendar' });
|
|
37
|
+
export const Calendar = forwardRef(function Calendar(props, ref) {
|
|
38
|
+
const classes = useStyles();
|
|
39
|
+
const { range, activeMonth, value, onChange, minDate, maxDate, disabledIntervals, renderDay, weekStartsOn } = props, rest = __rest(props, ["range", "activeMonth", "value", "onChange", "minDate", "maxDate", "disabledIntervals", "renderDay", "weekStartsOn"]);
|
|
40
|
+
const handleChange = (selection) => {
|
|
41
|
+
if (isDateRange(selection)) {
|
|
42
|
+
const { start, end } = selection;
|
|
43
|
+
onChange([start, end]);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
onChange(selection);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
return (React.createElement("div", Object.assign({ ref: ref }, rest, { tabIndex: 0 }),
|
|
50
|
+
React.createElement(SimpleReactCalendar, { selected: getNormalizedValue(value), onSelect: handleChange, customRender: ({ children }) => {
|
|
51
|
+
return React.createElement("div", { className: classes.root }, children);
|
|
52
|
+
}, renderDay: (dayProps) => {
|
|
53
|
+
const { key, isDisabled, isSelected, isSelectable, isToday, isMonthNext, isMonthPrev, isSelectionStart, isSelectionEnd, handleOnClick, handleOnEnter, getDayFormatted, date, ISODate } = dayProps;
|
|
54
|
+
const defaultMarkup = (React.createElement("button", { "data-testid": `day-button-${isSelected ? 'selected' : getDayFormatted(date)}`, "data-simple-react-calendar-day": ISODate, key: key, tabIndex: isDisabled || !isSelectable ? -1 : undefined, className: cx(classes.day, {
|
|
55
|
+
[classes.selected]: isSelected,
|
|
56
|
+
[classes.selectable]: isSelectable,
|
|
57
|
+
[classes.today]: isToday,
|
|
58
|
+
[classes.grayed]: (isMonthPrev || isMonthNext) && !isSelected && !isDisabled,
|
|
59
|
+
[classes.disabled]: isDisabled || !isSelectable,
|
|
60
|
+
[classes.startSelection]: isSelectionStart,
|
|
61
|
+
[classes.endSelection]: isSelectionEnd
|
|
62
|
+
}), onClick: handleOnClick, onMouseEnter: handleOnEnter, value: date.toString(), type: 'button' }, getDayFormatted(date)));
|
|
63
|
+
return renderDay
|
|
64
|
+
? renderDay(Object.assign(Object.assign({}, dayProps), { children: defaultMarkup }))
|
|
65
|
+
: defaultMarkup;
|
|
66
|
+
}, renderMonthHeader: ({ switchMonth, activeMonth: headerActiveMonth }) => {
|
|
67
|
+
return (React.createElement("div", { className: classes.actions },
|
|
68
|
+
React.createElement(Button, { title: 'Previous month', variant: 'secondary', size: 'small', onClick: () => switchMonth(-1) },
|
|
69
|
+
React.createElement(BackMinor16, null)),
|
|
70
|
+
React.createElement(Typography, { variant: 'heading', size: 'medium' }, format(headerActiveMonth, 'MMMM y')),
|
|
71
|
+
React.createElement(Button, { title: 'Next month', variant: 'secondary', size: 'small', onClick: () => switchMonth(1) },
|
|
72
|
+
React.createElement(ChevronMinor16, null))));
|
|
73
|
+
}, renderDaysOfWeek: ({ children }) => {
|
|
74
|
+
return React.createElement("div", { className: classes.weekDays }, children);
|
|
75
|
+
}, renderDayOfWeek: ({ day, key }) => {
|
|
76
|
+
return (React.createElement("div", { key: key, className: classes.weekDay }, day));
|
|
77
|
+
}, renderWeek: ({ children }) => {
|
|
78
|
+
return React.createElement("div", { className: classes.week }, children);
|
|
79
|
+
}, activeMonth: activeMonth, mode: range ? 'range' : 'single', minDate: minDate, maxDate: maxDate, disabledIntervals: disabledIntervals, getNoticeContent: () => null, weekStartsOn: weekStartsOn })));
|
|
80
|
+
});
|
|
81
|
+
Calendar.defaultProps = {
|
|
82
|
+
range: false
|
|
83
|
+
};
|
|
84
|
+
Calendar.displayName = 'Calendar';
|
|
85
|
+
export default Calendar;
|
|
86
|
+
//# sourceMappingURL=Calendar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Calendar.js","sourceRoot":"","sources":["../../src/Calendar/Calendar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Calendar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,cAAc,YAAY,CAAA"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { Theme } from '@material-ui/core/styles';
|
|
2
|
+
declare const _default: ({ palette, shadows }: Theme) => import("@material-ui/styles").StyleRules<{}, "disabled" | "root" | "selected" | "month" | "week" | "day" | "weekDays" | "weekDay" | "actions" | "selectable" | "startSelection" | "endSelection" | "today" | "grayed">;
|
|
3
|
+
export default _default;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { createStyles } from '@material-ui/core/styles';
|
|
2
|
+
import { alpha, rem } from '@toptal/picasso-shared';
|
|
3
|
+
export default ({ palette, shadows }) => createStyles({
|
|
4
|
+
root: {
|
|
5
|
+
padding: '1.875em',
|
|
6
|
+
color: palette.grey.darker,
|
|
7
|
+
display: 'flex',
|
|
8
|
+
flexDirection: 'column',
|
|
9
|
+
flexBasis: '20.5rem',
|
|
10
|
+
maxWidth: '20.5rem',
|
|
11
|
+
boxShadow: shadows[2],
|
|
12
|
+
backgroundColor: palette.common.white
|
|
13
|
+
},
|
|
14
|
+
month: {},
|
|
15
|
+
week: {
|
|
16
|
+
display: 'flex'
|
|
17
|
+
},
|
|
18
|
+
day: {
|
|
19
|
+
height: '2.5rem',
|
|
20
|
+
width: '2.5rem',
|
|
21
|
+
minWidth: '2.5rem',
|
|
22
|
+
verticalAlign: 'middle',
|
|
23
|
+
fontSize: '0.75rem',
|
|
24
|
+
userSelect: 'none',
|
|
25
|
+
display: 'flex',
|
|
26
|
+
alignItems: 'center',
|
|
27
|
+
justifyContent: 'center',
|
|
28
|
+
background: palette.common.white,
|
|
29
|
+
position: 'relative',
|
|
30
|
+
margin: 0,
|
|
31
|
+
padding: 0,
|
|
32
|
+
border: 'none',
|
|
33
|
+
outline: 0
|
|
34
|
+
},
|
|
35
|
+
weekDays: {
|
|
36
|
+
display: 'flex',
|
|
37
|
+
textAlign: 'center',
|
|
38
|
+
fontSize: '0.75em',
|
|
39
|
+
textTransform: 'uppercase',
|
|
40
|
+
color: palette.grey.main2,
|
|
41
|
+
paddingBottom: rem('11px')
|
|
42
|
+
},
|
|
43
|
+
weekDay: {
|
|
44
|
+
flexBasis: '15%'
|
|
45
|
+
},
|
|
46
|
+
actions: {
|
|
47
|
+
display: 'flex',
|
|
48
|
+
justifyContent: 'space-between',
|
|
49
|
+
marginBottom: '1.5rem'
|
|
50
|
+
},
|
|
51
|
+
selected: {
|
|
52
|
+
background: palette.blue.lighter
|
|
53
|
+
},
|
|
54
|
+
selectable: {
|
|
55
|
+
cursor: 'pointer',
|
|
56
|
+
'&:hover, &:focus': {
|
|
57
|
+
backgroundColor: alpha(palette.blue.main, 0.24)
|
|
58
|
+
},
|
|
59
|
+
'&$startSelection:hover, &$endSelection:hover': {
|
|
60
|
+
backgroundColor: palette.blue.main
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
startSelection: {
|
|
64
|
+
backgroundColor: palette.blue.main,
|
|
65
|
+
color: palette.common.white,
|
|
66
|
+
'&$today:after': {
|
|
67
|
+
backgroundColor: palette.common.white
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
endSelection: {
|
|
71
|
+
backgroundColor: palette.blue.main,
|
|
72
|
+
color: palette.common.white,
|
|
73
|
+
'&$today:after': {
|
|
74
|
+
backgroundColor: palette.common.white
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
today: {
|
|
78
|
+
display: 'flex',
|
|
79
|
+
flexDirection: 'column',
|
|
80
|
+
'&:after': {
|
|
81
|
+
content: '""',
|
|
82
|
+
height: '0.25rem',
|
|
83
|
+
width: '0.25rem',
|
|
84
|
+
borderRadius: '50%',
|
|
85
|
+
background: palette.blue.main,
|
|
86
|
+
position: 'absolute',
|
|
87
|
+
bottom: '0.375rem'
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
grayed: {
|
|
91
|
+
color: palette.grey.main2
|
|
92
|
+
},
|
|
93
|
+
disabled: {
|
|
94
|
+
color: palette.grey.main
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/Calendar/styles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface DayProps {
|
|
3
|
+
isDisabled: boolean;
|
|
4
|
+
isSelected: boolean;
|
|
5
|
+
isSelectable: boolean;
|
|
6
|
+
isToday: boolean;
|
|
7
|
+
isMonthNext: boolean;
|
|
8
|
+
isMonthPrev: boolean;
|
|
9
|
+
isSelectionStart: boolean;
|
|
10
|
+
isSelectionEnd: boolean;
|
|
11
|
+
handleOnClick: () => void;
|
|
12
|
+
handleOnEnter: () => void;
|
|
13
|
+
date: Date;
|
|
14
|
+
ISODate: string;
|
|
15
|
+
getDayFormatted: (date: Date) => string;
|
|
16
|
+
key?: string;
|
|
17
|
+
children?: ReactNode;
|
|
18
|
+
}
|
|
19
|
+
export interface MonthHeaderProps {
|
|
20
|
+
switchMonth: (diff: number) => void;
|
|
21
|
+
activeMonth: Date;
|
|
22
|
+
}
|
|
23
|
+
export interface WeekProps {
|
|
24
|
+
children?: ReactNode;
|
|
25
|
+
}
|
|
26
|
+
export interface DayOfWeekProps {
|
|
27
|
+
day: string;
|
|
28
|
+
key: string;
|
|
29
|
+
children?: ReactNode;
|
|
30
|
+
}
|
|
31
|
+
export interface DaysOfWeekProps {
|
|
32
|
+
children?: ReactNode;
|
|
33
|
+
}
|
|
34
|
+
export interface CalendarProps {
|
|
35
|
+
children?: ReactNode;
|
|
36
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/Calendar/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { BaseProps } from '@toptal/picasso-shared';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
import { InputProps } from '../Input';
|
|
4
|
+
import { DayProps } from '../Calendar';
|
|
5
|
+
import { DatePickerValue, DatePickerInputCustomValueParser } from './types';
|
|
6
|
+
export interface Props extends BaseProps, Omit<InputProps, 'value' | 'onSelect' | 'type' | 'multiline' | 'rows' | 'defaultValue' | 'onChange' | 'testIds'> {
|
|
7
|
+
/** Date that will be selected in `DatePicker` */
|
|
8
|
+
value?: DatePickerValue;
|
|
9
|
+
/** Method that will be invoked with selected values */
|
|
10
|
+
onChange: (value: DatePickerValue) => void;
|
|
11
|
+
/** Invoked when user goes away from `DatePicker` input */
|
|
12
|
+
onBlur?: () => void;
|
|
13
|
+
/** Whether calendar supports single date selection or range */
|
|
14
|
+
range?: boolean;
|
|
15
|
+
/** Earliest date available for selection */
|
|
16
|
+
minDate?: Date;
|
|
17
|
+
/** Latest date available for selection */
|
|
18
|
+
maxDate?: Date;
|
|
19
|
+
/** Whether calendar should be closed after date selection. True by default */
|
|
20
|
+
hideOnSelect?: boolean;
|
|
21
|
+
/** Date format that user will see in the input */
|
|
22
|
+
displayDateFormat?: string;
|
|
23
|
+
/** Date range where selection is not allowed */
|
|
24
|
+
disabledIntervals?: {
|
|
25
|
+
start: Date;
|
|
26
|
+
end: Date;
|
|
27
|
+
}[];
|
|
28
|
+
/** Date format that user will see during manual input */
|
|
29
|
+
editDateFormat?: string;
|
|
30
|
+
/** Specify icon which should be rendered inside `DatePicker` */
|
|
31
|
+
icon?: ReactNode;
|
|
32
|
+
/** Specify a value if want to enable browser autofill */
|
|
33
|
+
autoComplete?: string;
|
|
34
|
+
/** Indicate whether `DatePicker`'s input is in error state */
|
|
35
|
+
error?: boolean;
|
|
36
|
+
/** Function to override default markup to show Date */
|
|
37
|
+
renderDay?: (args: DayProps) => ReactNode;
|
|
38
|
+
popperContainer?: HTMLElement;
|
|
39
|
+
/** Index of the first day of the week (0 - Sunday). Default is 1 - Monday */
|
|
40
|
+
weekStartsOn?: number;
|
|
41
|
+
/** IANA timezone to display and edit date(s) */
|
|
42
|
+
timezone?: string;
|
|
43
|
+
/** Custom parser for `DatePicker`'s input value to process custom input value, like, human-readable dates */
|
|
44
|
+
parseInputValue?: DatePickerInputCustomValueParser;
|
|
45
|
+
testIds?: InputProps['testIds'] & {
|
|
46
|
+
calendar?: string;
|
|
47
|
+
input?: string;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export declare const DatePicker: {
|
|
51
|
+
(props: Props): JSX.Element;
|
|
52
|
+
defaultProps: {
|
|
53
|
+
range: boolean;
|
|
54
|
+
hideOnSelect: boolean;
|
|
55
|
+
onBlur: () => void;
|
|
56
|
+
editDateFormat: string;
|
|
57
|
+
displayDateFormat: string;
|
|
58
|
+
autoComplete: string;
|
|
59
|
+
};
|
|
60
|
+
displayName: string;
|
|
61
|
+
};
|
|
62
|
+
export default DatePicker;
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
/* eslint-disable max-lines-per-function, max-lines */
|
|
13
|
+
/* eslint-disable complexity, max-statements */ // Squiggly lines makes code difficult to work with
|
|
14
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
15
|
+
import { Calendar16 } from '@toptal/picasso/Icon';
|
|
16
|
+
import formatDate from 'date-fns/format';
|
|
17
|
+
import React, { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';
|
|
18
|
+
import Popper from '../Popper';
|
|
19
|
+
import Container from '../Container';
|
|
20
|
+
import Input from '../Input';
|
|
21
|
+
import InputAdornment from '../InputAdornment';
|
|
22
|
+
import { noop } from '../utils';
|
|
23
|
+
import Calendar from '../Calendar';
|
|
24
|
+
import { DEFAULT_DATE_PICKER_DISPLAY_DATE_FORMAT, DEFAULT_DATE_PICKER_EDIT_DATE_FORMAT, DEFAULT_POPPER_OPTIONS } from './constants';
|
|
25
|
+
import styles from './styles';
|
|
26
|
+
import { formatDateRange, datePickerParseDateString, timezoneConvert, timezoneFormat, getStartOfTheDayDate } from './utils';
|
|
27
|
+
const EMPTY_INPUT_VALUE = '';
|
|
28
|
+
const useStyles = makeStyles(styles, {
|
|
29
|
+
name: 'PicassoDatePicker'
|
|
30
|
+
});
|
|
31
|
+
export const DatePicker = (props) => {
|
|
32
|
+
const { range, hideOnSelect, displayDateFormat = DEFAULT_DATE_PICKER_DISPLAY_DATE_FORMAT, editDateFormat = DEFAULT_DATE_PICKER_EDIT_DATE_FORMAT, onBlur = noop, onChange, onResetClick, value, width, icon, minDate, maxDate, disabledIntervals, popperContainer, renderDay, weekStartsOn, timezone, size, parseInputValue, testIds } = props, rest = __rest(props, ["range", "hideOnSelect", "displayDateFormat", "editDateFormat", "onBlur", "onChange", "onResetClick", "value", "width", "icon", "minDate", "maxDate", "disabledIntervals", "popperContainer", "renderDay", "weekStartsOn", "timezone", "size", "parseInputValue", "testIds"]);
|
|
33
|
+
const classes = useStyles();
|
|
34
|
+
const inputProps = rest;
|
|
35
|
+
const [calendarIsShown, setCalendarIsShown] = useState(false);
|
|
36
|
+
const [isInputFocused, setIsInputFocused] = useState(false);
|
|
37
|
+
const [inputValue, setInputValue] = useState(EMPTY_INPUT_VALUE);
|
|
38
|
+
const [calendarValue, setCalendarValue] = useState(null);
|
|
39
|
+
const [normalizedMinDate, normalizedMaxDate] = useMemo(() => {
|
|
40
|
+
return [getStartOfTheDayDate(minDate), getStartOfTheDayDate(maxDate)];
|
|
41
|
+
}, [minDate, maxDate]);
|
|
42
|
+
const hideCalendar = () => setCalendarIsShown(false);
|
|
43
|
+
const showCalendar = () => setCalendarIsShown(true);
|
|
44
|
+
const inputRef = useRef(null);
|
|
45
|
+
const popperRef = useRef(null);
|
|
46
|
+
const calendarRef = useRef(null);
|
|
47
|
+
const inputWrapperRef = useRef(null);
|
|
48
|
+
// Active (visible) month of the calendar that required for manual entering of
|
|
49
|
+
// a single date
|
|
50
|
+
const activeMonth = calendarValue instanceof Date ? calendarValue : undefined;
|
|
51
|
+
// Format the input based on its 'focus' state
|
|
52
|
+
const formatInputValue = useCallback((valueToFormat) => {
|
|
53
|
+
return Array.isArray(valueToFormat)
|
|
54
|
+
? formatDateRange(valueToFormat, displayDateFormat)
|
|
55
|
+
: formatDate(valueToFormat, isInputFocused ? editDateFormat : displayDateFormat);
|
|
56
|
+
}, [isInputFocused, editDateFormat, displayDateFormat]);
|
|
57
|
+
const updateInputValue = useCallback(({ preventUpdateOnFocus }) => {
|
|
58
|
+
if (preventUpdateOnFocus && isInputFocused) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
setInputValue(() => {
|
|
62
|
+
if (!value) {
|
|
63
|
+
return EMPTY_INPUT_VALUE;
|
|
64
|
+
}
|
|
65
|
+
return formatInputValue(timezoneConvert(value, timezone));
|
|
66
|
+
});
|
|
67
|
+
}, [value, isInputFocused, timezone, formatInputValue]);
|
|
68
|
+
// Keep the input value in sync with date value update
|
|
69
|
+
// Updating on incoming date value or timezone change
|
|
70
|
+
// Should not update when input is focused to prevent overriding it's value
|
|
71
|
+
useLayoutEffect(() => {
|
|
72
|
+
updateInputValue({ preventUpdateOnFocus: true });
|
|
73
|
+
}, [value, timezone]);
|
|
74
|
+
// Keep the input format in sync with its 'focus' state
|
|
75
|
+
// Updating on input focus state change
|
|
76
|
+
useLayoutEffect(() => {
|
|
77
|
+
updateInputValue({ preventUpdateOnFocus: false });
|
|
78
|
+
}, [isInputFocused]);
|
|
79
|
+
// Keep the calendar in sync with the input value
|
|
80
|
+
useLayoutEffect(() => {
|
|
81
|
+
setCalendarValue(() => {
|
|
82
|
+
if (!value) {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
return timezoneConvert(value, timezone);
|
|
86
|
+
});
|
|
87
|
+
}, [value, timezone]);
|
|
88
|
+
const isInsideDatePicker = (node) => {
|
|
89
|
+
var _a, _b;
|
|
90
|
+
return (((_a = popperRef.current) === null || _a === void 0 ? void 0 : _a.popper.contains(node)) ||
|
|
91
|
+
((_b = inputWrapperRef.current) === null || _b === void 0 ? void 0 : _b.contains(node)));
|
|
92
|
+
};
|
|
93
|
+
const handleBlur = (event) => {
|
|
94
|
+
const isFocusedInsideDatePicker = isInsideDatePicker((event.relatedTarget || document.activeElement));
|
|
95
|
+
if (isFocusedInsideDatePicker) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
hideCalendar();
|
|
99
|
+
onBlur();
|
|
100
|
+
setIsInputFocused(false);
|
|
101
|
+
};
|
|
102
|
+
const handleInputChange = (e) => {
|
|
103
|
+
const nextValue = e.target.value;
|
|
104
|
+
// TODO: change this if manual entering of range is needed
|
|
105
|
+
if (range && nextValue) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
// TODO: add char filtering (only number , `-` or ` ` allowed) in case if `parseInputValue` is not set
|
|
109
|
+
setInputValue(nextValue);
|
|
110
|
+
if (!nextValue) {
|
|
111
|
+
return onChange(null);
|
|
112
|
+
}
|
|
113
|
+
const parsedInputDate = datePickerParseDateString(nextValue, {
|
|
114
|
+
customParser: parseInputValue,
|
|
115
|
+
dateFormat: editDateFormat,
|
|
116
|
+
timezone,
|
|
117
|
+
minDate: normalizedMinDate,
|
|
118
|
+
maxDate: normalizedMaxDate
|
|
119
|
+
});
|
|
120
|
+
if (parsedInputDate) {
|
|
121
|
+
onChange(parsedInputDate);
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
const focus = () => {
|
|
125
|
+
if (inputRef && inputRef.current) {
|
|
126
|
+
inputRef.current.focus();
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
const handleCalendarChange = (nextValue) => {
|
|
130
|
+
const nextTimezoneValue = Array.isArray(nextValue)
|
|
131
|
+
? nextValue.map((date) => timezoneFormat(date, timezone))
|
|
132
|
+
: timezoneFormat(nextValue, timezone);
|
|
133
|
+
onChange(nextTimezoneValue);
|
|
134
|
+
setInputValue(formatInputValue(nextValue));
|
|
135
|
+
setCalendarValue(nextTimezoneValue);
|
|
136
|
+
if (hideOnSelect) {
|
|
137
|
+
focus();
|
|
138
|
+
hideCalendar();
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
const handleInputKeydown = (event) => {
|
|
142
|
+
var _a;
|
|
143
|
+
const key = event.key;
|
|
144
|
+
if (key === 'Escape') {
|
|
145
|
+
hideCalendar();
|
|
146
|
+
event.currentTarget.blur();
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
if (key === 'Enter') {
|
|
150
|
+
if (!calendarIsShown) {
|
|
151
|
+
showCalendar();
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
hideCalendar();
|
|
155
|
+
}
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
if (key === 'Tab' && calendarIsShown) {
|
|
159
|
+
event.preventDefault();
|
|
160
|
+
event.stopPropagation();
|
|
161
|
+
if (!calendarIsShown) {
|
|
162
|
+
event.currentTarget.blur();
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
// TODO: Manage this whole logic inside simple-react-calendar
|
|
166
|
+
const firstButton = (_a = calendarRef.current) === null || _a === void 0 ? void 0 : _a.querySelector('button:not([tabindex="-1"])');
|
|
167
|
+
if (firstButton) {
|
|
168
|
+
firstButton.focus();
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
const handleFocusOrClick = () => {
|
|
174
|
+
showCalendar();
|
|
175
|
+
setIsInputFocused(true);
|
|
176
|
+
};
|
|
177
|
+
const handleResetClick = (event) => {
|
|
178
|
+
setInputValue(EMPTY_INPUT_VALUE);
|
|
179
|
+
onResetClick === null || onResetClick === void 0 ? void 0 : onResetClick(event);
|
|
180
|
+
};
|
|
181
|
+
const startAdornment = size !== 'small' ? (React.createElement(InputAdornment, { position: 'start', disablePointerEvents: true }, icon || React.createElement(Calendar16, null))) : undefined;
|
|
182
|
+
return (React.createElement(React.Fragment, null,
|
|
183
|
+
React.createElement(Container, { inline: width !== 'full', ref: inputWrapperRef },
|
|
184
|
+
React.createElement(Input, Object.assign({}, inputProps, { ref: inputRef, onKeyDown: handleInputKeydown, onClick: handleFocusOrClick, onFocus: handleFocusOrClick, onBlur: handleBlur, onResetClick: handleResetClick, value: inputValue, onChange: handleInputChange, size: size, startAdornment: startAdornment, width: width, testIds: testIds, "data-testid": testIds === null || testIds === void 0 ? void 0 : testIds.input }))),
|
|
185
|
+
inputWrapperRef.current && (React.createElement(Popper, { placement: 'bottom-start', open: calendarIsShown, anchorEl: inputWrapperRef.current, autoWidth: false, enableCompactMode: true, container: popperContainer, popperOptions: DEFAULT_POPPER_OPTIONS, ref: popperRef },
|
|
186
|
+
React.createElement(Calendar, { activeMonth: activeMonth, "data-testid": testIds === null || testIds === void 0 ? void 0 : testIds.calendar, ref: calendarRef, range: range, value: calendarValue !== null && calendarValue !== void 0 ? calendarValue : undefined, minDate: normalizedMinDate, maxDate: normalizedMaxDate, disabledIntervals: disabledIntervals, renderDay: renderDay, onChange: handleCalendarChange, onBlur: handleBlur, className: classes.calendar, weekStartsOn: weekStartsOn })))));
|
|
187
|
+
};
|
|
188
|
+
DatePicker.defaultProps = {
|
|
189
|
+
range: false,
|
|
190
|
+
hideOnSelect: true,
|
|
191
|
+
onBlur: noop,
|
|
192
|
+
editDateFormat: 'MM-dd-yyyy',
|
|
193
|
+
displayDateFormat: 'MMM d, yyyy',
|
|
194
|
+
autoComplete: 'off'
|
|
195
|
+
};
|
|
196
|
+
DatePicker.displayName = 'DatePicker';
|
|
197
|
+
export default DatePicker;
|
|
198
|
+
//# sourceMappingURL=DatePicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../src/DatePicker/DatePicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const DEFAULT_DATE_PICKER_EDIT_DATE_FORMAT = "MM-dd-yyyy";
|
|
2
|
+
export declare const DEFAULT_DATE_PICKER_DISPLAY_DATE_FORMAT = "MMM d, yyyy";
|
|
3
|
+
export declare const DEFAULT_POPPER_OPTIONS: {
|
|
4
|
+
modifiers: {
|
|
5
|
+
hide: {
|
|
6
|
+
enabled: boolean;
|
|
7
|
+
};
|
|
8
|
+
preventOverflow: {
|
|
9
|
+
enabled: boolean;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const DEFAULT_DATE_PICKER_EDIT_DATE_FORMAT = 'MM-dd-yyyy';
|
|
2
|
+
export const DEFAULT_DATE_PICKER_DISPLAY_DATE_FORMAT = 'MMM d, yyyy';
|
|
3
|
+
export const DEFAULT_POPPER_OPTIONS = {
|
|
4
|
+
modifiers: {
|
|
5
|
+
hide: {
|
|
6
|
+
enabled: false
|
|
7
|
+
},
|
|
8
|
+
preventOverflow: {
|
|
9
|
+
enabled: false
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/DatePicker/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oCAAoC,GAAG,YAAY,CAAA;AAChE,MAAM,CAAC,MAAM,uCAAuC,GAAG,aAAa,CAAA;AACpE,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,SAAS,EAAE;QACT,IAAI,EAAE;YACJ,OAAO,EAAE,KAAK;SACf;QACD,eAAe,EAAE;YACf,OAAO,EAAE,KAAK;SACf;KACF;CACF,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { default } from './DatePicker';
|
|
2
|
+
export type { Props as DatePickerProps } from './DatePicker';
|
|
3
|
+
export type { DatePickerValue, DatePickerInputCustomValueParser, DatePickerInputCustomValueParserParameters } from './types';
|
|
4
|
+
export { datePickerParseDateString } from './utils';
|
|
5
|
+
export { DEFAULT_DATE_PICKER_EDIT_DATE_FORMAT, DEFAULT_DATE_PICKER_DISPLAY_DATE_FORMAT } from './constants';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/DatePicker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAGtC,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AACnD,OAAO,EAAE,oCAAoC,EAAE,uCAAuC,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/DatePicker/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,eAAe,GAAG,EAAE,CAClB,YAAY,CAAC;IACX,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM;KAChB;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DateOrDateRangeType } from '../Calendar';
|
|
2
|
+
export declare type DatePickerValue = DateOrDateRangeType | null;
|
|
3
|
+
export declare type DatePickerInputValueParserParameters = {
|
|
4
|
+
customParser?: DatePickerInputCustomValueParser;
|
|
5
|
+
dateFormat: string;
|
|
6
|
+
minDate?: Date;
|
|
7
|
+
maxDate?: Date;
|
|
8
|
+
timezone?: string;
|
|
9
|
+
};
|
|
10
|
+
export declare type DatePickerInputCustomValueParserParameters = {
|
|
11
|
+
timezone?: string;
|
|
12
|
+
};
|
|
13
|
+
export declare type DatePickerInputCustomValueParser = (value: string, params: DatePickerInputCustomValueParserParameters) => Date | null | undefined;
|