@jenesei-software/jenesei-kit-react 1.3.39 → 1.3.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/area-preview.cjs.js +1 -1
- package/build/area-preview.es.js +1 -1
- package/build/area-skeleton.cjs.js +1 -1
- package/build/area-skeleton.es.js +1 -1
- package/build/build-info.txt +3 -3
- package/build/{component-BBrKC5hB.js → component-B72M2Tpw.js} +2 -2
- package/build/{component-BBrKC5hB.js.map → component-B72M2Tpw.js.map} +1 -1
- package/build/{component-buGvmEo6.cjs → component-BIxOOifU.cjs} +2 -2
- package/build/{component-buGvmEo6.cjs.map → component-BIxOOifU.cjs.map} +1 -1
- package/build/{component-DKzHmIUP.js → component-BQru5uoj.js} +2 -2
- package/build/{component-DKzHmIUP.js.map → component-BQru5uoj.js.map} +1 -1
- package/build/{component-CPVG0orB.js → component-BRCDQbb-.js} +3 -3
- package/build/{component-CPVG0orB.js.map → component-BRCDQbb-.js.map} +1 -1
- package/build/{component-wOmehMbn.js → component-BUkf5TLO.js} +3 -3
- package/build/{component-wOmehMbn.js.map → component-BUkf5TLO.js.map} +1 -1
- package/build/{component-CONSm7hH.cjs → component-BmccRQ_Y.cjs} +2 -2
- package/build/{component-CONSm7hH.cjs.map → component-BmccRQ_Y.cjs.map} +1 -1
- package/build/{component-Dy66XPIf.cjs → component-Bvq-fgCN.cjs} +2 -2
- package/build/{component-Dy66XPIf.cjs.map → component-Bvq-fgCN.cjs.map} +1 -1
- package/build/{component-CWawez-M.js → component-C448kBTA.js} +6 -6
- package/build/{component-CWawez-M.js.map → component-C448kBTA.js.map} +1 -1
- package/build/{component-Dkw50gzn.cjs → component-C6I01Mel.cjs} +2 -2
- package/build/{component-Dkw50gzn.cjs.map → component-C6I01Mel.cjs.map} +1 -1
- package/build/{component-CZM5p4mC.js → component-C8mTuBua.js} +2 -2
- package/build/{component-CZM5p4mC.js.map → component-C8mTuBua.js.map} +1 -1
- package/build/{component-sVzC5XUR.cjs → component-CVWsmIlg.cjs} +2 -2
- package/build/{component-sVzC5XUR.cjs.map → component-CVWsmIlg.cjs.map} +1 -1
- package/build/{component-sNGsB3JK.js → component-C_6x7Mk8.js} +2 -2
- package/build/{component-sNGsB3JK.js.map → component-C_6x7Mk8.js.map} +1 -1
- package/build/{component-BlEglNo9.js → component-CbWtsuhz.js} +3 -3
- package/build/{component-BlEglNo9.js.map → component-CbWtsuhz.js.map} +1 -1
- package/build/{component-RlcwDmkg.js → component-CyZbUCkT.js} +2 -2
- package/build/{component-RlcwDmkg.js.map → component-CyZbUCkT.js.map} +1 -1
- package/build/{component-zLIAB2HV.cjs → component-D2vDwS60.cjs} +2 -2
- package/build/{component-zLIAB2HV.cjs.map → component-D2vDwS60.cjs.map} +1 -1
- package/build/{component-CTrSBI75.js → component-D3KCIC-G.js} +2 -2
- package/build/{component-CTrSBI75.js.map → component-D3KCIC-G.js.map} +1 -1
- package/build/{component-PZe4p8qh.cjs → component-DRMRXUJA.cjs} +2 -2
- package/build/{component-PZe4p8qh.cjs.map → component-DRMRXUJA.cjs.map} +1 -1
- package/build/{component-DGpaKn6_.js → component-DfSTPgfj.js} +2 -2
- package/build/{component-DGpaKn6_.js.map → component-DfSTPgfj.js.map} +1 -1
- package/build/{component-DyLdklDO.cjs → component-DrmSI_ni.cjs} +2 -2
- package/build/{component-DyLdklDO.cjs.map → component-DrmSI_ni.cjs.map} +1 -1
- package/build/{component-B0PbrKuJ.cjs → component-Qxjnm7yi.cjs} +2 -2
- package/build/{component-B0PbrKuJ.cjs.map → component-Qxjnm7yi.cjs.map} +1 -1
- package/build/{component-LG-duo2b.cjs → component-WmDPzhcW.cjs} +2 -2
- package/build/{component-LG-duo2b.cjs.map → component-WmDPzhcW.cjs.map} +1 -1
- package/build/component-accordion.cjs.js +1 -1
- package/build/component-accordion.es.js +2 -2
- package/build/component-button-group.cjs.js +1 -1
- package/build/component-button-group.es.js +2 -2
- package/build/component-button.cjs.js +1 -1
- package/build/component-button.es.js +1 -1
- package/build/component-checkbox-group.cjs.js +1 -1
- package/build/component-checkbox-group.es.js +2 -2
- package/build/component-checkbox.cjs.js +1 -1
- package/build/component-checkbox.es.js +2 -2
- package/build/component-date-picker.cjs.js +1 -1
- package/build/component-date-picker.es.js +2 -2
- package/build/component-icon.cjs.js +1 -1
- package/build/component-icon.es.js +1 -1
- package/build/component-image-button.cjs.js +1 -1
- package/build/component-image-button.es.js +1 -1
- package/build/component-image-select.cjs.js +1 -1
- package/build/component-image-select.es.js +2 -2
- package/build/component-image-slider.cjs.js +1 -1
- package/build/component-image-slider.es.js +2 -2
- package/build/component-image.cjs.js +1 -1
- package/build/component-image.es.js +2 -2
- package/build/component-input-otp.cjs.js +1 -1
- package/build/component-input-otp.es.js +2 -2
- package/build/component-input.cjs.js +1 -1
- package/build/component-input.es.js +2 -2
- package/build/{component-ZdZUAyaP.cjs → component-mFXKTq1K.cjs} +2 -2
- package/build/{component-ZdZUAyaP.cjs.map → component-mFXKTq1K.cjs.map} +1 -1
- package/build/component-pagination.cjs.js +1 -1
- package/build/component-pagination.es.js +1 -1
- package/build/component-range.cjs.js +1 -1
- package/build/component-range.es.js +2 -2
- package/build/component-select.cjs.js +1 -1
- package/build/component-select.es.js +1 -1
- package/build/component-textarea.cjs.js +1 -1
- package/build/component-textarea.es.js +1 -1
- package/build/component-toggle.cjs.js +1 -1
- package/build/component-toggle.es.js +2 -2
- package/build/component-tooltip.cjs.js +1 -1
- package/build/component-tooltip.es.js +1 -1
- package/build/component-typography.cjs.js +1 -1
- package/build/component-typography.es.js +1 -1
- package/build/{component.constants-CJcoXCFC.js → component.constants-BQOzGr0l.js} +5 -5
- package/build/{component.constants-CJcoXCFC.js.map → component.constants-BQOzGr0l.js.map} +1 -1
- package/build/{component.constants-Ctj7PsM8.cjs → component.constants-CFLrPu5_.cjs} +2 -2
- package/build/{component.constants-Ctj7PsM8.cjs.map → component.constants-CFLrPu5_.cjs.map} +1 -1
- package/build/{component.constants-DjzlauTL.js → component.constants-DI22AYyi.js} +2 -2
- package/build/{component.constants-DjzlauTL.js.map → component.constants-DI22AYyi.js.map} +1 -1
- package/build/{component.constants-CzKFXlYT.cjs → component.constants-DnHO8qFb.cjs} +2 -2
- package/build/{component.constants-CzKFXlYT.cjs.map → component.constants-DnHO8qFb.cjs.map} +1 -1
- package/build/{component.types-Drt-O54w.cjs → component.types-6hyRS9ZB.cjs} +2 -2
- package/build/{component.types-Drt-O54w.cjs.map → component.types-6hyRS9ZB.cjs.map} +1 -1
- package/build/{component.types-CryJGkU7.js → component.types-e2YpVj0l.js} +2 -2
- package/build/{component.types-CryJGkU7.js.map → component.types-e2YpVj0l.js.map} +1 -1
- package/build/consts.cjs.js +1 -1
- package/build/consts.es.js +1 -1
- package/build/{context-DyTE2I_6.cjs → context-BK9a46O1.cjs} +2 -2
- package/build/{context-DyTE2I_6.cjs.map → context-BK9a46O1.cjs.map} +1 -1
- package/build/context-CPZf131N.cjs +2 -0
- package/build/context-CPZf131N.cjs.map +1 -0
- package/build/{context-BkovkNHQ.js → context-Cr80KOpF.js} +12 -7
- package/build/context-Cr80KOpF.js.map +1 -0
- package/build/{context-B8kTBKjt.cjs → context-DssNKJ_n.cjs} +2 -2
- package/build/{context-B8kTBKjt.cjs.map → context-DssNKJ_n.cjs.map} +1 -1
- package/build/{context-LBih45kv.js → context-PFdUnKga.js} +2 -2
- package/build/{context-LBih45kv.js.map → context-PFdUnKga.js.map} +1 -1
- package/build/context-app.cjs.js +1 -1
- package/build/context-app.es.js +2 -2
- package/build/context-cookie.cjs.js +1 -1
- package/build/context-cookie.es.js +2 -2
- package/build/context-dialog.cjs.js +1 -1
- package/build/context-dialog.es.js +2 -2
- package/build/context-geolocation.cjs.js +1 -1
- package/build/context-geolocation.es.js +2 -2
- package/build/context-local-storage.cjs.js +1 -1
- package/build/context-local-storage.es.js +2 -2
- package/build/context-sonner.cjs.js +1 -1
- package/build/context-sonner.es.js +2 -2
- package/build/{context-C0_RNFp_.js → context-w9weDPCZ.js} +12 -7
- package/build/{context-C0_RNFp_.js.map → context-w9weDPCZ.js.map} +1 -1
- package/build/{context.constants-DUVlJghM.js → context.constants-B14bB8O1.js} +7 -2
- package/build/context.constants-B14bB8O1.js.map +1 -0
- package/build/{context.constants-Bzn9Rcey.cjs → context.constants-BA1u2p1r.cjs} +2 -2
- package/build/context.constants-BA1u2p1r.cjs.map +1 -0
- package/build/{context.constants-D0UjboYX.js → context.constants-BWLe7YHv.js} +17 -12
- package/build/{context.constants-D0UjboYX.js.map → context.constants-BWLe7YHv.js.map} +1 -1
- package/build/{context.constants-gXk1ewxx.cjs → context.constants-baqYH-_k.cjs} +3 -3
- package/build/{context.constants-gXk1ewxx.cjs.map → context.constants-baqYH-_k.cjs.map} +1 -1
- package/build/{context.functions-BqeTmcmr.cjs → context.functions--v7FClEV.cjs} +2 -2
- package/build/{context.functions-BqeTmcmr.cjs.map → context.functions--v7FClEV.cjs.map} +1 -1
- package/build/{context.functions-D2K4Xk47.js → context.functions-CB6--UcR.js} +2 -2
- package/build/{context.functions-D2K4Xk47.js.map → context.functions-CB6--UcR.js.map} +1 -1
- package/build/{context.functions-Duwzgcga.cjs → context.functions-CHaPcuVS.cjs} +2 -2
- package/build/{context.functions-Duwzgcga.cjs.map → context.functions-CHaPcuVS.cjs.map} +1 -1
- package/build/{context.functions-ObfwvEVG.js → context.functions-CPP8X6so.js} +2 -2
- package/build/{context.functions-ObfwvEVG.js.map → context.functions-CPP8X6so.js.map} +1 -1
- package/build/context.hooks-B-YcyJ5E.cjs +2 -0
- package/build/{context.hooks-CYJnoIrt.cjs.map → context.hooks-B-YcyJ5E.cjs.map} +1 -1
- package/build/{context.hooks-CUXDpPaG.cjs → context.hooks-Bi7spFak.cjs} +2 -2
- package/build/{context.hooks-CUXDpPaG.cjs.map → context.hooks-Bi7spFak.cjs.map} +1 -1
- package/build/{context.hooks-v8uZ7dfO.js → context.hooks-BnHnPV_i.js} +2 -2
- package/build/{context.hooks-v8uZ7dfO.js.map → context.hooks-BnHnPV_i.js.map} +1 -1
- package/build/{context.hooks-CDvi20Bm.cjs → context.hooks-CDnjxy35.cjs} +2 -2
- package/build/{context.hooks-CDvi20Bm.cjs.map → context.hooks-CDnjxy35.cjs.map} +1 -1
- package/build/context.hooks-DDD8ffJI.cjs.map +1 -1
- package/build/{context.hooks-CXJ-eM6d.js → context.hooks-Df0m0Voe.js} +2 -2
- package/build/{context.hooks-CXJ-eM6d.js.map → context.hooks-Df0m0Voe.js.map} +1 -1
- package/build/{context.hooks-Bkj1PSKe.cjs → context.hooks-DjafkFMD.cjs} +2 -2
- package/build/{context.hooks-Bkj1PSKe.cjs.map → context.hooks-DjafkFMD.cjs.map} +1 -1
- package/build/{context.hooks-Djt5R2yX.js → context.hooks-HEeFGka7.js} +2 -2
- package/build/{context.hooks-Djt5R2yX.js.map → context.hooks-HEeFGka7.js.map} +1 -1
- package/build/{context.hooks-CCLq09Ra.js → context.hooks-NDk5ehgk.js} +2 -2
- package/build/{context.hooks-CCLq09Ra.js.map → context.hooks-NDk5ehgk.js.map} +1 -1
- package/build/context.hooks-oclt34zD.js.map +1 -1
- package/build/index.cjs.js +1 -1
- package/build/index.es.js +25 -25
- package/build/style-error.cjs.js +1 -1
- package/build/style-error.es.js +1 -1
- package/build/style-theme.cjs.js +1 -1
- package/build/style-theme.es.js +1 -1
- package/build/{use-BNuSnUSV.cjs → use-BF8VW4MA.cjs} +2 -2
- package/build/{use-BNuSnUSV.cjs.map → use-BF8VW4MA.cjs.map} +1 -1
- package/build/{use-D8uozTND.js → use-DdGWsOBo.js} +5 -5
- package/build/{use-D8uozTND.js.map → use-DdGWsOBo.js.map} +1 -1
- package/package.json +1 -1
- package/build/context-B1id3uai.cjs +0 -2
- package/build/context-B1id3uai.cjs.map +0 -1
- package/build/context-BkovkNHQ.js.map +0 -1
- package/build/context.constants-Bzn9Rcey.cjs.map +0 -1
- package/build/context.constants-DUVlJghM.js.map +0 -1
- package/build/context.hooks-CYJnoIrt.cjs +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.types-CryJGkU7.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 {\n ChangeEvent,\n Fragment,\n KeyboardEvent,\n RefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} 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 DateInputButtonClear,\n DateInputWrapper,\n DatePickerMode,\n DatePickerProps,\n DatePickerType,\n DatePickerVariant,\n DateWrapper,\n WeekItem,\n} from '.';\n\nconst weekOrder: WeekItem['value'][] = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'];\n\nexport const DatePicker = (props: DatePickerProps) => {\n const { onChange } = props;\n const theme = useTheme();\n\n const [valueMoment, setValueMoment] = useState<null | Moment>(null);\n const [dateDefaultMoment, setDateDefaultMoment] = useState<Moment>(moment(props.dateDefault).utc());\n\n const [input, setInput] = useState<Record<DatePickerVariant, string>>({\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n });\n\n useEffect(() => {\n refInputValue.current = input;\n }, [input]);\n\n const isHasInput = useMemo(\n () =>\n input[DatePickerVariant.DD] !== '' || input[DatePickerVariant.MM] !== '' || input[DatePickerVariant.YYYY] !== '',\n [input],\n );\n\n const onClearInput = useCallback(() => {\n setInput({\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n });\n }, []);\n\n const [activeSegment, setActiveSegment] = useState<DatePickerVariant | null>(null);\n const [isError, setIsError] = useState(false);\n\n const mode: 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 type: DatePickerType = useMemo(() => {\n if (!props.type) {\n return 'manualAndSelect';\n }\n\n return props.type;\n }, [props.type]);\n\n const dataDate = useMemo(() => {\n const segments = [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY];\n\n const result = Object.fromEntries(\n segments.map((segment) => [\n segment,\n {\n type: segment,\n value: input[segment],\n placeholder:\n props.locale.inputs[\n segment === DatePickerVariant.DD ? 'day' : segment === DatePickerVariant.MM ? 'month' : 'year'\n ],\n isFirst: mode[0] === segment,\n isLast: mode[mode.length - 1] === segment,\n segmentNext: getNextSegment(segment, mode),\n segmentPrev: getPrevSegment(segment, mode),\n onNextSegment: () => setActiveSegment(getNextSegment(segment, mode)),\n onPrevSegment: () => setActiveSegment(getPrevSegment(segment, mode)),\n setValue: (value: string) => setInput((prev) => ({ ...prev, [segment]: value })),\n setActive: () => setActiveSegment(segment),\n },\n ]),\n ) as Record<\n DatePickerVariant,\n {\n type: DatePickerVariant;\n value: string;\n placeholder: string;\n isFirst: boolean;\n isLast: boolean;\n segmentNext: DatePickerVariant | null;\n segmentPrev: DatePickerVariant | null;\n onNextSegment: () => void;\n onPrevSegment: () => void;\n setValue: (value: string) => void;\n setActive: () => void;\n }\n >;\n\n const resultSort = mode.map((segment) => result[segment]).filter(Boolean);\n\n return { sort: resultSort, default: result };\n }, [props, mode, input]);\n\n const daysInWeek = useMemo(() => {\n return weekOrder.map((key, index) => {\n const found = props.locale.weeks.find((w) => w.value === key);\n return {\n index,\n label: found?.localeShort ?? key.toUpperCase(),\n };\n });\n }, [props.locale.weeks]);\n\n const daysInMonth: DateDayProps[] = useMemo(() => {\n const dateToday = moment.utc();\n const dateValue = valueMoment ?? dateDefaultMoment;\n const dateStartOfMonth = dateValue.clone().startOf('month');\n const dateEndOfMonth = dateValue.clone().endOf('month');\n const dateMin = props.dateMin ? moment.utc(props.dateMin) : null;\n const dateMax = props.dateMax ? moment.utc(props.dateMax) : null;\n\n const dateVisibleDayFirst = dateStartOfMonth.clone().subtract(dateStartOfMonth.isoWeekday() - 1, 'days');\n const dateVisibleDayLast = dateEndOfMonth.clone().add(7 - dateEndOfMonth.isoWeekday(), 'days');\n\n const result: DateDayProps[] = [];\n const dateCurrent = dateVisibleDayFirst.clone();\n\n while (dateCurrent <= dateVisibleDayLast) {\n const isCurrentMonth = dateCurrent.isBetween(dateStartOfMonth, dateEndOfMonth, 'day', '[]');\n result.push({\n value: dateCurrent.valueOf(),\n labelString: dateCurrent.format('dd'),\n labelNumber: dateCurrent.date(),\n dayOfWeek: dateCurrent.isoWeekday(),\n isWeekend: [6, 7].includes(dateCurrent.isoWeekday()),\n weekOfMonth: Math.ceil((result.length + 1) / 7),\n isToday: dateCurrent.isSame(dateToday, 'day'),\n isCurrentMonth,\n isDisabled: !!(\n (dateMin && dateCurrent.isBefore(dateMin, 'day')) ||\n (dateMax && dateCurrent.isAfter(dateMax, 'day'))\n ),\n });\n\n dateCurrent.add(1, 'day');\n }\n\n return result;\n }, [valueMoment, dateDefaultMoment, props.dateMax, props.dateMin]);\n\n const rows = useMemo(() => getCountSevens(daysInMonth.length) + 1, [daysInMonth]);\n\n const sizeRadius = useMemo(() => KEY_SIZE_DATA[props.size].radius, [props.size]);\n const sizePadding = useMemo(() => KEY_SIZE_DATA[props.size].padding, [props.size]);\n\n const height = useMemo(() => 40 + rows * 28 + (rows - 1) * 6 + sizePadding * 2, [sizePadding, rows]);\n\n const isHasValue = useMemo(() => valueMoment !== null, [valueMoment]);\n\n const isBlockNextMonth = useMemo(() => {\n const nextMonth = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month').startOf('month');\n const isBeforeEndDate = props.dateMax ? nextMonth.isAfter(moment.utc(props.dateMax), 'month') : false;\n return isBeforeEndDate;\n }, [valueMoment, props.dateMax, dateDefaultMoment]);\n\n const isBlockPrevMonth = useMemo(() => {\n const prevMonth = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month').startOf('month');\n const isAfterStartDate = props.dateMin ? prevMonth.isBefore(moment.utc(props.dateMin), 'month') : false;\n return isAfterStartDate;\n }, [valueMoment, props.dateMin, dateDefaultMoment]);\n\n const [isInputFocused, setIsInputFocused] = useState(false);\n\n const refInputValue = useRef(input);\n const refIsHasValueOnce = useRef(false);\n const refPrevValue = useRef('');\n const refSelectMonth = useRef<HTMLElement>(null);\n const refSelectYear = useRef<HTMLElement>(null);\n const refHiddenInput = useRef<HTMLInputElement>(null);\n\n const onFocusPopover = useCallback(() => {\n props.onFocus?.();\n }, [props.onFocus]);\n const onBlurPopover = useCallback(() => {\n props.onBlur?.();\n }, [props.onBlur]);\n const onBlurReference = useCallback(() => {\n setActiveSegment(null);\n }, []);\n\n const { isOpen, refReference, refFloating, floatingStyles, close, toggle } = usePopover({\n placement: 'bottom-start',\n offset: sizePadding,\n mode: 'independence',\n isClickOutside: true,\n refsExcludeClickOutside: [refSelectMonth, refSelectYear],\n isDisabled: props?.isDisabled || props?.isReadOnly,\n onFocus: onFocusPopover,\n onBlur: onBlurPopover,\n onBlurReference: onBlurReference,\n });\n\n const isShowPlaceholder = useMemo(() => {\n return !!(\n !isInputFocused &&\n !isHasValue &&\n props.labelPlaceholder &&\n (type !== 'select' ? !isOpen : true) &&\n !isHasInput &&\n !activeSegment\n );\n }, [isInputFocused, isHasValue, isOpen, props.labelPlaceholder, isHasInput, activeSegment, type]);\n\n const onChangeDate = useCallback(\n (timestamp: number, isAddLeadingZeros: boolean, input?: Record<DatePickerVariant, string>) => {\n const momentNewDate = moment(timestamp).utc();\n\n const dd = momentNewDate.clone().date().toString();\n const mm = (momentNewDate.clone().month() + 1).toString();\n\n const ddWithZero = dd.padStart(2, '0');\n const mmWithZero = mm.padStart(2, '0');\n\n const yyyy = momentNewDate.clone().year().toString();\n const ddInput = input?.[DatePickerVariant.DD];\n const mmInput = input?.[DatePickerVariant.MM];\n const yyyyInput = input?.[DatePickerVariant.YYYY];\n\n const isSameInput = ddWithZero === ddInput && mmWithZero === mmInput && yyyyInput === yyyy;\n const isSameMoment = valueMoment?.isSame(momentNewDate, 'day');\n if (!isSameMoment) {\n setValueMoment(momentNewDate);\n onChange(momentNewDate.valueOf());\n }\n\n if (!isSameMoment || input ? !isSameInput : false) {\n setInput({\n [DatePickerVariant.DD]: isAddLeadingZeros ? ddWithZero : dd,\n [DatePickerVariant.MM]: isAddLeadingZeros ? mmWithZero : mm,\n [DatePickerVariant.YYYY]: yyyy,\n });\n }\n },\n [valueMoment, onChange],\n );\n\n const onKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n const key = e.key;\n\n const allowedKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Backspace', 'Delete', 'Tab', 'Enter'];\n\n const isDigit = /^\\d$/.test(key);\n const isAllowed = isDigit || allowedKeys.includes(key) || e.ctrlKey || e.metaKey;\n\n if (!isAllowed) {\n e.preventDefault();\n return;\n }\n\n if (activeSegment && dataDate.default[activeSegment]) {\n if (isDigit) {\n const digit = key;\n\n getDigitKey(digit, activeSegment, input, dataDate);\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Tab') {\n if (!dataDate.default[activeSegment].isLast) {\n e.preventDefault();\n dataDate.default[activeSegment].onNextSegment();\n } else {\n refHiddenInput?.current?.blur();\n }\n }\n if (key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Backspace' || key === 'Delete') {\n if (activeSegment === DatePickerVariant.DD) {\n if (input.DD !== '') {\n const current = input.DD;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n } else if (activeSegment === DatePickerVariant.MM) {\n if (input.MM !== '') {\n const current = input.MM;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n } else if (activeSegment === DatePickerVariant.YYYY) {\n if (input.YYYY !== '') {\n const current = input.YYYY;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n e.preventDefault();\n dataDate.default[activeSegment].onPrevSegment();\n }\n if (key === 'ArrowRight' || key === 'ArrowUp') {\n e.preventDefault();\n dataDate.default[activeSegment].onNextSegment();\n }\n }\n },\n [activeSegment, input, dataDate.default, dataDate],\n );\n\n const onNextMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onPrevMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onFocusInput = useCallback(() => {\n if (type === 'select') return;\n setIsInputFocused(true);\n if (!activeSegment) setActiveSegment(DatePickerVariant.DD);\n }, [activeSegment, type]);\n\n const onBlurInput = useCallback(() => {\n setIsInputFocused(false);\n\n if (!isOpen) {\n props.onBlur?.();\n }\n }, [isOpen, props.onBlur]);\n\n const onChangeInput = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value;\n\n const result = getParseDateString(value);\n\n if (result) {\n setInput({\n DD: String(result.day).padStart(2, '0'),\n MM: String(result.month).padStart(2, '0'),\n YYYY: String(result.year),\n });\n if (refHiddenInput.current) refHiddenInput.current.value = '';\n return;\n }\n\n const prevValue = refPrevValue.current;\n\n const newChar = value.length > prevValue.length ? value.slice(-1) : null;\n\n refPrevValue.current = value;\n\n if (newChar && /^\\d$/.test(newChar)) {\n onKeyDown({\n key: newChar,\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n if (value.length < prevValue.length) {\n onKeyDown({\n key: 'Backspace',\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n if (refHiddenInput.current) refHiddenInput.current.value = '';\n },\n [onKeyDown],\n );\n\n useEffect(() => {\n if (isHasValue && !refIsHasValueOnce.current) refIsHasValueOnce.current = true;\n }, [isHasValue]);\n\n useEffect(() => {\n setDateDefaultMoment(moment(props.dateDefault).utc());\n }, [props.dateDefault]);\n\n useEffect(() => {\n setValueMoment(props.value || props.defaultValue ? moment(props.value ?? props.defaultValue).utc() : null);\n if (props.value) {\n // При инициализации также форматируем в строки с ведущими нулями\n const m = moment(props.value).utc();\n setInput({\n [DatePickerVariant.DD]: m.date().toString().padStart(2, '0'),\n [DatePickerVariant.MM]: (m.month() + 1).toString().padStart(2, '0'),\n [DatePickerVariant.YYYY]: m.year().toString(),\n });\n }\n }, [props.value, props.defaultValue]);\n\n useEffect(() => {\n if (!activeSegment)\n getValidateInput(\n input,\n (value) => {\n onChangeDate(value, true, input);\n setIsError(false);\n },\n () => {\n onChange(null);\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n if (refIsHasValueOnce.current) {\n onChange(null);\n refIsHasValueOnce.current = false;\n }\n setIsError(false);\n }\n },\n );\n }, [onChangeDate, onChange, input, activeSegment]);\n\n useEffect(() => {\n if (!isOpen && !isInputFocused && isHasInput && !activeSegment)\n getValidateInput(\n input,\n () => {},\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n );\n }, [onClearInput, input, isOpen, isInputFocused, onChange, isHasInput, activeSegment]);\n\n useEffect(() => {\n if (!activeSegment) return;\n getValidateInput(\n refInputValue.current,\n (value) => {\n onChangeDate(value, true, refInputValue.current);\n setIsError(false);\n },\n () => {\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n setIsError(false);\n }\n },\n );\n }, [onChangeDate, activeSegment]);\n\n useEffect(() => {\n if (activeSegment) {\n close();\n refHiddenInput?.current?.focus();\n }\n }, [activeSegment, close]);\n 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 (type === 'select') {\n toggle();\n return;\n }\n if (!activeSegment && !props?.isReadOnly) setActiveSegment(DatePickerVariant.DD);\n }}\n >\n {type !== 'select' ? (\n <input\n name={props.name}\n aria-label={props.ariaLabel ?? props.name}\n autoComplete={props.autoComplete}\n id={props.id}\n ref={refHiddenInput}\n type='tel'\n inputMode='numeric'\n tabIndex={0}\n disabled={props?.isDisabled || props?.isReadOnly}\n style={{\n position: 'absolute',\n left: '-100dvw',\n top: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n border: 'none',\n background: 'transparent',\n }}\n onKeyDown={onKeyDown}\n onChange={onChangeInput}\n onFocus={onFocusInput}\n onBlur={onBlurInput}\n />\n ) : null}\n {isShowPlaceholder ? (\n <Typography\n sx={{ 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 if (type === 'select') return;\n e.preventDefault();\n e.stopPropagation();\n if (props?.isDisabled || props?.isReadOnly) return;\n date.setActive();\n }}\n >\n {date.value || date.placeholder || ''}\n </DateInput>\n {index !== dataDate.sort.length - 1 && (\n <span style={{ width: '4px', pointerEvents: 'none', textAlign: 'center' }}>.</span>\n )}\n </Fragment>\n ))\n )}\n {type !== 'manual' ? (\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 tabIndex={0}\n onFocus={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setActiveSegment(null);\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n toggle();\n }}\n />\n ) : null}\n {props.isShowClearButton && (isHasValue || isHasInput) && !props?.isDisabled && !props?.isReadOnly ? (\n <DateInputButtonClear\n genre={props.genre}\n size='small'\n isWidthAsHeight\n isFullSize\n isRadius\n isWhileTapEffect\n isOnlyIcon\n isDisabledRipple\n tabIndex={0}\n icons={[{ name: 'Close', type: 'id' }]}\n isDisabled={props?.isDisabled || props?.isReadOnly}\n onFocus={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setActiveSegment(null);\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onChange(null);\n onClearInput();\n setIsError(false);\n }}\n />\n ) : null}\n </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={() => onPrevMonth()}\n isDisabledRipple\n isHidden={isBlockPrevMonth}\n isDisabled={isBlockPrevMonth}\n />\n <Stack sx={{ default: { gap: '8px' } }}>\n <SelectMonth\n isToggleWhenClickSelectListOption\n monthsLocale={props.locale.months}\n genre={props.genre}\n size={'small'}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('month').utc().valueOf()}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n isShortLabel\n refFloating={refSelectMonth}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n }}\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n sx={{ default: { width: '60px' } }}\n />\n <SelectYear\n isToggleWhenClickSelectListOption\n genre={props.genre}\n size={'small'}\n refFloating={refSelectYear}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('year').utc().valueOf()}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n }}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n sx={{ default: { width: '60px' } }}\n />\n </Stack>\n <Button\n type='button'\n isWhileTapEffect\n onClick={() => 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\nconst ISO_DATE_REGEX = /^\\d{4}-\\d{2}-\\d{2}$/;\nconst SLASH_DATE_REGEX = /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/;\n\nfunction getDigitKey(\n key: string,\n activeSegment: DatePickerVariant,\n input: Record<DatePickerVariant, string>,\n dataDate: { default: Record<DatePickerVariant, { setValue: (value: string) => void; onNextSegment: () => void }> },\n) {\n const digit = key; // '0'..'9'\n const seg = activeSegment;\n const current = input[seg] ?? ''; // Теперь это уже строка\n\n if (seg === DatePickerVariant.DD) {\n // Дни: максимум 31\n if (current.length >= 2) {\n // уже два символа — начинаем ввод заново\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (current === '') {\n // первый символ\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // есть один символ, добавляем второй\n const potential = current + digit;\n const potentialNum = Number(potential);\n\n if (potentialNum > 31) {\n // если получается больше 31, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (potentialNum === 0) {\n // если получается 00, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // нормальная комбинация\n dataDate.default[seg].setValue(potential);\n dataDate.default[seg].onNextSegment();\n // const newInput = { ...input, [seg]: potential };\n // onNextSegment?.(newInput);\n } else if (seg === DatePickerVariant.MM) {\n // Месяцы: максимум 12\n if (current.length >= 2) {\n // уже два символа — начинаем ввод заново\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (current === '') {\n // первый символ\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // есть один символ, добавляем второй\n const potential = current + digit;\n const potentialNum = Number(potential);\n\n if (potentialNum > 12) {\n // если получается больше 12, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (potentialNum === 0) {\n // если получается 00, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // нормальная комбинация\n dataDate.default[seg].setValue(potential);\n if (potential.length === 2 || (potential.length === 1 && Number(potential) > 1)) {\n dataDate.default[seg].onNextSegment();\n // const newInput = { ...input, [seg]: potential };\n // onNextSegment?.(newInput);\n }\n } else if (seg === DatePickerVariant.YYYY) {\n // Год: накапливаем до 4 цифр\n if (current.length >= 4) {\n // уже четыре символа — начинаем ввод заново\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // добавляем цифру\n const nextValue = current + digit;\n dataDate.default[seg].setValue(nextValue);\n }\n}\n\nfunction getParseDateString(value: string) {\n // 1. ISO формат (YYYY-MM-DD)\n if (ISO_DATE_REGEX.test(value)) {\n const [year, month, day] = value.split('-').map(Number);\n return getValidateDate(year, month, day);\n }\n\n // 2. Локализованный формат (M/D/YYYY или D/M/YYYY)\n const match = SLASH_DATE_REGEX.exec(value);\n if (match) {\n const [_, p1, p2, p3] = match;\n const num1 = Number(p1);\n const num2 = Number(p2);\n const year = Number(p3);\n\n // Определяем порядок\n // Если num1 > 12 → значит это день (D/M/YYYY)\n let month: number;\n let day: number;\n\n if (num1 > 12) {\n day = num1;\n month = num2;\n } else {\n // По умолчанию считаем M/D/YYYY\n month = num1;\n day = num2;\n }\n\n return getValidateDate(year, month, day);\n }\n\n return null;\n}\n\nfunction getValidateDate(year: number, month: number, day: number) {\n const date = new Date(year, month - 1, day);\n if (date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day) {\n return { year, month, day };\n }\n return null;\n}\n\nfunction getCountSevens(number: number) {\n const divisor = 7;\n const count = Math.floor(number / divisor);\n const remainder = number % divisor;\n\n return remainder > 0 ? count + 1 : count;\n}\n\nfunction getNextSegment(currentSegment: DatePickerVariant, mode: DatePickerMode): DatePickerVariant | null {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex < mode.length - 1 ? mode[currentIndex + 1] : mode[0];\n}\n\nfunction getPrevSegment(currentSegment: DatePickerVariant, mode: DatePickerMode): DatePickerVariant | null {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex > 0 ? mode[currentIndex - 1] : mode[mode.length - 1];\n}\n\nfunction getValidateInput(\n input: Record<DatePickerVariant, string>,\n onSuccess?: (value: number) => void,\n onFailure?: () => void,\n onNan?: (isHasInput: boolean) => void,\n) {\n const dayStr = input.DD;\n const monthStr = input.MM;\n const yearStr = input.YYYY;\n\n const day = dayStr === '' ? NaN : Number(dayStr);\n const month = monthStr === '' ? NaN : Number(monthStr);\n const year = yearStr === '' ? NaN : Number(yearStr);\n\n const isHasInput = dayStr !== '' || monthStr !== '' || yearStr !== '';\n\n if (!Number.isNaN(day) && !Number.isNaN(month) && !Number.isNaN(year)) {\n const m = moment.utc(`${day}.${month}.${year}`, 'D.M.YYYY', true).startOf('day');\n if (m.isValid()) {\n onSuccess?.(m.valueOf());\n } else {\n onFailure?.();\n }\n } else {\n onNan?.(isHasInput);\n }\n}\n","import { InputStandardProps, StyledInputProps, StyledInputWrapperProps } from '@local/components/input';\nimport { addFontProps, addOutlineProps, addOutlinePropsDollar } from '@local/styles/add';\nimport { addErrorProps, ErrorMessageProps } from '@local/styles/error';\nimport { addSXProps } from '@local/styles/sx';\nimport { IThemeGenreDate, IThemeSize } from '@local/theme';\nimport { AddDollarSign } from '@local/types';\n\nimport { HTMLInputAutoCompleteAttribute } from 'react';\n\nimport { SelectMonthProps } from '../select';\n\nexport type DatePickerMode = DatePickerVariant[];\n\nexport enum DatePickerVariant {\n DD = 'DD',\n MM = 'MM',\n YYYY = 'YYYY',\n}\n\nexport type DatePickerType = 'manual' | 'select' | 'manualAndSelect';\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 isShowClearButton?: 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 type?: DatePickerType;\n\n name?: string;\n\n ariaLabel?: string;\n\n autoComplete?: HTMLInputAutoCompleteAttribute | string;\n \n onBlur?: () => void;\n\n onChange: (timestamp: number | null) => void;\n\n onFocus?: () => void;\n\n size: IThemeSize;\n\n dateMax?: number;\n\n dateMin?: number;\n\n dateDefault: number;\n };\n\ntype ControlledValue = {\n value: number | null | undefined;\n\n defaultValue?: never;\n};\n\ntype UncontrolledValue = {\n defaultValue: number | null | undefined;\n\n value?: never;\n};\nexport type DatePickerProps = CommonDatePickerProps & (ControlledValue | UncontrolledValue);\n\nexport type TDateGenre = keyof IThemeGenreDate;\n\nexport interface DateDayProps {\n dayOfWeek: number;\n\n isCurrentMonth: boolean;\n\n isDisabled: boolean;\n\n isToday: boolean;\n\n isWeekend: boolean;\n\n labelNumber: number;\n\n labelString: string;\n\n value: number;\n\n weekOfMonth: number;\n}\n\nexport type DateWrapperProps = AddDollarSign<\n Pick<InputStandardProps, 'genre' | 'isDisabled'> & {\n parentListHeight: number;\n radius: number;\n isMinWidth?: boolean;\n }\n> &\n StyledInputWrapperProps;\n\nexport type DateInputProps = AddDollarSign<\n Pick<DatePickerProps, 'error' | 'genre' | 'size' | 'isBold' | 'isReadOnly' | 'isDisabledOutline' | 'isOutlineBoxShadow' | 'isDisabled' | 'font'> & {\n isOpen?: boolean;\n isActive?: boolean;\n isHaveValue?: boolean;\n isShowPlaceholder?: boolean;\n }\n>;\n\nexport type DateStyledOptionProps = AddDollarSign<{\n isSelectedItem?: boolean;\n isCheckboxProps?: boolean;\n}> &\n StyledInputProps;\n\nexport type DateStyledListProps = AddDollarSign<Pick<InputStandardProps, 'genre' | 'size'>>;\n\nexport type DateDropdownListProps = AddDollarSign<\n Pick<DatePickerProps, 'isInputEffect'> & Pick<DatePickerProps, 'genre' | 'size'>\n>;\n\nexport type DateDropdownDayProps = AddDollarSign<\n Pick<DatePickerProps, 'genre' | 'size' | 'font'> &\n Pick<DateDayProps, 'isToday' | 'isWeekend'> & {\n row: number;\n column: number;\n isChoice?: boolean;\n isCurrentMonth?: boolean;\n isDisabled?: boolean;\n }\n> &\n addOutlinePropsDollar;\n\nexport type MonthItem = {\n localeLong: string;\n\n localeShort: string;\n\n value:\n | 'january'\n | 'february'\n | 'march'\n | 'april'\n | 'may'\n | 'june'\n | 'july'\n | 'august'\n | 'september'\n | 'october'\n | 'november'\n | 'december';\n};\nexport type WeekItem = {\n localeLong: string;\n\n localeShort: string;\n\n value: 'mo' | 'tu' | 'we' | 'th' | 'fr' | 'sa' | 'su';\n};\nexport type InputItem = {\n day: string;\n\n month: string;\n\n year: string;\n};\n"],"names":["moment","_a","input","isHasInput","jsxs","Fragment","jsx","theme","_b","DatePickerVariant"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"component.types-e2YpVj0l.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 {\n ChangeEvent,\n Fragment,\n KeyboardEvent,\n RefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} 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 DateInputButtonClear,\n DateInputWrapper,\n DatePickerMode,\n DatePickerProps,\n DatePickerType,\n DatePickerVariant,\n DateWrapper,\n WeekItem,\n} from '.';\n\nconst weekOrder: WeekItem['value'][] = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'];\n\nexport const DatePicker = (props: DatePickerProps) => {\n const { onChange } = props;\n const theme = useTheme();\n\n const [valueMoment, setValueMoment] = useState<null | Moment>(null);\n const [dateDefaultMoment, setDateDefaultMoment] = useState<Moment>(moment(props.dateDefault).utc());\n\n const [input, setInput] = useState<Record<DatePickerVariant, string>>({\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n });\n\n useEffect(() => {\n refInputValue.current = input;\n }, [input]);\n\n const isHasInput = useMemo(\n () =>\n input[DatePickerVariant.DD] !== '' || input[DatePickerVariant.MM] !== '' || input[DatePickerVariant.YYYY] !== '',\n [input],\n );\n\n const onClearInput = useCallback(() => {\n setInput({\n [DatePickerVariant.DD]: '',\n [DatePickerVariant.MM]: '',\n [DatePickerVariant.YYYY]: '',\n });\n }, []);\n\n const [activeSegment, setActiveSegment] = useState<DatePickerVariant | null>(null);\n const [isError, setIsError] = useState(false);\n\n const mode: 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 type: DatePickerType = useMemo(() => {\n if (!props.type) {\n return 'manualAndSelect';\n }\n\n return props.type;\n }, [props.type]);\n\n const dataDate = useMemo(() => {\n const segments = [DatePickerVariant.DD, DatePickerVariant.MM, DatePickerVariant.YYYY];\n\n const result = Object.fromEntries(\n segments.map((segment) => [\n segment,\n {\n type: segment,\n value: input[segment],\n placeholder:\n props.locale.inputs[\n segment === DatePickerVariant.DD ? 'day' : segment === DatePickerVariant.MM ? 'month' : 'year'\n ],\n isFirst: mode[0] === segment,\n isLast: mode[mode.length - 1] === segment,\n segmentNext: getNextSegment(segment, mode),\n segmentPrev: getPrevSegment(segment, mode),\n onNextSegment: () => setActiveSegment(getNextSegment(segment, mode)),\n onPrevSegment: () => setActiveSegment(getPrevSegment(segment, mode)),\n setValue: (value: string) => setInput((prev) => ({ ...prev, [segment]: value })),\n setActive: () => setActiveSegment(segment),\n },\n ]),\n ) as Record<\n DatePickerVariant,\n {\n type: DatePickerVariant;\n value: string;\n placeholder: string;\n isFirst: boolean;\n isLast: boolean;\n segmentNext: DatePickerVariant | null;\n segmentPrev: DatePickerVariant | null;\n onNextSegment: () => void;\n onPrevSegment: () => void;\n setValue: (value: string) => void;\n setActive: () => void;\n }\n >;\n\n const resultSort = mode.map((segment) => result[segment]).filter(Boolean);\n\n return { sort: resultSort, default: result };\n }, [props, mode, input]);\n\n const daysInWeek = useMemo(() => {\n return weekOrder.map((key, index) => {\n const found = props.locale.weeks.find((w) => w.value === key);\n return {\n index,\n label: found?.localeShort ?? key.toUpperCase(),\n };\n });\n }, [props.locale.weeks]);\n\n const daysInMonth: DateDayProps[] = useMemo(() => {\n const dateToday = moment.utc();\n const dateValue = valueMoment ?? dateDefaultMoment;\n const dateStartOfMonth = dateValue.clone().startOf('month');\n const dateEndOfMonth = dateValue.clone().endOf('month');\n const dateMin = props.dateMin ? moment.utc(props.dateMin) : null;\n const dateMax = props.dateMax ? moment.utc(props.dateMax) : null;\n\n const dateVisibleDayFirst = dateStartOfMonth.clone().subtract(dateStartOfMonth.isoWeekday() - 1, 'days');\n const dateVisibleDayLast = dateEndOfMonth.clone().add(7 - dateEndOfMonth.isoWeekday(), 'days');\n\n const result: DateDayProps[] = [];\n const dateCurrent = dateVisibleDayFirst.clone();\n\n while (dateCurrent <= dateVisibleDayLast) {\n const isCurrentMonth = dateCurrent.isBetween(dateStartOfMonth, dateEndOfMonth, 'day', '[]');\n result.push({\n value: dateCurrent.valueOf(),\n labelString: dateCurrent.format('dd'),\n labelNumber: dateCurrent.date(),\n dayOfWeek: dateCurrent.isoWeekday(),\n isWeekend: [6, 7].includes(dateCurrent.isoWeekday()),\n weekOfMonth: Math.ceil((result.length + 1) / 7),\n isToday: dateCurrent.isSame(dateToday, 'day'),\n isCurrentMonth,\n isDisabled: !!(\n (dateMin && dateCurrent.isBefore(dateMin, 'day')) ||\n (dateMax && dateCurrent.isAfter(dateMax, 'day'))\n ),\n });\n\n dateCurrent.add(1, 'day');\n }\n\n return result;\n }, [valueMoment, dateDefaultMoment, props.dateMax, props.dateMin]);\n\n const rows = useMemo(() => getCountSevens(daysInMonth.length) + 1, [daysInMonth]);\n\n const sizeRadius = useMemo(() => KEY_SIZE_DATA[props.size].radius, [props.size]);\n const sizePadding = useMemo(() => KEY_SIZE_DATA[props.size].padding, [props.size]);\n\n const height = useMemo(() => 40 + rows * 28 + (rows - 1) * 6 + sizePadding * 2, [sizePadding, rows]);\n\n const isHasValue = useMemo(() => valueMoment !== null, [valueMoment]);\n\n const isBlockNextMonth = useMemo(() => {\n const nextMonth = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month').startOf('month');\n const isBeforeEndDate = props.dateMax ? nextMonth.isAfter(moment.utc(props.dateMax), 'month') : false;\n return isBeforeEndDate;\n }, [valueMoment, props.dateMax, dateDefaultMoment]);\n\n const isBlockPrevMonth = useMemo(() => {\n const prevMonth = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month').startOf('month');\n const isAfterStartDate = props.dateMin ? prevMonth.isBefore(moment.utc(props.dateMin), 'month') : false;\n return isAfterStartDate;\n }, [valueMoment, props.dateMin, dateDefaultMoment]);\n\n const [isInputFocused, setIsInputFocused] = useState(false);\n\n const refInputValue = useRef(input);\n const refIsHasValueOnce = useRef(false);\n const refPrevValue = useRef('');\n const refSelectMonth = useRef<HTMLElement>(null);\n const refSelectYear = useRef<HTMLElement>(null);\n const refHiddenInput = useRef<HTMLInputElement>(null);\n\n const onFocusPopover = useCallback(() => {\n props.onFocus?.();\n }, [props.onFocus]);\n const onBlurPopover = useCallback(() => {\n props.onBlur?.();\n }, [props.onBlur]);\n const onBlurReference = useCallback(() => {\n setActiveSegment(null);\n }, []);\n\n const { isOpen, refReference, refFloating, floatingStyles, close, toggle } = usePopover({\n placement: 'bottom-start',\n offset: sizePadding,\n mode: 'independence',\n isClickOutside: true,\n refsExcludeClickOutside: [refSelectMonth, refSelectYear],\n isDisabled: props?.isDisabled || props?.isReadOnly,\n onFocus: onFocusPopover,\n onBlur: onBlurPopover,\n onBlurReference: onBlurReference,\n });\n\n const isShowPlaceholder = useMemo(() => {\n return !!(\n !isInputFocused &&\n !isHasValue &&\n props.labelPlaceholder &&\n (type !== 'select' ? !isOpen : true) &&\n !isHasInput &&\n !activeSegment\n );\n }, [isInputFocused, isHasValue, isOpen, props.labelPlaceholder, isHasInput, activeSegment, type]);\n\n const onChangeDate = useCallback(\n (timestamp: number, isAddLeadingZeros: boolean, input?: Record<DatePickerVariant, string>) => {\n const momentNewDate = moment(timestamp).utc();\n\n const dd = momentNewDate.clone().date().toString();\n const mm = (momentNewDate.clone().month() + 1).toString();\n\n const ddWithZero = dd.padStart(2, '0');\n const mmWithZero = mm.padStart(2, '0');\n\n const yyyy = momentNewDate.clone().year().toString();\n const ddInput = input?.[DatePickerVariant.DD];\n const mmInput = input?.[DatePickerVariant.MM];\n const yyyyInput = input?.[DatePickerVariant.YYYY];\n\n const isSameInput = ddWithZero === ddInput && mmWithZero === mmInput && yyyyInput === yyyy;\n const isSameMoment = valueMoment?.isSame(momentNewDate, 'day');\n if (!isSameMoment) {\n setValueMoment(momentNewDate);\n onChange(momentNewDate.valueOf());\n }\n\n if (!isSameMoment || input ? !isSameInput : false) {\n setInput({\n [DatePickerVariant.DD]: isAddLeadingZeros ? ddWithZero : dd,\n [DatePickerVariant.MM]: isAddLeadingZeros ? mmWithZero : mm,\n [DatePickerVariant.YYYY]: yyyy,\n });\n }\n },\n [valueMoment, onChange],\n );\n\n const onKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n const key = e.key;\n\n const allowedKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Backspace', 'Delete', 'Tab', 'Enter'];\n\n const isDigit = /^\\d$/.test(key);\n const isAllowed = isDigit || allowedKeys.includes(key) || e.ctrlKey || e.metaKey;\n\n if (!isAllowed) {\n e.preventDefault();\n return;\n }\n\n if (activeSegment && dataDate.default[activeSegment]) {\n if (isDigit) {\n const digit = key;\n\n getDigitKey(digit, activeSegment, input, dataDate);\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Tab') {\n if (!dataDate.default[activeSegment].isLast) {\n e.preventDefault();\n dataDate.default[activeSegment].onNextSegment();\n } else {\n refHiddenInput?.current?.blur();\n }\n }\n if (key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'Backspace' || key === 'Delete') {\n if (activeSegment === DatePickerVariant.DD) {\n if (input.DD !== '') {\n const current = input.DD;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n } else if (activeSegment === DatePickerVariant.MM) {\n if (input.MM !== '') {\n const current = input.MM;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n } else if (activeSegment === DatePickerVariant.YYYY) {\n if (input.YYYY !== '') {\n const current = input.YYYY;\n if (current.length === 1) {\n dataDate.default[activeSegment].setValue('');\n } else {\n const newValue = current.slice(0, -1);\n dataDate.default[activeSegment].setValue(newValue);\n }\n } else {\n dataDate.default[activeSegment].onPrevSegment();\n }\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n e.preventDefault();\n dataDate.default[activeSegment].onPrevSegment();\n }\n if (key === 'ArrowRight' || key === 'ArrowUp') {\n e.preventDefault();\n dataDate.default[activeSegment].onNextSegment();\n }\n }\n },\n [activeSegment, input, dataDate.default, dataDate],\n );\n\n const onNextMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().add(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onPrevMonth = useCallback(() => {\n const newDate = (valueMoment ?? dateDefaultMoment).clone().subtract(1, 'month');\n onChangeDate(newDate.valueOf(), true);\n }, [valueMoment, onChangeDate, dateDefaultMoment]);\n\n const onFocusInput = useCallback(() => {\n if (type === 'select') return;\n setIsInputFocused(true);\n if (!activeSegment) setActiveSegment(DatePickerVariant.DD);\n }, [activeSegment, type]);\n\n const onBlurInput = useCallback(() => {\n setIsInputFocused(false);\n\n if (!isOpen) {\n props.onBlur?.();\n }\n }, [isOpen, props.onBlur]);\n\n const onChangeInput = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value;\n\n const result = getParseDateString(value);\n\n if (result) {\n setInput({\n DD: String(result.day).padStart(2, '0'),\n MM: String(result.month).padStart(2, '0'),\n YYYY: String(result.year),\n });\n if (refHiddenInput.current) refHiddenInput.current.value = '';\n return;\n }\n\n const prevValue = refPrevValue.current;\n\n const newChar = value.length > prevValue.length ? value.slice(-1) : null;\n\n refPrevValue.current = value;\n\n if (newChar && /^\\d$/.test(newChar)) {\n onKeyDown({\n key: newChar,\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n\n if (value.length < prevValue.length) {\n onKeyDown({\n key: 'Backspace',\n preventDefault: () => {},\n stopPropagation: () => {},\n } as unknown as KeyboardEvent<HTMLInputElement>);\n }\n if (refHiddenInput.current) refHiddenInput.current.value = '';\n },\n [onKeyDown],\n );\n\n useEffect(() => {\n if (isHasValue && !refIsHasValueOnce.current) refIsHasValueOnce.current = true;\n }, [isHasValue]);\n\n useEffect(() => {\n setDateDefaultMoment(moment(props.dateDefault).utc());\n }, [props.dateDefault]);\n\n useEffect(() => {\n setValueMoment(props.value || props.defaultValue ? moment(props.value ?? props.defaultValue).utc() : null);\n if (props.value) {\n // При инициализации также форматируем в строки с ведущими нулями\n const m = moment(props.value).utc();\n setInput({\n [DatePickerVariant.DD]: m.date().toString().padStart(2, '0'),\n [DatePickerVariant.MM]: (m.month() + 1).toString().padStart(2, '0'),\n [DatePickerVariant.YYYY]: m.year().toString(),\n });\n }\n }, [props.value, props.defaultValue]);\n\n useEffect(() => {\n if (!activeSegment)\n getValidateInput(\n input,\n (value) => {\n onChangeDate(value, true, input);\n setIsError(false);\n },\n () => {\n onChange(null);\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n if (refIsHasValueOnce.current) {\n onChange(null);\n refIsHasValueOnce.current = false;\n }\n setIsError(false);\n }\n },\n );\n }, [onChangeDate, onChange, input, activeSegment]);\n\n useEffect(() => {\n if (!isOpen && !isInputFocused && isHasInput && !activeSegment)\n getValidateInput(\n input,\n () => {},\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n () => {\n onChange(null);\n onClearInput();\n setIsError(false);\n },\n );\n }, [onClearInput, input, isOpen, isInputFocused, onChange, isHasInput, activeSegment]);\n\n useEffect(() => {\n if (!activeSegment) return;\n getValidateInput(\n refInputValue.current,\n (value) => {\n onChangeDate(value, true, refInputValue.current);\n setIsError(false);\n },\n () => {\n setIsError(true);\n },\n (isHasInput) => {\n if (!isHasInput) {\n setIsError(false);\n }\n },\n );\n }, [onChangeDate, activeSegment]);\n\n useEffect(() => {\n if (activeSegment) {\n close();\n refHiddenInput?.current?.focus();\n }\n }, [activeSegment, close]);\n 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 (type === 'select') {\n toggle();\n return;\n }\n if (!activeSegment && !props?.isReadOnly) setActiveSegment(DatePickerVariant.DD);\n }}\n >\n {type !== 'select' ? (\n <input\n name={props.name}\n aria-label={props.ariaLabel ?? props.name}\n autoComplete={props.autoComplete}\n id={props.id}\n ref={refHiddenInput}\n type='tel'\n inputMode='numeric'\n tabIndex={0}\n disabled={props?.isDisabled || props?.isReadOnly}\n style={{\n position: 'absolute',\n left: '-100dvw',\n top: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n border: 'none',\n background: 'transparent',\n }}\n onKeyDown={onKeyDown}\n onChange={onChangeInput}\n onFocus={onFocusInput}\n onBlur={onBlurInput}\n />\n ) : null}\n {isShowPlaceholder ? (\n <Typography\n sx={{ 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 if (type === 'select') return;\n e.preventDefault();\n e.stopPropagation();\n if (props?.isDisabled || props?.isReadOnly) return;\n date.setActive();\n }}\n >\n {date.value || date.placeholder || ''}\n </DateInput>\n {index !== dataDate.sort.length - 1 && (\n <span style={{ width: '4px', pointerEvents: 'none', textAlign: 'center' }}>.</span>\n )}\n </Fragment>\n ))\n )}\n {type !== 'manual' ? (\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 tabIndex={0}\n onFocus={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setActiveSegment(null);\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n toggle();\n }}\n />\n ) : null}\n {props.isShowClearButton && (isHasValue || isHasInput) && !props?.isDisabled && !props?.isReadOnly ? (\n <DateInputButtonClear\n genre={props.genre}\n size='small'\n isWidthAsHeight\n isFullSize\n isRadius\n isWhileTapEffect\n isOnlyIcon\n isDisabledRipple\n tabIndex={0}\n icons={[{ name: 'Close', type: 'id' }]}\n isDisabled={props?.isDisabled || props?.isReadOnly}\n onFocus={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setActiveSegment(null);\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onChange(null);\n onClearInput();\n setIsError(false);\n }}\n />\n ) : null}\n </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={() => onPrevMonth()}\n isDisabledRipple\n isHidden={isBlockPrevMonth}\n isDisabled={isBlockPrevMonth}\n />\n <Stack sx={{ default: { gap: '8px' } }}>\n <SelectMonth\n isToggleWhenClickSelectListOption\n monthsLocale={props.locale.months}\n genre={props.genre}\n size={'small'}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('month').utc().valueOf()}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n isShortLabel\n refFloating={refSelectMonth}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n }}\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n sx={{ default: { width: '60px' } }}\n />\n <SelectYear\n isToggleWhenClickSelectListOption\n genre={props.genre}\n size={'small'}\n refFloating={refSelectYear}\n value={(valueMoment ?? dateDefaultMoment).clone().startOf('year').utc().valueOf()}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, true);\n }}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n dateMin={props.dateMin}\n dateMax={props.dateMax}\n sx={{ default: { width: '60px' } }}\n />\n </Stack>\n <Button\n type='button'\n isWhileTapEffect\n onClick={() => 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\nconst ISO_DATE_REGEX = /^\\d{4}-\\d{2}-\\d{2}$/;\nconst SLASH_DATE_REGEX = /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/;\n\nfunction getDigitKey(\n key: string,\n activeSegment: DatePickerVariant,\n input: Record<DatePickerVariant, string>,\n dataDate: { default: Record<DatePickerVariant, { setValue: (value: string) => void; onNextSegment: () => void }> },\n) {\n const digit = key; // '0'..'9'\n const seg = activeSegment;\n const current = input[seg] ?? ''; // Теперь это уже строка\n\n if (seg === DatePickerVariant.DD) {\n // Дни: максимум 31\n if (current.length >= 2) {\n // уже два символа — начинаем ввод заново\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (current === '') {\n // первый символ\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // есть один символ, добавляем второй\n const potential = current + digit;\n const potentialNum = Number(potential);\n\n if (potentialNum > 31) {\n // если получается больше 31, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (potentialNum === 0) {\n // если получается 00, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // нормальная комбинация\n dataDate.default[seg].setValue(potential);\n dataDate.default[seg].onNextSegment();\n // const newInput = { ...input, [seg]: potential };\n // onNextSegment?.(newInput);\n } else if (seg === DatePickerVariant.MM) {\n // Месяцы: максимум 12\n if (current.length >= 2) {\n // уже два символа — начинаем ввод заново\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (current === '') {\n // первый символ\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // есть один символ, добавляем второй\n const potential = current + digit;\n const potentialNum = Number(potential);\n\n if (potentialNum > 12) {\n // если получается больше 12, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n if (potentialNum === 0) {\n // если получается 00, заменяем на новую цифру\n // if (digit === '0') return; // нельзя начинать с 0\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // нормальная комбинация\n dataDate.default[seg].setValue(potential);\n if (potential.length === 2 || (potential.length === 1 && Number(potential) > 1)) {\n dataDate.default[seg].onNextSegment();\n // const newInput = { ...input, [seg]: potential };\n // onNextSegment?.(newInput);\n }\n } else if (seg === DatePickerVariant.YYYY) {\n // Год: накапливаем до 4 цифр\n if (current.length >= 4) {\n // уже четыре символа — начинаем ввод заново\n dataDate.default[seg].setValue(digit);\n return;\n }\n\n // добавляем цифру\n const nextValue = current + digit;\n dataDate.default[seg].setValue(nextValue);\n }\n}\n\nfunction getParseDateString(value: string) {\n // 1. ISO формат (YYYY-MM-DD)\n if (ISO_DATE_REGEX.test(value)) {\n const [year, month, day] = value.split('-').map(Number);\n return getValidateDate(year, month, day);\n }\n\n // 2. Локализованный формат (M/D/YYYY или D/M/YYYY)\n const match = SLASH_DATE_REGEX.exec(value);\n if (match) {\n const [_, p1, p2, p3] = match;\n const num1 = Number(p1);\n const num2 = Number(p2);\n const year = Number(p3);\n\n // Определяем порядок\n // Если num1 > 12 → значит это день (D/M/YYYY)\n let month: number;\n let day: number;\n\n if (num1 > 12) {\n day = num1;\n month = num2;\n } else {\n // По умолчанию считаем M/D/YYYY\n month = num1;\n day = num2;\n }\n\n return getValidateDate(year, month, day);\n }\n\n return null;\n}\n\nfunction getValidateDate(year: number, month: number, day: number) {\n const date = new Date(year, month - 1, day);\n if (date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day) {\n return { year, month, day };\n }\n return null;\n}\n\nfunction getCountSevens(number: number) {\n const divisor = 7;\n const count = Math.floor(number / divisor);\n const remainder = number % divisor;\n\n return remainder > 0 ? count + 1 : count;\n}\n\nfunction getNextSegment(currentSegment: DatePickerVariant, mode: DatePickerMode): DatePickerVariant | null {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex < mode.length - 1 ? mode[currentIndex + 1] : mode[0];\n}\n\nfunction getPrevSegment(currentSegment: DatePickerVariant, mode: DatePickerMode): DatePickerVariant | null {\n const currentIndex = mode.indexOf(currentSegment);\n return currentIndex > 0 ? mode[currentIndex - 1] : mode[mode.length - 1];\n}\n\nfunction getValidateInput(\n input: Record<DatePickerVariant, string>,\n onSuccess?: (value: number) => void,\n onFailure?: () => void,\n onNan?: (isHasInput: boolean) => void,\n) {\n const dayStr = input.DD;\n const monthStr = input.MM;\n const yearStr = input.YYYY;\n\n const day = dayStr === '' ? NaN : Number(dayStr);\n const month = monthStr === '' ? NaN : Number(monthStr);\n const year = yearStr === '' ? NaN : Number(yearStr);\n\n const isHasInput = dayStr !== '' || monthStr !== '' || yearStr !== '';\n\n if (!Number.isNaN(day) && !Number.isNaN(month) && !Number.isNaN(year)) {\n const m = moment.utc(`${day}.${month}.${year}`, 'D.M.YYYY', true).startOf('day');\n if (m.isValid()) {\n onSuccess?.(m.valueOf());\n } else {\n onFailure?.();\n }\n } else {\n onNan?.(isHasInput);\n }\n}\n","import { InputStandardProps, StyledInputProps, StyledInputWrapperProps } from '@local/components/input';\nimport { addFontProps, addOutlineProps, addOutlinePropsDollar } from '@local/styles/add';\nimport { addErrorProps, ErrorMessageProps } from '@local/styles/error';\nimport { addSXProps } from '@local/styles/sx';\nimport { IThemeGenreDate, IThemeSize } from '@local/theme';\nimport { AddDollarSign } from '@local/types';\n\nimport { HTMLInputAutoCompleteAttribute } from 'react';\n\nimport { SelectMonthProps } from '../select';\n\nexport type DatePickerMode = DatePickerVariant[];\n\nexport enum DatePickerVariant {\n DD = 'DD',\n MM = 'MM',\n YYYY = 'YYYY',\n}\n\nexport type DatePickerType = 'manual' | 'select' | 'manualAndSelect';\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 isShowClearButton?: 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 type?: DatePickerType;\n\n name?: string;\n\n ariaLabel?: string;\n\n autoComplete?: HTMLInputAutoCompleteAttribute | string;\n \n onBlur?: () => void;\n\n onChange: (timestamp: number | null) => void;\n\n onFocus?: () => void;\n\n size: IThemeSize;\n\n dateMax?: number;\n\n dateMin?: number;\n\n dateDefault: number;\n };\n\ntype ControlledValue = {\n value: number | null | undefined;\n\n defaultValue?: never;\n};\n\ntype UncontrolledValue = {\n defaultValue: number | null | undefined;\n\n value?: never;\n};\nexport type DatePickerProps = CommonDatePickerProps & (ControlledValue | UncontrolledValue);\n\nexport type TDateGenre = keyof IThemeGenreDate;\n\nexport interface DateDayProps {\n dayOfWeek: number;\n\n isCurrentMonth: boolean;\n\n isDisabled: boolean;\n\n isToday: boolean;\n\n isWeekend: boolean;\n\n labelNumber: number;\n\n labelString: string;\n\n value: number;\n\n weekOfMonth: number;\n}\n\nexport type DateWrapperProps = AddDollarSign<\n Pick<InputStandardProps, 'genre' | 'isDisabled'> & {\n parentListHeight: number;\n radius: number;\n isMinWidth?: boolean;\n }\n> &\n StyledInputWrapperProps;\n\nexport type DateInputProps = AddDollarSign<\n Pick<DatePickerProps, 'error' | 'genre' | 'size' | 'isBold' | 'isReadOnly' | 'isDisabledOutline' | 'isOutlineBoxShadow' | 'isDisabled' | 'font'> & {\n isOpen?: boolean;\n isActive?: boolean;\n isHaveValue?: boolean;\n isShowPlaceholder?: boolean;\n }\n>;\n\nexport type DateStyledOptionProps = AddDollarSign<{\n isSelectedItem?: boolean;\n isCheckboxProps?: boolean;\n}> &\n StyledInputProps;\n\nexport type DateStyledListProps = AddDollarSign<Pick<InputStandardProps, 'genre' | 'size'>>;\n\nexport type DateDropdownListProps = AddDollarSign<\n Pick<DatePickerProps, 'isInputEffect'> & Pick<DatePickerProps, 'genre' | 'size'>\n>;\n\nexport type DateDropdownDayProps = AddDollarSign<\n Pick<DatePickerProps, 'genre' | 'size' | 'font'> &\n Pick<DateDayProps, 'isToday' | 'isWeekend'> & {\n row: number;\n column: number;\n isChoice?: boolean;\n isCurrentMonth?: boolean;\n isDisabled?: boolean;\n }\n> &\n addOutlinePropsDollar;\n\nexport type MonthItem = {\n localeLong: string;\n\n localeShort: string;\n\n value:\n | 'january'\n | 'february'\n | 'march'\n | 'april'\n | 'may'\n | 'june'\n | 'july'\n | 'august'\n | 'september'\n | 'october'\n | 'november'\n | 'december';\n};\nexport type WeekItem = {\n localeLong: string;\n\n localeShort: string;\n\n value: 'mo' | 'tu' | 'we' | 'th' | 'fr' | 'sa' | 'su';\n};\nexport type InputItem = {\n day: string;\n\n month: string;\n\n year: string;\n};\n"],"names":["moment","_a","input","isHasInput","jsxs","Fragment","jsx","theme","_b","DatePickerVariant"],"mappings":"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"}
|
package/build/consts.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./functions.cjs.js"),o={eng:{value:"eng",label:"English",placeholder:"English",search:"English, eng"},rus:{value:"rus",label:"Русский",placeholder:"Русский",search:"Русский, rus"}},l={jenesei_id:{value:"jenesei_id",label:"Jenesei ID",placeholder:"Jenesei ID",search:"Jenesei ID"}},a=e.transformObjectToArray(o),r=e.transformObjectValuesToKeys(o),t=e.transformObjectToArray(l),u=e.transformObjectValuesToKeys(l),c=["image/*",".jpeg",".jpg",".png",".webp","avif"].join(",");exports.LIBRARY_VERSION="1.3.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./functions.cjs.js"),o={eng:{value:"eng",label:"English",placeholder:"English",search:"English, eng"},rus:{value:"rus",label:"Русский",placeholder:"Русский",search:"Русский, rus"}},l={jenesei_id:{value:"jenesei_id",label:"Jenesei ID",placeholder:"Jenesei ID",search:"Jenesei ID"}},a=e.transformObjectToArray(o),r=e.transformObjectValuesToKeys(o),t=e.transformObjectToArray(l),u=e.transformObjectValuesToKeys(l),c=["image/*",".jpeg",".jpg",".png",".webp","avif"].join(",");exports.LIBRARY_VERSION="1.3.40",exports.LIST_IMAGE_SUPPORTED_FORMAT=["image/jpeg","image/jpg","image/png","image/webp","image/avif"],exports.LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT=c,exports.LIST_KEY_LANGUAGE=r,exports.LIST_KEY_SERVICE=u,exports.LIST_LANGUAGE=a,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=o,exports.OBJECT_SERVICE=l;
|
|
2
2
|
//# sourceMappingURL=consts.cjs.js.map
|
package/build/consts.es.js
CHANGED
|
@@ -132,7 +132,7 @@ const LOCALE_WEEKS = [
|
|
|
132
132
|
const LIST_IMAGE_SUPPORTED_FORMAT = ["image/jpeg", "image/jpg", "image/png", "image/webp", "image/avif"];
|
|
133
133
|
const LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT = ["image/*", ".jpeg", ".jpg", ".png", ".webp", "avif"].join(",");
|
|
134
134
|
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.";
|
|
135
|
-
const LIBRARY_VERSION = "1.3.
|
|
135
|
+
const LIBRARY_VERSION = "1.3.40";
|
|
136
136
|
export {
|
|
137
137
|
LIBRARY_VERSION,
|
|
138
138
|
LIST_IMAGE_SUPPORTED_FORMAT,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";const e=require("./jsx-runtime-C6yv_9g1.cjs"),o=require("react");
|
|
2
2
|
/*! js-cookie v3.0.5 | MIT */
|
|
3
|
-
function t(e){for(var o=1;o<arguments.length;o++){var t=arguments[o];for(var i in t)e[i]=t[i]}return e}var i=function e(o,i){function r(e,r,n){if("undefined"!=typeof document){"number"==typeof(n=t({},i,n)).expires&&(n.expires=new Date(Date.now()+864e5*n.expires)),n.expires&&(n.expires=n.expires.toUTCString()),e=encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var a="";for(var c in n)n[c]&&(a+="; "+c,!0!==n[c]&&(a+="="+n[c].split(";")[0]));return document.cookie=e+"="+o.write(r,e)+a}}return Object.create({set:r,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var t=document.cookie?document.cookie.split("; "):[],i={},r=0;r<t.length;r++){var n=t[r].split("="),a=n.slice(1).join("=");try{var c=decodeURIComponent(n[0]);if(i[c]=o.read(a,c),e===c)break}catch(l){}}return e?i[e]:i}},remove:function(e,o){r(e,"",t({},o,{expires:-1}))},withAttributes:function(o){return e(this.converter,t({},this.attributes,o))},withConverter:function(o){return e(t({},this.converter,o),this.attributes)}},{attributes:{value:Object.freeze(i)},converter:{value:Object.freeze(o)}})}({read:function(e){return'"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"});const r=o.createContext(null),n=e=>{const[t,r]=o.useState(),n=o.useCallback(e=>{const o=i.get(String(e));return r(t=>({...t,[e]:o?JSON.parse(o):void 0})),o?JSON.parse(o):void 0},[]),a=o.useCallback((e,o,t)=>{try{i.set(String(e),JSON.stringify(o),t),r(t=>({...t,[e]:o}))}catch{console.info(`Provider Cookie. ChangeCookie error - key:${e}, value:${o}.`)}},[]),c=o.useCallback((e,o)=>{try{i.remove(String(e),o),r(o=>({...o,[e]:void 0}))}catch{console.info(`Provider Cookie. RemoveCookieValue error - key:${e}.`)}},[]),l=o.useCallback(()=>{var o;e.validate
|
|
4
|
-
//# sourceMappingURL=context-
|
|
3
|
+
function t(e){for(var o=1;o<arguments.length;o++){var t=arguments[o];for(var i in t)e[i]=t[i]}return e}var i=function e(o,i){function r(e,r,n){if("undefined"!=typeof document){"number"==typeof(n=t({},i,n)).expires&&(n.expires=new Date(Date.now()+864e5*n.expires)),n.expires&&(n.expires=n.expires.toUTCString()),e=encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var a="";for(var c in n)n[c]&&(a+="; "+c,!0!==n[c]&&(a+="="+n[c].split(";")[0]));return document.cookie=e+"="+o.write(r,e)+a}}return Object.create({set:r,get:function(e){if("undefined"!=typeof document&&(!arguments.length||e)){for(var t=document.cookie?document.cookie.split("; "):[],i={},r=0;r<t.length;r++){var n=t[r].split("="),a=n.slice(1).join("=");try{var c=decodeURIComponent(n[0]);if(i[c]=o.read(a,c),e===c)break}catch(l){}}return e?i[e]:i}},remove:function(e,o){r(e,"",t({},o,{expires:-1}))},withAttributes:function(o){return e(this.converter,t({},this.attributes,o))},withConverter:function(o){return e(t({},this.converter,o),this.attributes)}},{attributes:{value:Object.freeze(i)},converter:{value:Object.freeze(o)}})}({read:function(e){return'"'===e[0]&&(e=e.slice(1,-1)),e.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(e){return encodeURIComponent(e).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"});const r=o.createContext(null),n=e=>{const[t,r]=o.useState(),n=o.useCallback(e=>{const o=i.get(String(e));return r(t=>({...t,[e]:o?JSON.parse(o):void 0})),o?JSON.parse(o):void 0},[]),a=o.useCallback((e,o,t)=>{try{i.set(String(e),JSON.stringify(o),t),r(t=>({...t,[e]:o}))}catch{console.info(`Provider Cookie. ChangeCookie error - key:${e}, value:${o}.`)}},[]),c=o.useCallback((e,o)=>{try{i.remove(String(e),o),r(o=>({...o,[e]:void 0}))}catch{console.info(`Provider Cookie. RemoveCookieValue error - key:${e}.`)}},[]),l=o.useCallback(()=>{var o,t;(null==(o=e.validate)?void 0:o.validateKeys)?null==(t=e.validate)||t.validateKeys.forEach(e=>{c(String(e))}):console.info("Provider Cookie. Validate is not defined.")},[e.validate,c]),s=o.useCallback(()=>{var o,t;(null==(o=e.validate)?void 0:o.validateKeys)&&e.validate.getValidateCookieValue?null==(t=e.validate)||t.validateKeys.forEach(o=>{var t;const n=i.get(String(o));if(n)try{const i=JSON.parse(n);(null==(t=e.validate)?void 0:t.getValidateCookieValue(String(o),i))?r(e=>({...e,[o]:i})):c(String(o))}catch{c(String(o))}else c(String(o))}):console.info("Provider Cookie. Validate is not defined.")},[e.validate,c]);return o.useEffect(()=>{s()},[s]),o.useEffect(()=>()=>{r(void 0)},[]),{getCookie:n,setCookie:a,removeCookieValue:c,removeCookieValues:l,checkCookie:s,cookieValues:t}};exports.CookieContext=r,exports.ProviderCookie=o=>{const{getCookie:t,setCookie:i,removeCookieValue:a,removeCookieValues:c,checkCookie:l,cookieValues:s}=n(o);return e.jsxRuntimeExports.jsx(r.Provider,{value:{getCookie:t,setCookie:i,removeCookieValue:a,removeCookieValues:c,checkCookie:l,cookieValues:s},children:o.children})},exports.api=i;
|
|
4
|
+
//# sourceMappingURL=context-BK9a46O1.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-DyTE2I_6.cjs","sources":["../node_modules/js-cookie/dist/js.cookie.mjs","../src/contexts/context-cookie/context.tsx"],"sourcesContent":["/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","import Cookies from 'js-cookie';\nimport { FC, createContext, useCallback, useEffect, useState } from 'react';\n\nimport { CookieAttributes, CookieContextProps, ProviderCookieProps, ValidCookieObject } from '.';\n\n/**\n * Context for managing cookies.\n */\nexport const CookieContext = createContext<CookieContextProps | null>(null);\n\n/**\n * Provider component for managing cookies.\n *\n * @remarks\n * You should understand which cookies you are changing and whether you have access to them.\n *\n * @remarks\n * The local storage is typed using the `jenesei-kit-react.d.ts` file:\n *\n * ```typescript\n * import '@jenesei-software/jenesei-kit-react'\n *\n * declare module '@jenesei-software/jenesei-kit-react' {\n * export interface ValidCookieObject {\n * access_token: string\n * refresh_token: string\n * }\n * }\n * ```\n */\nexport const ProviderCookie: FC<ProviderCookieProps> = (props) => {\n const { getCookie, setCookie, removeCookieValue, removeCookieValues, checkCookie, cookieValues } =\n useProviderCookie(props);\n\n return (\n <CookieContext.Provider\n value={{\n getCookie,\n setCookie,\n removeCookieValue,\n removeCookieValues,\n checkCookie,\n cookieValues,\n }}\n >\n {props.children}\n </CookieContext.Provider>\n );\n};\n\nconst useProviderCookie = (props: ProviderCookieProps) => {\n const [cookieValues, setCookieValues] = useState<ValidCookieObject>();\n\n const getCookie = useCallback(<K extends keyof ValidCookieObject>(name: K): ValidCookieObject[K] | undefined => {\n const cookie = Cookies.get(String(name));\n setCookieValues((prevState) => ({\n ...prevState,\n [name]: cookie ? JSON.parse(cookie) : undefined,\n }));\n return cookie ? JSON.parse(cookie) : undefined;\n }, []);\n\n const changeCookie = useCallback(\n <K extends keyof ValidCookieObject>(name: K, value: ValidCookieObject[K], options?: CookieAttributes) => {\n try {\n Cookies.set(String(name), JSON.stringify(value), options);\n setCookieValues((prevState) => ({ ...prevState, [name]: value }));\n } catch {\n console.info(`Provider Cookie. ChangeCookie error - key:${name}, value:${value}.`);\n }\n },\n [],\n );\n\n const removeCookieValue = useCallback(<K extends keyof ValidCookieObject>(name: K, options?: CookieAttributes) => {\n try {\n Cookies.remove(String(name), options);\n setCookieValues((prevState) => ({ ...prevState, [name]: undefined }));\n } catch {\n console.info(`Provider Cookie. RemoveCookieValue error - key:${name}.`);\n }\n }, []);\n\n const removeCookieValues = useCallback(() => {\n if (props.validate && props.validate.validateKeys) {\n props.validate?.validateKeys.forEach((key) => {\n removeCookieValue(String(key) as never);\n });\n } else {\n console.info('Provider Cookie. Validate is not defined.');\n }\n }, [props.validate, removeCookieValue]);\n\n const checkCookie = useCallback(() => {\n if (props.validate && props.validate.validateKeys && props.validate.getValidateCookieValue) {\n props.validate?.validateKeys.forEach((key) => {\n const cookieValue = Cookies.get(String(key));\n if (cookieValue) {\n try {\n const parsedValue = JSON.parse(cookieValue);\n if (!props.validate?.getValidateCookieValue(String(key) as never, parsedValue as never)) {\n removeCookieValue(String(key) as never);\n } else {\n setCookieValues((prevState) => ({\n ...prevState,\n [key]: parsedValue,\n }));\n }\n } catch {\n removeCookieValue(String(key) as never);\n }\n } else {\n removeCookieValue(String(key) as never);\n }\n });\n } else {\n console.info('Provider Cookie. Validate is not defined.');\n }\n }, [props.validate, removeCookieValue]);\n\n useEffect(() => {\n checkCookie();\n }, [checkCookie]);\n\n return { getCookie, setCookie: changeCookie, removeCookieValue, removeCookieValues, checkCookie, cookieValues };\n};\n"],"names":["assign","target","i","arguments","length","source","key","api","init","converter","defaultAttributes","set","name","value","attributes","document","expires","Date","now","toUTCString","encodeURIComponent","replace","decodeURIComponent","escape","stringifiedAttributes","attributeName","split","cookie","write","Object","create","get","cookies","jar","parts","slice","join","found","read","e","remove","withAttributes","this","withConverter","freeze","path","CookieContext","createContext","useProviderCookie","props","cookieValues","setCookieValues","useState","getCookie","useCallback","Cookies","String","prevState","JSON","parse","changeCookie","options","stringify","console","info","removeCookieValue","removeCookieValues","validate","validateKeys","_a","forEach","checkCookie","getValidateCookieValue","cookieValue","parsedValue","useEffect","setCookie","jsx","Provider","children"],"mappings":";;AAEA,SAASA,EAAQC,GACf,IAAA,IAASC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CACzC,IAAIG,EAASF,UAAUD,GACvB,IAAA,IAASI,KAAOD,EACdJ,EAAOK,GAAOD,EAAOC,EAEzB,CACA,OAAOL,CACT,CAwHG,IAACM,EAlGJ,SAASC,EAAMC,EAAWC,GACxB,SAASC,EAAKC,EAAMC,EAAOC,GACzB,GAAwB,oBAAbC,SAAX,CAMkC,iBAFlCD,EAAad,EAAO,GAAIU,EAAmBI,IAErBE,UACpBF,EAAWE,QAAU,IAAIC,KAAKA,KAAKC,MAA6B,MAArBJ,EAAWE,UAEpDF,EAAWE,UACbF,EAAWE,QAAUF,EAAWE,QAAQG,eAG1CP,EAAOQ,mBAAmBR,GACvBS,QAAQ,uBAAwBC,oBAChCD,QAAQ,QAASE,QAEpB,IAAIC,EAAwB,GAC5B,IAAA,IAASC,KAAiBX,EACnBA,EAAWW,KAIhBD,GAAyB,KAAOC,GAEE,IAA9BX,EAAWW,KAWfD,GAAyB,IAAMV,EAAWW,GAAeC,MAAM,KAAK,KAGtE,OAAQX,SAASY,OACff,EAAO,IAAMH,EAAUmB,MAAMf,EAAOD,GAAQY,CAtC9C,CAuCF,CA4BA,OAAOK,OAAOC,OACZ,CACEnB,MACAoB,IA7BJ,SAAcnB,GACZ,GAAwB,oBAAbG,YAA6BZ,UAAUC,QAAWQ,GAA7D,CAQA,IAFA,IAAIoB,EAAUjB,SAASY,OAASZ,SAASY,OAAOD,MAAM,MAAQ,GAC1DO,EAAM,CAAA,EACD/B,EAAI,EAAGA,EAAI8B,EAAQ5B,OAAQF,IAAK,CACvC,IAAIgC,EAAQF,EAAQ9B,GAAGwB,MAAM,KACzBb,EAAQqB,EAAMC,MAAM,GAAGC,KAAK,KAEhC,IACE,IAAIC,EAAQf,mBAAmBY,EAAM,IAGrC,GAFAD,EAAII,GAAS5B,EAAU6B,KAAKzB,EAAOwB,GAE/BzB,IAASyB,EACX,KAEJ,OAASE,GAAI,CACf,CAEA,OAAO3B,EAAOqB,EAAIrB,GAAQqB,CApB1B,CAqBF,EAMIO,OAAQ,SAAU5B,EAAME,GACtBH,EACEC,EACA,GACAZ,EAAO,CAAA,EAAIc,EAAY,CACrBE,SAAS,IAGf,EACAyB,eAAgB,SAAU3B,GACxB,OAAON,EAAKkC,KAAKjC,UAAWT,EAAO,CAAA,EAAI0C,KAAK5B,WAAYA,GAC1D,EACA6B,cAAe,SAAUlC,GACvB,OAAOD,EAAKR,EAAO,GAAI0C,KAAKjC,UAAWA,GAAYiC,KAAK5B,WAC1D,GAEF,CACEA,WAAY,CAAED,MAAOgB,OAAOe,OAAOlC,IACnCD,UAAW,CAAEI,MAAOgB,OAAOe,OAAOnC,KAGxC,CAEUD,CApHa,CACrB8B,KAAM,SAAUzB,GAId,MAHiB,MAAbA,EAAM,KACRA,EAAQA,EAAMsB,MAAM,GAAG,IAElBtB,EAAMQ,QAAQ,mBAAoBC,mBAC3C,EACAM,MAAO,SAAUf,GACf,OAAOO,mBAAmBP,GAAOQ,QAC/B,2CACAC,mBAEJ,GAwG+B,CAAEuB,KAAM,MC1HlC,MAAMC,EAAgBC,EAAAA,cAAyC,MA0ChEC,EAAqBC,IACzB,MAAOC,EAAcC,GAAmBC,aAElCC,EAAYC,cAAgD1C,IAChE,MAAMe,EAAS4B,EAAQxB,IAAIyB,OAAO5C,IAKlC,OAJAuC,EAAiBM,IAAA,IACZA,EACH7C,CAACA,GAAOe,EAAS+B,KAAKC,MAAMhC,QAAU,KAEjCA,EAAS+B,KAAKC,MAAMhC,QAAU,GACpC,IAEGiC,EAAeN,EAAAA,YACnB,CAAoC1C,EAASC,EAA6BgD,KACxE,IACEN,EAAQ5C,IAAI6C,OAAO5C,GAAO8C,KAAKI,UAAUjD,GAAQgD,GACjDV,EAAiBM,QAAoBA,EAAW7C,CAACA,GAAOC,IAC1D,CAAA,MACEkD,QAAQC,KAAK,6CAA6CpD,YAAeC,KAC3E,GAEF,IAGIoD,EAAoBX,EAAAA,YAAY,CAAoC1C,EAASiD,KACjF,IACEN,EAAQf,OAAOgB,OAAO5C,GAAOiD,GAC7BV,EAAiBM,QAAoBA,EAAW7C,CAACA,QAAO,IAC1D,CAAA,MACEmD,QAAQC,KAAK,kDAAkDpD,KACjE,GACC,IAEGsD,EAAqBZ,EAAAA,YAAY,WACjCL,EAAMkB,UAAYlB,EAAMkB,SAASC,aACnC,OAAAC,EAAApB,EAAMkB,WAANE,EAAgBD,aAAaE,QAAShE,IACpC2D,EAAkBT,OAAOlD,MAG3ByD,QAAQC,KAAK,8CAEd,CAACf,EAAMkB,SAAUF,IAEdM,EAAcjB,EAAAA,YAAY,WAC1BL,EAAMkB,UAAYlB,EAAMkB,SAASC,cAAgBnB,EAAMkB,SAASK,uBAClE,OAAAH,EAAApB,EAAMkB,WAANE,EAAgBD,aAAaE,QAAShE,UACpC,MAAMmE,EAAclB,EAAQxB,IAAIyB,OAAOlD,IACvC,GAAImE,EACF,IACE,MAAMC,EAAchB,KAAKC,MAAMc,IAC1B,OAAAJ,EAAApB,EAAMkB,eAAN,EAAAE,EAAgBG,uBAAuBhB,OAAOlD,GAAeoE,IAGhEvB,EAAiBM,IAAA,IACZA,EACHnD,CAACA,GAAMoE,KAJTT,EAAkBT,OAAOlD,GAO7B,CAAA,MACE2D,EAAkBT,OAAOlD,GAC3B,MAEA2D,EAAkBT,OAAOlD,MAI7ByD,QAAQC,KAAK,8CAEd,CAACf,EAAMkB,SAAUF,IAMpB,OAJAU,EAAAA,UAAU,KACRJ,KACC,CAACA,IAEG,CAAElB,YAAWuB,UAAWhB,EAAcK,oBAAmBC,qBAAoBK,cAAarB,gEA9F3CD,IACtD,MAAMI,UAAEA,YAAWuB,EAAAX,kBAAWA,EAAAC,mBAAmBA,cAAoBK,EAAArB,aAAaA,GAChFF,EAAkBC,GAEpB,SACE4B,kBAAAA,IAAC/B,EAAcgC,SAAd,CACCjE,MAAO,CACLwC,YACAuB,YACAX,oBACAC,qBACAK,cACArB,gBAGD6B,SAAA9B,EAAM8B","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"context-BK9a46O1.cjs","sources":["../node_modules/js-cookie/dist/js.cookie.mjs","../src/contexts/context-cookie/context.tsx"],"sourcesContent":["/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","import Cookies from 'js-cookie';\nimport { createContext, FC, useCallback, useEffect, useState } from 'react';\n\nimport { CookieAttributes, CookieContextProps, ProviderCookieProps, ValidCookieObject } from '.';\n\n/**\n * Context for managing cookies.\n */\nexport const CookieContext = createContext<CookieContextProps | null>(null);\n\n/**\n * Provider component for managing cookies.\n *\n * @remarks\n * You should understand which cookies you are changing and whether you have access to them.\n *\n * @remarks\n * The local storage is typed using the `jenesei-kit-react.d.ts` file:\n *\n * ```typescript\n * import '@jenesei-software/jenesei-kit-react'\n *\n * declare module '@jenesei-software/jenesei-kit-react' {\n * export interface ValidCookieObject {\n * access_token: string\n * refresh_token: string\n * }\n * }\n * ```\n */\nexport const ProviderCookie: FC<ProviderCookieProps> = (props) => {\n const { getCookie, setCookie, removeCookieValue, removeCookieValues, checkCookie, cookieValues } =\n useProviderCookie(props);\n\n return (\n <CookieContext.Provider\n value={{\n getCookie,\n setCookie,\n removeCookieValue,\n removeCookieValues,\n checkCookie,\n cookieValues,\n }}\n >\n {props.children}\n </CookieContext.Provider>\n );\n};\n\nconst useProviderCookie = (props: ProviderCookieProps) => {\n const [cookieValues, setCookieValues] = useState<ValidCookieObject>();\n\n const getCookie = useCallback(<K extends keyof ValidCookieObject>(name: K): ValidCookieObject[K] | undefined => {\n const cookie = Cookies.get(String(name));\n setCookieValues((prevState) => ({\n ...prevState,\n [name]: cookie ? JSON.parse(cookie) : undefined,\n }));\n return cookie ? JSON.parse(cookie) : undefined;\n }, []);\n\n const changeCookie = useCallback(\n <K extends keyof ValidCookieObject>(name: K, value: ValidCookieObject[K], options?: CookieAttributes) => {\n try {\n Cookies.set(String(name), JSON.stringify(value), options);\n setCookieValues((prevState) => ({ ...prevState, [name]: value }));\n } catch {\n console.info(`Provider Cookie. ChangeCookie error - key:${name}, value:${value}.`);\n }\n },\n [],\n );\n\n const removeCookieValue = useCallback(<K extends keyof ValidCookieObject>(name: K, options?: CookieAttributes) => {\n try {\n Cookies.remove(String(name), options);\n setCookieValues((prevState) => ({ ...prevState, [name]: undefined }));\n } catch {\n console.info(`Provider Cookie. RemoveCookieValue error - key:${name}.`);\n }\n }, []);\n\n const removeCookieValues = useCallback(() => {\n if (props.validate?.validateKeys) {\n props.validate?.validateKeys.forEach((key) => {\n removeCookieValue(String(key) as never);\n });\n } else {\n console.info('Provider Cookie. Validate is not defined.');\n }\n }, [props.validate, removeCookieValue]);\n\n const checkCookie = useCallback(() => {\n if (props.validate?.validateKeys && props.validate.getValidateCookieValue) {\n props.validate?.validateKeys.forEach((key) => {\n const cookieValue = Cookies.get(String(key));\n if (cookieValue) {\n try {\n const parsedValue = JSON.parse(cookieValue);\n if (!props.validate?.getValidateCookieValue(String(key) as never, parsedValue as never)) {\n removeCookieValue(String(key) as never);\n } else {\n setCookieValues((prevState) => ({\n ...prevState,\n [key]: parsedValue,\n }));\n }\n } catch {\n removeCookieValue(String(key) as never);\n }\n } else {\n removeCookieValue(String(key) as never);\n }\n });\n } else {\n console.info('Provider Cookie. Validate is not defined.');\n }\n }, [props.validate, removeCookieValue]);\n\n useEffect(() => {\n checkCookie();\n }, [checkCookie]);\n\n useEffect(() => {\n return () => {\n setCookieValues(undefined);\n };\n }, []);\n return { getCookie, setCookie: changeCookie, removeCookieValue, removeCookieValues, checkCookie, cookieValues };\n};\n"],"names":["assign","target","i","arguments","length","source","key","api","init","converter","defaultAttributes","set","name","value","attributes","document","expires","Date","now","toUTCString","encodeURIComponent","replace","decodeURIComponent","escape","stringifiedAttributes","attributeName","split","cookie","write","Object","create","get","cookies","jar","parts","slice","join","found","read","e","remove","withAttributes","this","withConverter","freeze","path","CookieContext","createContext","useProviderCookie","props","cookieValues","setCookieValues","useState","getCookie","useCallback","Cookies","String","prevState","JSON","parse","changeCookie","options","stringify","console","info","removeCookieValue","removeCookieValues","_a","validate","validateKeys","_b","forEach","checkCookie","getValidateCookieValue","cookieValue","parsedValue","useEffect","setCookie","jsx","Provider","children"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const e=require("./jsx-runtime-C6yv_9g1.cjs"),a=require("react"),o=a.createContext(null),t=e=>{const[o,t]=a.useState(),l=a.useCallback(e=>{const a=localStorage.getItem(e);return t(o=>({...o,[e]:a?JSON.parse(a):void 0})),a?JSON.parse(a):void 0},[]),r=a.useCallback((e,a)=>{try{localStorage.setItem(String(e),JSON.stringify(a)),t(o=>({...o,[e]:a}))}catch{console.info(`Provider LocalStorage. ChangeLocalStorage error - key:${e}, value:${a}.`)}},[]),c=a.useCallback(e=>{try{localStorage.removeItem(String(e)),t(a=>({...a,[e]:void 0}))}catch{console.info(`Provider LocalStorage. RemoveLocalStorageValue error - key:${e}.`)}},[]),i=a.useCallback(()=>{var a,o;(null==(a=e.validate)?void 0:a.validateKeys)?null==(o=e.validate)||o.validateKeys.forEach(e=>{c(String(e))}):console.info("Provider LocalStorage. RemoveLocalStorageValues - validate is not defined.")},[e.validate,c]),g=a.useCallback(()=>{var a,o;(null==(a=e.validate)?void 0:a.validateKeys)&&e.validate.getValidateLocalStorageValue?null==(o=e.validate)||o.validateKeys.forEach(a=>{var o;const l=localStorage.getItem(a);if(l)try{const r=JSON.parse(l);(null==(o=e.validate)?void 0:o.getValidateLocalStorageValue(String(a),r))?t(e=>({...e,[a]:r})):c(String(a))}catch{c(String(a))}else c(String(a))}):console.info("Provider LocalStorage. CheckLocalStorage - validate is not defined.")},[e.validate,c]);return a.useEffect(()=>{g()},[g]),a.useEffect(()=>()=>{t(void 0)},[]),{getLocalStorage:l,setLocalStorage:r,removeLocalStorageValue:c,removeLocalStorageValues:i,checkLocalStorage:g,localStorageValues:o}};exports.LocalStorageContext=o,exports.ProviderLocalStorage=a=>{const{getLocalStorage:l,setLocalStorage:r,removeLocalStorageValue:c,removeLocalStorageValues:i,checkLocalStorage:g,localStorageValues:s}=t(a);return e.jsxRuntimeExports.jsx(o.Provider,{value:{getLocalStorage:l,setLocalStorage:r,removeLocalStorageValue:c,removeLocalStorageValues:i,checkLocalStorage:g,localStorageValues:s},children:a.children})};
|
|
2
|
+
//# sourceMappingURL=context-CPZf131N.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-CPZf131N.cjs","sources":["../src/contexts/context-local-storage/context.tsx"],"sourcesContent":["import { createContext, FC, useCallback, useEffect, useState } from 'react';\n\nimport { LocalStorageContextProps, ProviderLocalStorageProps, ValidLocalStorageObject } from '.';\n\nexport const LocalStorageContext = createContext<LocalStorageContextProps | null>(null);\n\n/**\n * Provider component for managing local storage.\n *\n * @remarks\n * The local storage is typed using the `jenesei-kit-react.d.ts` file:\n *\n * ```typescript\n * import '@jenesei-software/jenesei-kit-react'\n *\n * declare module '@jenesei-software/jenesei-kit-react' {\n * export interface ValidLocalStorageObject {\n * access_token: string\n * refresh_token: string\n * }\n * }\n * ```\n */\nexport const ProviderLocalStorage: FC<ProviderLocalStorageProps> = (props) => {\n const {\n getLocalStorage,\n setLocalStorage,\n removeLocalStorageValue,\n removeLocalStorageValues,\n checkLocalStorage,\n localStorageValues,\n } = useProviderLocalStorage(props);\n\n return (\n <LocalStorageContext.Provider\n value={{\n getLocalStorage,\n setLocalStorage,\n removeLocalStorageValue,\n removeLocalStorageValues,\n checkLocalStorage,\n localStorageValues,\n }}\n >\n {props.children}\n </LocalStorageContext.Provider>\n );\n};\n\nconst useProviderLocalStorage = (props: ProviderLocalStorageProps) => {\n const [localStorageValues, setLocalStorageValues] = useState<ValidLocalStorageObject>();\n\n const getLocalStorage = useCallback(\n <K extends keyof ValidLocalStorageObject>(name: K): ValidLocalStorageObject[K] | undefined => {\n const localStorageValue = localStorage.getItem(name);\n setLocalStorageValues((prevState) => ({\n ...prevState,\n [name]: localStorageValue ? JSON.parse(localStorageValue) : undefined,\n }));\n return localStorageValue ? JSON.parse(localStorageValue) : undefined;\n },\n [],\n );\n\n const changeLocalStorage = useCallback(\n <K extends keyof ValidLocalStorageObject>(name: K, value: ValidLocalStorageObject[K]) => {\n try {\n localStorage.setItem(String(name), JSON.stringify(value));\n setLocalStorageValues((prevState) => ({ ...prevState, [name]: value }));\n } catch {\n console.info(`Provider LocalStorage. ChangeLocalStorage error - key:${name}, value:${value}.`);\n }\n },\n [],\n );\n\n const removeLocalStorageValue = useCallback(<K extends keyof ValidLocalStorageObject>(name: K) => {\n try {\n localStorage.removeItem(String(name));\n setLocalStorageValues((prevState) => ({\n ...prevState,\n [name]: undefined,\n }));\n } catch {\n console.info(`Provider LocalStorage. RemoveLocalStorageValue error - key:${name}.`);\n }\n }, []);\n\n const removeLocalStorageValues = useCallback(() => {\n if (props.validate?.validateKeys) {\n props.validate?.validateKeys.forEach((key) => {\n removeLocalStorageValue(String(key) as never);\n });\n } else {\n console.info('Provider LocalStorage. RemoveLocalStorageValues - validate is not defined.');\n }\n }, [props.validate, removeLocalStorageValue]);\n\n const checkLocalStorage = useCallback(() => {\n if (props.validate?.validateKeys && props.validate.getValidateLocalStorageValue) {\n props.validate?.validateKeys.forEach((key) => {\n const localStorageValue = localStorage.getItem(key);\n if (localStorageValue) {\n try {\n const parsedValue = JSON.parse(localStorageValue);\n if (!props.validate?.getValidateLocalStorageValue(String(key) as never, parsedValue as never)) {\n removeLocalStorageValue(String(key) as never);\n } else {\n setLocalStorageValues((prevState) => ({\n ...prevState,\n [key]: parsedValue,\n }));\n }\n } catch {\n removeLocalStorageValue(String(key) as never);\n }\n } else {\n removeLocalStorageValue(String(key) as never);\n }\n });\n } else {\n console.info('Provider LocalStorage. CheckLocalStorage - validate is not defined.');\n }\n }, [props.validate, removeLocalStorageValue]);\n\n useEffect(() => {\n checkLocalStorage();\n }, [checkLocalStorage]);\n\n useEffect(() => {\n return () => {\n setLocalStorageValues(undefined);\n };\n }, []);\n \n return {\n getLocalStorage,\n setLocalStorage: changeLocalStorage,\n removeLocalStorageValue,\n removeLocalStorageValues,\n checkLocalStorage,\n localStorageValues,\n };\n};\n"],"names":["LocalStorageContext","createContext","useProviderLocalStorage","props","localStorageValues","setLocalStorageValues","useState","getLocalStorage","useCallback","name","localStorageValue","localStorage","getItem","prevState","JSON","parse","changeLocalStorage","value","setItem","String","stringify","console","info","removeLocalStorageValue","removeItem","removeLocalStorageValues","_a","validate","validateKeys","_b","forEach","key","checkLocalStorage","getValidateLocalStorageValue","parsedValue","useEffect","setLocalStorage","jsx","Provider","children"],"mappings":"8EAIaA,EAAsBC,EAAAA,cAA+C,MA6C5EC,EAA2BC,IAC/B,MAAOC,EAAoBC,GAAyBC,aAE9CC,EAAkBC,EAAAA,YACoBC,IACxC,MAAMC,EAAoBC,aAAaC,QAAQH,GAK/C,OAJAJ,EAAuBQ,IAAA,IAClBA,EACHJ,CAACA,GAAOC,EAAoBI,KAAKC,MAAML,QAAqB,KAEvDA,EAAoBI,KAAKC,MAAML,QAAqB,GAE7D,IAGIM,EAAqBR,EAAAA,YACzB,CAA0CC,EAASQ,KACjD,IACEN,aAAaO,QAAQC,OAAOV,GAAOK,KAAKM,UAAUH,IAClDZ,EAAuBQ,QAAoBA,EAAWJ,CAACA,GAAOQ,IAChE,CAAA,MACEI,QAAQC,KAAK,yDAAyDb,YAAeQ,KACvF,GAEF,IAGIM,EAA0Bf,cAAsDC,IACpF,IACEE,aAAaa,WAAWL,OAAOV,IAC/BJ,EAAuBQ,IAAA,IAClBA,EACHJ,CAACA,QAAO,IAEZ,CAAA,MACEY,QAAQC,KAAK,8DAA8Db,KAC7E,GACC,IAEGgB,EAA2BjB,EAAAA,YAAY,cACvC,OAAAkB,EAAAvB,EAAMwB,eAAN,EAAAD,EAAgBE,cAClB,OAAAC,EAAA1B,EAAMwB,WAANE,EAAgBD,aAAaE,QAASC,IACpCR,EAAwBJ,OAAOY,MAGjCV,QAAQC,KAAK,+EAEd,CAACnB,EAAMwB,SAAUJ,IAEdS,EAAoBxB,EAAAA,YAAY,cAChC,OAAAkB,IAAMC,eAAN,EAAAD,EAAgBE,eAAgBzB,EAAMwB,SAASM,6BACjD,OAAAJ,EAAA1B,EAAMwB,WAANE,EAAgBD,aAAaE,QAASC,UACpC,MAAMrB,EAAoBC,aAAaC,QAAQmB,GAC/C,GAAIrB,EACF,IACE,MAAMwB,EAAcpB,KAAKC,MAAML,IAC1B,OAAAgB,EAAAvB,EAAMwB,eAAN,EAAAD,EAAgBO,6BAA6Bd,OAAOY,GAAeG,IAGtE7B,EAAuBQ,IAAA,IAClBA,EACHkB,CAACA,GAAMG,KAJTX,EAAwBJ,OAAOY,GAOnC,CAAA,MACER,EAAwBJ,OAAOY,GACjC,MAEAR,EAAwBJ,OAAOY,MAInCV,QAAQC,KAAK,wEAEd,CAACnB,EAAMwB,SAAUJ,IAYpB,OAVAY,EAAAA,UAAU,KACRH,KACC,CAACA,IAEJG,EAAAA,UAAU,IACD,KACL9B,OAAsB,IAEvB,IAEI,CACLE,kBACA6B,gBAAiBpB,EACjBO,0BACAE,2BACAO,oBACA5B,kFAtHgED,IAClE,MAAMI,gBACJA,EAAA6B,gBACAA,EAAAb,wBACAA,EAAAE,yBACAA,EAAAO,kBACAA,EAAA5B,mBACAA,GACEF,EAAwBC,GAE5B,SACEkC,kBAAAA,IAACrC,EAAoBsC,SAApB,CACCrB,MAAO,CACLV,kBACA6B,kBACAb,0BACAE,2BACAO,oBACA5B,sBAGDmC,SAAApC,EAAMoC"}
|
|
@@ -61,9 +61,9 @@ const useProviderLocalStorage = (props) => {
|
|
|
61
61
|
}
|
|
62
62
|
}, []);
|
|
63
63
|
const removeLocalStorageValues = useCallback(() => {
|
|
64
|
-
var _a;
|
|
65
|
-
if (props.validate
|
|
66
|
-
(
|
|
64
|
+
var _a, _b;
|
|
65
|
+
if ((_a = props.validate) == null ? void 0 : _a.validateKeys) {
|
|
66
|
+
(_b = props.validate) == null ? void 0 : _b.validateKeys.forEach((key) => {
|
|
67
67
|
removeLocalStorageValue(String(key));
|
|
68
68
|
});
|
|
69
69
|
} else {
|
|
@@ -71,9 +71,9 @@ const useProviderLocalStorage = (props) => {
|
|
|
71
71
|
}
|
|
72
72
|
}, [props.validate, removeLocalStorageValue]);
|
|
73
73
|
const checkLocalStorage = useCallback(() => {
|
|
74
|
-
var _a;
|
|
75
|
-
if (props.validate
|
|
76
|
-
(
|
|
74
|
+
var _a, _b;
|
|
75
|
+
if (((_a = props.validate) == null ? void 0 : _a.validateKeys) && props.validate.getValidateLocalStorageValue) {
|
|
76
|
+
(_b = props.validate) == null ? void 0 : _b.validateKeys.forEach((key) => {
|
|
77
77
|
var _a2;
|
|
78
78
|
const localStorageValue = localStorage.getItem(key);
|
|
79
79
|
if (localStorageValue) {
|
|
@@ -101,6 +101,11 @@ const useProviderLocalStorage = (props) => {
|
|
|
101
101
|
useEffect(() => {
|
|
102
102
|
checkLocalStorage();
|
|
103
103
|
}, [checkLocalStorage]);
|
|
104
|
+
useEffect(() => {
|
|
105
|
+
return () => {
|
|
106
|
+
setLocalStorageValues(void 0);
|
|
107
|
+
};
|
|
108
|
+
}, []);
|
|
104
109
|
return {
|
|
105
110
|
getLocalStorage,
|
|
106
111
|
setLocalStorage: changeLocalStorage,
|
|
@@ -114,4 +119,4 @@ export {
|
|
|
114
119
|
LocalStorageContext as L,
|
|
115
120
|
ProviderLocalStorage as P
|
|
116
121
|
};
|
|
117
|
-
//# sourceMappingURL=context-
|
|
122
|
+
//# sourceMappingURL=context-Cr80KOpF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-Cr80KOpF.js","sources":["../src/contexts/context-local-storage/context.tsx"],"sourcesContent":["import { createContext, FC, useCallback, useEffect, useState } from 'react';\n\nimport { LocalStorageContextProps, ProviderLocalStorageProps, ValidLocalStorageObject } from '.';\n\nexport const LocalStorageContext = createContext<LocalStorageContextProps | null>(null);\n\n/**\n * Provider component for managing local storage.\n *\n * @remarks\n * The local storage is typed using the `jenesei-kit-react.d.ts` file:\n *\n * ```typescript\n * import '@jenesei-software/jenesei-kit-react'\n *\n * declare module '@jenesei-software/jenesei-kit-react' {\n * export interface ValidLocalStorageObject {\n * access_token: string\n * refresh_token: string\n * }\n * }\n * ```\n */\nexport const ProviderLocalStorage: FC<ProviderLocalStorageProps> = (props) => {\n const {\n getLocalStorage,\n setLocalStorage,\n removeLocalStorageValue,\n removeLocalStorageValues,\n checkLocalStorage,\n localStorageValues,\n } = useProviderLocalStorage(props);\n\n return (\n <LocalStorageContext.Provider\n value={{\n getLocalStorage,\n setLocalStorage,\n removeLocalStorageValue,\n removeLocalStorageValues,\n checkLocalStorage,\n localStorageValues,\n }}\n >\n {props.children}\n </LocalStorageContext.Provider>\n );\n};\n\nconst useProviderLocalStorage = (props: ProviderLocalStorageProps) => {\n const [localStorageValues, setLocalStorageValues] = useState<ValidLocalStorageObject>();\n\n const getLocalStorage = useCallback(\n <K extends keyof ValidLocalStorageObject>(name: K): ValidLocalStorageObject[K] | undefined => {\n const localStorageValue = localStorage.getItem(name);\n setLocalStorageValues((prevState) => ({\n ...prevState,\n [name]: localStorageValue ? JSON.parse(localStorageValue) : undefined,\n }));\n return localStorageValue ? JSON.parse(localStorageValue) : undefined;\n },\n [],\n );\n\n const changeLocalStorage = useCallback(\n <K extends keyof ValidLocalStorageObject>(name: K, value: ValidLocalStorageObject[K]) => {\n try {\n localStorage.setItem(String(name), JSON.stringify(value));\n setLocalStorageValues((prevState) => ({ ...prevState, [name]: value }));\n } catch {\n console.info(`Provider LocalStorage. ChangeLocalStorage error - key:${name}, value:${value}.`);\n }\n },\n [],\n );\n\n const removeLocalStorageValue = useCallback(<K extends keyof ValidLocalStorageObject>(name: K) => {\n try {\n localStorage.removeItem(String(name));\n setLocalStorageValues((prevState) => ({\n ...prevState,\n [name]: undefined,\n }));\n } catch {\n console.info(`Provider LocalStorage. RemoveLocalStorageValue error - key:${name}.`);\n }\n }, []);\n\n const removeLocalStorageValues = useCallback(() => {\n if (props.validate?.validateKeys) {\n props.validate?.validateKeys.forEach((key) => {\n removeLocalStorageValue(String(key) as never);\n });\n } else {\n console.info('Provider LocalStorage. RemoveLocalStorageValues - validate is not defined.');\n }\n }, [props.validate, removeLocalStorageValue]);\n\n const checkLocalStorage = useCallback(() => {\n if (props.validate?.validateKeys && props.validate.getValidateLocalStorageValue) {\n props.validate?.validateKeys.forEach((key) => {\n const localStorageValue = localStorage.getItem(key);\n if (localStorageValue) {\n try {\n const parsedValue = JSON.parse(localStorageValue);\n if (!props.validate?.getValidateLocalStorageValue(String(key) as never, parsedValue as never)) {\n removeLocalStorageValue(String(key) as never);\n } else {\n setLocalStorageValues((prevState) => ({\n ...prevState,\n [key]: parsedValue,\n }));\n }\n } catch {\n removeLocalStorageValue(String(key) as never);\n }\n } else {\n removeLocalStorageValue(String(key) as never);\n }\n });\n } else {\n console.info('Provider LocalStorage. CheckLocalStorage - validate is not defined.');\n }\n }, [props.validate, removeLocalStorageValue]);\n\n useEffect(() => {\n checkLocalStorage();\n }, [checkLocalStorage]);\n\n useEffect(() => {\n return () => {\n setLocalStorageValues(undefined);\n };\n }, []);\n \n return {\n getLocalStorage,\n setLocalStorage: changeLocalStorage,\n removeLocalStorageValue,\n removeLocalStorageValues,\n checkLocalStorage,\n localStorageValues,\n };\n};\n"],"names":["jsx","_a"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("./jsx-runtime-C6yv_9g1.cjs"),o=require("
|
|
2
|
-
//# sourceMappingURL=context-
|
|
1
|
+
"use strict";const e=require("./jsx-runtime-C6yv_9g1.cjs"),o=require("./context.hooks-DpwnIiRj.cjs"),t=require("react"),r=t.createContext(null);exports.GeolocationContext=r,exports.ProviderGeolocation=n=>{const{geolocationPermission:s,requestGeolocationPermission:i}=o.usePermission(),[c,a]=t.useState(null),[u,l]=t.useState(null);return t.useEffect(()=>{const e=e=>{a(e)},o=e=>{l(e)};"granted"===s&&navigator.geolocation.getCurrentPosition(e,o)},[s,n.isAskEntrance,i]),t.useEffect(()=>{n.isAskEntrance&&"granted"!==s&&i()},[s,n.isAskEntrance,i]),e.jsxRuntimeExports.jsx(r.Provider,{value:{requestGeolocationPermission:i,geolocationPermission:s,location:c,error:u},children:n.children})};
|
|
2
|
+
//# sourceMappingURL=context-DssNKJ_n.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-
|
|
1
|
+
{"version":3,"file":"context-DssNKJ_n.cjs","sources":["../src/contexts/context-geolocation/context.tsx"],"sourcesContent":["import { usePermission } from '@local/contexts/context-permission';\n\nimport { createContext, FC, useEffect, useState } from 'react';\n\nimport { GeolocationContextProps, ProviderGeolocationProps } from '.';\n\nexport const GeolocationContext = createContext<GeolocationContextProps | null>(null);\n\nexport const ProviderGeolocation: FC<ProviderGeolocationProps> = (props) => {\n const { geolocationPermission, requestGeolocationPermission } = usePermission();\n\n const [location, setLocation] = useState<GeolocationPosition | null>(null);\n const [error, setError] = useState<GeolocationPositionError | null>(null);\n\n useEffect(() => {\n const handleSuccess = (position: GeolocationPosition) => {\n setLocation(position);\n };\n\n const handleError = (error: GeolocationPositionError) => {\n setError(error);\n };\n\n if (geolocationPermission === 'granted') {\n navigator.geolocation.getCurrentPosition(handleSuccess, handleError);\n }\n }, [geolocationPermission, props.isAskEntrance, requestGeolocationPermission]);\n\n useEffect(() => {\n if (props.isAskEntrance) {\n if (geolocationPermission !== 'granted') {\n requestGeolocationPermission();\n }\n }\n }, [geolocationPermission, props.isAskEntrance, requestGeolocationPermission]);\n return (\n <GeolocationContext.Provider\n value={{\n requestGeolocationPermission,\n geolocationPermission,\n location,\n error,\n }}\n >\n {props.children}\n </GeolocationContext.Provider>\n );\n};\n"],"names":["GeolocationContext","createContext","props","geolocationPermission","requestGeolocationPermission","usePermission","location","setLocation","useState","error","setError","useEffect","handleSuccess","position","handleError","navigator","geolocation","getCurrentPosition","isAskEntrance","jsx","Provider","value","children"],"mappings":"wHAMaA,EAAqBC,EAAAA,cAA8C,+DAEdC,IAChE,MAAMC,sBAAEA,EAAAC,6BAAuBA,GAAiCC,mBAEzDC,EAAUC,GAAeC,EAAAA,SAAqC,OAC9DC,EAAOC,GAAYF,EAAAA,SAA0C,MAuBpE,OArBAG,EAAAA,UAAU,KACR,MAAMC,EAAiBC,IACrBN,EAAYM,IAGRC,EAAeL,IACnBC,EAASD,IAGmB,YAA1BN,GACFY,UAAUC,YAAYC,mBAAmBL,EAAeE,IAEzD,CAACX,EAAuBD,EAAMgB,cAAed,IAEhDO,EAAAA,UAAU,KACJT,EAAMgB,eACsB,YAA1Bf,GACFC,KAGH,CAACD,EAAuBD,EAAMgB,cAAed,MAE9Ce,kBAAAA,IAACnB,EAAmBoB,SAAnB,CACCC,MAAO,CACLjB,+BACAD,wBACAG,WACAG,SAGDa,SAAApB,EAAMoB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports } from "./jsx-runtime-DZS36FSE.js";
|
|
2
|
-
import { createContext, useState, useEffect } from "react";
|
|
3
2
|
import { u as usePermission } from "./context.hooks-B9dsW2kz.js";
|
|
3
|
+
import { createContext, useState, useEffect } from "react";
|
|
4
4
|
const GeolocationContext = createContext(null);
|
|
5
5
|
const ProviderGeolocation = (props) => {
|
|
6
6
|
const { geolocationPermission, requestGeolocationPermission } = usePermission();
|
|
@@ -41,4 +41,4 @@ export {
|
|
|
41
41
|
GeolocationContext as G,
|
|
42
42
|
ProviderGeolocation as P
|
|
43
43
|
};
|
|
44
|
-
//# sourceMappingURL=context-
|
|
44
|
+
//# sourceMappingURL=context-PFdUnKga.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-
|
|
1
|
+
{"version":3,"file":"context-PFdUnKga.js","sources":["../src/contexts/context-geolocation/context.tsx"],"sourcesContent":["import { usePermission } from '@local/contexts/context-permission';\n\nimport { createContext, FC, useEffect, useState } from 'react';\n\nimport { GeolocationContextProps, ProviderGeolocationProps } from '.';\n\nexport const GeolocationContext = createContext<GeolocationContextProps | null>(null);\n\nexport const ProviderGeolocation: FC<ProviderGeolocationProps> = (props) => {\n const { geolocationPermission, requestGeolocationPermission } = usePermission();\n\n const [location, setLocation] = useState<GeolocationPosition | null>(null);\n const [error, setError] = useState<GeolocationPositionError | null>(null);\n\n useEffect(() => {\n const handleSuccess = (position: GeolocationPosition) => {\n setLocation(position);\n };\n\n const handleError = (error: GeolocationPositionError) => {\n setError(error);\n };\n\n if (geolocationPermission === 'granted') {\n navigator.geolocation.getCurrentPosition(handleSuccess, handleError);\n }\n }, [geolocationPermission, props.isAskEntrance, requestGeolocationPermission]);\n\n useEffect(() => {\n if (props.isAskEntrance) {\n if (geolocationPermission !== 'granted') {\n requestGeolocationPermission();\n }\n }\n }, [geolocationPermission, props.isAskEntrance, requestGeolocationPermission]);\n return (\n <GeolocationContext.Provider\n value={{\n requestGeolocationPermission,\n geolocationPermission,\n location,\n error,\n }}\n >\n {props.children}\n </GeolocationContext.Provider>\n );\n};\n"],"names":["error","jsx"],"mappings":";;;AAMO,MAAM,qBAAqB,cAA8C,IAAI;AAE7E,MAAM,sBAAoD,CAAC,UAAU;AAC1E,QAAM,EAAE,uBAAuB,6BAAA,IAAiC,cAAA;AAEhE,QAAM,CAAC,UAAU,WAAW,IAAI,SAAqC,IAAI;AACzE,QAAM,CAAC,OAAO,QAAQ,IAAI,SAA0C,IAAI;AAExE,YAAU,MAAM;AACd,UAAM,gBAAgB,CAAC,aAAkC;AACvD,kBAAY,QAAQ;AAAA,IACtB;AAEA,UAAM,cAAc,CAACA,WAAoC;AACvD,eAASA,MAAK;AAAA,IAChB;AAEA,QAAI,0BAA0B,WAAW;AACvC,gBAAU,YAAY,mBAAmB,eAAe,WAAW;AAAA,IACrE;AAAA,EACF,GAAG,CAAC,uBAAuB,MAAM,eAAe,4BAA4B,CAAC;AAE7E,YAAU,MAAM;AACd,QAAI,MAAM,eAAe;AACvB,UAAI,0BAA0B,WAAW;AACvC,qCAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG,CAAC,uBAAuB,MAAM,eAAe,4BAA4B,CAAC;AAC7E,SACEC,kCAAAA;AAAAA,IAAC,mBAAmB;AAAA,IAAnB;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAGD,UAAA,MAAM;AAAA,IAAA;AAAA,EAAA;AAGb;"}
|
package/build/context-app.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./context.constants-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./context.constants-baqYH-_k.cjs"),r=require("./context.hooks-Bi7spFak.cjs");exports.AppContext=e.AppContext,exports.ProviderApp=e.ProviderApp,exports.ProviderAppOutlet=e.ProviderAppOutlet,exports.ProviderAppOutletChildren=e.ProviderAppOutletChildren,exports.ProviderAppOutletFooter=e.ProviderAppOutletFooter,exports.ProviderAppOutletHeader=e.ProviderAppOutletHeader,exports.ProviderAppOutletLeftAside=e.ProviderAppOutletLeftAside,exports.ProviderAppOutletNav=e.ProviderAppOutletNav,exports.ProviderAppOutletNotification=e.ProviderAppOutletNotification,exports.ProviderAppOutletRightAside=e.ProviderAppOutletRightAside,exports.ProviderAppWrapper=e.ProviderAppWrapper,exports.useBgColor=e.useBgColor,exports.useBgImage=e.useBgImage,exports.useDescription=e.useDescription,exports.useStatusBarColor=e.useStatusBarColor,exports.useApp=r.useApp;
|
|
2
2
|
//# sourceMappingURL=context-app.cjs.js.map
|
package/build/context-app.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { aP, aQ, aW, aX, a_, aZ, b0, a$, aY, b1, aV, aR, aT, aU, aS } from "./context.constants-
|
|
2
|
-
import { u } from "./context.hooks-
|
|
1
|
+
import { aP, aQ, aW, aX, a_, aZ, b0, a$, aY, b1, aV, aR, aT, aU, aS } from "./context.constants-BWLe7YHv.js";
|
|
2
|
+
import { u } from "./context.hooks-NDk5ehgk.js";
|
|
3
3
|
export {
|
|
4
4
|
aP as AppContext,
|
|
5
5
|
aQ as ProviderApp,
|