@simplybusiness/mobius-datepicker 9.0.9 → 9.1.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 +20 -0
- package/dist/cjs/components/DatePicker/CustomComponents/CaptionLabel.js +30 -0
- package/dist/cjs/components/DatePicker/CustomComponents/CaptionLabel.js.map +7 -0
- package/dist/cjs/components/DatePicker/CustomComponents/ChevronComponent.js +35 -0
- package/dist/cjs/components/DatePicker/CustomComponents/ChevronComponent.js.map +7 -0
- package/dist/cjs/components/DatePicker/CustomComponents/index.js +44 -0
- package/dist/cjs/components/DatePicker/CustomComponents/index.js.map +7 -0
- package/dist/cjs/components/DatePicker/DatePicker.js +547 -0
- package/dist/cjs/components/DatePicker/DatePicker.js.map +7 -0
- package/dist/cjs/components/DatePicker/DatePickerIcon.js +28 -0
- package/dist/cjs/components/DatePicker/DatePickerIcon.js.map +7 -0
- package/dist/{esm/DatePickerModal-RVUBO5DW.js → cjs/components/DatePicker/DatePickerModal.js} +63 -33
- package/dist/{esm/DatePickerModal-RVUBO5DW.js.map → cjs/components/DatePicker/DatePickerModal.js.map} +3 -3
- package/dist/cjs/components/DatePicker/constants.js +31 -0
- package/dist/cjs/components/DatePicker/constants.js.map +7 -0
- package/dist/cjs/components/DatePicker/index.js +548 -0
- package/dist/cjs/components/DatePicker/index.js.map +7 -0
- package/dist/cjs/components/DatePicker/utils/dateObjToString.js +32 -0
- package/dist/cjs/components/DatePicker/utils/dateObjToString.js.map +7 -0
- package/dist/cjs/components/DatePicker/utils/formatErrorMessageText.js +45 -0
- package/dist/cjs/components/DatePicker/utils/formatErrorMessageText.js.map +7 -0
- package/dist/cjs/components/DatePicker/utils/getStartWeekday.js +41 -0
- package/dist/cjs/components/DatePicker/utils/getStartWeekday.js.map +7 -0
- package/dist/cjs/components/DatePicker/utils/index.js +86 -0
- package/dist/cjs/components/DatePicker/utils/index.js.map +7 -0
- package/dist/cjs/components/DatePicker/utils/timezoneOffset.js +37 -0
- package/dist/cjs/components/DatePicker/utils/timezoneOffset.js.map +7 -0
- package/dist/cjs/components/DatePicker/utils/validateDateFormat.js +40 -0
- package/dist/cjs/components/DatePicker/utils/validateDateFormat.js.map +7 -0
- package/dist/cjs/components/DatePicker/utils/weekdayAsOneLetter.js +38 -0
- package/dist/cjs/components/DatePicker/utils/weekdayAsOneLetter.js.map +7 -0
- package/dist/cjs/hooks/index.js +19 -0
- package/dist/cjs/hooks/index.js.map +7 -0
- package/dist/cjs/hooks/useFocusTrap/index.js +19 -0
- package/dist/cjs/hooks/useFocusTrap/index.js.map +7 -0
- package/dist/cjs/hooks/useFocusTrap/useFocusTrap.js +65 -0
- package/dist/cjs/hooks/useFocusTrap/useFocusTrap.js.map +7 -0
- package/dist/cjs/index.js +4 -3
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/meta.json +993 -5
- package/dist/cjs/utils/StoryContainer.js +46 -0
- package/dist/cjs/utils/StoryContainer.js.map +7 -0
- package/dist/cjs/utils/excludeControls.js +30 -0
- package/dist/cjs/utils/excludeControls.js.map +7 -0
- package/dist/cjs/utils/index.js +41 -0
- package/dist/cjs/utils/index.js.map +7 -0
- package/dist/cjs/utils/isTouchDevice.js +32 -0
- package/dist/cjs/utils/isTouchDevice.js.map +7 -0
- package/dist/cjs/utils/mockMatchMedia.js +50 -0
- package/dist/cjs/utils/mockMatchMedia.js.map +7 -0
- package/dist/esm/chunk-24MISPYQ.js +1 -0
- package/dist/esm/chunk-24MISPYQ.js.map +7 -0
- package/dist/esm/chunk-4UUTCJ7P.js +11 -0
- package/dist/esm/chunk-4UUTCJ7P.js.map +7 -0
- package/dist/esm/chunk-52KEWVWB.js +12 -0
- package/dist/esm/chunk-52KEWVWB.js.map +7 -0
- package/dist/esm/chunk-5CHWCZUP.js +1 -0
- package/dist/esm/chunk-5CHWCZUP.js.map +7 -0
- package/dist/esm/chunk-6TTD4G74.js +20 -0
- package/dist/esm/chunk-6TTD4G74.js.map +7 -0
- package/dist/esm/chunk-A62CZFEQ.js +17 -0
- package/dist/esm/chunk-A62CZFEQ.js.map +7 -0
- package/dist/esm/chunk-AOSXRXGA.js +20 -0
- package/dist/esm/chunk-AOSXRXGA.js.map +7 -0
- package/dist/esm/chunk-CH3KSJSE.js +12 -0
- package/dist/esm/chunk-CH3KSJSE.js.map +7 -0
- package/dist/esm/chunk-E5XSED6Z.js +1 -0
- package/dist/esm/chunk-E5XSED6Z.js.map +7 -0
- package/dist/esm/chunk-GKDMKCFX.js +15 -0
- package/dist/esm/chunk-GKDMKCFX.js.map +7 -0
- package/dist/esm/chunk-IDU2FHOY.js +10 -0
- package/dist/esm/chunk-IDU2FHOY.js.map +7 -0
- package/dist/esm/chunk-IVRD2PA6.js +17 -0
- package/dist/esm/chunk-IVRD2PA6.js.map +7 -0
- package/dist/esm/chunk-KW6EFBPT.js +10 -0
- package/dist/esm/chunk-KW6EFBPT.js.map +7 -0
- package/dist/esm/chunk-LR7ML4HC.js +45 -0
- package/dist/esm/chunk-LR7ML4HC.js.map +7 -0
- package/dist/esm/chunk-TAURHEHL.js +193 -0
- package/dist/esm/chunk-TAURHEHL.js.map +7 -0
- package/dist/esm/chunk-UJQXNOUG.js +25 -0
- package/dist/esm/chunk-UJQXNOUG.js.map +7 -0
- package/dist/esm/chunk-UNC7C5OV.js +1 -0
- package/dist/esm/chunk-UNC7C5OV.js.map +7 -0
- package/dist/esm/components/DatePicker/CustomComponents/CaptionLabel.js +7 -0
- package/dist/esm/components/DatePicker/CustomComponents/CaptionLabel.js.map +7 -0
- package/dist/esm/components/DatePicker/CustomComponents/ChevronComponent.js +7 -0
- package/dist/esm/components/DatePicker/CustomComponents/ChevronComponent.js.map +7 -0
- package/dist/esm/components/DatePicker/CustomComponents/index.js +12 -0
- package/dist/esm/components/DatePicker/CustomComponents/index.js.map +7 -0
- package/dist/esm/components/DatePicker/DatePicker.js +15 -0
- package/dist/esm/components/DatePicker/DatePicker.js.map +7 -0
- package/dist/esm/components/DatePicker/DatePickerIcon.js +7 -0
- package/dist/esm/components/DatePicker/DatePickerIcon.js.map +7 -0
- package/dist/esm/components/DatePicker/DatePickerModal.js +134 -0
- package/dist/esm/components/DatePicker/DatePickerModal.js.map +7 -0
- package/dist/esm/components/DatePicker/constants.js +11 -0
- package/dist/esm/components/DatePicker/constants.js.map +7 -0
- package/dist/esm/components/DatePicker/index.js +15 -0
- package/dist/esm/components/DatePicker/index.js.map +7 -0
- package/dist/esm/components/DatePicker/utils/dateObjToString.js +7 -0
- package/dist/esm/components/DatePicker/utils/dateObjToString.js.map +7 -0
- package/dist/esm/components/DatePicker/utils/formatErrorMessageText.js +13 -0
- package/dist/esm/components/DatePicker/utils/formatErrorMessageText.js.map +7 -0
- package/dist/esm/components/DatePicker/utils/getStartWeekday.js +8 -0
- package/dist/esm/components/DatePicker/utils/getStartWeekday.js.map +7 -0
- package/dist/esm/components/DatePicker/utils/index.js +29 -0
- package/dist/esm/components/DatePicker/utils/index.js.map +7 -0
- package/dist/esm/components/DatePicker/utils/timezoneOffset.js +9 -0
- package/dist/esm/components/DatePicker/utils/timezoneOffset.js.map +7 -0
- package/dist/esm/components/DatePicker/utils/validateDateFormat.js +9 -0
- package/dist/esm/components/DatePicker/utils/validateDateFormat.js.map +7 -0
- package/dist/esm/components/DatePicker/utils/weekdayAsOneLetter.js +8 -0
- package/dist/esm/components/DatePicker/utils/weekdayAsOneLetter.js.map +7 -0
- package/dist/esm/hooks/index.js +3 -0
- package/dist/esm/hooks/index.js.map +7 -0
- package/dist/esm/hooks/useFocusTrap/index.js +3 -0
- package/dist/esm/hooks/useFocusTrap/index.js.map +7 -0
- package/dist/esm/hooks/useFocusTrap/useFocusTrap.js +7 -0
- package/dist/esm/hooks/useFocusTrap/useFocusTrap.js.map +7 -0
- package/dist/esm/index.js +10 -219
- package/dist/esm/index.js.map +3 -3
- package/dist/esm/meta.json +1146 -102
- package/dist/esm/utils/StoryContainer.js +25 -0
- package/dist/esm/utils/StoryContainer.js.map +7 -0
- package/dist/esm/utils/excludeControls.js +7 -0
- package/dist/esm/utils/excludeControls.js.map +7 -0
- package/dist/esm/utils/index.js +11 -0
- package/dist/esm/utils/index.js.map +7 -0
- package/dist/esm/utils/isTouchDevice.js +7 -0
- package/dist/esm/utils/isTouchDevice.js.map +7 -0
- package/dist/esm/utils/mockMatchMedia.js +29 -0
- package/dist/esm/utils/mockMatchMedia.js.map +7 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/components/DatePicker/DatePicker.d.ts +1 -0
- package/package.json +4 -3
- package/src/components/DatePicker/DatePicker.tsx +1 -0
package/dist/{esm/DatePickerModal-RVUBO5DW.js → cjs/components/DatePicker/DatePickerModal.js}
RENAMED
|
@@ -1,19 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
"use client";
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from))
|
|
16
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
17
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return to;
|
|
20
|
+
};
|
|
21
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
+
mod
|
|
28
|
+
));
|
|
29
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
2
30
|
|
|
3
31
|
// src/components/DatePicker/DatePickerModal.tsx
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
32
|
+
var DatePickerModal_exports = {};
|
|
33
|
+
__export(DatePickerModal_exports, {
|
|
34
|
+
default: () => DatePickerModal_default
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(DatePickerModal_exports);
|
|
37
|
+
var import_mobius_hooks = require("@simplybusiness/mobius-hooks");
|
|
38
|
+
var import_mobius2 = require("@simplybusiness/mobius");
|
|
39
|
+
var import_dedupe = __toESM(require("classnames/dedupe"));
|
|
40
|
+
var import_date_fns = require("date-fns");
|
|
41
|
+
var import_react2 = require("react");
|
|
42
|
+
var import_react_day_picker = require("react-day-picker");
|
|
10
43
|
|
|
11
44
|
// src/hooks/useFocusTrap/useFocusTrap.tsx
|
|
12
|
-
|
|
13
|
-
|
|
45
|
+
var import_react = require("react");
|
|
46
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
14
47
|
var useFocusTrap = () => {
|
|
15
|
-
const containerRef = useRef(null);
|
|
16
|
-
useEffect(() => {
|
|
48
|
+
const containerRef = (0, import_react.useRef)(null);
|
|
49
|
+
(0, import_react.useEffect)(() => {
|
|
17
50
|
if (containerRef.current) {
|
|
18
51
|
const element = containerRef.current;
|
|
19
52
|
const focusableElements = containerRef.current.querySelectorAll(
|
|
@@ -46,7 +79,7 @@ var useFocusTrap = () => {
|
|
|
46
79
|
};
|
|
47
80
|
function FocusTrap({ children }) {
|
|
48
81
|
const focusRef = useFocusTrap();
|
|
49
|
-
return /* @__PURE__ */ jsx("div", { className: "trap", ref: focusRef, children });
|
|
82
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "trap", ref: focusRef, children });
|
|
50
83
|
}
|
|
51
84
|
|
|
52
85
|
// src/components/DatePicker/utils/dateObjToString.ts
|
|
@@ -91,24 +124,24 @@ function toLocal(utcDateString) {
|
|
|
91
124
|
}
|
|
92
125
|
|
|
93
126
|
// src/components/DatePicker/CustomComponents/CaptionLabel.tsx
|
|
94
|
-
|
|
127
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
95
128
|
var CaptionLabel = (props) => {
|
|
96
|
-
return /* @__PURE__ */
|
|
129
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("h2", { ...props });
|
|
97
130
|
};
|
|
98
131
|
|
|
99
132
|
// src/components/DatePicker/CustomComponents/ChevronComponent.tsx
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
133
|
+
var import_icons = require("@simplybusiness/icons");
|
|
134
|
+
var import_mobius = require("@simplybusiness/mobius");
|
|
135
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
103
136
|
var ChevronComponent = ({ orientation }) => {
|
|
104
137
|
if (orientation === "left") {
|
|
105
|
-
return /* @__PURE__ */
|
|
138
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_mobius.Icon, { icon: import_icons.chevronLeft });
|
|
106
139
|
}
|
|
107
|
-
return /* @__PURE__ */
|
|
140
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_mobius.Icon, { icon: import_icons.chevronRight });
|
|
108
141
|
};
|
|
109
142
|
|
|
110
143
|
// src/components/DatePicker/DatePickerModal.tsx
|
|
111
|
-
|
|
144
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
112
145
|
var startWeekday = getStartWeekday(
|
|
113
146
|
// eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope
|
|
114
147
|
typeof navigator !== "undefined" ? navigator?.language : void 0
|
|
@@ -121,11 +154,11 @@ var DatePickerModal = ({
|
|
|
121
154
|
min,
|
|
122
155
|
max
|
|
123
156
|
}) => {
|
|
124
|
-
const modalRef =
|
|
157
|
+
const modalRef = (0, import_react2.useRef)(null);
|
|
125
158
|
const initialDate = date ? toLocal(date) : void 0;
|
|
126
159
|
const minDate = min ? toLocal(min) : void 0;
|
|
127
160
|
const maxDate = max ? toLocal(max) : void 0;
|
|
128
|
-
const hiddenId = `screen-reader-title-${useId()}`;
|
|
161
|
+
const hiddenId = `screen-reader-title-${(0, import_react2.useId)()}`;
|
|
129
162
|
const handleSelected = (selectedDate) => {
|
|
130
163
|
onSelected(selectedDate);
|
|
131
164
|
};
|
|
@@ -133,15 +166,15 @@ var DatePickerModal = ({
|
|
|
133
166
|
if (!selectedDate) return;
|
|
134
167
|
handleSelected(dateObjToString(selectedDate));
|
|
135
168
|
};
|
|
136
|
-
useOnClickOutside(modalRef, () => {
|
|
169
|
+
(0, import_mobius_hooks.useOnClickOutside)(modalRef, () => {
|
|
137
170
|
if (modalRef.current && isOpen) {
|
|
138
171
|
handleSelected();
|
|
139
172
|
}
|
|
140
173
|
});
|
|
141
|
-
const modalClasses =
|
|
174
|
+
const modalClasses = (0, import_dedupe.default)("mobius-date-picker__modal", {
|
|
142
175
|
"--is-open": isOpen
|
|
143
176
|
});
|
|
144
|
-
return /* @__PURE__ */
|
|
177
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(FocusTrap, { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
|
|
145
178
|
"div",
|
|
146
179
|
{
|
|
147
180
|
ref: modalRef,
|
|
@@ -150,17 +183,17 @@ var DatePickerModal = ({
|
|
|
150
183
|
"aria-describedby": hiddenId,
|
|
151
184
|
"data-testid": "modal-container",
|
|
152
185
|
children: [
|
|
153
|
-
/* @__PURE__ */
|
|
154
|
-
/* @__PURE__ */
|
|
155
|
-
DayPicker,
|
|
186
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_mobius2.VisuallyHidden, { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { id: hiddenId, children: "Please select a date from the calendar" }) }),
|
|
187
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
188
|
+
import_react_day_picker.DayPicker,
|
|
156
189
|
{
|
|
157
190
|
autoFocus: true,
|
|
158
191
|
mode: "single",
|
|
159
192
|
...minDate && { startMonth: minDate },
|
|
160
193
|
...maxDate && { endMonth: maxDate },
|
|
161
194
|
disabled: {
|
|
162
|
-
...min && { before: parseISO(min) },
|
|
163
|
-
...max && { after: parseISO(max) }
|
|
195
|
+
...min && { before: (0, import_date_fns.parseISO)(min) },
|
|
196
|
+
...max && { after: (0, import_date_fns.parseISO)(max) }
|
|
164
197
|
},
|
|
165
198
|
selected: initialDate,
|
|
166
199
|
defaultMonth: initialDate,
|
|
@@ -203,7 +236,4 @@ var DatePickerModal = ({
|
|
|
203
236
|
) });
|
|
204
237
|
};
|
|
205
238
|
var DatePickerModal_default = DatePickerModal;
|
|
206
|
-
|
|
207
|
-
DatePickerModal_default as default
|
|
208
|
-
};
|
|
209
|
-
//# sourceMappingURL=DatePickerModal-RVUBO5DW.js.map
|
|
239
|
+
//# sourceMappingURL=DatePickerModal.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
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
4
|
"sourcesContent": ["\"use client\";\n\nimport { useOnClickOutside } from \"@simplybusiness/mobius-hooks\";\nimport { VisuallyHidden } 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": "
|
|
6
|
-
"names": ["
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_mobius", "import_react", "import_jsx_runtime", "import_jsx_runtime", "import_jsx_runtime", "classNames"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/components/DatePicker/constants.ts
|
|
21
|
+
var constants_exports = {};
|
|
22
|
+
__export(constants_exports, {
|
|
23
|
+
DEFAULT_LOCALE: () => DEFAULT_LOCALE,
|
|
24
|
+
MONDAY_AS_NUMBER: () => MONDAY_AS_NUMBER,
|
|
25
|
+
SUNDAY_AS_NUMBER: () => SUNDAY_AS_NUMBER
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(constants_exports);
|
|
28
|
+
var SUNDAY_AS_NUMBER = 0;
|
|
29
|
+
var MONDAY_AS_NUMBER = 1;
|
|
30
|
+
var DEFAULT_LOCALE = "en-GB";
|
|
31
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/components/DatePicker/constants.ts"],
|
|
4
|
+
"sourcesContent": ["export const SUNDAY_AS_NUMBER = 0;\nexport const MONDAY_AS_NUMBER = 1;\nexport const DEFAULT_LOCALE = \"en-GB\";\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAM,mBAAmB;AACzB,IAAM,mBAAmB;AACzB,IAAM,iBAAiB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|