@jenesei-software/jenesei-kit-react 1.3.21 → 1.3.23

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.
Files changed (159) hide show
  1. package/build/area-preview.cjs.js +1 -1
  2. package/build/area-preview.es.js +1 -1
  3. package/build/area-skeleton.cjs.js +1 -1
  4. package/build/area-skeleton.es.js +1 -1
  5. package/build/build-info.txt +3 -3
  6. package/build/{component-DC6wk9OC.cjs → component-1kuvOkUa.cjs} +2 -2
  7. package/build/{component-DC6wk9OC.cjs.map → component-1kuvOkUa.cjs.map} +1 -1
  8. package/build/{component-CqQpLjWf.js → component-31qgF6V7.js} +2 -2
  9. package/build/{component-CqQpLjWf.js.map → component-31qgF6V7.js.map} +1 -1
  10. package/build/{component-CZPL9hGj.cjs → component-BF_RC9Ej.cjs} +2 -2
  11. package/build/{component-CZPL9hGj.cjs.map → component-BF_RC9Ej.cjs.map} +1 -1
  12. package/build/{component-DgtdqEgO.cjs → component-BXCFqCtK.cjs} +2 -2
  13. package/build/{component-DgtdqEgO.cjs.map → component-BXCFqCtK.cjs.map} +1 -1
  14. package/build/{component-DvuH4WLo.cjs → component-BXhibaBj.cjs} +2 -2
  15. package/build/{component-DvuH4WLo.cjs.map → component-BXhibaBj.cjs.map} +1 -1
  16. package/build/{component-C9TJVTRc.js → component-BnJWTOR7.js} +6 -6
  17. package/build/{component-C9TJVTRc.js.map → component-BnJWTOR7.js.map} +1 -1
  18. package/build/{component-PvY4ZuKa.cjs → component-Bv6UuRlj.cjs} +2 -2
  19. package/build/{component-PvY4ZuKa.cjs.map → component-Bv6UuRlj.cjs.map} +1 -1
  20. package/build/{component-CWIsglCv.js → component-C0Cy_U1j.js} +3 -3
  21. package/build/{component-CWIsglCv.js.map → component-C0Cy_U1j.js.map} +1 -1
  22. package/build/{component-DAMiuCOk.js → component-C7Nffvkz.js} +2 -2
  23. package/build/{component-DAMiuCOk.js.map → component-C7Nffvkz.js.map} +1 -1
  24. package/build/{component-VZLVznEM.cjs → component-CDa4aHfO.cjs} +2 -2
  25. package/build/{component-VZLVznEM.cjs.map → component-CDa4aHfO.cjs.map} +1 -1
  26. package/build/{component-Dt1QKoQc.cjs → component-CYmkHAmE.cjs} +2 -2
  27. package/build/{component-Dt1QKoQc.cjs.map → component-CYmkHAmE.cjs.map} +1 -1
  28. package/build/{component-CeZFnxeP.js → component-CaJK3Oq8.js} +2 -2
  29. package/build/{component-CeZFnxeP.js.map → component-CaJK3Oq8.js.map} +1 -1
  30. package/build/{component-C7SV3z2B.js → component-D4hkx75Z.js} +2 -2
  31. package/build/{component-C7SV3z2B.js.map → component-D4hkx75Z.js.map} +1 -1
  32. package/build/{component-B--Ljzf8.js → component-DHj3MVyO.js} +2 -2
  33. package/build/{component-B--Ljzf8.js.map → component-DHj3MVyO.js.map} +1 -1
  34. package/build/{component-CS7C3l76.js → component-DLEbIbn9.js} +3 -3
  35. package/build/{component-CS7C3l76.js.map → component-DLEbIbn9.js.map} +1 -1
  36. package/build/{component-O7HvTkOa.js → component-DwFwB6Zz.js} +2 -2
  37. package/build/{component-O7HvTkOa.js.map → component-DwFwB6Zz.js.map} +1 -1
  38. package/build/{component-Bq9jd15r.cjs → component-GiB9SJbH.cjs} +2 -2
  39. package/build/{component-Bq9jd15r.cjs.map → component-GiB9SJbH.cjs.map} +1 -1
  40. package/build/{component-SobV8wHk.cjs → component-JIJwPwrc.cjs} +2 -2
  41. package/build/{component-SobV8wHk.cjs.map → component-JIJwPwrc.cjs.map} +1 -1
  42. package/build/{component-HpOulBAQ.js → component-JQMDepCj.js} +2 -2
  43. package/build/{component-HpOulBAQ.js.map → component-JQMDepCj.js.map} +1 -1
  44. package/build/{component-C3BrgaVs.js → component-RXfJR8yQ.js} +3 -3
  45. package/build/{component-C3BrgaVs.js.map → component-RXfJR8yQ.js.map} +1 -1
  46. package/build/component-accordion.cjs.js +1 -1
  47. package/build/component-accordion.es.js +2 -2
  48. package/build/component-button-group.cjs.js +1 -1
  49. package/build/component-button-group.es.js +2 -2
  50. package/build/component-button.cjs.js +1 -1
  51. package/build/component-button.es.js +1 -1
  52. package/build/component-checkbox-group.cjs.js +1 -1
  53. package/build/component-checkbox-group.es.js +2 -2
  54. package/build/component-checkbox.cjs.js +1 -1
  55. package/build/component-checkbox.es.js +2 -2
  56. package/build/component-date-picker.cjs.js +1 -1
  57. package/build/component-date-picker.es.js +2 -2
  58. package/build/component-icon.cjs.js +1 -1
  59. package/build/component-icon.es.js +1 -1
  60. package/build/component-image-button.cjs.js +1 -1
  61. package/build/component-image-button.es.js +1 -1
  62. package/build/component-image-select.cjs.js +1 -1
  63. package/build/component-image-select.es.js +2 -2
  64. package/build/component-image-slider.cjs.js +1 -1
  65. package/build/component-image-slider.es.js +2 -2
  66. package/build/component-image.cjs.js +1 -1
  67. package/build/component-image.es.js +2 -2
  68. package/build/component-input-otp.cjs.js +1 -1
  69. package/build/component-input-otp.es.js +2 -2
  70. package/build/component-input.cjs.js +1 -1
  71. package/build/component-input.es.js +2 -2
  72. package/build/{component-iyi7lqrB.cjs → component-jH7YXK4X.cjs} +2 -2
  73. package/build/{component-iyi7lqrB.cjs.map → component-jH7YXK4X.cjs.map} +1 -1
  74. package/build/component-map.cjs.js +1 -1
  75. package/build/component-map.es.js +2 -2
  76. package/build/component-pagination.cjs.js +1 -1
  77. package/build/component-pagination.es.js +1 -1
  78. package/build/component-range.cjs.js +1 -1
  79. package/build/component-range.es.js +2 -2
  80. package/build/component-select.cjs.js +1 -1
  81. package/build/component-select.es.js +1 -1
  82. package/build/component-textarea.cjs.js +1 -1
  83. package/build/component-textarea.es.js +1 -1
  84. package/build/component-toggle.cjs.js +1 -1
  85. package/build/component-toggle.es.js +2 -2
  86. package/build/component-tooltip.cjs.js +1 -1
  87. package/build/component-tooltip.es.js +1 -1
  88. package/build/component-typography.cjs.js +1 -1
  89. package/build/component-typography.d.ts +2 -0
  90. package/build/component-typography.es.js +1 -1
  91. package/build/{component-DBZIl6Pf.cjs → component-ySx7l0Xg.cjs} +2 -2
  92. package/build/{component-DBZIl6Pf.cjs.map → component-ySx7l0Xg.cjs.map} +1 -1
  93. package/build/{component.components-NP2aSgyb.js → component.components-DKDMKKNb.js} +2 -2
  94. package/build/{component.components-NP2aSgyb.js.map → component.components-DKDMKKNb.js.map} +1 -1
  95. package/build/{component.components-Cck7T25y.cjs → component.components-DzoKT5j9.cjs} +2 -2
  96. package/build/{component.components-Cck7T25y.cjs.map → component.components-DzoKT5j9.cjs.map} +1 -1
  97. package/build/{component.constants-3UuU_a__.js → component.constants-BMz7bhlw.js} +2 -2
  98. package/build/{component.constants-3UuU_a__.js.map → component.constants-BMz7bhlw.js.map} +1 -1
  99. package/build/{component.constants-B0mODNks.js → component.constants-Bgm_xB87.js} +5 -5
  100. package/build/{component.constants-B0mODNks.js.map → component.constants-Bgm_xB87.js.map} +1 -1
  101. package/build/{component.constants-vNAPiC5p.cjs → component.constants-C0oGZ1iR.cjs} +2 -2
  102. package/build/{component.constants-vNAPiC5p.cjs.map → component.constants-C0oGZ1iR.cjs.map} +1 -1
  103. package/build/{component.constants-CoFHa30V.cjs → component.constants-DZyqQi6L.cjs} +2 -2
  104. package/build/{component.constants-CoFHa30V.cjs.map → component.constants-DZyqQi6L.cjs.map} +1 -1
  105. package/build/{component.types-Cysm3D4v.js → component.types-D_tW7ArD.js} +2 -2
  106. package/build/{component.types-Cysm3D4v.js.map → component.types-D_tW7ArD.js.map} +1 -1
  107. package/build/{component.types-BRZsYWlH.cjs → component.types-ZmH2V3qe.cjs} +2 -2
  108. package/build/{component.types-BRZsYWlH.cjs.map → component.types-ZmH2V3qe.cjs.map} +1 -1
  109. package/build/consts.cjs.js +1 -1
  110. package/build/consts.es.js +1 -1
  111. package/build/context-app.cjs.js +1 -1
  112. package/build/context-app.es.js +2 -2
  113. package/build/context-dialog.cjs.js +1 -1
  114. package/build/context-dialog.es.js +2 -2
  115. package/build/context-sonner.cjs.js +1 -1
  116. package/build/context-sonner.es.js +2 -2
  117. package/build/{context.constants-BVl2x1gR.js → context.constants-AVloP24q.js} +8 -17
  118. package/build/context.constants-AVloP24q.js.map +1 -0
  119. package/build/{context.constants-D-s5XvZX.js → context.constants-CZykW9B3.js} +2 -2
  120. package/build/{context.constants-D-s5XvZX.js.map → context.constants-CZykW9B3.js.map} +1 -1
  121. package/build/{context.constants-YhrMPIvq.cjs → context.constants-wfD246Ww.cjs} +34 -45
  122. package/build/context.constants-wfD246Ww.cjs.map +1 -0
  123. package/build/{context.constants-BgXWD3zz.cjs → context.constants-wztrdG5Q.cjs} +2 -2
  124. package/build/{context.constants-BgXWD3zz.cjs.map → context.constants-wztrdG5Q.cjs.map} +1 -1
  125. package/build/{context.hooks-DjwMqRSt.js → context.hooks-BsMIDkb3.js} +2 -2
  126. package/build/{context.hooks-DjwMqRSt.js.map → context.hooks-BsMIDkb3.js.map} +1 -1
  127. package/build/{context.hooks-KS9z3sac.js → context.hooks-CQXyg8Md.js} +2 -2
  128. package/build/{context.hooks-KS9z3sac.js.map → context.hooks-CQXyg8Md.js.map} +1 -1
  129. package/build/{context.hooks-Dkb5yK8Z.cjs → context.hooks-CXSsHfiI.cjs} +2 -2
  130. package/build/{context.hooks-Dkb5yK8Z.cjs.map → context.hooks-CXSsHfiI.cjs.map} +1 -1
  131. package/build/{context.hooks-fo2TeZoK.js → context.hooks-D0OtRPb7.js} +2 -2
  132. package/build/{context.hooks-fo2TeZoK.js.map → context.hooks-D0OtRPb7.js.map} +1 -1
  133. package/build/{context.hooks-B16qxQQY.cjs → context.hooks-DDtUqE34.cjs} +2 -2
  134. package/build/{context.hooks-B16qxQQY.cjs.map → context.hooks-DDtUqE34.cjs.map} +1 -1
  135. package/build/{context.hooks-99wJ8TBG.cjs → context.hooks-L-OO9FIg.cjs} +2 -2
  136. package/build/{context.hooks-99wJ8TBG.cjs.map → context.hooks-L-OO9FIg.cjs.map} +1 -1
  137. package/build/index.cjs.js +1 -1
  138. package/build/index.d.ts +6 -0
  139. package/build/index.es.js +29 -28
  140. package/build/{style-RL73t3JD.js → style-BfuEu91g.js} +14 -8
  141. package/build/style-BfuEu91g.js.map +1 -0
  142. package/build/{style-Df37KnoJ.cjs → style-Drq-Q1Im.cjs} +12 -8
  143. package/build/style-Drq-Q1Im.cjs.map +1 -0
  144. package/build/style-add.cjs.js +1 -1
  145. package/build/style-add.d.ts +4 -0
  146. package/build/style-add.es.js +9 -8
  147. package/build/style-error.cjs.js +1 -1
  148. package/build/style-error.es.js +1 -1
  149. package/build/style-theme.cjs.js +1 -1
  150. package/build/style-theme.es.js +1 -1
  151. package/build/{use-BI2JJFUm.js → use-B4ELG6B3.js} +5 -5
  152. package/build/{use-BI2JJFUm.js.map → use-B4ELG6B3.js.map} +1 -1
  153. package/build/{use-CtF6jyms.cjs → use-fcNoM5UL.cjs} +2 -2
  154. package/build/{use-CtF6jyms.cjs.map → use-fcNoM5UL.cjs.map} +1 -1
  155. package/package.json +1 -1
  156. package/build/context.constants-BVl2x1gR.js.map +0 -1
  157. package/build/context.constants-YhrMPIvq.cjs.map +0 -1
  158. package/build/style-Df37KnoJ.cjs.map +0 -1
  159. package/build/style-RL73t3JD.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"component.constants-vNAPiC5p.cjs","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":["sliderVariants","initial","direction","x","scale","opacity","active","exit","sliderTransition","duration","ease","ComponentHandleAdd","params","remove","jsxs","Stack","sx","default","position","overflow","aspectRatio","aspect","width","maxWidth","height","borderRadius","br","tablet","children","jsx","AnimatePresence","custom","SliderImage","style","variants","animate","transition","isLengthOne","drag","dragConstraints","left","right","dragElastic","onDragEnd","_","dragInfo","dragEndHandler","Image","sxStack","theme","alignItems","justifyContent","backgroundColor","palette","black10","pointerEvents","isShowBeforeImage","sxImage","objectFit","alt","_b","images","_a","activeImageIndex","imageSrc","src","_d","_c","componentFallback","Typography","variant","failedToLoad","_f","_e","activeImageId","_g","call","isDialog","Button","bottom","genre","size","icons","type","name","isWidthAsHeight","isHiddenBorder","isRadius","onClick","Fragment","gap","turn","isPlaystationEffect","swipeToImage","transform","map","i","SliderDot","skipToImage","id","IMAGES","padding","flexGrow","isDisabled","sxTypography","weight","props","onIndexChange","useMemo","KEY_SIZE_DATA","radius","isLengthZero","handleAdd","setActiveImage","useState","length","findIndex","img","useCallback","swipeDirection","nextIndex","offset","velocity","swipePower","Math","abs","imageId","currentIndex","newIndex","useEffect","add","useDialog","imageSettings","locales","propsDialog","background","content","useImageSlider","StackMotion","propsStack","flexDirection","_h","_i","isLoading","display","Icon","color","noImagesAvailable","top"],"mappings":"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"}
