@jenesei-software/jenesei-kit-react 1.3.26 → 1.3.27

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.
@@ -1,3 +1,3 @@
1
- version: 1.3.26
2
- commit: 037e66f
3
- date: 2025-09-19T17:34:33Z
1
+ version: 1.3.27
2
+ commit: be225df
3
+ date: 2025-09-19T17:56:49Z
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./component.types-BMh5sB6v.cjs"),e=require("./context.constants-B9vCuOqK.cjs");exports.DatePicker=t.DatePicker,exports.DatePickerVariant=t.DatePickerVariant,exports.DateDropdownDay=e.DateDropdownDay,exports.DateDropdownDayOfWeek=e.DateDropdownDayOfWeek,exports.DateDropdownDays=e.DateDropdownDays,exports.DateDropdownList=e.DateDropdownList,exports.DateDropdownListParent=e.DateDropdownListParent,exports.DateInput=e.DateInput,exports.DateInputButton=e.DateInputButton,exports.DateInputWrapper=e.DateInputWrapper,exports.DateWrapper=e.DateWrapper,exports.addDateDropdownDaySize=e.addDateDropdownDaySize,exports.addDateInputButtonSize=e.addDateInputButtonSize,exports.addDateInputWrapperSize=e.addDateInputWrapperSize;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./component.types-OChufSyJ.cjs"),e=require("./context.constants-B9vCuOqK.cjs");exports.DatePicker=t.DatePicker,exports.DatePickerVariant=t.DatePickerVariant,exports.DateDropdownDay=e.DateDropdownDay,exports.DateDropdownDayOfWeek=e.DateDropdownDayOfWeek,exports.DateDropdownDays=e.DateDropdownDays,exports.DateDropdownList=e.DateDropdownList,exports.DateDropdownListParent=e.DateDropdownListParent,exports.DateInput=e.DateInput,exports.DateInputButton=e.DateInputButton,exports.DateInputWrapper=e.DateInputWrapper,exports.DateWrapper=e.DateWrapper,exports.addDateDropdownDaySize=e.addDateDropdownDaySize,exports.addDateInputButtonSize=e.addDateInputButtonSize,exports.addDateInputWrapperSize=e.addDateInputWrapperSize;
2
2
  //# sourceMappingURL=component-date-picker.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { D, a } from "./component.types-DP9m5byW.js";
1
+ import { D, a } from "./component.types-CW5HNGvz.js";
2
2
  import { v, w, t, s, r, x, F, z, D as D2, u, E, y } from "./context.constants-rTgzRM3c.js";
