@ya-accelerators/nextjs-framework 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/@types/general.d.ts +1 -0
- package/@types/image.d.ts +8 -0
- package/@types/next-auth.d.ts +18 -0
- package/dist/env.client.d.ts +3 -0
- package/dist/env.client.js +9 -0
- package/dist/env.client.js.map +1 -0
- package/dist/env.d.ts +6 -0
- package/dist/env.js +18 -0
- package/dist/env.js.map +1 -0
- package/dist/hooks/date/index.d.ts +11 -0
- package/dist/hooks/date/index.js +14 -0
- package/dist/hooks/date/index.js.map +1 -0
- package/dist/hooks/dispatch/index.d.ts +9 -0
- package/dist/hooks/dispatch/index.jsx +25 -0
- package/dist/hooks/dispatch/index.jsx.map +1 -0
- package/dist/hooks/index.d.ts +6 -0
- package/dist/hooks/index.js +7 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/loading/index.d.ts +10 -0
- package/dist/hooks/loading/index.jsx +22 -0
- package/dist/hooks/loading/index.jsx.map +1 -0
- package/dist/hooks/localStorage/index.d.ts +1 -0
- package/dist/hooks/localStorage/index.js +53 -0
- package/dist/hooks/localStorage/index.js.map +1 -0
- package/dist/hooks/modal/index.d.ts +26 -0
- package/dist/hooks/modal/index.jsx +63 -0
- package/dist/hooks/modal/index.jsx.map +1 -0
- package/dist/hooks/toast/index.d.ts +15 -0
- package/dist/hooks/toast/index.jsx +39 -0
- package/dist/hooks/toast/index.jsx.map +1 -0
- package/dist/i18n/index.d.ts +3 -0
- package/dist/i18n/index.js +40 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/strings/en-US.json +18 -0
- package/dist/i18n/strings/ja-JP.json +37 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/cookie/index.d.ts +9 -0
- package/dist/lib/cookie/index.js +66 -0
- package/dist/lib/cookie/index.js.map +1 -0
- package/dist/lib/index.d.ts +10 -0
- package/dist/lib/index.js +11 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/next-auth/index.d.ts +2 -0
- package/dist/lib/next-auth/index.js +62 -0
- package/dist/lib/next-auth/index.js.map +1 -0
- package/dist/lib/s3/index.d.ts +2 -0
- package/dist/lib/s3/index.js +17 -0
- package/dist/lib/s3/index.js.map +1 -0
- package/dist/lib/trpc/index.d.ts +8 -0
- package/dist/lib/trpc/index.js +32 -0
- package/dist/lib/trpc/index.js.map +1 -0
- package/dist/styles/globals.css +26 -0
- package/dist/styles/tailwind.config.d.ts +577 -0
- package/dist/styles/tailwind.config.js +671 -0
- package/dist/styles/tailwind.config.js.map +1 -0
- package/dist/styles/tailwind.config.ts +672 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/ui/component/button/base.d.ts +27 -0
- package/dist/ui/component/button/base.jsx +54 -0
- package/dist/ui/component/button/base.jsx.map +1 -0
- package/dist/ui/component/button/colored/index.d.ts +11 -0
- package/dist/ui/component/button/colored/index.jsx +7 -0
- package/dist/ui/component/button/colored/index.jsx.map +1 -0
- package/dist/ui/component/button/image/index.d.ts +4 -0
- package/dist/ui/component/button/image/index.jsx +5 -0
- package/dist/ui/component/button/image/index.jsx.map +1 -0
- package/dist/ui/component/button/index.d.ts +18 -0
- package/dist/ui/component/button/index.jsx +25 -0
- package/dist/ui/component/button/index.jsx.map +1 -0
- package/dist/ui/component/button/text/index.d.ts +11 -0
- package/dist/ui/component/button/text/index.jsx +8 -0
- package/dist/ui/component/button/text/index.jsx.map +1 -0
- package/dist/ui/component/card/index.d.ts +12 -0
- package/dist/ui/component/card/index.jsx +20 -0
- package/dist/ui/component/card/index.jsx.map +1 -0
- package/dist/ui/component/icon/index.d.ts +7 -0
- package/dist/ui/component/icon/index.jsx +3 -0
- package/dist/ui/component/icon/index.jsx.map +1 -0
- package/dist/ui/component/index.d.ts +95 -0
- package/dist/ui/component/index.js +15 -0
- package/dist/ui/component/index.js.map +1 -0
- package/dist/ui/component/loading/index.d.ts +5 -0
- package/dist/ui/component/loading/index.jsx +27 -0
- package/dist/ui/component/loading/index.jsx.map +1 -0
- package/dist/ui/component/ssr/index.d.ts +5 -0
- package/dist/ui/component/ssr/index.jsx +11 -0
- package/dist/ui/component/ssr/index.jsx.map +1 -0
- package/dist/ui/component/typography/H1/index.d.ts +7 -0
- package/dist/ui/component/typography/H1/index.jsx +13 -0
- package/dist/ui/component/typography/H1/index.jsx.map +1 -0
- package/dist/ui/component/typography/H2/index.d.ts +7 -0
- package/dist/ui/component/typography/H2/index.jsx +13 -0
- package/dist/ui/component/typography/H2/index.jsx.map +1 -0
- package/dist/ui/component/typography/H3/index.d.ts +7 -0
- package/dist/ui/component/typography/H3/index.jsx +13 -0
- package/dist/ui/component/typography/H3/index.jsx.map +1 -0
- package/dist/ui/component/typography/H4/index.d.ts +7 -0
- package/dist/ui/component/typography/H4/index.jsx +13 -0
- package/dist/ui/component/typography/H4/index.jsx.map +1 -0
- package/dist/ui/component/typography/H5/index.d.ts +7 -0
- package/dist/ui/component/typography/H5/index.jsx +13 -0
- package/dist/ui/component/typography/H5/index.jsx.map +1 -0
- package/dist/ui/component/typography/H6/index.d.ts +7 -0
- package/dist/ui/component/typography/H6/index.jsx +13 -0
- package/dist/ui/component/typography/H6/index.jsx.map +1 -0
- package/dist/ui/component/typography/Label/index.d.ts +7 -0
- package/dist/ui/component/typography/Label/index.jsx +13 -0
- package/dist/ui/component/typography/Label/index.jsx.map +1 -0
- package/dist/ui/component/typography/LinkText/index.d.ts +8 -0
- package/dist/ui/component/typography/LinkText/index.jsx +14 -0
- package/dist/ui/component/typography/LinkText/index.jsx.map +1 -0
- package/dist/ui/component/typography/P/index.d.ts +7 -0
- package/dist/ui/component/typography/P/index.jsx +13 -0
- package/dist/ui/component/typography/P/index.jsx.map +1 -0
- package/dist/ui/component/typography/Pre/index.d.ts +7 -0
- package/dist/ui/component/typography/Pre/index.jsx +13 -0
- package/dist/ui/component/typography/Pre/index.jsx.map +1 -0
- package/dist/ui/component/typography/index.d.ts +54 -0
- package/dist/ui/component/typography/index.jsx +23 -0
- package/dist/ui/component/typography/index.jsx.map +1 -0
- package/dist/ui/composite/button/index.d.ts +8 -0
- package/dist/ui/composite/button/index.jsx +45 -0
- package/dist/ui/composite/button/index.jsx.map +1 -0
- package/dist/ui/composite/dropdown/index.d.ts +12 -0
- package/dist/ui/composite/dropdown/index.jsx +102 -0
- package/dist/ui/composite/dropdown/index.jsx.map +1 -0
- package/dist/ui/composite/index.d.ts +342 -0
- package/dist/ui/composite/index.js +13 -0
- package/dist/ui/composite/index.js.map +1 -0
- package/dist/ui/composite/input/address/index.d.ts +33 -0
- package/dist/ui/composite/input/address/index.jsx +132 -0
- package/dist/ui/composite/input/address/index.jsx.map +1 -0
- package/dist/ui/composite/input/address/map.d.ts +64 -0
- package/dist/ui/composite/input/address/map.jsx +111 -0
- package/dist/ui/composite/input/address/map.jsx.map +1 -0
- package/dist/ui/composite/input/address/utils.d.ts +23 -0
- package/dist/ui/composite/input/address/utils.js +63 -0
- package/dist/ui/composite/input/address/utils.js.map +1 -0
- package/dist/ui/composite/input/checkbox/index.d.ts +22 -0
- package/dist/ui/composite/input/checkbox/index.jsx +38 -0
- package/dist/ui/composite/input/checkbox/index.jsx.map +1 -0
- package/dist/ui/composite/input/datePicker/index.d.ts +19 -0
- package/dist/ui/composite/input/datePicker/index.jsx +100 -0
- package/dist/ui/composite/input/datePicker/index.jsx.map +1 -0
- package/dist/ui/composite/input/dateRange/index.d.ts +14 -0
- package/dist/ui/composite/input/dateRange/index.jsx +46 -0
- package/dist/ui/composite/input/dateRange/index.jsx.map +1 -0
- package/dist/ui/composite/input/dateTimePicker/index.d.ts +15 -0
- package/dist/ui/composite/input/dateTimePicker/index.jsx +74 -0
- package/dist/ui/composite/input/dateTimePicker/index.jsx.map +1 -0
- package/dist/ui/composite/input/dateTimeRange/index.d.ts +14 -0
- package/dist/ui/composite/input/dateTimeRange/index.jsx +88 -0
- package/dist/ui/composite/input/dateTimeRange/index.jsx.map +1 -0
- package/dist/ui/composite/input/index.d.ts +216 -0
- package/dist/ui/composite/input/index.js +35 -0
- package/dist/ui/composite/input/index.js.map +1 -0
- package/dist/ui/composite/input/list/index.d.ts +20 -0
- package/dist/ui/composite/input/list/index.jsx +30 -0
- package/dist/ui/composite/input/list/index.jsx.map +1 -0
- package/dist/ui/composite/input/radio/index.d.ts +14 -0
- package/dist/ui/composite/input/radio/index.jsx +34 -0
- package/dist/ui/composite/input/radio/index.jsx.map +1 -0
- package/dist/ui/composite/input/search/index.d.ts +5 -0
- package/dist/ui/composite/input/search/index.jsx +38 -0
- package/dist/ui/composite/input/search/index.jsx.map +1 -0
- package/dist/ui/composite/input/select/ClearIndicator/index.d.ts +4 -0
- package/dist/ui/composite/input/select/ClearIndicator/index.jsx +8 -0
- package/dist/ui/composite/input/select/ClearIndicator/index.jsx.map +1 -0
- package/dist/ui/composite/input/select/Control/index.d.ts +4 -0
- package/dist/ui/composite/input/select/Control/index.jsx +23 -0
- package/dist/ui/composite/input/select/Control/index.jsx.map +1 -0
- package/dist/ui/composite/input/select/DropdownIndicator/index.d.ts +4 -0
- package/dist/ui/composite/input/select/DropdownIndicator/index.jsx +8 -0
- package/dist/ui/composite/input/select/DropdownIndicator/index.jsx.map +1 -0
- package/dist/ui/composite/input/select/GroupHeading/index.d.ts +4 -0
- package/dist/ui/composite/input/select/GroupHeading/index.jsx +9 -0
- package/dist/ui/composite/input/select/GroupHeading/index.jsx.map +1 -0
- package/dist/ui/composite/input/select/Input/index.d.ts +4 -0
- package/dist/ui/composite/input/select/Input/index.jsx +7 -0
- package/dist/ui/composite/input/select/Input/index.jsx.map +1 -0
- package/dist/ui/composite/input/select/Menu/index.d.ts +4 -0
- package/dist/ui/composite/input/select/Menu/index.jsx +19 -0
- package/dist/ui/composite/input/select/Menu/index.jsx.map +1 -0
- package/dist/ui/composite/input/select/MultiValue/index.d.ts +4 -0
- package/dist/ui/composite/input/select/MultiValue/index.jsx +15 -0
- package/dist/ui/composite/input/select/MultiValue/index.jsx.map +1 -0
- package/dist/ui/composite/input/select/Option/index.d.ts +4 -0
- package/dist/ui/composite/input/select/Option/index.jsx +79 -0
- package/dist/ui/composite/input/select/Option/index.jsx.map +1 -0
- package/dist/ui/composite/input/select/Placeholder/index.d.ts +4 -0
- package/dist/ui/composite/input/select/Placeholder/index.jsx +7 -0
- package/dist/ui/composite/input/select/Placeholder/index.jsx.map +1 -0
- package/dist/ui/composite/input/select/SelectContainer/index.d.ts +4 -0
- package/dist/ui/composite/input/select/SelectContainer/index.jsx +40 -0
- package/dist/ui/composite/input/select/SelectContainer/index.jsx.map +1 -0
- package/dist/ui/composite/input/select/SingleValue/index.d.ts +4 -0
- package/dist/ui/composite/input/select/SingleValue/index.jsx +17 -0
- package/dist/ui/composite/input/select/SingleValue/index.jsx.map +1 -0
- package/dist/ui/composite/input/select/index.d.ts +37 -0
- package/dist/ui/composite/input/select/index.jsx +242 -0
- package/dist/ui/composite/input/select/index.jsx.map +1 -0
- package/dist/ui/composite/input/select/types.d.ts +16 -0
- package/dist/ui/composite/input/select/types.js +6 -0
- package/dist/ui/composite/input/select/types.js.map +1 -0
- package/dist/ui/composite/input/text/index.d.ts +15 -0
- package/dist/ui/composite/input/text/index.jsx +40 -0
- package/dist/ui/composite/input/text/index.jsx.map +1 -0
- package/dist/ui/composite/input/textarea/index.d.ts +11 -0
- package/dist/ui/composite/input/textarea/index.jsx +62 -0
- package/dist/ui/composite/input/textarea/index.jsx.map +1 -0
- package/dist/ui/composite/input/timePicker/index.d.ts +13 -0
- package/dist/ui/composite/input/timePicker/index.jsx +36 -0
- package/dist/ui/composite/input/timePicker/index.jsx.map +1 -0
- package/dist/ui/composite/input/timeRange/index.d.ts +16 -0
- package/dist/ui/composite/input/timeRange/index.jsx +54 -0
- package/dist/ui/composite/input/timeRange/index.jsx.map +1 -0
- package/dist/ui/composite/input/weekDaysSelector/index.d.ts +11 -0
- package/dist/ui/composite/input/weekDaysSelector/index.jsx +39 -0
- package/dist/ui/composite/input/weekDaysSelector/index.jsx.map +1 -0
- package/dist/ui/composite/input/weekdayPicker/index.d.ts +13 -0
- package/dist/ui/composite/input/weekdayPicker/index.jsx +49 -0
- package/dist/ui/composite/input/weekdayPicker/index.jsx.map +1 -0
- package/dist/ui/composite/label/index.d.ts +11 -0
- package/dist/ui/composite/label/index.jsx +18 -0
- package/dist/ui/composite/label/index.jsx.map +1 -0
- package/dist/ui/composite/pageTitle/index.d.ts +18 -0
- package/dist/ui/composite/pageTitle/index.jsx +62 -0
- package/dist/ui/composite/pageTitle/index.jsx.map +1 -0
- package/dist/ui/functional/index.d.ts +10 -0
- package/dist/ui/functional/index.js +9 -0
- package/dist/ui/functional/index.js.map +1 -0
- package/dist/ui/functional/notFound/index.d.ts +1 -0
- package/dist/ui/functional/notFound/index.jsx +13 -0
- package/dist/ui/functional/notFound/index.jsx.map +1 -0
- package/dist/ui/functional/signInForm/index.d.ts +4 -0
- package/dist/ui/functional/signInForm/index.jsx +45 -0
- package/dist/ui/functional/signInForm/index.jsx.map +1 -0
- package/dist/ui/functional/signOutForm/index.d.ts +3 -0
- package/dist/ui/functional/signOutForm/index.jsx +29 -0
- package/dist/ui/functional/signOutForm/index.jsx.map +1 -0
- package/dist/ui/index.d.ts +6 -0
- package/dist/ui/index.js +7 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/layout/app/component.d.ts +59 -0
- package/dist/ui/layout/app/component.jsx +224 -0
- package/dist/ui/layout/app/component.jsx.map +1 -0
- package/dist/ui/layout/app/content/index.d.ts +9 -0
- package/dist/ui/layout/app/content/index.jsx +18 -0
- package/dist/ui/layout/app/content/index.jsx.map +1 -0
- package/dist/ui/layout/app/index.d.ts +18 -0
- package/dist/ui/layout/app/index.jsx +40 -0
- package/dist/ui/layout/app/index.jsx.map +1 -0
- package/dist/ui/layout/form/index.d.ts +68 -0
- package/dist/ui/layout/form/index.jsx +558 -0
- package/dist/ui/layout/form/index.jsx.map +1 -0
- package/dist/ui/layout/index.d.ts +356 -0
- package/dist/ui/layout/index.js +19 -0
- package/dist/ui/layout/index.js.map +1 -0
- package/dist/ui/layout/modal/index.d.ts +7 -0
- package/dist/ui/layout/modal/index.jsx +11 -0
- package/dist/ui/layout/modal/index.jsx.map +1 -0
- package/dist/ui/layout/object/index.d.ts +30 -0
- package/dist/ui/layout/object/index.jsx +145 -0
- package/dist/ui/layout/object/index.jsx.map +1 -0
- package/dist/ui/layout/root/index.d.ts +10 -0
- package/dist/ui/layout/root/index.jsx +31 -0
- package/dist/ui/layout/root/index.jsx.map +1 -0
- package/dist/ui/layout/root/provider/index.d.ts +7 -0
- package/dist/ui/layout/root/provider/index.jsx +26 -0
- package/dist/ui/layout/root/provider/index.jsx.map +1 -0
- package/dist/ui/layout/tab/component.d.ts +4 -0
- package/dist/ui/layout/tab/component.jsx +16 -0
- package/dist/ui/layout/tab/component.jsx.map +1 -0
- package/dist/ui/layout/tab/content/index.d.ts +8 -0
- package/dist/ui/layout/tab/content/index.jsx +8 -0
- package/dist/ui/layout/tab/content/index.jsx.map +1 -0
- package/dist/ui/layout/tab/index.d.ts +11 -0
- package/dist/ui/layout/tab/index.jsx +25 -0
- package/dist/ui/layout/tab/index.jsx.map +1 -0
- package/dist/ui/layout/table/index.d.ts +33 -0
- package/dist/ui/layout/table/index.jsx +283 -0
- package/dist/ui/layout/table/index.jsx.map +1 -0
- package/dist/ui/layout/toast/index.d.ts +7 -0
- package/dist/ui/layout/toast/index.jsx +18 -0
- package/dist/ui/layout/toast/index.jsx.map +1 -0
- package/dist/ui/theme/border/index.d.ts +28 -0
- package/dist/ui/theme/border/index.js +67 -0
- package/dist/ui/theme/border/index.js.map +1 -0
- package/dist/ui/theme/color/index.d.ts +32 -0
- package/dist/ui/theme/color/index.js +106 -0
- package/dist/ui/theme/color/index.js.map +1 -0
- package/dist/ui/theme/index.d.ts +4 -0
- package/dist/ui/theme/index.js +5 -0
- package/dist/ui/theme/index.js.map +1 -0
- package/dist/ui/theme/rounded/index.d.ts +9 -0
- package/dist/ui/theme/rounded/index.js +14 -0
- package/dist/ui/theme/rounded/index.js.map +1 -0
- package/dist/ui/theme/size/index.d.ts +15 -0
- package/dist/ui/theme/size/index.js +55 -0
- package/dist/ui/theme/size/index.js.map +1 -0
- package/dist/ui/types/index.d.ts +113 -0
- package/dist/ui/types/index.js +33 -0
- package/dist/ui/types/index.js.map +1 -0
- package/dist/util/client.d.ts +2 -0
- package/dist/util/client.js +4 -0
- package/dist/util/client.js.map +1 -0
- package/dist/util/date/impl.d.ts +7 -0
- package/dist/util/date/impl.js +22 -0
- package/dist/util/date/impl.js.map +1 -0
- package/dist/util/date/index.d.ts +17 -0
- package/dist/util/date/index.js +16 -0
- package/dist/util/date/index.js.map +1 -0
- package/dist/util/index.d.ts +17 -0
- package/dist/util/index.js +143 -0
- package/dist/util/index.js.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import LocationOnIcon from '@mui/icons-material/LocationOn';
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
import { useEffect, useRef, useState } from 'react';
|
|
5
|
+
import { Component } from '../../../component';
|
|
6
|
+
import { Rounded } from '../../../theme';
|
|
7
|
+
export const GoogleMapPicker = ({ apiKey, initialLat = 35.6812, initialLng = 139.7671, onLocationSelect, rounded = Rounded.m, disabled = false, className, }) => {
|
|
8
|
+
const mapRef = useRef(null);
|
|
9
|
+
const [mapLoaded, setMapLoaded] = useState(false);
|
|
10
|
+
const [selectedLocation, setSelectedLocation] = useState(initialLat && initialLng ? { lat: initialLat, lng: initialLng } : null);
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
if (!apiKey || mapLoaded)
|
|
13
|
+
return;
|
|
14
|
+
const script = document.createElement('script');
|
|
15
|
+
script.src = `https://maps.googleapis.com/maps/api/js?key=${apiKey}&libraries=places`;
|
|
16
|
+
script.async = true;
|
|
17
|
+
script.defer = true;
|
|
18
|
+
script.onload = () => setMapLoaded(true);
|
|
19
|
+
document.head.appendChild(script);
|
|
20
|
+
return () => {
|
|
21
|
+
document.head.removeChild(script);
|
|
22
|
+
};
|
|
23
|
+
}, [apiKey, mapLoaded]);
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
if (!mapLoaded || !mapRef.current || !window.google)
|
|
26
|
+
return;
|
|
27
|
+
const mapOptions = {
|
|
28
|
+
center: { lat: initialLat, lng: initialLng },
|
|
29
|
+
zoom: 15,
|
|
30
|
+
mapTypeControl: false,
|
|
31
|
+
streetViewControl: false,
|
|
32
|
+
fullscreenControl: false,
|
|
33
|
+
};
|
|
34
|
+
const map = new window.google.maps.Map(mapRef.current, mapOptions);
|
|
35
|
+
let marker = null;
|
|
36
|
+
if (selectedLocation) {
|
|
37
|
+
marker = new window.google.maps.Marker({
|
|
38
|
+
position: selectedLocation,
|
|
39
|
+
map,
|
|
40
|
+
draggable: true,
|
|
41
|
+
});
|
|
42
|
+
map.setCenter(selectedLocation);
|
|
43
|
+
}
|
|
44
|
+
window.google.maps.event.addListener(map, 'click', (e) => {
|
|
45
|
+
if (disabled)
|
|
46
|
+
return;
|
|
47
|
+
const clickedLocation = {
|
|
48
|
+
lat: e.latLng.lat(),
|
|
49
|
+
lng: e.latLng.lng(),
|
|
50
|
+
};
|
|
51
|
+
if (marker) {
|
|
52
|
+
marker.setPosition(clickedLocation);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
marker = new window.google.maps.Marker({
|
|
56
|
+
position: clickedLocation,
|
|
57
|
+
map,
|
|
58
|
+
draggable: true,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
setSelectedLocation(clickedLocation);
|
|
62
|
+
onLocationSelect(clickedLocation.lat, clickedLocation.lng);
|
|
63
|
+
});
|
|
64
|
+
if (marker) {
|
|
65
|
+
window.google.maps.event.addListener(marker, 'dragend', () => {
|
|
66
|
+
if (disabled)
|
|
67
|
+
return;
|
|
68
|
+
const position = marker?.getPosition();
|
|
69
|
+
if (position && marker) {
|
|
70
|
+
const newLocation = {
|
|
71
|
+
lat: position.lat(),
|
|
72
|
+
lng: position.lng(),
|
|
73
|
+
};
|
|
74
|
+
setSelectedLocation(newLocation);
|
|
75
|
+
onLocationSelect(newLocation.lat, newLocation.lng);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}, [mapLoaded, mapRef, initialLat, initialLng, selectedLocation, onLocationSelect, disabled]);
|
|
80
|
+
const getRoundedClass = () => {
|
|
81
|
+
switch (rounded) {
|
|
82
|
+
case Rounded.none:
|
|
83
|
+
return '';
|
|
84
|
+
case Rounded.s:
|
|
85
|
+
return 'rounded-small';
|
|
86
|
+
case Rounded.m:
|
|
87
|
+
return 'rounded-medium';
|
|
88
|
+
case Rounded.l:
|
|
89
|
+
return 'rounded-large';
|
|
90
|
+
case Rounded.half:
|
|
91
|
+
return 'rounded-[50%]';
|
|
92
|
+
default:
|
|
93
|
+
return 'rounded-medium';
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
return (<div className={classNames('w-full', className)}>
|
|
97
|
+
{selectedLocation && (<div className='mb-control-padding-sm flex items-center justify-end'>
|
|
98
|
+
<LocationOnIcon className='text-primary mr-1'/>
|
|
99
|
+
<Component.Typography.Label>
|
|
100
|
+
{selectedLocation.lat.toFixed(6)}, {selectedLocation.lng.toFixed(6)}
|
|
101
|
+
</Component.Typography.Label>
|
|
102
|
+
</div>)}
|
|
103
|
+
|
|
104
|
+
<div className={classNames('h-64 w-full border border-gray-300', getRoundedClass())}>
|
|
105
|
+
{!apiKey ? (<div className='flex h-full items-center justify-center'>
|
|
106
|
+
<Component.Typography.Label>Google Maps APIキーが設定されていません</Component.Typography.Label>
|
|
107
|
+
</div>) : (<div ref={mapRef} className='h-full w-full'/>)}
|
|
108
|
+
</div>
|
|
109
|
+
</div>);
|
|
110
|
+
};
|
|
111
|
+
//# sourceMappingURL=map.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"map.jsx","sourceRoot":"","sources":["../../../../../../src/ui/composite/input/address/map.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface AddressLookupResult {
|
|
2
|
+
zipCode: string;
|
|
3
|
+
region: string;
|
|
4
|
+
city: string;
|
|
5
|
+
line1: string;
|
|
6
|
+
lat?: number;
|
|
7
|
+
lng?: number;
|
|
8
|
+
}
|
|
9
|
+
export declare const lookupJapaneseAddress: (zipCode: string) => Promise<AddressLookupResult | null>;
|
|
10
|
+
export declare const lookupInternationalAddress: (zipCode: string, countryCode: string) => Promise<AddressLookupResult | null>;
|
|
11
|
+
export interface CountryAddressFormat {
|
|
12
|
+
labels: {
|
|
13
|
+
zipCode: string;
|
|
14
|
+
region: string;
|
|
15
|
+
city: string;
|
|
16
|
+
line1: string;
|
|
17
|
+
line2: string;
|
|
18
|
+
line3?: string;
|
|
19
|
+
};
|
|
20
|
+
order: Array<'zipCode' | 'region' | 'city' | 'line1' | 'line2' | 'line3'>;
|
|
21
|
+
required: Array<'zipCode' | 'region' | 'city' | 'line1' | 'line2' | 'line3'>;
|
|
22
|
+
}
|
|
23
|
+
export declare const getCountryAddressFormat: (countryCode: string, translate?: (key: string) => string) => CountryAddressFormat;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
export const lookupJapaneseAddress = async (zipCode) => {
|
|
3
|
+
try {
|
|
4
|
+
const response = await fetch(`https://zipcloud.ibsnet.co.jp/api/search?zipcode=${zipCode}`);
|
|
5
|
+
const data = await response.json();
|
|
6
|
+
if (data.results && data.results.length > 0) {
|
|
7
|
+
const result = data.results[0];
|
|
8
|
+
return {
|
|
9
|
+
zipCode,
|
|
10
|
+
region: result.address1, // 都道府県
|
|
11
|
+
city: result.address2, // 市区町村
|
|
12
|
+
line1: result.address3, // 町名
|
|
13
|
+
lat: undefined,
|
|
14
|
+
lng: undefined,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
console.error('Error looking up address:', error);
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
export const lookupInternationalAddress = async (zipCode, countryCode) => {
|
|
25
|
+
if (countryCode === 'JP') {
|
|
26
|
+
return lookupJapaneseAddress(zipCode);
|
|
27
|
+
}
|
|
28
|
+
return null;
|
|
29
|
+
};
|
|
30
|
+
export const getCountryAddressFormat = (countryCode, translate = (key) => key) => {
|
|
31
|
+
const japanFormat = {
|
|
32
|
+
labels: {
|
|
33
|
+
zipCode: translate('郵便番号'),
|
|
34
|
+
region: translate('都道府県'),
|
|
35
|
+
city: translate('市区町村'),
|
|
36
|
+
line1: translate('町名・番地'),
|
|
37
|
+
line2: translate('建物名・部屋番号'),
|
|
38
|
+
},
|
|
39
|
+
order: ['zipCode', 'region', 'city', 'line1', 'line2'],
|
|
40
|
+
required: ['zipCode', 'region', 'city', 'line1'],
|
|
41
|
+
};
|
|
42
|
+
const usFormat = {
|
|
43
|
+
labels: {
|
|
44
|
+
zipCode: translate('Zip Code'),
|
|
45
|
+
region: translate('State'),
|
|
46
|
+
city: translate('City'),
|
|
47
|
+
line1: translate('Street Address'),
|
|
48
|
+
line2: translate('Apt, Suite, etc.'),
|
|
49
|
+
line3: translate('Additional Info'),
|
|
50
|
+
},
|
|
51
|
+
order: ['line1', 'line2', 'city', 'region', 'zipCode', 'line3'],
|
|
52
|
+
required: ['line1', 'city', 'region', 'zipCode'],
|
|
53
|
+
};
|
|
54
|
+
switch (countryCode) {
|
|
55
|
+
case 'JP':
|
|
56
|
+
return japanFormat;
|
|
57
|
+
case 'US':
|
|
58
|
+
return usFormat;
|
|
59
|
+
default:
|
|
60
|
+
return japanFormat; // デフォルトとして日本のフォーマットを使用
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../src/ui/composite/input/address/utils.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAWZ,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,OAAe,EAAuC,EAAE;IAClG,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oDAAoD,OAAO,EAAE,CAAC,CAAA;QAC3F,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAElC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;YAC9B,OAAO;gBACL,OAAO;gBACP,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO;gBAChC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO;gBAC9B,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK;gBAC7B,GAAG,EAAE,SAAS;gBACd,GAAG,EAAE,SAAS;aACf,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAA;QACjD,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAC7C,OAAe,EACf,WAAmB,EACkB,EAAE;IACvC,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAeD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,WAAmB,EACnB,YAAqC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAC3B,EAAE;IACxB,MAAM,WAAW,GAAyB;QACxC,MAAM,EAAE;YACN,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC;YAC1B,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC;YACzB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;YACvB,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;YACzB,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC;SAC7B;QACD,KAAK,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;QACtD,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;KACjD,CAAA;IAED,MAAM,QAAQ,GAAyB;QACrC,MAAM,EAAE;YACN,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC;YAC9B,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC;YAC1B,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;YACvB,KAAK,EAAE,SAAS,CAAC,gBAAgB,CAAC;YAClC,KAAK,EAAE,SAAS,CAAC,kBAAkB,CAAC;YACpC,KAAK,EAAE,SAAS,CAAC,iBAAiB,CAAC;SACpC;QACD,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;QAC/D,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;KACjD,CAAA;IAED,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,IAAI;YACP,OAAO,WAAW,CAAA;QACpB,KAAK,IAAI;YACP,OAAO,QAAQ,CAAA;QACjB;YACE,OAAO,WAAW,CAAA,CAAC,uBAAuB;IAC9C,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare const Checkbox: ({ orientation, name, options, defaultValue, onChange, disabled, error, }: {
|
|
2
|
+
orientation: "horizontal" | "vertical";
|
|
3
|
+
name: string;
|
|
4
|
+
options: {
|
|
5
|
+
value: string;
|
|
6
|
+
label: string;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
}[];
|
|
9
|
+
defaultValue?: string[] | null;
|
|
10
|
+
onChange?: (values: string[]) => void;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
error?: boolean;
|
|
13
|
+
}) => import("react").JSX.Element;
|
|
14
|
+
export declare const CheckboxItem: ({ name, checked, onClick, value, label, disabled, error, }: {
|
|
15
|
+
name: string;
|
|
16
|
+
checked: boolean;
|
|
17
|
+
onClick: () => void;
|
|
18
|
+
value: string;
|
|
19
|
+
label: string;
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
error?: boolean;
|
|
22
|
+
}) => import("react").JSX.Element;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import CheckBoxIcon from '@mui/icons-material/CheckBox';
|
|
3
|
+
import CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank';
|
|
4
|
+
import classNames from 'classnames';
|
|
5
|
+
import { useTranslations } from 'next-intl';
|
|
6
|
+
import { useState } from 'react';
|
|
7
|
+
import { Component } from '../../../component';
|
|
8
|
+
import { getTextColorTypeClassName, TextColorTypes } from '../../../theme';
|
|
9
|
+
export const Checkbox = ({ orientation, name, options, defaultValue, onChange, disabled, error, }) => {
|
|
10
|
+
const [selected, setSelected] = useState(defaultValue ?? []);
|
|
11
|
+
return (<div className={classNames('flex flex-wrap', orientation === 'vertical'
|
|
12
|
+
? 'gap-control-padding-md flex-col'
|
|
13
|
+
: 'gap-control-padding-xl gap-y-control-padding-sm')}>
|
|
14
|
+
{options.map((x, i) => (<CheckboxItem key={i} name={name} checked={selected.includes(x.value)} onClick={() => {
|
|
15
|
+
if (selected.includes(x.value)) {
|
|
16
|
+
const newSelected = selected.filter((z) => z !== x.value);
|
|
17
|
+
setSelected(newSelected);
|
|
18
|
+
onChange?.(newSelected);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
const newSelected = [...selected, x.value];
|
|
22
|
+
setSelected(newSelected);
|
|
23
|
+
onChange?.(newSelected);
|
|
24
|
+
}
|
|
25
|
+
}} disabled={disabled === true || x.disabled === true} error={error} {...x}/>))}
|
|
26
|
+
</div>);
|
|
27
|
+
};
|
|
28
|
+
export const CheckboxItem = ({ name, checked, onClick, value, label, disabled, error, }) => {
|
|
29
|
+
const t = useTranslations();
|
|
30
|
+
return (<fieldset data-disabled={disabled} className={classNames('gap-control-padding-md flex w-fit items-center justify-center whitespace-nowrap', disabled ? 'clickable-disabled' : 'clickable-enabled')} onClick={disabled ? undefined : onClick}>
|
|
31
|
+
<input type='checkbox' name={name} value={value} checked={checked} onChange={() => { }} className='hidden'/>
|
|
32
|
+
{checked ? (<CheckBoxIcon className={classNames('size-control-base!', getTextColorTypeClassName(error ? TextColorTypes.error : TextColorTypes.primary, true))}/>) : (<CheckBoxOutlineBlankIcon className={classNames('size-control-base!', getTextColorTypeClassName(error ? TextColorTypes.error : TextColorTypes.disabled, true))}/>)}
|
|
33
|
+
<Component.Typography.Label container={true} className={classNames('text-sm', disabled ? 'cursor-default' : 'cursor-pointer')}>
|
|
34
|
+
{t(label)}
|
|
35
|
+
</Component.Typography.Label>
|
|
36
|
+
</fieldset>);
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=index.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../../../../src/ui/composite/input/checkbox/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import 'react-datepicker/dist/react-datepicker.css';
|
|
2
|
+
import { Rounded } from '../../../theme';
|
|
3
|
+
export declare const DatePicker: (props: Parameters<typeof DatePickerImpl>[0]) => import("react").JSX.Element;
|
|
4
|
+
declare const DatePickerImpl: ({ name, rounded, placement, defaultValue, value, min, max, onChange, disabled, className, required, error, autoFocus, }: {
|
|
5
|
+
name: string;
|
|
6
|
+
rounded?: Rounded;
|
|
7
|
+
placement?: "top" | "right" | "bottom" | "left" | "top-start" | "top-end" | "right-start" | "right-end" | "bottom-start" | "bottom-end" | "left-start" | "left-end";
|
|
8
|
+
defaultValue?: Date;
|
|
9
|
+
value?: Date;
|
|
10
|
+
min?: Date;
|
|
11
|
+
max?: Date;
|
|
12
|
+
onChange?: (value?: Date) => void;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
className?: string;
|
|
15
|
+
required?: boolean;
|
|
16
|
+
error?: boolean;
|
|
17
|
+
autoFocus?: boolean;
|
|
18
|
+
}) => import("react").JSX.Element;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import 'react-datepicker/dist/react-datepicker.css';
|
|
3
|
+
import ClearIcon from '@mui/icons-material/Clear';
|
|
4
|
+
import NavigateBeforeOutlinedIcon from '@mui/icons-material/NavigateBeforeOutlined';
|
|
5
|
+
import NavigateNextOutlinedIcon from '@mui/icons-material/NavigateNextOutlined';
|
|
6
|
+
import classNames from 'classnames';
|
|
7
|
+
import { enUS, ja } from 'date-fns/locale';
|
|
8
|
+
import { forwardRef, useMemo, useState } from 'react';
|
|
9
|
+
import RDatePicker, { registerLocale } from 'react-datepicker';
|
|
10
|
+
import { useDateFormat } from '../../../../hooks/date';
|
|
11
|
+
import { Component } from '../../../component';
|
|
12
|
+
import { Rounded, TextColorTypes } from '../../../theme';
|
|
13
|
+
import { Text } from '../text';
|
|
14
|
+
registerLocale('ja-JP', ja);
|
|
15
|
+
registerLocale('en-US', enUS);
|
|
16
|
+
export const DatePicker = (props) => {
|
|
17
|
+
const { name, value, ...rest } = props;
|
|
18
|
+
const key = useMemo(() => `${name}-${value?.toISOString()}`, [name, value]);
|
|
19
|
+
return <DatePickerImpl {...rest} key={key} name={name} value={value}/>;
|
|
20
|
+
};
|
|
21
|
+
const DatePickerImpl = ({ name, rounded = Rounded.m, placement, defaultValue, value, min, max, onChange, disabled, className, required, error, autoFocus, }) => {
|
|
22
|
+
const { toLocalISOString, toDateString, dataFormat } = useDateFormat();
|
|
23
|
+
const [date, setDate] = useState(() => {
|
|
24
|
+
const dateToUse = value ?? defaultValue;
|
|
25
|
+
if (dateToUse) {
|
|
26
|
+
return new Date(dateToUse.getFullYear(), dateToUse.getMonth(), dateToUse.getDate());
|
|
27
|
+
}
|
|
28
|
+
return undefined;
|
|
29
|
+
});
|
|
30
|
+
const [onFocus, setOnFocus] = useState(autoFocus ?? false);
|
|
31
|
+
return (<div className={classNames('flex w-full min-w-[100px] cursor-pointer', className)}>
|
|
32
|
+
<input className='absolute size-0 opacity-0' name={name} value={date ? toLocalISOString(date) : ''} onChange={() => { }} required={required}/>
|
|
33
|
+
<div className='relative w-full'>
|
|
34
|
+
<RDatePicker portalId='portal' wrapperClassName='w-full' selected={date} minDate={min ?? undefined} maxDate={max ?? undefined} onChange={(e) => {
|
|
35
|
+
if (e) {
|
|
36
|
+
const localDate = new Date(e.getFullYear(), e.getMonth(), e.getDate());
|
|
37
|
+
setDate(localDate);
|
|
38
|
+
onChange?.(localDate);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
setDate(undefined);
|
|
42
|
+
onChange?.(undefined);
|
|
43
|
+
}
|
|
44
|
+
const hiddenInput = document.querySelector(`input[name="${name}"]`);
|
|
45
|
+
if (hiddenInput) {
|
|
46
|
+
const event = new Event('change', { bubbles: true });
|
|
47
|
+
hiddenInput.dispatchEvent(event);
|
|
48
|
+
}
|
|
49
|
+
}} placeholderText={toDateString(new Date())} dateFormat={dataFormat} renderCustomHeader={({ date, changeYear, changeMonth, decreaseMonth, increaseMonth, prevMonthButtonDisabled, nextMonthButtonDisabled, }) => (<CustomCalendarHeader date={date} changeYear={changeYear} changeMonth={changeMonth} decreaseMonth={decreaseMonth} increaseMonth={increaseMonth} prevMonthButtonDisabled={prevMonthButtonDisabled} nextMonthButtonDisabled={nextMonthButtonDisabled} minYear={min?.getFullYear()} maxYear={max?.getFullYear()}/>)} onCalendarOpen={() => setOnFocus(true)} onCalendarClose={() => setOnFocus(false)} customInput={<CustomInput value={toDateString(date)} focused={onFocus} rounded={rounded} disabled={disabled} error={error}/>} popperPlacement={placement} disabled={disabled} required={false}/>
|
|
50
|
+
{required !== true && date && (<div className='p-control-padding-base absolute top-0 right-0 bottom-0 flex items-center justify-center'>
|
|
51
|
+
<ClearIcon className='bg-transparent! size-control-sm! cursor-pointer!' onClick={() => {
|
|
52
|
+
setDate(undefined);
|
|
53
|
+
onChange?.(undefined);
|
|
54
|
+
const hiddenInput = document.querySelector(`input[name="${name}"]`);
|
|
55
|
+
if (hiddenInput) {
|
|
56
|
+
const event = new Event('change', { bubbles: true });
|
|
57
|
+
hiddenInput.dispatchEvent(event);
|
|
58
|
+
}
|
|
59
|
+
}}/>
|
|
60
|
+
</div>)}
|
|
61
|
+
</div>
|
|
62
|
+
</div>);
|
|
63
|
+
};
|
|
64
|
+
const CustomInput = forwardRef(({ value, focused, rounded, disabled, error, placeholder, onClick, }, ref) => {
|
|
65
|
+
return (<div className='w-full' onClick={onClick}>
|
|
66
|
+
<Text key={value} name='' autoComplete='off' focused={focused} rounded={rounded} disabled={disabled} inputClassName='pointer-events-none caret-transparent' required={false} isClearable={false} error={error} placeholder={placeholder} value={value} readOnly={true} ref={ref}/>
|
|
67
|
+
</div>);
|
|
68
|
+
});
|
|
69
|
+
CustomInput.displayName = 'CustomInput';
|
|
70
|
+
const CustomCalendarHeader = ({ date, changeYear, changeMonth, decreaseMonth, increaseMonth, prevMonthButtonDisabled, nextMonthButtonDisabled, minYear, maxYear, }) => {
|
|
71
|
+
const { toString } = useDateFormat();
|
|
72
|
+
const years = useMemo(() => [...Array((maxYear ?? new Date().getFullYear() + 50) - (minYear ?? 1970) + 1)].map((_, i) => (minYear ?? 1970) + i), [minYear, maxYear]);
|
|
73
|
+
const handleYearChange = (e) => {
|
|
74
|
+
const year = Number(e.target.value);
|
|
75
|
+
changeYear(year);
|
|
76
|
+
};
|
|
77
|
+
const handleMonthChange = (e) => {
|
|
78
|
+
const month = Number(e.target.value);
|
|
79
|
+
changeMonth(month);
|
|
80
|
+
};
|
|
81
|
+
return (<div className='flex flex-col'>
|
|
82
|
+
<div className='flex items-center justify-between'>
|
|
83
|
+
<Component.Button variant='text' className='bg-transparent!' icon={NavigateBeforeOutlinedIcon} color={TextColorTypes.sub} onClick={decreaseMonth} disabled={prevMonthButtonDisabled}/>
|
|
84
|
+
<div className='flex items-center justify-center'>
|
|
85
|
+
<select key={`year-${date.getFullYear()}`} defaultValue={date.getFullYear()} onChange={handleYearChange}>
|
|
86
|
+
{years.map((year) => (<option key={year} value={year}>
|
|
87
|
+
{year}
|
|
88
|
+
</option>))}
|
|
89
|
+
</select>
|
|
90
|
+
<select key={`month-${date.getMonth()}`} defaultValue={date.getMonth()} onChange={handleMonthChange}>
|
|
91
|
+
{Array.from({ length: 12 }, (_, index) => toString(new Date(date.getFullYear(), index), { month: 'long' })).map((month, index) => (<option key={month} value={index}>
|
|
92
|
+
{month}
|
|
93
|
+
</option>))}
|
|
94
|
+
</select>
|
|
95
|
+
</div>
|
|
96
|
+
<Component.Button variant='text' className='bg-transparent!' icon={NavigateNextOutlinedIcon} color={TextColorTypes.sub} onClick={increaseMonth} disabled={nextMonthButtonDisabled}/>
|
|
97
|
+
</div>
|
|
98
|
+
</div>);
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=index.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../../../../src/ui/composite/input/datePicker/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ComponentProps } from 'react';
|
|
2
|
+
import { DatePicker } from '../datePicker';
|
|
3
|
+
export declare const DateRange: ({ defaultValue, name, disabled, error, stepDays, onChange, ...props }: Omit<ComponentProps<typeof DatePicker>, "defaultValue" | "onChange"> & {
|
|
4
|
+
defaultValue?: {
|
|
5
|
+
start?: Date;
|
|
6
|
+
end?: Date;
|
|
7
|
+
};
|
|
8
|
+
error?: boolean;
|
|
9
|
+
stepDays?: number;
|
|
10
|
+
onChange?: (value: {
|
|
11
|
+
start?: Date;
|
|
12
|
+
end?: Date;
|
|
13
|
+
}) => void;
|
|
14
|
+
}) => import("react").JSX.Element;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useCallback, useState } from 'react';
|
|
3
|
+
import { Component } from '../../../component';
|
|
4
|
+
import { DatePicker } from '../datePicker';
|
|
5
|
+
export const DateRange = ({ defaultValue, name, disabled, error, stepDays = 0, onChange, ...props }) => {
|
|
6
|
+
const [startDate, setStartDate] = useState(defaultValue?.start);
|
|
7
|
+
const [endDate, setEndDate] = useState(defaultValue?.end);
|
|
8
|
+
const handleStartDateChange = useCallback((newStartDate) => {
|
|
9
|
+
setStartDate(newStartDate);
|
|
10
|
+
if (!newStartDate) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const minEndDate = new Date(newStartDate.getTime() + stepDays * 24 * 60 * 60 * 1000);
|
|
14
|
+
if (!endDate || endDate.getTime() < minEndDate.getTime()) {
|
|
15
|
+
setEndDate(minEndDate);
|
|
16
|
+
}
|
|
17
|
+
}, [endDate, stepDays]);
|
|
18
|
+
const handleEndDateChange = useCallback((newEndDate) => {
|
|
19
|
+
if (startDate) {
|
|
20
|
+
const minEndDate = new Date(startDate.getTime() + stepDays * 24 * 60 * 60 * 1000);
|
|
21
|
+
if (newEndDate && newEndDate.getTime() < minEndDate.getTime()) {
|
|
22
|
+
setEndDate(minEndDate);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
setEndDate(newEndDate);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
setEndDate(newEndDate);
|
|
30
|
+
}
|
|
31
|
+
}, [startDate, stepDays]);
|
|
32
|
+
return (<div className='gap-control-padding-base flex items-center'>
|
|
33
|
+
<DatePicker {...props} name={`${name}StartAt`} value={startDate} onChange={(e) => {
|
|
34
|
+
handleStartDateChange(e);
|
|
35
|
+
onChange?.({ start: e });
|
|
36
|
+
}} disabled={disabled} error={error}/>
|
|
37
|
+
<Component.Typography.P container={true} disabled={disabled} className='text-sm'>
|
|
38
|
+
〜
|
|
39
|
+
</Component.Typography.P>
|
|
40
|
+
<DatePicker {...props} name={`${name}EndAt`} value={endDate} min={startDate ? new Date(startDate.getTime() + stepDays * 24 * 60 * 60 * 1000) : undefined} onChange={(e) => {
|
|
41
|
+
handleEndDateChange(e);
|
|
42
|
+
onChange?.({ end: e });
|
|
43
|
+
}} disabled={disabled} error={error}/>
|
|
44
|
+
</div>);
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=index.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../../../../src/ui/composite/input/dateRange/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { SelectInstance } from 'react-select';
|
|
2
|
+
import type { SelectOption } from '../select/types';
|
|
3
|
+
export declare const DateTimePicker: ({ name, defaultValue, value, min, max, onChange, disabled, required, error, stepMinutes, timeSelectRef, }: {
|
|
4
|
+
name: string;
|
|
5
|
+
defaultValue?: Date;
|
|
6
|
+
value?: Date;
|
|
7
|
+
min?: Date;
|
|
8
|
+
max?: Date;
|
|
9
|
+
onChange?: (value: Date) => void;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
required?: boolean;
|
|
12
|
+
error?: boolean;
|
|
13
|
+
stepMinutes?: number;
|
|
14
|
+
timeSelectRef?: React.RefObject<SelectInstance<SelectOption, boolean> | null>;
|
|
15
|
+
}) => import("react").JSX.Element;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { DatePicker } from '../datePicker';
|
|
4
|
+
import { TimePicker } from '../timePicker';
|
|
5
|
+
export const DateTimePicker = ({ name, defaultValue, value, min, max, onChange, disabled, required, error, stepMinutes, timeSelectRef, }) => {
|
|
6
|
+
const [dateTime, setDateTime] = useState(() => {
|
|
7
|
+
const dateToUse = value ?? defaultValue;
|
|
8
|
+
if (dateToUse === undefined) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
const ret = new Date(dateToUse);
|
|
12
|
+
ret.setSeconds(0);
|
|
13
|
+
ret.setMilliseconds(0);
|
|
14
|
+
const step = stepMinutes ?? 30;
|
|
15
|
+
if (step > 0) {
|
|
16
|
+
const m = ret.getMinutes();
|
|
17
|
+
const rounded = Math.round(m / step) * step;
|
|
18
|
+
ret.setMinutes(rounded);
|
|
19
|
+
}
|
|
20
|
+
return ret;
|
|
21
|
+
});
|
|
22
|
+
return (<>
|
|
23
|
+
<input className='absolute size-0 opacity-0' name={name} value={dateTime?.toISOString() ?? ''} onChange={() => { }} required={required}/>
|
|
24
|
+
<div className='gap-control-padding-base flex w-full items-center'>
|
|
25
|
+
<div className='flex-3'>
|
|
26
|
+
<DatePicker name='' key={`date-${dateTime?.toISOString()}`} value={dateTime} min={min} max={max} onChange={(e) => {
|
|
27
|
+
if (!e) {
|
|
28
|
+
setDateTime(undefined);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const ret = new Date(dateTime?.getTime() ?? new Date().getTime());
|
|
32
|
+
if (!dateTime) {
|
|
33
|
+
ret.setHours(0);
|
|
34
|
+
ret.setMinutes(0);
|
|
35
|
+
ret.setSeconds(0);
|
|
36
|
+
ret.setMilliseconds(0);
|
|
37
|
+
}
|
|
38
|
+
ret.setFullYear(e.getFullYear());
|
|
39
|
+
ret.setMonth(e.getMonth());
|
|
40
|
+
ret.setDate(e.getDate());
|
|
41
|
+
setDateTime(ret);
|
|
42
|
+
onChange?.(ret);
|
|
43
|
+
}} disabled={disabled} required={required} error={error}/>
|
|
44
|
+
</div>
|
|
45
|
+
<div className='flex-2'>
|
|
46
|
+
<TimePicker name='' key={`time-${dateTime?.toISOString()}`} value={dateTime
|
|
47
|
+
? `${dateTime.getHours().toString().padStart(2, '0')}:${dateTime.getMinutes().toString().padStart(2, '0')}`
|
|
48
|
+
: undefined} min={min && dateTime && min.toDateString() === dateTime.toDateString()
|
|
49
|
+
? `${min.getHours().toString().padStart(2, '0')}:${min.getMinutes().toString().padStart(2, '0')}`
|
|
50
|
+
: undefined} max={max && dateTime && max.toDateString() === dateTime.toDateString()
|
|
51
|
+
? `${max.getHours().toString().padStart(2, '0')}:${max.getMinutes().toString().padStart(2, '0')}`
|
|
52
|
+
: undefined} onChange={(e) => {
|
|
53
|
+
if (!e) {
|
|
54
|
+
setDateTime(undefined);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const d = e.split(':');
|
|
58
|
+
const ret = new Date(dateTime?.getTime() ?? new Date().getTime());
|
|
59
|
+
if (!dateTime) {
|
|
60
|
+
ret.setHours(0);
|
|
61
|
+
ret.setMinutes(0);
|
|
62
|
+
ret.setSeconds(0);
|
|
63
|
+
ret.setMilliseconds(0);
|
|
64
|
+
}
|
|
65
|
+
ret.setHours(Number(d[0]));
|
|
66
|
+
ret.setMinutes(Number(d[1]));
|
|
67
|
+
setDateTime(ret);
|
|
68
|
+
onChange?.(ret);
|
|
69
|
+
}} disabled={disabled} required={required} error={error} stepMinutes={stepMinutes} selectRef={timeSelectRef}/>
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
|
+
</>);
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=index.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../../../../src/ui/composite/input/dateTimePicker/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ComponentProps } from 'react';
|
|
2
|
+
import { DateTimePicker } from '../dateTimePicker';
|
|
3
|
+
export declare const DateTimeRange: ({ defaultValue, name, disabled, error, stepMinutes, onChange, ...props }: Omit<ComponentProps<typeof DateTimePicker>, "defaultValue" | "onChange"> & {
|
|
4
|
+
defaultValue?: {
|
|
5
|
+
start?: Date;
|
|
6
|
+
end?: Date;
|
|
7
|
+
};
|
|
8
|
+
error?: boolean;
|
|
9
|
+
stepMinutes?: number;
|
|
10
|
+
onChange?: (value: {
|
|
11
|
+
start?: Date;
|
|
12
|
+
end?: Date;
|
|
13
|
+
}) => void;
|
|
14
|
+
}) => import("react").JSX.Element;
|