@jenesei-software/jenesei-kit-react 2.0.0 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/build/{AnimatePresence-BByJ67dn.js → AnimatePresence-19yP-TCg.js} +2 -2
- package/build/{AnimatePresence-BByJ67dn.js.map → AnimatePresence-19yP-TCg.js.map} +1 -1
- package/build/{AnimatePresence-BtUPiqYm.cjs → AnimatePresence-BdBJCJuf.cjs} +2 -2
- package/build/{AnimatePresence-BtUPiqYm.cjs.map → AnimatePresence-BdBJCJuf.cjs.map} +1 -1
- package/build/area-outside.cjs.js +1 -1
- package/build/area-outside.es.js +1 -1
- package/build/area-preview.cjs.js +1 -1
- package/build/area-preview.es.js +1 -1
- package/build/area-skeleton.cjs.js +1 -1
- package/build/area-skeleton.es.js +1 -1
- package/build/build-info.txt +3 -3
- package/build/{button-D8zdhI-0.js → button-BbGiFvok.js} +2 -2
- package/build/{button-D8zdhI-0.js.map → button-BbGiFvok.js.map} +1 -1
- package/build/{button-C5PgNYns.cjs → button-BuPpgfL_.cjs} +2 -2
- package/build/{button-C5PgNYns.cjs.map → button-BuPpgfL_.cjs.map} +1 -1
- package/build/{checkbox-Ba0-4wxk.js → checkbox-CXxWDklX.js} +3 -3
- package/build/{checkbox-Ba0-4wxk.js.map → checkbox-CXxWDklX.js.map} +1 -1
- package/build/{checkbox-BtkbSjHq.cjs → checkbox-qgc_Ntc3.cjs} +2 -2
- package/build/{checkbox-BtkbSjHq.cjs.map → checkbox-qgc_Ntc3.cjs.map} +1 -1
- package/build/chunk-Dd8m0Ver.cjs +1 -0
- package/build/{chunk-D1xtDmiO.js → chunk-cI0lbGMq.js} +7 -7
- package/build/{component-6HgOL-7c.js → component-BHyXT2-h.js} +2 -2
- package/build/{component-6HgOL-7c.js.map → component-BHyXT2-h.js.map} +1 -1
- package/build/component-button.cjs.js +1 -1
- package/build/component-button.es.js +1 -1
- package/build/component-checkbox.cjs.js +1 -1
- package/build/component-checkbox.es.js +1 -1
- package/build/component-date-picker.cjs.js +1 -1
- package/build/component-date-picker.es.js +1 -1
- package/build/component-icon.cjs.js +1 -1
- package/build/component-icon.es.js +1 -1
- package/build/component-input-otp.cjs.js +1 -1
- package/build/component-input-otp.es.js +1 -1
- package/build/component-input.cjs.js +1 -1
- package/build/component-input.es.js +1 -1
- package/build/{component-BjdeqpEq.cjs → component-jsn2T8Hu.cjs} +2 -2
- package/build/{component-BjdeqpEq.cjs.map → component-jsn2T8Hu.cjs.map} +1 -1
- package/build/component-pagination.cjs.js +1 -1
- package/build/component-pagination.es.js +1 -1
- package/build/component-popover.cjs.js +1 -1
- package/build/component-select.cjs.js +1 -1
- package/build/component-select.es.js +1 -1
- package/build/component-separator.cjs.js +1 -1
- package/build/component-stack.cjs.js +1 -1
- package/build/component-stack.es.js +1 -1
- package/build/component-textarea.cjs.js +1 -1
- package/build/component-textarea.es.js +1 -1
- package/build/component-toggle.cjs.js +1 -1
- package/build/component-toggle.es.js +1 -1
- package/build/component-tooltip.cjs.js +1 -1
- package/build/component-typography.cjs.js +1 -1
- package/build/components-error.cjs.js +1 -1
- package/build/components-error.es.js +1 -1
- package/build/{context-app-4_kY3Qcd.js → context-app-CMK9g6MI.js} +4 -4
- package/build/{context-app-4_kY3Qcd.js.map → context-app-CMK9g6MI.js.map} +1 -1
- package/build/{context-app-DKsS6_WR.cjs → context-app-HhFcx1wY.cjs} +2 -2
- package/build/{context-app-DKsS6_WR.cjs.map → context-app-HhFcx1wY.cjs.map} +1 -1
- package/build/context-app.cjs.js +1 -1
- package/build/context-app.es.js +1 -1
- package/build/{context-browser-theme-CPhqqRUP.js → context-browser-theme-Cb6siWO0.js} +2 -2
- package/build/{context-browser-theme-CPhqqRUP.js.map → context-browser-theme-Cb6siWO0.js.map} +1 -1
- package/build/{context-browser-theme-o9geUlSH.cjs → context-browser-theme-Cso_rAT5.cjs} +2 -2
- package/build/{context-browser-theme-o9geUlSH.cjs.map → context-browser-theme-Cso_rAT5.cjs.map} +1 -1
- package/build/context-browser-theme.cjs.js +1 -1
- package/build/context-browser-theme.es.js +1 -1
- package/build/{context-cookie-CvTU44MD.cjs → context-cookie-Btkd2aXy.cjs} +2 -2
- package/build/{context-cookie-CvTU44MD.cjs.map → context-cookie-Btkd2aXy.cjs.map} +1 -1
- package/build/context-cookie.cjs.js +1 -1
- package/build/{context-dialog-CCnhd1EY.cjs → context-dialog-B67-_jMH.cjs} +2 -2
- package/build/{context-dialog-CCnhd1EY.cjs.map → context-dialog-B67-_jMH.cjs.map} +1 -1
- package/build/{context-dialog-HLeQ5WNn.js → context-dialog-CxGGmBqC.js} +5 -5
- package/build/{context-dialog-HLeQ5WNn.js.map → context-dialog-CxGGmBqC.js.map} +1 -1
- package/build/context-dialog.cjs.js +1 -1
- package/build/context-dialog.es.js +1 -1
- package/build/{context-geolocation-ffFFV4kn.cjs → context-geolocation-CV4hV0NX.cjs} +2 -2
- package/build/{context-geolocation-ffFFV4kn.cjs.map → context-geolocation-CV4hV0NX.cjs.map} +1 -1
- package/build/context-geolocation.cjs.js +1 -1
- package/build/{context-local-storage-kmxWNK_4.cjs → context-local-storage-DUKHVPAA.cjs} +2 -2
- package/build/{context-local-storage-kmxWNK_4.cjs.map → context-local-storage-DUKHVPAA.cjs.map} +1 -1
- package/build/context-local-storage.cjs.js +1 -1
- package/build/{context-permission-K3tWOiAx.cjs → context-permission-DrcIwK9y.cjs} +2 -2
- package/build/{context-permission-K3tWOiAx.cjs.map → context-permission-DrcIwK9y.cjs.map} +1 -1
- package/build/context-permission.cjs.js +1 -1
- package/build/{context-screen-width-CEsyIyg6.js → context-screen-width-CFexCIzV.js} +2 -2
- package/build/{context-screen-width-CEsyIyg6.js.map → context-screen-width-CFexCIzV.js.map} +1 -1
- package/build/{context-screen-width-ind6z7Ny.cjs → context-screen-width-hcRkxzy7.cjs} +2 -2
- package/build/{context-screen-width-ind6z7Ny.cjs.map → context-screen-width-hcRkxzy7.cjs.map} +1 -1
- package/build/context-screen-width.cjs.js +1 -1
- package/build/context-screen-width.es.js +1 -1
- package/build/{context-sonner-L0OMEvZE.cjs → context-sonner-4gBa1F7G.cjs} +2 -2
- package/build/{context-sonner-L0OMEvZE.cjs.map → context-sonner-4gBa1F7G.cjs.map} +1 -1
- package/build/{context-sonner-Bniiz914.js → context-sonner-qDPLFpD5.js} +6 -6
- package/build/{context-sonner-Bniiz914.js.map → context-sonner-qDPLFpD5.js.map} +1 -1
- package/build/context-sonner.cjs.js +1 -1
- package/build/context-sonner.es.js +1 -1
- package/build/{date-picker-CQUe3ZXt.cjs → date-picker-CPNNIEa-.cjs} +2 -2
- package/build/{date-picker-CQUe3ZXt.cjs.map → date-picker-CPNNIEa-.cjs.map} +1 -1
- package/build/{date-picker-z3LcE7Ab.js → date-picker-Uuce_InW.js} +5 -5
- package/build/{date-picker-z3LcE7Ab.js.map → date-picker-Uuce_InW.js.map} +1 -1
- package/build/{dist-Dq_YJa2q.js → dist-BV0C3tLK.js} +2 -2
- package/build/{dist-Dq_YJa2q.js.map → dist-BV0C3tLK.js.map} +1 -1
- package/build/{dist-C8r_OdG1.cjs → dist-DswBAjW1.cjs} +2 -2
- package/build/{dist-C8r_OdG1.cjs.map → dist-DswBAjW1.cjs.map} +1 -1
- package/build/{error--kiPVmoi.cjs → error-DzkkNL2H.cjs} +2 -2
- package/build/{error--kiPVmoi.cjs.map → error-DzkkNL2H.cjs.map} +1 -1
- package/build/{error-D1UNY-0f.js → error-L2fvWcNv.js} +2 -2
- package/build/{error-D1UNY-0f.js.map → error-L2fvWcNv.js.map} +1 -1
- package/build/hooks-use-debounced-callback.cjs.js +1 -1
- package/build/hooks-use-deep-compare-memoize.cjs.js +1 -1
- package/build/hooks-use-deep-compare-memoize.es.js +2 -2
- package/build/hooks-use-deep-memo.cjs.js +1 -1
- package/build/hooks-use-deep-memo.es.js +2 -2
- package/build/hooks-use-merge-refs.cjs.js +1 -1
- package/build/hooks-use-overflowing-advanced.cjs.js +1 -1
- package/build/hooks-use-overflowing-in-container.cjs.js +1 -1
- package/build/hooks-use-overflowing.cjs.js +1 -1
- package/build/hooks-use-responsive-layout.cjs.js +1 -1
- package/build/hooks-use-responsive-layout.es.js +1 -1
- package/build/hooks-use-typography-styles.cjs.js +1 -1
- package/build/{icon-CreblPsB.cjs → icon-CoIQwke4.cjs} +2 -2
- package/build/{icon-CreblPsB.cjs.map → icon-CoIQwke4.cjs.map} +1 -1
- package/build/{icon-BG6R5Lfa.js → icon-DzAWOQJg.js} +2 -2
- package/build/{icon-BG6R5Lfa.js.map → icon-DzAWOQJg.js.map} +1 -1
- package/build/index.cjs.js +1 -1
- package/build/index.es.js +21 -21
- package/build/{input-DqMLnOz5.js → input-CV02F03L.js} +2 -2
- package/build/{input-DqMLnOz5.js.map → input-CV02F03L.js.map} +1 -1
- package/build/{input-otp-DPp3qmvI.js → input-otp-B9cYxJ7X.js} +3 -3
- package/build/{input-otp-DPp3qmvI.js.map → input-otp-B9cYxJ7X.js.map} +1 -1
- package/build/{input-otp-Z_wz6o6L.cjs → input-otp-BVRCfoRK.cjs} +2 -2
- package/build/{input-otp-Z_wz6o6L.cjs.map → input-otp-BVRCfoRK.cjs.map} +1 -1
- package/build/{input-CWcWWMCp.cjs → input-zXF5f99Z.cjs} +2 -2
- package/build/{input-CWcWWMCp.cjs.map → input-zXF5f99Z.cjs.map} +1 -1
- package/build/isEqual-DeC2HFe5.cjs +3 -0
- package/build/{isEqual-wc3RBuBi.cjs.map → isEqual-DeC2HFe5.cjs.map} +1 -1
- package/build/{isEqual-VCZu3vai.js → isEqual-Qb81B2zH.js} +4 -3
- package/build/{isEqual-VCZu3vai.js.map → isEqual-Qb81B2zH.js.map} +1 -1
- package/build/{motion-BeQRGZxW.cjs → motion-CAPq8wSn.cjs} +2 -2
- package/build/{motion-BeQRGZxW.cjs.map → motion-CAPq8wSn.cjs.map} +1 -1
- package/build/{motion-Ot_yGWVJ.js → motion-Dt6TyEjN.js} +3 -3
- package/build/{motion-Ot_yGWVJ.js.map → motion-Dt6TyEjN.js.map} +1 -1
- package/build/{outside-DJ1B9sBT.cjs → outside-B3nRnDGb.cjs} +2 -2
- package/build/{outside-DJ1B9sBT.cjs.map → outside-B3nRnDGb.cjs.map} +1 -1
- package/build/{outside-BtjOuCPD.js → outside-DpK1pI8b.js} +2 -2
- package/build/{outside-BtjOuCPD.js.map → outside-DpK1pI8b.js.map} +1 -1
- package/build/{pagination-BnvQ1aha.cjs → pagination-Dbs4Lrpt.cjs} +2 -2
- package/build/{pagination-BnvQ1aha.cjs.map → pagination-Dbs4Lrpt.cjs.map} +1 -1
- package/build/{pagination-CpaP3Svg.js → pagination-YXSjZsMZ.js} +5 -5
- package/build/{pagination-CpaP3Svg.js.map → pagination-YXSjZsMZ.js.map} +1 -1
- package/build/{popover-fte_EMYr.cjs → popover-CgwGn-55.cjs} +2 -2
- package/build/{popover-fte_EMYr.cjs.map → popover-CgwGn-55.cjs.map} +1 -1
- package/build/{preview-BvJN6QoV.js → preview-C_yFxoFH.js} +4 -4
- package/build/{preview-BvJN6QoV.js.map → preview-C_yFxoFH.js.map} +1 -1
- package/build/{preview-CG76AiC9.cjs → preview-dT7fmxcc.cjs} +2 -2
- package/build/{preview-CG76AiC9.cjs.map → preview-dT7fmxcc.cjs.map} +1 -1
- package/build/{proxy-D2Z8K6jr.cjs → proxy-_gZenxVU.cjs} +2 -2
- package/build/{proxy-D2Z8K6jr.cjs.map → proxy-_gZenxVU.cjs.map} +1 -1
- package/build/{proxy-DTLy-pV-.js → proxy-wCWa57J3.js} +2 -2
- package/build/{proxy-DTLy-pV-.js.map → proxy-wCWa57J3.js.map} +1 -1
- package/build/{select-BQtWzaxE.cjs → select-B0adRX2_.cjs} +4 -4
- package/build/{select-BQtWzaxE.cjs.map → select-B0adRX2_.cjs.map} +1 -1
- package/build/{select-B4JeEvIF.js → select-D7EyxR2l.js} +10 -10
- package/build/{select-B4JeEvIF.js.map → select-D7EyxR2l.js.map} +1 -1
- package/build/{separator-BXoT44nC.cjs → separator-CbeH8Lug.cjs} +2 -2
- package/build/{separator-BXoT44nC.cjs.map → separator-CbeH8Lug.cjs.map} +1 -1
- package/build/{skeleton-BOfnrUaI.cjs → skeleton-BoVFwt7y.cjs} +2 -2
- package/build/{skeleton-BOfnrUaI.cjs.map → skeleton-BoVFwt7y.cjs.map} +1 -1
- package/build/{skeleton-Bzr92XmL.js → skeleton-DNwTI6w0.js} +2 -2
- package/build/{skeleton-Bzr92XmL.js.map → skeleton-DNwTI6w0.js.map} +1 -1
- package/build/style-motion.cjs.js +1 -1
- package/build/style-motion.es.js +1 -1
- package/build/style-utils.cjs.js +1 -1
- package/build/styles.css +2 -0
- package/build/{textarea-BRzorAFw.cjs → textarea-CbZSeqGR.cjs} +2 -2
- package/build/{textarea-BRzorAFw.cjs.map → textarea-CbZSeqGR.cjs.map} +1 -1
- package/build/{textarea-BssfjUe3.js → textarea-ChkjV_Ha.js} +2 -2
- package/build/{textarea-BssfjUe3.js.map → textarea-ChkjV_Ha.js.map} +1 -1
- package/build/{toggle-CCfZoBpW.js → toggle-I6YvEX4w.js} +2 -2
- package/build/{toggle-CCfZoBpW.js.map → toggle-I6YvEX4w.js.map} +1 -1
- package/build/{toggle-BFp9Nmas.cjs → toggle-gYw5FUp-.cjs} +2 -2
- package/build/{toggle-BFp9Nmas.cjs.map → toggle-gYw5FUp-.cjs.map} +1 -1
- package/build/{typography-whjfut7N.cjs → typography-DcxhX_9e.cjs} +2 -2
- package/build/{typography-whjfut7N.cjs.map → typography-DcxhX_9e.cjs.map} +1 -1
- package/package.json +3 -6
- package/build/chunk-CW3en5xf.cjs +0 -1
- package/build/isEqual-wc3RBuBi.cjs +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker-CQUe3ZXt.cjs","names":[],"sources":["../src/components/date-picker/component.types.ts","../src/components/date-picker/component.tsx"],"sourcesContent":["import { IErrorMessage } from '@local/components/error';\nimport { ISelectMonth } from '@local/components/select';\nimport { ITypography } from '@local/styles/utils';\nimport { IThemeControl, IThemeGenreDatePicker, IThemeSize } from '@local/styles/utils/types';\n\nimport { CSSProperties, HTMLInputAutoCompleteAttribute } from 'react';\n\nexport type IDatePickerMode = DatePickerVariant[];\n\nexport enum DatePickerVariant {\n DD = 'DD',\n MM = 'MM',\n YYYY = 'YYYY',\n}\n\nexport type IDatePickerType = 'manual' | 'select' | 'manualAndSelect';\n\nexport type IDatePickerCommon = {\n className?: string;\n style?: CSSProperties;\n\n classNamePopover?: string;\n stylePopover?: CSSProperties;\n\n sxTypography?: ITypography;\n control?: IThemeControl;\n error?: IErrorMessage;\n\n genre: IThemeGenreDatePicker;\n\n id?: string;\n\n isNiceNumber?: boolean;\n isReadOnly?: boolean;\n isDisabled?: boolean;\n isBold?: boolean;\n isMinWidth?: boolean;\n isShowClearButton?: boolean;\n isOnClickClose?: boolean;\n\n labelPlaceholder?: string;\n\n locale: {\n months: ISelectMonth['monthsLocale'];\n weeks: IDatePickerTranslateWeek[];\n inputs: IDatePickerTranslateInput;\n };\n\n notValidDate?: Omit<IErrorMessage, 'size' | 'isError'>;\n\n mode?: IDatePickerMode;\n\n type?: IDatePickerType;\n\n name?: string;\n\n ariaLabel?: string;\n\n autoComplete?: HTMLInputAutoCompleteAttribute | string;\n\n onBlur?: () => void;\n\n onChange: (timestamp: number | null) => void;\n\n onFocus?: () => void;\n\n size: IThemeSize;\n\n dateMax?: number;\n\n dateMin?: number;\n\n dateDefault: number;\n};\n\ntype IDatePickerControlledValue = {\n value: number | null | undefined;\n\n defaultValue?: never;\n};\n\ntype IDatePickerUncontrolledValue = {\n defaultValue: number | null | undefined;\n\n value?: never;\n};\nexport type IDatePicker = IDatePickerCommon & (IDatePickerControlledValue | IDatePickerUncontrolledValue);\n\nexport interface IDatePickerDay {\n dayOfWeek: number;\n\n isCurrentMonth: boolean;\n\n isDisabled: boolean;\n\n isChoice: 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 IDatePickerTranslateMonth = {\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 IDatePickerTranslateWeek = {\n localeLong: string;\n\n localeShort: string;\n\n value: 'mo' | 'tu' | 'we' | 'th' | 'fr' | 'sa' | 'su';\n};\nexport type IDatePickerTranslateInput = {\n day: string;\n\n month: string;\n\n year: string;\n};\n","/** biome-ignore-all lint/a11y/useKeyWithClickEvents: <explanation> */\nimport { Button } from '@local/components/button';\nimport { ErrorMessage } from '@local/components/error';\nimport { Popover, usePopover } from '@local/components/popover';\nimport { SelectMonth, SelectYear } from '@local/components/select';\nimport { Stack } from '@local/components/stack';\nimport { Typography } from '@local/components/typography';\nimport { useTypographyStyles } from '@local/hooks/use-typography-styles';\nimport { CSS_CLASS, CSS_VARS, CSS_VARS_RAW, EXTRA_VALUE } from '@local/styles/utils';\nimport { setClasses, setStyles } from '@local/styles/utils/functions';\n\nimport moment, { Moment } from 'moment';\nimport {\n ChangeEvent,\n Fragment,\n KeyboardEvent,\n RefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport {\n DatePickerVariant,\n IDatePicker,\n IDatePickerDay,\n IDatePickerMode,\n IDatePickerTranslateWeek,\n IDatePickerType,\n} from './component.types';\n\nconst weekOrder: IDatePickerTranslateWeek['value'][] = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'];\n\nexport const DatePicker = (props: IDatePicker) => {\n const { onChange } = props;\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, string>>({\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n });\n\n useEffect(() => {\n refInputValue.current = input;\n }, [input]);\n\n const isHasInput = useMemo(\n () =>\n input[DatePickerVariant.DD] !== '' || input[DatePickerVariant.MM] !== '' || input[DatePickerVariant.YYYY] !== '',\n [input],\n );\n\n const onClearInput = useCallback(() => {\n setInput({\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n });\n }, []);\n\n const [activeSegment, setActiveSegment] = useState<DatePickerVariant | null>(null);\n const [isError, setIsError] = useState(false);\n\n const mode: IDatePickerMode = 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 type: IDatePickerType = useMemo(() => {\n if (!props.type) {\n return 'manualAndSelect';\n }\n\n return props.type;\n }, [props.type]);\n\n const dataDate = useMemo(() => {\n const segments = [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY];\n\n const result = Object.fromEntries(\n segments.map((segment) => [\n segment,\n {\n type: segment,\n value: input[segment],\n placeholder:\n props.locale.inputs[\n segment === DatePickerVariant.DD ? 'day' : segment === DatePickerVariant.MM ? 'month' : 'year'\n ],\n isFirst: mode[0] === segment,\n isLast: mode[mode.length - 1] === segment,\n segmentNext: getNextSegment(segment, mode),\n segmentPrev: getPrevSegment(segment, mode),\n onNextSegment: () => setActiveSegment(getNextSegment(segment, mode)),\n onPrevSegment: () => setActiveSegment(getPrevSegment(segment, mode)),\n setValue: (value: string) => setInput((prev) => ({ ...prev, [segment]: value })),\n setActive: () => setActiveSegment(segment),\n },\n ]),\n ) as Record<\n DatePickerVariant,\n {\n type: DatePickerVariant;\n value: string;\n placeholder: string;\n isFirst: boolean;\n isLast: boolean;\n segmentNext: DatePickerVariant | null;\n segmentPrev: DatePickerVariant | null;\n onNextSegment: () => void;\n onPrevSegment: () => void;\n setValue: (value: string) => void;\n setActive: () => void;\n }\n >;\n\n const resultSort = mode.map((segment) => result[segment]).filter(Boolean);\n\n return { sort: resultSort, default: result };\n }, [props, mode, input]);\n\n const daysInWeek = useMemo(() => {\n return weekOrder.map((key, index) => {\n const found = props.locale.weeks.find((w) => w.value === key);\n return {\n index,\n label: found?.localeShort ?? key.toUpperCase(),\n };\n });\n }, [props.locale.weeks]);\n\n const daysInMonth: IDatePickerDay[] = useMemo(() => {\n const dateToday = moment.utc();\n const dateValue = valueMoment ?? dateDefaultMoment;\n const dateStartOfMonth = dateValue.clone().startOf('month');\n const dateEndOfMonth = dateValue.clone().endOf('month');\n const dateMin = props.dateMin ? moment.utc(props.dateMin) : null;\n const dateMax = props.dateMax ? moment.utc(props.dateMax) : null;\n\n const dateVisibleDayFirst = dateStartOfMonth.clone().subtract(dateStartOfMonth.isoWeekday() - 1, 'days');\n const dateVisibleDayLast = dateEndOfMonth.clone().add(7 - dateEndOfMonth.isoWeekday(), 'days');\n\n const result: IDatePickerDay[] = [];\n const dateCurrent = dateVisibleDayFirst.clone();\n\n while (dateCurrent <= dateVisibleDayLast) {\n const isCurrentMonth = dateCurrent.isBetween(dateStartOfMonth, dateEndOfMonth, 'day', '[]');\n result.push({\n value: dateCurrent.valueOf(),\n labelString: dateCurrent.format('dd'),\n labelNumber: dateCurrent.date(),\n dayOfWeek: dateCurrent.isoWeekday(),\n isWeekend: [6, 7].includes(dateCurrent.isoWeekday()),\n weekOfMonth: Math.ceil((result.length + 1) / 7),\n isToday: dateCurrent.isSame(dateToday, 'day'),\n isCurrentMonth,\n isChoice: dateCurrent.valueOf() === valueMoment?.valueOf(),\n isDisabled: !!(\n (dateMin && dateCurrent.isBefore(dateMin, 'day')) ||\n (dateMax && dateCurrent.isAfter(dateMax, 'day'))\n ),\n });\n\n dateCurrent.add(1, 'day');\n }\n\n return result;\n }, [valueMoment, dateDefaultMoment, props.dateMax, props.dateMin]);\n\n const rows = useMemo(() => getCountSevens(daysInMonth.length) + 1, [daysInMonth]);\n\n const sizeRadius = useMemo(() => CSS_VARS.sizeValue[props.size].radius, [props.size]);\n const sizePadding = useMemo(() => CSS_VARS.sizeValue[props.size].padding, [props.size]);\n\n // const height = useMemo(() => 40 + rows * 28 + (rows - 1) * 6 + sizePadding * 2, [sizePadding, rows]);\n\n const isHasValue = useMemo(() => valueMoment !== null, [valueMoment]);\n\n const isBlockNextMonth = useMemo(() => {\n const nextMonth = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month').startOf('month');\n const isBeforeEndDate = props.dateMax ? nextMonth.isAfter(moment.utc(props.dateMax), 'month') : false;\n return isBeforeEndDate;\n }, [valueMoment, props.dateMax, dateDefaultMoment]);\n\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 refInputValue = useRef(input);\n const refIsHasValueOnce = useRef(false);\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\n const { isOpen, refReference, refFloating, floatingStyles, close, toggle } = usePopover({\n isFocusTrap: true,\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 !!(\n !isInputFocused &&\n !isHasValue &&\n props.labelPlaceholder &&\n (type !== 'select' ? !isOpen : true) &&\n !isHasInput &&\n !activeSegment\n );\n }, [isInputFocused, isHasValue, isOpen, props.labelPlaceholder, isHasInput, activeSegment, type]);\n\n const onChangeDate = useCallback(\n (timestamp: number, isAddLeadingZeros: boolean, input?: Record<DatePickerVariant, string>) => {\n const momentNewDate = moment(timestamp).utc();\n\n const dd = momentNewDate.clone().date().toString();\n const mm = (momentNewDate.clone().month() + 1).toString();\n\n const ddWithZero = dd.padStart(2, '0');\n const mmWithZero = mm.padStart(2, '0');\n\n const yyyy = momentNewDate.clone().year().toString();\n const ddInput = input?.[DatePickerVariant.DD];\n const mmInput = input?.[DatePickerVariant.MM];\n const yyyyInput = input?.[DatePickerVariant.YYYY];\n\n const isSameInput = ddWithZero === ddInput && mmWithZero === mmInput && yyyyInput === yyyy;\n const isSameMoment = valueMoment?.isSame(momentNewDate, 'day');\n if (!isSameMoment) {\n setValueMoment(momentNewDate);\n onChange(momentNewDate.valueOf());\n }\n\n if (!isSameMoment || input ? !isSameInput : false) {\n setInput({\n [DatePickerVariant.DD]: isAddLeadingZeros ? ddWithZero : dd,\n [DatePickerVariant.MM]: isAddLeadingZeros ? mmWithZero : mm,\n [DatePickerVariant.YYYY]: yyyy,\n });\n }\n },\n [valueMoment, onChange],\n );\n\n const onKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n const key = e.key;\n\n const allowedKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Backspace', 'Delete', 'Tab', 'Enter'];\n\n const isDigit = /^\\d$/.test(key);\n const isAllowed = isDigit || allowedKeys.includes(key) || e.ctrlKey || e.metaKey;\n\n if (!isAllowed) {\n e.preventDefault();\n return;\n }\n\n if (activeSegment && dataDate.default[activeSegment]) {\n if (isDigit) {\n const digit = key;\n\n getDigitKey(digit, activeSegment, input, dataDate);\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Tab') {\n if (!dataDate.default[activeSegment].isLast) {\n e.preventDefault();\n dataDate.default[activeSegment].onNextSegment();\n } else {\n refHiddenInput?.current?.blur();\n }\n }\n if (key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Backspace' || key === 'Delete') {\n if (activeSegment === DatePickerVariant.DD) {\n if (input.DD !== '') {\n const current = input.DD;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n } else if (activeSegment === DatePickerVariant.MM) {\n if (input.MM !== '') {\n const current = input.MM;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n } else if (activeSegment === DatePickerVariant.YYYY) {\n if (input.YYYY !== '') {\n const current = input.YYYY;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n e.preventDefault();\n dataDate.default[activeSegment].onPrevSegment();\n }\n if (key === 'ArrowRight' || key === 'ArrowUp') {\n e.preventDefault();\n dataDate.default[activeSegment].onNextSegment();\n }\n }\n },\n [activeSegment, input, dataDate.default, dataDate],\n );\n\n const onNextMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onPrevMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onFocusInput = useCallback(() => {\n if (type === 'select') return;\n setIsInputFocused(true);\n if (!activeSegment) setActiveSegment(DatePickerVariant.DD);\n }, [activeSegment, type]);\n\n const onBlurInput = useCallback(() => {\n setIsInputFocused(false);\n\n if (!isOpen) {\n props.onBlur?.();\n }\n }, [isOpen, props.onBlur]);\n\n const onChangeInput = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value;\n\n const result = getParseDateString(value);\n\n if (result) {\n setInput({\n DD: String(result.day).padStart(2, '0'),\n MM: String(result.month).padStart(2, '0'),\n YYYY: String(result.year),\n });\n if (refHiddenInput.current) refHiddenInput.current.value = '';\n return;\n }\n\n const prevValue = refPrevValue.current;\n\n const newChar = value.length > prevValue.length ? value.slice(-1) : null;\n\n refPrevValue.current = value;\n\n if (newChar && /^\\d$/.test(newChar)) {\n onKeyDown({\n key: newChar,\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n if (value.length < prevValue.length) {\n onKeyDown({\n key: 'Backspace',\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n if (refHiddenInput.current) refHiddenInput.current.value = '';\n },\n [onKeyDown],\n );\n\n useEffect(() => {\n if (isHasValue && !refIsHasValueOnce.current) refIsHasValueOnce.current = true;\n }, [isHasValue]);\n\n useEffect(() => {\n setDateDefaultMoment(moment(props.dateDefault).utc());\n }, [props.dateDefault]);\n\n useEffect(() => {\n setValueMoment(props.value || props.defaultValue ? moment(props.value ?? props.defaultValue).utc() : null);\n if (props.value) {\n // При инициализации также форматируем в строки с ведущими нулями\n const m = moment(props.value).utc();\n setInput({\n [DatePickerVariant.DD]: m.date().toString().padStart(2, '0'),\n [DatePickerVariant.MM]: (m.month() + 1).toString().padStart(2, '0'),\n [DatePickerVariant.YYYY]: m.year().toString(),\n });\n }\n }, [props.value, props.defaultValue]);\n\n useEffect(() => {\n if (!activeSegment)\n getValidateInput(\n input,\n (value) => {\n onChangeDate(value, true, input);\n setIsError(false);\n },\n () => {\n onChange(null);\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n if (refIsHasValueOnce.current) {\n onChange(null);\n refIsHasValueOnce.current = false;\n }\n setIsError(false);\n }\n },\n );\n }, [onChangeDate, onChange, input, activeSegment]);\n\n useEffect(() => {\n if (!isOpen && !isInputFocused && isHasInput && !activeSegment)\n getValidateInput(\n input,\n () => {},\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n );\n }, [onClearInput, input, isOpen, isInputFocused, onChange, isHasInput, activeSegment]);\n\n useEffect(() => {\n if (!activeSegment) return;\n getValidateInput(\n refInputValue.current,\n (value) => {\n onChangeDate(value, true, refInputValue.current);\n setIsError(false);\n },\n () => {\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n setIsError(false);\n }\n },\n );\n }, [onChangeDate, activeSegment]);\n\n useEffect(() => {\n if (activeSegment) {\n close();\n refHiddenInput?.current?.focus();\n }\n }, [activeSegment, close]);\n\n const { className: classNameTypographyDay, style: styleTypographyDay } = useTypographyStyles({\n sx: {\n variant: EXTRA_VALUE.sizeToController.small,\n weight: '500',\n ...props?.sxTypography,\n },\n });\n\n const { className: classNameTypography, style: styleTypography } = useTypographyStyles({\n sx: {\n size: 16,\n weight: props.isBold ? '700' : '400',\n ...props?.sxTypography,\n },\n });\n\n const { className: classNameWrapper, style: styleWrapper } = useMemo(() => {\n const className = setClasses([CSS_CLASS.component.datePicker.wrapper, props.className]);\n\n const vars: Record<string, string> = {};\n\n vars[CSS_VARS_RAW.component.datePicker.padding] = CSS_VARS.size[props.size].padding;\n\n vars[CSS_VARS_RAW.component.datePicker.inputBackground] = CSS_VARS.genre.select[props.genre].background.index;\n vars[CSS_VARS_RAW.component.datePicker.inputBackgroundHover] = CSS_VARS.genre.input[props.genre].background;\n vars[CSS_VARS_RAW.component.datePicker.inputSegmentBackgroundActive] = CSS_VARS.palette.fillQuaternaryLight;\n\n vars[CSS_VARS_RAW.component.datePicker.inputBorderColor] = CSS_VARS.genre.input[props.genre].border;\n vars[CSS_VARS_RAW.component.datePicker.inputBorderColorHover] = CSS_VARS.genre.input[props.genre].border;\n\n vars[CSS_VARS_RAW.component.datePicker.inputColor] = CSS_VARS.genre.input[props.genre].color;\n vars[CSS_VARS_RAW.component.datePicker.inputColorHover] = CSS_VARS.genre.input[props.genre].color;\n\n vars[CSS_VARS_RAW.component.datePicker.inputPadding] = isShowPlaceholder\n ? `0px ${CSS_VARS.size[props.size].padding}`\n : `0px ${CSS_VARS.size[props.size].padding} 0px ${CSS_VARS.sizeValue[props.size].padding - 2}px`;\n vars[CSS_VARS_RAW.component.datePicker.inputHeight] = CSS_VARS.size[props.size].height;\n vars[CSS_VARS_RAW.component.datePicker.inputRadius] = CSS_VARS.size[props.size].radius;\n\n vars[CSS_VARS_RAW.component.datePicker.inputValueColor] = CSS_VARS.genre.input[props.genre].color;\n vars[CSS_VARS_RAW.component.datePicker.inputPlaceholderColor] = CSS_VARS.genre.input[props.genre].placeholder;\n vars[CSS_VARS_RAW.component.datePicker.buttonToggleRight] = `${CSS_VARS.size[props.size].padding}`;\n vars[CSS_VARS_RAW.component.datePicker.buttonClearRight] =\n `${CSS_VARS.sizeValue[props.size].padding * 2 + CSS_VARS.sizeValue[props.size].height}px`;\n\n const style = setStyles([Object.keys(vars).length ? vars : undefined, props.style]);\n\n return { className, style };\n }, [props.className, props.style, isShowPlaceholder, props.genre, props.size]);\n\n const { className: classNamePopover, style: stylePopover } = useMemo(() => {\n const className = setClasses([props.classNamePopover]);\n\n const vars: Record<string, string> = {};\n\n vars[CSS_VARS_RAW.component.datePicker.dayRadius] = `${sizeRadius}px`;\n\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundRest] = CSS_VARS.genre.datepicker[props.genre].background.index;\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundHover] =\n CSS_VARS.genre.datepicker[props.genre].background.hover;\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundWeekend] =\n CSS_VARS.genre.datepicker[props.genre].background.weekend;\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundToday] =\n CSS_VARS.genre.datepicker[props.genre].background.today;\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundChoice] =\n CSS_VARS.genre.datepicker[props.genre].background.choice;\n\n vars[CSS_VARS_RAW.component.datePicker.dayBorderRest] = CSS_VARS.genre.datepicker[props.genre].border.index;\n vars[CSS_VARS_RAW.component.datePicker.dayBorderWeekend] = CSS_VARS.genre.datepicker[props.genre].border.weekend;\n vars[CSS_VARS_RAW.component.datePicker.dayBorderToday] = CSS_VARS.genre.datepicker[props.genre].border.today;\n vars[CSS_VARS_RAW.component.datePicker.dayBorderChoice] = CSS_VARS.genre.datepicker[props.genre].border.choice;\n vars[CSS_VARS_RAW.component.datePicker.dayBorderHover] = CSS_VARS.genre.datepicker[props.genre].border.hover;\n\n vars[CSS_VARS_RAW.component.datePicker.dayColorRest] = CSS_VARS.genre.datepicker[props.genre].color.index;\n vars[CSS_VARS_RAW.component.datePicker.dayColorHover] = CSS_VARS.genre.datepicker[props.genre].color.hover;\n vars[CSS_VARS_RAW.component.datePicker.dayColorWeekend] = CSS_VARS.genre.datepicker[props.genre].color.weekend;\n vars[CSS_VARS_RAW.component.datePicker.dayColorToday] = CSS_VARS.genre.datepicker[props.genre].color.today;\n vars[CSS_VARS_RAW.component.datePicker.dayColorChoice] = CSS_VARS.genre.datepicker[props.genre].color.choice;\n\n const style = setStyles([\n Object.keys(vars).length ? vars : undefined,\n {\n background: CSS_VARS.genre.popover[props.genre].background,\n border: `solid 1px ${CSS_VARS.genre.input[props.genre].border}`,\n },\n props.stylePopover,\n ]);\n\n return { className, style };\n }, [props.classNamePopover, props.stylePopover, props.genre, sizeRadius]);\n\n const isShowButtonList = useMemo(() => {\n return (\n type !== 'manual' ||\n (props.isShowClearButton && (isHasValue || isHasInput) && !props?.isDisabled && !props?.isReadOnly)\n );\n }, [type, isHasInput, isHasValue, props.isShowClearButton, props?.isDisabled, props?.isReadOnly]);\n return (\n <>\n <div className={classNameWrapper} style={styleWrapper} tabIndex={-1}>\n <div\n ref={refReference as RefObject<HTMLDivElement | null>}\n tabIndex={-1}\n onClick={() => {\n if (type === 'select') {\n toggle();\n return;\n }\n if (!activeSegment && !props?.isReadOnly) setActiveSegment(DatePickerVariant.DD);\n }}\n className={setClasses([\n CSS_CLASS.component.datePicker.inputWrapper,\n CSS_CLASS.transition.color,\n CSS_CLASS.control[\n props.isDisabled\n ? 'none'\n : (props.control ?? (isOpen || activeSegment ? 'boxShadowSelect' : 'boxShadowOnlyHover'))\n ],\n ])}\n >\n {type !== 'select' ? (\n <input\n name={props.name}\n aria-label={props.ariaLabel ?? props.name}\n autoComplete={props.autoComplete}\n id={props.id}\n ref={refHiddenInput}\n type='tel'\n inputMode='numeric'\n tabIndex={0}\n disabled={props?.isDisabled || props?.isReadOnly}\n style={{\n position: 'absolute',\n left: '-100dvw',\n top: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n border: 'none',\n background: 'transparent',\n }}\n onKeyDown={onKeyDown}\n onChange={onChangeInput}\n onFocus={onFocusInput}\n onBlur={onBlurInput}\n />\n ) : null}\n {isShowPlaceholder ? (\n <Typography\n sx={{ size: 16, line: 1, isNoUserSelect: true }}\n style={{\n color: CSS_VARS.genre.input[props.genre].placeholder,\n }}\n >\n {props.labelPlaceholder}\n </Typography>\n ) : (\n dataDate.sort.map((date, index) => (\n <Fragment key={date.type}>\n <div\n className={setClasses([\n CSS_CLASS.component.datePicker.inputSegment,\n CSS_CLASS.transition.color,\n classNameTypography,\n !!date.value && CSS_CLASS.component.datePicker.inputSegmentHasValue,\n activeSegment === date.type && CSS_CLASS.component.datePicker.inputSegmentIsActive,\n ])}\n style={styleTypography}\n onClick={(e) => {\n if (type === 'select') return;\n e.preventDefault();\n e.stopPropagation();\n if (props?.isDisabled || props?.isReadOnly) return;\n date.setActive();\n }}\n >\n {date.value || date.placeholder || ''}\n </div>\n {index !== dataDate.sort.length - 1 && (\n <span style={{ width: '4px', pointerEvents: 'none', textAlign: 'center' }}>.</span>\n )}\n </Fragment>\n ))\n )}\n {isShowButtonList ? (\n <div className={setClasses([CSS_CLASS.component.datePicker.listButton])}>\n {props.isShowClearButton && (isHasValue || isHasInput) && !props?.isDisabled && !props?.isReadOnly ? (\n <Button\n genre={props.genre}\n size='small'\n isWidthAsHeight\n isFullRadius\n isFullSize\n isHiddenBorder\n isOnlyIcon\n tabIndex={0}\n icons={[{ name: 'Close', 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 onChange(null);\n onClearInput();\n setIsError(false);\n }}\n />\n ) : null}\n {type !== 'manual' ? (\n <Button\n genre={props.genre}\n size='small'\n isWidthAsHeight\n isFullRadius\n isFullSize\n isHiddenBorder\n isOnlyIcon\n icons={[{ name: 'Calendar', type: 'id' }]}\n isDisabled={props?.isDisabled || props?.isReadOnly}\n tabIndex={0}\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 ) : null}\n </div>\n ) : null}\n </div>\n </div>\n <Popover\n style={stylePopover}\n className={classNamePopover}\n size={props.size}\n genre={props.genre}\n isOpen={isOpen}\n floatingStyles={floatingStyles}\n ref={refFloating}\n control='boxShadowSelect'\n isDisabledBoxShadow\n >\n <div className={setClasses([CSS_CLASS.component.datePicker.dropdownList])}>\n <Stack\n style={{\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <Button\n type='button'\n isFullRadius\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={() => onPrevMonth()}\n isHidden={isBlockPrevMonth}\n isDisabled={isBlockPrevMonth}\n />\n <Stack style={{ gap: '8px' }}>\n <SelectMonth\n isToggleWhenClickSelectListOption\n monthsLocale={props.locale.months}\n genre={props.genre}\n size={'small'}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('month').utc().valueOf()}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n isShortLabel\n refFloating={refSelectMonth}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n }}\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n style={{ width: '60px' }}\n />\n <SelectYear\n isToggleWhenClickSelectListOption\n genre={props.genre}\n size={'small'}\n refFloating={refSelectYear}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('year').utc().valueOf()}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n }}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n style={{ width: '60px' }}\n />\n </Stack>\n <Button\n type='button'\n onClick={() => onNextMonth()}\n isWidthAsHeight\n isFullRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: -90,\n },\n ]}\n genre={props.genre}\n size={'small'}\n isDisabled={isBlockNextMonth}\n isHidden={isBlockNextMonth}\n />\n </Stack>\n <div\n className={setClasses([CSS_CLASS.component.datePicker.dropdownListDays])}\n style={setStyles([\n {\n [CSS_VARS_RAW.component.datePicker.rows]: rows,\n },\n ])}\n >\n {daysInWeek.map((e, index) => (\n <div\n className={setClasses([\n CSS_CLASS.component.datePicker.dayOfWeek,\n classNameTypographyDay,\n CSS_CLASS.transition.color,\n ])}\n style={setStyles([\n styleTypographyDay,\n {\n [CSS_VARS_RAW.component.datePicker.row]: daysInMonth[0]?.weekOfMonth - 1,\n [CSS_VARS_RAW.component.datePicker.column]: index + 1,\n },\n ])}\n tabIndex={-1}\n key={`${e.label}-${index}`}\n >\n {e.label}\n </div>\n ))}\n {daysInMonth.map((day) => (\n <div\n className={setClasses([\n CSS_CLASS.component.datePicker.day,\n classNameTypographyDay,\n CSS_CLASS.control[day.isDisabled || day.isChoice ? 'none' : 'boxShadow'],\n CSS_CLASS.transition.color,\n day.isDisabled && CSS_CLASS.component.datePicker.dayIsHidden,\n day.isToday && CSS_CLASS.component.datePicker.dayIsToday,\n day.isWeekend && CSS_CLASS.component.datePicker.dayIsWeekend,\n day.isChoice && CSS_CLASS.component.datePicker.dayIsChoice,\n !day.isCurrentMonth && CSS_CLASS.component.datePicker.dayIsNotCurrentMonth,\n ])}\n style={setStyles([\n styleTypographyDay,\n {\n [CSS_VARS_RAW.component.datePicker.row]: day?.weekOfMonth + 1,\n [CSS_VARS_RAW.component.datePicker.column]: day.dayOfWeek,\n },\n ])}\n key={day.value}\n onClick={() => {\n if (!day.isDisabled) {\n onChangeDate(day.value, true);\n if (props.isOnClickClose) {\n close();\n }\n }\n }}\n tabIndex={day.isDisabled ? -1 : 0}\n >\n {day.labelNumber}\n </div>\n ))}\n </div>\n </div>\n </Popover>\n {(props?.error?.isError || isError) && (\n <ErrorMessage\n size={props?.error?.size ?? props.size}\n sxTypography={{ size: 16, weight: '400', ...props?.error?.sxTypography }}\n {...props.error}\n />\n )}\n </>\n );\n};\n\nconst ISO_DATE_REGEX = /^\\d{4}-\\d{2}-\\d{2}$/;\nconst SLASH_DATE_REGEX = /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/;\n\nfunction getDigitKey(\n key: string,\n activeSegment: DatePickerVariant,\n input: Record<DatePickerVariant, string>,\n dataDate: { default: Record<DatePickerVariant, { setValue: (value: string) => void; onNextSegment: () => void }> },\n) {\n const digit = key; // '0'..'9'\n const seg = activeSegment;\n const current = input[seg] ?? ''; // Теперь это уже строка\n\n if (seg === DatePickerVariant.DD) {\n // Дни: максимум 31\n if (current.length >= 2) {\n // уже два символа — начинаем ввод заново\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (current === '') {\n // первый символ\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // есть один символ, добавляем второй\n const potential = current + digit;\n const potentialNum = Number(potential);\n\n if (potentialNum > 31) {\n // если получается больше 31, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (potentialNum === 0) {\n // если получается 00, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // нормальная комбинация\n dataDate.default[seg].setValue(potential);\n dataDate.default[seg].onNextSegment();\n // const newInput = { ...input, [seg]: potential };\n // onNextSegment?.(newInput);\n } else if (seg === DatePickerVariant.MM) {\n // Месяцы: максимум 12\n if (current.length >= 2) {\n // уже два символа — начинаем ввод заново\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (current === '') {\n // первый символ\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // есть один символ, добавляем второй\n const potential = current + digit;\n const potentialNum = Number(potential);\n\n if (potentialNum > 12) {\n // если получается больше 12, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (potentialNum === 0) {\n // если получается 00, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // нормальная комбинация\n dataDate.default[seg].setValue(potential);\n if (potential.length === 2 || (potential.length === 1 && Number(potential) > 1)) {\n dataDate.default[seg].onNextSegment();\n // const newInput = { ...input, [seg]: potential };\n // onNextSegment?.(newInput);\n }\n } else if (seg === DatePickerVariant.YYYY) {\n // Год: накапливаем до 4 цифр\n if (current.length >= 4) {\n // уже четыре символа — начинаем ввод заново\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // добавляем цифру\n const nextValue = current + digit;\n dataDate.default[seg].setValue(nextValue);\n }\n}\n\nfunction getParseDateString(value: string) {\n // 1. ISO формат (YYYY-MM-DD)\n if (ISO_DATE_REGEX.test(value)) {\n const [year, month, day] = value.split('-').map(Number);\n return getValidateDate(year, month, day);\n }\n\n // 2. Локализованный формат (M/D/YYYY или D/M/YYYY)\n const match = SLASH_DATE_REGEX.exec(value);\n if (match) {\n const [_, p1, p2, p3] = match;\n const num1 = Number(p1);\n const num2 = Number(p2);\n const year = Number(p3);\n\n // Определяем порядок\n // Если num1 > 12 → значит это день (D/M/YYYY)\n let month: number;\n let day: number;\n\n if (num1 > 12) {\n day = num1;\n month = num2;\n } else {\n // По умолчанию считаем M/D/YYYY\n month = num1;\n day = num2;\n }\n\n return getValidateDate(year, month, day);\n }\n\n return null;\n}\n\nfunction getValidateDate(year: number, month: number, day: number) {\n const date = new Date(year, month - 1, day);\n if (date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day) {\n return { year, month, day };\n }\n return null;\n}\n\nfunction getCountSevens(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\nfunction getNextSegment(currentSegment: DatePickerVariant, mode: IDatePickerMode): DatePickerVariant | null {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex < mode.length - 1 ? mode[currentIndex + 1] : mode[0];\n}\n\nfunction getPrevSegment(currentSegment: DatePickerVariant, mode: IDatePickerMode): DatePickerVariant | null {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex > 0 ? mode[currentIndex - 1] : mode[mode.length - 1];\n}\n\nfunction getValidateInput(\n input: Record<DatePickerVariant, string>,\n onSuccess?: (value: number) => void,\n onFailure?: () => void,\n onNan?: (isHasInput: boolean) => void,\n) {\n const dayStr = input.DD;\n const monthStr = input.MM;\n const yearStr = input.YYYY;\n\n const day = dayStr === '' ? NaN : Number(dayStr);\n const month = monthStr === '' ? NaN : Number(monthStr);\n const year = yearStr === '' ? NaN : Number(yearStr);\n\n const isHasInput = dayStr !== '' || monthStr !== '' || yearStr !== '';\n\n if (!Number.isNaN(day) && !Number.isNaN(month) && !Number.isNaN(year)) {\n const m = moment.utc(`${day}.${month}.${year}`, 'D.M.YYYY', true).startOf('day');\n if (m.isValid()) {\n onSuccess?.(m.valueOf());\n } else {\n onFailure?.();\n }\n } else {\n onNan?.(isHasInput);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"date-picker-CPNNIEa-.cjs","names":[],"sources":["../src/components/date-picker/component.types.ts","../src/components/date-picker/component.tsx"],"sourcesContent":["import { IErrorMessage } from '@local/components/error';\nimport { ISelectMonth } from '@local/components/select';\nimport { ITypography } from '@local/styles/utils';\nimport { IThemeControl, IThemeGenreDatePicker, IThemeSize } from '@local/styles/utils/types';\n\nimport { CSSProperties, HTMLInputAutoCompleteAttribute } from 'react';\n\nexport type IDatePickerMode = DatePickerVariant[];\n\nexport enum DatePickerVariant {\n DD = 'DD',\n MM = 'MM',\n YYYY = 'YYYY',\n}\n\nexport type IDatePickerType = 'manual' | 'select' | 'manualAndSelect';\n\nexport type IDatePickerCommon = {\n className?: string;\n style?: CSSProperties;\n\n classNamePopover?: string;\n stylePopover?: CSSProperties;\n\n sxTypography?: ITypography;\n control?: IThemeControl;\n error?: IErrorMessage;\n\n genre: IThemeGenreDatePicker;\n\n id?: string;\n\n isNiceNumber?: boolean;\n isReadOnly?: boolean;\n isDisabled?: boolean;\n isBold?: boolean;\n isMinWidth?: boolean;\n isShowClearButton?: boolean;\n isOnClickClose?: boolean;\n\n labelPlaceholder?: string;\n\n locale: {\n months: ISelectMonth['monthsLocale'];\n weeks: IDatePickerTranslateWeek[];\n inputs: IDatePickerTranslateInput;\n };\n\n notValidDate?: Omit<IErrorMessage, 'size' | 'isError'>;\n\n mode?: IDatePickerMode;\n\n type?: IDatePickerType;\n\n name?: string;\n\n ariaLabel?: string;\n\n autoComplete?: HTMLInputAutoCompleteAttribute | string;\n\n onBlur?: () => void;\n\n onChange: (timestamp: number | null) => void;\n\n onFocus?: () => void;\n\n size: IThemeSize;\n\n dateMax?: number;\n\n dateMin?: number;\n\n dateDefault: number;\n};\n\ntype IDatePickerControlledValue = {\n value: number | null | undefined;\n\n defaultValue?: never;\n};\n\ntype IDatePickerUncontrolledValue = {\n defaultValue: number | null | undefined;\n\n value?: never;\n};\nexport type IDatePicker = IDatePickerCommon & (IDatePickerControlledValue | IDatePickerUncontrolledValue);\n\nexport interface IDatePickerDay {\n dayOfWeek: number;\n\n isCurrentMonth: boolean;\n\n isDisabled: boolean;\n\n isChoice: 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 IDatePickerTranslateMonth = {\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 IDatePickerTranslateWeek = {\n localeLong: string;\n\n localeShort: string;\n\n value: 'mo' | 'tu' | 'we' | 'th' | 'fr' | 'sa' | 'su';\n};\nexport type IDatePickerTranslateInput = {\n day: string;\n\n month: string;\n\n year: string;\n};\n","/** biome-ignore-all lint/a11y/useKeyWithClickEvents: <explanation> */\nimport { Button } from '@local/components/button';\nimport { ErrorMessage } from '@local/components/error';\nimport { Popover, usePopover } from '@local/components/popover';\nimport { SelectMonth, SelectYear } from '@local/components/select';\nimport { Stack } from '@local/components/stack';\nimport { Typography } from '@local/components/typography';\nimport { useTypographyStyles } from '@local/hooks/use-typography-styles';\nimport { CSS_CLASS, CSS_VARS, CSS_VARS_RAW, EXTRA_VALUE } from '@local/styles/utils';\nimport { setClasses, setStyles } from '@local/styles/utils/functions';\n\nimport moment, { Moment } from 'moment';\nimport {\n ChangeEvent,\n Fragment,\n KeyboardEvent,\n RefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport {\n DatePickerVariant,\n IDatePicker,\n IDatePickerDay,\n IDatePickerMode,\n IDatePickerTranslateWeek,\n IDatePickerType,\n} from './component.types';\n\nconst weekOrder: IDatePickerTranslateWeek['value'][] = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'];\n\nexport const DatePicker = (props: IDatePicker) => {\n const { onChange } = props;\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, string>>({\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n });\n\n useEffect(() => {\n refInputValue.current = input;\n }, [input]);\n\n const isHasInput = useMemo(\n () =>\n input[DatePickerVariant.DD] !== '' || input[DatePickerVariant.MM] !== '' || input[DatePickerVariant.YYYY] !== '',\n [input],\n );\n\n const onClearInput = useCallback(() => {\n setInput({\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n });\n }, []);\n\n const [activeSegment, setActiveSegment] = useState<DatePickerVariant | null>(null);\n const [isError, setIsError] = useState(false);\n\n const mode: IDatePickerMode = 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 type: IDatePickerType = useMemo(() => {\n if (!props.type) {\n return 'manualAndSelect';\n }\n\n return props.type;\n }, [props.type]);\n\n const dataDate = useMemo(() => {\n const segments = [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY];\n\n const result = Object.fromEntries(\n segments.map((segment) => [\n segment,\n {\n type: segment,\n value: input[segment],\n placeholder:\n props.locale.inputs[\n segment === DatePickerVariant.DD ? 'day' : segment === DatePickerVariant.MM ? 'month' : 'year'\n ],\n isFirst: mode[0] === segment,\n isLast: mode[mode.length - 1] === segment,\n segmentNext: getNextSegment(segment, mode),\n segmentPrev: getPrevSegment(segment, mode),\n onNextSegment: () => setActiveSegment(getNextSegment(segment, mode)),\n onPrevSegment: () => setActiveSegment(getPrevSegment(segment, mode)),\n setValue: (value: string) => setInput((prev) => ({ ...prev, [segment]: value })),\n setActive: () => setActiveSegment(segment),\n },\n ]),\n ) as Record<\n DatePickerVariant,\n {\n type: DatePickerVariant;\n value: string;\n placeholder: string;\n isFirst: boolean;\n isLast: boolean;\n segmentNext: DatePickerVariant | null;\n segmentPrev: DatePickerVariant | null;\n onNextSegment: () => void;\n onPrevSegment: () => void;\n setValue: (value: string) => void;\n setActive: () => void;\n }\n >;\n\n const resultSort = mode.map((segment) => result[segment]).filter(Boolean);\n\n return { sort: resultSort, default: result };\n }, [props, mode, input]);\n\n const daysInWeek = useMemo(() => {\n return weekOrder.map((key, index) => {\n const found = props.locale.weeks.find((w) => w.value === key);\n return {\n index,\n label: found?.localeShort ?? key.toUpperCase(),\n };\n });\n }, [props.locale.weeks]);\n\n const daysInMonth: IDatePickerDay[] = useMemo(() => {\n const dateToday = moment.utc();\n const dateValue = valueMoment ?? dateDefaultMoment;\n const dateStartOfMonth = dateValue.clone().startOf('month');\n const dateEndOfMonth = dateValue.clone().endOf('month');\n const dateMin = props.dateMin ? moment.utc(props.dateMin) : null;\n const dateMax = props.dateMax ? moment.utc(props.dateMax) : null;\n\n const dateVisibleDayFirst = dateStartOfMonth.clone().subtract(dateStartOfMonth.isoWeekday() - 1, 'days');\n const dateVisibleDayLast = dateEndOfMonth.clone().add(7 - dateEndOfMonth.isoWeekday(), 'days');\n\n const result: IDatePickerDay[] = [];\n const dateCurrent = dateVisibleDayFirst.clone();\n\n while (dateCurrent <= dateVisibleDayLast) {\n const isCurrentMonth = dateCurrent.isBetween(dateStartOfMonth, dateEndOfMonth, 'day', '[]');\n result.push({\n value: dateCurrent.valueOf(),\n labelString: dateCurrent.format('dd'),\n labelNumber: dateCurrent.date(),\n dayOfWeek: dateCurrent.isoWeekday(),\n isWeekend: [6, 7].includes(dateCurrent.isoWeekday()),\n weekOfMonth: Math.ceil((result.length + 1) / 7),\n isToday: dateCurrent.isSame(dateToday, 'day'),\n isCurrentMonth,\n isChoice: dateCurrent.valueOf() === valueMoment?.valueOf(),\n isDisabled: !!(\n (dateMin && dateCurrent.isBefore(dateMin, 'day')) ||\n (dateMax && dateCurrent.isAfter(dateMax, 'day'))\n ),\n });\n\n dateCurrent.add(1, 'day');\n }\n\n return result;\n }, [valueMoment, dateDefaultMoment, props.dateMax, props.dateMin]);\n\n const rows = useMemo(() => getCountSevens(daysInMonth.length) + 1, [daysInMonth]);\n\n const sizeRadius = useMemo(() => CSS_VARS.sizeValue[props.size].radius, [props.size]);\n const sizePadding = useMemo(() => CSS_VARS.sizeValue[props.size].padding, [props.size]);\n\n // const height = useMemo(() => 40 + rows * 28 + (rows - 1) * 6 + sizePadding * 2, [sizePadding, rows]);\n\n const isHasValue = useMemo(() => valueMoment !== null, [valueMoment]);\n\n const isBlockNextMonth = useMemo(() => {\n const nextMonth = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month').startOf('month');\n const isBeforeEndDate = props.dateMax ? nextMonth.isAfter(moment.utc(props.dateMax), 'month') : false;\n return isBeforeEndDate;\n }, [valueMoment, props.dateMax, dateDefaultMoment]);\n\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 refInputValue = useRef(input);\n const refIsHasValueOnce = useRef(false);\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\n const { isOpen, refReference, refFloating, floatingStyles, close, toggle } = usePopover({\n isFocusTrap: true,\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 !!(\n !isInputFocused &&\n !isHasValue &&\n props.labelPlaceholder &&\n (type !== 'select' ? !isOpen : true) &&\n !isHasInput &&\n !activeSegment\n );\n }, [isInputFocused, isHasValue, isOpen, props.labelPlaceholder, isHasInput, activeSegment, type]);\n\n const onChangeDate = useCallback(\n (timestamp: number, isAddLeadingZeros: boolean, input?: Record<DatePickerVariant, string>) => {\n const momentNewDate = moment(timestamp).utc();\n\n const dd = momentNewDate.clone().date().toString();\n const mm = (momentNewDate.clone().month() + 1).toString();\n\n const ddWithZero = dd.padStart(2, '0');\n const mmWithZero = mm.padStart(2, '0');\n\n const yyyy = momentNewDate.clone().year().toString();\n const ddInput = input?.[DatePickerVariant.DD];\n const mmInput = input?.[DatePickerVariant.MM];\n const yyyyInput = input?.[DatePickerVariant.YYYY];\n\n const isSameInput = ddWithZero === ddInput && mmWithZero === mmInput && yyyyInput === yyyy;\n const isSameMoment = valueMoment?.isSame(momentNewDate, 'day');\n if (!isSameMoment) {\n setValueMoment(momentNewDate);\n onChange(momentNewDate.valueOf());\n }\n\n if (!isSameMoment || input ? !isSameInput : false) {\n setInput({\n [DatePickerVariant.DD]: isAddLeadingZeros ? ddWithZero : dd,\n [DatePickerVariant.MM]: isAddLeadingZeros ? mmWithZero : mm,\n [DatePickerVariant.YYYY]: yyyy,\n });\n }\n },\n [valueMoment, onChange],\n );\n\n const onKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n const key = e.key;\n\n const allowedKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Backspace', 'Delete', 'Tab', 'Enter'];\n\n const isDigit = /^\\d$/.test(key);\n const isAllowed = isDigit || allowedKeys.includes(key) || e.ctrlKey || e.metaKey;\n\n if (!isAllowed) {\n e.preventDefault();\n return;\n }\n\n if (activeSegment && dataDate.default[activeSegment]) {\n if (isDigit) {\n const digit = key;\n\n getDigitKey(digit, activeSegment, input, dataDate);\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Tab') {\n if (!dataDate.default[activeSegment].isLast) {\n e.preventDefault();\n dataDate.default[activeSegment].onNextSegment();\n } else {\n refHiddenInput?.current?.blur();\n }\n }\n if (key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Backspace' || key === 'Delete') {\n if (activeSegment === DatePickerVariant.DD) {\n if (input.DD !== '') {\n const current = input.DD;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n } else if (activeSegment === DatePickerVariant.MM) {\n if (input.MM !== '') {\n const current = input.MM;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n } else if (activeSegment === DatePickerVariant.YYYY) {\n if (input.YYYY !== '') {\n const current = input.YYYY;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n e.preventDefault();\n dataDate.default[activeSegment].onPrevSegment();\n }\n if (key === 'ArrowRight' || key === 'ArrowUp') {\n e.preventDefault();\n dataDate.default[activeSegment].onNextSegment();\n }\n }\n },\n [activeSegment, input, dataDate.default, dataDate],\n );\n\n const onNextMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onPrevMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onFocusInput = useCallback(() => {\n if (type === 'select') return;\n setIsInputFocused(true);\n if (!activeSegment) setActiveSegment(DatePickerVariant.DD);\n }, [activeSegment, type]);\n\n const onBlurInput = useCallback(() => {\n setIsInputFocused(false);\n\n if (!isOpen) {\n props.onBlur?.();\n }\n }, [isOpen, props.onBlur]);\n\n const onChangeInput = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value;\n\n const result = getParseDateString(value);\n\n if (result) {\n setInput({\n DD: String(result.day).padStart(2, '0'),\n MM: String(result.month).padStart(2, '0'),\n YYYY: String(result.year),\n });\n if (refHiddenInput.current) refHiddenInput.current.value = '';\n return;\n }\n\n const prevValue = refPrevValue.current;\n\n const newChar = value.length > prevValue.length ? value.slice(-1) : null;\n\n refPrevValue.current = value;\n\n if (newChar && /^\\d$/.test(newChar)) {\n onKeyDown({\n key: newChar,\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n if (value.length < prevValue.length) {\n onKeyDown({\n key: 'Backspace',\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n if (refHiddenInput.current) refHiddenInput.current.value = '';\n },\n [onKeyDown],\n );\n\n useEffect(() => {\n if (isHasValue && !refIsHasValueOnce.current) refIsHasValueOnce.current = true;\n }, [isHasValue]);\n\n useEffect(() => {\n setDateDefaultMoment(moment(props.dateDefault).utc());\n }, [props.dateDefault]);\n\n useEffect(() => {\n setValueMoment(props.value || props.defaultValue ? moment(props.value ?? props.defaultValue).utc() : null);\n if (props.value) {\n // При инициализации также форматируем в строки с ведущими нулями\n const m = moment(props.value).utc();\n setInput({\n [DatePickerVariant.DD]: m.date().toString().padStart(2, '0'),\n [DatePickerVariant.MM]: (m.month() + 1).toString().padStart(2, '0'),\n [DatePickerVariant.YYYY]: m.year().toString(),\n });\n }\n }, [props.value, props.defaultValue]);\n\n useEffect(() => {\n if (!activeSegment)\n getValidateInput(\n input,\n (value) => {\n onChangeDate(value, true, input);\n setIsError(false);\n },\n () => {\n onChange(null);\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n if (refIsHasValueOnce.current) {\n onChange(null);\n refIsHasValueOnce.current = false;\n }\n setIsError(false);\n }\n },\n );\n }, [onChangeDate, onChange, input, activeSegment]);\n\n useEffect(() => {\n if (!isOpen && !isInputFocused && isHasInput && !activeSegment)\n getValidateInput(\n input,\n () => {},\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n );\n }, [onClearInput, input, isOpen, isInputFocused, onChange, isHasInput, activeSegment]);\n\n useEffect(() => {\n if (!activeSegment) return;\n getValidateInput(\n refInputValue.current,\n (value) => {\n onChangeDate(value, true, refInputValue.current);\n setIsError(false);\n },\n () => {\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n setIsError(false);\n }\n },\n );\n }, [onChangeDate, activeSegment]);\n\n useEffect(() => {\n if (activeSegment) {\n close();\n refHiddenInput?.current?.focus();\n }\n }, [activeSegment, close]);\n\n const { className: classNameTypographyDay, style: styleTypographyDay } = useTypographyStyles({\n sx: {\n variant: EXTRA_VALUE.sizeToController.small,\n weight: '500',\n ...props?.sxTypography,\n },\n });\n\n const { className: classNameTypography, style: styleTypography } = useTypographyStyles({\n sx: {\n size: 16,\n weight: props.isBold ? '700' : '400',\n ...props?.sxTypography,\n },\n });\n\n const { className: classNameWrapper, style: styleWrapper } = useMemo(() => {\n const className = setClasses([CSS_CLASS.component.datePicker.wrapper, props.className]);\n\n const vars: Record<string, string> = {};\n\n vars[CSS_VARS_RAW.component.datePicker.padding] = CSS_VARS.size[props.size].padding;\n\n vars[CSS_VARS_RAW.component.datePicker.inputBackground] = CSS_VARS.genre.select[props.genre].background.index;\n vars[CSS_VARS_RAW.component.datePicker.inputBackgroundHover] = CSS_VARS.genre.input[props.genre].background;\n vars[CSS_VARS_RAW.component.datePicker.inputSegmentBackgroundActive] = CSS_VARS.palette.fillQuaternaryLight;\n\n vars[CSS_VARS_RAW.component.datePicker.inputBorderColor] = CSS_VARS.genre.input[props.genre].border;\n vars[CSS_VARS_RAW.component.datePicker.inputBorderColorHover] = CSS_VARS.genre.input[props.genre].border;\n\n vars[CSS_VARS_RAW.component.datePicker.inputColor] = CSS_VARS.genre.input[props.genre].color;\n vars[CSS_VARS_RAW.component.datePicker.inputColorHover] = CSS_VARS.genre.input[props.genre].color;\n\n vars[CSS_VARS_RAW.component.datePicker.inputPadding] = isShowPlaceholder\n ? `0px ${CSS_VARS.size[props.size].padding}`\n : `0px ${CSS_VARS.size[props.size].padding} 0px ${CSS_VARS.sizeValue[props.size].padding - 2}px`;\n vars[CSS_VARS_RAW.component.datePicker.inputHeight] = CSS_VARS.size[props.size].height;\n vars[CSS_VARS_RAW.component.datePicker.inputRadius] = CSS_VARS.size[props.size].radius;\n\n vars[CSS_VARS_RAW.component.datePicker.inputValueColor] = CSS_VARS.genre.input[props.genre].color;\n vars[CSS_VARS_RAW.component.datePicker.inputPlaceholderColor] = CSS_VARS.genre.input[props.genre].placeholder;\n vars[CSS_VARS_RAW.component.datePicker.buttonToggleRight] = `${CSS_VARS.size[props.size].padding}`;\n vars[CSS_VARS_RAW.component.datePicker.buttonClearRight] =\n `${CSS_VARS.sizeValue[props.size].padding * 2 + CSS_VARS.sizeValue[props.size].height}px`;\n\n const style = setStyles([Object.keys(vars).length ? vars : undefined, props.style]);\n\n return { className, style };\n }, [props.className, props.style, isShowPlaceholder, props.genre, props.size]);\n\n const { className: classNamePopover, style: stylePopover } = useMemo(() => {\n const className = setClasses([props.classNamePopover]);\n\n const vars: Record<string, string> = {};\n\n vars[CSS_VARS_RAW.component.datePicker.dayRadius] = `${sizeRadius}px`;\n\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundRest] = CSS_VARS.genre.datepicker[props.genre].background.index;\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundHover] =\n CSS_VARS.genre.datepicker[props.genre].background.hover;\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundWeekend] =\n CSS_VARS.genre.datepicker[props.genre].background.weekend;\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundToday] =\n CSS_VARS.genre.datepicker[props.genre].background.today;\n vars[CSS_VARS_RAW.component.datePicker.dayBackgroundChoice] =\n CSS_VARS.genre.datepicker[props.genre].background.choice;\n\n vars[CSS_VARS_RAW.component.datePicker.dayBorderRest] = CSS_VARS.genre.datepicker[props.genre].border.index;\n vars[CSS_VARS_RAW.component.datePicker.dayBorderWeekend] = CSS_VARS.genre.datepicker[props.genre].border.weekend;\n vars[CSS_VARS_RAW.component.datePicker.dayBorderToday] = CSS_VARS.genre.datepicker[props.genre].border.today;\n vars[CSS_VARS_RAW.component.datePicker.dayBorderChoice] = CSS_VARS.genre.datepicker[props.genre].border.choice;\n vars[CSS_VARS_RAW.component.datePicker.dayBorderHover] = CSS_VARS.genre.datepicker[props.genre].border.hover;\n\n vars[CSS_VARS_RAW.component.datePicker.dayColorRest] = CSS_VARS.genre.datepicker[props.genre].color.index;\n vars[CSS_VARS_RAW.component.datePicker.dayColorHover] = CSS_VARS.genre.datepicker[props.genre].color.hover;\n vars[CSS_VARS_RAW.component.datePicker.dayColorWeekend] = CSS_VARS.genre.datepicker[props.genre].color.weekend;\n vars[CSS_VARS_RAW.component.datePicker.dayColorToday] = CSS_VARS.genre.datepicker[props.genre].color.today;\n vars[CSS_VARS_RAW.component.datePicker.dayColorChoice] = CSS_VARS.genre.datepicker[props.genre].color.choice;\n\n const style = setStyles([\n Object.keys(vars).length ? vars : undefined,\n {\n background: CSS_VARS.genre.popover[props.genre].background,\n border: `solid 1px ${CSS_VARS.genre.input[props.genre].border}`,\n },\n props.stylePopover,\n ]);\n\n return { className, style };\n }, [props.classNamePopover, props.stylePopover, props.genre, sizeRadius]);\n\n const isShowButtonList = useMemo(() => {\n return (\n type !== 'manual' ||\n (props.isShowClearButton && (isHasValue || isHasInput) && !props?.isDisabled && !props?.isReadOnly)\n );\n }, [type, isHasInput, isHasValue, props.isShowClearButton, props?.isDisabled, props?.isReadOnly]);\n return (\n <>\n <div className={classNameWrapper} style={styleWrapper} tabIndex={-1}>\n <div\n ref={refReference as RefObject<HTMLDivElement | null>}\n tabIndex={-1}\n onClick={() => {\n if (type === 'select') {\n toggle();\n return;\n }\n if (!activeSegment && !props?.isReadOnly) setActiveSegment(DatePickerVariant.DD);\n }}\n className={setClasses([\n CSS_CLASS.component.datePicker.inputWrapper,\n CSS_CLASS.transition.color,\n CSS_CLASS.control[\n props.isDisabled\n ? 'none'\n : (props.control ?? (isOpen || activeSegment ? 'boxShadowSelect' : 'boxShadowOnlyHover'))\n ],\n ])}\n >\n {type !== 'select' ? (\n <input\n name={props.name}\n aria-label={props.ariaLabel ?? props.name}\n autoComplete={props.autoComplete}\n id={props.id}\n ref={refHiddenInput}\n type='tel'\n inputMode='numeric'\n tabIndex={0}\n disabled={props?.isDisabled || props?.isReadOnly}\n style={{\n position: 'absolute',\n left: '-100dvw',\n top: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n border: 'none',\n background: 'transparent',\n }}\n onKeyDown={onKeyDown}\n onChange={onChangeInput}\n onFocus={onFocusInput}\n onBlur={onBlurInput}\n />\n ) : null}\n {isShowPlaceholder ? (\n <Typography\n sx={{ size: 16, line: 1, isNoUserSelect: true }}\n style={{\n color: CSS_VARS.genre.input[props.genre].placeholder,\n }}\n >\n {props.labelPlaceholder}\n </Typography>\n ) : (\n dataDate.sort.map((date, index) => (\n <Fragment key={date.type}>\n <div\n className={setClasses([\n CSS_CLASS.component.datePicker.inputSegment,\n CSS_CLASS.transition.color,\n classNameTypography,\n !!date.value && CSS_CLASS.component.datePicker.inputSegmentHasValue,\n activeSegment === date.type && CSS_CLASS.component.datePicker.inputSegmentIsActive,\n ])}\n style={styleTypography}\n onClick={(e) => {\n if (type === 'select') return;\n e.preventDefault();\n e.stopPropagation();\n if (props?.isDisabled || props?.isReadOnly) return;\n date.setActive();\n }}\n >\n {date.value || date.placeholder || ''}\n </div>\n {index !== dataDate.sort.length - 1 && (\n <span style={{ width: '4px', pointerEvents: 'none', textAlign: 'center' }}>.</span>\n )}\n </Fragment>\n ))\n )}\n {isShowButtonList ? (\n <div className={setClasses([CSS_CLASS.component.datePicker.listButton])}>\n {props.isShowClearButton && (isHasValue || isHasInput) && !props?.isDisabled && !props?.isReadOnly ? (\n <Button\n genre={props.genre}\n size='small'\n isWidthAsHeight\n isFullRadius\n isFullSize\n isHiddenBorder\n isOnlyIcon\n tabIndex={0}\n icons={[{ name: 'Close', 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 onChange(null);\n onClearInput();\n setIsError(false);\n }}\n />\n ) : null}\n {type !== 'manual' ? (\n <Button\n genre={props.genre}\n size='small'\n isWidthAsHeight\n isFullRadius\n isFullSize\n isHiddenBorder\n isOnlyIcon\n icons={[{ name: 'Calendar', type: 'id' }]}\n isDisabled={props?.isDisabled || props?.isReadOnly}\n tabIndex={0}\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 ) : null}\n </div>\n ) : null}\n </div>\n </div>\n <Popover\n style={stylePopover}\n className={classNamePopover}\n size={props.size}\n genre={props.genre}\n isOpen={isOpen}\n floatingStyles={floatingStyles}\n ref={refFloating}\n control='boxShadowSelect'\n isDisabledBoxShadow\n >\n <div className={setClasses([CSS_CLASS.component.datePicker.dropdownList])}>\n <Stack\n style={{\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <Button\n type='button'\n isFullRadius\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={() => onPrevMonth()}\n isHidden={isBlockPrevMonth}\n isDisabled={isBlockPrevMonth}\n />\n <Stack style={{ gap: '8px' }}>\n <SelectMonth\n isToggleWhenClickSelectListOption\n monthsLocale={props.locale.months}\n genre={props.genre}\n size={'small'}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('month').utc().valueOf()}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n isShortLabel\n refFloating={refSelectMonth}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n }}\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n style={{ width: '60px' }}\n />\n <SelectYear\n isToggleWhenClickSelectListOption\n genre={props.genre}\n size={'small'}\n refFloating={refSelectYear}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('year').utc().valueOf()}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n }}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n style={{ width: '60px' }}\n />\n </Stack>\n <Button\n type='button'\n onClick={() => onNextMonth()}\n isWidthAsHeight\n isFullRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: -90,\n },\n ]}\n genre={props.genre}\n size={'small'}\n isDisabled={isBlockNextMonth}\n isHidden={isBlockNextMonth}\n />\n </Stack>\n <div\n className={setClasses([CSS_CLASS.component.datePicker.dropdownListDays])}\n style={setStyles([\n {\n [CSS_VARS_RAW.component.datePicker.rows]: rows,\n },\n ])}\n >\n {daysInWeek.map((e, index) => (\n <div\n className={setClasses([\n CSS_CLASS.component.datePicker.dayOfWeek,\n classNameTypographyDay,\n CSS_CLASS.transition.color,\n ])}\n style={setStyles([\n styleTypographyDay,\n {\n [CSS_VARS_RAW.component.datePicker.row]: daysInMonth[0]?.weekOfMonth - 1,\n [CSS_VARS_RAW.component.datePicker.column]: index + 1,\n },\n ])}\n tabIndex={-1}\n key={`${e.label}-${index}`}\n >\n {e.label}\n </div>\n ))}\n {daysInMonth.map((day) => (\n <div\n className={setClasses([\n CSS_CLASS.component.datePicker.day,\n classNameTypographyDay,\n CSS_CLASS.control[day.isDisabled || day.isChoice ? 'none' : 'boxShadow'],\n CSS_CLASS.transition.color,\n day.isDisabled && CSS_CLASS.component.datePicker.dayIsHidden,\n day.isToday && CSS_CLASS.component.datePicker.dayIsToday,\n day.isWeekend && CSS_CLASS.component.datePicker.dayIsWeekend,\n day.isChoice && CSS_CLASS.component.datePicker.dayIsChoice,\n !day.isCurrentMonth && CSS_CLASS.component.datePicker.dayIsNotCurrentMonth,\n ])}\n style={setStyles([\n styleTypographyDay,\n {\n [CSS_VARS_RAW.component.datePicker.row]: day?.weekOfMonth + 1,\n [CSS_VARS_RAW.component.datePicker.column]: day.dayOfWeek,\n },\n ])}\n key={day.value}\n onClick={() => {\n if (!day.isDisabled) {\n onChangeDate(day.value, true);\n if (props.isOnClickClose) {\n close();\n }\n }\n }}\n tabIndex={day.isDisabled ? -1 : 0}\n >\n {day.labelNumber}\n </div>\n ))}\n </div>\n </div>\n </Popover>\n {(props?.error?.isError || isError) && (\n <ErrorMessage\n size={props?.error?.size ?? props.size}\n sxTypography={{ size: 16, weight: '400', ...props?.error?.sxTypography }}\n {...props.error}\n />\n )}\n </>\n );\n};\n\nconst ISO_DATE_REGEX = /^\\d{4}-\\d{2}-\\d{2}$/;\nconst SLASH_DATE_REGEX = /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/;\n\nfunction getDigitKey(\n key: string,\n activeSegment: DatePickerVariant,\n input: Record<DatePickerVariant, string>,\n dataDate: { default: Record<DatePickerVariant, { setValue: (value: string) => void; onNextSegment: () => void }> },\n) {\n const digit = key; // '0'..'9'\n const seg = activeSegment;\n const current = input[seg] ?? ''; // Теперь это уже строка\n\n if (seg === DatePickerVariant.DD) {\n // Дни: максимум 31\n if (current.length >= 2) {\n // уже два символа — начинаем ввод заново\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (current === '') {\n // первый символ\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // есть один символ, добавляем второй\n const potential = current + digit;\n const potentialNum = Number(potential);\n\n if (potentialNum > 31) {\n // если получается больше 31, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (potentialNum === 0) {\n // если получается 00, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // нормальная комбинация\n dataDate.default[seg].setValue(potential);\n dataDate.default[seg].onNextSegment();\n // const newInput = { ...input, [seg]: potential };\n // onNextSegment?.(newInput);\n } else if (seg === DatePickerVariant.MM) {\n // Месяцы: максимум 12\n if (current.length >= 2) {\n // уже два символа — начинаем ввод заново\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (current === '') {\n // первый символ\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // есть один символ, добавляем второй\n const potential = current + digit;\n const potentialNum = Number(potential);\n\n if (potentialNum > 12) {\n // если получается больше 12, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (potentialNum === 0) {\n // если получается 00, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // нормальная комбинация\n dataDate.default[seg].setValue(potential);\n if (potential.length === 2 || (potential.length === 1 && Number(potential) > 1)) {\n dataDate.default[seg].onNextSegment();\n // const newInput = { ...input, [seg]: potential };\n // onNextSegment?.(newInput);\n }\n } else if (seg === DatePickerVariant.YYYY) {\n // Год: накапливаем до 4 цифр\n if (current.length >= 4) {\n // уже четыре символа — начинаем ввод заново\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // добавляем цифру\n const nextValue = current + digit;\n dataDate.default[seg].setValue(nextValue);\n }\n}\n\nfunction getParseDateString(value: string) {\n // 1. ISO формат (YYYY-MM-DD)\n if (ISO_DATE_REGEX.test(value)) {\n const [year, month, day] = value.split('-').map(Number);\n return getValidateDate(year, month, day);\n }\n\n // 2. Локализованный формат (M/D/YYYY или D/M/YYYY)\n const match = SLASH_DATE_REGEX.exec(value);\n if (match) {\n const [_, p1, p2, p3] = match;\n const num1 = Number(p1);\n const num2 = Number(p2);\n const year = Number(p3);\n\n // Определяем порядок\n // Если num1 > 12 → значит это день (D/M/YYYY)\n let month: number;\n let day: number;\n\n if (num1 > 12) {\n day = num1;\n month = num2;\n } else {\n // По умолчанию считаем M/D/YYYY\n month = num1;\n day = num2;\n }\n\n return getValidateDate(year, month, day);\n }\n\n return null;\n}\n\nfunction getValidateDate(year: number, month: number, day: number) {\n const date = new Date(year, month - 1, day);\n if (date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day) {\n return { year, month, day };\n }\n return null;\n}\n\nfunction getCountSevens(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\nfunction getNextSegment(currentSegment: DatePickerVariant, mode: IDatePickerMode): DatePickerVariant | null {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex < mode.length - 1 ? mode[currentIndex + 1] : mode[0];\n}\n\nfunction getPrevSegment(currentSegment: DatePickerVariant, mode: IDatePickerMode): DatePickerVariant | null {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex > 0 ? mode[currentIndex - 1] : mode[mode.length - 1];\n}\n\nfunction getValidateInput(\n input: Record<DatePickerVariant, string>,\n onSuccess?: (value: number) => void,\n onFailure?: () => void,\n onNan?: (isHasInput: boolean) => void,\n) {\n const dayStr = input.DD;\n const monthStr = input.MM;\n const yearStr = input.YYYY;\n\n const day = dayStr === '' ? NaN : Number(dayStr);\n const month = monthStr === '' ? NaN : Number(monthStr);\n const year = yearStr === '' ? NaN : Number(yearStr);\n\n const isHasInput = dayStr !== '' || monthStr !== '' || yearStr !== '';\n\n if (!Number.isNaN(day) && !Number.isNaN(month) && !Number.isNaN(year)) {\n const m = moment.utc(`${day}.${month}.${year}`, 'D.M.YYYY', true).startOf('day');\n if (m.isValid()) {\n onSuccess?.(m.valueOf());\n } else {\n onFailure?.();\n }\n } else {\n onNan?.(isHasInput);\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { i as s, n as h, r as o, t as Ee } from "./utils-Cona48dZ.js";
|
|
2
2
|
import { n as L, t as B } from "./functions-CLGf7hqw.js";
|
|
3
|
-
import { t as de } from "./component-
|
|
3
|
+
import { t as de } from "./component-BHyXT2-h.js";
|
|
4
4
|
import { useTypographyStyles as fe } from "./hooks-use-typography-styles.es.js";
|
|
5
|
-
import { t as G } from "./button-
|
|
6
|
-
import { t as Le } from "./error-
|
|
5
|
+
import { t as G } from "./button-BbGiFvok.js";
|
|
6
|
+
import { t as Le } from "./error-L2fvWcNv.js";
|
|
7
7
|
import { n as $e, t as _e } from "./popover-1k1MNFwv.js";
|
|
8
8
|
import { t as je } from "./typography-B2KioMfq.js";
|
|
9
|
-
import { a as w, i as Ke, n as Ue } from "./select-
|
|
9
|
+
import { a as w, i as Ke, n as Ue } from "./select-D7EyxR2l.js";
|
|
10
10
|
import "./component-stack.es.js";
|
|
11
11
|
import { Fragment as Xe, jsx as D, jsxs as A } from "react/jsx-runtime";
|
|
12
12
|
import { Fragment as Ge, useCallback as N, useEffect as R, useMemo as S, useRef as H, useState as E } from "react";
|
|
@@ -686,4 +686,4 @@ export {
|
|
|
686
686
|
gt as t
|
|
687
687
|
};
|
|
688
688
|
|
|
689
|
-
//# sourceMappingURL=date-picker-
|
|
689
|
+
//# sourceMappingURL=date-picker-Uuce_InW.js.map
|