@jenesei-software/jenesei-kit-react 1.3.27 → 1.3.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/area-preview.cjs.js +1 -1
- package/build/area-preview.es.js +1 -1
- package/build/area-skeleton.cjs.js +1 -1
- package/build/area-skeleton.es.js +1 -1
- package/build/build-info.txt +3 -3
- package/build/{component-BbZXNg5P.cjs → component-B97JZKUB.cjs} +2 -2
- package/build/{component-BbZXNg5P.cjs.map → component-B97JZKUB.cjs.map} +1 -1
- package/build/component-BABozkX6.cjs +2 -0
- package/build/component-BABozkX6.cjs.map +1 -0
- package/build/{component-DvkJKhCA.js → component-BHfH9Gw4.js} +5 -2
- package/build/component-BHfH9Gw4.js.map +1 -0
- package/build/{component-CGXjLqiU.js → component-BT3dejQO.js} +2 -2
- package/build/{component-CGXjLqiU.js.map → component-BT3dejQO.js.map} +1 -1
- package/build/{component-CUg8vGc0.js → component-BaGCJM5V.js} +2 -2
- package/build/{component-CUg8vGc0.js.map → component-BaGCJM5V.js.map} +1 -1
- package/build/{component-DXRFP4Ym.cjs → component-BgFRZSbi.cjs} +2 -2
- package/build/{component-DXRFP4Ym.cjs.map → component-BgFRZSbi.cjs.map} +1 -1
- package/build/{component-BCV2luzE.js → component-BpwTWRxp.js} +2 -2
- package/build/{component-BCV2luzE.js.map → component-BpwTWRxp.js.map} +1 -1
- package/build/{component-CL9kCwRv.js → component-Br2H7F-p.js} +2 -2
- package/build/{component-CL9kCwRv.js.map → component-Br2H7F-p.js.map} +1 -1
- package/build/{component-CsuyjLrN.js → component-BzFd5DyJ.js} +3 -3
- package/build/{component-CsuyjLrN.js.map → component-BzFd5DyJ.js.map} +1 -1
- package/build/{component-DTotEm4D.cjs → component-CjiOOMn9.cjs} +2 -2
- package/build/{component-DTotEm4D.cjs.map → component-CjiOOMn9.cjs.map} +1 -1
- package/build/{component-7NBd7NIb.cjs → component-ClQrDMsC.cjs} +2 -2
- package/build/{component-7NBd7NIb.cjs.map → component-ClQrDMsC.cjs.map} +1 -1
- package/build/{component-zim9WtKE.js → component-Cp433cAv.js} +3 -3
- package/build/{component-zim9WtKE.js.map → component-Cp433cAv.js.map} +1 -1
- package/build/{component-DYsviH75.cjs → component-CsIx8Dgr.cjs} +2 -2
- package/build/{component-DYsviH75.cjs.map → component-CsIx8Dgr.cjs.map} +1 -1
- package/build/{component-C0wHqqsE.js → component-D2Y1Ky9N.js} +4 -4
- package/build/{component-C0wHqqsE.js.map → component-D2Y1Ky9N.js.map} +1 -1
- package/build/{component-Ds4G9JaH.cjs → component-DFMjWiWi.cjs} +2 -2
- package/build/{component-Ds4G9JaH.cjs.map → component-DFMjWiWi.cjs.map} +1 -1
- package/build/{component-ChwxoVt7.js → component-DJcrW4KX.js} +2 -2
- package/build/{component-ChwxoVt7.js.map → component-DJcrW4KX.js.map} +1 -1
- package/build/{component-P6uOD564.js → component-DYX1oGKH.js} +2 -2
- package/build/{component-P6uOD564.js.map → component-DYX1oGKH.js.map} +1 -1
- package/build/{component-DC3s_be7.cjs → component-DcAF7Isg.cjs} +2 -2
- package/build/{component-DC3s_be7.cjs.map → component-DcAF7Isg.cjs.map} +1 -1
- package/build/{component-BzxsZZwo.cjs → component-Dwf2HFot.cjs} +2 -2
- package/build/{component-BzxsZZwo.cjs.map → component-Dwf2HFot.cjs.map} +1 -1
- package/build/{component-CC8gkK9W.cjs → component-OxaRuSX5.cjs} +2 -2
- package/build/{component-CC8gkK9W.cjs.map → component-OxaRuSX5.cjs.map} +1 -1
- package/build/{component-Ei1bxdq2.cjs → component-TMPesaZf.cjs} +2 -2
- package/build/{component-Ei1bxdq2.cjs.map → component-TMPesaZf.cjs.map} +1 -1
- package/build/component-accordion.cjs.js +1 -1
- package/build/component-accordion.es.js +2 -2
- package/build/component-button-group.cjs.js +1 -1
- package/build/component-button-group.es.js +2 -2
- package/build/component-button.cjs.js +1 -1
- package/build/component-button.es.js +1 -1
- package/build/component-checkbox-group.cjs.js +1 -1
- package/build/component-checkbox-group.es.js +2 -2
- package/build/component-checkbox.cjs.js +1 -1
- package/build/component-checkbox.es.js +2 -2
- package/build/component-date-picker.cjs.js +1 -1
- package/build/component-date-picker.d.ts +3 -0
- package/build/component-date-picker.es.js +2 -2
- package/build/component-icon.cjs.js +1 -1
- package/build/component-icon.es.js +1 -1
- package/build/component-image-button.cjs.js +1 -1
- package/build/component-image-button.es.js +1 -1
- package/build/component-image-select.cjs.js +1 -1
- package/build/component-image-select.es.js +2 -2
- package/build/component-image-slider.cjs.js +1 -1
- package/build/component-image-slider.es.js +2 -2
- package/build/component-image.cjs.js +1 -1
- package/build/component-image.es.js +2 -2
- package/build/component-input-otp.cjs.js +1 -1
- package/build/component-input-otp.d.ts +1 -0
- package/build/component-input-otp.es.js +2 -2
- package/build/component-input.cjs.js +1 -1
- package/build/component-input.d.ts +1 -0
- package/build/component-input.es.js +2 -2
- package/build/component-map.cjs.js +1 -1
- package/build/component-map.es.js +2 -2
- package/build/component-pagination.cjs.js +1 -1
- package/build/component-pagination.es.js +1 -1
- package/build/component-range.cjs.js +1 -1
- package/build/component-range.d.ts +1 -0
- package/build/component-range.es.js +2 -2
- package/build/component-select.cjs.js +1 -1
- package/build/component-select.es.js +1 -1
- package/build/component-textarea.cjs.js +1 -1
- package/build/component-textarea.d.ts +3 -1
- package/build/component-textarea.es.js +1 -1
- package/build/component-toggle.cjs.js +1 -1
- package/build/component-toggle.es.js +2 -2
- package/build/component-tooltip.cjs.js +1 -1
- package/build/component-tooltip.es.js +1 -1
- package/build/component-typography.cjs.js +1 -1
- package/build/component-typography.es.js +1 -1
- package/build/{component-BI5rC-2m.js → component-yTziSQZ7.js} +3 -3
- package/build/{component-BI5rC-2m.js.map → component-yTziSQZ7.js.map} +1 -1
- package/build/{component.components-DUGaqWm1.cjs → component.components-CsWG1Rwi.cjs} +2 -2
- package/build/{component.components-DUGaqWm1.cjs.map → component.components-CsWG1Rwi.cjs.map} +1 -1
- package/build/{component.components-DgG3v6IP.js → component.components-KcVM2DN2.js} +2 -2
- package/build/{component.components-DgG3v6IP.js.map → component.components-KcVM2DN2.js.map} +1 -1
- package/build/{component.constants-DuIk1IUA.cjs → component.constants-B-csc6ih.cjs} +2 -2
- package/build/{component.constants-DuIk1IUA.cjs.map → component.constants-B-csc6ih.cjs.map} +1 -1
- package/build/{component.constants-C_datTCs.js → component.constants-BkbucsSA.js} +3 -3
- package/build/{component.constants-C_datTCs.js.map → component.constants-BkbucsSA.js.map} +1 -1
- package/build/{component.constants-Bg4nPldh.js → component.constants-BmRV80H6.js} +2 -2
- package/build/{component.constants-Bg4nPldh.js.map → component.constants-BmRV80H6.js.map} +1 -1
- package/build/{component.constants-VFLYS55V.cjs → component.constants-ECVKYlcl.cjs} +2 -2
- package/build/{component.constants-VFLYS55V.cjs.map → component.constants-ECVKYlcl.cjs.map} +1 -1
- package/build/component.types-DRNn3P5n.cjs +2 -0
- package/build/component.types-DRNn3P5n.cjs.map +1 -0
- package/build/{component.types-CW5HNGvz.js → component.types-SveBau90.js} +20 -2
- package/build/component.types-SveBau90.js.map +1 -0
- package/build/consts.cjs.js +1 -1
- package/build/consts.es.js +1 -1
- package/build/context-app.cjs.js +1 -1
- package/build/context-app.es.js +2 -2
- package/build/context-sonner.cjs.js +1 -1
- package/build/context-sonner.es.js +2 -2
- package/build/{context.constants-rTgzRM3c.js → context.constants-ByIVCRij.js} +2 -1
- package/build/{context.constants-rTgzRM3c.js.map → context.constants-ByIVCRij.js.map} +1 -1
- package/build/{context.constants-B9vCuOqK.cjs → context.constants-CHzb-q9a.cjs} +2 -2
- package/build/{context.constants-B9vCuOqK.cjs.map → context.constants-CHzb-q9a.cjs.map} +1 -1
- package/build/{context.hooks-BHFgUgBF.js → context.hooks-BDsIAUYd.js} +2 -2
- package/build/{context.hooks-BHFgUgBF.js.map → context.hooks-BDsIAUYd.js.map} +1 -1
- package/build/{context.hooks-D4-JZ2rN.js → context.hooks-BGRydtLx.js} +2 -2
- package/build/{context.hooks-D4-JZ2rN.js.map → context.hooks-BGRydtLx.js.map} +1 -1
- package/build/{context.hooks-C8qSZOb4.cjs → context.hooks-BHOQU6q9.cjs} +2 -2
- package/build/{context.hooks-C8qSZOb4.cjs.map → context.hooks-BHOQU6q9.cjs.map} +1 -1
- package/build/{context.hooks-6lCyn9Dp.cjs → context.hooks-Bjivw-Im.cjs} +2 -2
- package/build/{context.hooks-6lCyn9Dp.cjs.map → context.hooks-Bjivw-Im.cjs.map} +1 -1
- package/build/index.cjs.js +1 -1
- package/build/index.d.ts +5 -1
- package/build/index.es.js +18 -18
- package/build/style-error.cjs.js +1 -1
- package/build/style-error.es.js +1 -1
- package/build/style-theme.cjs.js +1 -1
- package/build/style-theme.es.js +1 -1
- package/build/{use-C3yxmiPP.cjs → use-2JigT9W0.cjs} +2 -2
- package/build/{use-C3yxmiPP.cjs.map → use-2JigT9W0.cjs.map} +1 -1
- package/build/{use-DP84XchN.js → use-DQXYSmcn.js} +3 -3
- package/build/{use-DP84XchN.js.map → use-DQXYSmcn.js.map} +1 -1
- package/package.json +1 -1
- package/build/component-DgZATMAS.cjs +0 -2
- package/build/component-DgZATMAS.cjs.map +0 -1
- package/build/component-DvkJKhCA.js.map +0 -1
- package/build/component.types-CW5HNGvz.js.map +0 -1
- package/build/component.types-OChufSyJ.cjs +0 -2
- package/build/component.types-OChufSyJ.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.constants-C_datTCs.js","sources":["../src/hooks/use-image-slider/use.tsx","../src/components/image-slider/component.tsx","../src/components/image-slider/component.constants.tsx"],"sourcesContent":["import { Button } from '@local/components/button';\nimport { Image } from '@local/components/image';\nimport { ImageSliderProps, SliderDot, SliderImage } from '@local/components/image-slider';\nimport { Stack } from '@local/components/stack';\nimport { Typography } from '@local/components/typography';\nimport { useDialog, useDialogProps } from '@local/contexts/context-dialog';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport { AnimatePresence, PanInfo, Variants } from 'framer-motion';\nimport { FC, useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { useImageSliderProps } from '.';\n\nexport const useImageSlider = (props: useImageSliderProps) => {\n const { onIndexChange } = props;\n\n const size = useMemo(() => KEY_SIZE_DATA[props.size], [props.size]);\n const br = useMemo(() => `${size.radius}px`, [size.radius]);\n\n const images = useMemo(() => props.images, [props.images]);\n\n const [{ activeImageId, direction }, setActiveImage] = useState({\n activeImageId: images?.[0]?.id ?? null,\n direction: 0,\n });\n const isLengthOne = useMemo(() => images?.length === 1, [images]);\n const isLengthZero = useMemo(() => images?.length === 0, [images]);\n\n const activeImageIndex = useMemo(() => images.findIndex((img) => img.id === activeImageId), [activeImageId, images]);\n\n const swipeToImage = useCallback(\n (swipeDirection: number) => {\n const currentIndex = images.findIndex((img) => img.id === activeImageId);\n const nextIndex = (currentIndex + swipeDirection + images.length) % images.length;\n setActiveImage({ activeImageId: images[nextIndex].id, direction: swipeDirection });\n },\n [activeImageId, images],\n );\n const dragEndHandler = useCallback(\n (dragInfo: PanInfo) => {\n const { offset, velocity } = dragInfo;\n const swipeThreshold = 50;\n const swipePower = Math.abs(offset.x) * velocity.x;\n\n if (swipePower > 500 || offset.x > swipeThreshold) {\n swipeToImage(-1);\n } else if (swipePower < -500 || offset.x < -swipeThreshold) {\n swipeToImage(1);\n }\n },\n [swipeToImage],\n );\n const skipToImage = useCallback(\n (imageId: number) => {\n const currentIndex = images.findIndex((img) => img.id === activeImageId);\n const newIndex = images.findIndex((img) => img.id === imageId);\n if (newIndex === -1 || newIndex === currentIndex) return;\n\n const direction = newIndex > currentIndex ? 1 : -1;\n setActiveImage({ activeImageId: imageId, direction });\n },\n [activeImageId, images],\n );\n\n useEffect(() => {\n if (activeImageId) onIndexChange?.(activeImageId);\n }, [activeImageId, onIndexChange]);\n\n const { add } = useDialog<ComponentHandleAddProps>({\n br: br,\n dragEndHandler: dragEndHandler,\n images: images,\n children: props.children,\n activeImageIndex: activeImageIndex,\n activeImageId: activeImageId,\n swipeToImage: swipeToImage,\n skipToImage: skipToImage,\n direction: direction,\n aspect: props.imageSettings.aspect,\n genre: props.genre,\n size: props.size,\n failedToLoad: props.locales.failedToLoad,\n isLengthOne: isLengthOne,\n propsDialog: {\n borderRadius: br,\n padding: '0',\n background: 'whiteStandard',\n },\n });\n const handleAdd = useCallback(() => {\n add({\n content: (params, remove) => <ComponentHandleAdd params={params} remove={remove} />,\n });\n }, [add]);\n\n return {\n isLengthZero,\n direction,\n activeImageId,\n isLengthOne,\n dragEndHandler,\n activeImageIndex,\n swipeToImage,\n skipToImage,\n handleAdd,\n };\n};\nconst sliderVariants: Variants = {\n initial: (direction) => ({\n x: direction > 0 ? '100%' : '-100%',\n scale: 1,\n opacity: 0,\n }),\n active: { x: 0, scale: 1, opacity: 1 },\n exit: (direction) => ({\n x: direction > 0 ? '-100%' : '100%',\n scale: 1,\n opacity: 0.2,\n }),\n};\nconst sliderTransition = {\n duration: 0.3,\n ease: [0.56, 0.03, 0.12, 1.04],\n};\n\ntype ComponentHandleAddProps = {\n br?: string;\n dragEndHandler: (dragInfo: PanInfo) => void;\n images: ImageSliderProps['images'];\n children?: ImageSliderProps['children'];\n activeImageIndex: number;\n activeImageId: number | null;\n swipeToImage: (swipeDirection: number) => void;\n skipToImage: (imageId: number) => void;\n direction: number;\n aspect: number;\n failedToLoad: string;\n isLengthOne: boolean;\n} & Pick<ImageSliderProps, 'genre' | 'size'>;\n\nconst ComponentHandleAdd: FC<{\n params?: useDialogProps<ComponentHandleAddProps>;\n remove?: () => void;\n}> = ({ params, remove }) => {\n return (\n <Stack\n sx={{\n default: {\n position: 'relative',\n overflow: 'hidden',\n aspectRatio: `${params?.aspect! * 2} / 2`,\n width: 'auto',\n maxWidth: '70dvw',\n height: '85dvh',\n borderRadius: params?.br,\n },\n tablet: {\n maxWidth: '95dvw',\n },\n }}\n >\n <AnimatePresence initial={false} custom={params?.direction}>\n <SliderImage\n key={params?.activeImageId}\n style={{\n overflow: 'hidden',\n borderRadius: params?.br,\n }}\n custom={params?.direction}\n variants={sliderVariants}\n initial='initial'\n animate='active'\n exit='exit'\n transition={sliderTransition}\n {...(!params?.isLengthOne\n ? {\n drag: 'x',\n dragConstraints: { left: 0, right: 0 },\n dragElastic: 0.5,\n onDragEnd: (_, dragInfo) => params?.dragEndHandler(dragInfo),\n }\n : {})}\n >\n <Image\n sxStack={(theme) => ({\n default: {\n width: '100%',\n height: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.palette.black10,\n position: 'absolute',\n pointerEvents: 'none',\n },\n })}\n isShowBeforeImage\n sxImage={{\n default: {\n objectFit: 'contain',\n },\n }}\n alt={(params?.images ?? [])?.[params?.activeImageIndex ?? 0]?.imageSrc}\n src={(params?.images ?? [])?.[params?.activeImageIndex ?? 0]?.imageSrc}\n componentFallback={\n <Typography\n sx={{\n default: {\n variant: 'h6',\n },\n }}\n >\n {params?.failedToLoad}\n </Typography>\n }\n />\n {(params?.images ?? [])?.[params?.activeImageIndex ?? 0]?.children}\n </SliderImage>\n </AnimatePresence>\n {typeof params?.children === 'function' ? params?.children?.({ isDialog: true }) : params?.children}\n\n <Button\n sx={{\n default: {\n position: 'absolute',\n bottom: 15,\n right: 15,\n },\n }}\n genre={params?.genre ?? 'product'}\n size={params?.size ?? 'medium'}\n icons={[\n {\n type: 'id',\n name: 'Arrow4',\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => remove?.()}\n />\n {!params?.isLengthOne ? (\n <>\n <Stack\n sx={{\n default: {\n position: 'absolute',\n bottom: 15,\n left: 15,\n gap: '8px',\n },\n }}\n >\n <Button\n genre={params?.genre ?? 'product'}\n size={params?.size ?? 'medium'}\n icons={[\n {\n type: 'id',\n name: 'Arrow4',\n turn: 90,\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isPlaystationEffect\n isRadius\n onClick={() => params?.swipeToImage?.(-1)}\n />\n <Button\n genre={params?.genre ?? 'product'}\n size={params?.size ?? 'medium'}\n icons={[\n {\n type: 'id',\n name: 'Arrow4',\n turn: -90,\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isPlaystationEffect\n isRadius\n onClick={() => params?.swipeToImage?.(1)}\n />\n </Stack>\n <Stack\n sx={{\n default: {\n position: 'absolute',\n bottom: 15,\n left: '50%',\n transform: 'translateX(-50%)',\n gap: '4px',\n },\n }}\n >\n {(params?.images ?? [])?.map((i) => (\n <SliderDot\n onClick={() => params?.skipToImage?.(i.id)}\n key={i.id}\n initial={false}\n animate={{\n scale: params?.activeImageId === i.id ? 1.5 : 1,\n opacity: params?.activeImageId === i.id ? 1 : 0.5,\n }}\n />\n ))}\n </Stack>\n </>\n ) : null}\n </Stack>\n );\n};\n","import { useImageSlider } from '@local/hooks/use-image-slider';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport { AnimatePresence, Variants } from 'framer-motion';\nimport { FC, useMemo } from 'react';\n\nimport { Button } from '../button';\nimport { Icon } from '../icon';\nimport { Image } from '../image';\nimport { Stack, StackMotion } from '../stack';\nimport { Typography } from '../typography';\nimport { ImageSliderProps, SliderDot, SliderImage } from '.';\n\nexport const ImageSlider: FC<ImageSliderProps> = (props) => {\n const { onIndexChange } = props;\n const images = useMemo(() => props.images, [props.images]);\n const size = useMemo(() => KEY_SIZE_DATA[props.size], [props.size]);\n const br = useMemo(() => `${size.radius}px`, [size.radius]);\n\n const {\n isLengthZero,\n direction,\n activeImageId,\n isLengthOne,\n dragEndHandler,\n activeImageIndex,\n swipeToImage,\n skipToImage,\n handleAdd,\n } = useImageSlider({\n genre: props.genre,\n size: props.size,\n images: images,\n imageSettings: props.imageSettings,\n locales: props.locales,\n onIndexChange: onIndexChange,\n children: props.children,\n });\n return (\n <StackMotion\n {...props.propsStack}\n sx={(theme) => ({\n ...props.propsStack?.sx,\n default: {\n borderRadius: br,\n flexDirection: 'column',\n alignItems: 'center',\n overflow: 'hidden',\n width: 'auto',\n maxWidth: '70dvw',\n height: '85dvh',\n ...(props.propsStack?.sx\n ? typeof props.propsStack?.sx === 'function'\n ? props.propsStack?.sx(theme).default\n : props.propsStack?.sx.default\n : {}),\n },\n tablet: {\n maxWidth: '95dvw',\n ...(props.propsStack?.sx\n ? typeof props.propsStack?.sx === 'function'\n ? props.propsStack?.sx(theme).tablet\n : props.propsStack?.sx.tablet\n : {}),\n },\n })}\n >\n {props.isLoading ? (\n <Stack\n sx={{\n default: {\n width: '100%',\n height: '100%',\n position: 'relative',\n overflow: 'hidden',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n }}\n >\n <Icon size='large' type='loading' color='blueFocus' name='Line' />\n </Stack>\n ) : !isLengthZero ? (\n <Stack\n sx={{\n default: {\n width: '100%',\n height: '100%',\n position: 'relative',\n overflow: 'hidden',\n },\n }}\n >\n <AnimatePresence initial={false} custom={direction}>\n <SliderImage\n key={activeImageId}\n style={{\n overflow: 'hidden',\n borderRadius: br,\n }}\n custom={direction}\n variants={sliderVariants}\n initial='initial'\n animate='active'\n exit='exit'\n transition={sliderTransition}\n {...(!isLengthOne\n ? {\n drag: 'x',\n dragConstraints: { left: 0, right: 0 },\n dragElastic: 0.5,\n onDragEnd: (_, dragInfo) => dragEndHandler(dragInfo),\n }\n : {})}\n >\n <Image\n sxStack={(theme) => ({\n default: {\n width: '100%',\n height: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.palette.black10,\n position: 'absolute',\n pointerEvents: 'none',\n },\n })}\n alt={images[activeImageIndex]?.imageSrc}\n src={images[activeImageIndex]?.imageSrc}\n componentFallback={\n <Typography\n sx={{\n default: {\n variant: 'h6',\n },\n }}\n >\n {props.locales.failedToLoad}\n </Typography>\n }\n />\n {images[activeImageIndex]?.children}\n </SliderImage>\n </AnimatePresence>\n {typeof props?.children === 'function' ? props?.children?.({ isDialog: false }) : props?.children}\n\n {!isLengthOne && (\n <>\n <Button\n sx={{\n default: {\n position: 'absolute',\n top: '50%',\n left: 5,\n transform: 'translateY(-50%)',\n },\n }}\n genre={props.genre}\n size={props.size}\n icons={[\n {\n type: 'id',\n name: 'Arrow4',\n turn: 90,\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => swipeToImage(-1)}\n />\n <Button\n sx={{\n default: {\n position: 'absolute',\n top: '50%',\n right: 5,\n transform: 'translateY(-50%)',\n },\n }}\n genre={props.genre}\n size={props.size}\n icons={[\n {\n type: 'id',\n name: 'Arrow4',\n turn: -90,\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => swipeToImage(1)}\n />\n <Stack\n sx={{\n default: {\n position: 'absolute',\n bottom: 5,\n left: '50%',\n transform: 'translateX(-50%)',\n gap: '4px',\n },\n }}\n >\n {images.map((i) => (\n <SliderDot\n onClick={() => skipToImage(i.id)}\n key={i.id}\n initial={false}\n animate={{\n scale: activeImageId === i.id ? 1.5 : 1,\n opacity: activeImageId === i.id ? 1 : 0.5,\n }}\n />\n ))}\n </Stack>\n </>\n )}\n\n <Button\n sx={{\n default: {\n position: 'absolute',\n bottom: 5,\n right: 5,\n },\n }}\n genre={props.genre}\n size={props.size}\n icons={[\n {\n type: 'id',\n name: 'Activity',\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => handleAdd()}\n />\n </Stack>\n ) : (\n <Stack\n sx={{\n default: {\n width: '100%',\n height: '100%',\n position: 'relative',\n overflow: 'hidden',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n }}\n >\n <Typography\n sx={{\n default: {\n variant: 'h6',\n },\n }}\n >\n {props.locales.noImagesAvailable}\n </Typography>\n </Stack>\n )}\n </StackMotion>\n );\n};\nconst sliderVariants: Variants = {\n initial: (direction) => ({\n x: direction > 0 ? '100%' : '-100%',\n scale: 1,\n opacity: 0,\n }),\n active: { x: 0, scale: 1, opacity: 1 },\n exit: (direction) => ({\n x: direction > 0 ? '-100%' : '100%',\n scale: 1,\n opacity: 0.2,\n }),\n};\nconst sliderTransition = {\n duration: 0.3,\n ease: [0.56, 0.03, 0.12, 1.04],\n};\n","import 'styled-components';\n\nimport { Button } from '../button';\nimport { Stack } from '../stack';\nimport { ImageSliderProps } from '.';\n\nexport const IMAGES: ImageSliderProps['images'] = [\n {\n id: 0,\n children: (\n <Stack\n sx={{\n default: {\n justifyContent: 'flex-start',\n padding: '5px',\n flexGrow: 1,\n },\n }}\n >\n <Button\n isHiddenBorder\n isDisabled\n genre='realebail-white'\n size='medium'\n sxTypography={{ default: { weight: 700 } }}\n >\n Los Angeles\n </Button>\n </Stack>\n ),\n imageSrc:\n 'https://drupal-prod.visitcalifornia.com/sites/default/files/styles/fluid_1920/public/2020-06/VC_PlacesToVisit_LosAngelesCounty_RF_1170794243.jpg.webp?itok=46pJYz8v',\n },\n {\n id: 1,\n children: (\n <Stack\n sx={{\n default: {\n justifyContent: 'flex-start',\n padding: '5px',\n flexGrow: 1,\n },\n }}\n >\n <Button\n isHiddenBorder\n isDisabled\n genre='realebail-white'\n size='medium'\n sxTypography={{ default: { weight: 700 } }}\n >\n Los Angeles\n </Button>\n </Stack>\n ),\n imageSrc:\n 'https://images.unsplash.com/flagged/photo-1575555201693-7cd442b8023f?fm=jpg&q=60&w=3000&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8Mnx8bG9zJTIwYW5nZWxlc3xlbnwwfHwwfHx8MA%3D%3D',\n },\n {\n id: 2,\n children: (\n <Stack\n sx={{\n default: {\n justifyContent: 'flex-start',\n padding: '5px',\n flexGrow: 1,\n },\n }}\n >\n <Button\n isHiddenBorder\n isDisabled\n genre='realebail-white'\n size='medium'\n sxTypography={{ default: { weight: 700 } }}\n >\n Los Angeles\n </Button>\n </Stack>\n ),\n imageSrc:\n 'https://img.goodfon.com/original/2048x1319/8/29/ssha-kaliforniia-los-andzheles-los-angeles-doma-neboskreby-s.jpg',\n },\n {\n id: 3,\n children: (\n <Stack\n sx={{\n default: {\n justifyContent: 'flex-start',\n padding: '5px',\n flexGrow: 1,\n },\n }}\n >\n <Button\n isHiddenBorder\n isDisabled\n genre='realebail-white'\n size='medium'\n sxTypography={{ default: { weight: 700 } }}\n >\n Los Angeles\n </Button>\n </Stack>\n ),\n imageSrc:\n 'https://images.pexels.com/photos/2231756/pexels-photo-2231756.jpeg?auto=compress&cs=tinysrgb&dpr=2&w=500',\n },\n {\n id: 4,\n children: (\n <Stack\n sx={{\n default: {\n justifyContent: 'flex-start',\n padding: '5px',\n flexGrow: 1,\n },\n }}\n >\n <Button\n isHiddenBorder\n isDisabled\n genre='realebail-white'\n size='medium'\n sxTypography={{ default: { weight: 700 } }}\n >\n Los Angeles\n </Button>\n </Stack>\n ),\n imageSrc:\n 'https://images.pexels.com/photos/1813157/pexels-photo-1813157.jpeg?auto=compress&cs=tinysrgb&dpr=2&w=500',\n },\n];\n"],"names":["direction","jsx","sliderVariants","sliderTransition","jsxs","Fragment","_a","_b","_c","_d"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"component.constants-BkbucsSA.js","sources":["../src/hooks/use-image-slider/use.tsx","../src/components/image-slider/component.tsx","../src/components/image-slider/component.constants.tsx"],"sourcesContent":["import { Button } from '@local/components/button';\nimport { Image } from '@local/components/image';\nimport { ImageSliderProps, SliderDot, SliderImage } from '@local/components/image-slider';\nimport { Stack } from '@local/components/stack';\nimport { Typography } from '@local/components/typography';\nimport { useDialog, useDialogProps } from '@local/contexts/context-dialog';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport { AnimatePresence, PanInfo, Variants } from 'framer-motion';\nimport { FC, useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { useImageSliderProps } from '.';\n\nexport const useImageSlider = (props: useImageSliderProps) => {\n const { onIndexChange } = props;\n\n const size = useMemo(() => KEY_SIZE_DATA[props.size], [props.size]);\n const br = useMemo(() => `${size.radius}px`, [size.radius]);\n\n const images = useMemo(() => props.images, [props.images]);\n\n const [{ activeImageId, direction }, setActiveImage] = useState({\n activeImageId: images?.[0]?.id ?? null,\n direction: 0,\n });\n const isLengthOne = useMemo(() => images?.length === 1, [images]);\n const isLengthZero = useMemo(() => images?.length === 0, [images]);\n\n const activeImageIndex = useMemo(() => images.findIndex((img) => img.id === activeImageId), [activeImageId, images]);\n\n const swipeToImage = useCallback(\n (swipeDirection: number) => {\n const currentIndex = images.findIndex((img) => img.id === activeImageId);\n const nextIndex = (currentIndex + swipeDirection + images.length) % images.length;\n setActiveImage({ activeImageId: images[nextIndex].id, direction: swipeDirection });\n },\n [activeImageId, images],\n );\n const dragEndHandler = useCallback(\n (dragInfo: PanInfo) => {\n const { offset, velocity } = dragInfo;\n const swipeThreshold = 50;\n const swipePower = Math.abs(offset.x) * velocity.x;\n\n if (swipePower > 500 || offset.x > swipeThreshold) {\n swipeToImage(-1);\n } else if (swipePower < -500 || offset.x < -swipeThreshold) {\n swipeToImage(1);\n }\n },\n [swipeToImage],\n );\n const skipToImage = useCallback(\n (imageId: number) => {\n const currentIndex = images.findIndex((img) => img.id === activeImageId);\n const newIndex = images.findIndex((img) => img.id === imageId);\n if (newIndex === -1 || newIndex === currentIndex) return;\n\n const direction = newIndex > currentIndex ? 1 : -1;\n setActiveImage({ activeImageId: imageId, direction });\n },\n [activeImageId, images],\n );\n\n useEffect(() => {\n if (activeImageId) onIndexChange?.(activeImageId);\n }, [activeImageId, onIndexChange]);\n\n const { add } = useDialog<ComponentHandleAddProps>({\n br: br,\n dragEndHandler: dragEndHandler,\n images: images,\n children: props.children,\n activeImageIndex: activeImageIndex,\n activeImageId: activeImageId,\n swipeToImage: swipeToImage,\n skipToImage: skipToImage,\n direction: direction,\n aspect: props.imageSettings.aspect,\n genre: props.genre,\n size: props.size,\n failedToLoad: props.locales.failedToLoad,\n isLengthOne: isLengthOne,\n propsDialog: {\n borderRadius: br,\n padding: '0',\n background: 'whiteStandard',\n },\n });\n const handleAdd = useCallback(() => {\n add({\n content: (params, remove) => <ComponentHandleAdd params={params} remove={remove} />,\n });\n }, [add]);\n\n return {\n isLengthZero,\n direction,\n activeImageId,\n isLengthOne,\n dragEndHandler,\n activeImageIndex,\n swipeToImage,\n skipToImage,\n handleAdd,\n };\n};\nconst sliderVariants: Variants = {\n initial: (direction) => ({\n x: direction > 0 ? '100%' : '-100%',\n scale: 1,\n opacity: 0,\n }),\n active: { x: 0, scale: 1, opacity: 1 },\n exit: (direction) => ({\n x: direction > 0 ? '-100%' : '100%',\n scale: 1,\n opacity: 0.2,\n }),\n};\nconst sliderTransition = {\n duration: 0.3,\n ease: [0.56, 0.03, 0.12, 1.04],\n};\n\ntype ComponentHandleAddProps = {\n br?: string;\n dragEndHandler: (dragInfo: PanInfo) => void;\n images: ImageSliderProps['images'];\n children?: ImageSliderProps['children'];\n activeImageIndex: number;\n activeImageId: number | null;\n swipeToImage: (swipeDirection: number) => void;\n skipToImage: (imageId: number) => void;\n direction: number;\n aspect: number;\n failedToLoad: string;\n isLengthOne: boolean;\n} & Pick<ImageSliderProps, 'genre' | 'size'>;\n\nconst ComponentHandleAdd: FC<{\n params?: useDialogProps<ComponentHandleAddProps>;\n remove?: () => void;\n}> = ({ params, remove }) => {\n return (\n <Stack\n sx={{\n default: {\n position: 'relative',\n overflow: 'hidden',\n aspectRatio: `${params?.aspect! * 2} / 2`,\n width: 'auto',\n maxWidth: '70dvw',\n height: '85dvh',\n borderRadius: params?.br,\n },\n tablet: {\n maxWidth: '95dvw',\n },\n }}\n >\n <AnimatePresence initial={false} custom={params?.direction}>\n <SliderImage\n key={params?.activeImageId}\n style={{\n overflow: 'hidden',\n borderRadius: params?.br,\n }}\n custom={params?.direction}\n variants={sliderVariants}\n initial='initial'\n animate='active'\n exit='exit'\n transition={sliderTransition}\n {...(!params?.isLengthOne\n ? {\n drag: 'x',\n dragConstraints: { left: 0, right: 0 },\n dragElastic: 0.5,\n onDragEnd: (_, dragInfo) => params?.dragEndHandler(dragInfo),\n }\n : {})}\n >\n <Image\n sxStack={(theme) => ({\n default: {\n width: '100%',\n height: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.palette.black10,\n position: 'absolute',\n pointerEvents: 'none',\n },\n })}\n isShowBeforeImage\n sxImage={{\n default: {\n objectFit: 'contain',\n },\n }}\n alt={(params?.images ?? [])?.[params?.activeImageIndex ?? 0]?.imageSrc}\n src={(params?.images ?? [])?.[params?.activeImageIndex ?? 0]?.imageSrc}\n componentFallback={\n <Typography\n sx={{\n default: {\n variant: 'h6',\n },\n }}\n >\n {params?.failedToLoad}\n </Typography>\n }\n />\n {(params?.images ?? [])?.[params?.activeImageIndex ?? 0]?.children}\n </SliderImage>\n </AnimatePresence>\n {typeof params?.children === 'function' ? params?.children?.({ isDialog: true }) : params?.children}\n\n <Button\n sx={{\n default: {\n position: 'absolute',\n bottom: 15,\n right: 15,\n },\n }}\n genre={params?.genre ?? 'product'}\n size={params?.size ?? 'medium'}\n icons={[\n {\n type: 'id',\n name: 'Arrow4',\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => remove?.()}\n />\n {!params?.isLengthOne ? (\n <>\n <Stack\n sx={{\n default: {\n position: 'absolute',\n bottom: 15,\n left: 15,\n gap: '8px',\n },\n }}\n >\n <Button\n genre={params?.genre ?? 'product'}\n size={params?.size ?? 'medium'}\n icons={[\n {\n type: 'id',\n name: 'Arrow4',\n turn: 90,\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isPlaystationEffect\n isRadius\n onClick={() => params?.swipeToImage?.(-1)}\n />\n <Button\n genre={params?.genre ?? 'product'}\n size={params?.size ?? 'medium'}\n icons={[\n {\n type: 'id',\n name: 'Arrow4',\n turn: -90,\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isPlaystationEffect\n isRadius\n onClick={() => params?.swipeToImage?.(1)}\n />\n </Stack>\n <Stack\n sx={{\n default: {\n position: 'absolute',\n bottom: 15,\n left: '50%',\n transform: 'translateX(-50%)',\n gap: '4px',\n },\n }}\n >\n {(params?.images ?? [])?.map((i) => (\n <SliderDot\n onClick={() => params?.skipToImage?.(i.id)}\n key={i.id}\n initial={false}\n animate={{\n scale: params?.activeImageId === i.id ? 1.5 : 1,\n opacity: params?.activeImageId === i.id ? 1 : 0.5,\n }}\n />\n ))}\n </Stack>\n </>\n ) : null}\n </Stack>\n );\n};\n","import { useImageSlider } from '@local/hooks/use-image-slider';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport { AnimatePresence, Variants } from 'framer-motion';\nimport { FC, useMemo } from 'react';\n\nimport { Button } from '../button';\nimport { Icon } from '../icon';\nimport { Image } from '../image';\nimport { Stack, StackMotion } from '../stack';\nimport { Typography } from '../typography';\nimport { ImageSliderProps, SliderDot, SliderImage } from '.';\n\nexport const ImageSlider: FC<ImageSliderProps> = (props) => {\n const { onIndexChange } = props;\n const images = useMemo(() => props.images, [props.images]);\n const size = useMemo(() => KEY_SIZE_DATA[props.size], [props.size]);\n const br = useMemo(() => `${size.radius}px`, [size.radius]);\n\n const {\n isLengthZero,\n direction,\n activeImageId,\n isLengthOne,\n dragEndHandler,\n activeImageIndex,\n swipeToImage,\n skipToImage,\n handleAdd,\n } = useImageSlider({\n genre: props.genre,\n size: props.size,\n images: images,\n imageSettings: props.imageSettings,\n locales: props.locales,\n onIndexChange: onIndexChange,\n children: props.children,\n });\n return (\n <StackMotion\n {...props.propsStack}\n sx={(theme) => ({\n ...props.propsStack?.sx,\n default: {\n borderRadius: br,\n flexDirection: 'column',\n alignItems: 'center',\n overflow: 'hidden',\n width: 'auto',\n maxWidth: '70dvw',\n height: '85dvh',\n ...(props.propsStack?.sx\n ? typeof props.propsStack?.sx === 'function'\n ? props.propsStack?.sx(theme).default\n : props.propsStack?.sx.default\n : {}),\n },\n tablet: {\n maxWidth: '95dvw',\n ...(props.propsStack?.sx\n ? typeof props.propsStack?.sx === 'function'\n ? props.propsStack?.sx(theme).tablet\n : props.propsStack?.sx.tablet\n : {}),\n },\n })}\n >\n {props.isLoading ? (\n <Stack\n sx={{\n default: {\n width: '100%',\n height: '100%',\n position: 'relative',\n overflow: 'hidden',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n }}\n >\n <Icon size='large' type='loading' color='blueFocus' name='Line' />\n </Stack>\n ) : !isLengthZero ? (\n <Stack\n sx={{\n default: {\n width: '100%',\n height: '100%',\n position: 'relative',\n overflow: 'hidden',\n },\n }}\n >\n <AnimatePresence initial={false} custom={direction}>\n <SliderImage\n key={activeImageId}\n style={{\n overflow: 'hidden',\n borderRadius: br,\n }}\n custom={direction}\n variants={sliderVariants}\n initial='initial'\n animate='active'\n exit='exit'\n transition={sliderTransition}\n {...(!isLengthOne\n ? {\n drag: 'x',\n dragConstraints: { left: 0, right: 0 },\n dragElastic: 0.5,\n onDragEnd: (_, dragInfo) => dragEndHandler(dragInfo),\n }\n : {})}\n >\n <Image\n sxStack={(theme) => ({\n default: {\n width: '100%',\n height: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.palette.black10,\n position: 'absolute',\n pointerEvents: 'none',\n },\n })}\n alt={images[activeImageIndex]?.imageSrc}\n src={images[activeImageIndex]?.imageSrc}\n componentFallback={\n <Typography\n sx={{\n default: {\n variant: 'h6',\n },\n }}\n >\n {props.locales.failedToLoad}\n </Typography>\n }\n />\n {images[activeImageIndex]?.children}\n </SliderImage>\n </AnimatePresence>\n {typeof props?.children === 'function' ? props?.children?.({ isDialog: false }) : props?.children}\n\n {!isLengthOne && (\n <>\n <Button\n sx={{\n default: {\n position: 'absolute',\n top: '50%',\n left: 5,\n transform: 'translateY(-50%)',\n },\n }}\n genre={props.genre}\n size={props.size}\n icons={[\n {\n type: 'id',\n name: 'Arrow4',\n turn: 90,\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => swipeToImage(-1)}\n />\n <Button\n sx={{\n default: {\n position: 'absolute',\n top: '50%',\n right: 5,\n transform: 'translateY(-50%)',\n },\n }}\n genre={props.genre}\n size={props.size}\n icons={[\n {\n type: 'id',\n name: 'Arrow4',\n turn: -90,\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => swipeToImage(1)}\n />\n <Stack\n sx={{\n default: {\n position: 'absolute',\n bottom: 5,\n left: '50%',\n transform: 'translateX(-50%)',\n gap: '4px',\n },\n }}\n >\n {images.map((i) => (\n <SliderDot\n onClick={() => skipToImage(i.id)}\n key={i.id}\n initial={false}\n animate={{\n scale: activeImageId === i.id ? 1.5 : 1,\n opacity: activeImageId === i.id ? 1 : 0.5,\n }}\n />\n ))}\n </Stack>\n </>\n )}\n\n <Button\n sx={{\n default: {\n position: 'absolute',\n bottom: 5,\n right: 5,\n },\n }}\n genre={props.genre}\n size={props.size}\n icons={[\n {\n type: 'id',\n name: 'Activity',\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => handleAdd()}\n />\n </Stack>\n ) : (\n <Stack\n sx={{\n default: {\n width: '100%',\n height: '100%',\n position: 'relative',\n overflow: 'hidden',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n }}\n >\n <Typography\n sx={{\n default: {\n variant: 'h6',\n },\n }}\n >\n {props.locales.noImagesAvailable}\n </Typography>\n </Stack>\n )}\n </StackMotion>\n );\n};\nconst sliderVariants: Variants = {\n initial: (direction) => ({\n x: direction > 0 ? '100%' : '-100%',\n scale: 1,\n opacity: 0,\n }),\n active: { x: 0, scale: 1, opacity: 1 },\n exit: (direction) => ({\n x: direction > 0 ? '-100%' : '100%',\n scale: 1,\n opacity: 0.2,\n }),\n};\nconst sliderTransition = {\n duration: 0.3,\n ease: [0.56, 0.03, 0.12, 1.04],\n};\n","import 'styled-components';\n\nimport { Button } from '../button';\nimport { Stack } from '../stack';\nimport { ImageSliderProps } from '.';\n\nexport const IMAGES: ImageSliderProps['images'] = [\n {\n id: 0,\n children: (\n <Stack\n sx={{\n default: {\n justifyContent: 'flex-start',\n padding: '5px',\n flexGrow: 1,\n },\n }}\n >\n <Button\n isHiddenBorder\n isDisabled\n genre='realebail-white'\n size='medium'\n sxTypography={{ default: { weight: 700 } }}\n >\n Los Angeles\n </Button>\n </Stack>\n ),\n imageSrc:\n 'https://drupal-prod.visitcalifornia.com/sites/default/files/styles/fluid_1920/public/2020-06/VC_PlacesToVisit_LosAngelesCounty_RF_1170794243.jpg.webp?itok=46pJYz8v',\n },\n {\n id: 1,\n children: (\n <Stack\n sx={{\n default: {\n justifyContent: 'flex-start',\n padding: '5px',\n flexGrow: 1,\n },\n }}\n >\n <Button\n isHiddenBorder\n isDisabled\n genre='realebail-white'\n size='medium'\n sxTypography={{ default: { weight: 700 } }}\n >\n Los Angeles\n </Button>\n </Stack>\n ),\n imageSrc:\n 'https://images.unsplash.com/flagged/photo-1575555201693-7cd442b8023f?fm=jpg&q=60&w=3000&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxzZWFyY2h8Mnx8bG9zJTIwYW5nZWxlc3xlbnwwfHwwfHx8MA%3D%3D',\n },\n {\n id: 2,\n children: (\n <Stack\n sx={{\n default: {\n justifyContent: 'flex-start',\n padding: '5px',\n flexGrow: 1,\n },\n }}\n >\n <Button\n isHiddenBorder\n isDisabled\n genre='realebail-white'\n size='medium'\n sxTypography={{ default: { weight: 700 } }}\n >\n Los Angeles\n </Button>\n </Stack>\n ),\n imageSrc:\n 'https://img.goodfon.com/original/2048x1319/8/29/ssha-kaliforniia-los-andzheles-los-angeles-doma-neboskreby-s.jpg',\n },\n {\n id: 3,\n children: (\n <Stack\n sx={{\n default: {\n justifyContent: 'flex-start',\n padding: '5px',\n flexGrow: 1,\n },\n }}\n >\n <Button\n isHiddenBorder\n isDisabled\n genre='realebail-white'\n size='medium'\n sxTypography={{ default: { weight: 700 } }}\n >\n Los Angeles\n </Button>\n </Stack>\n ),\n imageSrc:\n 'https://images.pexels.com/photos/2231756/pexels-photo-2231756.jpeg?auto=compress&cs=tinysrgb&dpr=2&w=500',\n },\n {\n id: 4,\n children: (\n <Stack\n sx={{\n default: {\n justifyContent: 'flex-start',\n padding: '5px',\n flexGrow: 1,\n },\n }}\n >\n <Button\n isHiddenBorder\n isDisabled\n genre='realebail-white'\n size='medium'\n sxTypography={{ default: { weight: 700 } }}\n >\n Los Angeles\n </Button>\n </Stack>\n ),\n imageSrc:\n 'https://images.pexels.com/photos/1813157/pexels-photo-1813157.jpeg?auto=compress&cs=tinysrgb&dpr=2&w=500',\n },\n];\n"],"names":["direction","jsx","sliderVariants","sliderTransition","jsxs","Fragment","_a","_b","_c","_d"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports } from "./jsx-runtime-BrDlu8eK.js";
|
|
2
2
|
import { AnimatePresence, motion } from "framer-motion";
|
|
3
3
|
import { useMemo, useCallback } from "react";
|
|
4
|
-
import { B as Button } from "./context.constants-
|
|
4
|
+
import { B as Button } from "./context.constants-ByIVCRij.js";
|
|
5
5
|
import { b as Stack } from "./component-DEZX8aBs.js";
|
|
6
6
|
const Pagination = (props) => {
|
|
7
7
|
const isDisabledPrevious = useMemo(() => props.index == 0 && !props.isInfinity, [props.index, props.isInfinity]);
|
|
@@ -139,4 +139,4 @@ export {
|
|
|
139
139
|
DEFAULT_COMPONENT_PAGINATION_GAP as D,
|
|
140
140
|
Pagination as P
|
|
141
141
|
};
|
|
142
|
-
//# sourceMappingURL=component.constants-
|
|
142
|
+
//# sourceMappingURL=component.constants-BmRV80H6.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.constants-
|
|
1
|
+
{"version":3,"file":"component.constants-BmRV80H6.js","sources":["../src/components/pagination/component.tsx","../src/components/pagination/component.constants.ts"],"sourcesContent":["import { AnimatePresence, motion } from 'framer-motion';\nimport { FC, useCallback, useMemo } from 'react';\n\nimport { Button } from '@local/components/button';\nimport { Stack } from '@local/components/stack';\n\nimport { DEFAULT_COMPONENT_PAGINATION_GAP, PaginationProps } from '.';\n\nexport const Pagination: FC<PaginationProps> = (props) => {\n const isDisabledPrevious = useMemo(() => props.index == 0 && !props.isInfinity, [props.index, props.isInfinity]);\n const isDisabledNext = useMemo(\n () => props.index == props.length - 1 && !props.isInfinity,\n [props.index, props.isInfinity, props.length],\n );\n\n const gap = useMemo(() => props.gap ?? DEFAULT_COMPONENT_PAGINATION_GAP, [props.gap]);\n const lengthData = useMemo(() => props.lengthData ?? {}, [props.lengthData]);\n const handlePrevious = useCallback(() => {\n if (props.index == 0) {\n if (props.isInfinity) {\n props.changeIndex(props.length - 1);\n }\n } else {\n props.changeIndex(props.index - 1);\n }\n }, [props]);\n\n const handleNext = useCallback(() => {\n if (props.index == props.length - 1) {\n if (props.isInfinity) {\n props.changeIndex(0);\n }\n } else {\n props.changeIndex(props.index + 1);\n }\n }, [props]);\n\n const visibleButtons = useMemo(() => {\n const half = Math.floor(props.viewQuantity / 2);\n const start = Math.max(0, Math.min(props.index - half, props.length - props.viewQuantity));\n const end = Math.min(props.length, start + props.viewQuantity);\n return Array.from({ length: end - start }, (_, i) => start + i);\n }, [props.index, props.viewQuantity, props.length]);\n\n return (\n <Stack\n sx={(theme) => ({\n ...props?.sx,\n default: {\n height: 'fit-content',\n gap: `${gap}px`,\n ...(props?.sx ? (typeof props?.sx === 'function' ? props?.sx(theme).default : props?.sx.default) : {}),\n },\n })}\n >\n <Button\n isDisabled={isDisabledPrevious}\n isHidden={isDisabledPrevious}\n onClick={handlePrevious}\n {...props.buttonControl}\n icons={[\n {\n type: 'id',\n name: 'Arrow2',\n order: -1,\n turn: 90,\n },\n ]}\n >\n {!props.buttonControl.isWidthAsHeight && props.locale.prev}\n </Button>\n\n <Stack\n sx={{\n default: {\n width: 'fit-content',\n height: 'fit-content',\n display: 'flex',\n gap: `${gap}px`,\n alignItems: 'center',\n justifyContent: 'flex-start',\n },\n }}\n >\n {Array.from({ length: props.length }).map((_, i) => {\n const isVisible = visibleButtons.includes(i);\n return (\n <AnimatePresence key={i} mode='popLayout'>\n {isVisible && (\n <motion.div\n layout\n initial={{\n opacity: 0,\n scale: 0.8,\n }}\n animate={{\n opacity: 1,\n scale: 1,\n }}\n exit={{\n opacity: 0,\n scale: 0.8,\n }}\n transition={{ duration: 1, ease: 'backOut' }}\n >\n <Button\n isWidthAsHeight\n {...(i === props.index ? props.buttonCount.active : props.buttonCount.inactive)}\n {...lengthData?.[i]}\n onClick={() => props.changeIndex(i)}\n >\n {lengthData?.[i]?.icons?.length ? null : i + 1}\n </Button>\n </motion.div>\n )}\n </AnimatePresence>\n );\n })}\n </Stack>\n\n <Button\n isDisabled={isDisabledNext}\n isHidden={isDisabledNext}\n onClick={handleNext}\n {...props.buttonControl}\n icons={[\n {\n type: 'id',\n name: 'Arrow2',\n turn: -90,\n },\n ]}\n >\n {!props.buttonControl.isWidthAsHeight && props.locale.next}\n </Button>\n </Stack>\n );\n};\n","export const DEFAULT_COMPONENT_PAGINATION_GAP = 12;\n"],"names":["jsxs","jsx"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const t=require("./jsx-runtime-BcGej2Kr.cjs"),n=require("framer-motion"),e=require("react"),i=require("./context.constants-
|
|
2
|
-
//# sourceMappingURL=component.constants-
|
|
1
|
+
"use strict";const t=require("./jsx-runtime-BcGej2Kr.cjs"),n=require("framer-motion"),e=require("react"),i=require("./context.constants-CHzb-q9a.cjs"),o=require("./component-5Utdcc2G.cjs"),s=12;exports.DEFAULT_COMPONENT_PAGINATION_GAP=s,exports.Pagination=l=>{const a=e.useMemo(()=>0==l.index&&!l.isInfinity,[l.index,l.isInfinity]),r=e.useMemo(()=>l.index==l.length-1&&!l.isInfinity,[l.index,l.isInfinity,l.length]),u=e.useMemo(()=>l.gap??s,[l.gap]),x=e.useMemo(()=>l.lengthData??{},[l.lengthData]),d=e.useCallback(()=>{0==l.index?l.isInfinity&&l.changeIndex(l.length-1):l.changeIndex(l.index-1)},[l]),c=e.useCallback(()=>{l.index==l.length-1?l.isInfinity&&l.changeIndex(0):l.changeIndex(l.index+1)},[l]),h=e.useMemo(()=>{const t=Math.floor(l.viewQuantity/2),n=Math.max(0,Math.min(l.index-t,l.length-l.viewQuantity)),e=Math.min(l.length,n+l.viewQuantity);return Array.from({length:e-n},(t,e)=>n+e)},[l.index,l.viewQuantity,l.length]);return t.jsxRuntimeExports.jsxs(o.Stack,{sx:t=>({...null==l?void 0:l.sx,default:{height:"fit-content",gap:`${u}px`,...(null==l?void 0:l.sx)?"function"==typeof(null==l?void 0:l.sx)?null==l?void 0:l.sx(t).default:null==l?void 0:l.sx.default:{}}}),children:[t.jsxRuntimeExports.jsx(i.Button,{isDisabled:a,isHidden:a,onClick:d,...l.buttonControl,icons:[{type:"id",name:"Arrow2",order:-1,turn:90}],children:!l.buttonControl.isWidthAsHeight&&l.locale.prev}),t.jsxRuntimeExports.jsx(o.Stack,{sx:{default:{width:"fit-content",height:"fit-content",display:"flex",gap:`${u}px`,alignItems:"center",justifyContent:"flex-start"}},children:Array.from({length:l.length}).map((e,o)=>{var s,a;const r=h.includes(o);return t.jsxRuntimeExports.jsx(n.AnimatePresence,{mode:"popLayout",children:r&&t.jsxRuntimeExports.jsx(n.motion.div,{layout:!0,initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.8},transition:{duration:1,ease:"backOut"},children:t.jsxRuntimeExports.jsx(i.Button,{isWidthAsHeight:!0,...o===l.index?l.buttonCount.active:l.buttonCount.inactive,...null==x?void 0:x[o],onClick:()=>l.changeIndex(o),children:(null==(a=null==(s=null==x?void 0:x[o])?void 0:s.icons)?void 0:a.length)?null:o+1})})},o)})}),t.jsxRuntimeExports.jsx(i.Button,{isDisabled:r,isHidden:r,onClick:c,...l.buttonControl,icons:[{type:"id",name:"Arrow2",turn:-90}],children:!l.buttonControl.isWidthAsHeight&&l.locale.next})]})};
|
|
2
|
+
//# sourceMappingURL=component.constants-ECVKYlcl.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.constants-
|
|
1
|
+
{"version":3,"file":"component.constants-ECVKYlcl.cjs","sources":["../src/components/pagination/component.constants.ts","../src/components/pagination/component.tsx"],"sourcesContent":["export const DEFAULT_COMPONENT_PAGINATION_GAP = 12;\n","import { AnimatePresence, motion } from 'framer-motion';\nimport { FC, useCallback, useMemo } from 'react';\n\nimport { Button } from '@local/components/button';\nimport { Stack } from '@local/components/stack';\n\nimport { DEFAULT_COMPONENT_PAGINATION_GAP, PaginationProps } from '.';\n\nexport const Pagination: FC<PaginationProps> = (props) => {\n const isDisabledPrevious = useMemo(() => props.index == 0 && !props.isInfinity, [props.index, props.isInfinity]);\n const isDisabledNext = useMemo(\n () => props.index == props.length - 1 && !props.isInfinity,\n [props.index, props.isInfinity, props.length],\n );\n\n const gap = useMemo(() => props.gap ?? DEFAULT_COMPONENT_PAGINATION_GAP, [props.gap]);\n const lengthData = useMemo(() => props.lengthData ?? {}, [props.lengthData]);\n const handlePrevious = useCallback(() => {\n if (props.index == 0) {\n if (props.isInfinity) {\n props.changeIndex(props.length - 1);\n }\n } else {\n props.changeIndex(props.index - 1);\n }\n }, [props]);\n\n const handleNext = useCallback(() => {\n if (props.index == props.length - 1) {\n if (props.isInfinity) {\n props.changeIndex(0);\n }\n } else {\n props.changeIndex(props.index + 1);\n }\n }, [props]);\n\n const visibleButtons = useMemo(() => {\n const half = Math.floor(props.viewQuantity / 2);\n const start = Math.max(0, Math.min(props.index - half, props.length - props.viewQuantity));\n const end = Math.min(props.length, start + props.viewQuantity);\n return Array.from({ length: end - start }, (_, i) => start + i);\n }, [props.index, props.viewQuantity, props.length]);\n\n return (\n <Stack\n sx={(theme) => ({\n ...props?.sx,\n default: {\n height: 'fit-content',\n gap: `${gap}px`,\n ...(props?.sx ? (typeof props?.sx === 'function' ? props?.sx(theme).default : props?.sx.default) : {}),\n },\n })}\n >\n <Button\n isDisabled={isDisabledPrevious}\n isHidden={isDisabledPrevious}\n onClick={handlePrevious}\n {...props.buttonControl}\n icons={[\n {\n type: 'id',\n name: 'Arrow2',\n order: -1,\n turn: 90,\n },\n ]}\n >\n {!props.buttonControl.isWidthAsHeight && props.locale.prev}\n </Button>\n\n <Stack\n sx={{\n default: {\n width: 'fit-content',\n height: 'fit-content',\n display: 'flex',\n gap: `${gap}px`,\n alignItems: 'center',\n justifyContent: 'flex-start',\n },\n }}\n >\n {Array.from({ length: props.length }).map((_, i) => {\n const isVisible = visibleButtons.includes(i);\n return (\n <AnimatePresence key={i} mode='popLayout'>\n {isVisible && (\n <motion.div\n layout\n initial={{\n opacity: 0,\n scale: 0.8,\n }}\n animate={{\n opacity: 1,\n scale: 1,\n }}\n exit={{\n opacity: 0,\n scale: 0.8,\n }}\n transition={{ duration: 1, ease: 'backOut' }}\n >\n <Button\n isWidthAsHeight\n {...(i === props.index ? props.buttonCount.active : props.buttonCount.inactive)}\n {...lengthData?.[i]}\n onClick={() => props.changeIndex(i)}\n >\n {lengthData?.[i]?.icons?.length ? null : i + 1}\n </Button>\n </motion.div>\n )}\n </AnimatePresence>\n );\n })}\n </Stack>\n\n <Button\n isDisabled={isDisabledNext}\n isHidden={isDisabledNext}\n onClick={handleNext}\n {...props.buttonControl}\n icons={[\n {\n type: 'id',\n name: 'Arrow2',\n turn: -90,\n },\n ]}\n >\n {!props.buttonControl.isWidthAsHeight && props.locale.next}\n </Button>\n </Stack>\n );\n};\n"],"names":["DEFAULT_COMPONENT_PAGINATION_GAP","props","isDisabledPrevious","useMemo","index","isInfinity","isDisabledNext","length","gap","lengthData","handlePrevious","useCallback","changeIndex","handleNext","visibleButtons","half","Math","floor","viewQuantity","start","max","min","end","Array","from","_","i","jsxs","Stack","sx","theme","default","height","children","jsx","Button","isDisabled","isHidden","onClick","buttonControl","icons","type","name","order","turn","isWidthAsHeight","locale","prev","width","display","alignItems","justifyContent","map","isVisible","includes","AnimatePresence","mode","motion","div","layout","initial","opacity","scale","animate","exit","transition","duration","ease","buttonCount","active","inactive","next"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("./context.constants-CHzb-q9a.cjs");require("./component.styles-Dpg-__rn.cjs");const l=require("./component-CLqcB5mM.cjs"),n=require("./component-5Utdcc2G.cjs"),s=require("moment"),i=require("react"),a=require("styled-components");const o=/^\d{4}-\d{2}-\d{2}$/;var r=(e=>(e.DD="DD",e.MM="MM",e.YYYY="YYYY",e))(r||{});exports.DatePicker=u=>{var d,c,f,p;const{onChange:m}=u,x=a.useTheme(),[g,D]=i.useState(null),[h,v]=i.useState(s(u.dateDefault).utc()),[b,M]=i.useState({[r.DD]:"",[r.MM]:"",[r.YYYY]:""}),Y=i.useRef(b);i.useEffect(()=>{Y.current=b},[b]);const y=i.useMemo(()=>""!==b[r.DD]||""!==b[r.MM]||""!==b[r.YYYY],[b]),O=i.useCallback(()=>{M({[r.DD]:"",[r.MM]:"",[r.YYYY]:""})},[]),[S,$]=i.useState(null),[j,k]=i.useState(!1),E=i.useMemo(()=>{if(!u.mode||0===u.mode.length)return[r.DD,r.MM,r.YYYY];return new Set(u.mode).size!==u.mode.length?[r.DD,r.MM,r.YYYY]:u.mode},[u.mode]),R=i.useCallback(e=>{const t=E.indexOf(e);return t<E.length-1?E[t+1]:E[0]},[E]),w=i.useCallback(e=>{const t=E.indexOf(e);return t>0?E[t-1]:E[E.length-1]},[E]),z=i.useCallback((e,t,l,n)=>{const i=e.DD,a=e.MM,o=e.YYYY,r=""===i?NaN:Number(i),u=""===a?NaN:Number(a),d=""===o?NaN:Number(o),c=""!==i||""!==a||""!==o;if(Number.isNaN(r)||Number.isNaN(u)||Number.isNaN(d))null==n||n(c);else{const e=s.utc(`${r}.${u}.${d}`,"D.M.YYYY",!0).startOf("day");e.isValid()?null==t||t(e.valueOf()):null==l||l()}},[]),C=i.useMemo(()=>{const e=[r.DD,r.MM,r.YYYY],t=Object.fromEntries(e.map(e=>[e,{type:e,value:b[e],placeholder:u.locale.inputs[e===r.DD?"day":e===r.MM?"month":"year"],isFirst:E[0]===e,isLast:E[E.length-1]===e,segmentNext:R(e),segmentPrev:w(e),onNextSegment:()=>$(R(e)),onPrevSegment:()=>$(w(e)),setValue:t=>M(l=>({...l,[e]:t})),setActive:()=>$(e)}]));return{sort:E.map(e=>t[e]).filter(Boolean),default:t}},[u,R,w,E,b]),N=i.useMemo(()=>["mo","tu","we","th","fr","sa","su"].map((e,t)=>{const l=u.locale.weeks.find(t=>t.value===e);return{index:t,label:(null==l?void 0:l.localeShort)??e.toUpperCase()}}),[u.locale.weeks]),V=i.useMemo(()=>{const e=s.utc(),t=g??h,l=t.clone().startOf("month"),n=t.clone().endOf("month"),i=u.dateMin?s.utc(u.dateMin):null,a=u.dateMax?s.utc(u.dateMax):null,o=l.clone().subtract(l.isoWeekday()-1,"days"),r=n.clone().add(7-n.isoWeekday(),"days"),d=[],c=o.clone();for(;c<=r;){const t=c.isBetween(l,n,"day","[]");d.push({value:c.valueOf(),labelString:c.format("dd"),labelNumber:c.date(),dayOfWeek:c.isoWeekday(),isWeekend:[6,7].includes(c.isoWeekday()),weekOfMonth:Math.ceil((d.length+1)/7),isToday:c.isSame(e,"day"),isCurrentMonth:t,isDisabled:!!(i&&c.isBefore(i,"day")||a&&c.isAfter(a,"day"))}),c.add(1,"day")}return d},[g,h,u.dateMax,u.dateMin]),A=i.useMemo(()=>function(e){const t=Math.floor(e/7);return e%7>0?t+1:t}(V.length)+1,[V]),P=i.useMemo(()=>40+28*A+6*(A-1)+2*t.KEY_SIZE_DATA[u.size].padding,[u.size,A]),B=i.useMemo(()=>t.KEY_SIZE_DATA[u.size].radius,[u.size]),W=i.useMemo(()=>t.KEY_SIZE_DATA[u.size].padding,[u.size]),I=i.useMemo(()=>null!==g,[g]),T=i.useRef(!1);i.useEffect(()=>{I&&!T.current&&(T.current=!0)},[I]);const F=i.useMemo(()=>{const e=(g??h).clone().add(1,"month").startOf("month");return!!u.dateMax&&e.isAfter(s.utc(u.dateMax),"month")},[g,u.dateMax,h]),L=i.useMemo(()=>{const e=(g??h).clone().subtract(1,"month").startOf("month");return!!u.dateMin&&e.isBefore(s.utc(u.dateMin),"month")},[g,u.dateMin,h]),[q,H]=i.useState(!1),K=i.useRef(""),_=i.useRef(null),U=i.useRef(null),Z=i.useRef(null),G=i.useCallback(()=>{var e;null==(e=u.onFocus)||e.call(u)},[u.onFocus]),J=i.useCallback(()=>{var e;null==(e=u.onBlur)||e.call(u)},[u.onBlur]),Q=i.useCallback(()=>{$(null)},[]),{isOpen:X,refReference:ee,refFloating:te,floatingStyles:le,close:ne,toggle:se}=t.usePopover({placement:"bottom-start",offset:W,mode:"independence",isClickOutside:!0,refsExcludeClickOutside:[_,U],isDisabled:(null==u?void 0:u.isDisabled)||(null==u?void 0:u.isReadOnly),onFocus:G,onBlur:J,onBlurReference:Q}),ie=i.useMemo(()=>!(q||I||!u.labelPlaceholder||X||y||S),[q,I,X,u.labelPlaceholder,y,S]),ae=i.useCallback((e,t,l)=>{const n=s(e).utc(),i=n.clone().date().toString(),a=(n.clone().month()+1).toString(),o=i.padStart(2,"0"),u=a.padStart(2,"0"),d=n.clone().year().toString(),c=null==l?void 0:l[r.DD],f=null==l?void 0:l[r.MM],p=null==l?void 0:l[r.YYYY],x=o===c&&u===f&&p===d,h=null==g?void 0:g.isSame(n,"day");h||(D(n),m(n.valueOf())),h&&!l||x||M({[r.DD]:t?o:i,[r.MM]:t?u:a,[r.YYYY]:d})},[g,m]),oe=i.useCallback(e=>{var t;const l=e.key,n=/^\d$/.test(l);if(n||["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Backspace","Delete","Tab","Enter"].includes(l)||e.ctrlKey||e.metaKey){if(S&&C.default[S]){if(n){!function(e,t,l,n){const s=e,i=t,a=l[i]??"";if(i===r.DD){if(a.length>=2)return void n.default[i].setValue(s);if(""===a)return void n.default[i].setValue(s);const e=a+s,t=Number(e);if(t>31)return void n.default[i].setValue(s);if(0===t)return void n.default[i].setValue(s);n.default[i].setValue(e),n.default[i].onNextSegment()}else if(i===r.MM){if(a.length>=2)return void n.default[i].setValue(s);if(""===a)return void n.default[i].setValue(s);const e=a+s,t=Number(e);if(t>12)return void n.default[i].setValue(s);if(0===t)return void n.default[i].setValue(s);n.default[i].setValue(e),(2===e.length||1===e.length&&Number(e)>1)&&n.default[i].onNextSegment()}else if(i===r.YYYY){if(a.length>=4)return void n.default[i].setValue(s);const e=a+s;n.default[i].setValue(e)}}(l,S,b,C),e.preventDefault(),e.stopPropagation()}if("Tab"===l&&(C.default[S].isLast?null==(t=null==Z?void 0:Z.current)||t.blur():(e.preventDefault(),C.default[S].onNextSegment())),"Enter"===l&&(e.preventDefault(),e.stopPropagation()),"Backspace"===l||"Delete"===l){if(S===r.DD)if(""!==b.DD){const e=b.DD;if(1===e.length)C.default[S].setValue("");else{const t=e.slice(0,-1);C.default[S].setValue(t)}}else C.default[S].onPrevSegment();else if(S===r.MM)if(""!==b.MM){const e=b.MM;if(1===e.length)C.default[S].setValue("");else{const t=e.slice(0,-1);C.default[S].setValue(t)}}else C.default[S].onPrevSegment();else if(S===r.YYYY)if(""!==b.YYYY){const e=b.YYYY;if(1===e.length)C.default[S].setValue("");else{const t=e.slice(0,-1);C.default[S].setValue(t)}}else C.default[S].onPrevSegment();e.preventDefault(),e.stopPropagation()}"ArrowLeft"!==l&&"ArrowDown"!==l||(e.preventDefault(),C.default[S].onPrevSegment()),"ArrowRight"!==l&&"ArrowUp"!==l||(e.preventDefault(),C.default[S].onNextSegment())}}else e.preventDefault()},[S,b,C.default,C]),re=i.useCallback(()=>{const e=(g??h).clone().add(1,"month");ae(e.valueOf(),!0)},[g,ae,h]),ue=i.useCallback(()=>{const e=(g??h).clone().subtract(1,"month");ae(e.valueOf(),!0)},[g,ae,h]);return i.useEffect(()=>{v(s(u.dateDefault).utc())},[u.dateDefault]),i.useEffect(()=>{if(D(u.value||u.defaultValue?s(u.value??u.defaultValue).utc():null),u.value){const e=s(u.value).utc();M({[r.DD]:e.date().toString().padStart(2,"0"),[r.MM]:(e.month()+1).toString().padStart(2,"0"),[r.YYYY]:e.year().toString()})}},[u.value,u.defaultValue]),i.useEffect(()=>{S||z(b,e=>{ae(e,!0,b),k(!1)},()=>{m(null),k(!0)},e=>{e||(T.current&&(m(null),T.current=!1),k(!1))})},[z,ae,m,b,S]),i.useEffect(()=>{X||q||!y||S||z(b,()=>{},()=>{m(null),O(),k(!1)},()=>{m(null),O(),k(!1)})},[z,O,b,X,q,m,y,S]),i.useEffect(()=>{S&&z(Y.current,e=>{ae(e,!0,Y.current),k(!1)},()=>{k(!0)},e=>{e||k(!1)})},[ae,z,S]),i.useEffect(()=>{var e;S&&(ne(),null==(e=null==Z?void 0:Z.current)||e.focus())},[S,ne]),e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsx(t.DateWrapper,{$size:u.size,$genre:u.genre,$sx:u.sx,$isDisabled:null==u?void 0:u.isDisabled,$isMinWidth:null==u?void 0:u.isMinWidth,$radius:B,$parentListHeight:P,tabIndex:-1,children:e.jsxRuntimeExports.jsxs(t.DateInputWrapper,{ref:ee,$genre:u.genre,$size:u.size,$isShowPlaceholder:ie,$isDisabled:null==u?void 0:u.isDisabled,$isReadOnly:null==u?void 0:u.isReadOnly,$isDisabledOutline:null==u?void 0:u.isDisabledOutline,$isOutlineBoxShadow:null==u?void 0:u.isOutlineBoxShadow,tabIndex:-1,$error:j?{isError:!0,size:(null==(d=null==u?void 0:u.error)?void 0:d.size)??u.size,...u.notValidDate}:u.error,$isOpen:X||!!S,onClick:()=>{S||(null==u?void 0:u.isReadOnly)||$(r.DD)},children:[e.jsxRuntimeExports.jsx("input",{name:u.name,"aria-label":u.ariaLabel??u.name,autoComplete:u.autoComplete,id:u.id,ref:Z,type:"tel",inputMode:"numeric",tabIndex:0,disabled:(null==u?void 0:u.isDisabled)||(null==u?void 0:u.isReadOnly),style:{position:"absolute",left:"-100dvw",top:0,width:"100%",height:"100%",opacity:0,border:"none",background:"transparent"},onKeyDown:oe,onChange:e=>{const t=e.target.value;if(function(e){if(!o.test(e))return!1;const[t,l,n]=e.split("-").map(Number),s=new Date(t,l-1,n);return s.getFullYear()===t&&s.getMonth()===l-1&&s.getDate()===n}(t)){const[e,l,n]=t.split("-");return void M({DD:n,MM:l,YYYY:e})}const l=K.current,n=t.length>l.length?t.slice(-1):null;K.current=t,n&&/^\d$/.test(n)&&oe({key:n,preventDefault:()=>{},stopPropagation:()=>{}}),t.length<l.length&&oe({key:"Backspace",preventDefault:()=>{},stopPropagation:()=>{}})},onFocus:()=>{H(!0),S||$(r.DD)},onBlur:()=>{var e;H(!1),X||null==(e=u.onBlur)||e.call(u)}}),ie?e.jsxRuntimeExports.jsx(t.Typography,{sx:{default:{size:16,line:1,isNoUserSelect:!0}},sxStandard:e=>({default:{color:e.colors.input[u.genre].color.placeholder}}),children:u.labelPlaceholder}):C.sort.map((l,n)=>{var s,a;return e.jsxRuntimeExports.jsxs(i.Fragment,{children:[e.jsxRuntimeExports.jsx(t.DateInput,{$isHaveValue:!!l.value,$isActive:S===l.type,$genre:u.genre,$size:u.size,$font:{...u.font,size:(null==(s=u.font)?void 0:s.size)??16,weight:(null==(a=u.font)?void 0:a.weight)??(u.isBold?500:400)},onClick:e=>{e.preventDefault(),e.stopPropagation(),(null==u?void 0:u.isDisabled)||(null==u?void 0:u.isReadOnly)||l.setActive()},children:l.value||l.placeholder||""}),n!==C.sort.length-1&&e.jsxRuntimeExports.jsx("span",{style:{width:"4px",pointerEvents:"none",textAlign:"center"},children:"."})]},l.type)}),e.jsxRuntimeExports.jsx(t.DateInputButton,{genre:u.genre,size:"small",isWidthAsHeight:!0,isFullSize:!0,isRadius:!0,isWhileTapEffect:!0,isOnlyIcon:!0,isDisabledRipple:!0,icons:[{name:"Calendar",type:"id"}],isDisabled:(null==u?void 0:u.isDisabled)||(null==u?void 0:u.isReadOnly),onFocus:e=>{e.preventDefault(),e.stopPropagation(),$(null)},onClick:e=>{e.preventDefault(),e.stopPropagation(),se()}})]})}),e.jsxRuntimeExports.jsx(t.Popover,{sx:e=>({default:{background:e.colors.input[u.genre].background.rest,border:`solid 1px ${e.colors.input[u.genre].border.rest}`}}),size:u.size,genre:u.genre,isOpen:X,isShowAlwaysOutline:!0,floatingStyles:le,ref:te,children:e.jsxRuntimeExports.jsxs(t.DateDropdownList,{$isInputEffect:u.isInputEffect,$genre:u.genre,$size:u.size,children:[e.jsxRuntimeExports.jsxs(n.Stack,{sx:{default:{justifyContent:"space-between",alignItems:"center"}},children:[e.jsxRuntimeExports.jsx(t.Button,{type:"button",isRadius:!0,isWhileTapEffect:!0,icons:[{name:"Arrow2",type:"id",turn:90}],isWidthAsHeight:!0,genre:u.genre,size:"small",onClick:()=>!L&&ue(),isDisabledRipple:!0,isHidden:L,isDisabled:L}),e.jsxRuntimeExports.jsxs(n.Stack,{sx:{default:{gap:"8px"}},children:[e.jsxRuntimeExports.jsx(t.SelectMonth,{monthsLocale:u.locale.months,genre:u.genre,size:"small",value:(g??h).clone().startOf("month").utc().valueOf(),isOnClickOptionClose:!0,isStayValueAfterSelect:!0,isOnlyColorInSelectListOption:!0,isCenter:!0,isShortLabel:!0,refFloating:_,onChange:e=>{e&&ae(e,!0)},dateMin:u.dateMin,dateMax:u.dateMax,sx:{default:{width:"60px"}}}),e.jsxRuntimeExports.jsx(t.SelectYear,{genre:u.genre,size:"small",refFloating:U,value:(g??h).clone().startOf("year").utc().valueOf(),onChange:e=>{e&&ae(e,!0)},isOnClickOptionClose:!0,isStayValueAfterSelect:!0,isOnlyColorInSelectListOption:!0,isCenter:!0,dateMin:u.dateMin,dateMax:u.dateMax,sx:{default:{width:"60px"}}})]}),e.jsxRuntimeExports.jsx(t.Button,{type:"button",isWhileTapEffect:!0,onClick:()=>!F&&re(),isWidthAsHeight:!0,isRadius:!0,icons:[{name:"Arrow2",type:"id",turn:-90}],genre:u.genre,size:"small",isDisabledRipple:!0,isDisabled:F,isHidden:F})]}),e.jsxRuntimeExports.jsxs(t.DateDropdownDays,{$rows:A,children:[N.map((l,n)=>{var s;return e.jsxRuntimeExports.jsx(t.DateDropdownDayOfWeek,{$font:{...u.font,size:12,weight:700},tabIndex:-1,type:"button",$isToday:!1,$isWeekend:!1,$genre:u.genre,$size:u.size,$row:(null==(s=V[0])?void 0:s.weekOfMonth)-1,$column:n+1,children:l.label},`${l.label}-${n}`)}),V.map(n=>e.jsxRuntimeExports.jsxs(t.DateDropdownDay,{$font:{...u.font,size:12,weight:700},type:"button",$isDisabled:n.isDisabled,$isDisabledOutline:n.isDisabled??u.isDisabledOutline,$isOutlineBoxShadow:u.isOutlineBoxShadow,$isReadOnly:u.isReadOnly,$genre:u.genre,$size:u.size,$row:(null==n?void 0:n.weekOfMonth)+1,$column:n.dayOfWeek,onClick:()=>{n.isDisabled||(ae(n.value,!0),u.isOnClickClose&&ne())},tabIndex:n.isDisabled?-1:0,$isToday:n.isToday,$isWeekend:n.isWeekend,$isChoice:n.value===(null==g?void 0:g.valueOf()),$isCurrentMonth:n.isCurrentMonth,children:[e.jsxRuntimeExports.jsx(l.Ripple,{color:x.colors.date[u.genre].color.rest,isDisabled:n.isDisabled}),n.labelNumber]},n.value))]})]})}),j||(null==u?void 0:u.error)?e.jsxRuntimeExports.jsx(t.ErrorMessage,{...j?{isError:!0,size:(null==(c=null==u?void 0:u.error)?void 0:c.size)??u.size,...u.notValidDate}:u.error,size:(null==(f=null==u?void 0:u.error)?void 0:f.size)??u.size,font:{size:12,weight:400,family:(null==(p=u.font)?void 0:p.family)??x.font.family}}):null]})},exports.DatePickerVariant=r;
|
|
2
|
+
//# sourceMappingURL=component.types-DRNn3P5n.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.types-DRNn3P5n.cjs","sources":["../src/components/date-picker/component.tsx","../src/components/date-picker/component.types.ts"],"sourcesContent":["import { Button } from '@local/components/button';\nimport { Ripple } from '@local/components/ripple';\nimport { SelectMonth, SelectYear } from '@local/components/select';\nimport { Stack } from '@local/components/stack';\nimport { ErrorMessage } from '@local/styles/error';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport moment, { Moment } from 'moment';\nimport { Fragment, KeyboardEvent, RefObject, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { Popover, usePopover } from '../popover';\nimport { Typography } from '../typography';\nimport {\n DateDayProps,\n DateDropdownDay,\n DateDropdownDayOfWeek,\n DateDropdownDays,\n DateDropdownList,\n DateInput,\n DateInputButton,\n DateInputWrapper,\n DatePickerMode,\n DatePickerProps,\n DatePickerVariant,\n DateWrapper,\n WeekItem,\n} from '.';\n\nfunction countSevens(number: number) {\n const divisor = 7;\n const count = Math.floor(number / divisor);\n const remainder = number % divisor;\n\n return remainder > 0 ? count + 1 : count;\n}\n\nexport const DatePicker = (props: DatePickerProps) => {\n const { onChange } = props;\n const theme = useTheme();\n\n const [valueMoment, setValueMoment] = useState<null | Moment>(null);\n const [dateDefaultMoment, setDateDefaultMoment] = useState<Moment>(moment(props.dateDefault).utc());\n\n // Изменяем тип с number | null на string\n const [input, setInput] = useState<Record<DatePickerVariant, string>>({\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n });\n const refInputValue = useRef(input);\n useEffect(() => {\n refInputValue.current = input;\n }, [input]);\n // Обновляем проверку на наличие input\n const isHasInput = useMemo(() => {\n return (\n input[DatePickerVariant.DD] !== '' || input[DatePickerVariant.MM] !== '' || input[DatePickerVariant.YYYY] !== ''\n );\n }, [input]);\n\n const onClearInput = useCallback(() => {\n setInput({\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n });\n }, []);\n\n const [activeSegment, setActiveSegment] = useState<DatePickerVariant | null>(null);\n const [isError, setIsError] = useState(false);\n\n const mode: DatePickerMode = useMemo(() => {\n if (!props.mode || props.mode.length === 0) {\n return [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY]; // дефолт\n }\n\n const hasDuplicates = new Set(props.mode).size !== props.mode.length;\n\n if (hasDuplicates) {\n return [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY]; // дефолт при дублировании\n }\n\n return props.mode;\n }, [props.mode]);\n\n const getNextSegment = useCallback(\n (currentSegment: DatePickerVariant): DatePickerVariant | null => {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex < mode.length - 1 ? mode[currentIndex + 1] : mode[0];\n },\n [mode],\n );\n\n const getPrevSegment = useCallback(\n (currentSegment: DatePickerVariant): DatePickerVariant | null => {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex > 0 ? mode[currentIndex - 1] : mode[mode.length - 1];\n },\n [mode],\n );\n\n // Обновляем функцию валидации для работы со строками\n const getValidateInput = useCallback(\n (\n input: Record<DatePickerVariant, string>,\n onSuccess?: (value: number) => void,\n onFailure?: () => void,\n onNan?: (isHasInput: boolean) => void,\n ) => {\n const dayStr = input.DD;\n const monthStr = input.MM;\n const yearStr = input.YYYY;\n\n const day = dayStr === '' ? NaN : Number(dayStr);\n const month = monthStr === '' ? NaN : Number(monthStr);\n const year = yearStr === '' ? NaN : Number(yearStr);\n\n const isHasInput = dayStr !== '' || monthStr !== '' || yearStr !== '';\n\n if (!Number.isNaN(day) && !Number.isNaN(month) && !Number.isNaN(year)) {\n const m = moment.utc(`${day}.${month}.${year}`, 'D.M.YYYY', true).startOf('day');\n if (m.isValid()) {\n onSuccess?.(m.valueOf());\n } else {\n onFailure?.();\n }\n } else {\n onNan?.(isHasInput);\n }\n },\n [],\n );\n\n const dataDate = useMemo(() => {\n const segments = [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY];\n\n const result = Object.fromEntries(\n segments.map((segment) => [\n segment,\n {\n type: segment,\n value: input[segment],\n placeholder:\n props.locale.inputs[\n segment === DatePickerVariant.DD ? 'day' : segment === DatePickerVariant.MM ? 'month' : 'year'\n ],\n isFirst: mode[0] === segment,\n isLast: mode[mode.length - 1] === segment,\n segmentNext: getNextSegment(segment),\n segmentPrev: getPrevSegment(segment),\n onNextSegment: () => setActiveSegment(getNextSegment(segment)),\n onPrevSegment: () => setActiveSegment(getPrevSegment(segment)),\n setValue: (value: string) => setInput((prev) => ({ ...prev, [segment]: value })),\n setActive: () => setActiveSegment(segment),\n },\n ]),\n ) as Record<\n DatePickerVariant,\n {\n type: DatePickerVariant;\n value: string;\n placeholder: string;\n isFirst: boolean;\n isLast: boolean;\n segmentNext: DatePickerVariant | null;\n segmentPrev: DatePickerVariant | null;\n onNextSegment: () => void;\n onPrevSegment: () => void;\n setValue: (value: string) => void;\n setActive: () => void;\n }\n >;\n\n const resultSort = mode.map((segment) => result[segment]).filter(Boolean);\n\n return { sort: resultSort, default: result };\n }, [props, getNextSegment, getPrevSegment, mode, input]);\n\n const daysInWeek = useMemo(() => {\n const weekOrder: WeekItem['value'][] = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'];\n\n return weekOrder.map((key, index) => {\n const found = props.locale.weeks.find((w) => w.value === key);\n return {\n index,\n label: found?.localeShort ?? key.toUpperCase(),\n };\n });\n }, [props.locale.weeks]);\n\n const daysInMonth: DateDayProps[] = useMemo(() => {\n const today = moment.utc();\n const baseMoment = valueMoment ?? dateDefaultMoment;\n const startOfMonth = baseMoment.clone().startOf('month');\n const endOfMonth = baseMoment.clone().endOf('month');\n\n const dateMin = props.dateMin ? moment.utc(props.dateMin) : null;\n const dateMax = props.dateMax ? moment.utc(props.dateMax) : null;\n\n // Определяем диапазон дат (с учетом дней до и после месяца)\n const firstVisibleDay = startOfMonth.clone().subtract(startOfMonth.isoWeekday() - 1, 'days');\n const lastVisibleDay = endOfMonth.clone().add(7 - endOfMonth.isoWeekday(), 'days');\n\n const days: DateDayProps[] = [];\n const currentDate = firstVisibleDay.clone();\n\n while (currentDate <= lastVisibleDay) {\n const isCurrentMonth = currentDate.isBetween(startOfMonth, endOfMonth, 'day', '[]');\n days.push({\n value: currentDate.valueOf(),\n labelString: currentDate.format('dd'),\n labelNumber: currentDate.date(),\n dayOfWeek: currentDate.isoWeekday(),\n isWeekend: [6, 7].includes(currentDate.isoWeekday()),\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: currentDate.isSame(today, 'day'),\n isCurrentMonth,\n isDisabled: !!(\n (dateMin && currentDate.isBefore(dateMin, 'day')) ||\n (dateMax && currentDate.isAfter(dateMax, 'day'))\n ),\n });\n\n currentDate.add(1, 'day');\n }\n\n return days;\n }, [valueMoment, dateDefaultMoment, props.dateMax, props.dateMin]);\n\n const rows = useMemo(() => countSevens(daysInMonth.length) + 1, [daysInMonth]);\n\n const height = useMemo(\n () => 40 + rows * 28 + (rows - 1) * 6 + KEY_SIZE_DATA[props.size].padding * 2,\n [props.size, rows],\n );\n\n const sizeRadius = useMemo(() => KEY_SIZE_DATA[props.size].radius, [props.size]);\n const sizePadding = useMemo(() => KEY_SIZE_DATA[props.size].padding, [props.size]);\n\n const isHasValue = useMemo(() => {\n return valueMoment !== null;\n }, [valueMoment]);\n\n const refIsHasValueOnce = useRef(false);\n\n useEffect(() => {\n if (isHasValue && !refIsHasValueOnce.current) refIsHasValueOnce.current = true;\n }, [isHasValue]);\n\n const isBlockNextMonth = useMemo(() => {\n const nextMonth = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month').startOf('month');\n const isBeforeEndDate = props.dateMax ? nextMonth.isAfter(moment.utc(props.dateMax), 'month') : false;\n return isBeforeEndDate;\n }, [valueMoment, props.dateMax, dateDefaultMoment]);\n const isBlockPrevMonth = useMemo(() => {\n const prevMonth = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month').startOf('month');\n const isAfterStartDate = props.dateMin ? prevMonth.isBefore(moment.utc(props.dateMin), 'month') : false;\n return isAfterStartDate;\n }, [valueMoment, props.dateMin, dateDefaultMoment]);\n\n const [isInputFocused, setIsInputFocused] = useState(false);\n\n const refPrevValue = useRef('');\n const refSelectMonth = useRef<HTMLElement>(null);\n const refSelectYear = useRef<HTMLElement>(null);\n const refHiddenInput = useRef<HTMLInputElement>(null);\n\n const onFocusPopover = useCallback(() => {\n props.onFocus?.();\n }, [props.onFocus]);\n const onBlurPopover = useCallback(() => {\n props.onBlur?.();\n }, [props.onBlur]);\n const onBlurReference = useCallback(() => {\n setActiveSegment(null);\n }, []);\n const { isOpen, refReference, refFloating, floatingStyles, close, toggle } = usePopover({\n placement: 'bottom-start',\n offset: sizePadding,\n mode: 'independence',\n isClickOutside: true,\n refsExcludeClickOutside: [refSelectMonth, refSelectYear],\n isDisabled: props?.isDisabled || props?.isReadOnly,\n onFocus: onFocusPopover,\n onBlur: onBlurPopover,\n onBlurReference: onBlurReference,\n });\n\n const isShowPlaceholder = useMemo(() => {\n return !!(!isInputFocused && !isHasValue && props.labelPlaceholder && !isOpen && !isHasInput && !activeSegment);\n }, [isInputFocused, isHasValue, isOpen, props.labelPlaceholder, isHasInput, activeSegment]);\n\n const onChangeDate = useCallback(\n (timestamp: number, isAddLeadingZeros: boolean, input?: Record<DatePickerVariant, string>) => {\n const momentNewDate = moment(timestamp).utc();\n\n const dd = momentNewDate.clone().date().toString();\n const mm = (momentNewDate.clone().month() + 1).toString();\n\n const ddWithZero = dd.padStart(2, '0');\n const mmWithZero = mm.padStart(2, '0');\n\n const yyyy = momentNewDate.clone().year().toString();\n const ddInput = input?.[DatePickerVariant.DD];\n const mmInput = input?.[DatePickerVariant.MM];\n const yyyyInput = input?.[DatePickerVariant.YYYY];\n\n const isSameInput = ddWithZero === ddInput && mmWithZero === mmInput && yyyyInput === yyyy;\n const isSameMoment = valueMoment?.isSame(momentNewDate, 'day');\n if (!isSameMoment) {\n setValueMoment(momentNewDate);\n onChange(momentNewDate.valueOf());\n }\n\n if (!isSameMoment || input ? !isSameInput : false) {\n setInput({\n [DatePickerVariant.DD]: isAddLeadingZeros ? ddWithZero : dd,\n [DatePickerVariant.MM]: isAddLeadingZeros ? mmWithZero : mm,\n [DatePickerVariant.YYYY]: yyyy,\n });\n }\n },\n [valueMoment, onChange],\n );\n\n // const onNextSegment = useCallback(\n // (\n // newInput: Record<DatePickerVariant, string>,\n // ) => {\n // if(newInput){\n // getValidateInput(\n // newInput,\n // (value) => {\n // onChangeDate(value, true);\n // setIsError(false);\n // },\n // () => {\n // setIsError(true);\n // },\n // () => {\n // setIsError(true);\n // },\n // );\n // }else{\n\n // }\n\n // },\n // [getValidateInput, onChangeDate],\n // );\n const onKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n const key = e.key;\n\n const allowedKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Backspace', 'Delete', 'Tab', 'Enter'];\n\n const isDigit = /^\\d$/.test(key);\n const isAllowed = isDigit || allowedKeys.includes(key) || e.ctrlKey || e.metaKey;\n\n if (!isAllowed) {\n e.preventDefault();\n return;\n }\n\n if (activeSegment && dataDate.default[activeSegment]) {\n if (isDigit) {\n const digit = key;\n\n handleDigitKey(digit, activeSegment, input, dataDate);\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Tab') {\n if (!dataDate.default[activeSegment].isLast) {\n e.preventDefault();\n dataDate.default[activeSegment].onNextSegment();\n } else {\n refHiddenInput?.current?.blur();\n }\n }\n if (key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Backspace' || key === 'Delete') {\n if (activeSegment === DatePickerVariant.DD) {\n if (input.DD !== '') {\n const current = input.DD;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n } else if (activeSegment === DatePickerVariant.MM) {\n if (input.MM !== '') {\n const current = input.MM;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n } else if (activeSegment === DatePickerVariant.YYYY) {\n if (input.YYYY !== '') {\n const current = input.YYYY;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n e.preventDefault();\n dataDate.default[activeSegment].onPrevSegment();\n }\n if (key === 'ArrowRight' || key === 'ArrowUp') {\n e.preventDefault();\n dataDate.default[activeSegment].onNextSegment();\n }\n }\n },\n [activeSegment, input, dataDate.default, dataDate],\n );\n const onNextMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onPrevMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n useEffect(() => {\n setDateDefaultMoment(moment(props.dateDefault).utc());\n }, [props.dateDefault]);\n\n useEffect(() => {\n setValueMoment(props.value || props.defaultValue ? moment(props.value ?? props.defaultValue).utc() : null);\n if (props.value) {\n // При инициализации также форматируем в строки с ведущими нулями\n const m = moment(props.value).utc();\n setInput({\n [DatePickerVariant.DD]: m.date().toString().padStart(2, '0'),\n [DatePickerVariant.MM]: (m.month() + 1).toString().padStart(2, '0'),\n [DatePickerVariant.YYYY]: m.year().toString(),\n });\n }\n }, [props.value, props.defaultValue]);\n\n useEffect(() => {\n if (!activeSegment)\n getValidateInput(\n input,\n (value) => {\n onChangeDate(value, true, input);\n setIsError(false);\n },\n () => {\n onChange(null);\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n if (refIsHasValueOnce.current) {\n onChange(null);\n refIsHasValueOnce.current = false;\n }\n setIsError(false);\n }\n },\n );\n }, [getValidateInput, onChangeDate, onChange, input, activeSegment]);\n\n useEffect(() => {\n if (!isOpen && !isInputFocused && isHasInput && !activeSegment)\n getValidateInput(\n input,\n () => {},\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n );\n }, [getValidateInput, onClearInput, input, isOpen, isInputFocused, onChange, isHasInput, activeSegment]);\n\n useEffect(() => {\n if (!activeSegment) return;\n getValidateInput(\n refInputValue.current,\n (value) => {\n onChangeDate(value, true, refInputValue.current);\n setIsError(false);\n },\n () => {\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n setIsError(false);\n }\n },\n );\n }, [onChangeDate, getValidateInput, activeSegment]);\n\n useEffect(() => {\n if (activeSegment) {\n close();\n refHiddenInput?.current?.focus();\n }\n }, [activeSegment, close]);\n return (\n <>\n <DateWrapper\n $size={props.size}\n $genre={props.genre}\n $sx={props.sx}\n $isDisabled={props?.isDisabled}\n $isMinWidth={props?.isMinWidth}\n $radius={sizeRadius}\n $parentListHeight={height}\n tabIndex={-1}\n >\n <DateInputWrapper\n ref={refReference as RefObject<HTMLDivElement | null>}\n $genre={props.genre}\n $size={props.size}\n $isShowPlaceholder={isShowPlaceholder}\n $isDisabled={props?.isDisabled}\n $isReadOnly={props?.isReadOnly}\n $isDisabledOutline={props?.isDisabledOutline}\n $isOutlineBoxShadow={props?.isOutlineBoxShadow}\n tabIndex={-1}\n $error={\n isError\n ? {\n isError: true,\n size: props?.error?.size ?? props.size,\n ...props.notValidDate,\n }\n : props.error\n }\n $isOpen={isOpen || !!activeSegment}\n onClick={() => {\n if (!activeSegment && !props?.isReadOnly) setActiveSegment(DatePickerVariant.DD);\n }}\n >\n <input\n name={props.name}\n aria-label={props.ariaLabel ?? props.name}\n autoComplete={props.autoComplete}\n id={props.id}\n ref={refHiddenInput}\n type='tel'\n inputMode='numeric'\n tabIndex={0}\n disabled={props?.isDisabled || props?.isReadOnly}\n style={{\n position: 'absolute',\n left: '-100dvw',\n top: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n border: 'none',\n background: 'transparent',\n }}\n onKeyDown={onKeyDown}\n onChange={(e) => {\n const value = e.target.value;\n\n if (isValidDateString(value)) {\n const [year, month, day] = value.split('-');\n setInput({\n DD: day,\n MM: month,\n YYYY: year,\n });\n return;\n }\n\n const prevValue = refPrevValue.current;\n\n const newChar = value.length > prevValue.length ? value.slice(-1) : null;\n\n refPrevValue.current = value;\n\n if (newChar && /^\\d$/.test(newChar)) {\n onKeyDown({\n key: newChar,\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n if (value.length < prevValue.length) {\n onKeyDown({\n key: 'Backspace',\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n }}\n onFocus={() => {\n setIsInputFocused(true);\n if (!activeSegment) setActiveSegment(DatePickerVariant.DD);\n }}\n onBlur={() => {\n setIsInputFocused(false);\n\n if (!isOpen) {\n props.onBlur?.();\n }\n }}\n />\n {isShowPlaceholder ? (\n <Typography\n sx={{ default: { size: 16, line: 1, isNoUserSelect: true } }}\n sxStandard={(theme) => ({\n default: {\n color: theme.colors.input[props.genre].color.placeholder,\n },\n })}\n >\n {props.labelPlaceholder}\n </Typography>\n ) : (\n dataDate.sort.map((date, index) => (\n <Fragment key={date.type}>\n <DateInput\n $isHaveValue={!!date.value}\n $isActive={activeSegment === date.type}\n $genre={props.genre}\n $size={props.size}\n $font={{\n ...props.font,\n size: props.font?.size ?? 16,\n weight: props.font?.weight ?? (props.isBold ? 500 : 400),\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n if (props?.isDisabled || props?.isReadOnly) return;\n date.setActive();\n }}\n >\n {date.value || date.placeholder || ''}\n </DateInput>\n {index !== dataDate.sort.length - 1 && (\n <span style={{ width: '4px', pointerEvents: 'none', textAlign: 'center' }}>.</span>\n )}\n </Fragment>\n ))\n )}\n <DateInputButton\n genre={props.genre}\n size='small'\n isWidthAsHeight\n isFullSize\n isRadius\n isWhileTapEffect\n isOnlyIcon\n isDisabledRipple\n icons={[{ name: 'Calendar', type: 'id' }]}\n isDisabled={props?.isDisabled || props?.isReadOnly}\n onFocus={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setActiveSegment(null);\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n toggle();\n }}\n />\n </DateInputWrapper>\n </DateWrapper>\n <Popover\n sx={(theme) => ({\n default: {\n background: theme.colors.input[props.genre].background.rest,\n border: `solid 1px ${theme.colors.input[props.genre].border.rest}`,\n },\n })}\n size={props.size}\n genre={props.genre}\n isOpen={isOpen}\n isShowAlwaysOutline\n floatingStyles={floatingStyles}\n ref={refFloating}\n >\n <DateDropdownList $isInputEffect={props.isInputEffect} $genre={props.genre} $size={props.size}>\n <Stack\n sx={{\n default: {\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n }}\n >\n <Button\n type='button'\n isRadius\n isWhileTapEffect\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: 90,\n },\n ]}\n isWidthAsHeight\n genre={props.genre}\n size={'small'}\n onClick={() => !isBlockPrevMonth && onPrevMonth()}\n isDisabledRipple\n isHidden={isBlockPrevMonth}\n isDisabled={isBlockPrevMonth}\n />\n <Stack sx={{ default: { gap: '8px' } }}>\n <SelectMonth\n monthsLocale={props.locale.months}\n genre={props.genre}\n size={'small'}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('month').utc().valueOf()}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n isShortLabel\n refFloating={refSelectMonth}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n }}\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n sx={{ default: { width: '60px' } }}\n />\n <SelectYear\n genre={props.genre}\n size={'small'}\n refFloating={refSelectYear}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('year').utc().valueOf()}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n }}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n sx={{ default: { width: '60px' } }}\n />\n </Stack>\n <Button\n type='button'\n isWhileTapEffect\n onClick={() => !isBlockNextMonth && onNextMonth()}\n isWidthAsHeight\n isRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: -90,\n },\n ]}\n genre={props.genre}\n size={'small'}\n isDisabledRipple\n isDisabled={isBlockNextMonth}\n isHidden={isBlockNextMonth}\n />\n </Stack>\n <DateDropdownDays $rows={rows}>\n {daysInWeek.map((e, index) => (\n <DateDropdownDayOfWeek\n $font={{\n ...props.font,\n size: 12,\n weight: 700,\n }}\n tabIndex={-1}\n type='button'\n $isToday={false}\n $isWeekend={false}\n $genre={props.genre}\n $size={props.size}\n $row={daysInMonth[0]?.weekOfMonth - 1}\n $column={index + 1}\n key={`${e.label}-${index}`}\n >\n {e.label}\n </DateDropdownDayOfWeek>\n ))}\n {daysInMonth.map((day) => (\n <DateDropdownDay\n $font={{\n ...props.font,\n size: 12,\n weight: 700,\n }}\n type='button'\n $isDisabled={day.isDisabled}\n $isDisabledOutline={day.isDisabled ?? props.isDisabledOutline}\n $isOutlineBoxShadow={props.isOutlineBoxShadow}\n $isReadOnly={props.isReadOnly}\n $genre={props.genre}\n $size={props.size}\n $row={day?.weekOfMonth + 1}\n $column={day.dayOfWeek}\n key={day.value}\n onClick={() => {\n if (!day.isDisabled) {\n onChangeDate(day.value, true);\n if (props.isOnClickClose) {\n close();\n }\n }\n }}\n tabIndex={day.isDisabled ? -1 : 0}\n $isToday={day.isToday}\n $isWeekend={day.isWeekend}\n $isChoice={day.value === valueMoment?.valueOf()}\n $isCurrentMonth={day.isCurrentMonth}\n >\n <Ripple color={theme.colors.date[props.genre].color.rest} isDisabled={day.isDisabled} />\n {day.labelNumber}\n </DateDropdownDay>\n ))}\n </DateDropdownDays>\n </DateDropdownList>\n </Popover>\n {isError || props?.error ? (\n <ErrorMessage\n {...(isError\n ? {\n isError: true,\n size: props?.error?.size ?? props.size,\n ...props.notValidDate,\n }\n : props.error)}\n size={props?.error?.size ?? props.size}\n font={{\n size: 12,\n weight: 400,\n family: props.font?.family ?? theme.font.family,\n }}\n />\n ) : null}\n </>\n );\n};\n\nfunction handleDigitKey(\n key: string,\n activeSegment: DatePickerVariant,\n input: Record<DatePickerVariant, string>,\n dataDate: { default: Record<DatePickerVariant, { setValue: (value: string) => void; onNextSegment: () => void }> },\n) {\n const digit = key; // '0'..'9'\n const seg = activeSegment;\n const current = input[seg] ?? ''; // Теперь это уже строка\n\n if (seg === DatePickerVariant.DD) {\n // Дни: максимум 31\n if (current.length >= 2) {\n // уже два символа — начинаем ввод заново\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (current === '') {\n // первый символ\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // есть один символ, добавляем второй\n const potential = current + digit;\n const potentialNum = Number(potential);\n\n if (potentialNum > 31) {\n // если получается больше 31, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (potentialNum === 0) {\n // если получается 00, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // нормальная комбинация\n dataDate.default[seg].setValue(potential);\n dataDate.default[seg].onNextSegment();\n // const newInput = { ...input, [seg]: potential };\n // onNextSegment?.(newInput);\n } else if (seg === DatePickerVariant.MM) {\n // Месяцы: максимум 12\n if (current.length >= 2) {\n // уже два символа — начинаем ввод заново\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (current === '') {\n // первый символ\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // есть один символ, добавляем второй\n const potential = current + digit;\n const potentialNum = Number(potential);\n\n if (potentialNum > 12) {\n // если получается больше 12, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (potentialNum === 0) {\n // если получается 00, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // нормальная комбинация\n dataDate.default[seg].setValue(potential);\n if (potential.length === 2 || (potential.length === 1 && Number(potential) > 1)) {\n dataDate.default[seg].onNextSegment();\n // const newInput = { ...input, [seg]: potential };\n // onNextSegment?.(newInput);\n }\n } else if (seg === DatePickerVariant.YYYY) {\n // Год: накапливаем до 4 цифр\n if (current.length >= 4) {\n // уже четыре символа — начинаем ввод заново\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // добавляем цифру\n const nextValue = current + digit;\n dataDate.default[seg].setValue(nextValue);\n }\n}\n\nconst DATE_REGEX = /^\\d{4}-\\d{2}-\\d{2}$/;\n\nfunction isValidDateString(value: string) {\n if (!DATE_REGEX.test(value)) return false;\n const [year, month, day] = value.split('-').map(Number);\n\n const date = new Date(year, month - 1, day);\n // Проверяем, что дата совпадает (например, 2023-02-31 -> станет 3 марта)\n return date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day;\n}\n","import { InputStandardProps, StyledInputProps, StyledInputWrapperProps } from '@local/components/input';\nimport { addFontProps, addOutlineProps, addOutlinePropsDollar } from '@local/styles/add';\nimport { addErrorProps, ErrorMessageProps } from '@local/styles/error';\nimport { addSXProps } from '@local/styles/sx';\nimport { IThemeGenreDate, IThemeSize } from '@local/theme';\nimport { AddDollarSign } from '@local/types';\n\nimport { HTMLInputAutoCompleteAttribute } from 'react';\n\nimport { SelectMonthProps } from '../select';\n\nexport type DatePickerMode = DatePickerVariant[];\nexport enum DatePickerVariant {\n DD = 'DD',\n MM = 'MM',\n YYYY = 'YYYY',\n}\n\nexport type CommonDatePickerProps = addErrorProps &\n addSXProps &\n addFontProps &\n addOutlineProps & {\n genre: TDateGenre;\n\n id?: string;\n\n isDisabled?: boolean;\n isBold?: boolean;\n isMinWidth?: boolean;\n\n isInputEffect?: InputStandardProps['isInputEffect'];\n\n isOnClickClose?: boolean;\n\n labelPlaceholder?: string;\n\n locale: {\n months: SelectMonthProps['monthsLocale'];\n weeks: WeekItem[];\n inputs: InputItem;\n };\n\n notValidDate?: Omit<ErrorMessageProps, 'size' | 'isError'>;\n\n mode?: DatePickerMode;\n\n name?: string;\n\n ariaLabel?: string;\n\n autoComplete?: HTMLInputAutoCompleteAttribute | string;\n \n onBlur?: () => void;\n\n onChange: (timestamp: number | null) => void;\n\n onFocus?: () => void;\n\n size: IThemeSize;\n\n dateMax?: number;\n\n dateMin?: number;\n\n dateDefault: number;\n };\n\ntype ControlledValue = {\n value: number | null | undefined;\n\n defaultValue?: never;\n};\n\ntype UncontrolledValue = {\n defaultValue: number | null | undefined;\n\n value?: never;\n};\nexport type DatePickerProps = CommonDatePickerProps & (ControlledValue | UncontrolledValue);\n\nexport type TDateGenre = keyof IThemeGenreDate;\n\nexport interface DateDayProps {\n dayOfWeek: number;\n\n isCurrentMonth: boolean;\n\n isDisabled: boolean;\n\n isToday: boolean;\n\n isWeekend: boolean;\n\n labelNumber: number;\n\n labelString: string;\n\n value: number;\n\n weekOfMonth: number;\n}\n\nexport type DateWrapperProps = AddDollarSign<\n Pick<InputStandardProps, 'genre' | 'isDisabled'> & {\n parentListHeight: number;\n radius: number;\n isMinWidth?: boolean;\n }\n> &\n StyledInputWrapperProps;\n\nexport type DateInputProps = AddDollarSign<\n Pick<DatePickerProps, 'error' | 'genre' | 'size' | 'isBold' | 'isReadOnly' | 'isDisabledOutline' | 'isOutlineBoxShadow' | 'isDisabled' | 'font'> & {\n isOpen?: boolean;\n isActive?: boolean;\n isHaveValue?: boolean;\n isShowPlaceholder?: boolean;\n }\n>;\n\nexport type DateStyledOptionProps = AddDollarSign<{\n isSelectedItem?: boolean;\n isCheckboxProps?: boolean;\n}> &\n StyledInputProps;\n\nexport type DateStyledListProps = AddDollarSign<Pick<InputStandardProps, 'genre' | 'size'>>;\n\nexport type DateDropdownListProps = AddDollarSign<\n Pick<DatePickerProps, 'isInputEffect'> & Pick<DatePickerProps, 'genre' | 'size'>\n>;\n\nexport type DateDropdownDayProps = AddDollarSign<\n Pick<DatePickerProps, 'genre' | 'size' | 'font'> &\n Pick<DateDayProps, 'isToday' | 'isWeekend'> & {\n row: number;\n column: number;\n isChoice?: boolean;\n isCurrentMonth?: boolean;\n isDisabled?: boolean;\n }\n> &\n addOutlinePropsDollar;\n\nexport type MonthItem = {\n localeLong: string;\n\n localeShort: string;\n\n value:\n | 'january'\n | 'february'\n | 'march'\n | 'april'\n | 'may'\n | 'june'\n | 'july'\n | 'august'\n | 'september'\n | 'october'\n | 'november'\n | 'december';\n};\nexport type WeekItem = {\n localeLong: string;\n\n localeShort: string;\n\n value: 'mo' | 'tu' | 'we' | 'th' | 'fr' | 'sa' | 'su';\n};\nexport type InputItem = {\n day: string;\n\n month: string;\n\n year: string;\n};\n"],"names":["DATE_REGEX","DatePickerVariant","props","onChange","theme","useTheme","valueMoment","setValueMoment","useState","dateDefaultMoment","setDateDefaultMoment","moment","dateDefault","utc","input","setInput","DD","MM","YYYY","refInputValue","useRef","useEffect","current","isHasInput","useMemo","onClearInput","useCallback","activeSegment","setActiveSegment","isError","setIsError","mode","length","Set","size","getNextSegment","currentSegment","currentIndex","indexOf","getPrevSegment","getValidateInput","onSuccess","onFailure","onNan","dayStr","monthStr","yearStr","day","NaN","Number","month","year","isNaN","m","startOf","isValid","valueOf","dataDate","segments","result","Object","fromEntries","map","segment","type","value","placeholder","locale","inputs","isFirst","isLast","segmentNext","segmentPrev","onNextSegment","onPrevSegment","setValue","prev","setActive","sort","filter","Boolean","default","daysInWeek","key","index","found","weeks","find","w","label","localeShort","toUpperCase","daysInMonth","today","baseMoment","startOfMonth","clone","endOfMonth","endOf","dateMin","dateMax","firstVisibleDay","subtract","isoWeekday","lastVisibleDay","add","days","currentDate","isCurrentMonth","isBetween","push","labelString","format","labelNumber","date","dayOfWeek","isWeekend","includes","weekOfMonth","Math","ceil","isToday","isSame","isDisabled","isBefore","isAfter","rows","number","count","floor","countSevens","height","KEY_SIZE_DATA","padding","sizeRadius","radius","sizePadding","isHasValue","refIsHasValueOnce","isBlockNextMonth","nextMonth","isBlockPrevMonth","prevMonth","isInputFocused","setIsInputFocused","refPrevValue","refSelectMonth","refSelectYear","refHiddenInput","onFocusPopover","_a","onFocus","call","onBlurPopover","onBlur","onBlurReference","isOpen","refReference","refFloating","floatingStyles","close","toggle","usePopover","placement","offset","isClickOutside","refsExcludeClickOutside","isReadOnly","isShowPlaceholder","labelPlaceholder","onChangeDate","timestamp","isAddLeadingZeros","momentNewDate","dd","toString","mm","ddWithZero","padStart","mmWithZero","yyyy","ddInput","mmInput","yyyyInput","isSameInput","isSameMoment","onKeyDown","e","isDigit","test","ctrlKey","metaKey","digit","seg","potential","potentialNum","nextValue","handleDigitKey","preventDefault","stopPropagation","blur","newValue","slice","onNextMonth","newDate","onPrevMonth","defaultValue","focus","jsxs","Fragment","children","jsx","DateWrapper","$size","$genre","genre","$sx","sx","$isDisabled","$isMinWidth","isMinWidth","$radius","$parentListHeight","tabIndex","DateInputWrapper","ref","$isShowPlaceholder","$isReadOnly","$isDisabledOutline","isDisabledOutline","$isOutlineBoxShadow","isOutlineBoxShadow","$error","error","notValidDate","$isOpen","onClick","name","ariaLabel","autoComplete","id","inputMode","disabled","style","position","left","top","width","opacity","border","background","target","split","Date","getFullYear","getMonth","getDate","isValidDateString","prevValue","newChar","Typography","line","isNoUserSelect","sxStandard","color","colors","DateInput","$isHaveValue","$isActive","$font","font","weight","_b","isBold","pointerEvents","textAlign","DateInputButton","isWidthAsHeight","isFullSize","isRadius","isWhileTapEffect","isOnlyIcon","isDisabledRipple","icons","Popover","rest","isShowAlwaysOutline","DateDropdownList","$isInputEffect","isInputEffect","Stack","justifyContent","alignItems","Button","turn","isHidden","gap","SelectMonth","monthsLocale","months","isOnClickOptionClose","isStayValueAfterSelect","isOnlyColorInSelectListOption","isCenter","isShortLabel","SelectYear","DateDropdownDays","$rows","DateDropdownDayOfWeek","$isToday","$isWeekend","$row","$column","DateDropdownDay","isOnClickClose","$isChoice","$isCurrentMonth","Ripple","ErrorMessage","_c","family","_d"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports } from "./jsx-runtime-BrDlu8eK.js";
|
|
2
|
-
import { bt as KEY_SIZE_DATA, bC as usePopover, D as DateWrapper, z as DateInputWrapper, aR as Typography, x as DateInput, F as DateInputButton, bD as Popover, s as DateDropdownList, B as Button, ao as SelectMonth, aq as SelectYear, t as DateDropdownDays, w as DateDropdownDayOfWeek, v as DateDropdownDay, bp as ErrorMessage } from "./context.constants-
|
|
2
|
+
import { bt as KEY_SIZE_DATA, bC as usePopover, D as DateWrapper, z as DateInputWrapper, aR as Typography, x as DateInput, F as DateInputButton, bD as Popover, s as DateDropdownList, B as Button, ao as SelectMonth, aq as SelectYear, t as DateDropdownDays, w as DateDropdownDayOfWeek, v as DateDropdownDay, bp as ErrorMessage } from "./context.constants-ByIVCRij.js";
|
|
3
3
|
import "./component.styles-B0L4jbOO.js";
|
|
4
4
|
import { R as Ripple } from "./component-DHM9pbab.js";
|
|
5
5
|
import { b as Stack } from "./component-DEZX8aBs.js";
|
|
@@ -436,6 +436,8 @@ const DatePicker = (props) => {
|
|
|
436
436
|
"input",
|
|
437
437
|
{
|
|
438
438
|
name: props.name,
|
|
439
|
+
"aria-label": props.ariaLabel ?? props.name,
|
|
440
|
+
autoComplete: props.autoComplete,
|
|
439
441
|
id: props.id,
|
|
440
442
|
ref: refHiddenInput,
|
|
441
443
|
type: "tel",
|
|
@@ -455,6 +457,15 @@ const DatePicker = (props) => {
|
|
|
455
457
|
onKeyDown,
|
|
456
458
|
onChange: (e) => {
|
|
457
459
|
const value = e.target.value;
|
|
460
|
+
if (isValidDateString(value)) {
|
|
461
|
+
const [year, month, day] = value.split("-");
|
|
462
|
+
setInput({
|
|
463
|
+
DD: day,
|
|
464
|
+
MM: month,
|
|
465
|
+
YYYY: year
|
|
466
|
+
});
|
|
467
|
+
return;
|
|
468
|
+
}
|
|
458
469
|
const prevValue = refPrevValue.current;
|
|
459
470
|
const newChar = value.length > prevValue.length ? value.slice(-1) : null;
|
|
460
471
|
refPrevValue.current = value;
|
|
@@ -813,6 +824,13 @@ function handleDigitKey(key, activeSegment, input, dataDate) {
|
|
|
813
824
|
dataDate.default[seg].setValue(nextValue);
|
|
814
825
|
}
|
|
815
826
|
}
|
|
827
|
+
const DATE_REGEX = /^\d{4}-\d{2}-\d{2}$/;
|
|
828
|
+
function isValidDateString(value) {
|
|
829
|
+
if (!DATE_REGEX.test(value)) return false;
|
|
830
|
+
const [year, month, day] = value.split("-").map(Number);
|
|
831
|
+
const date = new Date(year, month - 1, day);
|
|
832
|
+
return date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day;
|
|
833
|
+
}
|
|
816
834
|
var DatePickerVariant = /* @__PURE__ */ ((DatePickerVariant2) => {
|
|
817
835
|
DatePickerVariant2["DD"] = "DD";
|
|
818
836
|
DatePickerVariant2["MM"] = "MM";
|
|
@@ -823,4 +841,4 @@ export {
|
|
|
823
841
|
DatePicker as D,
|
|
824
842
|
DatePickerVariant as a
|
|
825
843
|
};
|
|
826
|
-
//# sourceMappingURL=component.types-
|
|
844
|
+
//# sourceMappingURL=component.types-SveBau90.js.map
|