@simplybusiness/mobius-datepicker 8.0.4 → 9.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/dist/esm/index.js +363 -54
- package/dist/esm/index.js.map +4 -4
- package/dist/esm/meta.json +51 -66
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +25 -11
- package/dist/cjs/index.js +0 -546
- package/dist/cjs/index.js.map +0 -7
- package/dist/cjs/meta.json +0 -463
- package/dist/esm/DatePickerModal-WRMRIQDP.js +0 -208
- package/dist/esm/DatePickerModal-WRMRIQDP.js.map +0 -7
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
// src/components/DatePicker/DatePickerModal.tsx
|
|
4
|
-
import { VisuallyHidden, useOnClickOutside } from "@simplybusiness/mobius";
|
|
5
|
-
import classNames from "classnames/dedupe";
|
|
6
|
-
import { parseISO } from "date-fns";
|
|
7
|
-
import { useId, useRef as useRef2 } from "react";
|
|
8
|
-
import { DayPicker } from "react-day-picker";
|
|
9
|
-
|
|
10
|
-
// src/hooks/useFocusTrap/useFocusTrap.tsx
|
|
11
|
-
import { useEffect, useRef } from "react";
|
|
12
|
-
import { jsx } from "react/jsx-runtime";
|
|
13
|
-
var useFocusTrap = () => {
|
|
14
|
-
const containerRef = useRef(null);
|
|
15
|
-
useEffect(() => {
|
|
16
|
-
if (containerRef.current) {
|
|
17
|
-
const element = containerRef.current;
|
|
18
|
-
const focusableElements = containerRef.current.querySelectorAll(
|
|
19
|
-
'[tabindex="0"], .mobius-date-picker__nav-button'
|
|
20
|
-
);
|
|
21
|
-
const firstElement = focusableElements[0];
|
|
22
|
-
const lastElement = focusableElements[focusableElements.length - 1];
|
|
23
|
-
const handleTabKeyPress = (event) => {
|
|
24
|
-
if (event.key === "Tab") {
|
|
25
|
-
if (event.shiftKey && document.activeElement === firstElement) {
|
|
26
|
-
event.preventDefault();
|
|
27
|
-
lastElement.focus();
|
|
28
|
-
} else if (!event.shiftKey && document.activeElement && document.activeElement.className.indexOf(
|
|
29
|
-
"mobius-date-picker__day-button"
|
|
30
|
-
) > -1) {
|
|
31
|
-
event.preventDefault();
|
|
32
|
-
firstElement.focus();
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
element.addEventListener("keydown", handleTabKeyPress);
|
|
37
|
-
return () => {
|
|
38
|
-
element.removeEventListener("keydown", handleTabKeyPress);
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
return () => {
|
|
42
|
-
};
|
|
43
|
-
}, []);
|
|
44
|
-
return containerRef;
|
|
45
|
-
};
|
|
46
|
-
function FocusTrap({ children }) {
|
|
47
|
-
const focusRef = useFocusTrap();
|
|
48
|
-
return /* @__PURE__ */ jsx("div", { className: "trap", ref: focusRef, children });
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// src/components/DatePicker/utils/dateObjToString.ts
|
|
52
|
-
var dateObjToString = (date) => {
|
|
53
|
-
const year = date.getFullYear();
|
|
54
|
-
const month = String(date.getMonth() + 1).padStart(2, "0");
|
|
55
|
-
const day = String(date.getDate()).padStart(2, "0");
|
|
56
|
-
return `${year}-${month}-${day}`;
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
// src/components/DatePicker/constants.ts
|
|
60
|
-
var SUNDAY_AS_NUMBER = 0;
|
|
61
|
-
var MONDAY_AS_NUMBER = 1;
|
|
62
|
-
var DEFAULT_LOCALE = "en-GB";
|
|
63
|
-
|
|
64
|
-
// src/components/DatePicker/utils/weekdayAsOneLetter.ts
|
|
65
|
-
var weekdayAsOneLetter = (date) => {
|
|
66
|
-
const locale = navigator.language || DEFAULT_LOCALE;
|
|
67
|
-
const oneLetter = date.toLocaleString(locale, {
|
|
68
|
-
weekday: "narrow"
|
|
69
|
-
});
|
|
70
|
-
return oneLetter;
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
// src/components/DatePicker/utils/getStartWeekday.ts
|
|
74
|
-
var getStartWeekday = (locale) => {
|
|
75
|
-
switch (locale || DEFAULT_LOCALE) {
|
|
76
|
-
case "en-US":
|
|
77
|
-
return SUNDAY_AS_NUMBER;
|
|
78
|
-
default:
|
|
79
|
-
return MONDAY_AS_NUMBER;
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
// src/components/DatePicker/utils/timezoneOffset.ts
|
|
84
|
-
function toLocal(utcDateString) {
|
|
85
|
-
const utcDate = new Date(utcDateString);
|
|
86
|
-
if (Number.isNaN(utcDate.getTime())) {
|
|
87
|
-
throw new Error("Invalid date string");
|
|
88
|
-
}
|
|
89
|
-
return new Date(utcDate.getTime() + utcDate.getTimezoneOffset() * 6e4);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
// src/components/DatePicker/CustomComponents/CaptionLabel.tsx
|
|
93
|
-
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
94
|
-
var CaptionLabel = (props) => {
|
|
95
|
-
return /* @__PURE__ */ jsx2("h2", { ...props });
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
// src/components/DatePicker/CustomComponents/ChevronComponent.tsx
|
|
99
|
-
import { chevronLeft, chevronRight } from "@simplybusiness/icons";
|
|
100
|
-
import { Icon } from "@simplybusiness/mobius";
|
|
101
|
-
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
102
|
-
var ChevronComponent = ({ orientation }) => {
|
|
103
|
-
if (orientation === "left") {
|
|
104
|
-
return /* @__PURE__ */ jsx3(Icon, { icon: chevronLeft });
|
|
105
|
-
}
|
|
106
|
-
return /* @__PURE__ */ jsx3(Icon, { icon: chevronRight });
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
// src/components/DatePicker/DatePickerModal.tsx
|
|
110
|
-
import { jsx as jsx4, jsxs } from "react/jsx-runtime";
|
|
111
|
-
var startWeekday = getStartWeekday(
|
|
112
|
-
// eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope
|
|
113
|
-
typeof navigator !== "undefined" ? navigator?.language : void 0
|
|
114
|
-
);
|
|
115
|
-
var DatePickerModal = ({
|
|
116
|
-
date,
|
|
117
|
-
isOpen,
|
|
118
|
-
onSelected,
|
|
119
|
-
top,
|
|
120
|
-
min,
|
|
121
|
-
max
|
|
122
|
-
}) => {
|
|
123
|
-
const modalRef = useRef2(null);
|
|
124
|
-
const initialDate = date ? toLocal(date) : void 0;
|
|
125
|
-
const minDate = min ? toLocal(min) : void 0;
|
|
126
|
-
const maxDate = max ? toLocal(max) : void 0;
|
|
127
|
-
const hiddenId = `screen-reader-title-${useId()}`;
|
|
128
|
-
const handleSelected = (selectedDate) => {
|
|
129
|
-
onSelected(selectedDate);
|
|
130
|
-
};
|
|
131
|
-
const handleDayPickerSelect = (selectedDate) => {
|
|
132
|
-
if (!selectedDate) return;
|
|
133
|
-
handleSelected(dateObjToString(selectedDate));
|
|
134
|
-
};
|
|
135
|
-
useOnClickOutside(modalRef, () => {
|
|
136
|
-
if (modalRef.current && isOpen) {
|
|
137
|
-
handleSelected();
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
const modalClasses = classNames("mobius-date-picker__modal", {
|
|
141
|
-
"--is-open": isOpen
|
|
142
|
-
});
|
|
143
|
-
return /* @__PURE__ */ jsx4(FocusTrap, { children: /* @__PURE__ */ jsxs(
|
|
144
|
-
"div",
|
|
145
|
-
{
|
|
146
|
-
ref: modalRef,
|
|
147
|
-
className: modalClasses,
|
|
148
|
-
style: { top },
|
|
149
|
-
"aria-describedby": hiddenId,
|
|
150
|
-
"data-testid": "modal-container",
|
|
151
|
-
children: [
|
|
152
|
-
/* @__PURE__ */ jsx4(VisuallyHidden, { children: /* @__PURE__ */ jsx4("div", { id: hiddenId, children: "Please select a date from the calendar" }) }),
|
|
153
|
-
/* @__PURE__ */ jsx4(
|
|
154
|
-
DayPicker,
|
|
155
|
-
{
|
|
156
|
-
autoFocus: true,
|
|
157
|
-
mode: "single",
|
|
158
|
-
...minDate && { startMonth: minDate },
|
|
159
|
-
...maxDate && { endMonth: maxDate },
|
|
160
|
-
disabled: {
|
|
161
|
-
...min && { before: parseISO(min) },
|
|
162
|
-
...max && { after: parseISO(max) }
|
|
163
|
-
},
|
|
164
|
-
selected: initialDate,
|
|
165
|
-
defaultMonth: initialDate,
|
|
166
|
-
onSelect: handleDayPickerSelect,
|
|
167
|
-
pagedNavigation: true,
|
|
168
|
-
showOutsideDays: true,
|
|
169
|
-
weekStartsOn: startWeekday,
|
|
170
|
-
formatters: { formatWeekdayName: weekdayAsOneLetter },
|
|
171
|
-
components: {
|
|
172
|
-
Chevron: ChevronComponent,
|
|
173
|
-
CaptionLabel
|
|
174
|
-
},
|
|
175
|
-
classNames: {
|
|
176
|
-
root: "mobius-date-picker__root",
|
|
177
|
-
months: "mobius-date-picker__months",
|
|
178
|
-
month: "mobius-date-picker__month",
|
|
179
|
-
nav: "mobius-date-picker__nav",
|
|
180
|
-
button_previous: "mobius-date-picker__nav-button --previous",
|
|
181
|
-
button_next: "mobius-date-picker__nav-button --next",
|
|
182
|
-
month_caption: "mobius-date-picker__caption",
|
|
183
|
-
caption_label: "mobius-date-picker__caption-label",
|
|
184
|
-
month_grid: "mobius-date-picker__month-grid",
|
|
185
|
-
weekdays: "mobius-date-picker__weekdays",
|
|
186
|
-
weekday: "mobius-date-picker__weekday",
|
|
187
|
-
weeks: "mobius-date-picker__weeks",
|
|
188
|
-
week: "mobius-date-picker__week",
|
|
189
|
-
day: "mobius-date-picker__day",
|
|
190
|
-
day_button: "mobius-date-picker__day-button",
|
|
191
|
-
selected: "--is-selected",
|
|
192
|
-
disabled: "--is-disabled",
|
|
193
|
-
outside: "--is-outside",
|
|
194
|
-
hidden: "--is-hidden",
|
|
195
|
-
today: "--is-today",
|
|
196
|
-
focused: "--is-focused"
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
)
|
|
200
|
-
]
|
|
201
|
-
}
|
|
202
|
-
) });
|
|
203
|
-
};
|
|
204
|
-
var DatePickerModal_default = DatePickerModal;
|
|
205
|
-
export {
|
|
206
|
-
DatePickerModal_default as default
|
|
207
|
-
};
|
|
208
|
-
//# sourceMappingURL=DatePickerModal-WRMRIQDP.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/DatePicker/DatePickerModal.tsx", "../../src/hooks/useFocusTrap/useFocusTrap.tsx", "../../src/components/DatePicker/utils/dateObjToString.ts", "../../src/components/DatePicker/constants.ts", "../../src/components/DatePicker/utils/weekdayAsOneLetter.ts", "../../src/components/DatePicker/utils/getStartWeekday.ts", "../../src/components/DatePicker/utils/timezoneOffset.ts", "../../src/components/DatePicker/CustomComponents/CaptionLabel.tsx", "../../src/components/DatePicker/CustomComponents/ChevronComponent.tsx"],
|
|
4
|
-
"sourcesContent": ["\"use client\";\n\nimport { VisuallyHidden, useOnClickOutside } from \"@simplybusiness/mobius\";\nimport classNames from \"classnames/dedupe\";\nimport { parseISO } from \"date-fns\";\nimport { useId, useRef } from \"react\";\nimport type { Matcher } from \"react-day-picker\";\nimport { DayPicker } from \"react-day-picker\";\nimport FocusTrap from \"../../hooks/useFocusTrap/useFocusTrap\";\nimport { dateObjToString, weekdayAsOneLetter } from \"./utils\";\nimport { getStartWeekday } from \"./utils/getStartWeekday\";\nimport { toLocal } from \"./utils/timezoneOffset\";\nimport { ChevronComponent, CaptionLabel } from \"./CustomComponents\";\n\nexport type DatePickerModalProps = {\n date?: string; // yyyy-mm-dd\n isOpen: boolean;\n top: number;\n onSelected: (date?: string) => void;\n min?: string;\n max?: string;\n};\n\nconst startWeekday = getStartWeekday(\n // eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope\n typeof navigator !== \"undefined\" ? navigator?.language : undefined,\n);\n\nconst DatePickerModal = ({\n date,\n isOpen,\n onSelected,\n top,\n min,\n max,\n}: DatePickerModalProps) => {\n const modalRef = useRef<HTMLDivElement>(null);\n const initialDate = date ? toLocal(date) : undefined;\n const minDate = min ? toLocal(min) : undefined;\n const maxDate = max ? toLocal(max) : undefined;\n const hiddenId = `screen-reader-title-${useId()}`;\n\n const handleSelected = (selectedDate?: string) => {\n onSelected(selectedDate);\n };\n\n const handleDayPickerSelect = (selectedDate: Date | undefined) => {\n if (!selectedDate) return;\n\n handleSelected(dateObjToString(selectedDate));\n };\n\n useOnClickOutside(modalRef, () => {\n if (modalRef.current && isOpen) {\n handleSelected();\n }\n });\n\n const modalClasses = classNames(\"mobius-date-picker__modal\", {\n \"--is-open\": isOpen,\n });\n\n return (\n <FocusTrap>\n <div\n ref={modalRef}\n className={modalClasses}\n style={{ top }}\n aria-describedby={hiddenId}\n data-testid=\"modal-container\"\n >\n <VisuallyHidden>\n <div id={hiddenId}>Please select a date from the calendar</div>\n </VisuallyHidden>\n <DayPicker\n autoFocus\n mode=\"single\"\n {...(minDate && { startMonth: minDate })}\n {...(maxDate && { endMonth: maxDate })}\n disabled={\n {\n ...(min && { before: parseISO(min) }),\n ...(max && { after: parseISO(max) }),\n } as Matcher\n }\n selected={initialDate}\n defaultMonth={initialDate}\n onSelect={handleDayPickerSelect}\n pagedNavigation\n showOutsideDays\n weekStartsOn={startWeekday}\n formatters={{ formatWeekdayName: weekdayAsOneLetter }}\n components={{\n Chevron: ChevronComponent,\n CaptionLabel,\n }}\n classNames={{\n root: \"mobius-date-picker__root\",\n months: \"mobius-date-picker__months\",\n month: \"mobius-date-picker__month\",\n nav: \"mobius-date-picker__nav\",\n button_previous: \"mobius-date-picker__nav-button --previous\",\n button_next: \"mobius-date-picker__nav-button --next\",\n month_caption: \"mobius-date-picker__caption\",\n caption_label: \"mobius-date-picker__caption-label\",\n month_grid: \"mobius-date-picker__month-grid\",\n weekdays: \"mobius-date-picker__weekdays\",\n weekday: \"mobius-date-picker__weekday\",\n weeks: \"mobius-date-picker__weeks\",\n week: \"mobius-date-picker__week\",\n day: \"mobius-date-picker__day\",\n day_button: \"mobius-date-picker__day-button\",\n selected: \"--is-selected\",\n disabled: \"--is-disabled\",\n outside: \"--is-outside\",\n hidden: \"--is-hidden\",\n today: \"--is-today\",\n focused: \"--is-focused\",\n }}\n />\n </div>\n </FocusTrap>\n );\n};\n\nexport default DatePickerModal;\n", "import type { ReactNode } from \"react\";\nimport { useEffect, useRef } from \"react\";\n\nconst useFocusTrap = () => {\n const containerRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n if (containerRef.current) {\n const element = containerRef.current;\n const focusableElements =\n containerRef.current.querySelectorAll<HTMLElement>(\n '[tabindex=\"0\"], .mobius-date-picker__nav-button',\n );\n\n const firstElement = focusableElements[0];\n const lastElement = focusableElements[focusableElements.length - 1];\n\n const handleTabKeyPress = (event: KeyboardEvent) => {\n if (event.key === \"Tab\") {\n if (event.shiftKey && document.activeElement === firstElement) {\n event.preventDefault();\n lastElement.focus();\n } else if (\n !event.shiftKey &&\n document.activeElement &&\n document.activeElement.className.indexOf(\n \"mobius-date-picker__day-button\",\n ) > -1\n ) {\n event.preventDefault();\n firstElement.focus();\n }\n }\n };\n\n element.addEventListener(\"keydown\", handleTabKeyPress);\n return () => {\n element.removeEventListener(\"keydown\", handleTabKeyPress);\n };\n }\n return () => {};\n }, []);\n\n return containerRef;\n};\n\nexport type FocusTrapProps = {\n children: ReactNode;\n};\n\nexport default function FocusTrap({ children }: FocusTrapProps) {\n const focusRef = useFocusTrap();\n\n return (\n <div className=\"trap\" ref={focusRef}>\n {children}\n </div>\n );\n}\n", "export const dateObjToString = (date: Date) => {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n\n // Extract the date part from the Date object\n return `${year}-${month}-${day}`;\n};\n", "export const SUNDAY_AS_NUMBER = 0;\nexport const MONDAY_AS_NUMBER = 1;\nexport const DEFAULT_LOCALE = \"en-GB\";\n", "import { DEFAULT_LOCALE } from \"../constants\";\n\nexport const weekdayAsOneLetter = (date: Date) => {\n const locale = navigator.language || DEFAULT_LOCALE;\n const oneLetter = date.toLocaleString(locale, {\n weekday: \"narrow\",\n });\n\n return oneLetter;\n};\n", "import {\n DEFAULT_LOCALE,\n MONDAY_AS_NUMBER,\n SUNDAY_AS_NUMBER,\n} from \"../constants\";\n\ntype WeekStart = 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined;\n\n// Calculates start of week for calendar in UK and US locales\n// Add more to the switch statement as needed\nexport const getStartWeekday = (locale?: string): WeekStart => {\n switch (locale || DEFAULT_LOCALE) {\n case \"en-US\":\n return SUNDAY_AS_NUMBER;\n\n default:\n return MONDAY_AS_NUMBER;\n }\n};\n", "/**\n * Converts a local date-time to UTC\n * @param localDate - Date object in local timezone\n * @returns Date object in UTC\n */\nexport function toUTC(localDate: Date): Date {\n return new Date(localDate.getTime() - localDate.getTimezoneOffset() * 60000);\n}\n\nexport function toLocal(utcDateString: string): Date {\n const utcDate = new Date(utcDateString);\n if (Number.isNaN(utcDate.getTime())) {\n throw new Error(\"Invalid date string\");\n }\n // Convert UTC date to local date\n // by adding the timezone offset in milliseconds\n return new Date(utcDate.getTime() + utcDate.getTimezoneOffset() * 60000);\n}\n", "import { type HTMLAttributes } from \"react\";\n\n/**\n *\n * This component is used to render the caption label for the date picker.\n * We are overriding the standard span with an h2 for accessibility reasons.\n */\nexport const CaptionLabel = (props: HTMLAttributes<HTMLSpanElement>) => {\n return <h2 {...props} />;\n};\n", "import { chevronLeft, chevronRight } from \"@simplybusiness/icons\";\nimport { Icon } from \"@simplybusiness/mobius\";\n\ntype ChevronComponentProps = {\n orientation?: \"up\" | \"down\" | \"left\" | \"right\";\n};\n\nexport const ChevronComponent = ({ orientation }: ChevronComponentProps) => {\n if (orientation === \"left\") {\n return <Icon icon={chevronLeft} />;\n }\n return <Icon icon={chevronRight} />;\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["useRef", "jsx", "jsx", "jsx", "useRef"]
|
|
7
|
-
}
|