1
+ {"version":3,"file":"component.constants-C0oGZ1iR.cjs","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":["sliderVariants","initial","direction","x","scale","opacity","active","exit","sliderTransition","duration","ease","ComponentHandleAdd","params","remove","jsxs","Stack","sx","default","position","overflow","aspectRatio","aspect","width","maxWidth","height","borderRadius","br","tablet","children","jsx","AnimatePresence","custom","SliderImage","style","variants","animate","transition","isLengthOne","drag","dragConstraints","left","right","dragElastic","onDragEnd","_","dragInfo","dragEndHandler","Image","sxStack","theme","alignItems","justifyContent","backgroundColor","palette","black10","pointerEvents","isShowBeforeImage","sxImage","objectFit","alt","_b","images","_a","activeImageIndex","imageSrc","src","_d","_c","componentFallback","Typography","variant","failedToLoad","_f","_e","activeImageId","_g","call","isDialog","Button","bottom","genre","size","icons","type","name","isWidthAsHeight","isHiddenBorder","isRadius","onClick","Fragment","gap","turn","isPlaystationEffect","swipeToImage","transform","map","i","SliderDot","skipToImage","id","IMAGES","padding","flexGrow","isDisabled","sxTypography","weight","props","onIndexChange","useMemo","KEY_SIZE_DATA","radius","isLengthZero","handleAdd","setActiveImage","useState","length","findIndex","img","useCallback","swipeDirection","nextIndex","offset","velocity","swipePower","Math","abs","imageId","currentIndex","newIndex","useEffect","add","useDialog","imageSettings","locales","propsDialog","background","content","useImageSlider","StackMotion","propsStack","flexDirection","_h","_i","isLoading","display","Icon","color","noImagesAvailable","top"],"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-YhrMPIvq.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-CoFHa30V.cjs.map
1
+ "use strict";const t=require("./jsx-runtime-BcGej2Kr.cjs"),n=require("framer-motion"),e=require("react"),i=require("./context.constants-wfD246Ww.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-DZyqQi6L.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.constants-CoFHa30V.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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"}
1
+ {"version":3,"file":"component.constants-DZyqQi6L.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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"}
@@ -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-BVl2x1gR.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-AVloP24q.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";
@@ -850,4 +850,4 @@ export {
850
850
  DatePicker as D,
851
851
  DatePickerVariant as a
852
852
  };
853
- //# sourceMappingURL=component.types-Cysm3D4v.js.map
853
+ //# sourceMappingURL=component.types-D_tW7ArD.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.types-Cysm3D4v.js","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 const [input, setInput] = useState<Record<DatePickerVariant, number | null>>({\n [DatePickerVariant.DD]: null,\n [DatePickerVariant.MM]: null,\n [DatePickerVariant.YYYY]: null,\n });\n\n const isHasInput = useMemo(() => {\n return (\n input[DatePickerVariant.DD] !== null ||\n input[DatePickerVariant.MM] !== null ||\n input[DatePickerVariant.YYYY] !== null\n );\n }, [input]);\n const onClearInput = useCallback(() => {\n setInput({\n [DatePickerVariant.DD]: null,\n [DatePickerVariant.MM]: null,\n [DatePickerVariant.YYYY]: null,\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 const dataDate = useMemo(() => {\n const result = {\n MM: {\n nextSegment: getNextSegment(DatePickerVariant.MM),\n preSegment: getPrevSegment(DatePickerVariant.MM),\n onNext: () => setActiveSegment(getNextSegment(DatePickerVariant.MM)),\n onPrev: () => setActiveSegment(getPrevSegment(DatePickerVariant.MM)),\n isLast: mode[mode.length - 1] === DatePickerVariant.MM,\n isFirst: mode[0] === DatePickerVariant.MM,\n type: DatePickerVariant.MM,\n value: input.MM,\n setValue: (value: number | null) => setInput((prevValue) => ({ ...prevValue, [DatePickerVariant.MM]: value })),\n setActive: () => setActiveSegment(DatePickerVariant.MM),\n placeholder: props.locale.inputs.month,\n },\n DD: {\n nextSegment: getNextSegment(DatePickerVariant.DD),\n preSegment: getPrevSegment(DatePickerVariant.DD),\n isLast: mode[mode.length - 1] === DatePickerVariant.DD,\n isFirst: mode[0] === DatePickerVariant.DD,\n onNext: () => setActiveSegment(getNextSegment(DatePickerVariant.DD)),\n onPrev: () => setActiveSegment(getPrevSegment(DatePickerVariant.DD)),\n type: DatePickerVariant.DD,\n value: input.DD,\n setValue: (value: number | null) => setInput((prevValue) => ({ ...prevValue, [DatePickerVariant.DD]: value })),\n setActive: () => setActiveSegment(DatePickerVariant.DD),\n placeholder: props.locale.inputs.day,\n },\n YYYY: {\n nextSegment: getNextSegment(DatePickerVariant.YYYY),\n preSegment: getPrevSegment(DatePickerVariant.YYYY),\n isLast: mode[mode.length - 1] === DatePickerVariant.YYYY,\n isFirst: mode[0] === DatePickerVariant.YYYY,\n onNext: () => setActiveSegment(getNextSegment(DatePickerVariant.YYYY)),\n onPrev: () => setActiveSegment(getPrevSegment(DatePickerVariant.YYYY)),\n type: DatePickerVariant.YYYY,\n value: input.YYYY,\n setValue: (value: number | null) =>\n setInput((prevValue) => ({ ...prevValue, [DatePickerVariant.YYYY]: value })),\n setActive: () => setActiveSegment(DatePickerVariant.YYYY),\n placeholder: props.locale.inputs.year,\n },\n };\n const resultSort = mode\n .map((e) => {\n if (e === DatePickerVariant.DD) return result.DD;\n if (e === DatePickerVariant.MM) return result.MM;\n if (e === DatePickerVariant.YYYY) return result.YYYY;\n return null;\n })\n .filter((e) => e !== null);\n return { sort: resultSort, default: result };\n }, [\n props.locale.inputs.day,\n props.locale.inputs.month,\n props.locale.inputs.year,\n getNextSegment,\n getPrevSegment,\n mode,\n input.DD,\n input.MM,\n input.YYYY,\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 const daysInMonth: DateDayProps[] = useMemo(() => {\n const today = moment.utc();\n const startOfMonth = (valueMoment ?? dateDefaultMoment).clone().startOf('month');\n const endOfMonth = (valueMoment ?? dateDefaultMoment).clone().endOf('month');\n const days = [];\n\n const dateMin = props.dateMin ? moment.utc(props.dateMin) : null;\n const dateMax = props.dateMax ? moment.utc(props.dateMax) : null;\n\n const daysToAddBefore = startOfMonth.isoWeekday() - 1;\n if (daysToAddBefore > 0) {\n for (let i = daysToAddBefore; i > 0; i--) {\n const day = startOfMonth.clone().subtract(i, 'days');\n days.push({\n value: day.valueOf(),\n labelString: day.format('dd'),\n labelNumber: day.date(),\n dayOfWeek: day.isoWeekday(),\n isWeekend: day.isoWeekday() === 6 || day.isoWeekday() === 7,\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: day.isSame(today, 'day'),\n isCurrentMonth: false,\n isDisabled: day.isBefore(dateMin, 'day') || day.isAfter(dateMax, 'day'),\n });\n }\n }\n\n const currentDate = startOfMonth.clone();\n while (currentDate <= endOfMonth) {\n days.push({\n value: currentDate.valueOf(),\n labelString: currentDate.format('dd'),\n labelNumber: currentDate.date(),\n dayOfWeek: currentDate.isoWeekday(),\n isWeekend: currentDate.isoWeekday() === 6 || currentDate.isoWeekday() === 7,\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: currentDate.isSame(today, 'day'),\n isCurrentMonth: true,\n isDisabled: currentDate.isBefore(dateMin, 'day') || currentDate.isAfter(dateMax, 'day'),\n });\n currentDate.add(1, 'day');\n }\n\n const daysToAddAfter = 7 - endOfMonth.isoWeekday();\n if (daysToAddAfter > 0) {\n for (let i = 1; i <= daysToAddAfter; i++) {\n const day = endOfMonth.clone().add(i, 'days').startOf('day');\n days.push({\n value: day.valueOf(),\n labelString: day.format('dd'),\n labelNumber: day.date(),\n dayOfWeek: day.isoWeekday(),\n isWeekend: day.isoWeekday() === 6 || day.isoWeekday() === 7,\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: day.isSame(today, 'day'),\n isCurrentMonth: false,\n isDisabled: day.isBefore(dateMin, 'day') || day.isAfter(dateMax, 'day'),\n });\n }\n }\n\n days.sort((a, b) => a.value - b.value);\n return days;\n }, [valueMoment, dateDefaultMoment, props.dateMax, props.dateMin]);\n\n const rows = useMemo(() => countSevens(daysInMonth.length) + 1, [daysInMonth]);\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 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) => {\n const momentNewDate = moment(timestamp).utc();\n if (valueMoment?.isSame(momentNewDate, 'day')) return;\n setValueMoment(momentNewDate);\n onChange(momentNewDate.valueOf());\n\n setInput({\n [DatePickerVariant.DD]: momentNewDate.clone().date(),\n [DatePickerVariant.MM]: momentNewDate.clone().month() + 1,\n [DatePickerVariant.YYYY]: momentNewDate.clone().year(),\n });\n },\n [valueMoment, onChange],\n );\n const handleKeyDown = 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].onNext();\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 !== null) {\n const current = input.DD.toString();\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue(null);\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(Number(newValue));\n }\n } else {\n dataDate.default[activeSegment].onPrev();\n }\n } else if (activeSegment === DatePickerVariant.MM) {\n if (input.MM !== null) {\n const current = input.MM.toString();\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue(null);\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(Number(newValue));\n }\n } else {\n dataDate.default[activeSegment].onPrev();\n }\n } else if (activeSegment === DatePickerVariant.YYYY) {\n if (input.YYYY !== null) {\n const current = input.YYYY.toString();\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue(null);\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(Number(newValue));\n }\n } else {\n dataDate.default[activeSegment].onPrev();\n }\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n e.preventDefault();\n dataDate.default[activeSegment].onPrev();\n }\n if (key === 'ArrowRight' || key === 'ArrowUp') {\n e.preventDefault();\n dataDate.default[activeSegment].onNext();\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());\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onPrevMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month');\n onChangeDate(newDate.valueOf());\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 setInput({\n [DatePickerVariant.DD]: moment(props.value).utc().date(),\n [DatePickerVariant.MM]: moment(props.value).utc().month() + 1,\n [DatePickerVariant.YYYY]: moment(props.value).utc().year(),\n });\n }\n }, [props.value, props.defaultValue]);\n\n const getValidateInput = useCallback(\n (\n input: Record<DatePickerVariant, number | null>,\n onSuccess?: (value: number) => void,\n onFailure?: () => void,\n onNan?: (isHasInput: boolean) => void,\n ) => {\n const day = input.DD ?? NaN;\n const month = input.MM ?? NaN;\n const year = input.YYYY ?? NaN;\n const isHasInput =\n input[DatePickerVariant.DD] !== null ||\n input[DatePickerVariant.MM] !== null ||\n input[DatePickerVariant.YYYY] !== null;\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 useEffect(() => {\n getValidateInput(\n input,\n (value) => {\n onChangeDate(value);\n setIsError(false);\n },\n () => {\n onChange(null);\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n setIsError(false);\n }\n },\n );\n }, [getValidateInput, onChangeDate, onChange, input]);\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) {\n refHiddenInput?.current?.focus();\n }\n }, [activeSegment]);\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 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 // left: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n border: 'none',\n background: 'transparent',\n }}\n onKeyDown={handleKeyDown}\n onChange={(e) => {\n const value = e.target.value;\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 handleKeyDown({\n key: newChar,\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n if (value.length < prevValue.length) {\n handleKeyDown({\n key: 'Backspace',\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n // if (newChar === '\\n') {\n // close();\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 size: props.font?.size ?? 16,\n weight: props.font?.weight ?? (props.isBold ? 500 : 400),\n family: props.font?.family ?? theme.font.family,\n height: props.font?.height ?? theme.font.lineHeight,\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 != null\n ? String(date.value).padStart(date.type === DatePickerVariant.YYYY ? 1 : 2, '0')\n : 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 isOnlyIcon\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 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 isHidden={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);\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);\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 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 isHidden={isBlockNextMonth}\n />\n </Stack>\n <DateDropdownDays $rows={rows}>\n {daysInWeek.map((e, index) => (\n <DateDropdownDayOfWeek\n $font={{\n size: 12,\n weight: 700,\n family: props.font?.family ?? theme.font.family,\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 size: 12,\n weight: 700,\n family: props.font?.family ?? theme.font.family,\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);\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 {!day.isDisabled && <Ripple color={theme.colors.date[props.genre].color.rest} />}\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};\nfunction handleDigitKey(\n key: string,\n activeSegment: DatePickerVariant,\n input: Record<DatePickerVariant, number | null>,\n dataDate: { default: Record<DatePickerVariant, { setValue: (value: number) => void; onNext: () => void }> },\n) {\n const digit = key; // '0'..'9'\n const seg = activeSegment;\n const current = input[seg]?.toString() ?? ''; // Преобразуем number в string для работы\n\n // Вспомогательная проверка\n const isZero = (s: string) => s === '0';\n const toNum = (s: string) => Number(s);\n\n if (seg === DatePickerVariant.DD) {\n // Дни: максимум 31, ноль недопустим как самостоятельное значение\n if (current.length >= 2) {\n // уже два символа — начинаем ввод заново\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed);\n return;\n }\n\n // special-case: если было '0' и пользователь ввёл не '0' — НЕ подставляем '0' перед цифрой,\n // сохраняем single-digit и считаем ввод завершённым (переходим).\n if (current.length === 1 && isZero(current)) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed); // сохраняем число, а не строку\n dataDate.default[seg].onNext();\n return;\n }\n\n // обычный путь: добавляем цифру и решаем — перезаписать или дополнить\n const potential = current + digit;\n const potentialParsed = toNum(potential);\n\n // ИСПРАВЛЕНИЕ: если потенциальное значение больше 31, используем только новую цифру и переходим дальше\n if (potentialParsed > 31) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed);\n dataDate.default[seg].onNext(); // Переходим к следующему сегменту\n return;\n }\n\n // Если потенциальное значение равно 0, используем только новую цифру\n const nextValue = potentialParsed === 0 ? digit : potential;\n const parsed = toNum(nextValue);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed);\n if (nextValue.length === 2) dataDate.default[seg].onNext();\n } else if (seg === DatePickerVariant.MM) {\n // Месяцы: максимум 12, ноль недопустим как самостоятельное значение\n if (current.length >= 2) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 12) return;\n dataDate.default[seg].setValue(parsed);\n return;\n }\n\n if (current.length === 1 && isZero(current)) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 12) return;\n dataDate.default[seg].setValue(parsed); // сохраняем число, а не строку\n dataDate.default[seg].onNext();\n return;\n }\n\n const potential = current + digit;\n const potentialParsed = toNum(potential);\n const nextValue = potentialParsed === 0 || potentialParsed > 12 ? digit : potential;\n\n const parsed = toNum(nextValue);\n if (parsed === 0 || parsed > 12) return;\n dataDate.default[seg].setValue(parsed);\n if (nextValue.length === 2 || (nextValue.length === 1 && parsed > 1)) {\n dataDate.default[seg].onNext();\n }\n } else if (seg === DatePickerVariant.YYYY) {\n // Год: накапливаем до 4 цифр. Если уже 4 — начинаем заново (как раньше)\n if (current.length >= 4) {\n if (digit === '0') return;\n dataDate.default[seg].setValue(toNum(digit));\n return;\n }\n\n const nextValue = (current + digit).slice(-4);\n dataDate.default[seg].setValue(toNum(nextValue));\n }\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 { 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 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":["_a","input","isHasInput","jsxs","Fragment","jsx","theme","_b","_c","_d","parsed","DatePickerVariant"],"mappings":"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"}
1
+ {"version":3,"file":"component.types-D_tW7ArD.js","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 const [input, setInput] = useState<Record<DatePickerVariant, number | null>>({\n [DatePickerVariant.DD]: null,\n [DatePickerVariant.MM]: null,\n [DatePickerVariant.YYYY]: null,\n });\n\n const isHasInput = useMemo(() => {\n return (\n input[DatePickerVariant.DD] !== null ||\n input[DatePickerVariant.MM] !== null ||\n input[DatePickerVariant.YYYY] !== null\n );\n }, [input]);\n const onClearInput = useCallback(() => {\n setInput({\n [DatePickerVariant.DD]: null,\n [DatePickerVariant.MM]: null,\n [DatePickerVariant.YYYY]: null,\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 const dataDate = useMemo(() => {\n const result = {\n MM: {\n nextSegment: getNextSegment(DatePickerVariant.MM),\n preSegment: getPrevSegment(DatePickerVariant.MM),\n onNext: () => setActiveSegment(getNextSegment(DatePickerVariant.MM)),\n onPrev: () => setActiveSegment(getPrevSegment(DatePickerVariant.MM)),\n isLast: mode[mode.length - 1] === DatePickerVariant.MM,\n isFirst: mode[0] === DatePickerVariant.MM,\n type: DatePickerVariant.MM,\n value: input.MM,\n setValue: (value: number | null) => setInput((prevValue) => ({ ...prevValue, [DatePickerVariant.MM]: value })),\n setActive: () => setActiveSegment(DatePickerVariant.MM),\n placeholder: props.locale.inputs.month,\n },\n DD: {\n nextSegment: getNextSegment(DatePickerVariant.DD),\n preSegment: getPrevSegment(DatePickerVariant.DD),\n isLast: mode[mode.length - 1] === DatePickerVariant.DD,\n isFirst: mode[0] === DatePickerVariant.DD,\n onNext: () => setActiveSegment(getNextSegment(DatePickerVariant.DD)),\n onPrev: () => setActiveSegment(getPrevSegment(DatePickerVariant.DD)),\n type: DatePickerVariant.DD,\n value: input.DD,\n setValue: (value: number | null) => setInput((prevValue) => ({ ...prevValue, [DatePickerVariant.DD]: value })),\n setActive: () => setActiveSegment(DatePickerVariant.DD),\n placeholder: props.locale.inputs.day,\n },\n YYYY: {\n nextSegment: getNextSegment(DatePickerVariant.YYYY),\n preSegment: getPrevSegment(DatePickerVariant.YYYY),\n isLast: mode[mode.length - 1] === DatePickerVariant.YYYY,\n isFirst: mode[0] === DatePickerVariant.YYYY,\n onNext: () => setActiveSegment(getNextSegment(DatePickerVariant.YYYY)),\n onPrev: () => setActiveSegment(getPrevSegment(DatePickerVariant.YYYY)),\n type: DatePickerVariant.YYYY,\n value: input.YYYY,\n setValue: (value: number | null) =>\n setInput((prevValue) => ({ ...prevValue, [DatePickerVariant.YYYY]: value })),\n setActive: () => setActiveSegment(DatePickerVariant.YYYY),\n placeholder: props.locale.inputs.year,\n },\n };\n const resultSort = mode\n .map((e) => {\n if (e === DatePickerVariant.DD) return result.DD;\n if (e === DatePickerVariant.MM) return result.MM;\n if (e === DatePickerVariant.YYYY) return result.YYYY;\n return null;\n })\n .filter((e) => e !== null);\n return { sort: resultSort, default: result };\n }, [\n props.locale.inputs.day,\n props.locale.inputs.month,\n props.locale.inputs.year,\n getNextSegment,\n getPrevSegment,\n mode,\n input.DD,\n input.MM,\n input.YYYY,\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 const daysInMonth: DateDayProps[] = useMemo(() => {\n const today = moment.utc();\n const startOfMonth = (valueMoment ?? dateDefaultMoment).clone().startOf('month');\n const endOfMonth = (valueMoment ?? dateDefaultMoment).clone().endOf('month');\n const days = [];\n\n const dateMin = props.dateMin ? moment.utc(props.dateMin) : null;\n const dateMax = props.dateMax ? moment.utc(props.dateMax) : null;\n\n const daysToAddBefore = startOfMonth.isoWeekday() - 1;\n if (daysToAddBefore > 0) {\n for (let i = daysToAddBefore; i > 0; i--) {\n const day = startOfMonth.clone().subtract(i, 'days');\n days.push({\n value: day.valueOf(),\n labelString: day.format('dd'),\n labelNumber: day.date(),\n dayOfWeek: day.isoWeekday(),\n isWeekend: day.isoWeekday() === 6 || day.isoWeekday() === 7,\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: day.isSame(today, 'day'),\n isCurrentMonth: false,\n isDisabled: day.isBefore(dateMin, 'day') || day.isAfter(dateMax, 'day'),\n });\n }\n }\n\n const currentDate = startOfMonth.clone();\n while (currentDate <= endOfMonth) {\n days.push({\n value: currentDate.valueOf(),\n labelString: currentDate.format('dd'),\n labelNumber: currentDate.date(),\n dayOfWeek: currentDate.isoWeekday(),\n isWeekend: currentDate.isoWeekday() === 6 || currentDate.isoWeekday() === 7,\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: currentDate.isSame(today, 'day'),\n isCurrentMonth: true,\n isDisabled: currentDate.isBefore(dateMin, 'day') || currentDate.isAfter(dateMax, 'day'),\n });\n currentDate.add(1, 'day');\n }\n\n const daysToAddAfter = 7 - endOfMonth.isoWeekday();\n if (daysToAddAfter > 0) {\n for (let i = 1; i <= daysToAddAfter; i++) {\n const day = endOfMonth.clone().add(i, 'days').startOf('day');\n days.push({\n value: day.valueOf(),\n labelString: day.format('dd'),\n labelNumber: day.date(),\n dayOfWeek: day.isoWeekday(),\n isWeekend: day.isoWeekday() === 6 || day.isoWeekday() === 7,\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: day.isSame(today, 'day'),\n isCurrentMonth: false,\n isDisabled: day.isBefore(dateMin, 'day') || day.isAfter(dateMax, 'day'),\n });\n }\n }\n\n days.sort((a, b) => a.value - b.value);\n return days;\n }, [valueMoment, dateDefaultMoment, props.dateMax, props.dateMin]);\n\n const rows = useMemo(() => countSevens(daysInMonth.length) + 1, [daysInMonth]);\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 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) => {\n const momentNewDate = moment(timestamp).utc();\n if (valueMoment?.isSame(momentNewDate, 'day')) return;\n setValueMoment(momentNewDate);\n onChange(momentNewDate.valueOf());\n\n setInput({\n [DatePickerVariant.DD]: momentNewDate.clone().date(),\n [DatePickerVariant.MM]: momentNewDate.clone().month() + 1,\n [DatePickerVariant.YYYY]: momentNewDate.clone().year(),\n });\n },\n [valueMoment, onChange],\n );\n const handleKeyDown = 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].onNext();\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 !== null) {\n const current = input.DD.toString();\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue(null);\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(Number(newValue));\n }\n } else {\n dataDate.default[activeSegment].onPrev();\n }\n } else if (activeSegment === DatePickerVariant.MM) {\n if (input.MM !== null) {\n const current = input.MM.toString();\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue(null);\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(Number(newValue));\n }\n } else {\n dataDate.default[activeSegment].onPrev();\n }\n } else if (activeSegment === DatePickerVariant.YYYY) {\n if (input.YYYY !== null) {\n const current = input.YYYY.toString();\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue(null);\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(Number(newValue));\n }\n } else {\n dataDate.default[activeSegment].onPrev();\n }\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n e.preventDefault();\n dataDate.default[activeSegment].onPrev();\n }\n if (key === 'ArrowRight' || key === 'ArrowUp') {\n e.preventDefault();\n dataDate.default[activeSegment].onNext();\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());\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onPrevMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month');\n onChangeDate(newDate.valueOf());\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 setInput({\n [DatePickerVariant.DD]: moment(props.value).utc().date(),\n [DatePickerVariant.MM]: moment(props.value).utc().month() + 1,\n [DatePickerVariant.YYYY]: moment(props.value).utc().year(),\n });\n }\n }, [props.value, props.defaultValue]);\n\n const getValidateInput = useCallback(\n (\n input: Record<DatePickerVariant, number | null>,\n onSuccess?: (value: number) => void,\n onFailure?: () => void,\n onNan?: (isHasInput: boolean) => void,\n ) => {\n const day = input.DD ?? NaN;\n const month = input.MM ?? NaN;\n const year = input.YYYY ?? NaN;\n const isHasInput =\n input[DatePickerVariant.DD] !== null ||\n input[DatePickerVariant.MM] !== null ||\n input[DatePickerVariant.YYYY] !== null;\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 useEffect(() => {\n getValidateInput(\n input,\n (value) => {\n onChangeDate(value);\n setIsError(false);\n },\n () => {\n onChange(null);\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n setIsError(false);\n }\n },\n );\n }, [getValidateInput, onChangeDate, onChange, input]);\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) {\n refHiddenInput?.current?.focus();\n }\n }, [activeSegment]);\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 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 // left: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n border: 'none',\n background: 'transparent',\n }}\n onKeyDown={handleKeyDown}\n onChange={(e) => {\n const value = e.target.value;\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 handleKeyDown({\n key: newChar,\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n if (value.length < prevValue.length) {\n handleKeyDown({\n key: 'Backspace',\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n // if (newChar === '\\n') {\n // close();\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 size: props.font?.size ?? 16,\n weight: props.font?.weight ?? (props.isBold ? 500 : 400),\n family: props.font?.family ?? theme.font.family,\n height: props.font?.height ?? theme.font.lineHeight,\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 != null\n ? String(date.value).padStart(date.type === DatePickerVariant.YYYY ? 1 : 2, '0')\n : 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 isOnlyIcon\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 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 isHidden={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);\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);\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 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 isHidden={isBlockNextMonth}\n />\n </Stack>\n <DateDropdownDays $rows={rows}>\n {daysInWeek.map((e, index) => (\n <DateDropdownDayOfWeek\n $font={{\n size: 12,\n weight: 700,\n family: props.font?.family ?? theme.font.family,\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 size: 12,\n weight: 700,\n family: props.font?.family ?? theme.font.family,\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);\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 {!day.isDisabled && <Ripple color={theme.colors.date[props.genre].color.rest} />}\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};\nfunction handleDigitKey(\n key: string,\n activeSegment: DatePickerVariant,\n input: Record<DatePickerVariant, number | null>,\n dataDate: { default: Record<DatePickerVariant, { setValue: (value: number) => void; onNext: () => void }> },\n) {\n const digit = key; // '0'..'9'\n const seg = activeSegment;\n const current = input[seg]?.toString() ?? ''; // Преобразуем number в string для работы\n\n // Вспомогательная проверка\n const isZero = (s: string) => s === '0';\n const toNum = (s: string) => Number(s);\n\n if (seg === DatePickerVariant.DD) {\n // Дни: максимум 31, ноль недопустим как самостоятельное значение\n if (current.length >= 2) {\n // уже два символа — начинаем ввод заново\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed);\n return;\n }\n\n // special-case: если было '0' и пользователь ввёл не '0' — НЕ подставляем '0' перед цифрой,\n // сохраняем single-digit и считаем ввод завершённым (переходим).\n if (current.length === 1 && isZero(current)) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed); // сохраняем число, а не строку\n dataDate.default[seg].onNext();\n return;\n }\n\n // обычный путь: добавляем цифру и решаем — перезаписать или дополнить\n const potential = current + digit;\n const potentialParsed = toNum(potential);\n\n // ИСПРАВЛЕНИЕ: если потенциальное значение больше 31, используем только новую цифру и переходим дальше\n if (potentialParsed > 31) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed);\n dataDate.default[seg].onNext(); // Переходим к следующему сегменту\n return;\n }\n\n // Если потенциальное значение равно 0, используем только новую цифру\n const nextValue = potentialParsed === 0 ? digit : potential;\n const parsed = toNum(nextValue);\n if (parsed === 0 || parsed > 31) return;\n dataDate.default[seg].setValue(parsed);\n if (nextValue.length === 2) dataDate.default[seg].onNext();\n } else if (seg === DatePickerVariant.MM) {\n // Месяцы: максимум 12, ноль недопустим как самостоятельное значение\n if (current.length >= 2) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 12) return;\n dataDate.default[seg].setValue(parsed);\n return;\n }\n\n if (current.length === 1 && isZero(current)) {\n const parsed = toNum(digit);\n if (parsed === 0 || parsed > 12) return;\n dataDate.default[seg].setValue(parsed); // сохраняем число, а не строку\n dataDate.default[seg].onNext();\n return;\n }\n\n const potential = current + digit;\n const potentialParsed = toNum(potential);\n const nextValue = potentialParsed === 0 || potentialParsed > 12 ? digit : potential;\n\n const parsed = toNum(nextValue);\n if (parsed === 0 || parsed > 12) return;\n dataDate.default[seg].setValue(parsed);\n if (nextValue.length === 2 || (nextValue.length === 1 && parsed > 1)) {\n dataDate.default[seg].onNext();\n }\n } else if (seg === DatePickerVariant.YYYY) {\n // Год: накапливаем до 4 цифр. Если уже 4 — начинаем заново (как раньше)\n if (current.length >= 4) {\n if (digit === '0') return;\n dataDate.default[seg].setValue(toNum(digit));\n return;\n }\n\n const nextValue = (current + digit).slice(-4);\n dataDate.default[seg].setValue(toNum(nextValue));\n }\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 { 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 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":["_a","input","isHasInput","jsxs","Fragment","jsx","theme","_b","_c","_d","parsed","DatePickerVariant"],"mappings":";;;;;;;;AA6BA,SAAS,YAAY,QAAgB;AACnC,QAAM,UAAU;AAChB,QAAM,QAAQ,KAAK,MAAM,SAAS,OAAO;AACzC,QAAM,YAAY,SAAS;AAE3B,SAAO,YAAY,IAAI,QAAQ,IAAI;AACrC;AAEO,MAAM,aAAa,CAAC,UAA2B;;AACpD,QAAM,EAAE,aAAa;AACrB,QAAM,QAAQ,SAAA;AAEd,QAAM,CAAC,aAAa,cAAc,IAAI,SAAwB,IAAI;AAClE,QAAM,CAAC,mBAAmB,oBAAoB,IAAI,SAAiB,OAAO,MAAM,WAAW,EAAE,KAAK;AAElG,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAmD;AAAA,IAC3E,CAAC,kBAAkB,EAAE,GAAG;AAAA,IACxB,CAAC,kBAAkB,EAAE,GAAG;AAAA,IACxB,CAAC,kBAAkB,IAAI,GAAG;AAAA,EAAA,CAC3B;AAED,QAAM,aAAa,QAAQ,MAAM;AAC/B,WACE,MAAM,kBAAkB,EAAE,MAAM,QAChC,MAAM,kBAAkB,EAAE,MAAM,QAChC,MAAM,kBAAkB,IAAI,MAAM;AAAA,EAAA,GAEnC,CAAC,KAAK,CAAC;AACV,QAAM,eAAe,YAAY,MAAM;AACrC,aAAS;AAAA,MACP,CAAC,kBAAkB,EAAE,GAAG;AAAA,MACxB,CAAC,kBAAkB,EAAE,GAAG;AAAA,MACxB,CAAC,kBAAkB,IAAI,GAAG;AAAA,IAAA,CAC3B;AAAA,EAAA,GACA,EAAE;AACL,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAmC,IAAI;AACjF,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAE5C,QAAM,OAAuB,QAAQ,MAAM;AACzC,QAAI,CAAC,MAAM,QAAQ,MAAM,KAAK,WAAW,GAAG;AAC1C,aAAO,CAAC,kBAAkB,IAAI,kBAAkB,IAAI,kBAAkB,IAAI;AAAA,IAAA;AAG5E,UAAM,gBAAgB,IAAI,IAAI,MAAM,IAAI,EAAE,SAAS,MAAM,KAAK;AAE9D,QAAI,eAAe;AACjB,aAAO,CAAC,kBAAkB,IAAI,kBAAkB,IAAI,kBAAkB,IAAI;AAAA,IAAA;AAG5E,WAAO,MAAM;AAAA,EAAA,GACZ,CAAC,MAAM,IAAI,CAAC;AAEf,QAAM,iBAAiB;AAAA,IACrB,CAAC,mBAAgE;AAC/D,YAAM,eAAe,KAAK,QAAQ,cAAc;AAChD,aAAO,eAAe,KAAK,SAAS,IAAI,KAAK,eAAe,CAAC,IAAI,KAAK,CAAC;AAAA,IAAA;AAAA,IAEzE,CAAC,IAAI;AAAA,EAAA;AAGP,QAAM,iBAAiB;AAAA,IACrB,CAAC,mBAAgE;AAC/D,YAAM,eAAe,KAAK,QAAQ,cAAc;AAChD,aAAO,eAAe,IAAI,KAAK,eAAe,CAAC,IAAI,KAAK,KAAK,SAAS,CAAC;AAAA,IAAA;AAAA,IAEzE,CAAC,IAAI;AAAA,EAAA;AAGP,QAAM,WAAW,QAAQ,MAAM;AAC7B,UAAM,SAAS;AAAA,MACb,IAAI;AAAA,QACF,aAAa,eAAe,kBAAkB,EAAE;AAAA,QAChD,YAAY,eAAe,kBAAkB,EAAE;AAAA,QAC/C,QAAQ,MAAM,iBAAiB,eAAe,kBAAkB,EAAE,CAAC;AAAA,QACnE,QAAQ,MAAM,iBAAiB,eAAe,kBAAkB,EAAE,CAAC;AAAA,QACnE,QAAQ,KAAK,KAAK,SAAS,CAAC,MAAM,kBAAkB;AAAA,QACpD,SAAS,KAAK,CAAC,MAAM,kBAAkB;AAAA,QACvC,MAAM,kBAAkB;AAAA,QACxB,OAAO,MAAM;AAAA,QACb,UAAU,CAAC,UAAyB,SAAS,CAAC,eAAe,EAAE,GAAG,WAAW,CAAC,kBAAkB,EAAE,GAAG,QAAQ;AAAA,QAC7G,WAAW,MAAM,iBAAiB,kBAAkB,EAAE;AAAA,QACtD,aAAa,MAAM,OAAO,OAAO;AAAA,MAAA;AAAA,MAEnC,IAAI;AAAA,QACF,aAAa,eAAe,kBAAkB,EAAE;AAAA,QAChD,YAAY,eAAe,kBAAkB,EAAE;AAAA,QAC/C,QAAQ,KAAK,KAAK,SAAS,CAAC,MAAM,kBAAkB;AAAA,QACpD,SAAS,KAAK,CAAC,MAAM,kBAAkB;AAAA,QACvC,QAAQ,MAAM,iBAAiB,eAAe,kBAAkB,EAAE,CAAC;AAAA,QACnE,QAAQ,MAAM,iBAAiB,eAAe,kBAAkB,EAAE,CAAC;AAAA,QACnE,MAAM,kBAAkB;AAAA,QACxB,OAAO,MAAM;AAAA,QACb,UAAU,CAAC,UAAyB,SAAS,CAAC,eAAe,EAAE,GAAG,WAAW,CAAC,kBAAkB,EAAE,GAAG,QAAQ;AAAA,QAC7G,WAAW,MAAM,iBAAiB,kBAAkB,EAAE;AAAA,QACtD,aAAa,MAAM,OAAO,OAAO;AAAA,MAAA;AAAA,MAEnC,MAAM;AAAA,QACJ,aAAa,eAAe,kBAAkB,IAAI;AAAA,QAClD,YAAY,eAAe,kBAAkB,IAAI;AAAA,QACjD,QAAQ,KAAK,KAAK,SAAS,CAAC,MAAM,kBAAkB;AAAA,QACpD,SAAS,KAAK,CAAC,MAAM,kBAAkB;AAAA,QACvC,QAAQ,MAAM,iBAAiB,eAAe,kBAAkB,IAAI,CAAC;AAAA,QACrE,QAAQ,MAAM,iBAAiB,eAAe,kBAAkB,IAAI,CAAC;AAAA,QACrE,MAAM,kBAAkB;AAAA,QACxB,OAAO,MAAM;AAAA,QACb,UAAU,CAAC,UACT,SAAS,CAAC,eAAe,EAAE,GAAG,WAAW,CAAC,kBAAkB,IAAI,GAAG,QAAQ;AAAA,QAC7E,WAAW,MAAM,iBAAiB,kBAAkB,IAAI;AAAA,QACxD,aAAa,MAAM,OAAO,OAAO;AAAA,MAAA;AAAA,IACnC;AAEF,UAAM,aAAa,KAChB,IAAI,CAAC,MAAM;AACV,UAAI,MAAM,kBAAkB,GAAI,QAAO,OAAO;AAC9C,UAAI,MAAM,kBAAkB,GAAI,QAAO,OAAO;AAC9C,UAAI,MAAM,kBAAkB,KAAM,QAAO,OAAO;AAChD,aAAO;AAAA,IAAA,CACR,EACA,OAAO,CAAC,MAAM,MAAM,IAAI;AAC3B,WAAO,EAAE,MAAM,YAAY,SAAS,OAAA;AAAA,EAAO,GAC1C;AAAA,IACD,MAAM,OAAO,OAAO;AAAA,IACpB,MAAM,OAAO,OAAO;AAAA,IACpB,MAAM,OAAO,OAAO;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,EAAA,CACP;AACD,QAAM,aAAa,QAAQ,MAAM;AAC/B,UAAM,YAAiC,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AAEhF,WAAO,UAAU,IAAI,CAAC,KAAK,UAAU;AACnC,YAAM,QAAQ,MAAM,OAAO,MAAM,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG;AAC5D,aAAO;AAAA,QACL;AAAA,QACA,QAAO,+BAAO,gBAAe,IAAI,YAAA;AAAA,MAAY;AAAA,IAC/C,CACD;AAAA,EAAA,GACA,CAAC,MAAM,OAAO,KAAK,CAAC;AACvB,QAAM,cAA8B,QAAQ,MAAM;AAChD,UAAM,QAAQ,OAAO,IAAA;AACrB,UAAM,gBAAgB,eAAe,mBAAmB,MAAA,EAAQ,QAAQ,OAAO;AAC/E,UAAM,cAAc,eAAe,mBAAmB,MAAA,EAAQ,MAAM,OAAO;AAC3E,UAAM,OAAO,CAAA;AAEb,UAAM,UAAU,MAAM,UAAU,OAAO,IAAI,MAAM,OAAO,IAAI;AAC5D,UAAM,UAAU,MAAM,UAAU,OAAO,IAAI,MAAM,OAAO,IAAI;AAE5D,UAAM,kBAAkB,aAAa,WAAA,IAAe;AACpD,QAAI,kBAAkB,GAAG;AACvB,eAAS,IAAI,iBAAiB,IAAI,GAAG,KAAK;AACxC,cAAM,MAAM,aAAa,MAAA,EAAQ,SAAS,GAAG,MAAM;AACnD,aAAK,KAAK;AAAA,UACR,OAAO,IAAI,QAAA;AAAA,UACX,aAAa,IAAI,OAAO,IAAI;AAAA,UAC5B,aAAa,IAAI,KAAA;AAAA,UACjB,WAAW,IAAI,WAAA;AAAA,UACf,WAAW,IAAI,WAAA,MAAiB,KAAK,IAAI,iBAAiB;AAAA,UAC1D,aAAa,KAAK,MAAM,KAAK,SAAS,KAAK,CAAC;AAAA,UAC5C,SAAS,IAAI,OAAO,OAAO,KAAK;AAAA,UAChC,gBAAgB;AAAA,UAChB,YAAY,IAAI,SAAS,SAAS,KAAK,KAAK,IAAI,QAAQ,SAAS,KAAK;AAAA,QAAA,CACvE;AAAA,MAAA;AAAA,IACH;AAGF,UAAM,cAAc,aAAa,MAAA;AACjC,WAAO,eAAe,YAAY;AAChC,WAAK,KAAK;AAAA,QACR,OAAO,YAAY,QAAA;AAAA,QACnB,aAAa,YAAY,OAAO,IAAI;AAAA,QACpC,aAAa,YAAY,KAAA;AAAA,QACzB,WAAW,YAAY,WAAA;AAAA,QACvB,WAAW,YAAY,WAAA,MAAiB,KAAK,YAAY,iBAAiB;AAAA,QAC1E,aAAa,KAAK,MAAM,KAAK,SAAS,KAAK,CAAC;AAAA,QAC5C,SAAS,YAAY,OAAO,OAAO,KAAK;AAAA,QACxC,gBAAgB;AAAA,QAChB,YAAY,YAAY,SAAS,SAAS,KAAK,KAAK,YAAY,QAAQ,SAAS,KAAK;AAAA,MAAA,CACvF;AACD,kBAAY,IAAI,GAAG,KAAK;AAAA,IAAA;AAG1B,UAAM,iBAAiB,IAAI,WAAW,WAAA;AACtC,QAAI,iBAAiB,GAAG;AACtB,eAAS,IAAI,GAAG,KAAK,gBAAgB,KAAK;AACxC,cAAM,MAAM,WAAW,QAAQ,IAAI,GAAG,MAAM,EAAE,QAAQ,KAAK;AAC3D,aAAK,KAAK;AAAA,UACR,OAAO,IAAI,QAAA;AAAA,UACX,aAAa,IAAI,OAAO,IAAI;AAAA,UAC5B,aAAa,IAAI,KAAA;AAAA,UACjB,WAAW,IAAI,WAAA;AAAA,UACf,WAAW,IAAI,WAAA,MAAiB,KAAK,IAAI,iBAAiB;AAAA,UAC1D,aAAa,KAAK,MAAM,KAAK,SAAS,KAAK,CAAC;AAAA,UAC5C,SAAS,IAAI,OAAO,OAAO,KAAK;AAAA,UAChC,gBAAgB;AAAA,UAChB,YAAY,IAAI,SAAS,SAAS,KAAK,KAAK,IAAI,QAAQ,SAAS,KAAK;AAAA,QAAA,CACvE;AAAA,MAAA;AAAA,IACH;AAGF,SAAK,KAAK,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK;AACrC,WAAO;AAAA,EAAA,GACN,CAAC,aAAa,mBAAmB,MAAM,SAAS,MAAM,OAAO,CAAC;AAEjE,QAAM,OAAO,QAAQ,MAAM,YAAY,YAAY,MAAM,IAAI,GAAG,CAAC,WAAW,CAAC;AAC7E,QAAM,SAAS;AAAA,IACb,MAAM,KAAK,OAAO,MAAM,OAAO,KAAK,IAAI,cAAc,MAAM,IAAI,EAAE,UAAU;AAAA,IAC5E,CAAC,MAAM,MAAM,IAAI;AAAA,EAAA;AAGnB,QAAM,aAAa,QAAQ,MAAM,cAAc,MAAM,IAAI,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC;AAC/E,QAAM,cAAc,QAAQ,MAAM,cAAc,MAAM,IAAI,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC;AAEjF,QAAM,aAAa,QAAQ,MAAM;AAC/B,WAAO,gBAAgB;AAAA,EAAA,GACtB,CAAC,WAAW,CAAC;AAChB,QAAM,mBAAmB,QAAQ,MAAM;AACrC,UAAM,aAAa,eAAe,mBAAmB,MAAA,EAAQ,IAAI,GAAG,OAAO,EAAE,QAAQ,OAAO;AAC5F,UAAM,kBAAkB,MAAM,UAAU,UAAU,QAAQ,OAAO,IAAI,MAAM,OAAO,GAAG,OAAO,IAAI;AAChG,WAAO;AAAA,EAAA,GACN,CAAC,aAAa,MAAM,SAAS,iBAAiB,CAAC;AAClD,QAAM,mBAAmB,QAAQ,MAAM;AACrC,UAAM,aAAa,eAAe,mBAAmB,MAAA,EAAQ,SAAS,GAAG,OAAO,EAAE,QAAQ,OAAO;AACjG,UAAM,mBAAmB,MAAM,UAAU,UAAU,SAAS,OAAO,IAAI,MAAM,OAAO,GAAG,OAAO,IAAI;AAClG,WAAO;AAAA,EAAA,GACN,CAAC,aAAa,MAAM,SAAS,iBAAiB,CAAC;AAElD,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,KAAK;AAE1D,QAAM,eAAe,OAAO,EAAE;AAC9B,QAAM,iBAAiB,OAAoB,IAAI;AAC/C,QAAM,gBAAgB,OAAoB,IAAI;AAC9C,QAAM,iBAAiB,OAAyB,IAAI;AAEpD,QAAM,iBAAiB,YAAY,MAAM;;AACvC,KAAAA,MAAA,MAAM,YAAN,gBAAAA,IAAA;AAAA,EAAgB,GACf,CAAC,MAAM,OAAO,CAAC;AAClB,QAAM,gBAAgB,YAAY,MAAM;;AACtC,KAAAA,MAAA,MAAM,WAAN,gBAAAA,IAAA;AAAA,EAAe,GACd,CAAC,MAAM,MAAM,CAAC;AACjB,QAAM,kBAAkB,YAAY,MAAM;AACxC,qBAAiB,IAAI;AAAA,EAAA,GACpB,EAAE;AACL,QAAM,EAAE,QAAQ,cAAc,aAAa,gBAAgB,OAAO,OAAA,IAAW,WAAW;AAAA,IACtF,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,gBAAgB;AAAA,IAChB,yBAAyB,CAAC,gBAAgB,aAAa;AAAA,IACvD,aAAY,+BAAO,gBAAc,+BAAO;AAAA,IACxC,SAAS;AAAA,IACT,QAAQ;AAAA,IACR;AAAA,EAAA,CACD;AAED,QAAM,oBAAoB,QAAQ,MAAM;AACtC,WAAO,CAAC,EAAE,CAAC,kBAAkB,CAAC,cAAc,MAAM,oBAAoB,CAAC,UAAU,CAAC,cAAc,CAAC;AAAA,EAAA,GAChG,CAAC,gBAAgB,YAAY,QAAQ,MAAM,kBAAkB,YAAY,aAAa,CAAC;AAE1F,QAAM,eAAe;AAAA,IACnB,CAAC,cAAsB;AACrB,YAAM,gBAAgB,OAAO,SAAS,EAAE,IAAA;AACxC,UAAI,2CAAa,OAAO,eAAe,OAAQ;AAC/C,qBAAe,aAAa;AAC5B,eAAS,cAAc,SAAS;AAEhC,eAAS;AAAA,QACP,CAAC,kBAAkB,EAAE,GAAG,cAAc,MAAA,EAAQ,KAAA;AAAA,QAC9C,CAAC,kBAAkB,EAAE,GAAG,cAAc,MAAA,EAAQ,UAAU;AAAA,QACxD,CAAC,kBAAkB,IAAI,GAAG,cAAc,MAAA,EAAQ,KAAA;AAAA,MAAK,CACtD;AAAA,IAAA;AAAA,IAEH,CAAC,aAAa,QAAQ;AAAA,EAAA;AAExB,QAAM,gBAAgB;AAAA,IACpB,CAAC,MAAuC;;AACtC,YAAM,MAAM,EAAE;AAEd,YAAM,cAAc,CAAC,aAAa,cAAc,WAAW,aAAa,aAAa,UAAU,OAAO,OAAO;AAE7G,YAAM,UAAU,OAAO,KAAK,GAAG;AAC/B,YAAM,YAAY,WAAW,YAAY,SAAS,GAAG,KAAK,EAAE,WAAW,EAAE;AAEzE,UAAI,CAAC,WAAW;AACd,UAAE,eAAA;AACF;AAAA,MAAA;AAGF,UAAI,iBAAiB,SAAS,QAAQ,aAAa,GAAG;AACpD,YAAI,SAAS;AACX,gBAAM,QAAQ;AAEd,yBAAe,OAAO,eAAe,OAAO,QAAQ;AACpD,YAAE,eAAA;AACF,YAAE,gBAAA;AAAA,QAAgB;AAEpB,YAAI,QAAQ,OAAO;AACjB,cAAI,CAAC,SAAS,QAAQ,aAAa,EAAE,QAAQ;AAC3C,cAAE,eAAA;AACF,qBAAS,QAAQ,aAAa,EAAE,OAAA;AAAA,UAAO,OAClC;AACL,aAAAA,MAAA,iDAAgB,YAAhB,gBAAAA,IAAyB;AAAA,UAAK;AAAA,QAChC;AAEF,YAAI,QAAQ,SAAS;AACnB,YAAE,eAAA;AACF,YAAE,gBAAA;AAAA,QAAgB;AAEpB,YAAI,QAAQ,eAAe,QAAQ,UAAU;AAC3C,cAAI,kBAAkB,kBAAkB,IAAI;AAC1C,gBAAI,MAAM,OAAO,MAAM;AACrB,oBAAM,UAAU,MAAM,GAAG,SAAA;AACzB,kBAAI,QAAQ,WAAW,GAAG;AACxB,yBAAS,QAAQ,aAAa,EAAE,SAAS,IAAI;AAAA,cAAA,OACxC;AACL,sBAAM,WAAW,QAAQ,MAAM,GAAG,EAAE;AACpC,yBAAS,QAAQ,aAAa,EAAE,SAAS,OAAO,QAAQ,CAAC;AAAA,cAAA;AAAA,YAC3D,OACK;AACL,uBAAS,QAAQ,aAAa,EAAE,OAAA;AAAA,YAAO;AAAA,UACzC,WACS,kBAAkB,kBAAkB,IAAI;AACjD,gBAAI,MAAM,OAAO,MAAM;AACrB,oBAAM,UAAU,MAAM,GAAG,SAAA;AACzB,kBAAI,QAAQ,WAAW,GAAG;AACxB,yBAAS,QAAQ,aAAa,EAAE,SAAS,IAAI;AAAA,cAAA,OACxC;AACL,sBAAM,WAAW,QAAQ,MAAM,GAAG,EAAE;AACpC,yBAAS,QAAQ,aAAa,EAAE,SAAS,OAAO,QAAQ,CAAC;AAAA,cAAA;AAAA,YAC3D,OACK;AACL,uBAAS,QAAQ,aAAa,EAAE,OAAA;AAAA,YAAO;AAAA,UACzC,WACS,kBAAkB,kBAAkB,MAAM;AACnD,gBAAI,MAAM,SAAS,MAAM;AACvB,oBAAM,UAAU,MAAM,KAAK,SAAA;AAC3B,kBAAI,QAAQ,WAAW,GAAG;AACxB,yBAAS,QAAQ,aAAa,EAAE,SAAS,IAAI;AAAA,cAAA,OACxC;AACL,sBAAM,WAAW,QAAQ,MAAM,GAAG,EAAE;AACpC,yBAAS,QAAQ,aAAa,EAAE,SAAS,OAAO,QAAQ,CAAC;AAAA,cAAA;AAAA,YAC3D,OACK;AACL,uBAAS,QAAQ,aAAa,EAAE,OAAA;AAAA,YAAO;AAAA,UACzC;AAGF,YAAE,eAAA;AACF,YAAE,gBAAA;AAAA,QAAgB;AAEpB,YAAI,QAAQ,eAAe,QAAQ,aAAa;AAC9C,YAAE,eAAA;AACF,mBAAS,QAAQ,aAAa,EAAE,OAAA;AAAA,QAAO;AAEzC,YAAI,QAAQ,gBAAgB,QAAQ,WAAW;AAC7C,YAAE,eAAA;AACF,mBAAS,QAAQ,aAAa,EAAE,OAAA;AAAA,QAAO;AAAA,MACzC;AAAA,IACF;AAAA,IAEF,CAAC,eAAe,OAAO,SAAS,SAAS,QAAQ;AAAA,EAAA;AAEnD,QAAM,cAAc,YAAY,MAAM;AACpC,UAAM,WAAW,eAAe,mBAAmB,QAAQ,IAAI,GAAG,OAAO;AACzE,iBAAa,QAAQ,SAAS;AAAA,EAAA,GAC7B,CAAC,aAAa,cAAc,iBAAiB,CAAC;AAEjD,QAAM,cAAc,YAAY,MAAM;AACpC,UAAM,WAAW,eAAe,mBAAmB,QAAQ,SAAS,GAAG,OAAO;AAC9E,iBAAa,QAAQ,SAAS;AAAA,EAAA,GAC7B,CAAC,aAAa,cAAc,iBAAiB,CAAC;AAEjD,YAAU,MAAM;AACd,yBAAqB,OAAO,MAAM,WAAW,EAAE,KAAK;AAAA,EAAA,GACnD,CAAC,MAAM,WAAW,CAAC;AAEtB,YAAU,MAAM;AACd,mBAAe,MAAM,SAAS,MAAM,eAAe,OAAO,MAAM,SAAS,MAAM,YAAY,EAAE,IAAA,IAAQ,IAAI;AACzG,QAAI,MAAM,OAAO;AACf,eAAS;AAAA,QACP,CAAC,kBAAkB,EAAE,GAAG,OAAO,MAAM,KAAK,EAAE,IAAA,EAAM,KAAA;AAAA,QAClD,CAAC,kBAAkB,EAAE,GAAG,OAAO,MAAM,KAAK,EAAE,IAAA,EAAM,MAAA,IAAU;AAAA,QAC5D,CAAC,kBAAkB,IAAI,GAAG,OAAO,MAAM,KAAK,EAAE,IAAA,EAAM,KAAA;AAAA,MAAK,CAC1D;AAAA,IAAA;AAAA,EACH,GACC,CAAC,MAAM,OAAO,MAAM,YAAY,CAAC;AAEpC,QAAM,mBAAmB;AAAA,IACvB,CACEC,QACA,WACA,WACA,UACG;AACH,YAAM,MAAMA,OAAM,MAAM;AACxB,YAAM,QAAQA,OAAM,MAAM;AAC1B,YAAM,OAAOA,OAAM,QAAQ;AAC3B,YAAMC,cACJD,OAAM,kBAAkB,EAAE,MAAM,QAChCA,OAAM,kBAAkB,EAAE,MAAM,QAChCA,OAAM,kBAAkB,IAAI,MAAM;AACpC,UAAI,CAAC,OAAO,MAAM,GAAG,KAAK,CAAC,OAAO,MAAM,KAAK,KAAK,CAAC,OAAO,MAAM,IAAI,GAAG;AACrE,cAAM,IAAI,OAAO,IAAI,GAAG,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,YAAY,IAAI,EAAE,QAAQ,KAAK;AAC/E,YAAI,EAAE,WAAW;AACf,iDAAY,EAAE;QAAS,OAClB;AACL;AAAA,QAAY;AAAA,MACd,OACK;AACL,uCAAQC;AAAAA,MAAU;AAAA,IACpB;AAAA,IAEF,CAAA;AAAA,EAAC;AAGH,YAAU,MAAM;AACd;AAAA,MACE;AAAA,MACA,CAAC,UAAU;AACT,qBAAa,KAAK;AAClB,mBAAW,KAAK;AAAA,MAAA;AAAA,MAElB,MAAM;AACJ,iBAAS,IAAI;AACb,mBAAW,IAAI;AAAA,MAAA;AAAA,MAEjB,CAACA,gBAAe;AACd,YAAI,CAACA,aAAY;AACf,qBAAW,KAAK;AAAA,QAAA;AAAA,MAClB;AAAA,IACF;AAAA,EACF,GACC,CAAC,kBAAkB,cAAc,UAAU,KAAK,CAAC;AAEpD,YAAU,MAAM;AACd,QAAI,CAAC,UAAU,CAAC,kBAAkB,cAAc,CAAC;AAC/C;AAAA,QACE;AAAA,QACA,MAAM;AAAA,QAAA;AAAA,QACN,MAAM;AACJ,mBAAS,IAAI;AACb,uBAAA;AACA,qBAAW,KAAK;AAAA,QAAA;AAAA,QAElB,MAAM;AACJ,mBAAS,IAAI;AACb,uBAAA;AACA,qBAAW,KAAK;AAAA,QAAA;AAAA,MAClB;AAAA,EACF,GACD,CAAC,kBAAkB,cAAc,OAAO,QAAQ,gBAAgB,UAAU,YAAY,aAAa,CAAC;AAEvG,YAAU,MAAM;;AACd,QAAI,eAAe;AACjB,OAAAF,MAAA,iDAAgB,YAAhB,gBAAAA,IAAyB;AAAA,IAAM;AAAA,EACjC,GACC,CAAC,aAAa,CAAC;AAClB,SACEG,kCAAAA,KAAAC,4BAAA,EACE,UAAA;AAAA,IAAAC,kCAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO,MAAM;AAAA,QACb,QAAQ,MAAM;AAAA,QACd,KAAK,MAAM;AAAA,QACX,aAAa,+BAAO;AAAA,QACpB,aAAa,+BAAO;AAAA,QACpB,SAAS;AAAA,QACT,mBAAmB;AAAA,QACnB,UAAU;AAAA,QAEV,UAAAF,kCAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAK;AAAA,YACL,QAAQ,MAAM;AAAA,YACd,OAAO,MAAM;AAAA,YACb,oBAAoB;AAAA,YACpB,aAAa,+BAAO;AAAA,YACpB,aAAa,+BAAO;AAAA,YACpB,oBAAoB,+BAAO;AAAA,YAC3B,qBAAqB,+BAAO;AAAA,YAC5B,UAAU;AAAA,YACV,QACE,UACI;AAAA,cACE,SAAS;AAAA,cACT,QAAM,oCAAO,UAAP,mBAAc,SAAQ,MAAM;AAAA,cAClC,GAAG,MAAM;AAAA,YAAA,IAEX,MAAM;AAAA,YAEZ,SAAS,UAAU,CAAC,CAAC;AAAA,YACrB,SAAS,MAAM;AACb,kBAAI,CAAC,iBAAiB,EAAC,+BAAO,YAAY,kBAAiB,kBAAkB,EAAE;AAAA,YAAA;AAAA,YAGjF,UAAA;AAAA,cAAAE,kCAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,MAAM,MAAM;AAAA,kBACZ,IAAI,MAAM;AAAA,kBACV,KAAK;AAAA,kBACL,MAAK;AAAA,kBACL,WAAU;AAAA,kBACV,UAAU;AAAA,kBACV,WAAU,+BAAO,gBAAc,+BAAO;AAAA,kBACtC,OAAO;AAAA,oBACL,UAAU;AAAA,oBACV,MAAM;AAAA,oBACN,KAAK;AAAA;AAAA,oBAEL,OAAO;AAAA,oBACP,QAAQ;AAAA,oBACR,SAAS;AAAA,oBACT,QAAQ;AAAA,oBACR,YAAY;AAAA,kBAAA;AAAA,kBAEd,WAAW;AAAA,kBACX,UAAU,CAAC,MAAM;AACf,0BAAM,QAAQ,EAAE,OAAO;AACvB,0BAAM,YAAY,aAAa;AAE/B,0BAAM,UAAU,MAAM,SAAS,UAAU,SAAS,MAAM,MAAM,EAAE,IAAI;AAEpE,iCAAa,UAAU;AAEvB,wBAAI,WAAW,OAAO,KAAK,OAAO,GAAG;AACnC,oCAAc;AAAA,wBACZ,KAAK;AAAA,wBACL,gBAAgB,MAAM;AAAA,wBAAA;AAAA,wBACtB,iBAAiB,MAAM;AAAA,wBAAA;AAAA,sBAAC,CACqB;AAAA,oBAAA;AAGjD,wBAAI,MAAM,SAAS,UAAU,QAAQ;AACnC,oCAAc;AAAA,wBACZ,KAAK;AAAA,wBACL,gBAAgB,MAAM;AAAA,wBAAA;AAAA,wBACtB,iBAAiB,MAAM;AAAA,wBAAA;AAAA,sBAAC,CACqB;AAAA,oBAAA;AAAA,kBACjD;AAAA,kBAMF,SAAS,MAAM;AACb,sCAAkB,IAAI;AACtB,wBAAI,CAAC,cAAe,kBAAiB,kBAAkB,EAAE;AAAA,kBAAA;AAAA,kBAE3D,QAAQ,MAAM;;AACZ,sCAAkB,KAAK;AAEvB,wBAAI,CAAC,QAAQ;AACX,uBAAAL,MAAA,MAAM,WAAN,gBAAAA,IAAA;AAAA,oBAAe;AAAA,kBACjB;AAAA,gBACF;AAAA,cAAA;AAAA,cAED,oBACCK,kCAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,IAAI,EAAE,SAAS,EAAE,MAAM,IAAI,MAAM,GAAG,gBAAgB,OAAK;AAAA,kBACzD,YAAY,CAACC,YAAW;AAAA,oBACtB,SAAS;AAAA,sBACP,OAAOA,OAAM,OAAO,MAAM,MAAM,KAAK,EAAE,MAAM;AAAA,oBAAA;AAAA,kBAC/C;AAAA,kBAGD,UAAA,MAAM;AAAA,gBAAA;AAAA,cAAA,IAGT,SAAS,KAAK,IAAI,CAAC,MAAM;;AACvBH,yDAAAA,KAACC,UAAA,EACC,UAAA;AAAA,kBAAAC,kCAAAA;AAAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,cAAc,CAAC,CAAC,KAAK;AAAA,sBACrB,WAAW,kBAAkB,KAAK;AAAA,sBAClC,QAAQ,MAAM;AAAA,sBACd,OAAO,MAAM;AAAA,sBACb,OAAO;AAAA,wBACL,QAAML,MAAA,MAAM,SAAN,gBAAAA,IAAY,SAAQ;AAAA,wBAC1B,UAAQO,MAAA,MAAM,SAAN,gBAAAA,IAAY,YAAW,MAAM,SAAS,MAAM;AAAA,wBACpD,UAAQC,MAAA,MAAM,SAAN,gBAAAA,IAAY,WAAU,MAAM,KAAK;AAAA,wBACzC,UAAQC,MAAA,MAAM,SAAN,gBAAAA,IAAY,WAAU,MAAM,KAAK;AAAA,sBAAA;AAAA,sBAE3C,SAAS,CAAC,MAAM;AACd,0BAAE,eAAA;AACF,0BAAE,gBAAA;AACF,6BAAI,+BAAO,gBAAc,+BAAO,YAAY;AAC5C,6BAAK,UAAA;AAAA,sBAAU;AAAA,sBAGhB,eAAK,SAAS,OACX,OAAO,KAAK,KAAK,EAAE,SAAS,KAAK,SAAS,kBAAkB,OAAO,IAAI,GAAG,GAAG,IAC7E,KAAK,eAAe;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBAEzB,UAAU,SAAS,KAAK,SAAS,2CAC/B,QAAA,EAAK,OAAO,EAAE,OAAO,OAAO,eAAe,QAAQ,WAAW,SAAA,GAAY,UAAA,IAAA,CAAC;AAAA,gBAAA,KAxBjE,KAAK,IA0BpB;AAAA,eACD;AAAA,cAEHJ,kCAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO,MAAM;AAAA,kBACb,MAAK;AAAA,kBACL,iBAAe;AAAA,kBACf,YAAU;AAAA,kBACV,UAAQ;AAAA,kBACR,YAAU;AAAA,kBACV,OAAO,CAAC,EAAE,MAAM,YAAY,MAAM,MAAM;AAAA,kBACxC,aAAY,+BAAO,gBAAc,+BAAO;AAAA,kBACxC,SAAS,CAAC,MAAM;AACd,sBAAE,eAAA;AACF,sBAAE,gBAAA;AACF,qCAAiB,IAAI;AAAA,kBAAA;AAAA,kBAEvB,SAAS,CAAC,MAAM;AACd,sBAAE,eAAA;AACF,sBAAE,gBAAA;AACF,2BAAA;AAAA,kBAAO;AAAA,gBACT;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,IAEFA,kCAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAI,CAACC,YAAW;AAAA,UACd,SAAS;AAAA,YACP,YAAYA,OAAM,OAAO,MAAM,MAAM,KAAK,EAAE,WAAW;AAAA,YACvD,QAAQ,aAAaA,OAAM,OAAO,MAAM,MAAM,KAAK,EAAE,OAAO,IAAI;AAAA,UAAA;AAAA,QAClE;AAAA,QAEF,MAAM,MAAM;AAAA,QACZ,OAAO,MAAM;AAAA,QACb;AAAA,QACA,qBAAmB;AAAA,QACnB;AAAA,QACA,KAAK;AAAA,QAEL,UAAAH,kCAAAA,KAAC,kBAAA,EAAiB,gBAAgB,MAAM,eAAe,QAAQ,MAAM,OAAO,OAAO,MAAM,MACvF,UAAA;AAAA,UAAAA,kCAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAI;AAAA,gBACF,SAAS;AAAA,kBACP,gBAAgB;AAAA,kBAChB,YAAY;AAAA,gBAAA;AAAA,cACd;AAAA,cAGF,UAAA;AAAA,gBAAAE,kCAAAA;AAAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,UAAQ;AAAA,oBACR,OAAO;AAAA,sBACL;AAAA,wBACE,MAAM;AAAA,wBACN,MAAM;AAAA,wBACN,MAAM;AAAA,sBAAA;AAAA,oBACR;AAAA,oBAEF,iBAAe;AAAA,oBACf,OAAO,MAAM;AAAA,oBACb,MAAM;AAAA,oBACN,SAAS,MAAM,CAAC,oBAAoB,YAAA;AAAA,oBACpC,UAAU;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAEZF,uCAAC,SAAM,IAAI,EAAE,SAAS,EAAE,KAAK,QAAM,GACjC,UAAA;AAAA,kBAAAE,kCAAAA;AAAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,cAAc,MAAM,OAAO;AAAA,sBAC3B,OAAO,MAAM;AAAA,sBACb,MAAM;AAAA,sBACN,QAAQ,eAAe,mBAAmB,MAAA,EAAQ,QAAQ,OAAO,EAAE,IAAA,EAAM,QAAA;AAAA,sBACzE,sBAAoB;AAAA,sBACpB,wBAAsB;AAAA,sBACtB,+BAA6B;AAAA,sBAC7B,UAAQ;AAAA,sBACR,cAAY;AAAA,sBACZ,aAAa;AAAA,sBACb,UAAU,CAAC,cAA6B;AACtC,4BAAI,wBAAwB,SAAS;AAAA,sBAAA;AAAA,sBAEvC,SAAS,MAAM;AAAA,sBACf,SAAS,MAAM;AAAA,sBACf,IAAI,EAAE,SAAS,EAAE,OAAO,SAAO;AAAA,oBAAE;AAAA,kBAAA;AAAA,kBAEnCA,kCAAAA;AAAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,OAAO,MAAM;AAAA,sBACb,MAAM;AAAA,sBACN,aAAa;AAAA,sBACb,QAAQ,eAAe,mBAAmB,MAAA,EAAQ,QAAQ,MAAM,EAAE,IAAA,EAAM,QAAA;AAAA,sBACxE,UAAU,CAAC,cAA6B;AACtC,4BAAI,wBAAwB,SAAS;AAAA,sBAAA;AAAA,sBAEvC,sBAAoB;AAAA,sBACpB,wBAAsB;AAAA,sBACtB,+BAA6B;AAAA,sBAC7B,UAAQ;AAAA,sBACR,SAAS,MAAM;AAAA,sBACf,SAAS,MAAM;AAAA,sBACf,IAAI,EAAE,SAAS,EAAE,OAAO,SAAO;AAAA,oBAAE;AAAA,kBAAA;AAAA,gBACnC,GACF;AAAA,gBACAA,kCAAAA;AAAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,SAAS,MAAM,CAAC,oBAAoB,YAAA;AAAA,oBACpC,iBAAe;AAAA,oBACf,UAAQ;AAAA,oBACR,OAAO;AAAA,sBACL;AAAA,wBACE,MAAM;AAAA,wBACN,MAAM;AAAA,wBACN,MAAM;AAAA,sBAAA;AAAA,oBACR;AAAA,oBAEF,OAAO,MAAM;AAAA,oBACb,MAAM;AAAA,oBACN,UAAU;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACZ;AAAA,YAAA;AAAA,UAAA;AAAA,UAEFF,kCAAAA,KAAC,kBAAA,EAAiB,OAAO,MACtB,UAAA;AAAA,YAAA,WAAW,IAAI,CAAC,GAAG,UAAA;;AAClBE,uDAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,MAAM;AAAA,oBACN,QAAQ;AAAA,oBACR,UAAQL,MAAA,MAAM,SAAN,gBAAAA,IAAY,WAAU,MAAM,KAAK;AAAA,kBAAA;AAAA,kBAE3C,UAAU;AAAA,kBACV,MAAK;AAAA,kBACL,UAAU;AAAA,kBACV,YAAY;AAAA,kBACZ,QAAQ,MAAM;AAAA,kBACd,OAAO,MAAM;AAAA,kBACb,QAAMO,MAAA,YAAY,CAAC,MAAb,gBAAAA,IAAgB,eAAc;AAAA,kBACpC,SAAS,QAAQ;AAAA,kBAGhB,UAAA,EAAE;AAAA,gBAAA;AAAA,gBAFE,GAAG,EAAE,KAAK,IAAI,KAAK;AAAA,cAAA;AAAA,aAI3B;AAAA,YACA,YAAY,IAAI,CAAC;;AAChBJ,uDAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,MAAM;AAAA,oBACN,QAAQ;AAAA,oBACR,UAAQH,MAAA,MAAM,SAAN,gBAAAA,IAAY,WAAU,MAAM,KAAK;AAAA,kBAAA;AAAA,kBAE3C,MAAK;AAAA,kBACL,aAAa,IAAI;AAAA,kBACjB,oBAAoB,IAAI,cAAc,MAAM;AAAA,kBAC5C,qBAAqB,MAAM;AAAA,kBAC3B,aAAa,MAAM;AAAA,kBACnB,QAAQ,MAAM;AAAA,kBACd,OAAO,MAAM;AAAA,kBACb,OAAM,2BAAK,eAAc;AAAA,kBACzB,SAAS,IAAI;AAAA,kBAEb,SAAS,MAAM;AACb,wBAAI,CAAC,IAAI,YAAY;AACnB,mCAAa,IAAI,KAAK;AACtB,0BAAI,MAAM,gBAAgB;AACxB,8BAAA;AAAA,sBAAM;AAAA,oBACR;AAAA,kBACF;AAAA,kBAEF,UAAU,IAAI,aAAa,KAAK;AAAA,kBAChC,UAAU,IAAI;AAAA,kBACd,YAAY,IAAI;AAAA,kBAChB,WAAW,IAAI,WAAU,2CAAa;AAAA,kBACtC,iBAAiB,IAAI;AAAA,kBAEpB,UAAA;AAAA,oBAAA,CAAC,IAAI,cAAcK,kCAAAA,IAAC,QAAA,EAAO,OAAO,MAAM,OAAO,KAAK,MAAM,KAAK,EAAE,MAAM,KAAA,CAAM;AAAA,oBAC7E,IAAI;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAhBA,IAAI;AAAA,cAAA;AAAA,aAkBZ;AAAA,UAAA,EAAA,CACH;AAAA,QAAA,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,IAED,YAAW,+BAAO,SACjBA,kCAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAI,UACD;AAAA,UACE,SAAS;AAAA,UACT,QAAM,oCAAO,UAAP,mBAAc,SAAQ,MAAM;AAAA,UAClC,GAAG,MAAM;AAAA,QAAA,IAEX,MAAM;AAAA,QACV,QAAM,oCAAO,UAAP,mBAAc,SAAQ,MAAM;AAAA,QAClC,MAAM;AAAA,UACJ,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,UAAQ,WAAM,SAAN,mBAAY,WAAU,MAAM,KAAK;AAAA,QAAA;AAAA,MAC3C;AAAA,IAAA,IAEA;AAAA,EAAA,GACN;AAEJ;AACA,SAAS,eACP,KACA,eACA,OACA,UACA;;AACA,QAAM,QAAQ;AACd,QAAM,MAAM;AACZ,QAAM,YAAU,WAAM,GAAG,MAAT,mBAAY,eAAc;AAG1C,QAAM,SAAS,CAAC,MAAc,MAAM;AACpC,QAAM,QAAQ,CAAC,MAAc,OAAO,CAAC;AAErC,MAAI,QAAQ,kBAAkB,IAAI;AAEhC,QAAI,QAAQ,UAAU,GAAG;AAEvB,YAAMK,UAAS,MAAM,KAAK;AAC1B,UAAIA,YAAW,KAAKA,UAAS,GAAI;AACjC,eAAS,QAAQ,GAAG,EAAE,SAASA,OAAM;AACrC;AAAA,IAAA;AAKF,QAAI,QAAQ,WAAW,KAAK,OAAO,OAAO,GAAG;AAC3C,YAAMA,UAAS,MAAM,KAAK;AAC1B,UAAIA,YAAW,KAAKA,UAAS,GAAI;AACjC,eAAS,QAAQ,GAAG,EAAE,SAASA,OAAM;AACrC,eAAS,QAAQ,GAAG,EAAE,OAAA;AACtB;AAAA,IAAA;AAIF,UAAM,YAAY,UAAU;AAC5B,UAAM,kBAAkB,MAAM,SAAS;AAGvC,QAAI,kBAAkB,IAAI;AACxB,YAAMA,UAAS,MAAM,KAAK;AAC1B,UAAIA,YAAW,KAAKA,UAAS,GAAI;AACjC,eAAS,QAAQ,GAAG,EAAE,SAASA,OAAM;AACrC,eAAS,QAAQ,GAAG,EAAE,OAAA;AACtB;AAAA,IAAA;AAIF,UAAM,YAAY,oBAAoB,IAAI,QAAQ;AAClD,UAAM,SAAS,MAAM,SAAS;AAC9B,QAAI,WAAW,KAAK,SAAS,GAAI;AACjC,aAAS,QAAQ,GAAG,EAAE,SAAS,MAAM;AACrC,QAAI,UAAU,WAAW,YAAY,QAAQ,GAAG,EAAE,OAAA;AAAA,EAAO,WAChD,QAAQ,kBAAkB,IAAI;AAEvC,QAAI,QAAQ,UAAU,GAAG;AACvB,YAAMA,UAAS,MAAM,KAAK;AAC1B,UAAIA,YAAW,KAAKA,UAAS,GAAI;AACjC,eAAS,QAAQ,GAAG,EAAE,SAASA,OAAM;AACrC;AAAA,IAAA;AAGF,QAAI,QAAQ,WAAW,KAAK,OAAO,OAAO,GAAG;AAC3C,YAAMA,UAAS,MAAM,KAAK;AAC1B,UAAIA,YAAW,KAAKA,UAAS,GAAI;AACjC,eAAS,QAAQ,GAAG,EAAE,SAASA,OAAM;AACrC,eAAS,QAAQ,GAAG,EAAE,OAAA;AACtB;AAAA,IAAA;AAGF,UAAM,YAAY,UAAU;AAC5B,UAAM,kBAAkB,MAAM,SAAS;AACvC,UAAM,YAAY,oBAAoB,KAAK,kBAAkB,KAAK,QAAQ;AAE1E,UAAM,SAAS,MAAM,SAAS;AAC9B,QAAI,WAAW,KAAK,SAAS,GAAI;AACjC,aAAS,QAAQ,GAAG,EAAE,SAAS,MAAM;AACrC,QAAI,UAAU,WAAW,KAAM,UAAU,WAAW,KAAK,SAAS,GAAI;AACpE,eAAS,QAAQ,GAAG,EAAE,OAAA;AAAA,IAAO;AAAA,EAC/B,WACS,QAAQ,kBAAkB,MAAM;AAEzC,QAAI,QAAQ,UAAU,GAAG;AACvB,UAAI,UAAU,IAAK;AACnB,eAAS,QAAQ,GAAG,EAAE,SAAS,MAAM,KAAK,CAAC;AAC3C;AAAA,IAAA;AAGF,UAAM,aAAa,UAAU,OAAO,MAAM,EAAE;AAC5C,aAAS,QAAQ,GAAG,EAAE,SAAS,MAAM,SAAS,CAAC;AAAA,EAAA;AAEnD;ACr4BO,IAAK,sCAAAC,uBAAL;AACLA,qBAAA,IAAA,IAAK;AACLA,qBAAA,IAAA,IAAK;AACLA,qBAAA,MAAA,IAAO;AAHG,SAAAA;AAAA,GAAA,qBAAA,CAAA,CAAA;"}