3
3
  export {
4
4
  v as DateDropdownDay,
@@ -156,6 +156,10 @@ const DatePicker = (props) => {
156
156
  const isHasValue = useMemo(() => {
157
157
  return valueMoment !== null;
158
158
  }, [valueMoment]);
159
+ const refIsHasValueOnce = useRef(false);
160
+ useEffect(() => {
161
+ if (isHasValue && !refIsHasValueOnce.current) refIsHasValueOnce.current = true;
162
+ }, [isHasValue]);
159
163
  const isBlockNextMonth = useMemo(() => {
160
164
  const nextMonth = (valueMoment ?? dateDefaultMoment).clone().add(1, "month").startOf("month");
161
165
  const isBeforeEndDate = props.dateMax ? nextMonth.isAfter(moment.utc(props.dateMax), "month") : false;
@@ -342,7 +346,10 @@ const DatePicker = (props) => {
342
346
  },
343
347
  (isHasInput2) => {
344
348
  if (!isHasInput2) {
345
- onChange(null);
349
+ if (refIsHasValueOnce.current) {
350
+ onChange(null);
351
+ refIsHasValueOnce.current = false;
352
+ }
346
353
  setIsError(false);
347
354
  }
348
355
  }
@@ -816,4 +823,4 @@ export {
816
823
  DatePicker as D,
817
824
  DatePickerVariant as a
818
825
  };
819
- //# sourceMappingURL=component.types-DP9m5byW.js.map
826
+ //# sourceMappingURL=component.types-CW5HNGvz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.types-CW5HNGvz.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 // Изменяем тип с number | null на string\n const [input, setInput] = useState<Record<DatePickerVariant, string>>({\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n });\n const refInputValue = useRef(input);\n useEffect(() => {\n refInputValue.current = input;\n }, [input]);\n // Обновляем проверку на наличие input\n const isHasInput = useMemo(() => {\n return (\n input[DatePickerVariant.DD] !== '' || input[DatePickerVariant.MM] !== '' || input[DatePickerVariant.YYYY] !== ''\n );\n }, [input]);\n\n const onClearInput = useCallback(() => {\n setInput({\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n });\n }, []);\n\n const [activeSegment, setActiveSegment] = useState<DatePickerVariant | null>(null);\n const [isError, setIsError] = useState(false);\n\n const mode: DatePickerMode = useMemo(() => {\n if (!props.mode || props.mode.length === 0) {\n return [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY]; // дефолт\n }\n\n const hasDuplicates = new Set(props.mode).size !== props.mode.length;\n\n if (hasDuplicates) {\n return [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY]; // дефолт при дублировании\n }\n\n return props.mode;\n }, [props.mode]);\n\n const getNextSegment = useCallback(\n (currentSegment: DatePickerVariant): DatePickerVariant | null => {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex < mode.length - 1 ? mode[currentIndex + 1] : mode[0];\n },\n [mode],\n );\n\n const getPrevSegment = useCallback(\n (currentSegment: DatePickerVariant): DatePickerVariant | null => {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex > 0 ? mode[currentIndex - 1] : mode[mode.length - 1];\n },\n [mode],\n );\n\n // Обновляем функцию валидации для работы со строками\n const getValidateInput = useCallback(\n (\n input: Record<DatePickerVariant, string>,\n onSuccess?: (value: number) => void,\n onFailure?: () => void,\n onNan?: (isHasInput: boolean) => void,\n ) => {\n const dayStr = input.DD;\n const monthStr = input.MM;\n const yearStr = input.YYYY;\n\n const day = dayStr === '' ? NaN : Number(dayStr);\n const month = monthStr === '' ? NaN : Number(monthStr);\n const year = yearStr === '' ? NaN : Number(yearStr);\n\n const isHasInput = dayStr !== '' || monthStr !== '' || yearStr !== '';\n\n if (!Number.isNaN(day) && !Number.isNaN(month) && !Number.isNaN(year)) {\n const m = moment.utc(`${day}.${month}.${year}`, 'D.M.YYYY', true).startOf('day');\n if (m.isValid()) {\n onSuccess?.(m.valueOf());\n } else {\n onFailure?.();\n }\n } else {\n onNan?.(isHasInput);\n }\n },\n [],\n );\n\n const dataDate = useMemo(() => {\n const segments = [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY];\n\n const result = Object.fromEntries(\n segments.map((segment) => [\n segment,\n {\n type: segment,\n value: input[segment],\n placeholder:\n props.locale.inputs[\n segment === DatePickerVariant.DD ? 'day' : segment === DatePickerVariant.MM ? 'month' : 'year'\n ],\n isFirst: mode[0] === segment,\n isLast: mode[mode.length - 1] === segment,\n segmentNext: getNextSegment(segment),\n segmentPrev: getPrevSegment(segment),\n onNextSegment: () => setActiveSegment(getNextSegment(segment)),\n onPrevSegment: () => setActiveSegment(getPrevSegment(segment)),\n setValue: (value: string) => setInput((prev) => ({ ...prev, [segment]: value })),\n setActive: () => setActiveSegment(segment),\n },\n ]),\n ) as Record<\n DatePickerVariant,\n {\n type: DatePickerVariant;\n value: string;\n placeholder: string;\n isFirst: boolean;\n isLast: boolean;\n segmentNext: DatePickerVariant | null;\n segmentPrev: DatePickerVariant | null;\n onNextSegment: () => void;\n onPrevSegment: () => void;\n setValue: (value: string) => void;\n setActive: () => void;\n }\n >;\n\n const resultSort = mode.map((segment) => result[segment]).filter(Boolean);\n\n return { sort: resultSort, default: result };\n }, [props, getNextSegment, getPrevSegment, mode, input]);\n\n const daysInWeek = useMemo(() => {\n const weekOrder: WeekItem['value'][] = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'];\n\n return weekOrder.map((key, index) => {\n const found = props.locale.weeks.find((w) => w.value === key);\n return {\n index,\n label: found?.localeShort ?? key.toUpperCase(),\n };\n });\n }, [props.locale.weeks]);\n\n const daysInMonth: DateDayProps[] = useMemo(() => {\n const today = moment.utc();\n const baseMoment = valueMoment ?? dateDefaultMoment;\n const startOfMonth = baseMoment.clone().startOf('month');\n const endOfMonth = baseMoment.clone().endOf('month');\n\n const dateMin = props.dateMin ? moment.utc(props.dateMin) : null;\n const dateMax = props.dateMax ? moment.utc(props.dateMax) : null;\n\n // Определяем диапазон дат (с учетом дней до и после месяца)\n const firstVisibleDay = startOfMonth.clone().subtract(startOfMonth.isoWeekday() - 1, 'days');\n const lastVisibleDay = endOfMonth.clone().add(7 - endOfMonth.isoWeekday(), 'days');\n\n const days: DateDayProps[] = [];\n const currentDate = firstVisibleDay.clone();\n\n while (currentDate <= lastVisibleDay) {\n const isCurrentMonth = currentDate.isBetween(startOfMonth, endOfMonth, 'day', '[]');\n days.push({\n value: currentDate.valueOf(),\n labelString: currentDate.format('dd'),\n labelNumber: currentDate.date(),\n dayOfWeek: currentDate.isoWeekday(),\n isWeekend: [6, 7].includes(currentDate.isoWeekday()),\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: currentDate.isSame(today, 'day'),\n isCurrentMonth,\n isDisabled: !!(\n (dateMin && currentDate.isBefore(dateMin, 'day')) ||\n (dateMax && currentDate.isAfter(dateMax, 'day'))\n ),\n });\n\n currentDate.add(1, 'day');\n }\n\n return days;\n }, [valueMoment, dateDefaultMoment, props.dateMax, props.dateMin]);\n\n const rows = useMemo(() => countSevens(daysInMonth.length) + 1, [daysInMonth]);\n\n const height = useMemo(\n () => 40 + rows * 28 + (rows - 1) * 6 + KEY_SIZE_DATA[props.size].padding * 2,\n [props.size, rows],\n );\n\n const sizeRadius = useMemo(() => KEY_SIZE_DATA[props.size].radius, [props.size]);\n const sizePadding = useMemo(() => KEY_SIZE_DATA[props.size].padding, [props.size]);\n\n const isHasValue = useMemo(() => {\n return valueMoment !== null;\n }, [valueMoment]);\n\n const refIsHasValueOnce = useRef(false);\n\n useEffect(() => {\n if (isHasValue && !refIsHasValueOnce.current) refIsHasValueOnce.current = true;\n }, [isHasValue]);\n\n const isBlockNextMonth = useMemo(() => {\n const nextMonth = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month').startOf('month');\n const isBeforeEndDate = props.dateMax ? nextMonth.isAfter(moment.utc(props.dateMax), 'month') : false;\n return isBeforeEndDate;\n }, [valueMoment, props.dateMax, dateDefaultMoment]);\n const isBlockPrevMonth = useMemo(() => {\n const prevMonth = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month').startOf('month');\n const isAfterStartDate = props.dateMin ? prevMonth.isBefore(moment.utc(props.dateMin), 'month') : false;\n return isAfterStartDate;\n }, [valueMoment, props.dateMin, dateDefaultMoment]);\n\n const [isInputFocused, setIsInputFocused] = useState(false);\n\n const refPrevValue = useRef('');\n const refSelectMonth = useRef<HTMLElement>(null);\n const refSelectYear = useRef<HTMLElement>(null);\n const refHiddenInput = useRef<HTMLInputElement>(null);\n\n const onFocusPopover = useCallback(() => {\n props.onFocus?.();\n }, [props.onFocus]);\n const onBlurPopover = useCallback(() => {\n props.onBlur?.();\n }, [props.onBlur]);\n const onBlurReference = useCallback(() => {\n setActiveSegment(null);\n }, []);\n const { isOpen, refReference, refFloating, floatingStyles, close, toggle } = usePopover({\n placement: 'bottom-start',\n offset: sizePadding,\n mode: 'independence',\n isClickOutside: true,\n refsExcludeClickOutside: [refSelectMonth, refSelectYear],\n isDisabled: props?.isDisabled || props?.isReadOnly,\n onFocus: onFocusPopover,\n onBlur: onBlurPopover,\n onBlurReference: onBlurReference,\n });\n\n const isShowPlaceholder = useMemo(() => {\n return !!(!isInputFocused && !isHasValue && props.labelPlaceholder && !isOpen && !isHasInput && !activeSegment);\n }, [isInputFocused, isHasValue, isOpen, props.labelPlaceholder, isHasInput, activeSegment]);\n\n const onChangeDate = useCallback(\n (timestamp: number, isAddLeadingZeros: boolean, input?: Record<DatePickerVariant, string>) => {\n const momentNewDate = moment(timestamp).utc();\n\n const dd = momentNewDate.clone().date().toString();\n const mm = (momentNewDate.clone().month() + 1).toString();\n\n const ddWithZero = dd.padStart(2, '0');\n const mmWithZero = mm.padStart(2, '0');\n\n const yyyy = momentNewDate.clone().year().toString();\n const ddInput = input?.[DatePickerVariant.DD];\n const mmInput = input?.[DatePickerVariant.MM];\n const yyyyInput = input?.[DatePickerVariant.YYYY];\n\n const isSameInput = ddWithZero === ddInput && mmWithZero === mmInput && yyyyInput === yyyy;\n const isSameMoment = valueMoment?.isSame(momentNewDate, 'day');\n if (!isSameMoment) {\n setValueMoment(momentNewDate);\n onChange(momentNewDate.valueOf());\n }\n\n if (!isSameMoment || input ? !isSameInput : false) {\n setInput({\n [DatePickerVariant.DD]: isAddLeadingZeros ? ddWithZero : dd,\n [DatePickerVariant.MM]: isAddLeadingZeros ? mmWithZero : mm,\n [DatePickerVariant.YYYY]: yyyy,\n });\n }\n },\n [valueMoment, onChange],\n );\n\n // const onNextSegment = useCallback(\n // (\n // newInput: Record<DatePickerVariant, string>,\n // ) => {\n // if(newInput){\n // getValidateInput(\n // newInput,\n // (value) => {\n // onChangeDate(value, true);\n // setIsError(false);\n // },\n // () => {\n // setIsError(true);\n // },\n // () => {\n // setIsError(true);\n // },\n // );\n // }else{\n\n // }\n\n // },\n // [getValidateInput, onChangeDate],\n // );\n const onKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n const key = e.key;\n\n const allowedKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Backspace', 'Delete', 'Tab', 'Enter'];\n\n const isDigit = /^\\d$/.test(key);\n const isAllowed = isDigit || allowedKeys.includes(key) || e.ctrlKey || e.metaKey;\n\n if (!isAllowed) {\n e.preventDefault();\n return;\n }\n\n if (activeSegment && dataDate.default[activeSegment]) {\n if (isDigit) {\n const digit = key;\n\n handleDigitKey(digit, activeSegment, input, dataDate);\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Tab') {\n if (!dataDate.default[activeSegment].isLast) {\n e.preventDefault();\n dataDate.default[activeSegment].onNextSegment();\n } else {\n refHiddenInput?.current?.blur();\n }\n }\n if (key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Backspace' || key === 'Delete') {\n if (activeSegment === DatePickerVariant.DD) {\n if (input.DD !== '') {\n const current = input.DD;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n } else if (activeSegment === DatePickerVariant.MM) {\n if (input.MM !== '') {\n const current = input.MM;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n } else if (activeSegment === DatePickerVariant.YYYY) {\n if (input.YYYY !== '') {\n const current = input.YYYY;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n e.preventDefault();\n dataDate.default[activeSegment].onPrevSegment();\n }\n if (key === 'ArrowRight' || key === 'ArrowUp') {\n e.preventDefault();\n dataDate.default[activeSegment].onNextSegment();\n }\n }\n },\n [activeSegment, input, dataDate.default, dataDate],\n );\n const onNextMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onPrevMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n useEffect(() => {\n setDateDefaultMoment(moment(props.dateDefault).utc());\n }, [props.dateDefault]);\n\n useEffect(() => {\n setValueMoment(props.value || props.defaultValue ? moment(props.value ?? props.defaultValue).utc() : null);\n if (props.value) {\n // При инициализации также форматируем в строки с ведущими нулями\n const m = moment(props.value).utc();\n setInput({\n [DatePickerVariant.DD]: m.date().toString().padStart(2, '0'),\n [DatePickerVariant.MM]: (m.month() + 1).toString().padStart(2, '0'),\n [DatePickerVariant.YYYY]: m.year().toString(),\n });\n }\n }, [props.value, props.defaultValue]);\n\n useEffect(() => {\n if (!activeSegment)\n getValidateInput(\n input,\n (value) => {\n onChangeDate(value, true, input);\n setIsError(false);\n },\n () => {\n onChange(null);\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n if (refIsHasValueOnce.current) {\n onChange(null);\n refIsHasValueOnce.current = false;\n }\n setIsError(false);\n }\n },\n );\n }, [getValidateInput, onChangeDate, onChange, input, activeSegment]);\n\n useEffect(() => {\n if (!isOpen && !isInputFocused && isHasInput && !activeSegment)\n getValidateInput(\n input,\n () => {},\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n );\n }, [getValidateInput, onClearInput, input, isOpen, isInputFocused, onChange, isHasInput, activeSegment]);\n\n useEffect(() => {\n if (!activeSegment) return;\n getValidateInput(\n refInputValue.current,\n (value) => {\n onChangeDate(value, true, refInputValue.current);\n setIsError(false);\n },\n () => {\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n setIsError(false);\n }\n },\n );\n }, [onChangeDate, getValidateInput, activeSegment]);\n\n useEffect(() => {\n if (activeSegment) {\n close();\n refHiddenInput?.current?.focus();\n }\n }, [activeSegment, close]);\n return (\n <>\n <DateWrapper\n $size={props.size}\n $genre={props.genre}\n $sx={props.sx}\n $isDisabled={props?.isDisabled}\n $isMinWidth={props?.isMinWidth}\n $radius={sizeRadius}\n $parentListHeight={height}\n tabIndex={-1}\n >\n <DateInputWrapper\n ref={refReference as RefObject<HTMLDivElement | null>}\n $genre={props.genre}\n $size={props.size}\n $isShowPlaceholder={isShowPlaceholder}\n $isDisabled={props?.isDisabled}\n $isReadOnly={props?.isReadOnly}\n $isDisabledOutline={props?.isDisabledOutline}\n $isOutlineBoxShadow={props?.isOutlineBoxShadow}\n tabIndex={-1}\n $error={\n isError\n ? {\n isError: true,\n size: props?.error?.size ?? props.size,\n ...props.notValidDate,\n }\n : props.error\n }\n $isOpen={isOpen || !!activeSegment}\n onClick={() => {\n if (!activeSegment && !props?.isReadOnly) setActiveSegment(DatePickerVariant.DD);\n }}\n >\n <input\n name={props.name}\n id={props.id}\n ref={refHiddenInput}\n type='tel'\n inputMode='numeric'\n tabIndex={0}\n disabled={props?.isDisabled || props?.isReadOnly}\n style={{\n position: 'absolute',\n left: '-100dvw',\n top: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n border: 'none',\n background: 'transparent',\n }}\n onKeyDown={onKeyDown}\n onChange={(e) => {\n const value = e.target.value;\n const prevValue = refPrevValue.current;\n\n const newChar = value.length > prevValue.length ? value.slice(-1) : null;\n\n refPrevValue.current = value;\n\n if (newChar && /^\\d$/.test(newChar)) {\n onKeyDown({\n key: newChar,\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n if (value.length < prevValue.length) {\n onKeyDown({\n key: 'Backspace',\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n }}\n onFocus={() => {\n setIsInputFocused(true);\n if (!activeSegment) setActiveSegment(DatePickerVariant.DD);\n }}\n onBlur={() => {\n setIsInputFocused(false);\n\n if (!isOpen) {\n props.onBlur?.();\n }\n }}\n />\n {isShowPlaceholder ? (\n <Typography\n sx={{ default: { size: 16, line: 1, isNoUserSelect: true } }}\n sxStandard={(theme) => ({\n default: {\n color: theme.colors.input[props.genre].color.placeholder,\n },\n })}\n >\n {props.labelPlaceholder}\n </Typography>\n ) : (\n dataDate.sort.map((date, index) => (\n <Fragment key={date.type}>\n <DateInput\n $isHaveValue={!!date.value}\n $isActive={activeSegment === date.type}\n $genre={props.genre}\n $size={props.size}\n $font={{\n ...props.font,\n size: props.font?.size ?? 16,\n weight: props.font?.weight ?? (props.isBold ? 500 : 400),\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n if (props?.isDisabled || props?.isReadOnly) return;\n date.setActive();\n }}\n >\n {date.value || date.placeholder || ''}\n </DateInput>\n {index !== dataDate.sort.length - 1 && (\n <span style={{ width: '4px', pointerEvents: 'none', textAlign: 'center' }}>.</span>\n )}\n </Fragment>\n ))\n )}\n <DateInputButton\n genre={props.genre}\n size='small'\n isWidthAsHeight\n isFullSize\n isRadius\n isWhileTapEffect\n isOnlyIcon\n isDisabledRipple\n icons={[{ name: 'Calendar', type: 'id' }]}\n isDisabled={props?.isDisabled || props?.isReadOnly}\n onFocus={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setActiveSegment(null);\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n toggle();\n }}\n />\n </DateInputWrapper>\n </DateWrapper>\n <Popover\n sx={(theme) => ({\n default: {\n background: theme.colors.input[props.genre].background.rest,\n border: `solid 1px ${theme.colors.input[props.genre].border.rest}`,\n },\n })}\n size={props.size}\n genre={props.genre}\n isOpen={isOpen}\n isShowAlwaysOutline\n floatingStyles={floatingStyles}\n ref={refFloating}\n >\n <DateDropdownList $isInputEffect={props.isInputEffect} $genre={props.genre} $size={props.size}>\n <Stack\n sx={{\n default: {\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n }}\n >\n <Button\n type='button'\n isRadius\n isWhileTapEffect\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: 90,\n },\n ]}\n isWidthAsHeight\n genre={props.genre}\n size={'small'}\n onClick={() => !isBlockPrevMonth && onPrevMonth()}\n isDisabledRipple\n isHidden={isBlockPrevMonth}\n isDisabled={isBlockPrevMonth}\n />\n <Stack sx={{ default: { gap: '8px' } }}>\n <SelectMonth\n monthsLocale={props.locale.months}\n genre={props.genre}\n size={'small'}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('month').utc().valueOf()}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n isShortLabel\n refFloating={refSelectMonth}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n }}\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n sx={{ default: { width: '60px' } }}\n />\n <SelectYear\n genre={props.genre}\n size={'small'}\n refFloating={refSelectYear}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('year').utc().valueOf()}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n }}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n sx={{ default: { width: '60px' } }}\n />\n </Stack>\n <Button\n type='button'\n isWhileTapEffect\n onClick={() => !isBlockNextMonth && onNextMonth()}\n isWidthAsHeight\n isRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: -90,\n },\n ]}\n genre={props.genre}\n size={'small'}\n isDisabledRipple\n isDisabled={isBlockNextMonth}\n isHidden={isBlockNextMonth}\n />\n </Stack>\n <DateDropdownDays $rows={rows}>\n {daysInWeek.map((e, index) => (\n <DateDropdownDayOfWeek\n $font={{\n ...props.font,\n size: 12,\n weight: 700,\n }}\n tabIndex={-1}\n type='button'\n $isToday={false}\n $isWeekend={false}\n $genre={props.genre}\n $size={props.size}\n $row={daysInMonth[0]?.weekOfMonth - 1}\n $column={index + 1}\n key={`${e.label}-${index}`}\n >\n {e.label}\n </DateDropdownDayOfWeek>\n ))}\n {daysInMonth.map((day) => (\n <DateDropdownDay\n $font={{\n ...props.font,\n size: 12,\n weight: 700,\n }}\n type='button'\n $isDisabled={day.isDisabled}\n $isDisabledOutline={day.isDisabled ?? props.isDisabledOutline}\n $isOutlineBoxShadow={props.isOutlineBoxShadow}\n $isReadOnly={props.isReadOnly}\n $genre={props.genre}\n $size={props.size}\n $row={day?.weekOfMonth + 1}\n $column={day.dayOfWeek}\n key={day.value}\n onClick={() => {\n if (!day.isDisabled) {\n onChangeDate(day.value, true);\n if (props.isOnClickClose) {\n close();\n }\n }\n }}\n tabIndex={day.isDisabled ? -1 : 0}\n $isToday={day.isToday}\n $isWeekend={day.isWeekend}\n $isChoice={day.value === valueMoment?.valueOf()}\n $isCurrentMonth={day.isCurrentMonth}\n >\n <Ripple color={theme.colors.date[props.genre].color.rest} isDisabled={day.isDisabled} />\n {day.labelNumber}\n </DateDropdownDay>\n ))}\n </DateDropdownDays>\n </DateDropdownList>\n </Popover>\n {isError || props?.error ? (\n <ErrorMessage\n {...(isError\n ? {\n isError: true,\n size: props?.error?.size ?? props.size,\n ...props.notValidDate,\n }\n : props.error)}\n size={props?.error?.size ?? props.size}\n font={{\n size: 12,\n weight: 400,\n family: props.font?.family ?? theme.font.family,\n }}\n />\n ) : null}\n </>\n );\n};\n\nfunction handleDigitKey(\n key: string,\n activeSegment: DatePickerVariant,\n input: Record<DatePickerVariant, string>,\n dataDate: { default: Record<DatePickerVariant, { setValue: (value: string) => void; onNextSegment: () => void }> },\n // onNextSegment?: (newInput: Record<DatePickerVariant, string>) => 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","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":["input","isHasInput","_a","jsxs","Fragment","jsx","theme","_b","DatePickerVariant"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("./context.constants-B9vCuOqK.cjs");require("./component.styles-Dpg-__rn.cjs");const l=require("./component-CLqcB5mM.cjs"),n=require("./component-5Utdcc2G.cjs"),s=require("moment"),i=require("react"),a=require("styled-components");var o=(e=>(e.DD="DD",e.MM="MM",e.YYYY="YYYY",e))(o||{});exports.DatePicker=r=>{var u,d,c,f;const{onChange:p}=r,m=a.useTheme(),[x,g]=i.useState(null),[h,D]=i.useState(s(r.dateDefault).utc()),[v,b]=i.useState({[o.DD]:"",[o.MM]:"",[o.YYYY]:""}),M=i.useRef(v);i.useEffect(()=>{M.current=v},[v]);const y=i.useMemo(()=>""!==v[o.DD]||""!==v[o.MM]||""!==v[o.YYYY],[v]),Y=i.useCallback(()=>{b({[o.DD]:"",[o.MM]:"",[o.YYYY]:""})},[]),[O,S]=i.useState(null),[j,$]=i.useState(!1),k=i.useMemo(()=>{if(!r.mode||0===r.mode.length)return[o.DD,o.MM,o.YYYY];return new Set(r.mode).size!==r.mode.length?[o.DD,o.MM,o.YYYY]:r.mode},[r.mode]),E=i.useCallback(e=>{const t=k.indexOf(e);return t<k.length-1?k[t+1]:k[0]},[k]),R=i.useCallback(e=>{const t=k.indexOf(e);return t>0?k[t-1]:k[k.length-1]},[k]),w=i.useCallback((e,t,l,n)=>{const i=e.DD,a=e.MM,o=e.YYYY,r=""===i?NaN:Number(i),u=""===a?NaN:Number(a),d=""===o?NaN:Number(o),c=""!==i||""!==a||""!==o;if(Number.isNaN(r)||Number.isNaN(u)||Number.isNaN(d))null==n||n(c);else{const e=s.utc(`${r}.${u}.${d}`,"D.M.YYYY",!0).startOf("day");e.isValid()?null==t||t(e.valueOf()):null==l||l()}},[]),z=i.useMemo(()=>{const e=[o.DD,o.MM,o.YYYY],t=Object.fromEntries(e.map(e=>[e,{type:e,value:v[e],placeholder:r.locale.inputs[e===o.DD?"day":e===o.MM?"month":"year"],isFirst:k[0]===e,isLast:k[k.length-1]===e,segmentNext:E(e),segmentPrev:R(e),onNextSegment:()=>S(E(e)),onPrevSegment:()=>S(R(e)),setValue:t=>b(l=>({...l,[e]:t})),setActive:()=>S(e)}]));return{sort:k.map(e=>t[e]).filter(Boolean),default:t}},[r,E,R,k,v]),C=i.useMemo(()=>["mo","tu","we","th","fr","sa","su"].map((e,t)=>{const l=r.locale.weeks.find(t=>t.value===e);return{index:t,label:(null==l?void 0:l.localeShort)??e.toUpperCase()}}),[r.locale.weeks]),N=i.useMemo(()=>{const e=s.utc(),t=x??h,l=t.clone().startOf("month"),n=t.clone().endOf("month"),i=r.dateMin?s.utc(r.dateMin):null,a=r.dateMax?s.utc(r.dateMax):null,o=l.clone().subtract(l.isoWeekday()-1,"days"),u=n.clone().add(7-n.isoWeekday(),"days"),d=[],c=o.clone();for(;c<=u;){const t=c.isBetween(l,n,"day","[]");d.push({value:c.valueOf(),labelString:c.format("dd"),labelNumber:c.date(),dayOfWeek:c.isoWeekday(),isWeekend:[6,7].includes(c.isoWeekday()),weekOfMonth:Math.ceil((d.length+1)/7),isToday:c.isSame(e,"day"),isCurrentMonth:t,isDisabled:!!(i&&c.isBefore(i,"day")||a&&c.isAfter(a,"day"))}),c.add(1,"day")}return d},[x,h,r.dateMax,r.dateMin]),V=i.useMemo(()=>function(e){const t=Math.floor(e/7);return e%7>0?t+1:t}(N.length)+1,[N]),A=i.useMemo(()=>40+28*V+6*(V-1)+2*t.KEY_SIZE_DATA[r.size].padding,[r.size,V]),P=i.useMemo(()=>t.KEY_SIZE_DATA[r.size].radius,[r.size]),B=i.useMemo(()=>t.KEY_SIZE_DATA[r.size].padding,[r.size]),W=i.useMemo(()=>null!==x,[x]),I=i.useRef(!1);i.useEffect(()=>{W&&!I.current&&(I.current=!0)},[W]);const T=i.useMemo(()=>{const e=(x??h).clone().add(1,"month").startOf("month");return!!r.dateMax&&e.isAfter(s.utc(r.dateMax),"month")},[x,r.dateMax,h]),F=i.useMemo(()=>{const e=(x??h).clone().subtract(1,"month").startOf("month");return!!r.dateMin&&e.isBefore(s.utc(r.dateMin),"month")},[x,r.dateMin,h]),[L,q]=i.useState(!1),H=i.useRef(""),K=i.useRef(null),_=i.useRef(null),U=i.useRef(null),Z=i.useCallback(()=>{var e;null==(e=r.onFocus)||e.call(r)},[r.onFocus]),G=i.useCallback(()=>{var e;null==(e=r.onBlur)||e.call(r)},[r.onBlur]),J=i.useCallback(()=>{S(null)},[]),{isOpen:Q,refReference:X,refFloating:ee,floatingStyles:te,close:le,toggle:ne}=t.usePopover({placement:"bottom-start",offset:B,mode:"independence",isClickOutside:!0,refsExcludeClickOutside:[K,_],isDisabled:(null==r?void 0:r.isDisabled)||(null==r?void 0:r.isReadOnly),onFocus:Z,onBlur:G,onBlurReference:J}),se=i.useMemo(()=>!(L||W||!r.labelPlaceholder||Q||y||O),[L,W,Q,r.labelPlaceholder,y,O]),ie=i.useCallback((e,t,l)=>{const n=s(e).utc(),i=n.clone().date().toString(),a=(n.clone().month()+1).toString(),r=i.padStart(2,"0"),u=a.padStart(2,"0"),d=n.clone().year().toString(),c=null==l?void 0:l[o.DD],f=null==l?void 0:l[o.MM],m=null==l?void 0:l[o.YYYY],h=r===c&&u===f&&m===d,D=null==x?void 0:x.isSame(n,"day");D||(g(n),p(n.valueOf())),D&&!l||h||b({[o.DD]:t?r:i,[o.MM]:t?u:a,[o.YYYY]:d})},[x,p]),ae=i.useCallback(e=>{var t;const l=e.key,n=/^\d$/.test(l);if(n||["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Backspace","Delete","Tab","Enter"].includes(l)||e.ctrlKey||e.metaKey){if(O&&z.default[O]){if(n){!function(e,t,l,n){const s=e,i=t,a=l[i]??"";if(i===o.DD){if(a.length>=2)return void n.default[i].setValue(s);if(""===a)return void n.default[i].setValue(s);const e=a+s,t=Number(e);if(t>31)return void n.default[i].setValue(s);if(0===t)return void n.default[i].setValue(s);n.default[i].setValue(e),n.default[i].onNextSegment()}else if(i===o.MM){if(a.length>=2)return void n.default[i].setValue(s);if(""===a)return void n.default[i].setValue(s);const e=a+s,t=Number(e);if(t>12)return void n.default[i].setValue(s);if(0===t)return void n.default[i].setValue(s);n.default[i].setValue(e),(2===e.length||1===e.length&&Number(e)>1)&&n.default[i].onNextSegment()}else if(i===o.YYYY){if(a.length>=4)return void n.default[i].setValue(s);const e=a+s;n.default[i].setValue(e)}}(l,O,v,z),e.preventDefault(),e.stopPropagation()}if("Tab"===l&&(z.default[O].isLast?null==(t=null==U?void 0:U.current)||t.blur():(e.preventDefault(),z.default[O].onNextSegment())),"Enter"===l&&(e.preventDefault(),e.stopPropagation()),"Backspace"===l||"Delete"===l){if(O===o.DD)if(""!==v.DD){const e=v.DD;if(1===e.length)z.default[O].setValue("");else{const t=e.slice(0,-1);z.default[O].setValue(t)}}else z.default[O].onPrevSegment();else if(O===o.MM)if(""!==v.MM){const e=v.MM;if(1===e.length)z.default[O].setValue("");else{const t=e.slice(0,-1);z.default[O].setValue(t)}}else z.default[O].onPrevSegment();else if(O===o.YYYY)if(""!==v.YYYY){const e=v.YYYY;if(1===e.length)z.default[O].setValue("");else{const t=e.slice(0,-1);z.default[O].setValue(t)}}else z.default[O].onPrevSegment();e.preventDefault(),e.stopPropagation()}"ArrowLeft"!==l&&"ArrowDown"!==l||(e.preventDefault(),z.default[O].onPrevSegment()),"ArrowRight"!==l&&"ArrowUp"!==l||(e.preventDefault(),z.default[O].onNextSegment())}}else e.preventDefault()},[O,v,z.default,z]),oe=i.useCallback(()=>{const e=(x??h).clone().add(1,"month");ie(e.valueOf(),!0)},[x,ie,h]),re=i.useCallback(()=>{const e=(x??h).clone().subtract(1,"month");ie(e.valueOf(),!0)},[x,ie,h]);return i.useEffect(()=>{D(s(r.dateDefault).utc())},[r.dateDefault]),i.useEffect(()=>{if(g(r.value||r.defaultValue?s(r.value??r.defaultValue).utc():null),r.value){const e=s(r.value).utc();b({[o.DD]:e.date().toString().padStart(2,"0"),[o.MM]:(e.month()+1).toString().padStart(2,"0"),[o.YYYY]:e.year().toString()})}},[r.value,r.defaultValue]),i.useEffect(()=>{O||w(v,e=>{ie(e,!0,v),$(!1)},()=>{p(null),$(!0)},e=>{e||(I.current&&(p(null),I.current=!1),$(!1))})},[w,ie,p,v,O]),i.useEffect(()=>{Q||L||!y||O||w(v,()=>{},()=>{p(null),Y(),$(!1)},()=>{p(null),Y(),$(!1)})},[w,Y,v,Q,L,p,y,O]),i.useEffect(()=>{O&&w(M.current,e=>{ie(e,!0,M.current),$(!1)},()=>{$(!0)},e=>{e||$(!1)})},[ie,w,O]),i.useEffect(()=>{var e;O&&(le(),null==(e=null==U?void 0:U.current)||e.focus())},[O,le]),e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsx(t.DateWrapper,{$size:r.size,$genre:r.genre,$sx:r.sx,$isDisabled:null==r?void 0:r.isDisabled,$isMinWidth:null==r?void 0:r.isMinWidth,$radius:P,$parentListHeight:A,tabIndex:-1,children:e.jsxRuntimeExports.jsxs(t.DateInputWrapper,{ref:X,$genre:r.genre,$size:r.size,$isShowPlaceholder:se,$isDisabled:null==r?void 0:r.isDisabled,$isReadOnly:null==r?void 0:r.isReadOnly,$isDisabledOutline:null==r?void 0:r.isDisabledOutline,$isOutlineBoxShadow:null==r?void 0:r.isOutlineBoxShadow,tabIndex:-1,$error:j?{isError:!0,size:(null==(u=null==r?void 0:r.error)?void 0:u.size)??r.size,...r.notValidDate}:r.error,$isOpen:Q||!!O,onClick:()=>{O||(null==r?void 0:r.isReadOnly)||S(o.DD)},children:[e.jsxRuntimeExports.jsx("input",{name:r.name,id:r.id,ref:U,type:"tel",inputMode:"numeric",tabIndex:0,disabled:(null==r?void 0:r.isDisabled)||(null==r?void 0:r.isReadOnly),style:{position:"absolute",left:"-100dvw",top:0,width:"100%",height:"100%",opacity:0,border:"none",background:"transparent"},onKeyDown:ae,onChange:e=>{const t=e.target.value,l=H.current,n=t.length>l.length?t.slice(-1):null;H.current=t,n&&/^\d$/.test(n)&&ae({key:n,preventDefault:()=>{},stopPropagation:()=>{}}),t.length<l.length&&ae({key:"Backspace",preventDefault:()=>{},stopPropagation:()=>{}})},onFocus:()=>{q(!0),O||S(o.DD)},onBlur:()=>{var e;q(!1),Q||null==(e=r.onBlur)||e.call(r)}}),se?e.jsxRuntimeExports.jsx(t.Typography,{sx:{default:{size:16,line:1,isNoUserSelect:!0}},sxStandard:e=>({default:{color:e.colors.input[r.genre].color.placeholder}}),children:r.labelPlaceholder}):z.sort.map((l,n)=>{var s,a;return e.jsxRuntimeExports.jsxs(i.Fragment,{children:[e.jsxRuntimeExports.jsx(t.DateInput,{$isHaveValue:!!l.value,$isActive:O===l.type,$genre:r.genre,$size:r.size,$font:{...r.font,size:(null==(s=r.font)?void 0:s.size)??16,weight:(null==(a=r.font)?void 0:a.weight)??(r.isBold?500:400)},onClick:e=>{e.preventDefault(),e.stopPropagation(),(null==r?void 0:r.isDisabled)||(null==r?void 0:r.isReadOnly)||l.setActive()},children:l.value||l.placeholder||""}),n!==z.sort.length-1&&e.jsxRuntimeExports.jsx("span",{style:{width:"4px",pointerEvents:"none",textAlign:"center"},children:"."})]},l.type)}),e.jsxRuntimeExports.jsx(t.DateInputButton,{genre:r.genre,size:"small",isWidthAsHeight:!0,isFullSize:!0,isRadius:!0,isWhileTapEffect:!0,isOnlyIcon:!0,isDisabledRipple:!0,icons:[{name:"Calendar",type:"id"}],isDisabled:(null==r?void 0:r.isDisabled)||(null==r?void 0:r.isReadOnly),onFocus:e=>{e.preventDefault(),e.stopPropagation(),S(null)},onClick:e=>{e.preventDefault(),e.stopPropagation(),ne()}})]})}),e.jsxRuntimeExports.jsx(t.Popover,{sx:e=>({default:{background:e.colors.input[r.genre].background.rest,border:`solid 1px ${e.colors.input[r.genre].border.rest}`}}),size:r.size,genre:r.genre,isOpen:Q,isShowAlwaysOutline:!0,floatingStyles:te,ref:ee,children:e.jsxRuntimeExports.jsxs(t.DateDropdownList,{$isInputEffect:r.isInputEffect,$genre:r.genre,$size:r.size,children:[e.jsxRuntimeExports.jsxs(n.Stack,{sx:{default:{justifyContent:"space-between",alignItems:"center"}},children:[e.jsxRuntimeExports.jsx(t.Button,{type:"button",isRadius:!0,isWhileTapEffect:!0,icons:[{name:"Arrow2",type:"id",turn:90}],isWidthAsHeight:!0,genre:r.genre,size:"small",onClick:()=>!F&&re(),isDisabledRipple:!0,isHidden:F,isDisabled:F}),e.jsxRuntimeExports.jsxs(n.Stack,{sx:{default:{gap:"8px"}},children:[e.jsxRuntimeExports.jsx(t.SelectMonth,{monthsLocale:r.locale.months,genre:r.genre,size:"small",value:(x??h).clone().startOf("month").utc().valueOf(),isOnClickOptionClose:!0,isStayValueAfterSelect:!0,isOnlyColorInSelectListOption:!0,isCenter:!0,isShortLabel:!0,refFloating:K,onChange:e=>{e&&ie(e,!0)},dateMin:r.dateMin,dateMax:r.dateMax,sx:{default:{width:"60px"}}}),e.jsxRuntimeExports.jsx(t.SelectYear,{genre:r.genre,size:"small",refFloating:_,value:(x??h).clone().startOf("year").utc().valueOf(),onChange:e=>{e&&ie(e,!0)},isOnClickOptionClose:!0,isStayValueAfterSelect:!0,isOnlyColorInSelectListOption:!0,isCenter:!0,dateMin:r.dateMin,dateMax:r.dateMax,sx:{default:{width:"60px"}}})]}),e.jsxRuntimeExports.jsx(t.Button,{type:"button",isWhileTapEffect:!0,onClick:()=>!T&&oe(),isWidthAsHeight:!0,isRadius:!0,icons:[{name:"Arrow2",type:"id",turn:-90}],genre:r.genre,size:"small",isDisabledRipple:!0,isDisabled:T,isHidden:T})]}),e.jsxRuntimeExports.jsxs(t.DateDropdownDays,{$rows:V,children:[C.map((l,n)=>{var s;return e.jsxRuntimeExports.jsx(t.DateDropdownDayOfWeek,{$font:{...r.font,size:12,weight:700},tabIndex:-1,type:"button",$isToday:!1,$isWeekend:!1,$genre:r.genre,$size:r.size,$row:(null==(s=N[0])?void 0:s.weekOfMonth)-1,$column:n+1,children:l.label},`${l.label}-${n}`)}),N.map(n=>e.jsxRuntimeExports.jsxs(t.DateDropdownDay,{$font:{...r.font,size:12,weight:700},type:"button",$isDisabled:n.isDisabled,$isDisabledOutline:n.isDisabled??r.isDisabledOutline,$isOutlineBoxShadow:r.isOutlineBoxShadow,$isReadOnly:r.isReadOnly,$genre:r.genre,$size:r.size,$row:(null==n?void 0:n.weekOfMonth)+1,$column:n.dayOfWeek,onClick:()=>{n.isDisabled||(ie(n.value,!0),r.isOnClickClose&&le())},tabIndex:n.isDisabled?-1:0,$isToday:n.isToday,$isWeekend:n.isWeekend,$isChoice:n.value===(null==x?void 0:x.valueOf()),$isCurrentMonth:n.isCurrentMonth,children:[e.jsxRuntimeExports.jsx(l.Ripple,{color:m.colors.date[r.genre].color.rest,isDisabled:n.isDisabled}),n.labelNumber]},n.value))]})]})}),j||(null==r?void 0:r.error)?e.jsxRuntimeExports.jsx(t.ErrorMessage,{...j?{isError:!0,size:(null==(d=null==r?void 0:r.error)?void 0:d.size)??r.size,...r.notValidDate}:r.error,size:(null==(c=null==r?void 0:r.error)?void 0:c.size)??r.size,font:{size:12,weight:400,family:(null==(f=r.font)?void 0:f.family)??m.font.family}}):null]})},exports.DatePickerVariant=o;
2
+ //# sourceMappingURL=component.types-OChufSyJ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.types-OChufSyJ.cjs","sources":["../src/components/date-picker/component.types.ts","../src/components/date-picker/component.tsx"],"sourcesContent":["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","import { Button } from '@local/components/button';\nimport { Ripple } from '@local/components/ripple';\nimport { SelectMonth, SelectYear } from '@local/components/select';\nimport { Stack } from '@local/components/stack';\nimport { ErrorMessage } from '@local/styles/error';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport moment, { Moment } from 'moment';\nimport { Fragment, KeyboardEvent, RefObject, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { Popover, usePopover } from '../popover';\nimport { Typography } from '../typography';\nimport {\n DateDayProps,\n DateDropdownDay,\n DateDropdownDayOfWeek,\n DateDropdownDays,\n DateDropdownList,\n DateInput,\n DateInputButton,\n DateInputWrapper,\n DatePickerMode,\n DatePickerProps,\n DatePickerVariant,\n DateWrapper,\n WeekItem,\n} from '.';\n\nfunction countSevens(number: number) {\n const divisor = 7;\n const count = Math.floor(number / divisor);\n const remainder = number % divisor;\n\n return remainder > 0 ? count + 1 : count;\n}\n\nexport const DatePicker = (props: DatePickerProps) => {\n const { onChange } = props;\n const theme = useTheme();\n\n const [valueMoment, setValueMoment] = useState<null | Moment>(null);\n const [dateDefaultMoment, setDateDefaultMoment] = useState<Moment>(moment(props.dateDefault).utc());\n\n // Изменяем тип с number | null на string\n const [input, setInput] = useState<Record<DatePickerVariant, string>>({\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n });\n const refInputValue = useRef(input);\n useEffect(() => {\n refInputValue.current = input;\n }, [input]);\n // Обновляем проверку на наличие input\n const isHasInput = useMemo(() => {\n return (\n input[DatePickerVariant.DD] !== '' || input[DatePickerVariant.MM] !== '' || input[DatePickerVariant.YYYY] !== ''\n );\n }, [input]);\n\n const onClearInput = useCallback(() => {\n setInput({\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n });\n }, []);\n\n const [activeSegment, setActiveSegment] = useState<DatePickerVariant | null>(null);\n const [isError, setIsError] = useState(false);\n\n const mode: DatePickerMode = useMemo(() => {\n if (!props.mode || props.mode.length === 0) {\n return [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY]; // дефолт\n }\n\n const hasDuplicates = new Set(props.mode).size !== props.mode.length;\n\n if (hasDuplicates) {\n return [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY]; // дефолт при дублировании\n }\n\n return props.mode;\n }, [props.mode]);\n\n const getNextSegment = useCallback(\n (currentSegment: DatePickerVariant): DatePickerVariant | null => {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex < mode.length - 1 ? mode[currentIndex + 1] : mode[0];\n },\n [mode],\n );\n\n const getPrevSegment = useCallback(\n (currentSegment: DatePickerVariant): DatePickerVariant | null => {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex > 0 ? mode[currentIndex - 1] : mode[mode.length - 1];\n },\n [mode],\n );\n\n // Обновляем функцию валидации для работы со строками\n const getValidateInput = useCallback(\n (\n input: Record<DatePickerVariant, string>,\n onSuccess?: (value: number) => void,\n onFailure?: () => void,\n onNan?: (isHasInput: boolean) => void,\n ) => {\n const dayStr = input.DD;\n const monthStr = input.MM;\n const yearStr = input.YYYY;\n\n const day = dayStr === '' ? NaN : Number(dayStr);\n const month = monthStr === '' ? NaN : Number(monthStr);\n const year = yearStr === '' ? NaN : Number(yearStr);\n\n const isHasInput = dayStr !== '' || monthStr !== '' || yearStr !== '';\n\n if (!Number.isNaN(day) && !Number.isNaN(month) && !Number.isNaN(year)) {\n const m = moment.utc(`${day}.${month}.${year}`, 'D.M.YYYY', true).startOf('day');\n if (m.isValid()) {\n onSuccess?.(m.valueOf());\n } else {\n onFailure?.();\n }\n } else {\n onNan?.(isHasInput);\n }\n },\n [],\n );\n\n const dataDate = useMemo(() => {\n const segments = [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY];\n\n const result = Object.fromEntries(\n segments.map((segment) => [\n segment,\n {\n type: segment,\n value: input[segment],\n placeholder:\n props.locale.inputs[\n segment === DatePickerVariant.DD ? 'day' : segment === DatePickerVariant.MM ? 'month' : 'year'\n ],\n isFirst: mode[0] === segment,\n isLast: mode[mode.length - 1] === segment,\n segmentNext: getNextSegment(segment),\n segmentPrev: getPrevSegment(segment),\n onNextSegment: () => setActiveSegment(getNextSegment(segment)),\n onPrevSegment: () => setActiveSegment(getPrevSegment(segment)),\n setValue: (value: string) => setInput((prev) => ({ ...prev, [segment]: value })),\n setActive: () => setActiveSegment(segment),\n },\n ]),\n ) as Record<\n DatePickerVariant,\n {\n type: DatePickerVariant;\n value: string;\n placeholder: string;\n isFirst: boolean;\n isLast: boolean;\n segmentNext: DatePickerVariant | null;\n segmentPrev: DatePickerVariant | null;\n onNextSegment: () => void;\n onPrevSegment: () => void;\n setValue: (value: string) => void;\n setActive: () => void;\n }\n >;\n\n const resultSort = mode.map((segment) => result[segment]).filter(Boolean);\n\n return { sort: resultSort, default: result };\n }, [props, getNextSegment, getPrevSegment, mode, input]);\n\n const daysInWeek = useMemo(() => {\n const weekOrder: WeekItem['value'][] = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'];\n\n return weekOrder.map((key, index) => {\n const found = props.locale.weeks.find((w) => w.value === key);\n return {\n index,\n label: found?.localeShort ?? key.toUpperCase(),\n };\n });\n }, [props.locale.weeks]);\n\n const daysInMonth: DateDayProps[] = useMemo(() => {\n const today = moment.utc();\n const baseMoment = valueMoment ?? dateDefaultMoment;\n const startOfMonth = baseMoment.clone().startOf('month');\n const endOfMonth = baseMoment.clone().endOf('month');\n\n const dateMin = props.dateMin ? moment.utc(props.dateMin) : null;\n const dateMax = props.dateMax ? moment.utc(props.dateMax) : null;\n\n // Определяем диапазон дат (с учетом дней до и после месяца)\n const firstVisibleDay = startOfMonth.clone().subtract(startOfMonth.isoWeekday() - 1, 'days');\n const lastVisibleDay = endOfMonth.clone().add(7 - endOfMonth.isoWeekday(), 'days');\n\n const days: DateDayProps[] = [];\n const currentDate = firstVisibleDay.clone();\n\n while (currentDate <= lastVisibleDay) {\n const isCurrentMonth = currentDate.isBetween(startOfMonth, endOfMonth, 'day', '[]');\n days.push({\n value: currentDate.valueOf(),\n labelString: currentDate.format('dd'),\n labelNumber: currentDate.date(),\n dayOfWeek: currentDate.isoWeekday(),\n isWeekend: [6, 7].includes(currentDate.isoWeekday()),\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: currentDate.isSame(today, 'day'),\n isCurrentMonth,\n isDisabled: !!(\n (dateMin && currentDate.isBefore(dateMin, 'day')) ||\n (dateMax && currentDate.isAfter(dateMax, 'day'))\n ),\n });\n\n currentDate.add(1, 'day');\n }\n\n return days;\n }, [valueMoment, dateDefaultMoment, props.dateMax, props.dateMin]);\n\n const rows = useMemo(() => countSevens(daysInMonth.length) + 1, [daysInMonth]);\n\n const height = useMemo(\n () => 40 + rows * 28 + (rows - 1) * 6 + KEY_SIZE_DATA[props.size].padding * 2,\n [props.size, rows],\n );\n\n const sizeRadius = useMemo(() => KEY_SIZE_DATA[props.size].radius, [props.size]);\n const sizePadding = useMemo(() => KEY_SIZE_DATA[props.size].padding, [props.size]);\n\n const isHasValue = useMemo(() => {\n return valueMoment !== null;\n }, [valueMoment]);\n\n const refIsHasValueOnce = useRef(false);\n\n useEffect(() => {\n if (isHasValue && !refIsHasValueOnce.current) refIsHasValueOnce.current = true;\n }, [isHasValue]);\n\n const isBlockNextMonth = useMemo(() => {\n const nextMonth = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month').startOf('month');\n const isBeforeEndDate = props.dateMax ? nextMonth.isAfter(moment.utc(props.dateMax), 'month') : false;\n return isBeforeEndDate;\n }, [valueMoment, props.dateMax, dateDefaultMoment]);\n const isBlockPrevMonth = useMemo(() => {\n const prevMonth = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month').startOf('month');\n const isAfterStartDate = props.dateMin ? prevMonth.isBefore(moment.utc(props.dateMin), 'month') : false;\n return isAfterStartDate;\n }, [valueMoment, props.dateMin, dateDefaultMoment]);\n\n const [isInputFocused, setIsInputFocused] = useState(false);\n\n const refPrevValue = useRef('');\n const refSelectMonth = useRef<HTMLElement>(null);\n const refSelectYear = useRef<HTMLElement>(null);\n const refHiddenInput = useRef<HTMLInputElement>(null);\n\n const onFocusPopover = useCallback(() => {\n props.onFocus?.();\n }, [props.onFocus]);\n const onBlurPopover = useCallback(() => {\n props.onBlur?.();\n }, [props.onBlur]);\n const onBlurReference = useCallback(() => {\n setActiveSegment(null);\n }, []);\n const { isOpen, refReference, refFloating, floatingStyles, close, toggle } = usePopover({\n placement: 'bottom-start',\n offset: sizePadding,\n mode: 'independence',\n isClickOutside: true,\n refsExcludeClickOutside: [refSelectMonth, refSelectYear],\n isDisabled: props?.isDisabled || props?.isReadOnly,\n onFocus: onFocusPopover,\n onBlur: onBlurPopover,\n onBlurReference: onBlurReference,\n });\n\n const isShowPlaceholder = useMemo(() => {\n return !!(!isInputFocused && !isHasValue && props.labelPlaceholder && !isOpen && !isHasInput && !activeSegment);\n }, [isInputFocused, isHasValue, isOpen, props.labelPlaceholder, isHasInput, activeSegment]);\n\n const onChangeDate = useCallback(\n (timestamp: number, isAddLeadingZeros: boolean, input?: Record<DatePickerVariant, string>) => {\n const momentNewDate = moment(timestamp).utc();\n\n const dd = momentNewDate.clone().date().toString();\n const mm = (momentNewDate.clone().month() + 1).toString();\n\n const ddWithZero = dd.padStart(2, '0');\n const mmWithZero = mm.padStart(2, '0');\n\n const yyyy = momentNewDate.clone().year().toString();\n const ddInput = input?.[DatePickerVariant.DD];\n const mmInput = input?.[DatePickerVariant.MM];\n const yyyyInput = input?.[DatePickerVariant.YYYY];\n\n const isSameInput = ddWithZero === ddInput && mmWithZero === mmInput && yyyyInput === yyyy;\n const isSameMoment = valueMoment?.isSame(momentNewDate, 'day');\n if (!isSameMoment) {\n setValueMoment(momentNewDate);\n onChange(momentNewDate.valueOf());\n }\n\n if (!isSameMoment || input ? !isSameInput : false) {\n setInput({\n [DatePickerVariant.DD]: isAddLeadingZeros ? ddWithZero : dd,\n [DatePickerVariant.MM]: isAddLeadingZeros ? mmWithZero : mm,\n [DatePickerVariant.YYYY]: yyyy,\n });\n }\n },\n [valueMoment, onChange],\n );\n\n // const onNextSegment = useCallback(\n // (\n // newInput: Record<DatePickerVariant, string>,\n // ) => {\n // if(newInput){\n // getValidateInput(\n // newInput,\n // (value) => {\n // onChangeDate(value, true);\n // setIsError(false);\n // },\n // () => {\n // setIsError(true);\n // },\n // () => {\n // setIsError(true);\n // },\n // );\n // }else{\n\n // }\n\n // },\n // [getValidateInput, onChangeDate],\n // );\n const onKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n const key = e.key;\n\n const allowedKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Backspace', 'Delete', 'Tab', 'Enter'];\n\n const isDigit = /^\\d$/.test(key);\n const isAllowed = isDigit || allowedKeys.includes(key) || e.ctrlKey || e.metaKey;\n\n if (!isAllowed) {\n e.preventDefault();\n return;\n }\n\n if (activeSegment && dataDate.default[activeSegment]) {\n if (isDigit) {\n const digit = key;\n\n handleDigitKey(digit, activeSegment, input, dataDate);\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Tab') {\n if (!dataDate.default[activeSegment].isLast) {\n e.preventDefault();\n dataDate.default[activeSegment].onNextSegment();\n } else {\n refHiddenInput?.current?.blur();\n }\n }\n if (key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Backspace' || key === 'Delete') {\n if (activeSegment === DatePickerVariant.DD) {\n if (input.DD !== '') {\n const current = input.DD;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n } else if (activeSegment === DatePickerVariant.MM) {\n if (input.MM !== '') {\n const current = input.MM;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n } else if (activeSegment === DatePickerVariant.YYYY) {\n if (input.YYYY !== '') {\n const current = input.YYYY;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n e.preventDefault();\n dataDate.default[activeSegment].onPrevSegment();\n }\n if (key === 'ArrowRight' || key === 'ArrowUp') {\n e.preventDefault();\n dataDate.default[activeSegment].onNextSegment();\n }\n }\n },\n [activeSegment, input, dataDate.default, dataDate],\n );\n const onNextMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onPrevMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n useEffect(() => {\n setDateDefaultMoment(moment(props.dateDefault).utc());\n }, [props.dateDefault]);\n\n useEffect(() => {\n setValueMoment(props.value || props.defaultValue ? moment(props.value ?? props.defaultValue).utc() : null);\n if (props.value) {\n // При инициализации также форматируем в строки с ведущими нулями\n const m = moment(props.value).utc();\n setInput({\n [DatePickerVariant.DD]: m.date().toString().padStart(2, '0'),\n [DatePickerVariant.MM]: (m.month() + 1).toString().padStart(2, '0'),\n [DatePickerVariant.YYYY]: m.year().toString(),\n });\n }\n }, [props.value, props.defaultValue]);\n\n useEffect(() => {\n if (!activeSegment)\n getValidateInput(\n input,\n (value) => {\n onChangeDate(value, true, input);\n setIsError(false);\n },\n () => {\n onChange(null);\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n if (refIsHasValueOnce.current) {\n onChange(null);\n refIsHasValueOnce.current = false;\n }\n setIsError(false);\n }\n },\n );\n }, [getValidateInput, onChangeDate, onChange, input, activeSegment]);\n\n useEffect(() => {\n if (!isOpen && !isInputFocused && isHasInput && !activeSegment)\n getValidateInput(\n input,\n () => {},\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n );\n }, [getValidateInput, onClearInput, input, isOpen, isInputFocused, onChange, isHasInput, activeSegment]);\n\n useEffect(() => {\n if (!activeSegment) return;\n getValidateInput(\n refInputValue.current,\n (value) => {\n onChangeDate(value, true, refInputValue.current);\n setIsError(false);\n },\n () => {\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n setIsError(false);\n }\n },\n );\n }, [onChangeDate, getValidateInput, activeSegment]);\n\n useEffect(() => {\n if (activeSegment) {\n close();\n refHiddenInput?.current?.focus();\n }\n }, [activeSegment, close]);\n return (\n <>\n <DateWrapper\n $size={props.size}\n $genre={props.genre}\n $sx={props.sx}\n $isDisabled={props?.isDisabled}\n $isMinWidth={props?.isMinWidth}\n $radius={sizeRadius}\n $parentListHeight={height}\n tabIndex={-1}\n >\n <DateInputWrapper\n ref={refReference as RefObject<HTMLDivElement | null>}\n $genre={props.genre}\n $size={props.size}\n $isShowPlaceholder={isShowPlaceholder}\n $isDisabled={props?.isDisabled}\n $isReadOnly={props?.isReadOnly}\n $isDisabledOutline={props?.isDisabledOutline}\n $isOutlineBoxShadow={props?.isOutlineBoxShadow}\n tabIndex={-1}\n $error={\n isError\n ? {\n isError: true,\n size: props?.error?.size ?? props.size,\n ...props.notValidDate,\n }\n : props.error\n }\n $isOpen={isOpen || !!activeSegment}\n onClick={() => {\n if (!activeSegment && !props?.isReadOnly) setActiveSegment(DatePickerVariant.DD);\n }}\n >\n <input\n name={props.name}\n id={props.id}\n ref={refHiddenInput}\n type='tel'\n inputMode='numeric'\n tabIndex={0}\n disabled={props?.isDisabled || props?.isReadOnly}\n style={{\n position: 'absolute',\n left: '-100dvw',\n top: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n border: 'none',\n background: 'transparent',\n }}\n onKeyDown={onKeyDown}\n onChange={(e) => {\n const value = e.target.value;\n const prevValue = refPrevValue.current;\n\n const newChar = value.length > prevValue.length ? value.slice(-1) : null;\n\n refPrevValue.current = value;\n\n if (newChar && /^\\d$/.test(newChar)) {\n onKeyDown({\n key: newChar,\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n if (value.length < prevValue.length) {\n onKeyDown({\n key: 'Backspace',\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n }}\n onFocus={() => {\n setIsInputFocused(true);\n if (!activeSegment) setActiveSegment(DatePickerVariant.DD);\n }}\n onBlur={() => {\n setIsInputFocused(false);\n\n if (!isOpen) {\n props.onBlur?.();\n }\n }}\n />\n {isShowPlaceholder ? (\n <Typography\n sx={{ default: { size: 16, line: 1, isNoUserSelect: true } }}\n sxStandard={(theme) => ({\n default: {\n color: theme.colors.input[props.genre].color.placeholder,\n },\n })}\n >\n {props.labelPlaceholder}\n </Typography>\n ) : (\n dataDate.sort.map((date, index) => (\n <Fragment key={date.type}>\n <DateInput\n $isHaveValue={!!date.value}\n $isActive={activeSegment === date.type}\n $genre={props.genre}\n $size={props.size}\n $font={{\n ...props.font,\n size: props.font?.size ?? 16,\n weight: props.font?.weight ?? (props.isBold ? 500 : 400),\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n if (props?.isDisabled || props?.isReadOnly) return;\n date.setActive();\n }}\n >\n {date.value || date.placeholder || ''}\n </DateInput>\n {index !== dataDate.sort.length - 1 && (\n <span style={{ width: '4px', pointerEvents: 'none', textAlign: 'center' }}>.</span>\n )}\n </Fragment>\n ))\n )}\n <DateInputButton\n genre={props.genre}\n size='small'\n isWidthAsHeight\n isFullSize\n isRadius\n isWhileTapEffect\n isOnlyIcon\n isDisabledRipple\n icons={[{ name: 'Calendar', type: 'id' }]}\n isDisabled={props?.isDisabled || props?.isReadOnly}\n onFocus={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setActiveSegment(null);\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n toggle();\n }}\n />\n </DateInputWrapper>\n </DateWrapper>\n <Popover\n sx={(theme) => ({\n default: {\n background: theme.colors.input[props.genre].background.rest,\n border: `solid 1px ${theme.colors.input[props.genre].border.rest}`,\n },\n })}\n size={props.size}\n genre={props.genre}\n isOpen={isOpen}\n isShowAlwaysOutline\n floatingStyles={floatingStyles}\n ref={refFloating}\n >\n <DateDropdownList $isInputEffect={props.isInputEffect} $genre={props.genre} $size={props.size}>\n <Stack\n sx={{\n default: {\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n }}\n >\n <Button\n type='button'\n isRadius\n isWhileTapEffect\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: 90,\n },\n ]}\n isWidthAsHeight\n genre={props.genre}\n size={'small'}\n onClick={() => !isBlockPrevMonth && onPrevMonth()}\n isDisabledRipple\n isHidden={isBlockPrevMonth}\n isDisabled={isBlockPrevMonth}\n />\n <Stack sx={{ default: { gap: '8px' } }}>\n <SelectMonth\n monthsLocale={props.locale.months}\n genre={props.genre}\n size={'small'}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('month').utc().valueOf()}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n isShortLabel\n refFloating={refSelectMonth}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n }}\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n sx={{ default: { width: '60px' } }}\n />\n <SelectYear\n genre={props.genre}\n size={'small'}\n refFloating={refSelectYear}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('year').utc().valueOf()}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n }}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n sx={{ default: { width: '60px' } }}\n />\n </Stack>\n <Button\n type='button'\n isWhileTapEffect\n onClick={() => !isBlockNextMonth && onNextMonth()}\n isWidthAsHeight\n isRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: -90,\n },\n ]}\n genre={props.genre}\n size={'small'}\n isDisabledRipple\n isDisabled={isBlockNextMonth}\n isHidden={isBlockNextMonth}\n />\n </Stack>\n <DateDropdownDays $rows={rows}>\n {daysInWeek.map((e, index) => (\n <DateDropdownDayOfWeek\n $font={{\n ...props.font,\n size: 12,\n weight: 700,\n }}\n tabIndex={-1}\n type='button'\n $isToday={false}\n $isWeekend={false}\n $genre={props.genre}\n $size={props.size}\n $row={daysInMonth[0]?.weekOfMonth - 1}\n $column={index + 1}\n key={`${e.label}-${index}`}\n >\n {e.label}\n </DateDropdownDayOfWeek>\n ))}\n {daysInMonth.map((day) => (\n <DateDropdownDay\n $font={{\n ...props.font,\n size: 12,\n weight: 700,\n }}\n type='button'\n $isDisabled={day.isDisabled}\n $isDisabledOutline={day.isDisabled ?? props.isDisabledOutline}\n $isOutlineBoxShadow={props.isOutlineBoxShadow}\n $isReadOnly={props.isReadOnly}\n $genre={props.genre}\n $size={props.size}\n $row={day?.weekOfMonth + 1}\n $column={day.dayOfWeek}\n key={day.value}\n onClick={() => {\n if (!day.isDisabled) {\n onChangeDate(day.value, true);\n if (props.isOnClickClose) {\n close();\n }\n }\n }}\n tabIndex={day.isDisabled ? -1 : 0}\n $isToday={day.isToday}\n $isWeekend={day.isWeekend}\n $isChoice={day.value === valueMoment?.valueOf()}\n $isCurrentMonth={day.isCurrentMonth}\n >\n <Ripple color={theme.colors.date[props.genre].color.rest} isDisabled={day.isDisabled} />\n {day.labelNumber}\n </DateDropdownDay>\n ))}\n </DateDropdownDays>\n </DateDropdownList>\n </Popover>\n {isError || props?.error ? (\n <ErrorMessage\n {...(isError\n ? {\n isError: true,\n size: props?.error?.size ?? props.size,\n ...props.notValidDate,\n }\n : props.error)}\n size={props?.error?.size ?? props.size}\n font={{\n size: 12,\n weight: 400,\n family: props.font?.family ?? theme.font.family,\n }}\n />\n ) : null}\n </>\n );\n};\n\nfunction handleDigitKey(\n key: string,\n activeSegment: DatePickerVariant,\n input: Record<DatePickerVariant, string>,\n dataDate: { default: Record<DatePickerVariant, { setValue: (value: string) => void; onNextSegment: () => void }> },\n // onNextSegment?: (newInput: Record<DatePickerVariant, string>) => 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"],"names":["DatePickerVariant","props","onChange","theme","useTheme","valueMoment","setValueMoment","useState","dateDefaultMoment","setDateDefaultMoment","moment","dateDefault","utc","input","setInput","DD","MM","YYYY","refInputValue","useRef","useEffect","current","isHasInput","useMemo","onClearInput","useCallback","activeSegment","setActiveSegment","isError","setIsError","mode","length","Set","size","getNextSegment","currentSegment","currentIndex","indexOf","getPrevSegment","getValidateInput","onSuccess","onFailure","onNan","dayStr","monthStr","yearStr","day","NaN","Number","month","year","isNaN","m","startOf","isValid","valueOf","dataDate","segments","result","Object","fromEntries","map","segment","type","value","placeholder","locale","inputs","isFirst","isLast","segmentNext","segmentPrev","onNextSegment","onPrevSegment","setValue","prev","setActive","sort","filter","Boolean","default","daysInWeek","key","index","found","weeks","find","w","label","localeShort","toUpperCase","daysInMonth","today","baseMoment","startOfMonth","clone","endOfMonth","endOf","dateMin","dateMax","firstVisibleDay","subtract","isoWeekday","lastVisibleDay","add","days","currentDate","isCurrentMonth","isBetween","push","labelString","format","labelNumber","date","dayOfWeek","isWeekend","includes","weekOfMonth","Math","ceil","isToday","isSame","isDisabled","isBefore","isAfter","rows","number","count","floor","countSevens","height","KEY_SIZE_DATA","padding","sizeRadius","radius","sizePadding","isHasValue","refIsHasValueOnce","isBlockNextMonth","nextMonth","isBlockPrevMonth","prevMonth","isInputFocused","setIsInputFocused","refPrevValue","refSelectMonth","refSelectYear","refHiddenInput","onFocusPopover","_a","onFocus","call","onBlurPopover","onBlur","onBlurReference","isOpen","refReference","refFloating","floatingStyles","close","toggle","usePopover","placement","offset","isClickOutside","refsExcludeClickOutside","isReadOnly","isShowPlaceholder","labelPlaceholder","onChangeDate","timestamp","isAddLeadingZeros","momentNewDate","dd","toString","mm","ddWithZero","padStart","mmWithZero","yyyy","ddInput","mmInput","yyyyInput","isSameInput","isSameMoment","onKeyDown","e","isDigit","test","ctrlKey","metaKey","digit","seg","potential","potentialNum","nextValue","handleDigitKey","preventDefault","stopPropagation","blur","newValue","slice","onNextMonth","newDate","onPrevMonth","defaultValue","focus","jsxs","Fragment","children","jsx","DateWrapper","$size","$genre","genre","$sx","sx","$isDisabled","$isMinWidth","isMinWidth","$radius","$parentListHeight","tabIndex","DateInputWrapper","ref","$isShowPlaceholder","$isReadOnly","$isDisabledOutline","isDisabledOutline","$isOutlineBoxShadow","isOutlineBoxShadow","$error","error","notValidDate","$isOpen","onClick","name","id","inputMode","disabled","style","position","left","top","width","opacity","border","background","target","prevValue","newChar","Typography","line","isNoUserSelect","sxStandard","color","colors","DateInput","$isHaveValue","$isActive","$font","font","weight","_b","isBold","pointerEvents","textAlign","DateInputButton","isWidthAsHeight","isFullSize","isRadius","isWhileTapEffect","isOnlyIcon","isDisabledRipple","icons","Popover","rest","isShowAlwaysOutline","DateDropdownList","$isInputEffect","isInputEffect","Stack","justifyContent","alignItems","Button","turn","isHidden","gap","SelectMonth","monthsLocale","months","isOnClickOptionClose","isStayValueAfterSelect","isOnlyColorInSelectListOption","isCenter","isShortLabel","SelectYear","DateDropdownDays","$rows","DateDropdownDayOfWeek","$isToday","$isWeekend","$row","$column","DateDropdownDay","isOnClickClose","$isChoice","$isCurrentMonth","Ripple","ErrorMessage","_c","family","_d"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./functions.cjs.js"),a={eng:{value:"eng",label:"English",placeholder:"English",search:"English, eng"},rus:{value:"rus",label:"Русский",placeholder:"Русский",search:"Русский, rus"}},o={jenesei_id:{value:"jenesei_id",label:"Jenesei ID",placeholder:"Jenesei ID",search:"Jenesei ID"}},r=e.transformObjectToArray(a),l=e.transformObjectValuesToKeys(a),t=e.transformObjectToArray(o),s=e.transformObjectValuesToKeys(o),n=["image/*",".jpeg",".jpg",".png",".webp","avif"].join(",");exports.LIBRARY_VERSION="1.3.26",exports.LIST_IMAGE_SUPPORTED_FORMAT=["image/jpeg","image/jpg","image/png","image/webp","image/avif"],exports.LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT=n,exports.LIST_KEY_LANGUAGE=l,exports.LIST_KEY_SERVICE=s,exports.LIST_LANGUAGE=r,exports.LIST_MAP_THEME=[{name:"Light CARTO",url:"https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png",attribution:'&copy; <a href="https://carto.com/">CARTO</a>'},{name:"Dark CARTO",url:"https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png",attribution:'&copy; <a href="https://carto.com/">CARTO</a>'},{name:"OpenStreetMap",url:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",attribution:'&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'},{name:"World Topo MapCluster",url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}",attribution:"Tiles &copy; Esri &mdash; Esri, DeLorme, NAVTEQ, TomTom, Intermap, iPC, USGS, FAO, NPS, NRCAN, GeoBase, Kadaster NL, Ordnance Survey, Esri Japan, METI, Esri China (Hong Kong), and the GIS User Community"},{name:"Esri World Imagery",url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",attribution:"Tiles &copy; Esri &mdash; Source: Esri, Earthstar Geographics"}],exports.LIST_SERVICE=t,exports.LOCALE_INPUT={day:"ДД",month:"ММ",year:"ГГГГ"},exports.LOCALE_MONTHS=[{localeLong:"Январь",localeShort:"Янв",value:"january"},{localeLong:"February",localeShort:"Feb",value:"february"},{localeLong:"March",localeShort:"Mar",value:"march"},{localeLong:"April",localeShort:"Apr",value:"april"},{localeLong:"May",localeShort:"May",value:"may"},{localeLong:"June",localeShort:"Jun",value:"june"},{localeLong:"July",localeShort:"Jul",value:"july"},{localeLong:"August",localeShort:"Aug",value:"august"},{localeLong:"September",localeShort:"Sep",value:"september"},{localeLong:"October",localeShort:"Oct",value:"october"},{localeLong:"November",localeShort:"Nov",value:"november"},{localeLong:"December",localeShort:"Dec",value:"december"}],exports.LOCALE_WEEKS=[{localeLong:"Monday",localeShort:"Пн",value:"mo"},{localeLong:"Tuesday",localeShort:"Tue",value:"tu"},{localeLong:"Wednesday",localeShort:"Wed",value:"we"},{localeLong:"Thursday",localeShort:"Thu",value:"th"},{localeLong:"Friday",localeShort:"Fri",value:"fr"},{localeLong:"Saturday",localeShort:"Sat",value:"sa"},{localeLong:"Sunday",localeShort:"Sun",value:"su"}],exports.LOREM_IPSUM_TEXT="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",exports.OBJECT_LANGUAGE=a,exports.OBJECT_SERVICE=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./functions.cjs.js"),a={eng:{value:"eng",label:"English",placeholder:"English",search:"English, eng"},rus:{value:"rus",label:"Русский",placeholder:"Русский",search:"Русский, rus"}},o={jenesei_id:{value:"jenesei_id",label:"Jenesei ID",placeholder:"Jenesei ID",search:"Jenesei ID"}},r=e.transformObjectToArray(a),l=e.transformObjectValuesToKeys(a),t=e.transformObjectToArray(o),s=e.transformObjectValuesToKeys(o),n=["image/*",".jpeg",".jpg",".png",".webp","avif"].join(",");exports.LIBRARY_VERSION="1.3.27",exports.LIST_IMAGE_SUPPORTED_FORMAT=["image/jpeg","image/jpg","image/png","image/webp","image/avif"],exports.LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT=n,exports.LIST_KEY_LANGUAGE=l,exports.LIST_KEY_SERVICE=s,exports.LIST_LANGUAGE=r,exports.LIST_MAP_THEME=[{name:"Light CARTO",url:"https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png",attribution:'&copy; <a href="https://carto.com/">CARTO</a>'},{name:"Dark CARTO",url:"https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png",attribution:'&copy; <a href="https://carto.com/">CARTO</a>'},{name:"OpenStreetMap",url:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",attribution:'&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'},{name:"World Topo MapCluster",url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}",attribution:"Tiles &copy; Esri &mdash; Esri, DeLorme, NAVTEQ, TomTom, Intermap, iPC, USGS, FAO, NPS, NRCAN, GeoBase, Kadaster NL, Ordnance Survey, Esri Japan, METI, Esri China (Hong Kong), and the GIS User Community"},{name:"Esri World Imagery",url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",attribution:"Tiles &copy; Esri &mdash; Source: Esri, Earthstar Geographics"}],exports.LIST_SERVICE=t,exports.LOCALE_INPUT={day:"ДД",month:"ММ",year:"ГГГГ"},exports.LOCALE_MONTHS=[{localeLong:"Январь",localeShort:"Янв",value:"january"},{localeLong:"February",localeShort:"Feb",value:"february"},{localeLong:"March",localeShort:"Mar",value:"march"},{localeLong:"April",localeShort:"Apr",value:"april"},{localeLong:"May",localeShort:"May",value:"may"},{localeLong:"June",localeShort:"Jun",value:"june"},{localeLong:"July",localeShort:"Jul",value:"july"},{localeLong:"August",localeShort:"Aug",value:"august"},{localeLong:"September",localeShort:"Sep",value:"september"},{localeLong:"October",localeShort:"Oct",value:"october"},{localeLong:"November",localeShort:"Nov",value:"november"},{localeLong:"December",localeShort:"Dec",value:"december"}],exports.LOCALE_WEEKS=[{localeLong:"Monday",localeShort:"Пн",value:"mo"},{localeLong:"Tuesday",localeShort:"Tue",value:"tu"},{localeLong:"Wednesday",localeShort:"Wed",value:"we"},{localeLong:"Thursday",localeShort:"Thu",value:"th"},{localeLong:"Friday",localeShort:"Fri",value:"fr"},{localeLong:"Saturday",localeShort:"Sat",value:"sa"},{localeLong:"Sunday",localeShort:"Sun",value:"su"}],exports.LOREM_IPSUM_TEXT="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",exports.OBJECT_LANGUAGE=a,exports.OBJECT_SERVICE=o;
2
2
  //# sourceMappingURL=consts.cjs.js.map
@@ -159,7 +159,7 @@ const LIST_MAP_THEME = [
159
159
  const LIST_IMAGE_SUPPORTED_FORMAT = ["image/jpeg", "image/jpg", "image/png", "image/webp", "image/avif"];
160
160
  const LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT = ["image/*", ".jpeg", ".jpg", ".png", ".webp", "avif"].join(",");
161
161
  const LOREM_IPSUM_TEXT = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
162
- const LIBRARY_VERSION = "1.3.26";
162
+ const LIBRARY_VERSION = "1.3.27";
163
163
  export {
164
164
  LIBRARY_VERSION,
165
165
  LIST_IMAGE_SUPPORTED_FORMAT,
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./area-pCo19R2g.cjs"),t=require("./area.hooks-C_UKZzcb.cjs"),o=require("./context.constants-B9vCuOqK.cjs"),r=require("./area.styles-BuceLNra.cjs"),p=require("./area-BG04bpxi.cjs"),s=require("./component-Cc8X-Z80.cjs"),n=require("./component-Ds4G9JaH.cjs"),a=require("./component-7NBd7NIb.cjs"),i=require("./component-BbZXNg5P.cjs"),x=require("./component-DTotEm4D.cjs"),c=require("./component.types-BMh5sB6v.cjs"),u=require("./component-BzxsZZwo.cjs"),l=require("./component-CC8gkK9W.cjs"),S=require("./component-DC3s_be7.cjs"),d=require("./component.constants-DuIk1IUA.cjs"),T=require("./component-DgZATMAS.cjs"),E=require("./component-DYsviH75.cjs"),I=require("./component.components-DUGaqWm1.cjs"),_=require("./component.constants-VFLYS55V.cjs"),D=require("./component-Ei1bxdq2.cjs"),A=require("./component.styles-Dpg-__rn.cjs"),L=require("./component-CLqcB5mM.cjs"),O=require("./component-86oA9dYz.cjs"),C=require("./component.styles-CD6ZzRrk.cjs"),P=require("./component-5Utdcc2G.cjs"),R=require("./component-DXRFP4Ym.cjs"),m=require("./component.functions-D9ffjEok.cjs"),g=require("./consts.cjs.js"),M=require("./context.hooks-6lCyn9Dp.cjs"),N=require("./context-_4lcMeym.cjs"),h=require("./context.functions-BoRkDnCa.cjs"),y=require("./context.constants-wztrdG5Q.cjs"),U=require("./context.hooks-DDtUqE34.cjs"),G=require("./context-Cr9zS5ai.cjs"),k=require("./context.hooks-OTo7Znss.cjs"),F=require("./context-q6vhN54o.cjs"),W=require("./context.functions-Bk5xMi0w.cjs"),j=require("./context.functions-ar41xFVo.cjs"),B=require("./context.hooks-D13tbrva.cjs"),b=require("./context.hooks-BIsapq-0.cjs"),q=require("./context.hooks-C8qSZOb4.cjs"),v=require("./functions.cjs.js"),z=require("./use-IhzeVumv.cjs"),V=require("./use-C1l0O0Qo.cjs"),f=require("./style-Drq-Q1Im.cjs"),w=require("./motion-DgB7M2Hn.cjs"),K=require("./style-fRZ6xrVp.cjs");exports.Outside=e.Outside,exports.useRemovePreviewLoader=t.useRemovePreviewLoader,exports.AccordionDetails=o.AccordionDetails,exports.AccordionStyledIcon=o.AccordionStyledIcon,exports.AccordionSummary=o.AccordionSummary,exports.AccordionSummaryContent=o.AccordionSummaryContent,exports.AccordionWrapper=o.AccordionWrapper,exports.AppContext=o.AppContext,exports.Button=o.Button,exports.ButtonGroupWrapper=o.ButtonGroupWrapper,exports.ButtonList=o.ButtonList,exports.CheckboxChildren=o.CheckboxChildren,exports.CheckboxGenre=o.CheckboxGenre,exports.CheckboxGroupItem=o.CheckboxGroupItem,exports.CheckboxGroupLabel=o.CheckboxGroupLabel,exports.CheckboxGroupSize=o.CheckboxGroupSize,exports.CheckboxGroupSizeConstructor=o.CheckboxGroupSizeConstructor,exports.CheckboxGroupWrapper=o.CheckboxGroupWrapper,exports.CheckboxSize=o.CheckboxSize,exports.CheckboxSizeConstructor=o.CheckboxSizeConstructor,exports.CheckboxWrapper=o.CheckboxWrapper,exports.ContainerDropdownListOption=o.ContainerDropdownListOption,exports.ContainerSelectListOption=o.ContainerSelectListOption,exports.DEFAULT_MAP_CENTER=o.DEFAULT_MAP_CENTER,exports.DEFAULT_MAP_MAX_ZOOM=o.DEFAULT_MAP_MAX_ZOOM,exports.DEFAULT_MAP_MIN_ZOOM=o.DEFAULT_MAP_MIN_ZOOM,exports.DEFAULT_MAP_THEME=o.DEFAULT_MAP_THEME,exports.DEFAULT_MAP_ZOOM=o.DEFAULT_MAP_ZOOM,exports.DEFAULT_PROVIDER_SONNER_BUTTON=o.DEFAULT_PROVIDER_SONNER_BUTTON,exports.DEFAULT_PROVIDER_SONNER_DURATION=o.DEFAULT_PROVIDER_SONNER_DURATION,exports.DEFAULT_PROVIDER_SONNER_GENRE=o.DEFAULT_PROVIDER_SONNER_GENRE,exports.DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM=o.DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM,exports.DEFAULT_PROVIDER_SONNER_SCALE=o.DEFAULT_PROVIDER_SONNER_SCALE,exports.DEFAULT_PROVIDER_SONNER_Y=o.DEFAULT_PROVIDER_SONNER_Y,exports.DEFAULT_PROVIDER_SONNER_Z_INDEX=o.DEFAULT_PROVIDER_SONNER_Z_INDEX,exports.DEFAULT_TOOLTIP_OFFSET_FALLBACK=o.DEFAULT_TOOLTIP_OFFSET_FALLBACK,exports.DEFAULT_TOOLTIP_PLACEMENT_FALLBACK=o.DEFAULT_TOOLTIP_PLACEMENT_FALLBACK,exports.DateDropdownDay=o.DateDropdownDay,exports.DateDropdownDayOfWeek=o.DateDropdownDayOfWeek,exports.DateDropdownDays=o.DateDropdownDays,exports.DateDropdownList=o.DateDropdownList,exports.DateDropdownListParent=o.DateDropdownListParent,exports.DateInput=o.DateInput,exports.DateInputButton=o.DateInputButton,exports.DateInputWrapper=o.DateInputWrapper,exports.DateWrapper=o.DateWrapper,exports.DropdownList=o.DropdownList,exports.DropdownListOption=o.DropdownListOption,exports.DropdownListOptionIcon=o.DropdownListOptionIcon,exports.DropdownListParent=o.DropdownListParent,exports.ErrorMessage=o.ErrorMessage,exports.ErrorMessageComponent=o.ErrorMessageComponent,exports.Icon=o.Icon,exports.ImageIMG=o.ImageIMG,exports.ImageSelectListSize=o.ImageSelectListSize,exports.ImageSelectListSizeConstructor=o.ImageSelectListSizeConstructor,exports.ImageSelectListWrapper=o.ImageSelectListWrapper,exports.ImageSelectSize=o.ImageSelectSize,exports.ImageSelectSizeConstructor=o.ImageSelectSizeConstructor,exports.ImageSelectWrapper=o.ImageSelectWrapper,exports.InputOTPSize=o.InputOTPSize,exports.InputOTPSizeConstructor=o.InputOTPSizeConstructor,exports.InputOTPWrapper=o.InputOTPWrapper,exports.InputPostfixChildren=o.InputPostfixChildren,exports.InputPrefixChildren=o.InputPrefixChildren,exports.InputSize=o.InputSize,exports.InputSizeConstructor=o.InputSizeConstructor,exports.JeneseiGlobalStyles=o.JeneseiGlobalStyles,exports.JeneseiPalette=o.JeneseiPalette,exports.KEY_SIZE_DATA=o.KEY_SIZE_DATA,exports.KEY_SIZE_DATA_TOGGLE=o.KEY_SIZE_DATA_TOGGLE,exports.MapWrapper=o.MapWrapper,exports.Preview=o.Preview,exports.ProviderApp=o.ProviderApp,exports.ProviderAppOutlet=o.ProviderAppOutlet,exports.ProviderAppOutletChildren=o.ProviderAppOutletChildren,exports.ProviderAppOutletFooter=o.ProviderAppOutletFooter,exports.ProviderAppOutletHeader=o.ProviderAppOutletHeader,exports.ProviderAppOutletLeftAside=o.ProviderAppOutletLeftAside,exports.ProviderAppOutletNav=o.ProviderAppOutletNav,exports.ProviderAppOutletNotification=o.ProviderAppOutletNotification,exports.ProviderAppOutletRightAside=o.ProviderAppOutletRightAside,exports.ProviderAppWrapper=o.ProviderAppWrapper,exports.ProviderSonner=o.ProviderSonner,exports.RangeThumb=o.RangeThumb,exports.RangeTrack=o.RangeTrack,exports.RangeWrapper=o.RangeWrapper,exports.Select=o.Select,exports.SelectLanguage=o.SelectLanguage,exports.SelectList=o.SelectList,exports.SelectListOption=o.SelectListOption,exports.SelectMapTheme=o.SelectMapTheme,exports.SelectMonth=o.SelectMonth,exports.SelectMonths=o.SelectMonths,exports.SelectTextArea=o.SelectTextArea,exports.SelectWrapper=o.SelectWrapper,exports.SelectYear=o.SelectYear,exports.Skeleton=o.Skeleton,exports.SliderDot=o.SliderDot,exports.SliderImage=o.SliderImage,exports.SonnerButtonWrapper=o.SonnerButtonWrapper,exports.SonnerContent=o.SonnerContent,exports.SonnerContentDescription=o.SonnerContentDescription,exports.SonnerContentTitle=o.SonnerContentTitle,exports.SonnerContext=o.SonnerContext,exports.SonnerElementWrapper=o.SonnerElementWrapper,exports.SonnerIcon=o.SonnerIcon,exports.SonnerLayout=o.SonnerLayout,exports.StyledButton=o.StyledButton,exports.StyledButtonIconsWrapper=o.StyledButtonIconsWrapper,exports.StyledIcon=o.StyledIcon,exports.StyledIconSkeleton=o.StyledIconSkeleton,exports.StyledInput=o.StyledInput,exports.StyledInputCSS=o.StyledInputCSS,exports.StyledInputNumeric=o.StyledInputNumeric,exports.StyledInputPattern=o.StyledInputPattern,exports.StyledInputWrapper=o.StyledInputWrapper,exports.StyledMotionInput=o.StyledMotionInput,exports.StyledSkeleton=o.StyledSkeleton,exports.StyledTextArea=o.StyledTextArea,exports.TextArea=o.TextArea,exports.TextAreaWrapper=o.TextAreaWrapper,exports.ThemeBlack=o.ThemeBlack,exports.ThemeLight=o.ThemeLight,exports.ThemeMapBustmarket=o.ThemeMapBustmarket,exports.ThemeMapCheckbox=o.ThemeMapCheckbox,exports.ThemeMapId=o.ThemeMapId,exports.ThemeMapLoading=o.ThemeMapLoading,exports.ThemeMapLogo=o.ThemeMapLogo,exports.ThemeMapRealebail=o.ThemeMapRealebail,exports.Title=o.Title,exports.ToggleCenter=o.ToggleCenter,exports.ToggleWrapper=o.ToggleWrapper,exports.Tooltip=o.Tooltip,exports.TooltipBox=o.TooltipBox,exports.TooltipContainer=o.TooltipContainer,exports.TooltipContent=o.TooltipContent,exports.Typography=o.Typography,exports.TypographyLink=o.TypographyLink,exports.TypographyTooltip=o.TypographyTooltip,exports.addDateDropdownDaySize=o.addDateDropdownDaySize,exports.addDateInputButtonSize=o.addDateInputButtonSize,exports.addDateInputWrapperSize=o.addDateInputWrapperSize,exports.addError=o.addError,exports.addInputIsInputEffect=o.addInputIsInputEffect,exports.addInputPlaceholder=o.addInputPlaceholder,exports.addInputPlaceholderNiceNumber=o.addInputPlaceholderNiceNumber,exports.addSXTypography=o.addSXTypography,exports.addTextArea=o.addTextArea,exports.addTooltipBoxSize=o.addTooltipBoxSize,exports.addTooltipBoxSizeConstructor=o.addTooltipBoxSizeConstructor,exports.getIconComponents=o.getIconComponents,exports.useBgColor=o.useBgColor,exports.useBgImage=o.useBgImage,exports.useDescription=o.useDescription,exports.useInjectSprites=o.useInjectSprites,exports.useLazyInjectSprite=o.useLazyInjectSprite,exports.useStatusBarColor=o.useStatusBarColor,exports.StyledScroll=r.StyledScroll,exports.Scroll=p.Scroll,exports.Smooth=s.Smooth,exports.Accordion=n.Accordion,exports.ButtonGroup=a.ButtonGroup,exports.Checkbox=i.Checkbox,exports.CheckboxGroup=x.CheckboxGroup,exports.DatePicker=c.DatePicker,exports.DatePickerVariant=c.DatePickerVariant,exports.Image=u.Image,exports.ImageButton=l.ImageButton,exports.ImageSelect=S.ImageSelect,exports.IMAGES=d.IMAGES,exports.ImageSlider=d.ImageSlider,exports.Input=T.Input,exports.formatPhoneNumber=T.formatPhoneNumber,exports.InputOTP=E.InputOTP,exports.CustomZoomControl=I.CustomZoomControl,exports.MapCluster=I.MapCluster,exports.MapDot=I.MapDot,exports.MarkerCluster=I.MarkerCluster,exports.UpdateMapSettings=I.UpdateMapSettings,exports.createClusterIcon=I.createClusterIcon,exports.customDefaultIcon=I.customDefaultIcon,exports.customTextIcon=I.customTextIcon,exports.DEFAULT_COMPONENT_PAGINATION_GAP=_.DEFAULT_COMPONENT_PAGINATION_GAP,exports.Pagination=_.Pagination,exports.Range=D.Range,exports.DEFAULT_RIPPLE_DURATION=A.DEFAULT_RIPPLE_DURATION,exports.DEFAULT_RIPPLE_ID=A.DEFAULT_RIPPLE_ID,exports.RippleContainer=A.RippleContainer,exports.RippleSpan=A.RippleSpan,exports.addRipple=A.addRipple,exports.addRippleDefault=A.addRippleDefault,exports.Ripple=L.Ripple,exports.Separator=O.Separator,exports.SeparatorWrapper=C.SeparatorWrapper,exports.Stack=P.Stack,exports.StackMotion=P.StackMotion,exports.StyledStack=P.StyledStack,exports.StyledStackMotion=P.StyledStackMotion,exports.Toggle=R.Toggle,exports.getFontSizeStyles=m.getFontSizeStyles,exports.LIBRARY_VERSION=g.LIBRARY_VERSION,exports.LIST_IMAGE_SUPPORTED_FORMAT=g.LIST_IMAGE_SUPPORTED_FORMAT,exports.LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT=g.LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT,exports.LIST_KEY_LANGUAGE=g.LIST_KEY_LANGUAGE,exports.LIST_KEY_SERVICE=g.LIST_KEY_SERVICE,exports.LIST_LANGUAGE=g.LIST_LANGUAGE,exports.LIST_MAP_THEME=g.LIST_MAP_THEME,exports.LIST_SERVICE=g.LIST_SERVICE,exports.LOCALE_INPUT=g.LOCALE_INPUT,exports.LOCALE_MONTHS=g.LOCALE_MONTHS,exports.LOCALE_WEEKS=g.LOCALE_WEEKS,exports.LOREM_IPSUM_TEXT=g.LOREM_IPSUM_TEXT,exports.OBJECT_LANGUAGE=g.OBJECT_LANGUAGE,exports.OBJECT_SERVICE=g.OBJECT_SERVICE,exports.useApp=M.useApp,exports.CookieContext=N.CookieContext,exports.ProviderCookie=N.ProviderCookie,exports.getFromCookie=h.getFromCookie,exports.setToCookie=h.setToCookie,exports.useCookie=h.useCookie,exports.DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT=y.DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT,exports.DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT=y.DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT,exports.DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND=y.DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND,exports.DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS=y.DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS,exports.DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT=y.DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT,exports.DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH=y.DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH,exports.DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING=y.DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING,exports.DialogContent=y.DialogContent,exports.DialogContext=y.DialogContext,exports.DialogElementWrapper=y.DialogElementWrapper,exports.DialogLayout=y.DialogLayout,exports.ProviderDialog=y.ProviderDialog,exports.useDialog=U.useDialog,exports.useDialogs=U.useDialogs,exports.GeolocationContext=G.GeolocationContext,exports.ProviderGeolocation=G.ProviderGeolocation,exports.useGeolocation=k.useGeolocation,exports.LocalStorageContext=F.LocalStorageContext,exports.ProviderLocalStorage=F.ProviderLocalStorage,exports.getFromLocalStorage=W.getFromLocalStorage,exports.setToLocalStorage=W.setToLocalStorage,exports.useLocalStorage=W.useLocalStorage,exports.urlBase64ToUint8Array=j.urlBase64ToUint8Array,exports.PermissionContext=B.PermissionContext,exports.ProviderPermission=B.ProviderPermission,exports.usePermission=B.usePermission,exports.ProviderScreenWidth=b.ProviderScreenWidth,exports.ScreenWidthContext=b.ScreenWidthContext,exports.useScreenWidth=b.useScreenWidth,exports.useSonner=q.useSonner,exports.getContrastYIQ=v.getContrastYIQ,exports.getScrollbarWidth=v.getScrollbarWidth,exports.transformEnumToOptions=v.transformEnumToOptions,exports.transformObjectToArray=v.transformObjectToArray,exports.transformObjectValuesToKeys=v.transformObjectValuesToKeys,exports.useDebouncedCallback=z.useDebouncedCallback,exports.useDeepCompareMemoize=V.useDeepCompareMemoize,exports.addAlwaysOutline=f.addAlwaysOutline,exports.addColorTransition=f.addColorTransition,exports.addDisabled=f.addDisabled,exports.addFont=f.addFont,exports.addFontSizeTransition=f.addFontSizeTransition,exports.addGridTransition=f.addGridTransition,exports.addNiceNumber=f.addNiceNumber,exports.addOutline=f.addOutline,exports.addOutlineChildren=f.addOutlineChildren,exports.addRemoveOutline=f.addRemoveOutline,exports.addRemoveScrollbar=f.addRemoveScrollbar,exports.addTransition=f.addTransition,exports.addTransitionWithoutSize=f.addTransitionWithoutSize,exports.BlurIn=w.BlurIn,exports.GradualSpacing=w.GradualSpacing,exports.TypingEffect=w.TypingEffect,exports.WordsPullUp=w.WordsPullUp,exports.addSX=K.addSX;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./area-pCo19R2g.cjs"),t=require("./area.hooks-C_UKZzcb.cjs"),o=require("./context.constants-B9vCuOqK.cjs"),r=require("./area.styles-BuceLNra.cjs"),p=require("./area-BG04bpxi.cjs"),s=require("./component-Cc8X-Z80.cjs"),n=require("./component-Ds4G9JaH.cjs"),a=require("./component-7NBd7NIb.cjs"),i=require("./component-BbZXNg5P.cjs"),x=require("./component-DTotEm4D.cjs"),c=require("./component.types-OChufSyJ.cjs"),u=require("./component-BzxsZZwo.cjs"),l=require("./component-CC8gkK9W.cjs"),S=require("./component-DC3s_be7.cjs"),d=require("./component.constants-DuIk1IUA.cjs"),T=require("./component-DgZATMAS.cjs"),E=require("./component-DYsviH75.cjs"),I=require("./component.components-DUGaqWm1.cjs"),_=require("./component.constants-VFLYS55V.cjs"),D=require("./component-Ei1bxdq2.cjs"),A=require("./component.styles-Dpg-__rn.cjs"),L=require("./component-CLqcB5mM.cjs"),O=require("./component-86oA9dYz.cjs"),C=require("./component.styles-CD6ZzRrk.cjs"),P=require("./component-5Utdcc2G.cjs"),R=require("./component-DXRFP4Ym.cjs"),m=require("./component.functions-D9ffjEok.cjs"),g=require("./consts.cjs.js"),M=require("./context.hooks-6lCyn9Dp.cjs"),N=require("./context-_4lcMeym.cjs"),h=require("./context.functions-BoRkDnCa.cjs"),y=require("./context.constants-wztrdG5Q.cjs"),U=require("./context.hooks-DDtUqE34.cjs"),G=require("./context-Cr9zS5ai.cjs"),k=require("./context.hooks-OTo7Znss.cjs"),F=require("./context-q6vhN54o.cjs"),W=require("./context.functions-Bk5xMi0w.cjs"),j=require("./context.functions-ar41xFVo.cjs"),B=require("./context.hooks-D13tbrva.cjs"),b=require("./context.hooks-BIsapq-0.cjs"),q=require("./context.hooks-C8qSZOb4.cjs"),v=require("./functions.cjs.js"),z=require("./use-IhzeVumv.cjs"),V=require("./use-C1l0O0Qo.cjs"),f=require("./style-Drq-Q1Im.cjs"),w=require("./motion-DgB7M2Hn.cjs"),K=require("./style-fRZ6xrVp.cjs");exports.Outside=e.Outside,exports.useRemovePreviewLoader=t.useRemovePreviewLoader,exports.AccordionDetails=o.AccordionDetails,exports.AccordionStyledIcon=o.AccordionStyledIcon,exports.AccordionSummary=o.AccordionSummary,exports.AccordionSummaryContent=o.AccordionSummaryContent,exports.AccordionWrapper=o.AccordionWrapper,exports.AppContext=o.AppContext,exports.Button=o.Button,exports.ButtonGroupWrapper=o.ButtonGroupWrapper,exports.ButtonList=o.ButtonList,exports.CheckboxChildren=o.CheckboxChildren,exports.CheckboxGenre=o.CheckboxGenre,exports.CheckboxGroupItem=o.CheckboxGroupItem,exports.CheckboxGroupLabel=o.CheckboxGroupLabel,exports.CheckboxGroupSize=o.CheckboxGroupSize,exports.CheckboxGroupSizeConstructor=o.CheckboxGroupSizeConstructor,exports.CheckboxGroupWrapper=o.CheckboxGroupWrapper,exports.CheckboxSize=o.CheckboxSize,exports.CheckboxSizeConstructor=o.CheckboxSizeConstructor,exports.CheckboxWrapper=o.CheckboxWrapper,exports.ContainerDropdownListOption=o.ContainerDropdownListOption,exports.ContainerSelectListOption=o.ContainerSelectListOption,exports.DEFAULT_MAP_CENTER=o.DEFAULT_MAP_CENTER,exports.DEFAULT_MAP_MAX_ZOOM=o.DEFAULT_MAP_MAX_ZOOM,exports.DEFAULT_MAP_MIN_ZOOM=o.DEFAULT_MAP_MIN_ZOOM,exports.DEFAULT_MAP_THEME=o.DEFAULT_MAP_THEME,exports.DEFAULT_MAP_ZOOM=o.DEFAULT_MAP_ZOOM,exports.DEFAULT_PROVIDER_SONNER_BUTTON=o.DEFAULT_PROVIDER_SONNER_BUTTON,exports.DEFAULT_PROVIDER_SONNER_DURATION=o.DEFAULT_PROVIDER_SONNER_DURATION,exports.DEFAULT_PROVIDER_SONNER_GENRE=o.DEFAULT_PROVIDER_SONNER_GENRE,exports.DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM=o.DEFAULT_PROVIDER_SONNER_MARGIN_BOTTOM,exports.DEFAULT_PROVIDER_SONNER_SCALE=o.DEFAULT_PROVIDER_SONNER_SCALE,exports.DEFAULT_PROVIDER_SONNER_Y=o.DEFAULT_PROVIDER_SONNER_Y,exports.DEFAULT_PROVIDER_SONNER_Z_INDEX=o.DEFAULT_PROVIDER_SONNER_Z_INDEX,exports.DEFAULT_TOOLTIP_OFFSET_FALLBACK=o.DEFAULT_TOOLTIP_OFFSET_FALLBACK,exports.DEFAULT_TOOLTIP_PLACEMENT_FALLBACK=o.DEFAULT_TOOLTIP_PLACEMENT_FALLBACK,exports.DateDropdownDay=o.DateDropdownDay,exports.DateDropdownDayOfWeek=o.DateDropdownDayOfWeek,exports.DateDropdownDays=o.DateDropdownDays,exports.DateDropdownList=o.DateDropdownList,exports.DateDropdownListParent=o.DateDropdownListParent,exports.DateInput=o.DateInput,exports.DateInputButton=o.DateInputButton,exports.DateInputWrapper=o.DateInputWrapper,exports.DateWrapper=o.DateWrapper,exports.DropdownList=o.DropdownList,exports.DropdownListOption=o.DropdownListOption,exports.DropdownListOptionIcon=o.DropdownListOptionIcon,exports.DropdownListParent=o.DropdownListParent,exports.ErrorMessage=o.ErrorMessage,exports.ErrorMessageComponent=o.ErrorMessageComponent,exports.Icon=o.Icon,exports.ImageIMG=o.ImageIMG,exports.ImageSelectListSize=o.ImageSelectListSize,exports.ImageSelectListSizeConstructor=o.ImageSelectListSizeConstructor,exports.ImageSelectListWrapper=o.ImageSelectListWrapper,exports.ImageSelectSize=o.ImageSelectSize,exports.ImageSelectSizeConstructor=o.ImageSelectSizeConstructor,exports.ImageSelectWrapper=o.ImageSelectWrapper,exports.InputOTPSize=o.InputOTPSize,exports.InputOTPSizeConstructor=o.InputOTPSizeConstructor,exports.InputOTPWrapper=o.InputOTPWrapper,exports.InputPostfixChildren=o.InputPostfixChildren,exports.InputPrefixChildren=o.InputPrefixChildren,exports.InputSize=o.InputSize,exports.InputSizeConstructor=o.InputSizeConstructor,exports.JeneseiGlobalStyles=o.JeneseiGlobalStyles,exports.JeneseiPalette=o.JeneseiPalette,exports.KEY_SIZE_DATA=o.KEY_SIZE_DATA,exports.KEY_SIZE_DATA_TOGGLE=o.KEY_SIZE_DATA_TOGGLE,exports.MapWrapper=o.MapWrapper,exports.Preview=o.Preview,exports.ProviderApp=o.ProviderApp,exports.ProviderAppOutlet=o.ProviderAppOutlet,exports.ProviderAppOutletChildren=o.ProviderAppOutletChildren,exports.ProviderAppOutletFooter=o.ProviderAppOutletFooter,exports.ProviderAppOutletHeader=o.ProviderAppOutletHeader,exports.ProviderAppOutletLeftAside=o.ProviderAppOutletLeftAside,exports.ProviderAppOutletNav=o.ProviderAppOutletNav,exports.ProviderAppOutletNotification=o.ProviderAppOutletNotification,exports.ProviderAppOutletRightAside=o.ProviderAppOutletRightAside,exports.ProviderAppWrapper=o.ProviderAppWrapper,exports.ProviderSonner=o.ProviderSonner,exports.RangeThumb=o.RangeThumb,exports.RangeTrack=o.RangeTrack,exports.RangeWrapper=o.RangeWrapper,exports.Select=o.Select,exports.SelectLanguage=o.SelectLanguage,exports.SelectList=o.SelectList,exports.SelectListOption=o.SelectListOption,exports.SelectMapTheme=o.SelectMapTheme,exports.SelectMonth=o.SelectMonth,exports.SelectMonths=o.SelectMonths,exports.SelectTextArea=o.SelectTextArea,exports.SelectWrapper=o.SelectWrapper,exports.SelectYear=o.SelectYear,exports.Skeleton=o.Skeleton,exports.SliderDot=o.SliderDot,exports.SliderImage=o.SliderImage,exports.SonnerButtonWrapper=o.SonnerButtonWrapper,exports.SonnerContent=o.SonnerContent,exports.SonnerContentDescription=o.SonnerContentDescription,exports.SonnerContentTitle=o.SonnerContentTitle,exports.SonnerContext=o.SonnerContext,exports.SonnerElementWrapper=o.SonnerElementWrapper,exports.SonnerIcon=o.SonnerIcon,exports.SonnerLayout=o.SonnerLayout,exports.StyledButton=o.StyledButton,exports.StyledButtonIconsWrapper=o.StyledButtonIconsWrapper,exports.StyledIcon=o.StyledIcon,exports.StyledIconSkeleton=o.StyledIconSkeleton,exports.StyledInput=o.StyledInput,exports.StyledInputCSS=o.StyledInputCSS,exports.StyledInputNumeric=o.StyledInputNumeric,exports.StyledInputPattern=o.StyledInputPattern,exports.StyledInputWrapper=o.StyledInputWrapper,exports.StyledMotionInput=o.StyledMotionInput,exports.StyledSkeleton=o.StyledSkeleton,exports.StyledTextArea=o.StyledTextArea,exports.TextArea=o.TextArea,exports.TextAreaWrapper=o.TextAreaWrapper,exports.ThemeBlack=o.ThemeBlack,exports.ThemeLight=o.ThemeLight,exports.ThemeMapBustmarket=o.ThemeMapBustmarket,exports.ThemeMapCheckbox=o.ThemeMapCheckbox,exports.ThemeMapId=o.ThemeMapId,exports.ThemeMapLoading=o.ThemeMapLoading,exports.ThemeMapLogo=o.ThemeMapLogo,exports.ThemeMapRealebail=o.ThemeMapRealebail,exports.Title=o.Title,exports.ToggleCenter=o.ToggleCenter,exports.ToggleWrapper=o.ToggleWrapper,exports.Tooltip=o.Tooltip,exports.TooltipBox=o.TooltipBox,exports.TooltipContainer=o.TooltipContainer,exports.TooltipContent=o.TooltipContent,exports.Typography=o.Typography,exports.TypographyLink=o.TypographyLink,exports.TypographyTooltip=o.TypographyTooltip,exports.addDateDropdownDaySize=o.addDateDropdownDaySize,exports.addDateInputButtonSize=o.addDateInputButtonSize,exports.addDateInputWrapperSize=o.addDateInputWrapperSize,exports.addError=o.addError,exports.addInputIsInputEffect=o.addInputIsInputEffect,exports.addInputPlaceholder=o.addInputPlaceholder,exports.addInputPlaceholderNiceNumber=o.addInputPlaceholderNiceNumber,exports.addSXTypography=o.addSXTypography,exports.addTextArea=o.addTextArea,exports.addTooltipBoxSize=o.addTooltipBoxSize,exports.addTooltipBoxSizeConstructor=o.addTooltipBoxSizeConstructor,exports.getIconComponents=o.getIconComponents,exports.useBgColor=o.useBgColor,exports.useBgImage=o.useBgImage,exports.useDescription=o.useDescription,exports.useInjectSprites=o.useInjectSprites,exports.useLazyInjectSprite=o.useLazyInjectSprite,exports.useStatusBarColor=o.useStatusBarColor,exports.StyledScroll=r.StyledScroll,exports.Scroll=p.Scroll,exports.Smooth=s.Smooth,exports.Accordion=n.Accordion,exports.ButtonGroup=a.ButtonGroup,exports.Checkbox=i.Checkbox,exports.CheckboxGroup=x.CheckboxGroup,exports.DatePicker=c.DatePicker,exports.DatePickerVariant=c.DatePickerVariant,exports.Image=u.Image,exports.ImageButton=l.ImageButton,exports.ImageSelect=S.ImageSelect,exports.IMAGES=d.IMAGES,exports.ImageSlider=d.ImageSlider,exports.Input=T.Input,exports.formatPhoneNumber=T.formatPhoneNumber,exports.InputOTP=E.InputOTP,exports.CustomZoomControl=I.CustomZoomControl,exports.MapCluster=I.MapCluster,exports.MapDot=I.MapDot,exports.MarkerCluster=I.MarkerCluster,exports.UpdateMapSettings=I.UpdateMapSettings,exports.createClusterIcon=I.createClusterIcon,exports.customDefaultIcon=I.customDefaultIcon,exports.customTextIcon=I.customTextIcon,exports.DEFAULT_COMPONENT_PAGINATION_GAP=_.DEFAULT_COMPONENT_PAGINATION_GAP,exports.Pagination=_.Pagination,exports.Range=D.Range,exports.DEFAULT_RIPPLE_DURATION=A.DEFAULT_RIPPLE_DURATION,exports.DEFAULT_RIPPLE_ID=A.DEFAULT_RIPPLE_ID,exports.RippleContainer=A.RippleContainer,exports.RippleSpan=A.RippleSpan,exports.addRipple=A.addRipple,exports.addRippleDefault=A.addRippleDefault,exports.Ripple=L.Ripple,exports.Separator=O.Separator,exports.SeparatorWrapper=C.SeparatorWrapper,exports.Stack=P.Stack,exports.StackMotion=P.StackMotion,exports.StyledStack=P.StyledStack,exports.StyledStackMotion=P.StyledStackMotion,exports.Toggle=R.Toggle,exports.getFontSizeStyles=m.getFontSizeStyles,exports.LIBRARY_VERSION=g.LIBRARY_VERSION,exports.LIST_IMAGE_SUPPORTED_FORMAT=g.LIST_IMAGE_SUPPORTED_FORMAT,exports.LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT=g.LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT,exports.LIST_KEY_LANGUAGE=g.LIST_KEY_LANGUAGE,exports.LIST_KEY_SERVICE=g.LIST_KEY_SERVICE,exports.LIST_LANGUAGE=g.LIST_LANGUAGE,exports.LIST_MAP_THEME=g.LIST_MAP_THEME,exports.LIST_SERVICE=g.LIST_SERVICE,exports.LOCALE_INPUT=g.LOCALE_INPUT,exports.LOCALE_MONTHS=g.LOCALE_MONTHS,exports.LOCALE_WEEKS=g.LOCALE_WEEKS,exports.LOREM_IPSUM_TEXT=g.LOREM_IPSUM_TEXT,exports.OBJECT_LANGUAGE=g.OBJECT_LANGUAGE,exports.OBJECT_SERVICE=g.OBJECT_SERVICE,exports.useApp=M.useApp,exports.CookieContext=N.CookieContext,exports.ProviderCookie=N.ProviderCookie,exports.getFromCookie=h.getFromCookie,exports.setToCookie=h.setToCookie,exports.useCookie=h.useCookie,exports.DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT=y.DEFAULT_PROVIDER_DIALOG_DURATION_ELEMENT,exports.DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT=y.DEFAULT_PROVIDER_DIALOG_DURATION_LAYOUT,exports.DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND=y.DEFAULT_PROVIDER_DIALOG_ELEMENT_BACKGROUND,exports.DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS=y.DEFAULT_PROVIDER_DIALOG_ELEMENT_BORDER_RADIUS,exports.DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT=y.DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_HEIGHT,exports.DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH=y.DEFAULT_PROVIDER_DIALOG_ELEMENT_MAX_WIDTH,exports.DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING=y.DEFAULT_PROVIDER_DIALOG_ELEMENT_PADDING,exports.DialogContent=y.DialogContent,exports.DialogContext=y.DialogContext,exports.DialogElementWrapper=y.DialogElementWrapper,exports.DialogLayout=y.DialogLayout,exports.ProviderDialog=y.ProviderDialog,exports.useDialog=U.useDialog,exports.useDialogs=U.useDialogs,exports.GeolocationContext=G.GeolocationContext,exports.ProviderGeolocation=G.ProviderGeolocation,exports.useGeolocation=k.useGeolocation,exports.LocalStorageContext=F.LocalStorageContext,exports.ProviderLocalStorage=F.ProviderLocalStorage,exports.getFromLocalStorage=W.getFromLocalStorage,exports.setToLocalStorage=W.setToLocalStorage,exports.useLocalStorage=W.useLocalStorage,exports.urlBase64ToUint8Array=j.urlBase64ToUint8Array,exports.PermissionContext=B.PermissionContext,exports.ProviderPermission=B.ProviderPermission,exports.usePermission=B.usePermission,exports.ProviderScreenWidth=b.ProviderScreenWidth,exports.ScreenWidthContext=b.ScreenWidthContext,exports.useScreenWidth=b.useScreenWidth,exports.useSonner=q.useSonner,exports.getContrastYIQ=v.getContrastYIQ,exports.getScrollbarWidth=v.getScrollbarWidth,exports.transformEnumToOptions=v.transformEnumToOptions,exports.transformObjectToArray=v.transformObjectToArray,exports.transformObjectValuesToKeys=v.transformObjectValuesToKeys,exports.useDebouncedCallback=z.useDebouncedCallback,exports.useDeepCompareMemoize=V.useDeepCompareMemoize,exports.addAlwaysOutline=f.addAlwaysOutline,exports.addColorTransition=f.addColorTransition,exports.addDisabled=f.addDisabled,exports.addFont=f.addFont,exports.addFontSizeTransition=f.addFontSizeTransition,exports.addGridTransition=f.addGridTransition,exports.addNiceNumber=f.addNiceNumber,exports.addOutline=f.addOutline,exports.addOutlineChildren=f.addOutlineChildren,exports.addRemoveOutline=f.addRemoveOutline,exports.addRemoveScrollbar=f.addRemoveScrollbar,exports.addTransition=f.addTransition,exports.addTransitionWithoutSize=f.addTransitionWithoutSize,exports.BlurIn=w.BlurIn,exports.GradualSpacing=w.GradualSpacing,exports.TypingEffect=w.TypingEffect,exports.WordsPullUp=w.WordsPullUp,exports.addSX=K.addSX;
2
2
  //# sourceMappingURL=index.cjs.js.map
package/build/index.es.js CHANGED
@@ -8,7 +8,7 @@ import { A as A2 } from "./component-CGXjLqiU.js";
8
8
  import { B as B2 } from "./component-CL9kCwRv.js";
9
9
  import { C as C2 } from "./component-CUg8vGc0.js";
10
10
  import { C as C3 } from "./component-zim9WtKE.js";
11
- import { D as D2, a as a10 } from "./component.types-DP9m5byW.js";
11
+ import { D as D2, a as a10 } from "./component.types-CW5HNGvz.js";
12
12
  import { I as I2 } from "./component-BCV2luzE.js";
13
13
  import { I as I3 } from "./component-BI5rC-2m.js";
14
14
  import { I as I4 } from "./component-C0wHqqsE.js";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "author": "Cyril Strone",
3
3
  "name": "@jenesei-software/jenesei-kit-react",
4
- "version": "1.3.26",
4
+ "version": "1.3.27",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/jenesei-software/jenesei-kit-react.git"
@@ -1,2 +0,0 @@
1
- "use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("./context.constants-B9vCuOqK.cjs");require("./component.styles-Dpg-__rn.cjs");const l=require("./component-CLqcB5mM.cjs"),n=require("./component-5Utdcc2G.cjs"),s=require("moment"),i=require("react"),a=require("styled-components");var o=(e=>(e.DD="DD",e.MM="MM",e.YYYY="YYYY",e))(o||{});exports.DatePicker=r=>{var u,d,c,f;const{onChange:p}=r,m=a.useTheme(),[x,g]=i.useState(null),[h,D]=i.useState(s(r.dateDefault).utc()),[v,b]=i.useState({[o.DD]:"",[o.MM]:"",[o.YYYY]:""}),M=i.useRef(v);i.useEffect(()=>{M.current=v},[v]);const y=i.useMemo(()=>""!==v[o.DD]||""!==v[o.MM]||""!==v[o.YYYY],[v]),Y=i.useCallback(()=>{b({[o.DD]:"",[o.MM]:"",[o.YYYY]:""})},[]),[O,S]=i.useState(null),[j,$]=i.useState(!1),k=i.useMemo(()=>{if(!r.mode||0===r.mode.length)return[o.DD,o.MM,o.YYYY];return new Set(r.mode).size!==r.mode.length?[o.DD,o.MM,o.YYYY]:r.mode},[r.mode]),E=i.useCallback(e=>{const t=k.indexOf(e);return t<k.length-1?k[t+1]:k[0]},[k]),R=i.useCallback(e=>{const t=k.indexOf(e);return t>0?k[t-1]:k[k.length-1]},[k]),w=i.useCallback((e,t,l,n)=>{const i=e.DD,a=e.MM,o=e.YYYY,r=""===i?NaN:Number(i),u=""===a?NaN:Number(a),d=""===o?NaN:Number(o),c=""!==i||""!==a||""!==o;if(Number.isNaN(r)||Number.isNaN(u)||Number.isNaN(d))null==n||n(c);else{const e=s.utc(`${r}.${u}.${d}`,"D.M.YYYY",!0).startOf("day");e.isValid()?null==t||t(e.valueOf()):null==l||l()}},[]),z=i.useMemo(()=>{const e=[o.DD,o.MM,o.YYYY],t=Object.fromEntries(e.map(e=>[e,{type:e,value:v[e],placeholder:r.locale.inputs[e===o.DD?"day":e===o.MM?"month":"year"],isFirst:k[0]===e,isLast:k[k.length-1]===e,segmentNext:E(e),segmentPrev:R(e),onNextSegment:()=>S(E(e)),onPrevSegment:()=>S(R(e)),setValue:t=>b(l=>({...l,[e]:t})),setActive:()=>S(e)}]));return{sort:k.map(e=>t[e]).filter(Boolean),default:t}},[r,E,R,k,v]),C=i.useMemo(()=>["mo","tu","we","th","fr","sa","su"].map((e,t)=>{const l=r.locale.weeks.find(t=>t.value===e);return{index:t,label:(null==l?void 0:l.localeShort)??e.toUpperCase()}}),[r.locale.weeks]),N=i.useMemo(()=>{const e=s.utc(),t=x??h,l=t.clone().startOf("month"),n=t.clone().endOf("month"),i=r.dateMin?s.utc(r.dateMin):null,a=r.dateMax?s.utc(r.dateMax):null,o=l.clone().subtract(l.isoWeekday()-1,"days"),u=n.clone().add(7-n.isoWeekday(),"days"),d=[],c=o.clone();for(;c<=u;){const t=c.isBetween(l,n,"day","[]");d.push({value:c.valueOf(),labelString:c.format("dd"),labelNumber:c.date(),dayOfWeek:c.isoWeekday(),isWeekend:[6,7].includes(c.isoWeekday()),weekOfMonth:Math.ceil((d.length+1)/7),isToday:c.isSame(e,"day"),isCurrentMonth:t,isDisabled:!!(i&&c.isBefore(i,"day")||a&&c.isAfter(a,"day"))}),c.add(1,"day")}return d},[x,h,r.dateMax,r.dateMin]),V=i.useMemo(()=>function(e){const t=Math.floor(e/7);return e%7>0?t+1:t}(N.length)+1,[N]),A=i.useMemo(()=>40+28*V+6*(V-1)+2*t.KEY_SIZE_DATA[r.size].padding,[r.size,V]),P=i.useMemo(()=>t.KEY_SIZE_DATA[r.size].radius,[r.size]),B=i.useMemo(()=>t.KEY_SIZE_DATA[r.size].padding,[r.size]),W=i.useMemo(()=>null!==x,[x]),I=i.useMemo(()=>{const e=(x??h).clone().add(1,"month").startOf("month");return!!r.dateMax&&e.isAfter(s.utc(r.dateMax),"month")},[x,r.dateMax,h]),T=i.useMemo(()=>{const e=(x??h).clone().subtract(1,"month").startOf("month");return!!r.dateMin&&e.isBefore(s.utc(r.dateMin),"month")},[x,r.dateMin,h]),[F,L]=i.useState(!1),q=i.useRef(""),H=i.useRef(null),K=i.useRef(null),_=i.useRef(null),U=i.useCallback(()=>{var e;null==(e=r.onFocus)||e.call(r)},[r.onFocus]),Z=i.useCallback(()=>{var e;null==(e=r.onBlur)||e.call(r)},[r.onBlur]),G=i.useCallback(()=>{S(null)},[]),{isOpen:J,refReference:Q,refFloating:X,floatingStyles:ee,close:te,toggle:le}=t.usePopover({placement:"bottom-start",offset:B,mode:"independence",isClickOutside:!0,refsExcludeClickOutside:[H,K],isDisabled:(null==r?void 0:r.isDisabled)||(null==r?void 0:r.isReadOnly),onFocus:U,onBlur:Z,onBlurReference:G}),ne=i.useMemo(()=>!(F||W||!r.labelPlaceholder||J||y||O),[F,W,J,r.labelPlaceholder,y,O]),se=i.useCallback((e,t,l)=>{const n=s(e).utc(),i=n.clone().date().toString(),a=(n.clone().month()+1).toString(),r=i.padStart(2,"0"),u=a.padStart(2,"0"),d=n.clone().year().toString(),c=null==l?void 0:l[o.DD],f=null==l?void 0:l[o.MM],m=null==l?void 0:l[o.YYYY],h=r===c&&u===f&&m===d,D=null==x?void 0:x.isSame(n,"day");D||(g(n),p(n.valueOf())),D&&!l||h||b({[o.DD]:t?r:i,[o.MM]:t?u:a,[o.YYYY]:d})},[x,p]),ie=i.useCallback(e=>{var t;const l=e.key,n=/^\d$/.test(l);if(n||["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Backspace","Delete","Tab","Enter"].includes(l)||e.ctrlKey||e.metaKey){if(O&&z.default[O]){if(n){!function(e,t,l,n){const s=e,i=t,a=l[i]??"";if(i===o.DD){if(a.length>=2)return void n.default[i].setValue(s);if(""===a)return void n.default[i].setValue(s);const e=a+s,t=Number(e);if(t>31)return void n.default[i].setValue(s);if(0===t)return void n.default[i].setValue(s);n.default[i].setValue(e),n.default[i].onNextSegment()}else if(i===o.MM){if(a.length>=2)return void n.default[i].setValue(s);if(""===a)return void n.default[i].setValue(s);const e=a+s,t=Number(e);if(t>12)return void n.default[i].setValue(s);if(0===t)return void n.default[i].setValue(s);n.default[i].setValue(e),(2===e.length||1===e.length&&Number(e)>1)&&n.default[i].onNextSegment()}else if(i===o.YYYY){if(a.length>=4)return void n.default[i].setValue(s);const e=a+s;n.default[i].setValue(e)}}(l,O,v,z),e.preventDefault(),e.stopPropagation()}if("Tab"===l&&(z.default[O].isLast?null==(t=null==_?void 0:_.current)||t.blur():(e.preventDefault(),z.default[O].onNextSegment())),"Enter"===l&&(e.preventDefault(),e.stopPropagation()),"Backspace"===l||"Delete"===l){if(O===o.DD)if(""!==v.DD){const e=v.DD;if(1===e.length)z.default[O].setValue("");else{const t=e.slice(0,-1);z.default[O].setValue(t)}}else z.default[O].onPrevSegment();else if(O===o.MM)if(""!==v.MM){const e=v.MM;if(1===e.length)z.default[O].setValue("");else{const t=e.slice(0,-1);z.default[O].setValue(t)}}else z.default[O].onPrevSegment();else if(O===o.YYYY)if(""!==v.YYYY){const e=v.YYYY;if(1===e.length)z.default[O].setValue("");else{const t=e.slice(0,-1);z.default[O].setValue(t)}}else z.default[O].onPrevSegment();e.preventDefault(),e.stopPropagation()}"ArrowLeft"!==l&&"ArrowDown"!==l||(e.preventDefault(),z.default[O].onPrevSegment()),"ArrowRight"!==l&&"ArrowUp"!==l||(e.preventDefault(),z.default[O].onNextSegment())}}else e.preventDefault()},[O,v,z.default,z]),ae=i.useCallback(()=>{const e=(x??h).clone().add(1,"month");se(e.valueOf(),!0)},[x,se,h]),oe=i.useCallback(()=>{const e=(x??h).clone().subtract(1,"month");se(e.valueOf(),!0)},[x,se,h]);return i.useEffect(()=>{D(s(r.dateDefault).utc())},[r.dateDefault]),i.useEffect(()=>{if(g(r.value||r.defaultValue?s(r.value??r.defaultValue).utc():null),r.value){const e=s(r.value).utc();b({[o.DD]:e.date().toString().padStart(2,"0"),[o.MM]:(e.month()+1).toString().padStart(2,"0"),[o.YYYY]:e.year().toString()})}},[r.value,r.defaultValue]),i.useEffect(()=>{O||w(v,e=>{se(e,!0,v),$(!1)},()=>{p(null),$(!0)},e=>{e||(p(null),$(!1))})},[w,se,p,v,O]),i.useEffect(()=>{J||F||!y||O||w(v,()=>{},()=>{p(null),Y(),$(!1)},()=>{p(null),Y(),$(!1)})},[w,Y,v,J,F,p,y,O]),i.useEffect(()=>{O&&w(M.current,e=>{se(e,!0,M.current),$(!1)},()=>{$(!0)},e=>{e||$(!1)})},[se,w,O]),i.useEffect(()=>{var e;O&&(te(),null==(e=null==_?void 0:_.current)||e.focus())},[O,te]),e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsx(t.DateWrapper,{$size:r.size,$genre:r.genre,$sx:r.sx,$isDisabled:null==r?void 0:r.isDisabled,$isMinWidth:null==r?void 0:r.isMinWidth,$radius:P,$parentListHeight:A,tabIndex:-1,children:e.jsxRuntimeExports.jsxs(t.DateInputWrapper,{ref:Q,$genre:r.genre,$size:r.size,$isShowPlaceholder:ne,$isDisabled:null==r?void 0:r.isDisabled,$isReadOnly:null==r?void 0:r.isReadOnly,$isDisabledOutline:null==r?void 0:r.isDisabledOutline,$isOutlineBoxShadow:null==r?void 0:r.isOutlineBoxShadow,tabIndex:-1,$error:j?{isError:!0,size:(null==(u=null==r?void 0:r.error)?void 0:u.size)??r.size,...r.notValidDate}:r.error,$isOpen:J||!!O,onClick:()=>{O||(null==r?void 0:r.isReadOnly)||S(o.DD)},children:[e.jsxRuntimeExports.jsx("input",{name:r.name,id:r.id,ref:_,type:"tel",inputMode:"numeric",tabIndex:0,disabled:(null==r?void 0:r.isDisabled)||(null==r?void 0:r.isReadOnly),style:{position:"absolute",left:"-100dvw",top:0,width:"100%",height:"100%",opacity:0,border:"none",background:"transparent"},onKeyDown:ie,onChange:e=>{const t=e.target.value,l=q.current,n=t.length>l.length?t.slice(-1):null;q.current=t,n&&/^\d$/.test(n)&&ie({key:n,preventDefault:()=>{},stopPropagation:()=>{}}),t.length<l.length&&ie({key:"Backspace",preventDefault:()=>{},stopPropagation:()=>{}})},onFocus:()=>{L(!0),O||S(o.DD)},onBlur:()=>{var e;L(!1),J||null==(e=r.onBlur)||e.call(r)}}),ne?e.jsxRuntimeExports.jsx(t.Typography,{sx:{default:{size:16,line:1,isNoUserSelect:!0}},sxStandard:e=>({default:{color:e.colors.input[r.genre].color.placeholder}}),children:r.labelPlaceholder}):z.sort.map((l,n)=>{var s,a;return e.jsxRuntimeExports.jsxs(i.Fragment,{children:[e.jsxRuntimeExports.jsx(t.DateInput,{$isHaveValue:!!l.value,$isActive:O===l.type,$genre:r.genre,$size:r.size,$font:{...r.font,size:(null==(s=r.font)?void 0:s.size)??16,weight:(null==(a=r.font)?void 0:a.weight)??(r.isBold?500:400)},onClick:e=>{e.preventDefault(),e.stopPropagation(),(null==r?void 0:r.isDisabled)||(null==r?void 0:r.isReadOnly)||l.setActive()},children:l.value||l.placeholder||""}),n!==z.sort.length-1&&e.jsxRuntimeExports.jsx("span",{style:{width:"4px",pointerEvents:"none",textAlign:"center"},children:"."})]},l.type)}),e.jsxRuntimeExports.jsx(t.DateInputButton,{genre:r.genre,size:"small",isWidthAsHeight:!0,isFullSize:!0,isRadius:!0,isWhileTapEffect:!0,isOnlyIcon:!0,isDisabledRipple:!0,icons:[{name:"Calendar",type:"id"}],isDisabled:(null==r?void 0:r.isDisabled)||(null==r?void 0:r.isReadOnly),onFocus:e=>{e.preventDefault(),e.stopPropagation(),S(null)},onClick:e=>{e.preventDefault(),e.stopPropagation(),le()}})]})}),e.jsxRuntimeExports.jsx(t.Popover,{sx:e=>({default:{background:e.colors.input[r.genre].background.rest,border:`solid 1px ${e.colors.input[r.genre].border.rest}`}}),size:r.size,genre:r.genre,isOpen:J,isShowAlwaysOutline:!0,floatingStyles:ee,ref:X,children:e.jsxRuntimeExports.jsxs(t.DateDropdownList,{$isInputEffect:r.isInputEffect,$genre:r.genre,$size:r.size,children:[e.jsxRuntimeExports.jsxs(n.Stack,{sx:{default:{justifyContent:"space-between",alignItems:"center"}},children:[e.jsxRuntimeExports.jsx(t.Button,{type:"button",isRadius:!0,isWhileTapEffect:!0,icons:[{name:"Arrow2",type:"id",turn:90}],isWidthAsHeight:!0,genre:r.genre,size:"small",onClick:()=>!T&&oe(),isDisabledRipple:!0,isHidden:T,isDisabled:T}),e.jsxRuntimeExports.jsxs(n.Stack,{sx:{default:{gap:"8px"}},children:[e.jsxRuntimeExports.jsx(t.SelectMonth,{monthsLocale:r.locale.months,genre:r.genre,size:"small",value:(x??h).clone().startOf("month").utc().valueOf(),isOnClickOptionClose:!0,isStayValueAfterSelect:!0,isOnlyColorInSelectListOption:!0,isCenter:!0,isShortLabel:!0,refFloating:H,onChange:e=>{e&&se(e,!0)},dateMin:r.dateMin,dateMax:r.dateMax,sx:{default:{width:"60px"}}}),e.jsxRuntimeExports.jsx(t.SelectYear,{genre:r.genre,size:"small",refFloating:K,value:(x??h).clone().startOf("year").utc().valueOf(),onChange:e=>{e&&se(e,!0)},isOnClickOptionClose:!0,isStayValueAfterSelect:!0,isOnlyColorInSelectListOption:!0,isCenter:!0,dateMin:r.dateMin,dateMax:r.dateMax,sx:{default:{width:"60px"}}})]}),e.jsxRuntimeExports.jsx(t.Button,{type:"button",isWhileTapEffect:!0,onClick:()=>!I&&ae(),isWidthAsHeight:!0,isRadius:!0,icons:[{name:"Arrow2",type:"id",turn:-90}],genre:r.genre,size:"small",isDisabledRipple:!0,isDisabled:I,isHidden:I})]}),e.jsxRuntimeExports.jsxs(t.DateDropdownDays,{$rows:V,children:[C.map((l,n)=>{var s;return e.jsxRuntimeExports.jsx(t.DateDropdownDayOfWeek,{$font:{...r.font,size:12,weight:700},tabIndex:-1,type:"button",$isToday:!1,$isWeekend:!1,$genre:r.genre,$size:r.size,$row:(null==(s=N[0])?void 0:s.weekOfMonth)-1,$column:n+1,children:l.label},`${l.label}-${n}`)}),N.map(n=>e.jsxRuntimeExports.jsxs(t.DateDropdownDay,{$font:{...r.font,size:12,weight:700},type:"button",$isDisabled:n.isDisabled,$isDisabledOutline:n.isDisabled??r.isDisabledOutline,$isOutlineBoxShadow:r.isOutlineBoxShadow,$isReadOnly:r.isReadOnly,$genre:r.genre,$size:r.size,$row:(null==n?void 0:n.weekOfMonth)+1,$column:n.dayOfWeek,onClick:()=>{n.isDisabled||(se(n.value,!0),r.isOnClickClose&&te())},tabIndex:n.isDisabled?-1:0,$isToday:n.isToday,$isWeekend:n.isWeekend,$isChoice:n.value===(null==x?void 0:x.valueOf()),$isCurrentMonth:n.isCurrentMonth,children:[e.jsxRuntimeExports.jsx(l.Ripple,{color:m.colors.date[r.genre].color.rest,isDisabled:n.isDisabled}),n.labelNumber]},n.value))]})]})}),j||(null==r?void 0:r.error)?e.jsxRuntimeExports.jsx(t.ErrorMessage,{...j?{isError:!0,size:(null==(d=null==r?void 0:r.error)?void 0:d.size)??r.size,...r.notValidDate}:r.error,size:(null==(c=null==r?void 0:r.error)?void 0:c.size)??r.size,font:{size:12,weight:400,family:(null==(f=r.font)?void 0:f.family)??m.font.family}}):null]})},exports.DatePickerVariant=o;
2
- //# sourceMappingURL=component.types-BMh5sB6v.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.types-BMh5sB6v.cjs","sources":["../src/components/date-picker/component.types.ts","../src/components/date-picker/component.tsx"],"sourcesContent":["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","import { Button } from '@local/components/button';\nimport { Ripple } from '@local/components/ripple';\nimport { SelectMonth, SelectYear } from '@local/components/select';\nimport { Stack } from '@local/components/stack';\nimport { ErrorMessage } from '@local/styles/error';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport moment, { Moment } from 'moment';\nimport { Fragment, KeyboardEvent, RefObject, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { Popover, usePopover } from '../popover';\nimport { Typography } from '../typography';\nimport {\n DateDayProps,\n DateDropdownDay,\n DateDropdownDayOfWeek,\n DateDropdownDays,\n DateDropdownList,\n DateInput,\n DateInputButton,\n DateInputWrapper,\n DatePickerMode,\n DatePickerProps,\n DatePickerVariant,\n DateWrapper,\n WeekItem,\n} from '.';\n\nfunction countSevens(number: number) {\n const divisor = 7;\n const count = Math.floor(number / divisor);\n const remainder = number % divisor;\n\n return remainder > 0 ? count + 1 : count;\n}\n\nexport const DatePicker = (props: DatePickerProps) => {\n const { onChange } = props;\n const theme = useTheme();\n\n const [valueMoment, setValueMoment] = useState<null | Moment>(null);\n const [dateDefaultMoment, setDateDefaultMoment] = useState<Moment>(moment(props.dateDefault).utc());\n\n // Изменяем тип с number | null на string\n const [input, setInput] = useState<Record<DatePickerVariant, string>>({\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n });\n const refInputValue = useRef(input);\n useEffect(() => {\n refInputValue.current = input;\n }, [input]);\n // Обновляем проверку на наличие input\n const isHasInput = useMemo(() => {\n return (\n input[DatePickerVariant.DD] !== '' || input[DatePickerVariant.MM] !== '' || input[DatePickerVariant.YYYY] !== ''\n );\n }, [input]);\n\n const onClearInput = useCallback(() => {\n setInput({\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n });\n }, []);\n\n const [activeSegment, setActiveSegment] = useState<DatePickerVariant | null>(null);\n const [isError, setIsError] = useState(false);\n\n const mode: DatePickerMode = useMemo(() => {\n if (!props.mode || props.mode.length === 0) {\n return [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY]; // дефолт\n }\n\n const hasDuplicates = new Set(props.mode).size !== props.mode.length;\n\n if (hasDuplicates) {\n return [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY]; // дефолт при дублировании\n }\n\n return props.mode;\n }, [props.mode]);\n\n const getNextSegment = useCallback(\n (currentSegment: DatePickerVariant): DatePickerVariant | null => {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex < mode.length - 1 ? mode[currentIndex + 1] : mode[0];\n },\n [mode],\n );\n\n const getPrevSegment = useCallback(\n (currentSegment: DatePickerVariant): DatePickerVariant | null => {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex > 0 ? mode[currentIndex - 1] : mode[mode.length - 1];\n },\n [mode],\n );\n\n // Обновляем функцию валидации для работы со строками\n const getValidateInput = useCallback(\n (\n input: Record<DatePickerVariant, string>,\n onSuccess?: (value: number) => void,\n onFailure?: () => void,\n onNan?: (isHasInput: boolean) => void,\n ) => {\n const dayStr = input.DD;\n const monthStr = input.MM;\n const yearStr = input.YYYY;\n\n const day = dayStr === '' ? NaN : Number(dayStr);\n const month = monthStr === '' ? NaN : Number(monthStr);\n const year = yearStr === '' ? NaN : Number(yearStr);\n\n const isHasInput = dayStr !== '' || monthStr !== '' || yearStr !== '';\n\n if (!Number.isNaN(day) && !Number.isNaN(month) && !Number.isNaN(year)) {\n const m = moment.utc(`${day}.${month}.${year}`, 'D.M.YYYY', true).startOf('day');\n if (m.isValid()) {\n onSuccess?.(m.valueOf());\n } else {\n onFailure?.();\n }\n } else {\n onNan?.(isHasInput);\n }\n },\n [],\n );\n\n const dataDate = useMemo(() => {\n const segments = [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY];\n\n const result = Object.fromEntries(\n segments.map((segment) => [\n segment,\n {\n type: segment,\n value: input[segment],\n placeholder:\n props.locale.inputs[\n segment === DatePickerVariant.DD ? 'day' : segment === DatePickerVariant.MM ? 'month' : 'year'\n ],\n isFirst: mode[0] === segment,\n isLast: mode[mode.length - 1] === segment,\n segmentNext: getNextSegment(segment),\n segmentPrev: getPrevSegment(segment),\n onNextSegment: () => setActiveSegment(getNextSegment(segment)),\n onPrevSegment: () => setActiveSegment(getPrevSegment(segment)),\n setValue: (value: string) => setInput((prev) => ({ ...prev, [segment]: value })),\n setActive: () => setActiveSegment(segment),\n },\n ]),\n ) as Record<\n DatePickerVariant,\n {\n type: DatePickerVariant;\n value: string;\n placeholder: string;\n isFirst: boolean;\n isLast: boolean;\n segmentNext: DatePickerVariant | null;\n segmentPrev: DatePickerVariant | null;\n onNextSegment: () => void;\n onPrevSegment: () => void;\n setValue: (value: string) => void;\n setActive: () => void;\n }\n >;\n\n const resultSort = mode.map((segment) => result[segment]).filter(Boolean);\n\n return { sort: resultSort, default: result };\n }, [props, getNextSegment, getPrevSegment, mode, input]);\n\n const daysInWeek = useMemo(() => {\n const weekOrder: WeekItem['value'][] = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'];\n\n return weekOrder.map((key, index) => {\n const found = props.locale.weeks.find((w) => w.value === key);\n return {\n index,\n label: found?.localeShort ?? key.toUpperCase(),\n };\n });\n }, [props.locale.weeks]);\n\n const daysInMonth: DateDayProps[] = useMemo(() => {\n const today = moment.utc();\n const baseMoment = valueMoment ?? dateDefaultMoment;\n const startOfMonth = baseMoment.clone().startOf('month');\n const endOfMonth = baseMoment.clone().endOf('month');\n\n const dateMin = props.dateMin ? moment.utc(props.dateMin) : null;\n const dateMax = props.dateMax ? moment.utc(props.dateMax) : null;\n\n // Определяем диапазон дат (с учетом дней до и после месяца)\n const firstVisibleDay = startOfMonth.clone().subtract(startOfMonth.isoWeekday() - 1, 'days');\n const lastVisibleDay = endOfMonth.clone().add(7 - endOfMonth.isoWeekday(), 'days');\n\n const days: DateDayProps[] = [];\n const currentDate = firstVisibleDay.clone();\n\n while (currentDate <= lastVisibleDay) {\n const isCurrentMonth = currentDate.isBetween(startOfMonth, endOfMonth, 'day', '[]');\n days.push({\n value: currentDate.valueOf(),\n labelString: currentDate.format('dd'),\n labelNumber: currentDate.date(),\n dayOfWeek: currentDate.isoWeekday(),\n isWeekend: [6, 7].includes(currentDate.isoWeekday()),\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: currentDate.isSame(today, 'day'),\n isCurrentMonth,\n isDisabled: !!(\n (dateMin && currentDate.isBefore(dateMin, 'day')) ||\n (dateMax && currentDate.isAfter(dateMax, 'day'))\n ),\n });\n\n currentDate.add(1, 'day');\n }\n\n return days;\n }, [valueMoment, dateDefaultMoment, props.dateMax, props.dateMin]);\n\n const rows = useMemo(() => countSevens(daysInMonth.length) + 1, [daysInMonth]);\n\n const height = useMemo(\n () => 40 + rows * 28 + (rows - 1) * 6 + KEY_SIZE_DATA[props.size].padding * 2,\n [props.size, rows],\n );\n\n const sizeRadius = useMemo(() => KEY_SIZE_DATA[props.size].radius, [props.size]);\n const sizePadding = useMemo(() => KEY_SIZE_DATA[props.size].padding, [props.size]);\n\n const isHasValue = useMemo(() => {\n return valueMoment !== null;\n }, [valueMoment]);\n const isBlockNextMonth = useMemo(() => {\n const nextMonth = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month').startOf('month');\n const isBeforeEndDate = props.dateMax ? nextMonth.isAfter(moment.utc(props.dateMax), 'month') : false;\n return isBeforeEndDate;\n }, [valueMoment, props.dateMax, dateDefaultMoment]);\n const isBlockPrevMonth = useMemo(() => {\n const prevMonth = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month').startOf('month');\n const isAfterStartDate = props.dateMin ? prevMonth.isBefore(moment.utc(props.dateMin), 'month') : false;\n return isAfterStartDate;\n }, [valueMoment, props.dateMin, dateDefaultMoment]);\n\n const [isInputFocused, setIsInputFocused] = useState(false);\n\n const refPrevValue = useRef('');\n const refSelectMonth = useRef<HTMLElement>(null);\n const refSelectYear = useRef<HTMLElement>(null);\n const refHiddenInput = useRef<HTMLInputElement>(null);\n\n const onFocusPopover = useCallback(() => {\n props.onFocus?.();\n }, [props.onFocus]);\n const onBlurPopover = useCallback(() => {\n props.onBlur?.();\n }, [props.onBlur]);\n const onBlurReference = useCallback(() => {\n setActiveSegment(null);\n }, []);\n const { isOpen, refReference, refFloating, floatingStyles, close, toggle } = usePopover({\n placement: 'bottom-start',\n offset: sizePadding,\n mode: 'independence',\n isClickOutside: true,\n refsExcludeClickOutside: [refSelectMonth, refSelectYear],\n isDisabled: props?.isDisabled || props?.isReadOnly,\n onFocus: onFocusPopover,\n onBlur: onBlurPopover,\n onBlurReference: onBlurReference,\n });\n\n const isShowPlaceholder = useMemo(() => {\n return !!(!isInputFocused && !isHasValue && props.labelPlaceholder && !isOpen && !isHasInput && !activeSegment);\n }, [isInputFocused, isHasValue, isOpen, props.labelPlaceholder, isHasInput, activeSegment]);\n\n const onChangeDate = useCallback(\n (timestamp: number, isAddLeadingZeros: boolean, input?: Record<DatePickerVariant, string>) => {\n const momentNewDate = moment(timestamp).utc();\n\n const dd = momentNewDate.clone().date().toString();\n const mm = (momentNewDate.clone().month() + 1).toString();\n\n const ddWithZero = dd.padStart(2, '0');\n const mmWithZero = mm.padStart(2, '0');\n\n const yyyy = momentNewDate.clone().year().toString();\n const ddInput = input?.[DatePickerVariant.DD];\n const mmInput = input?.[DatePickerVariant.MM];\n const yyyyInput = input?.[DatePickerVariant.YYYY];\n\n const isSameInput = ddWithZero === ddInput && mmWithZero === mmInput && yyyyInput === yyyy;\n const isSameMoment = valueMoment?.isSame(momentNewDate, 'day');\n if (!isSameMoment) {\n setValueMoment(momentNewDate);\n onChange(momentNewDate.valueOf());\n }\n\n if (!isSameMoment || input ? !isSameInput : false) {\n setInput({\n [DatePickerVariant.DD]: isAddLeadingZeros ? ddWithZero : dd,\n [DatePickerVariant.MM]: isAddLeadingZeros ? mmWithZero : mm,\n [DatePickerVariant.YYYY]: yyyy,\n });\n }\n },\n [valueMoment, onChange],\n );\n\n // const onNextSegment = useCallback(\n // (\n // newInput: Record<DatePickerVariant, string>,\n // ) => {\n // if(newInput){\n // getValidateInput(\n // newInput,\n // (value) => {\n // onChangeDate(value, true);\n // setIsError(false);\n // },\n // () => {\n // setIsError(true);\n // },\n // () => {\n // setIsError(true);\n // },\n // );\n // }else{\n\n // }\n\n // },\n // [getValidateInput, onChangeDate],\n // );\n const onKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n const key = e.key;\n\n const allowedKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Backspace', 'Delete', 'Tab', 'Enter'];\n\n const isDigit = /^\\d$/.test(key);\n const isAllowed = isDigit || allowedKeys.includes(key) || e.ctrlKey || e.metaKey;\n\n if (!isAllowed) {\n e.preventDefault();\n return;\n }\n\n if (activeSegment && dataDate.default[activeSegment]) {\n if (isDigit) {\n const digit = key;\n\n handleDigitKey(digit, activeSegment, input, dataDate);\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Tab') {\n if (!dataDate.default[activeSegment].isLast) {\n e.preventDefault();\n dataDate.default[activeSegment].onNextSegment();\n } else {\n refHiddenInput?.current?.blur();\n }\n }\n if (key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Backspace' || key === 'Delete') {\n if (activeSegment === DatePickerVariant.DD) {\n if (input.DD !== '') {\n const current = input.DD;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n } else if (activeSegment === DatePickerVariant.MM) {\n if (input.MM !== '') {\n const current = input.MM;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n } else if (activeSegment === DatePickerVariant.YYYY) {\n if (input.YYYY !== '') {\n const current = input.YYYY;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n e.preventDefault();\n dataDate.default[activeSegment].onPrevSegment();\n }\n if (key === 'ArrowRight' || key === 'ArrowUp') {\n e.preventDefault();\n dataDate.default[activeSegment].onNextSegment();\n }\n }\n },\n [activeSegment, input, dataDate.default, dataDate],\n );\n const onNextMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onPrevMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n useEffect(() => {\n setDateDefaultMoment(moment(props.dateDefault).utc());\n }, [props.dateDefault]);\n\n useEffect(() => {\n setValueMoment(props.value || props.defaultValue ? moment(props.value ?? props.defaultValue).utc() : null);\n if (props.value) {\n // При инициализации также форматируем в строки с ведущими нулями\n const m = moment(props.value).utc();\n setInput({\n [DatePickerVariant.DD]: m.date().toString().padStart(2, '0'),\n [DatePickerVariant.MM]: (m.month() + 1).toString().padStart(2, '0'),\n [DatePickerVariant.YYYY]: m.year().toString(),\n });\n }\n }, [props.value, props.defaultValue]);\n\n useEffect(() => {\n if (!activeSegment)\n getValidateInput(\n input,\n (value) => {\n onChangeDate(value, true, input);\n setIsError(false);\n },\n () => {\n onChange(null);\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n onChange(null);\n setIsError(false);\n }\n },\n );\n }, [getValidateInput, onChangeDate, onChange, input, activeSegment]);\n\n useEffect(() => {\n if (!isOpen && !isInputFocused && isHasInput && !activeSegment)\n getValidateInput(\n input,\n () => {},\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n );\n }, [getValidateInput, onClearInput, input, isOpen, isInputFocused, onChange, isHasInput, activeSegment]);\n\n useEffect(() => {\n if (!activeSegment) return;\n getValidateInput(\n refInputValue.current,\n (value) => {\n onChangeDate(value, true, refInputValue.current);\n setIsError(false);\n },\n () => {\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n setIsError(false);\n }\n },\n );\n }, [onChangeDate, getValidateInput, activeSegment]);\n\n useEffect(() => {\n if (activeSegment) {\n close()\n refHiddenInput?.current?.focus();\n }\n }, [activeSegment, close]);\n return (\n <>\n <DateWrapper\n $size={props.size}\n $genre={props.genre}\n $sx={props.sx}\n $isDisabled={props?.isDisabled}\n $isMinWidth={props?.isMinWidth}\n $radius={sizeRadius}\n $parentListHeight={height}\n tabIndex={-1}\n >\n <DateInputWrapper\n ref={refReference as RefObject<HTMLDivElement | null>}\n $genre={props.genre}\n $size={props.size}\n $isShowPlaceholder={isShowPlaceholder}\n $isDisabled={props?.isDisabled}\n $isReadOnly={props?.isReadOnly}\n $isDisabledOutline={props?.isDisabledOutline}\n $isOutlineBoxShadow={props?.isOutlineBoxShadow}\n tabIndex={-1}\n $error={\n isError\n ? {\n isError: true,\n size: props?.error?.size ?? props.size,\n ...props.notValidDate,\n }\n : props.error\n }\n $isOpen={isOpen || !!activeSegment}\n onClick={() => {\n if (!activeSegment && !props?.isReadOnly) setActiveSegment(DatePickerVariant.DD);\n }}\n >\n <input\n name={props.name}\n id={props.id}\n ref={refHiddenInput}\n type='tel'\n inputMode='numeric'\n tabIndex={0}\n disabled={props?.isDisabled || props?.isReadOnly}\n style={{\n position: 'absolute',\n left: '-100dvw',\n top: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n border: 'none',\n background: 'transparent',\n }}\n onKeyDown={onKeyDown}\n onChange={(e) => {\n const value = e.target.value;\n const prevValue = refPrevValue.current;\n\n const newChar = value.length > prevValue.length ? value.slice(-1) : null;\n\n refPrevValue.current = value;\n\n if (newChar && /^\\d$/.test(newChar)) {\n onKeyDown({\n key: newChar,\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n if (value.length < prevValue.length) {\n onKeyDown({\n key: 'Backspace',\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n }}\n onFocus={() => {\n setIsInputFocused(true);\n if (!activeSegment) setActiveSegment(DatePickerVariant.DD);\n }}\n onBlur={() => {\n setIsInputFocused(false);\n\n if (!isOpen) {\n props.onBlur?.();\n }\n }}\n />\n {isShowPlaceholder ? (\n <Typography\n sx={{ default: { size: 16, line: 1, isNoUserSelect: true } }}\n sxStandard={(theme) => ({\n default: {\n color: theme.colors.input[props.genre].color.placeholder,\n },\n })}\n >\n {props.labelPlaceholder}\n </Typography>\n ) : (\n dataDate.sort.map((date, index) => (\n <Fragment key={date.type}>\n <DateInput\n $isHaveValue={!!date.value}\n $isActive={activeSegment === date.type}\n $genre={props.genre}\n $size={props.size}\n $font={{\n ...props.font,\n size: props.font?.size ?? 16,\n weight: props.font?.weight ?? (props.isBold ? 500 : 400),\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n if (props?.isDisabled || props?.isReadOnly) return;\n date.setActive();\n }}\n >\n {date.value || date.placeholder || ''}\n </DateInput>\n {index !== dataDate.sort.length - 1 && (\n <span style={{ width: '4px', pointerEvents: 'none', textAlign: 'center' }}>.</span>\n )}\n </Fragment>\n ))\n )}\n <DateInputButton\n genre={props.genre}\n size='small'\n isWidthAsHeight\n isFullSize\n isRadius\n isWhileTapEffect\n isOnlyIcon\n isDisabledRipple\n icons={[{ name: 'Calendar', type: 'id' }]}\n isDisabled={props?.isDisabled || props?.isReadOnly}\n onFocus={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setActiveSegment(null);\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n toggle();\n }}\n />\n </DateInputWrapper>\n </DateWrapper>\n <Popover\n sx={(theme) => ({\n default: {\n background: theme.colors.input[props.genre].background.rest,\n border: `solid 1px ${theme.colors.input[props.genre].border.rest}`,\n },\n })}\n size={props.size}\n genre={props.genre}\n isOpen={isOpen}\n isShowAlwaysOutline\n floatingStyles={floatingStyles}\n ref={refFloating}\n >\n <DateDropdownList $isInputEffect={props.isInputEffect} $genre={props.genre} $size={props.size}>\n <Stack\n sx={{\n default: {\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n }}\n >\n <Button\n type='button'\n isRadius\n isWhileTapEffect\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: 90,\n },\n ]}\n isWidthAsHeight\n genre={props.genre}\n size={'small'}\n onClick={() => !isBlockPrevMonth && onPrevMonth()}\n isDisabledRipple\n isHidden={isBlockPrevMonth}\n isDisabled={isBlockPrevMonth}\n />\n <Stack sx={{ default: { gap: '8px' } }}>\n <SelectMonth\n monthsLocale={props.locale.months}\n genre={props.genre}\n size={'small'}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('month').utc().valueOf()}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n isShortLabel\n refFloating={refSelectMonth}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n }}\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n sx={{ default: { width: '60px' } }}\n />\n <SelectYear\n genre={props.genre}\n size={'small'}\n refFloating={refSelectYear}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('year').utc().valueOf()}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n }}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n sx={{ default: { width: '60px' } }}\n />\n </Stack>\n <Button\n type='button'\n isWhileTapEffect\n onClick={() => !isBlockNextMonth && onNextMonth()}\n isWidthAsHeight\n isRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: -90,\n },\n ]}\n genre={props.genre}\n size={'small'}\n isDisabledRipple\n isDisabled={isBlockNextMonth}\n isHidden={isBlockNextMonth}\n />\n </Stack>\n <DateDropdownDays $rows={rows}>\n {daysInWeek.map((e, index) => (\n <DateDropdownDayOfWeek\n $font={{\n ...props.font,\n size: 12,\n weight: 700,\n }}\n tabIndex={-1}\n type='button'\n $isToday={false}\n $isWeekend={false}\n $genre={props.genre}\n $size={props.size}\n $row={daysInMonth[0]?.weekOfMonth - 1}\n $column={index + 1}\n key={`${e.label}-${index}`}\n >\n {e.label}\n </DateDropdownDayOfWeek>\n ))}\n {daysInMonth.map((day) => (\n <DateDropdownDay\n $font={{\n ...props.font,\n size: 12,\n weight: 700,\n }}\n type='button'\n $isDisabled={day.isDisabled}\n $isDisabledOutline={day.isDisabled ?? props.isDisabledOutline}\n $isOutlineBoxShadow={props.isOutlineBoxShadow}\n $isReadOnly={props.isReadOnly}\n $genre={props.genre}\n $size={props.size}\n $row={day?.weekOfMonth + 1}\n $column={day.dayOfWeek}\n key={day.value}\n onClick={() => {\n if (!day.isDisabled) {\n onChangeDate(day.value, true);\n if (props.isOnClickClose) {\n close();\n }\n }\n }}\n tabIndex={day.isDisabled ? -1 : 0}\n $isToday={day.isToday}\n $isWeekend={day.isWeekend}\n $isChoice={day.value === valueMoment?.valueOf()}\n $isCurrentMonth={day.isCurrentMonth}\n >\n <Ripple color={theme.colors.date[props.genre].color.rest} isDisabled={day.isDisabled} />\n {day.labelNumber}\n </DateDropdownDay>\n ))}\n </DateDropdownDays>\n </DateDropdownList>\n </Popover>\n {isError || props?.error ? (\n <ErrorMessage\n {...(isError\n ? {\n isError: true,\n size: props?.error?.size ?? props.size,\n ...props.notValidDate,\n }\n : props.error)}\n size={props?.error?.size ?? props.size}\n font={{\n size: 12,\n weight: 400,\n family: props.font?.family ?? theme.font.family,\n }}\n />\n ) : null}\n </>\n );\n};\n\nfunction handleDigitKey(\n key: string,\n activeSegment: DatePickerVariant,\n input: Record<DatePickerVariant, string>,\n dataDate: { default: Record<DatePickerVariant, { setValue: (value: string) => void; onNextSegment: () => void }> },\n // onNextSegment?: (newInput: Record<DatePickerVariant, string>) => 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"],"names":["DatePickerVariant","props","onChange","theme","useTheme","valueMoment","setValueMoment","useState","dateDefaultMoment","setDateDefaultMoment","moment","dateDefault","utc","input","setInput","DD","MM","YYYY","refInputValue","useRef","useEffect","current","isHasInput","useMemo","onClearInput","useCallback","activeSegment","setActiveSegment","isError","setIsError","mode","length","Set","size","getNextSegment","currentSegment","currentIndex","indexOf","getPrevSegment","getValidateInput","onSuccess","onFailure","onNan","dayStr","monthStr","yearStr","day","NaN","Number","month","year","isNaN","m","startOf","isValid","valueOf","dataDate","segments","result","Object","fromEntries","map","segment","type","value","placeholder","locale","inputs","isFirst","isLast","segmentNext","segmentPrev","onNextSegment","onPrevSegment","setValue","prev","setActive","sort","filter","Boolean","default","daysInWeek","key","index","found","weeks","find","w","label","localeShort","toUpperCase","daysInMonth","today","baseMoment","startOfMonth","clone","endOfMonth","endOf","dateMin","dateMax","firstVisibleDay","subtract","isoWeekday","lastVisibleDay","add","days","currentDate","isCurrentMonth","isBetween","push","labelString","format","labelNumber","date","dayOfWeek","isWeekend","includes","weekOfMonth","Math","ceil","isToday","isSame","isDisabled","isBefore","isAfter","rows","number","count","floor","countSevens","height","KEY_SIZE_DATA","padding","sizeRadius","radius","sizePadding","isHasValue","isBlockNextMonth","nextMonth","isBlockPrevMonth","prevMonth","isInputFocused","setIsInputFocused","refPrevValue","refSelectMonth","refSelectYear","refHiddenInput","onFocusPopover","_a","onFocus","call","onBlurPopover","onBlur","onBlurReference","isOpen","refReference","refFloating","floatingStyles","close","toggle","usePopover","placement","offset","isClickOutside","refsExcludeClickOutside","isReadOnly","isShowPlaceholder","labelPlaceholder","onChangeDate","timestamp","isAddLeadingZeros","momentNewDate","dd","toString","mm","ddWithZero","padStart","mmWithZero","yyyy","ddInput","mmInput","yyyyInput","isSameInput","isSameMoment","onKeyDown","e","isDigit","test","ctrlKey","metaKey","digit","seg","potential","potentialNum","nextValue","handleDigitKey","preventDefault","stopPropagation","blur","newValue","slice","onNextMonth","newDate","onPrevMonth","defaultValue","focus","jsxs","Fragment","children","jsx","DateWrapper","$size","$genre","genre","$sx","sx","$isDisabled","$isMinWidth","isMinWidth","$radius","$parentListHeight","tabIndex","DateInputWrapper","ref","$isShowPlaceholder","$isReadOnly","$isDisabledOutline","isDisabledOutline","$isOutlineBoxShadow","isOutlineBoxShadow","$error","error","notValidDate","$isOpen","onClick","name","id","inputMode","disabled","style","position","left","top","width","opacity","border","background","target","prevValue","newChar","Typography","line","isNoUserSelect","sxStandard","color","colors","DateInput","$isHaveValue","$isActive","$font","font","weight","_b","isBold","pointerEvents","textAlign","DateInputButton","isWidthAsHeight","isFullSize","isRadius","isWhileTapEffect","isOnlyIcon","isDisabledRipple","icons","Popover","rest","isShowAlwaysOutline","DateDropdownList","$isInputEffect","isInputEffect","Stack","justifyContent","alignItems","Button","turn","isHidden","gap","SelectMonth","monthsLocale","months","isOnClickOptionClose","isStayValueAfterSelect","isOnlyColorInSelectListOption","isCenter","isShortLabel","SelectYear","DateDropdownDays","$rows","DateDropdownDayOfWeek","$isToday","$isWeekend","$row","$column","DateDropdownDay","isOnClickClose","$isChoice","$isCurrentMonth","Ripple","ErrorMessage","_c","family","_d"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.types-DP9m5byW.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 // Изменяем тип с number | null на string\n const [input, setInput] = useState<Record<DatePickerVariant, string>>({\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n });\n const refInputValue = useRef(input);\n useEffect(() => {\n refInputValue.current = input;\n }, [input]);\n // Обновляем проверку на наличие input\n const isHasInput = useMemo(() => {\n return (\n input[DatePickerVariant.DD] !== '' || input[DatePickerVariant.MM] !== '' || input[DatePickerVariant.YYYY] !== ''\n );\n }, [input]);\n\n const onClearInput = useCallback(() => {\n setInput({\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n });\n }, []);\n\n const [activeSegment, setActiveSegment] = useState<DatePickerVariant | null>(null);\n const [isError, setIsError] = useState(false);\n\n const mode: DatePickerMode = useMemo(() => {\n if (!props.mode || props.mode.length === 0) {\n return [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY]; // дефолт\n }\n\n const hasDuplicates = new Set(props.mode).size !== props.mode.length;\n\n if (hasDuplicates) {\n return [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY]; // дефолт при дублировании\n }\n\n return props.mode;\n }, [props.mode]);\n\n const getNextSegment = useCallback(\n (currentSegment: DatePickerVariant): DatePickerVariant | null => {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex < mode.length - 1 ? mode[currentIndex + 1] : mode[0];\n },\n [mode],\n );\n\n const getPrevSegment = useCallback(\n (currentSegment: DatePickerVariant): DatePickerVariant | null => {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex > 0 ? mode[currentIndex - 1] : mode[mode.length - 1];\n },\n [mode],\n );\n\n // Обновляем функцию валидации для работы со строками\n const getValidateInput = useCallback(\n (\n input: Record<DatePickerVariant, string>,\n onSuccess?: (value: number) => void,\n onFailure?: () => void,\n onNan?: (isHasInput: boolean) => void,\n ) => {\n const dayStr = input.DD;\n const monthStr = input.MM;\n const yearStr = input.YYYY;\n\n const day = dayStr === '' ? NaN : Number(dayStr);\n const month = monthStr === '' ? NaN : Number(monthStr);\n const year = yearStr === '' ? NaN : Number(yearStr);\n\n const isHasInput = dayStr !== '' || monthStr !== '' || yearStr !== '';\n\n if (!Number.isNaN(day) && !Number.isNaN(month) && !Number.isNaN(year)) {\n const m = moment.utc(`${day}.${month}.${year}`, 'D.M.YYYY', true).startOf('day');\n if (m.isValid()) {\n onSuccess?.(m.valueOf());\n } else {\n onFailure?.();\n }\n } else {\n onNan?.(isHasInput);\n }\n },\n [],\n );\n\n const dataDate = useMemo(() => {\n const segments = [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY];\n\n const result = Object.fromEntries(\n segments.map((segment) => [\n segment,\n {\n type: segment,\n value: input[segment],\n placeholder:\n props.locale.inputs[\n segment === DatePickerVariant.DD ? 'day' : segment === DatePickerVariant.MM ? 'month' : 'year'\n ],\n isFirst: mode[0] === segment,\n isLast: mode[mode.length - 1] === segment,\n segmentNext: getNextSegment(segment),\n segmentPrev: getPrevSegment(segment),\n onNextSegment: () => setActiveSegment(getNextSegment(segment)),\n onPrevSegment: () => setActiveSegment(getPrevSegment(segment)),\n setValue: (value: string) => setInput((prev) => ({ ...prev, [segment]: value })),\n setActive: () => setActiveSegment(segment),\n },\n ]),\n ) as Record<\n DatePickerVariant,\n {\n type: DatePickerVariant;\n value: string;\n placeholder: string;\n isFirst: boolean;\n isLast: boolean;\n segmentNext: DatePickerVariant | null;\n segmentPrev: DatePickerVariant | null;\n onNextSegment: () => void;\n onPrevSegment: () => void;\n setValue: (value: string) => void;\n setActive: () => void;\n }\n >;\n\n const resultSort = mode.map((segment) => result[segment]).filter(Boolean);\n\n return { sort: resultSort, default: result };\n }, [props, getNextSegment, getPrevSegment, mode, input]);\n\n const daysInWeek = useMemo(() => {\n const weekOrder: WeekItem['value'][] = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'];\n\n return weekOrder.map((key, index) => {\n const found = props.locale.weeks.find((w) => w.value === key);\n return {\n index,\n label: found?.localeShort ?? key.toUpperCase(),\n };\n });\n }, [props.locale.weeks]);\n\n const daysInMonth: DateDayProps[] = useMemo(() => {\n const today = moment.utc();\n const baseMoment = valueMoment ?? dateDefaultMoment;\n const startOfMonth = baseMoment.clone().startOf('month');\n const endOfMonth = baseMoment.clone().endOf('month');\n\n const dateMin = props.dateMin ? moment.utc(props.dateMin) : null;\n const dateMax = props.dateMax ? moment.utc(props.dateMax) : null;\n\n // Определяем диапазон дат (с учетом дней до и после месяца)\n const firstVisibleDay = startOfMonth.clone().subtract(startOfMonth.isoWeekday() - 1, 'days');\n const lastVisibleDay = endOfMonth.clone().add(7 - endOfMonth.isoWeekday(), 'days');\n\n const days: DateDayProps[] = [];\n const currentDate = firstVisibleDay.clone();\n\n while (currentDate <= lastVisibleDay) {\n const isCurrentMonth = currentDate.isBetween(startOfMonth, endOfMonth, 'day', '[]');\n days.push({\n value: currentDate.valueOf(),\n labelString: currentDate.format('dd'),\n labelNumber: currentDate.date(),\n dayOfWeek: currentDate.isoWeekday(),\n isWeekend: [6, 7].includes(currentDate.isoWeekday()),\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: currentDate.isSame(today, 'day'),\n isCurrentMonth,\n isDisabled: !!(\n (dateMin && currentDate.isBefore(dateMin, 'day')) ||\n (dateMax && currentDate.isAfter(dateMax, 'day'))\n ),\n });\n\n currentDate.add(1, 'day');\n }\n\n return days;\n }, [valueMoment, dateDefaultMoment, props.dateMax, props.dateMin]);\n\n const rows = useMemo(() => countSevens(daysInMonth.length) + 1, [daysInMonth]);\n\n const height = useMemo(\n () => 40 + rows * 28 + (rows - 1) * 6 + KEY_SIZE_DATA[props.size].padding * 2,\n [props.size, rows],\n );\n\n const sizeRadius = useMemo(() => KEY_SIZE_DATA[props.size].radius, [props.size]);\n const sizePadding = useMemo(() => KEY_SIZE_DATA[props.size].padding, [props.size]);\n\n const isHasValue = useMemo(() => {\n return valueMoment !== null;\n }, [valueMoment]);\n const isBlockNextMonth = useMemo(() => {\n const nextMonth = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month').startOf('month');\n const isBeforeEndDate = props.dateMax ? nextMonth.isAfter(moment.utc(props.dateMax), 'month') : false;\n return isBeforeEndDate;\n }, [valueMoment, props.dateMax, dateDefaultMoment]);\n const isBlockPrevMonth = useMemo(() => {\n const prevMonth = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month').startOf('month');\n const isAfterStartDate = props.dateMin ? prevMonth.isBefore(moment.utc(props.dateMin), 'month') : false;\n return isAfterStartDate;\n }, [valueMoment, props.dateMin, dateDefaultMoment]);\n\n const [isInputFocused, setIsInputFocused] = useState(false);\n\n const refPrevValue = useRef('');\n const refSelectMonth = useRef<HTMLElement>(null);\n const refSelectYear = useRef<HTMLElement>(null);\n const refHiddenInput = useRef<HTMLInputElement>(null);\n\n const onFocusPopover = useCallback(() => {\n props.onFocus?.();\n }, [props.onFocus]);\n const onBlurPopover = useCallback(() => {\n props.onBlur?.();\n }, [props.onBlur]);\n const onBlurReference = useCallback(() => {\n setActiveSegment(null);\n }, []);\n const { isOpen, refReference, refFloating, floatingStyles, close, toggle } = usePopover({\n placement: 'bottom-start',\n offset: sizePadding,\n mode: 'independence',\n isClickOutside: true,\n refsExcludeClickOutside: [refSelectMonth, refSelectYear],\n isDisabled: props?.isDisabled || props?.isReadOnly,\n onFocus: onFocusPopover,\n onBlur: onBlurPopover,\n onBlurReference: onBlurReference,\n });\n\n const isShowPlaceholder = useMemo(() => {\n return !!(!isInputFocused && !isHasValue && props.labelPlaceholder && !isOpen && !isHasInput && !activeSegment);\n }, [isInputFocused, isHasValue, isOpen, props.labelPlaceholder, isHasInput, activeSegment]);\n\n const onChangeDate = useCallback(\n (timestamp: number, isAddLeadingZeros: boolean, input?: Record<DatePickerVariant, string>) => {\n const momentNewDate = moment(timestamp).utc();\n\n const dd = momentNewDate.clone().date().toString();\n const mm = (momentNewDate.clone().month() + 1).toString();\n\n const ddWithZero = dd.padStart(2, '0');\n const mmWithZero = mm.padStart(2, '0');\n\n const yyyy = momentNewDate.clone().year().toString();\n const ddInput = input?.[DatePickerVariant.DD];\n const mmInput = input?.[DatePickerVariant.MM];\n const yyyyInput = input?.[DatePickerVariant.YYYY];\n\n const isSameInput = ddWithZero === ddInput && mmWithZero === mmInput && yyyyInput === yyyy;\n const isSameMoment = valueMoment?.isSame(momentNewDate, 'day');\n if (!isSameMoment) {\n setValueMoment(momentNewDate);\n onChange(momentNewDate.valueOf());\n }\n\n if (!isSameMoment || input ? !isSameInput : false) {\n setInput({\n [DatePickerVariant.DD]: isAddLeadingZeros ? ddWithZero : dd,\n [DatePickerVariant.MM]: isAddLeadingZeros ? mmWithZero : mm,\n [DatePickerVariant.YYYY]: yyyy,\n });\n }\n },\n [valueMoment, onChange],\n );\n\n // const onNextSegment = useCallback(\n // (\n // newInput: Record<DatePickerVariant, string>,\n // ) => {\n // if(newInput){\n // getValidateInput(\n // newInput,\n // (value) => {\n // onChangeDate(value, true);\n // setIsError(false);\n // },\n // () => {\n // setIsError(true);\n // },\n // () => {\n // setIsError(true);\n // },\n // );\n // }else{\n\n // }\n\n // },\n // [getValidateInput, onChangeDate],\n // );\n const onKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n const key = e.key;\n\n const allowedKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Backspace', 'Delete', 'Tab', 'Enter'];\n\n const isDigit = /^\\d$/.test(key);\n const isAllowed = isDigit || allowedKeys.includes(key) || e.ctrlKey || e.metaKey;\n\n if (!isAllowed) {\n e.preventDefault();\n return;\n }\n\n if (activeSegment && dataDate.default[activeSegment]) {\n if (isDigit) {\n const digit = key;\n\n handleDigitKey(digit, activeSegment, input, dataDate);\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Tab') {\n if (!dataDate.default[activeSegment].isLast) {\n e.preventDefault();\n dataDate.default[activeSegment].onNextSegment();\n } else {\n refHiddenInput?.current?.blur();\n }\n }\n if (key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Backspace' || key === 'Delete') {\n if (activeSegment === DatePickerVariant.DD) {\n if (input.DD !== '') {\n const current = input.DD;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n } else if (activeSegment === DatePickerVariant.MM) {\n if (input.MM !== '') {\n const current = input.MM;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n } else if (activeSegment === DatePickerVariant.YYYY) {\n if (input.YYYY !== '') {\n const current = input.YYYY;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n e.preventDefault();\n dataDate.default[activeSegment].onPrevSegment();\n }\n if (key === 'ArrowRight' || key === 'ArrowUp') {\n e.preventDefault();\n dataDate.default[activeSegment].onNextSegment();\n }\n }\n },\n [activeSegment, input, dataDate.default, dataDate],\n );\n const onNextMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onPrevMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n useEffect(() => {\n setDateDefaultMoment(moment(props.dateDefault).utc());\n }, [props.dateDefault]);\n\n useEffect(() => {\n setValueMoment(props.value || props.defaultValue ? moment(props.value ?? props.defaultValue).utc() : null);\n if (props.value) {\n // При инициализации также форматируем в строки с ведущими нулями\n const m = moment(props.value).utc();\n setInput({\n [DatePickerVariant.DD]: m.date().toString().padStart(2, '0'),\n [DatePickerVariant.MM]: (m.month() + 1).toString().padStart(2, '0'),\n [DatePickerVariant.YYYY]: m.year().toString(),\n });\n }\n }, [props.value, props.defaultValue]);\n\n useEffect(() => {\n if (!activeSegment)\n getValidateInput(\n input,\n (value) => {\n onChangeDate(value, true, input);\n setIsError(false);\n },\n () => {\n onChange(null);\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n onChange(null);\n setIsError(false);\n }\n },\n );\n }, [getValidateInput, onChangeDate, onChange, input, activeSegment]);\n\n useEffect(() => {\n if (!isOpen && !isInputFocused && isHasInput && !activeSegment)\n getValidateInput(\n input,\n () => {},\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n );\n }, [getValidateInput, onClearInput, input, isOpen, isInputFocused, onChange, isHasInput, activeSegment]);\n\n useEffect(() => {\n if (!activeSegment) return;\n getValidateInput(\n refInputValue.current,\n (value) => {\n onChangeDate(value, true, refInputValue.current);\n setIsError(false);\n },\n () => {\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n setIsError(false);\n }\n },\n );\n }, [onChangeDate, getValidateInput, activeSegment]);\n\n useEffect(() => {\n if (activeSegment) {\n close()\n refHiddenInput?.current?.focus();\n }\n }, [activeSegment, close]);\n return (\n <>\n <DateWrapper\n $size={props.size}\n $genre={props.genre}\n $sx={props.sx}\n $isDisabled={props?.isDisabled}\n $isMinWidth={props?.isMinWidth}\n $radius={sizeRadius}\n $parentListHeight={height}\n tabIndex={-1}\n >\n <DateInputWrapper\n ref={refReference as RefObject<HTMLDivElement | null>}\n $genre={props.genre}\n $size={props.size}\n $isShowPlaceholder={isShowPlaceholder}\n $isDisabled={props?.isDisabled}\n $isReadOnly={props?.isReadOnly}\n $isDisabledOutline={props?.isDisabledOutline}\n $isOutlineBoxShadow={props?.isOutlineBoxShadow}\n tabIndex={-1}\n $error={\n isError\n ? {\n isError: true,\n size: props?.error?.size ?? props.size,\n ...props.notValidDate,\n }\n : props.error\n }\n $isOpen={isOpen || !!activeSegment}\n onClick={() => {\n if (!activeSegment && !props?.isReadOnly) setActiveSegment(DatePickerVariant.DD);\n }}\n >\n <input\n name={props.name}\n id={props.id}\n ref={refHiddenInput}\n type='tel'\n inputMode='numeric'\n tabIndex={0}\n disabled={props?.isDisabled || props?.isReadOnly}\n style={{\n position: 'absolute',\n left: '-100dvw',\n top: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n border: 'none',\n background: 'transparent',\n }}\n onKeyDown={onKeyDown}\n onChange={(e) => {\n const value = e.target.value;\n const prevValue = refPrevValue.current;\n\n const newChar = value.length > prevValue.length ? value.slice(-1) : null;\n\n refPrevValue.current = value;\n\n if (newChar && /^\\d$/.test(newChar)) {\n onKeyDown({\n key: newChar,\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n if (value.length < prevValue.length) {\n onKeyDown({\n key: 'Backspace',\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n }}\n onFocus={() => {\n setIsInputFocused(true);\n if (!activeSegment) setActiveSegment(DatePickerVariant.DD);\n }}\n onBlur={() => {\n setIsInputFocused(false);\n\n if (!isOpen) {\n props.onBlur?.();\n }\n }}\n />\n {isShowPlaceholder ? (\n <Typography\n sx={{ default: { size: 16, line: 1, isNoUserSelect: true } }}\n sxStandard={(theme) => ({\n default: {\n color: theme.colors.input[props.genre].color.placeholder,\n },\n })}\n >\n {props.labelPlaceholder}\n </Typography>\n ) : (\n dataDate.sort.map((date, index) => (\n <Fragment key={date.type}>\n <DateInput\n $isHaveValue={!!date.value}\n $isActive={activeSegment === date.type}\n $genre={props.genre}\n $size={props.size}\n $font={{\n ...props.font,\n size: props.font?.size ?? 16,\n weight: props.font?.weight ?? (props.isBold ? 500 : 400),\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n if (props?.isDisabled || props?.isReadOnly) return;\n date.setActive();\n }}\n >\n {date.value || date.placeholder || ''}\n </DateInput>\n {index !== dataDate.sort.length - 1 && (\n <span style={{ width: '4px', pointerEvents: 'none', textAlign: 'center' }}>.</span>\n )}\n </Fragment>\n ))\n )}\n <DateInputButton\n genre={props.genre}\n size='small'\n isWidthAsHeight\n isFullSize\n isRadius\n isWhileTapEffect\n isOnlyIcon\n isDisabledRipple\n icons={[{ name: 'Calendar', type: 'id' }]}\n isDisabled={props?.isDisabled || props?.isReadOnly}\n onFocus={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setActiveSegment(null);\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n toggle();\n }}\n />\n </DateInputWrapper>\n </DateWrapper>\n <Popover\n sx={(theme) => ({\n default: {\n background: theme.colors.input[props.genre].background.rest,\n border: `solid 1px ${theme.colors.input[props.genre].border.rest}`,\n },\n })}\n size={props.size}\n genre={props.genre}\n isOpen={isOpen}\n isShowAlwaysOutline\n floatingStyles={floatingStyles}\n ref={refFloating}\n >\n <DateDropdownList $isInputEffect={props.isInputEffect} $genre={props.genre} $size={props.size}>\n <Stack\n sx={{\n default: {\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n }}\n >\n <Button\n type='button'\n isRadius\n isWhileTapEffect\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: 90,\n },\n ]}\n isWidthAsHeight\n genre={props.genre}\n size={'small'}\n onClick={() => !isBlockPrevMonth && onPrevMonth()}\n isDisabledRipple\n isHidden={isBlockPrevMonth}\n isDisabled={isBlockPrevMonth}\n />\n <Stack sx={{ default: { gap: '8px' } }}>\n <SelectMonth\n monthsLocale={props.locale.months}\n genre={props.genre}\n size={'small'}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('month').utc().valueOf()}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n isShortLabel\n refFloating={refSelectMonth}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n }}\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n sx={{ default: { width: '60px' } }}\n />\n <SelectYear\n genre={props.genre}\n size={'small'}\n refFloating={refSelectYear}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('year').utc().valueOf()}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n }}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n sx={{ default: { width: '60px' } }}\n />\n </Stack>\n <Button\n type='button'\n isWhileTapEffect\n onClick={() => !isBlockNextMonth && onNextMonth()}\n isWidthAsHeight\n isRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: -90,\n },\n ]}\n genre={props.genre}\n size={'small'}\n isDisabledRipple\n isDisabled={isBlockNextMonth}\n isHidden={isBlockNextMonth}\n />\n </Stack>\n <DateDropdownDays $rows={rows}>\n {daysInWeek.map((e, index) => (\n <DateDropdownDayOfWeek\n $font={{\n ...props.font,\n size: 12,\n weight: 700,\n }}\n tabIndex={-1}\n type='button'\n $isToday={false}\n $isWeekend={false}\n $genre={props.genre}\n $size={props.size}\n $row={daysInMonth[0]?.weekOfMonth - 1}\n $column={index + 1}\n key={`${e.label}-${index}`}\n >\n {e.label}\n </DateDropdownDayOfWeek>\n ))}\n {daysInMonth.map((day) => (\n <DateDropdownDay\n $font={{\n ...props.font,\n size: 12,\n weight: 700,\n }}\n type='button'\n $isDisabled={day.isDisabled}\n $isDisabledOutline={day.isDisabled ?? props.isDisabledOutline}\n $isOutlineBoxShadow={props.isOutlineBoxShadow}\n $isReadOnly={props.isReadOnly}\n $genre={props.genre}\n $size={props.size}\n $row={day?.weekOfMonth + 1}\n $column={day.dayOfWeek}\n key={day.value}\n onClick={() => {\n if (!day.isDisabled) {\n onChangeDate(day.value, true);\n if (props.isOnClickClose) {\n close();\n }\n }\n }}\n tabIndex={day.isDisabled ? -1 : 0}\n $isToday={day.isToday}\n $isWeekend={day.isWeekend}\n $isChoice={day.value === valueMoment?.valueOf()}\n $isCurrentMonth={day.isCurrentMonth}\n >\n <Ripple color={theme.colors.date[props.genre].color.rest} isDisabled={day.isDisabled} />\n {day.labelNumber}\n </DateDropdownDay>\n ))}\n </DateDropdownDays>\n </DateDropdownList>\n </Popover>\n {isError || props?.error ? (\n <ErrorMessage\n {...(isError\n ? {\n isError: true,\n size: props?.error?.size ?? props.size,\n ...props.notValidDate,\n }\n : props.error)}\n size={props?.error?.size ?? props.size}\n font={{\n size: 12,\n weight: 400,\n family: props.font?.family ?? theme.font.family,\n }}\n />\n ) : null}\n </>\n );\n};\n\nfunction handleDigitKey(\n key: string,\n activeSegment: DatePickerVariant,\n input: Record<DatePickerVariant, string>,\n dataDate: { default: Record<DatePickerVariant, { setValue: (value: string) => void; onNextSegment: () => void }> },\n // onNextSegment?: (newInput: Record<DatePickerVariant, string>) => 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","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":["input","isHasInput","_a","jsxs","Fragment","jsx","theme","_b","DatePickerVariant"],"mappings":"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"}