@consta/uikit 5.0.3 → 5.2.0
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/__internal__/src/components/BookmarkTabs/BookmarkTabs.js +1 -1
- package/__internal__/src/components/BookmarkTabs/BookmarkTabs.js.map +1 -1
- package/__internal__/src/components/Chips/Chips.js +1 -1
- package/__internal__/src/components/Chips/Chips.js.map +1 -1
- package/__internal__/src/components/Chips/ChipsChoice/ChipsChoice.js +1 -1
- package/__internal__/src/components/Chips/ChipsChoice/ChipsChoice.js.map +1 -1
- package/__internal__/src/components/Chips/ChipsChoice/types.d.ts +1 -0
- package/__internal__/src/components/Chips/ChipsChoice/types.js.map +1 -1
- package/__internal__/src/components/Chips/ChipsItem/ChipsItem.css +2 -2
- package/__internal__/src/components/Chips/ChipsItem/ChipsItem.js +1 -1
- package/__internal__/src/components/Chips/ChipsItem/ChipsItem.js.map +1 -1
- package/__internal__/src/components/Chips/helpers.d.ts +6 -2
- package/__internal__/src/components/Chips/helpers.js +1 -1
- package/__internal__/src/components/Chips/helpers.js.map +1 -1
- package/__internal__/src/components/Chips/types.d.ts +4 -0
- package/__internal__/src/components/Chips/types.js.map +1 -1
- package/__internal__/src/components/ChoiceGroup/ChoiceGroup.js +1 -1
- package/__internal__/src/components/ChoiceGroup/ChoiceGroup.js.map +1 -1
- package/__internal__/src/components/ChoiceGroup/Item/ChoiceGroup-Item.js +1 -1
- package/__internal__/src/components/ChoiceGroup/Item/ChoiceGroup-Item.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePicker.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerAdditionalControls/DatePickerAdditionalControls.d.ts +1 -1
- package/__internal__/src/components/DatePicker/DatePickerAdditionalControls/DatePickerAdditionalControls.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerDropdown/DatePickerDropdown.d.ts +3 -3
- package/__internal__/src/components/DatePicker/DatePickerDropdown/DatePickerDropdown.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerDropdown/DatePickerDropdown.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/DatePickerFieldTypeDate.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/DatePickerFieldTypeDate.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/helpers.d.ts +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/helpers.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDate/helpers.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/DatePickerFieldTypeDateTime.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.d.ts +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTime/helpers.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeDateTimeRange/DatePickerFieldTypeDateTimeRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/DatePickerFieldTypeMonth.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/DatePickerFieldTypeMonth.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/helpers.d.ts +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/helpers.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonth/helpers.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonthRange/DatePickerFieldTypeMonthRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeMonthRange/DatePickerFieldTypeMonthRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/DatePickerFieldTypeTime.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/DatePickerFieldTypeTime.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/helpers.d.ts +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/helpers.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/helpers.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/DatePickerFieldTypeYear.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/DatePickerFieldTypeYear.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/helpers.d.ts +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/helpers.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/helpers.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDate/DatePickerTypeDate.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDate/DatePickerTypeDate.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateRange/DatePickerTypeDateRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateRange/DatePickerTypeDateRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateTime/DatePickerTypeDateTime.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateTime/DatePickerTypeDateTime.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeDateTimeRange/DatePickerTypeDateTimeRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeMonth/DatePickerTypeMonth.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeMonth/DatePickerTypeMonth.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeMonthRange/DatePickerTypeMonthRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeMonthRange/DatePickerTypeMonthRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeTime/DatePickerTypeTime.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeTime/DatePickerTypeTime.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeYear/DatePickerTypeYear.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeYear/DatePickerTypeYear.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeYearRange/DatePickerTypeYearRange.js +1 -1
- package/__internal__/src/components/DatePicker/DatePickerTypeYearRange/DatePickerTypeYearRange.js.map +1 -1
- package/__internal__/src/components/DatePicker/helpers.d.ts +7 -0
- package/__internal__/src/components/DatePicker/helpers.js +1 -1
- package/__internal__/src/components/DatePicker/helpers.js.map +1 -1
- package/__internal__/src/components/DatePicker/useCalendarVisible.d.ts +3 -2
- package/__internal__/src/components/DatePicker/useCalendarVisible.js +1 -1
- package/__internal__/src/components/DatePicker/useCalendarVisible.js.map +1 -1
- package/__internal__/src/components/DateTime/DateTimeItem/DateTimeItem.css +1 -1
- package/__internal__/src/components/DateTime/DateTimeItem/DateTimeItem.js +1 -1
- package/__internal__/src/components/DateTime/DateTimeItem/DateTimeItem.js.map +1 -1
- package/__internal__/src/components/FieldLabel/FieldLabel.js +1 -1
- package/__internal__/src/components/FieldLabel/FieldLabel.js.map +1 -1
- package/__internal__/src/components/Pagination/Pagination.css +1 -1
- package/__internal__/src/components/Pagination/Pagination.js +1 -1
- package/__internal__/src/components/Pagination/Pagination.js.map +1 -1
- package/__internal__/src/components/Pagination/PaginationItem/PaginationItem.css +1 -1
- package/__internal__/src/components/Pagination/PaginationItem/PaginationItem.d.ts +1 -0
- package/__internal__/src/components/Pagination/PaginationItem/PaginationItem.js +1 -1
- package/__internal__/src/components/Pagination/PaginationItem/PaginationItem.js.map +1 -1
- package/__internal__/src/components/Pagination/PaginationList/PaginationList.css +1 -1
- package/__internal__/src/components/Pagination/PaginationList/PaginationList.js +1 -1
- package/__internal__/src/components/Pagination/PaginationList/PaginationList.js.map +1 -1
- package/__internal__/src/components/Pagination/PaginationNumberInput/PaginationNumberInput.js +1 -1
- package/__internal__/src/components/Pagination/PaginationNumberInput/PaginationNumberInput.js.map +1 -1
- package/__internal__/src/components/Pagination/PaginationSizeCalculateHelper/PaginationSizeCalculateHelper.css +1 -0
- package/__internal__/src/components/Pagination/PaginationSizeCalculateHelper/PaginationSizeCalculateHelper.d.ts +7 -0
- package/__internal__/src/components/Pagination/PaginationSizeCalculateHelper/PaginationSizeCalculateHelper.js +2 -0
- package/__internal__/src/components/Pagination/PaginationSizeCalculateHelper/PaginationSizeCalculateHelper.js.map +1 -0
- package/__internal__/src/components/Pagination/PaginationSizeCalculateHelper/index.d.ts +1 -0
- package/__internal__/src/components/Pagination/PaginationSizeCalculateHelper/index.js +2 -0
- package/__internal__/src/components/Pagination/PaginationSizeCalculateHelper/index.js.map +1 -0
- package/__internal__/src/components/Pagination/helpers.d.ts +11 -555
- package/__internal__/src/components/Pagination/helpers.js +1 -1
- package/__internal__/src/components/Pagination/helpers.js.map +1 -1
- package/__internal__/src/components/Pagination/index.d.ts +0 -1
- package/__internal__/src/components/Pagination/index.js +1 -1
- package/__internal__/src/components/Pagination/index.js.map +1 -1
- package/__internal__/src/components/Pagination/types.d.ts +17 -37
- package/__internal__/src/components/Pagination/types.js.map +1 -1
- package/__internal__/src/components/Pagination/usePaginationItems.d.ts +7 -6
- package/__internal__/src/components/Pagination/usePaginationItems.js +1 -1
- package/__internal__/src/components/Pagination/usePaginationItems.js.map +1 -1
- package/__internal__/src/components/Pagination/usePaginationKeys.d.ts +2 -2
- package/__internal__/src/components/Pagination/usePaginationKeys.js +1 -1
- package/__internal__/src/components/Pagination/usePaginationKeys.js.map +1 -1
- package/__internal__/src/components/ProgressStepBar/ProgressStepBar.js +1 -1
- package/__internal__/src/components/ProgressStepBar/ProgressStepBar.js.map +1 -1
- package/__internal__/src/components/Slider/useSlider/helper.d.ts +1 -0
- package/__internal__/src/components/Slider/useSlider/helper.js +1 -1
- package/__internal__/src/components/Slider/useSlider/helper.js.map +1 -1
- package/__internal__/src/components/Slider/useSlider/useSlider.js +1 -1
- package/__internal__/src/components/Slider/useSlider/useSlider.js.map +1 -1
- package/__internal__/src/components/Spoiler/Spoiler.js +1 -1
- package/__internal__/src/components/Spoiler/Spoiler.js.map +1 -1
- package/__internal__/src/components/Spoiler/types.d.ts +2 -0
- package/__internal__/src/components/Spoiler/types.js.map +1 -1
- package/__internal__/src/components/Switch/Switch.css +1 -1
- package/__internal__/src/components/Tabs/Tabs.js +1 -1
- package/__internal__/src/components/Tabs/Tabs.js.map +1 -1
- package/__internal__/src/components/Tabs/TabsFitModeScrollWrapper/TabsFitModeScrollWrapper.d.ts +1 -1
- package/__internal__/src/components/Tabs/TabsFitModeScrollWrapper/TabsFitModeScrollWrapper.js +1 -1
- package/__internal__/src/components/Tabs/TabsFitModeScrollWrapper/TabsFitModeScrollWrapper.js.map +1 -1
- package/__internal__/src/components/Tabs/helpers.d.ts +283 -1
- package/__internal__/src/components/Tabs/types.d.ts +9 -2
- package/__internal__/src/components/Tabs/types.js.map +1 -1
- package/__internal__/src/components/TextField/TextField.css +1 -1
- package/__internal__/src/components/TextField/TextField.js +1 -1
- package/__internal__/src/components/TextField/TextField.js.map +1 -1
- package/__internal__/src/components/TextField/types.d.ts +1 -0
- package/__internal__/src/components/TextField/types.js.map +1 -1
- package/__internal__/src/fileIcons/FileIconAvi/FileIconAvi.js.map +1 -1
- package/__internal__/src/fileIcons/FileIconBmp/FileIconBmp.js.map +1 -1
- package/__internal__/src/fileIcons/FileIconCsv/FileIconCsv.js.map +1 -1
- package/__internal__/src/fileIcons/FileIconDoc/FileIconDoc.js.map +1 -1
- package/__internal__/src/fileIcons/FileIconExe/FileIconExe.js.map +1 -1
- package/__internal__/src/fileIcons/FileIconGif/FileIconGif.js.map +1 -1
- package/__internal__/src/fileIcons/FileIconJpg/FileIconJpg.js.map +1 -1
- package/__internal__/src/fileIcons/FileIconJson/FileIconJson.js.map +1 -1
- package/__internal__/src/fileIcons/FileIconLoading/FileIconLoading.js.map +1 -1
- package/__internal__/src/fileIcons/FileIconMov/FileIconMov.js.map +1 -1
- package/__internal__/src/fileIcons/FileIconMp3/FileIconMp3.js.map +1 -1
- package/__internal__/src/fileIcons/FileIconMp4/FileIconMp4.js.map +1 -1
- package/__internal__/src/fileIcons/FileIconPdf/FileIconPdf.js.map +1 -1
- package/__internal__/src/fileIcons/FileIconPng/FileIconPng.js.map +1 -1
- package/__internal__/src/fileIcons/FileIconRar/FileIconRar.js.map +1 -1
- package/__internal__/src/fileIcons/FileIconRtf/FileIconRtf.js.map +1 -1
- package/__internal__/src/fileIcons/FileIconTiff/FileIconTiff.js.map +1 -1
- package/__internal__/src/fileIcons/FileIconTxt/FileIconTxt.js.map +1 -1
- package/__internal__/src/fileIcons/FileIconUndefined/FileIconUndefined.js.map +1 -1
- package/__internal__/src/fileIcons/FileIconWav/FileIconWav.js.map +1 -1
- package/__internal__/src/fileIcons/FileIconXls/FileIconXls.js.map +1 -1
- package/__internal__/src/fileIcons/FileIconZip/FileIconZip.js.map +1 -1
- package/__internal__/src/hooks/useFlag/useFlag.d.ts +1 -2
- package/__internal__/src/hooks/useFlag/useFlag.js.map +1 -1
- package/__internal__/src/responsesImages/ResponsesImage403/ResponsesImage403.js.map +1 -1
- package/__internal__/src/responsesImages/ResponsesImage404/ResponsesImage404.js.map +1 -1
- package/__internal__/src/responsesImages/ResponsesImage500/ResponsesImage500.js.map +1 -1
- package/__internal__/src/responsesImages/ResponsesImage503/ResponsesImage503.js.map +1 -1
- package/__internal__/src/responsesImages/ResponsesImageConnectionError/ResponsesImageConnectionError.js.map +1 -1
- package/__internal__/src/responsesImages/ResponsesImageDeleted/ResponsesImageDeleted.js.map +1 -1
- package/__internal__/src/responsesImages/ResponsesImageEmptyBox/ResponsesImageEmptyBox.js.map +1 -1
- package/__internal__/src/responsesImages/ResponsesImageEmptyPockets/ResponsesImageEmptyPockets.js.map +1 -1
- package/__internal__/src/responsesImages/ResponsesImageNothingFound/ResponsesImageNothingFound.js.map +1 -1
- package/__internal__/src/responsesImages/ResponsesImageSuccess/ResponsesImageSuccess.js.map +1 -1
- package/package.json +1 -1
- package/__internal__/src/components/Pagination/PaginationBase/PaginationBase.css +0 -1
- package/__internal__/src/components/Pagination/PaginationBase/PaginationBase.d.ts +0 -3
- package/__internal__/src/components/Pagination/PaginationBase/PaginationBase.js +0 -2
- package/__internal__/src/components/Pagination/PaginationBase/PaginationBase.js.map +0 -1
- package/__internal__/src/components/Pagination/PaginationBase/index.d.ts +0 -1
- package/__internal__/src/components/Pagination/PaginationBase/index.js +0 -2
- package/__internal__/src/components/Pagination/PaginationBase/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":["format","isValid","isWithinInterval","parse","useCallback","useEffect","IMask","useIMask","useMutableRef","datePickerPropSeparatorDefault","getPartDate","getParts","getPartsDate","datePickerErrorTypes","usePicker","props","value","onChange","onError","formatProp","separator","maxDate","minDate","onChangeRef","valueRef","onErrorRef","onAccept","stringValue","maskRef","e","current","length","formatArray","valueArray","validArray","map","marker","filter","item","date","join","Date","start","end","MM","yyyy","type","getTime","mask","pattern","blocks","MaskedRange","from","to","lazy","autofix","string","validate","ref","setStringValue","setValue"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeMonth/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport { format, isValid, isWithinInterval, parse } from 'date-fns';\nimport { MaskedDate } from 'imask';\nimport { useCallback, useEffect } from 'react';\nimport { IMask, ReactMaskOpts, useIMask } from 'react-imask';\n\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n} from '##/components/TextField';\nimport { useMutableRef } from '##/hooks/useMutableRef/useMutableRef';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport {\n datePickerPropSeparatorDefault,\n getPartDate,\n getParts,\n getPartsDate,\n} from '../helpers';\nimport { datePickerErrorTypes, DatePickerPropOnError } from '../types';\n\ntype DatePickerFieldTypeMonthPropOnChange = (\n value: Date | null,\n props: {\n e: Event;\n },\n) => void;\n\nexport type DatePickerFieldTypeMonthProps = PropsWithHTMLAttributes<\n {\n className?: string;\n value?: Date | null;\n onChange?: DatePickerFieldTypeMonthPropOnChange;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: string;\n disabled?: boolean;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n autoFocus?: boolean;\n placeholder?: string;\n leftSide?: string | IconComponent;\n rightSide?: string | IconComponent;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n children?: never;\n format?: string;\n separator?: string;\n minDate?: Date;\n maxDate?: Date;\n focused?: boolean;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n withClearButton?: boolean;\n },\n HTMLDivElement\n>;\n\ntype UsePickerProps = {\n value?: Date | null;\n onChange?: DatePickerFieldTypeMonthPropOnChange;\n onError?: DatePickerPropOnError;\n format: string;\n separator: string;\n minDate: Date;\n maxDate: Date;\n};\n\nexport const usePicker = (props: UsePickerProps) => {\n const {\n value,\n onChange,\n onError,\n format: formatProp,\n separator,\n maxDate,\n minDate,\n } = props;\n const onChangeRef = useMutableRef(onChange);\n const valueRef = useMutableRef(value);\n const onErrorRef = useMutableRef(onError);\n\n const onAccept = useCallback(\n (stringValue: string, maskRef: unknown, e: InputEvent | undefined) => {\n const onChange = onChangeRef.current;\n const value = valueRef.current;\n\n if (\n value &&\n isValid(value) &&\n format(value, formatProp) === stringValue\n ) {\n return;\n }\n\n if (stringValue?.length !== formatProp.length && value && e && onChange) {\n onChange(null, { e });\n return;\n }\n\n if (onChange && e) {\n if (!stringValue) {\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(stringValue, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (formatArray.length === validArray.length) {\n const date = parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n );\n if (!isWithinInterval(date, { start: minDate, end: maxDate })) {\n const [MM, yyyy] = getPartsDate(\n stringValue,\n formatProp,\n separator,\n false,\n ['MM', 'yyyy'],\n );\n onErrorRef.current?.({\n type: datePickerErrorTypes[0],\n stringValue,\n MM,\n yyyy,\n date,\n });\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n onChange(date, { e });\n } else if (value) {\n onChange(null, { e });\n }\n }\n },\n [minDate?.getTime(), maxDate?.getTime(), formatProp, separator],\n );\n\n const { ref, setValue: setStringValue } = useIMask<\n HTMLInputElement,\n ReactMaskOpts\n >(\n {\n mask: Date as unknown as MaskedDate,\n pattern: formatProp,\n blocks: {\n yyyy: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 9999,\n },\n MM: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 12,\n },\n },\n lazy: true,\n autofix: true,\n format: (date: Date) => format(date, formatProp),\n parse: (string: string) => parse(string, formatProp, new Date()),\n validate: (string: string) => {\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(string, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (\n formatArray.length === validArray.length &&\n !isValid(\n parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n ),\n )\n ) {\n const [MM, yyyy] = getPartsDate(\n string,\n formatProp,\n separator,\n false,\n ['MM', 'yyyy'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n MM,\n yyyy,\n });\n return false;\n }\n\n return true;\n },\n },\n { onAccept },\n );\n\n // при изменении value, нужно обновить stringValue\n useEffect(() => {\n if (value && isValid(value)) {\n setStringValue(format(value, formatProp));\n }\n }, [value?.getTime()]);\n\n return ref;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["format","isValid","isWithinInterval","parse","useCallback","IMask","useIMask","useMutableRef","datePickerPropSeparatorDefault","getPartDate","getParts","getPartsDate","useStringValue","datePickerErrorTypes","usePicker","props","value","onChange","onError","formatProp","separator","maxDate","minDate","onChangeRef","valueRef","onErrorRef","onAccept","stringValue","maskRef","e","current","length","formatArray","valueArray","validArray","map","marker","filter","item","date","join","Date","start","end","MM","yyyy","type","getTime","imaskProps","mask","pattern","blocks","MaskedRange","from","to","lazy","autofix","string","validate","handleClear","ref"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeMonth/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport { format, isValid, isWithinInterval, parse } from 'date-fns';\nimport { MaskedDate } from 'imask';\nimport { useCallback } from 'react';\nimport { IMask, ReactMaskOpts, useIMask } from 'react-imask';\n\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n} from '##/components/TextField';\nimport { useMutableRef } from '##/hooks/useMutableRef/useMutableRef';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport {\n datePickerPropSeparatorDefault,\n getPartDate,\n getParts,\n getPartsDate,\n useStringValue,\n} from '../helpers';\nimport { datePickerErrorTypes, DatePickerPropOnError } from '../types';\n\ntype DatePickerFieldTypeMonthPropOnChange = (\n value: Date | null,\n props: {\n e: Event;\n },\n) => void;\n\nexport type DatePickerFieldTypeMonthProps = PropsWithHTMLAttributes<\n {\n className?: string;\n value?: Date | null;\n onChange?: DatePickerFieldTypeMonthPropOnChange;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: string;\n disabled?: boolean;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n autoFocus?: boolean;\n placeholder?: string;\n leftSide?: string | IconComponent;\n rightSide?: string | IconComponent;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n children?: never;\n format?: string;\n separator?: string;\n minDate?: Date;\n maxDate?: Date;\n focused?: boolean;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n withClearButton?: boolean;\n },\n HTMLDivElement\n>;\n\ntype UsePickerProps = {\n value?: Date | null;\n onChange?: DatePickerFieldTypeMonthPropOnChange;\n onError?: DatePickerPropOnError;\n format: string;\n separator: string;\n minDate: Date;\n maxDate: Date;\n};\n\nexport const usePicker = (props: UsePickerProps) => {\n const {\n value,\n onChange,\n onError,\n format: formatProp,\n separator,\n maxDate,\n minDate,\n } = props;\n const onChangeRef = useMutableRef(onChange);\n const valueRef = useMutableRef(value);\n const onErrorRef = useMutableRef(onError);\n\n const onAccept = useCallback(\n (stringValue: string, maskRef: unknown, e: InputEvent | undefined) => {\n const onChange = onChangeRef.current;\n const value = valueRef.current;\n\n if (\n value &&\n isValid(value) &&\n format(value, formatProp) === stringValue\n ) {\n return;\n }\n\n if (stringValue?.length !== formatProp.length && value && e && onChange) {\n onChange(null, { e });\n return;\n }\n\n if (onChange && e) {\n if (!stringValue) {\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(stringValue, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (formatArray.length === validArray.length) {\n const date = parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n );\n if (!isWithinInterval(date, { start: minDate, end: maxDate })) {\n const [MM, yyyy] = getPartsDate(\n stringValue,\n formatProp,\n separator,\n false,\n ['MM', 'yyyy'],\n );\n onErrorRef.current?.({\n type: datePickerErrorTypes[0],\n stringValue,\n MM,\n yyyy,\n date,\n });\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n onChange(date, { e });\n } else if (value) {\n onChange(null, { e });\n }\n }\n },\n [minDate?.getTime(), maxDate?.getTime(), formatProp, separator],\n );\n\n const imaskProps = useIMask<HTMLInputElement, ReactMaskOpts>(\n {\n mask: Date as unknown as MaskedDate,\n pattern: formatProp,\n blocks: {\n yyyy: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 9999,\n },\n MM: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 12,\n },\n },\n lazy: true,\n autofix: true,\n format: (date: Date) => format(date, formatProp),\n parse: (string: string) => parse(string, formatProp, new Date()),\n validate: (string: string) => {\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(string, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (\n formatArray.length === validArray.length &&\n !isValid(\n parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n ),\n )\n ) {\n const [MM, yyyy] = getPartsDate(\n string,\n formatProp,\n separator,\n false,\n ['MM', 'yyyy'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n MM,\n yyyy,\n });\n return false;\n }\n\n return true;\n },\n },\n { onAccept },\n );\n\n const handleClear = useStringValue(\n value,\n formatProp,\n separator,\n onChangeRef,\n imaskProps,\n );\n\n return [imaskProps.ref, handleClear] as const;\n};\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","form","startFieldInputRef","startFieldLeftSide","startFieldRightSide","endFieldInputRef","endFieldLeftSide","endFieldRightSide","value","onChange","onError","startFieldName","endFieldName","disabled","size","view","status","autoFocus","placeholder","readOnly","required","tabIndex","ariaLabel","id","iconSize","format","separator","minDate","maxDate","startFieldOnClick","startFieldOnBlur","startFieldOnFocus","endFieldOnClick","endFieldOnBlur","endFieldOnFocus","startFieldRef","endFieldRef","startFocused","endFocused","label","labelIcon","labelPosition","caption","withClearButton"];import React,{forwardRef}from"react";import{FieldCaption}from"../../FieldCaption
|
|
1
|
+
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","form","startFieldInputRef","startFieldLeftSide","startFieldRightSide","endFieldInputRef","endFieldLeftSide","endFieldRightSide","value","onChange","onError","startFieldName","endFieldName","disabled","size","view","status","autoFocus","placeholder","readOnly","required","tabIndex","ariaLabel","id","iconSize","format","separator","minDate","maxDate","startFieldOnClick","startFieldOnBlur","startFieldOnFocus","endFieldOnClick","endFieldOnBlur","endFieldOnFocus","startFieldRef","endFieldRef","startFocused","endFocused","label","labelIcon","labelPosition","caption","withClearButton"];import React,{forwardRef}from"react";import{FieldCaption}from"../../FieldCaption";import{FieldLabel}from"../../FieldLabel";import{DatePickerFieldTypeMonth}from"../DatePickerFieldTypeMonth/DatePickerFieldTypeMonth";import{cnDatePickerMixRangeField}from"../DatePickerMixRangeField/DatePickerMixRangeField";import{getChangeFnRange}from"../getChangeFnRange";import{getFormForEnd,getFormForStart}from"../helpers";export var DatePickerFieldTypeMonthRange=forwardRef(function(a,b){var c=a.className,d=a.form,e=void 0===d?"default":d,f=a.startFieldInputRef,g=a.startFieldLeftSide,h=a.startFieldRightSide,i=a.endFieldInputRef,j=a.endFieldLeftSide,k=a.endFieldRightSide,l=a.value,m=void 0===l?[]:l,n=a.onChange,o=a.onError,p=a.startFieldName,q=a.endFieldName,r=a.disabled,s=a.size,t=a.view,u=a.status,v=a.autoFocus,w=a.placeholder,x=a.readOnly,y=a.required,z=a.tabIndex,A=a.ariaLabel,B=a.id,C=a.iconSize,D=a.format,E=a.separator,F=a.minDate,G=a.maxDate,H=a.startFieldOnClick,I=a.startFieldOnBlur,J=a.startFieldOnFocus,K=a.endFieldOnClick,L=a.endFieldOnBlur,M=a.endFieldOnFocus,N=a.startFieldRef,O=a.endFieldRef,P=a.startFocused,Q=a.endFocused,R=a.label,S=a.labelIcon,T=a.labelPosition,U=a.caption,V=a.withClearButton,W=_objectWithoutProperties(a,_excluded),X={className:cnDatePickerMixRangeField("Field"),disabled:r,onError:o,size:s,view:t,status:u,autoFocus:v,placeholder:w,readOnly:x,required:y,tabIndex:z,ariaLabel:A,iconSize:C,format:D,separator:E,minDate:F,maxDate:G,withClearButton:V},Y=getChangeFnRange(n,o,m),Z=_slicedToArray(Y,2),$=Z[0],_=Z[1];return React.createElement("div",Object.assign({},W,{className:cnDatePickerMixRangeField({view:t,labelPosition:T,size:s},[c]),ref:b}),R&&React.createElement(FieldLabel,{icon:S,as:"label",htmlFor:B,required:y,className:cnDatePickerMixRangeField("Label",{labelPosition:T}),size:s},R),React.createElement("div",{className:cnDatePickerMixRangeField("Body")},React.createElement("div",{className:cnDatePickerMixRangeField("Fields")},React.createElement(DatePickerFieldTypeMonth,Object.assign({},X,{inputRef:f,ref:N,leftSide:g,rightSide:h,form:getFormForStart(e),value:null===m||void 0===m?void 0:m[0],onChange:$,id:B,onClick:H,onFocus:J,onBlur:I,focused:P,name:p})),React.createElement(DatePickerFieldTypeMonth,Object.assign({},X,{name:q,inputRef:i,ref:O,leftSide:j,rightSide:k,form:getFormForEnd(e),value:null===m||void 0===m?void 0:m[1],onClick:K,onChange:_,onFocus:M,onBlur:L,focused:Q}))),U&&React.createElement(FieldCaption,{className:cnDatePickerMixRangeField("Caption"),status:u},U)))});
|
|
2
2
|
//# sourceMappingURL=DatePickerFieldTypeMonthRange.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerFieldTypeMonthRange.js","names":["React","forwardRef","FieldCaption","FieldLabel","DatePickerFieldTypeMonth","cnDatePickerMixRangeField","getChangeFnRange","getFormForEnd","getFormForStart","DatePickerFieldTypeMonthRange","props","ref","className","form","startFieldInputRef","startFieldLeftSide","startFieldRightSide","endFieldInputRef","endFieldLeftSide","endFieldRightSide","value","onChange","onError","startFieldName","endFieldName","disabled","size","view","status","autoFocus","placeholder","readOnly","required","tabIndex","ariaLabel","id","iconSize","format","separator","minDate","maxDate","startFieldOnClick","startFieldOnBlur","startFieldOnFocus","endFieldOnClick","endFieldOnBlur","endFieldOnFocus","startFieldRef","endFieldRef","startFocused","endFocused","label","labelIcon","labelPosition","caption","withClearButton","otherProps","commonProps","handleStartDateChange","handleEndDateChange"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeMonthRange/DatePickerFieldTypeMonthRange.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { FieldCaption } from '
|
|
1
|
+
{"version":3,"file":"DatePickerFieldTypeMonthRange.js","names":["React","forwardRef","FieldCaption","FieldLabel","DatePickerFieldTypeMonth","cnDatePickerMixRangeField","getChangeFnRange","getFormForEnd","getFormForStart","DatePickerFieldTypeMonthRange","props","ref","className","form","startFieldInputRef","startFieldLeftSide","startFieldRightSide","endFieldInputRef","endFieldLeftSide","endFieldRightSide","value","onChange","onError","startFieldName","endFieldName","disabled","size","view","status","autoFocus","placeholder","readOnly","required","tabIndex","ariaLabel","id","iconSize","format","separator","minDate","maxDate","startFieldOnClick","startFieldOnBlur","startFieldOnFocus","endFieldOnClick","endFieldOnBlur","endFieldOnFocus","startFieldRef","endFieldRef","startFocused","endFocused","label","labelIcon","labelPosition","caption","withClearButton","otherProps","commonProps","handleStartDateChange","handleEndDateChange"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeMonthRange/DatePickerFieldTypeMonthRange.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { FieldCaption } from '##/components/FieldCaption';\nimport { FieldLabel } from '##/components/FieldLabel';\n\nimport { DatePickerFieldTypeMonth } from '../DatePickerFieldTypeMonth/DatePickerFieldTypeMonth';\nimport { cnDatePickerMixRangeField } from '../DatePickerMixRangeField/DatePickerMixRangeField';\nimport { getChangeFnRange } from '../getChangeFnRange';\nimport { getFormForEnd, getFormForStart } from '../helpers';\nimport { DatePickerFieldTypeMonthRangeProps } from './helpers';\n\nexport const DatePickerFieldTypeMonthRange = forwardRef<\n HTMLDivElement,\n DatePickerFieldTypeMonthRangeProps\n>((props, ref) => {\n const {\n className,\n form = 'default',\n startFieldInputRef,\n startFieldLeftSide,\n startFieldRightSide,\n endFieldInputRef,\n endFieldLeftSide,\n endFieldRightSide,\n value = [],\n onChange,\n onError,\n startFieldName,\n endFieldName,\n disabled,\n size,\n view,\n status,\n autoFocus,\n placeholder,\n readOnly,\n required,\n tabIndex,\n ariaLabel,\n id,\n iconSize,\n format,\n separator,\n minDate,\n maxDate,\n startFieldOnClick,\n startFieldOnBlur,\n startFieldOnFocus,\n endFieldOnClick,\n endFieldOnBlur,\n endFieldOnFocus,\n startFieldRef,\n endFieldRef,\n startFocused,\n endFocused,\n label,\n labelIcon,\n labelPosition,\n caption,\n withClearButton,\n ...otherProps\n } = props;\n\n const commonProps = {\n className: cnDatePickerMixRangeField('Field'),\n disabled,\n onError,\n size,\n view,\n status,\n autoFocus,\n placeholder,\n readOnly,\n required,\n tabIndex,\n ariaLabel,\n iconSize,\n format,\n separator,\n minDate,\n maxDate,\n withClearButton,\n };\n\n const [handleStartDateChange, handleEndDateChange] = getChangeFnRange(\n onChange,\n onError,\n value,\n );\n\n return (\n <div\n {...otherProps}\n className={cnDatePickerMixRangeField({ view, labelPosition, size }, [\n className,\n ])}\n ref={ref}\n >\n {label && (\n <FieldLabel\n icon={labelIcon}\n as=\"label\"\n htmlFor={id}\n required={required}\n className={cnDatePickerMixRangeField('Label', { labelPosition })}\n size={size}\n >\n {label}\n </FieldLabel>\n )}\n <div className={cnDatePickerMixRangeField('Body')}>\n <div className={cnDatePickerMixRangeField('Fields')}>\n <DatePickerFieldTypeMonth\n {...commonProps}\n inputRef={startFieldInputRef}\n ref={startFieldRef}\n leftSide={startFieldLeftSide}\n rightSide={startFieldRightSide}\n form={getFormForStart(form)}\n value={value?.[0]}\n onChange={handleStartDateChange}\n id={id}\n onClick={startFieldOnClick}\n onFocus={startFieldOnFocus}\n onBlur={startFieldOnBlur}\n focused={startFocused}\n name={startFieldName}\n />\n <DatePickerFieldTypeMonth\n {...commonProps}\n name={endFieldName}\n inputRef={endFieldInputRef}\n ref={endFieldRef}\n leftSide={endFieldLeftSide}\n rightSide={endFieldRightSide}\n form={getFormForEnd(form)}\n value={value?.[1]}\n onClick={endFieldOnClick}\n onChange={handleEndDateChange}\n onFocus={endFieldOnFocus}\n onBlur={endFieldOnBlur}\n focused={endFocused}\n />\n </div>\n {caption && (\n <FieldCaption\n className={cnDatePickerMixRangeField('Caption')}\n status={status}\n >\n {caption}\n </FieldCaption>\n )}\n </div>\n </div>\n );\n});\n"],"mappings":"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"}
|
package/__internal__/src/components/DatePicker/DatePickerFieldTypeTime/DatePickerFieldTypeTime.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["format","separator","placeholder","onChange","onError","minDate","maxDate","value","inputRef","multiplicityHours","multiplicitySeconds","multiplicityMinutes","defaultValue"];import React from"react";import{useForkRef}from"../../../hooks/useForkRef
|
|
1
|
+
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["format","separator","placeholder","onChange","onError","minDate","maxDate","value","inputRef","multiplicityHours","multiplicitySeconds","multiplicityMinutes","defaultValue"];import React from"react";import{TextField}from"../../TextField";import{useForkRef}from"../../../hooks/useForkRef";import{maxDateDefault,minDateDefault}from"../../../utils/date";import{datePickerPropFormatTypeTime,datePickerPropPlaceholderTypeTime,datePickerPropSeparatorDefault}from"../helpers";import{usePicker}from"./helpers";export var DatePickerFieldTypeTime=React.forwardRef(function(a,b){var c=a.format,d=void 0===c?datePickerPropFormatTypeTime:c,e=a.separator,f=void 0===e?datePickerPropSeparatorDefault:e,g=a.placeholder,h=void 0===g?datePickerPropPlaceholderTypeTime:g,i=a.onChange,j=a.onError,k=a.minDate,l=void 0===k?minDateDefault:k,m=a.maxDate,n=void 0===m?maxDateDefault:m,o=a.value,p=a.inputRef,q=a.multiplicityHours,r=a.multiplicitySeconds,s=a.multiplicityMinutes,t=a.defaultValue,u=_objectWithoutProperties(a,_excluded),v=usePicker({value:o,onChange:i,onError:j,separator:f,format:d,minDate:l,maxDate:n,multiplicityHours:q,multiplicityMinutes:s,multiplicitySeconds:r}),w=_slicedToArray(v,2),x=w[0],y=w[1];return React.createElement(TextField,Object.assign({},u,{type:"text",inputContainerRef:b,inputRef:useForkRef([x,p]),placeholder:h,onClear:y}))});
|
|
2
2
|
//# sourceMappingURL=DatePickerFieldTypeTime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerFieldTypeTime.js","names":["React","useForkRef","maxDateDefault","minDateDefault","
|
|
1
|
+
{"version":3,"file":"DatePickerFieldTypeTime.js","names":["React","TextField","useForkRef","maxDateDefault","minDateDefault","datePickerPropFormatTypeTime","datePickerPropPlaceholderTypeTime","datePickerPropSeparatorDefault","usePicker","DatePickerFieldTypeTime","forwardRef","props","ref","format","separator","placeholder","onChange","onError","minDate","maxDate","value","inputRefProp","inputRef","multiplicityHours","multiplicitySeconds","multiplicityMinutes","defaultValue","otherProps","onClear"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeTime/DatePickerFieldTypeTime.tsx"],"sourcesContent":["import React from 'react';\n\nimport { TextField } from '##/components/TextField';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { maxDateDefault, minDateDefault } from '##/utils/date';\n\nimport {\n datePickerPropFormatTypeTime,\n datePickerPropPlaceholderTypeTime,\n datePickerPropSeparatorDefault,\n} from '../helpers';\nimport { DatePickerFieldTypeTimeProps, usePicker } from './helpers';\n\nexport const DatePickerFieldTypeTime = React.forwardRef<\n HTMLDivElement,\n DatePickerFieldTypeTimeProps\n>((props, ref) => {\n const {\n format = datePickerPropFormatTypeTime,\n separator = datePickerPropSeparatorDefault,\n placeholder = datePickerPropPlaceholderTypeTime,\n onChange,\n onError,\n minDate = minDateDefault,\n maxDate = maxDateDefault,\n value,\n inputRef: inputRefProp,\n multiplicityHours,\n multiplicitySeconds,\n multiplicityMinutes,\n defaultValue,\n ...otherProps\n } = props;\n\n const [inputRef, onClear] = usePicker({\n value,\n onChange,\n onError,\n separator,\n format,\n minDate,\n maxDate,\n multiplicityHours,\n multiplicityMinutes,\n multiplicitySeconds,\n });\n\n return (\n <TextField\n {...otherProps}\n type=\"text\"\n inputContainerRef={ref}\n inputRef={useForkRef([inputRef, inputRefProp])}\n placeholder={placeholder}\n onClear={onClear}\n />\n );\n});\n"],"mappings":"oVAAA,MAAOA,MAAP,KAAkB,OAAlB,CAEA,OAASC,SAAT,uBACA,OAASC,UAAT,iCACA,OAASC,cAAT,CAAyBC,cAAzB,2BAEA,OACEC,4BADF,CAEEC,iCAFF,CAGEC,8BAHF,kBAKA,OAAuCC,SAAvC,iBAEA,MAAO,IAAMC,wBAAuB,CAAGT,KAAK,CAACU,UAAN,CAGrC,SAACC,CAAD,CAAQC,CAAR,CAAgB,OAgBZD,CAhBY,CAEdE,MAFc,CAEdA,CAFc,YAELR,4BAFK,KAgBZM,CAhBY,CAGdG,SAHc,CAGdA,CAHc,YAGFP,8BAHE,KAgBZI,CAhBY,CAIdI,WAJc,CAIdA,CAJc,YAIAT,iCAJA,GAKdU,CALc,CAgBZL,CAhBY,CAKdK,QALc,CAMdC,CANc,CAgBZN,CAhBY,CAMdM,OANc,GAgBZN,CAhBY,CAOdO,OAPc,CAOdA,CAPc,YAOJd,cAPI,KAgBZO,CAhBY,CAQdQ,OARc,CAQdA,CARc,YAQJhB,cARI,GASdiB,CATc,CAgBZT,CAhBY,CASdS,KATc,CAUJC,CAVI,CAgBZV,CAhBY,CAUdW,QAVc,CAWdC,CAXc,CAgBZZ,CAhBY,CAWdY,iBAXc,CAYdC,CAZc,CAgBZb,CAhBY,CAYda,mBAZc,CAadC,CAbc,CAgBZd,CAhBY,CAadc,mBAbc,CAcdC,CAdc,CAgBZf,CAhBY,CAcde,YAdc,CAeXC,CAfW,0BAgBZhB,CAhBY,cAkBYH,SAAS,CAAC,CACpCY,KAAK,CAALA,CADoC,CAEpCJ,QAAQ,CAARA,CAFoC,CAGpCC,OAAO,CAAPA,CAHoC,CAIpCH,SAAS,CAATA,CAJoC,CAKpCD,MAAM,CAANA,CALoC,CAMpCK,OAAO,CAAPA,CANoC,CAOpCC,OAAO,CAAPA,CAPoC,CAQpCI,iBAAiB,CAAjBA,CARoC,CASpCE,mBAAmB,CAAnBA,CAToC,CAUpCD,mBAAmB,CAAnBA,CAVoC,CAAD,CAlBrB,uBAkBTF,CAlBS,MAkBCM,CAlBD,MA+BhB,MACE,qBAAC,SAAD,kBACMD,CADN,EAEE,IAAI,CAAC,MAFP,CAGE,iBAAiB,CAAEf,CAHrB,CAIE,QAAQ,CAAEV,UAAU,CAAC,CAACoB,CAAD,CAAWD,CAAX,CAAD,CAJtB,CAKE,WAAW,CAAEN,CALf,CAME,OAAO,CAAEa,CANX,GASH,CA5CsC,CAAhC"}
|
|
@@ -57,5 +57,5 @@ declare type UsePickerProps = {
|
|
|
57
57
|
minDate: Date;
|
|
58
58
|
maxDate: Date;
|
|
59
59
|
};
|
|
60
|
-
export declare const usePicker: (props: UsePickerProps) => React.MutableRefObject<HTMLInputElement | null
|
|
60
|
+
export declare const usePicker: (props: UsePickerProps) => readonly [React.MutableRefObject<HTMLInputElement | null>, React.MouseEventHandler<HTMLButtonElement>];
|
|
61
61
|
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{addHours,addMinutes,addSeconds,format as _format,isValid,isWithinInterval,parse as _parse,startOfDay,startOfHour,startOfMinute}from"date-fns";import{useCallback
|
|
1
|
+
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{addHours,addMinutes,addSeconds,format as _format,isValid,isWithinInterval,parse as _parse,startOfDay,startOfHour,startOfMinute}from"date-fns";import{useCallback}from"react";import{IMask,useIMask}from"react-imask";import{getLabelHours,getLabelMinutes,getLabelSeconds}from"../../DateTime/helpers";import{useMutableRef}from"../../../hooks/useMutableRef";import{getPartDate,getParts,getPartsDate,getTimeEnum,useStringValue}from"../helpers";import{datePickerErrorTypes}from"../types";export var usePicker=function(a){var b=a.value,c=a.onChange,d=a.onError,e=a.multiplicityHours,f=a.multiplicityMinutes,g=a.multiplicitySeconds,h=a.format,i=a.separator,j=a.maxDate,k=a.minDate,l=useMutableRef(c),m=useMutableRef(b),n=useMutableRef(d),o=useCallback(function(a,b,c){var d=l.current,e=m.current;if(!(e&&isValid(e)&&_format(e,h)===a)){if((null===a||void 0===a?void 0:a.length)!==h.length&&e&&c&&d)return void d(null,{e:c});if(d&&c){if(!a)return void(e&&d(null,{e:c}));var f=getParts(h,i,!1),g=getParts(a,i,!1),o=f.map(function(a){return getPartDate(f,g,a)}).filter(function(a){return!!a});if(f.length===o.length){var v=_parse(g.join(":"),f.join(":"),e||new Date);if(!isWithinInterval(v,{start:k,end:j})){var p,q=getPartsDate(a,h,":",!1,["HH","mm","ss"]),r=_slicedToArray(q,3),s=r[0],t=r[1],u=r[2];return null===(p=n.current)||void 0===p?void 0:p.call(n,{type:datePickerErrorTypes[0],stringValue:a,date:v,HH:s,mm:t,ss:u}),void(e&&d(null,{e:c}))}d(v,{e:c})}else e&&d(null,{e:c})}}},[null===k||void 0===k?void 0:k.getTime(),null===j||void 0===j?void 0:j.getTime(),h,i]),p=useIMask({mask:Date,pattern:h,blocks:{HH:e&&1<e?{mask:IMask.MaskedEnum,enum:getTimeEnum(24,e,startOfDay,addHours,getLabelHours)}:{mask:IMask.MaskedRange,from:0,to:23},mm:f&&1<f?{mask:IMask.MaskedEnum,enum:getTimeEnum(60,f,startOfHour,addMinutes,getLabelMinutes)}:{mask:IMask.MaskedRange,from:0,to:59},ss:g&&1<g?{mask:IMask.MaskedEnum,enum:getTimeEnum(60,g,startOfMinute,addSeconds,getLabelSeconds)}:{mask:IMask.MaskedRange,from:0,to:59}},lazy:!0,autofix:!0,format:function format(a){return _format(a,h)},parse:function parse(a){return _parse(a,h,new Date)},validate:function validate(a){var b=getParts(h,i,!1),c=getParts(a,i,!1),d=b.map(function(a){return getPartDate(b,c,a)}).filter(function(a){return!!a});if(b.length===d.length&&!isValid(_parse(c.join(":"),b.join(":"),new Date))){var e,f=getPartsDate(a,h,":",!1,["HH","mm","ss"]),g=_slicedToArray(f,3),j=g[0],k=g[1],l=g[2];return null===(e=n.current)||void 0===e?void 0:e.call(n,{type:datePickerErrorTypes[1],stringValue:a,HH:j,mm:k,ss:l}),!1}return!0}},{onAccept:o}),q=useStringValue(b,h,i,l,p);return[p.ref,q]};
|
|
2
2
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":["addHours","addMinutes","addSeconds","format","isValid","isWithinInterval","parse","startOfDay","startOfHour","startOfMinute","useCallback","useEffect","IMask","useIMask","getLabelHours","getLabelMinutes","getLabelSeconds","useMutableRef","getPartDate","getParts","getPartsDate","getTimeEnum","datePickerErrorTypes","usePicker","props","value","onChange","onError","multiplicityHours","multiplicityMinutes","multiplicitySeconds","formatProp","separator","maxDate","minDate","onChangeRef","valueRef","onErrorRef","onAccept","stringValue","maskRef","e","current","length","formatArray","valueArray","validArray","map","marker","filter","item","date","join","Date","start","end","HH","mm","ss","type","getTime","mask","pattern","blocks","MaskedEnum","MaskedRange","from","to","lazy","autofix","string","validate","ref","setStringValue","setValue"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeTime/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport {\n addHours,\n addMinutes,\n addSeconds,\n format,\n isValid,\n isWithinInterval,\n parse,\n startOfDay,\n startOfHour,\n startOfMinute,\n} from 'date-fns';\nimport { MaskedDate } from 'imask';\nimport React, { useCallback, useEffect } from 'react';\nimport { IMask, ReactMaskOpts, useIMask } from 'react-imask';\n\nimport {\n getLabelHours,\n getLabelMinutes,\n getLabelSeconds,\n} from '##/components/DateTime/helpers';\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n} from '##/components/TextField';\nimport { useMutableRef } from '##/hooks/useMutableRef';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport { getPartDate, getParts, getPartsDate, getTimeEnum } from '../helpers';\nimport { datePickerErrorTypes, DatePickerPropOnError } from '../types';\n\ntype DatePickerFieldTypeTimePropOnChange = (\n value: Date | null,\n props: {\n e: Event;\n },\n) => void;\n\nexport type DatePickerFieldTypeTimeProps = PropsWithHTMLAttributes<\n {\n className?: string;\n value?: Date | null;\n onChange?: DatePickerFieldTypeTimePropOnChange;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: string;\n disabled?: boolean;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n autoFocus?: boolean;\n placeholder?: string;\n leftSide?: string | IconComponent;\n rightSide?: string | IconComponent;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n children?: never;\n format?: string;\n separator?: string;\n minDate?: Date;\n maxDate?: Date;\n focused?: boolean;\n multiplicitySeconds?: number;\n multiplicityMinutes?: number;\n multiplicityHours?: number;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n withClearButton?: boolean;\n },\n HTMLDivElement\n>;\n\ntype UsePickerProps = {\n value?: Date | null;\n onChange?: DatePickerFieldTypeTimePropOnChange;\n onError?: DatePickerPropOnError;\n multiplicityHours: number | undefined;\n multiplicitySeconds: number | undefined;\n multiplicityMinutes: number | undefined;\n format: string;\n separator: string;\n minDate: Date;\n maxDate: Date;\n};\n\nexport const usePicker = (props: UsePickerProps) => {\n const {\n value,\n onChange,\n onError,\n multiplicityHours,\n multiplicityMinutes,\n multiplicitySeconds,\n format: formatProp,\n separator,\n maxDate,\n minDate,\n } = props;\n const onChangeRef = useMutableRef(onChange);\n const valueRef = useMutableRef(value);\n const onErrorRef = useMutableRef(onError);\n\n const onAccept = useCallback(\n (stringValue: string, maskRef: unknown, e: InputEvent | undefined) => {\n const onChange = onChangeRef.current;\n const value = valueRef.current;\n\n if (\n value &&\n isValid(value) &&\n format(value, formatProp) === stringValue\n ) {\n return;\n }\n\n if (stringValue?.length !== formatProp.length && value && e && onChange) {\n onChange(null, { e });\n return;\n }\n\n if (onChange && e) {\n if (!stringValue) {\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(stringValue, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (formatArray.length === validArray.length) {\n const date = parse(\n valueArray.join(':'),\n formatArray.join(':'),\n value || new Date(),\n );\n\n if (!isWithinInterval(date, { start: minDate, end: maxDate })) {\n const [HH, mm, ss] = getPartsDate(\n stringValue,\n formatProp,\n ':',\n false,\n ['HH', 'mm', 'ss'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[0],\n stringValue,\n date,\n HH,\n mm,\n ss,\n });\n\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n onChange(date, { e });\n } else if (value) {\n onChange(null, { e });\n }\n }\n },\n [minDate?.getTime(), maxDate?.getTime(), formatProp, separator],\n );\n\n const { ref, setValue: setStringValue } = useIMask<\n HTMLInputElement,\n ReactMaskOpts\n >(\n {\n mask: Date as unknown as MaskedDate,\n pattern: formatProp,\n blocks: {\n HH:\n multiplicityHours && multiplicityHours > 1\n ? {\n mask: IMask.MaskedEnum,\n enum: getTimeEnum(\n 24,\n multiplicityHours,\n startOfDay,\n addHours,\n getLabelHours,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 23,\n },\n mm:\n multiplicityMinutes && multiplicityMinutes > 1\n ? {\n mask: IMask.MaskedEnum,\n enum: getTimeEnum(\n 60,\n multiplicityMinutes,\n startOfHour,\n addMinutes,\n getLabelMinutes,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 59,\n },\n ss:\n multiplicitySeconds && multiplicitySeconds > 1\n ? {\n mask: IMask.MaskedEnum,\n enum: getTimeEnum(\n 60,\n multiplicitySeconds,\n startOfMinute,\n addSeconds,\n getLabelSeconds,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 59,\n },\n },\n lazy: true,\n autofix: true,\n format: (date: Date) => format(date, formatProp),\n parse: (string: string) => parse(string, formatProp, new Date()),\n validate: (string: string) => {\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(string, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (\n formatArray.length === validArray.length &&\n !isValid(\n parse(valueArray.join(':'), formatArray.join(':'), new Date()),\n )\n ) {\n const [HH, mm, ss] = getPartsDate(string, formatProp, ':', false, [\n 'HH',\n 'mm',\n 'ss',\n ]);\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n HH,\n mm,\n ss,\n });\n return false;\n }\n\n return true;\n },\n },\n { onAccept },\n );\n\n // при изменении value, нужно обновить stringValue\n useEffect(() => {\n if (value && isValid(value)) {\n setStringValue(format(value, formatProp));\n }\n }, [value?.getTime()]);\n\n return ref;\n};\n"],"mappings":"iEACA,OACEA,QADF,CAEEC,UAFF,CAGEC,UAHF,CAIEC,MAAM,GAANA,QAJF,CAKEC,OALF,CAMEC,gBANF,CAOEC,KAAK,GAALA,OAPF,CAQEC,UARF,CASEC,WATF,CAUEC,aAVF,KAWO,UAXP,CAaA,OAAgBC,WAAhB,CAA6BC,SAA7B,KAA8C,OAA9C,CACA,OAASC,KAAT,CAA+BC,QAA/B,KAA+C,aAA/C,CAEA,OACEC,aADF,CAEEC,eAFF,CAGEC,eAHF,8BAWA,OAASC,aAAT,oCAGA,OAASC,WAAT,CAAsBC,QAAtB,CAAgCC,YAAhC,CAA8CC,WAA9C,kBACA,OAASC,oBAAT,gBAiEA,MAAO,IAAMC,UAAS,CAAG,SAACC,CAAD,CAA2B,IAEhDC,EAFgD,CAY9CD,CAZ8C,CAEhDC,KAFgD,CAGhDC,CAHgD,CAY9CF,CAZ8C,CAGhDE,QAHgD,CAIhDC,CAJgD,CAY9CH,CAZ8C,CAIhDG,OAJgD,CAKhDC,CALgD,CAY9CJ,CAZ8C,CAKhDI,iBALgD,CAMhDC,CANgD,CAY9CL,CAZ8C,CAMhDK,mBANgD,CAOhDC,CAPgD,CAY9CN,CAZ8C,CAOhDM,mBAPgD,CAQxCC,CARwC,CAY9CP,CAZ8C,CAQhDrB,MARgD,CAShD6B,CATgD,CAY9CR,CAZ8C,CAShDQ,SATgD,CAUhDC,CAVgD,CAY9CT,CAZ8C,CAUhDS,OAVgD,CAWhDC,CAXgD,CAY9CV,CAZ8C,CAWhDU,OAXgD,CAa5CC,CAAW,CAAGlB,aAAa,CAACS,CAAD,CAbiB,CAc5CU,CAAQ,CAAGnB,aAAa,CAACQ,CAAD,CAdoB,CAe5CY,CAAU,CAAGpB,aAAa,CAACU,CAAD,CAfkB,CAiB5CW,CAAQ,CAAG5B,WAAW,CAC1B,SAAC6B,CAAD,CAAsBC,CAAtB,CAAwCC,CAAxC,CAAsE,IAC9Df,EAAQ,CAAGS,CAAW,CAACO,OADuC,CAE9DjB,CAAK,CAAGW,CAAQ,CAACM,OAF6C,CAIpE,KACEjB,CAAK,EACLrB,OAAO,CAACqB,CAAD,CADP,EAEAtB,OAAM,CAACsB,CAAD,CAAQM,CAAR,CAAN,GAA8BQ,CAHhC,GAQA,GAAI,QAAAA,CAAW,WAAXA,CAAA,QAAAA,CAAW,CAAEI,MAAb,IAAwBZ,CAAU,CAACY,MAAnC,EAA6ClB,CAA7C,EAAsDgB,CAAtD,EAA2Df,CAA/D,CAEE,WADAA,EAAQ,CAAC,IAAD,CAAO,CAAEe,CAAC,CAADA,CAAF,CAAP,CACR,CAGF,GAAIf,CAAQ,EAAIe,CAAhB,CAAmB,CACjB,GAAI,CAACF,CAAL,CAIE,YAHId,CAGJ,EAFEC,CAAQ,CAAC,IAAD,CAAO,CAAEe,CAAC,CAADA,CAAF,CAAP,CAEV,EALe,GAQXG,EAAW,CAAGzB,QAAQ,CAACY,CAAD,CAAaC,CAAb,IARX,CASXa,CAAU,CAAG1B,QAAQ,CAACoB,CAAD,CAAcP,CAAd,IATV,CAUXc,CAAU,CAAGF,CAAW,CAC3BG,GADgB,CACZ,SAACC,CAAD,QAAY9B,YAAW,CAAC0B,CAAD,CAAcC,CAAd,CAA0BG,CAA1B,CAAvB,CADY,EAEhBC,MAFgB,CAET,SAACC,CAAD,UAAkBA,CAAlB,CAFS,CAVF,CAcjB,GAAIN,CAAW,CAACD,MAAZ,GAAuBG,CAAU,CAACH,MAAtC,CAA8C,CAC5C,GAAMQ,EAAI,CAAG7C,MAAK,CAChBuC,CAAU,CAACO,IAAX,CAAgB,GAAhB,CADgB,CAEhBR,CAAW,CAACQ,IAAZ,CAAiB,GAAjB,CAFgB,CAGhB3B,CAAK,EAAI,GAAI4B,KAHG,CAAlB,CAMA,GAAI,CAAChD,gBAAgB,CAAC8C,CAAD,CAAO,CAAEG,KAAK,CAAEpB,CAAT,CAAkBqB,GAAG,CAAEtB,CAAvB,CAAP,CAArB,CAA+D,SACxCb,YAAY,CAC/BmB,CAD+B,CAE/BR,CAF+B,CAG/B,GAH+B,IAK/B,CAAC,IAAD,CAAO,IAAP,CAAa,IAAb,CAL+B,CAD4B,uBACtDyB,CADsD,MAClDC,CADkD,MAC9CC,CAD8C,MAqB7D,iBAZArB,CAAU,CAACK,OAYX,qBAZA,OAAAL,CAAU,CAAW,CACnBsB,IAAI,CAAErC,oBAAoB,CAAC,CAAD,CADP,CAEnBiB,WAAW,CAAXA,CAFmB,CAGnBY,IAAI,CAAJA,CAHmB,CAInBK,EAAE,CAAFA,CAJmB,CAKnBC,EAAE,CAAFA,CALmB,CAMnBC,EAAE,CAAFA,CANmB,CAAX,CAYV,MAHIjC,CAGJ,EAFEC,CAAQ,CAAC,IAAD,CAAO,CAAEe,CAAC,CAADA,CAAF,CAAP,CAEV,CACD,CACDf,CAAQ,CAACyB,CAAD,CAAO,CAAEV,CAAC,CAADA,CAAF,CAAP,CACT,CA/BD,IA+BWhB,EA/BX,EAgCEC,CAAQ,CAAC,IAAD,CAAO,CAAEe,CAAC,CAADA,CAAF,CAAP,CAEX,CA7DD,CA8DD,CAnEyB,CAoE1B,QAACP,CAAD,WAACA,CAAD,QAACA,CAAO,CAAE0B,OAAT,EAAD,QAAqB3B,CAArB,WAAqBA,CAArB,QAAqBA,CAAO,CAAE2B,OAAT,EAArB,CAAyC7B,CAAzC,CAAqDC,CAArD,CApE0B,CAjBsB,GAwFRnB,QAAQ,CAIhD,CACEgD,IAAI,CAAER,IADR,CAEES,OAAO,CAAE/B,CAFX,CAGEgC,MAAM,CAAE,CACNP,EAAE,CACA5B,CAAiB,EAAwB,CAApB,CAAAA,CAArB,CACI,CACEiC,IAAI,CAAEjD,KAAK,CAACoD,UADd,CAEE,KAAM3C,WAAW,CACf,EADe,CAEfO,CAFe,CAGfrB,UAHe,CAIfP,QAJe,CAKfc,aALe,CAFnB,CADJ,CAWI,CACE+C,IAAI,CAAEjD,KAAK,CAACqD,WADd,CAEEC,IAAI,CAAE,CAFR,CAGEC,EAAE,CAAE,EAHN,CAbA,CAkBNV,EAAE,CACA5B,CAAmB,EAA0B,CAAtB,CAAAA,CAAvB,CACI,CACEgC,IAAI,CAAEjD,KAAK,CAACoD,UADd,CAEE,KAAM3C,WAAW,CACf,EADe,CAEfQ,CAFe,CAGfrB,WAHe,CAIfP,UAJe,CAKfc,eALe,CAFnB,CADJ,CAWI,CACE8C,IAAI,CAAEjD,KAAK,CAACqD,WADd,CAEEC,IAAI,CAAE,CAFR,CAGEC,EAAE,CAAE,EAHN,CA9BA,CAmCNT,EAAE,CACA5B,CAAmB,EAA0B,CAAtB,CAAAA,CAAvB,CACI,CACE+B,IAAI,CAAEjD,KAAK,CAACoD,UADd,CAEE,KAAM3C,WAAW,CACf,EADe,CAEfS,CAFe,CAGfrB,aAHe,CAIfP,UAJe,CAKfc,eALe,CAFnB,CADJ,CAWI,CACE6C,IAAI,CAAEjD,KAAK,CAACqD,WADd,CAEEC,IAAI,CAAE,CAFR,CAGEC,EAAE,CAAE,EAHN,CA/CA,CAHV,CAwDEC,IAAI,GAxDN,CAyDEC,OAAO,GAzDT,CA0DElE,MAAM,CAAE,gBAACgD,CAAD,QAAgBhD,QAAM,CAACgD,CAAD,CAAOpB,CAAP,CAAtB,CA1DV,CA2DEzB,KAAK,CAAE,eAACgE,CAAD,QAAoBhE,OAAK,CAACgE,CAAD,CAASvC,CAAT,CAAqB,GAAIsB,KAAzB,CAAzB,CA3DT,CA4DEkB,QAAQ,CAAE,kBAACD,CAAD,CAAoB,IACtB1B,EAAW,CAAGzB,QAAQ,CAACY,CAAD,CAAaC,CAAb,IADA,CAEtBa,CAAU,CAAG1B,QAAQ,CAACmD,CAAD,CAAStC,CAAT,IAFC,CAGtBc,CAAU,CAAGF,CAAW,CAC3BG,GADgB,CACZ,SAACC,CAAD,QAAY9B,YAAW,CAAC0B,CAAD,CAAcC,CAAd,CAA0BG,CAA1B,CAAvB,CADY,EAEhBC,MAFgB,CAET,SAACC,CAAD,UAAkBA,CAAlB,CAFS,CAHS,CAO5B,GACEN,CAAW,CAACD,MAAZ,GAAuBG,CAAU,CAACH,MAAlC,EACA,CAACvC,OAAO,CACNE,MAAK,CAACuC,CAAU,CAACO,IAAX,CAAgB,GAAhB,CAAD,CAAuBR,CAAW,CAACQ,IAAZ,CAAiB,GAAjB,CAAvB,CAA8C,GAAIC,KAAlD,CADC,CAFV,CAKE,SACqBjC,YAAY,CAACkD,CAAD,CAASvC,CAAT,CAAqB,GAArB,IAAiC,CAChE,IADgE,CAEhE,IAFgE,CAGhE,IAHgE,CAAjC,CADjC,uBACOyB,CADP,MACWC,CADX,MACeC,CADf,MAcA,iBAPArB,CAAU,CAACK,OAOX,qBAPA,OAAAL,CAAU,CAAW,CACnBsB,IAAI,CAAErC,oBAAoB,CAAC,CAAD,CADP,CAEnBiB,WAAW,CAAE+B,CAFM,CAGnBd,EAAE,CAAFA,CAHmB,CAInBC,EAAE,CAAFA,CAJmB,CAKnBC,EAAE,CAAFA,CALmB,CAAX,CAOV,GACD,CAED,QACD,CA1FH,CAJgD,CAgGhD,CAAEpB,QAAQ,CAARA,CAAF,CAhGgD,CAxFA,CAwF1CkC,CAxF0C,GAwF1CA,GAxF0C,CAwF3BC,CAxF2B,GAwFrCC,QAxFqC,CAkMlD,MANA/D,UAAS,CAAC,UAAM,CACVc,CAAK,EAAIrB,OAAO,CAACqB,CAAD,CADN,EAEZgD,CAAc,CAACtE,OAAM,CAACsB,CAAD,CAAQM,CAAR,CAAP,CAEjB,CAJQ,CAIN,QAACN,CAAD,WAACA,CAAD,QAACA,CAAK,CAAEmC,OAAP,EAAD,CAJM,CAMT,CAAOY,CACR,CAnMM"}
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["addHours","addMinutes","addSeconds","format","isValid","isWithinInterval","parse","startOfDay","startOfHour","startOfMinute","useCallback","IMask","useIMask","getLabelHours","getLabelMinutes","getLabelSeconds","useMutableRef","getPartDate","getParts","getPartsDate","getTimeEnum","useStringValue","datePickerErrorTypes","usePicker","props","value","onChange","onError","multiplicityHours","multiplicityMinutes","multiplicitySeconds","formatProp","separator","maxDate","minDate","onChangeRef","valueRef","onErrorRef","onAccept","stringValue","maskRef","e","current","length","formatArray","valueArray","validArray","map","marker","filter","item","date","join","Date","start","end","HH","mm","ss","type","getTime","imaskProps","mask","pattern","blocks","MaskedEnum","MaskedRange","from","to","lazy","autofix","string","validate","handleClear","ref"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeTime/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport {\n addHours,\n addMinutes,\n addSeconds,\n format,\n isValid,\n isWithinInterval,\n parse,\n startOfDay,\n startOfHour,\n startOfMinute,\n} from 'date-fns';\nimport { MaskedDate } from 'imask';\nimport React, { useCallback } from 'react';\nimport { IMask, ReactMaskOpts, useIMask } from 'react-imask';\n\nimport {\n getLabelHours,\n getLabelMinutes,\n getLabelSeconds,\n} from '##/components/DateTime/helpers';\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n} from '##/components/TextField';\nimport { useMutableRef } from '##/hooks/useMutableRef';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport {\n getPartDate,\n getParts,\n getPartsDate,\n getTimeEnum,\n useStringValue,\n} from '../helpers';\nimport { datePickerErrorTypes, DatePickerPropOnError } from '../types';\n\ntype DatePickerFieldTypeTimePropOnChange = (\n value: Date | null,\n props: {\n e: Event;\n },\n) => void;\n\nexport type DatePickerFieldTypeTimeProps = PropsWithHTMLAttributes<\n {\n className?: string;\n value?: Date | null;\n onChange?: DatePickerFieldTypeTimePropOnChange;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: string;\n disabled?: boolean;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n autoFocus?: boolean;\n placeholder?: string;\n leftSide?: string | IconComponent;\n rightSide?: string | IconComponent;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n children?: never;\n format?: string;\n separator?: string;\n minDate?: Date;\n maxDate?: Date;\n focused?: boolean;\n multiplicitySeconds?: number;\n multiplicityMinutes?: number;\n multiplicityHours?: number;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n withClearButton?: boolean;\n },\n HTMLDivElement\n>;\n\ntype UsePickerProps = {\n value?: Date | null;\n onChange?: DatePickerFieldTypeTimePropOnChange;\n onError?: DatePickerPropOnError;\n multiplicityHours: number | undefined;\n multiplicitySeconds: number | undefined;\n multiplicityMinutes: number | undefined;\n format: string;\n separator: string;\n minDate: Date;\n maxDate: Date;\n};\n\nexport const usePicker = (props: UsePickerProps) => {\n const {\n value,\n onChange,\n onError,\n multiplicityHours,\n multiplicityMinutes,\n multiplicitySeconds,\n format: formatProp,\n separator,\n maxDate,\n minDate,\n } = props;\n const onChangeRef = useMutableRef(onChange);\n const valueRef = useMutableRef(value);\n const onErrorRef = useMutableRef(onError);\n\n const onAccept = useCallback(\n (stringValue: string, maskRef: unknown, e: InputEvent | undefined) => {\n const onChange = onChangeRef.current;\n const value = valueRef.current;\n\n if (\n value &&\n isValid(value) &&\n format(value, formatProp) === stringValue\n ) {\n return;\n }\n\n if (stringValue?.length !== formatProp.length && value && e && onChange) {\n onChange(null, { e });\n return;\n }\n\n if (onChange && e) {\n if (!stringValue) {\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(stringValue, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (formatArray.length === validArray.length) {\n const date = parse(\n valueArray.join(':'),\n formatArray.join(':'),\n value || new Date(),\n );\n\n if (!isWithinInterval(date, { start: minDate, end: maxDate })) {\n const [HH, mm, ss] = getPartsDate(\n stringValue,\n formatProp,\n ':',\n false,\n ['HH', 'mm', 'ss'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[0],\n stringValue,\n date,\n HH,\n mm,\n ss,\n });\n\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n onChange(date, { e });\n } else if (value) {\n onChange(null, { e });\n }\n }\n },\n [minDate?.getTime(), maxDate?.getTime(), formatProp, separator],\n );\n\n const imaskProps = useIMask<HTMLInputElement, ReactMaskOpts>(\n {\n mask: Date as unknown as MaskedDate,\n pattern: formatProp,\n blocks: {\n HH:\n multiplicityHours && multiplicityHours > 1\n ? {\n mask: IMask.MaskedEnum,\n enum: getTimeEnum(\n 24,\n multiplicityHours,\n startOfDay,\n addHours,\n getLabelHours,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 23,\n },\n mm:\n multiplicityMinutes && multiplicityMinutes > 1\n ? {\n mask: IMask.MaskedEnum,\n enum: getTimeEnum(\n 60,\n multiplicityMinutes,\n startOfHour,\n addMinutes,\n getLabelMinutes,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 59,\n },\n ss:\n multiplicitySeconds && multiplicitySeconds > 1\n ? {\n mask: IMask.MaskedEnum,\n enum: getTimeEnum(\n 60,\n multiplicitySeconds,\n startOfMinute,\n addSeconds,\n getLabelSeconds,\n ),\n }\n : {\n mask: IMask.MaskedRange,\n from: 0,\n to: 59,\n },\n },\n lazy: true,\n autofix: true,\n format: (date: Date) => format(date, formatProp),\n parse: (string: string) => parse(string, formatProp, new Date()),\n validate: (string: string) => {\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(string, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (\n formatArray.length === validArray.length &&\n !isValid(\n parse(valueArray.join(':'), formatArray.join(':'), new Date()),\n )\n ) {\n const [HH, mm, ss] = getPartsDate(string, formatProp, ':', false, [\n 'HH',\n 'mm',\n 'ss',\n ]);\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n HH,\n mm,\n ss,\n });\n return false;\n }\n\n return true;\n },\n },\n { onAccept },\n );\n\n const handleClear = useStringValue(\n value,\n formatProp,\n separator,\n onChangeRef,\n imaskProps,\n );\n\n return [imaskProps.ref, handleClear] as const;\n};\n"],"mappings":"iEACA,OACEA,QADF,CAEEC,UAFF,CAGEC,UAHF,CAIEC,MAAM,GAANA,QAJF,CAKEC,OALF,CAMEC,gBANF,CAOEC,KAAK,GAALA,OAPF,CAQEC,UARF,CASEC,WATF,CAUEC,aAVF,KAWO,UAXP,CAaA,OAAgBC,WAAhB,KAAmC,OAAnC,CACA,OAASC,KAAT,CAA+BC,QAA/B,KAA+C,aAA/C,CAEA,OACEC,aADF,CAEEC,eAFF,CAGEC,eAHF,8BAWA,OAASC,aAAT,oCAGA,OACEC,WADF,CAEEC,QAFF,CAGEC,YAHF,CAIEC,WAJF,CAKEC,cALF,kBAOA,OAASC,oBAAT,gBAiEA,MAAO,IAAMC,UAAS,CAAG,SAACC,CAAD,CAA2B,IAEhDC,EAFgD,CAY9CD,CAZ8C,CAEhDC,KAFgD,CAGhDC,CAHgD,CAY9CF,CAZ8C,CAGhDE,QAHgD,CAIhDC,CAJgD,CAY9CH,CAZ8C,CAIhDG,OAJgD,CAKhDC,CALgD,CAY9CJ,CAZ8C,CAKhDI,iBALgD,CAMhDC,CANgD,CAY9CL,CAZ8C,CAMhDK,mBANgD,CAOhDC,CAPgD,CAY9CN,CAZ8C,CAOhDM,mBAPgD,CAQxCC,CARwC,CAY9CP,CAZ8C,CAQhDrB,MARgD,CAShD6B,CATgD,CAY9CR,CAZ8C,CAShDQ,SATgD,CAUhDC,CAVgD,CAY9CT,CAZ8C,CAUhDS,OAVgD,CAWhDC,CAXgD,CAY9CV,CAZ8C,CAWhDU,OAXgD,CAa5CC,CAAW,CAAGnB,aAAa,CAACU,CAAD,CAbiB,CAc5CU,CAAQ,CAAGpB,aAAa,CAACS,CAAD,CAdoB,CAe5CY,CAAU,CAAGrB,aAAa,CAACW,CAAD,CAfkB,CAiB5CW,CAAQ,CAAG5B,WAAW,CAC1B,SAAC6B,CAAD,CAAsBC,CAAtB,CAAwCC,CAAxC,CAAsE,IAC9Df,EAAQ,CAAGS,CAAW,CAACO,OADuC,CAE9DjB,CAAK,CAAGW,CAAQ,CAACM,OAF6C,CAIpE,KACEjB,CAAK,EACLrB,OAAO,CAACqB,CAAD,CADP,EAEAtB,OAAM,CAACsB,CAAD,CAAQM,CAAR,CAAN,GAA8BQ,CAHhC,GAQA,GAAI,QAAAA,CAAW,WAAXA,CAAA,QAAAA,CAAW,CAAEI,MAAb,IAAwBZ,CAAU,CAACY,MAAnC,EAA6ClB,CAA7C,EAAsDgB,CAAtD,EAA2Df,CAA/D,CAEE,WADAA,EAAQ,CAAC,IAAD,CAAO,CAAEe,CAAC,CAADA,CAAF,CAAP,CACR,CAGF,GAAIf,CAAQ,EAAIe,CAAhB,CAAmB,CACjB,GAAI,CAACF,CAAL,CAIE,YAHId,CAGJ,EAFEC,CAAQ,CAAC,IAAD,CAAO,CAAEe,CAAC,CAADA,CAAF,CAAP,CAEV,EALe,GAQXG,EAAW,CAAG1B,QAAQ,CAACa,CAAD,CAAaC,CAAb,IARX,CASXa,CAAU,CAAG3B,QAAQ,CAACqB,CAAD,CAAcP,CAAd,IATV,CAUXc,CAAU,CAAGF,CAAW,CAC3BG,GADgB,CACZ,SAACC,CAAD,QAAY/B,YAAW,CAAC2B,CAAD,CAAcC,CAAd,CAA0BG,CAA1B,CAAvB,CADY,EAEhBC,MAFgB,CAET,SAACC,CAAD,UAAkBA,CAAlB,CAFS,CAVF,CAcjB,GAAIN,CAAW,CAACD,MAAZ,GAAuBG,CAAU,CAACH,MAAtC,CAA8C,CAC5C,GAAMQ,EAAI,CAAG7C,MAAK,CAChBuC,CAAU,CAACO,IAAX,CAAgB,GAAhB,CADgB,CAEhBR,CAAW,CAACQ,IAAZ,CAAiB,GAAjB,CAFgB,CAGhB3B,CAAK,EAAI,GAAI4B,KAHG,CAAlB,CAMA,GAAI,CAAChD,gBAAgB,CAAC8C,CAAD,CAAO,CAAEG,KAAK,CAAEpB,CAAT,CAAkBqB,GAAG,CAAEtB,CAAvB,CAAP,CAArB,CAA+D,SACxCd,YAAY,CAC/BoB,CAD+B,CAE/BR,CAF+B,CAG/B,GAH+B,IAK/B,CAAC,IAAD,CAAO,IAAP,CAAa,IAAb,CAL+B,CAD4B,uBACtDyB,CADsD,MAClDC,CADkD,MAC9CC,CAD8C,MAqB7D,iBAZArB,CAAU,CAACK,OAYX,qBAZA,OAAAL,CAAU,CAAW,CACnBsB,IAAI,CAAErC,oBAAoB,CAAC,CAAD,CADP,CAEnBiB,WAAW,CAAXA,CAFmB,CAGnBY,IAAI,CAAJA,CAHmB,CAInBK,EAAE,CAAFA,CAJmB,CAKnBC,EAAE,CAAFA,CALmB,CAMnBC,EAAE,CAAFA,CANmB,CAAX,CAYV,MAHIjC,CAGJ,EAFEC,CAAQ,CAAC,IAAD,CAAO,CAAEe,CAAC,CAADA,CAAF,CAAP,CAEV,CACD,CACDf,CAAQ,CAACyB,CAAD,CAAO,CAAEV,CAAC,CAADA,CAAF,CAAP,CACT,CA/BD,IA+BWhB,EA/BX,EAgCEC,CAAQ,CAAC,IAAD,CAAO,CAAEe,CAAC,CAADA,CAAF,CAAP,CAEX,CA7DD,CA8DD,CAnEyB,CAoE1B,QAACP,CAAD,WAACA,CAAD,QAACA,CAAO,CAAE0B,OAAT,EAAD,QAAqB3B,CAArB,WAAqBA,CAArB,QAAqBA,CAAO,CAAE2B,OAAT,EAArB,CAAyC7B,CAAzC,CAAqDC,CAArD,CApE0B,CAjBsB,CAwF5C6B,CAAU,CAAGjD,QAAQ,CACzB,CACEkD,IAAI,CAAET,IADR,CAEEU,OAAO,CAAEhC,CAFX,CAGEiC,MAAM,CAAE,CACNR,EAAE,CACA5B,CAAiB,EAAwB,CAApB,CAAAA,CAArB,CACI,CACEkC,IAAI,CAAEnD,KAAK,CAACsD,UADd,CAEE,KAAM7C,WAAW,CACf,EADe,CAEfQ,CAFe,CAGfrB,UAHe,CAIfP,QAJe,CAKfa,aALe,CAFnB,CADJ,CAWI,CACEiD,IAAI,CAAEnD,KAAK,CAACuD,WADd,CAEEC,IAAI,CAAE,CAFR,CAGEC,EAAE,CAAE,EAHN,CAbA,CAkBNX,EAAE,CACA5B,CAAmB,EAA0B,CAAtB,CAAAA,CAAvB,CACI,CACEiC,IAAI,CAAEnD,KAAK,CAACsD,UADd,CAEE,KAAM7C,WAAW,CACf,EADe,CAEfS,CAFe,CAGfrB,WAHe,CAIfP,UAJe,CAKfa,eALe,CAFnB,CADJ,CAWI,CACEgD,IAAI,CAAEnD,KAAK,CAACuD,WADd,CAEEC,IAAI,CAAE,CAFR,CAGEC,EAAE,CAAE,EAHN,CA9BA,CAmCNV,EAAE,CACA5B,CAAmB,EAA0B,CAAtB,CAAAA,CAAvB,CACI,CACEgC,IAAI,CAAEnD,KAAK,CAACsD,UADd,CAEE,KAAM7C,WAAW,CACf,EADe,CAEfU,CAFe,CAGfrB,aAHe,CAIfP,UAJe,CAKfa,eALe,CAFnB,CADJ,CAWI,CACE+C,IAAI,CAAEnD,KAAK,CAACuD,WADd,CAEEC,IAAI,CAAE,CAFR,CAGEC,EAAE,CAAE,EAHN,CA/CA,CAHV,CAwDEC,IAAI,GAxDN,CAyDEC,OAAO,GAzDT,CA0DEnE,MAAM,CAAE,gBAACgD,CAAD,QAAgBhD,QAAM,CAACgD,CAAD,CAAOpB,CAAP,CAAtB,CA1DV,CA2DEzB,KAAK,CAAE,eAACiE,CAAD,QAAoBjE,OAAK,CAACiE,CAAD,CAASxC,CAAT,CAAqB,GAAIsB,KAAzB,CAAzB,CA3DT,CA4DEmB,QAAQ,CAAE,kBAACD,CAAD,CAAoB,IACtB3B,EAAW,CAAG1B,QAAQ,CAACa,CAAD,CAAaC,CAAb,IADA,CAEtBa,CAAU,CAAG3B,QAAQ,CAACqD,CAAD,CAASvC,CAAT,IAFC,CAGtBc,CAAU,CAAGF,CAAW,CAC3BG,GADgB,CACZ,SAACC,CAAD,QAAY/B,YAAW,CAAC2B,CAAD,CAAcC,CAAd,CAA0BG,CAA1B,CAAvB,CADY,EAEhBC,MAFgB,CAET,SAACC,CAAD,UAAkBA,CAAlB,CAFS,CAHS,CAO5B,GACEN,CAAW,CAACD,MAAZ,GAAuBG,CAAU,CAACH,MAAlC,EACA,CAACvC,OAAO,CACNE,MAAK,CAACuC,CAAU,CAACO,IAAX,CAAgB,GAAhB,CAAD,CAAuBR,CAAW,CAACQ,IAAZ,CAAiB,GAAjB,CAAvB,CAA8C,GAAIC,KAAlD,CADC,CAFV,CAKE,SACqBlC,YAAY,CAACoD,CAAD,CAASxC,CAAT,CAAqB,GAArB,IAAiC,CAChE,IADgE,CAEhE,IAFgE,CAGhE,IAHgE,CAAjC,CADjC,uBACOyB,CADP,MACWC,CADX,MACeC,CADf,MAcA,iBAPArB,CAAU,CAACK,OAOX,qBAPA,OAAAL,CAAU,CAAW,CACnBsB,IAAI,CAAErC,oBAAoB,CAAC,CAAD,CADP,CAEnBiB,WAAW,CAAEgC,CAFM,CAGnBf,EAAE,CAAFA,CAHmB,CAInBC,EAAE,CAAFA,CAJmB,CAKnBC,EAAE,CAAFA,CALmB,CAAX,CAOV,GACD,CAED,QACD,CA1FH,CADyB,CA6FzB,CAAEpB,QAAQ,CAARA,CAAF,CA7FyB,CAxFuB,CAwL5CmC,CAAW,CAAGpD,cAAc,CAChCI,CADgC,CAEhCM,CAFgC,CAGhCC,CAHgC,CAIhCG,CAJgC,CAKhC0B,CALgC,CAxLgB,CAgMlD,MAAO,CAACA,CAAU,CAACa,GAAZ,CAAiBD,CAAjB,CACR,CAjMM"}
|
package/__internal__/src/components/DatePicker/DatePickerFieldTypeYear/DatePickerFieldTypeYear.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["format","separator","placeholder","onChange","onError","minDate","maxDate","value","inputRef","defaultValue"];import React from"react";import{useForkRef}from"../../../hooks/useForkRef
|
|
1
|
+
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["format","separator","placeholder","onChange","onError","minDate","maxDate","value","inputRef","defaultValue"];import React from"react";import{TextField}from"../../TextField";import{useForkRef}from"../../../hooks/useForkRef";import{maxDateDefault,minDateDefault}from"../../../utils/date";import{datePickerPropFormatTypeYear,datePickerPropPlaceholderTypeYear,datePickerPropSeparatorDefault}from"../helpers";import{usePicker}from"./helpers";export var DatePickerFieldTypeYear=React.forwardRef(function(a,b){var c=a.format,d=void 0===c?datePickerPropFormatTypeYear:c,e=a.separator,f=void 0===e?datePickerPropSeparatorDefault:e,g=a.placeholder,h=void 0===g?datePickerPropPlaceholderTypeYear:g,i=a.onChange,j=a.onError,k=a.minDate,l=void 0===k?minDateDefault:k,m=a.maxDate,n=void 0===m?maxDateDefault:m,o=a.value,p=a.inputRef,q=a.defaultValue,r=_objectWithoutProperties(a,_excluded),s=usePicker({value:o,minDate:l,maxDate:n,onChange:i,onError:j,separator:f,format:d}),t=_slicedToArray(s,2),u=t[0],v=t[1];return React.createElement(TextField,Object.assign({},r,{type:"text",inputContainerRef:b,inputRef:useForkRef([u,p]),placeholder:h,onClear:v}))});
|
|
2
2
|
//# sourceMappingURL=DatePickerFieldTypeYear.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerFieldTypeYear.js","names":["React","useForkRef","maxDateDefault","minDateDefault","
|
|
1
|
+
{"version":3,"file":"DatePickerFieldTypeYear.js","names":["React","TextField","useForkRef","maxDateDefault","minDateDefault","datePickerPropFormatTypeYear","datePickerPropPlaceholderTypeYear","datePickerPropSeparatorDefault","usePicker","DatePickerFieldTypeYear","forwardRef","props","ref","format","separator","placeholder","onChange","onError","minDate","maxDate","value","inputRefProp","inputRef","defaultValue","otherProps","onClear"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeYear/DatePickerFieldTypeYear.tsx"],"sourcesContent":["import React from 'react';\n\nimport { TextField } from '##/components/TextField';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { maxDateDefault, minDateDefault } from '##/utils/date';\n\nimport {\n datePickerPropFormatTypeYear,\n datePickerPropPlaceholderTypeYear,\n datePickerPropSeparatorDefault,\n} from '../helpers';\nimport { DatePickerFieldTypeYearProps, usePicker } from './helpers';\n\nexport const DatePickerFieldTypeYear = React.forwardRef<\n HTMLDivElement,\n DatePickerFieldTypeYearProps\n>((props, ref) => {\n const {\n format = datePickerPropFormatTypeYear,\n separator = datePickerPropSeparatorDefault,\n placeholder = datePickerPropPlaceholderTypeYear,\n onChange,\n onError,\n minDate = minDateDefault,\n maxDate = maxDateDefault,\n value,\n inputRef: inputRefProp,\n defaultValue,\n ...otherProps\n } = props;\n\n const [inputRef, onClear] = usePicker({\n value,\n minDate,\n maxDate,\n onChange,\n onError,\n separator,\n format,\n });\n\n return (\n <TextField\n {...otherProps}\n type=\"text\"\n inputContainerRef={ref}\n inputRef={useForkRef([inputRef, inputRefProp])}\n placeholder={placeholder}\n onClear={onClear}\n />\n );\n});\n"],"mappings":"oRAAA,MAAOA,MAAP,KAAkB,OAAlB,CAEA,OAASC,SAAT,uBACA,OAASC,UAAT,iCACA,OAASC,cAAT,CAAyBC,cAAzB,2BAEA,OACEC,4BADF,CAEEC,iCAFF,CAGEC,8BAHF,kBAKA,OAAuCC,SAAvC,iBAEA,MAAO,IAAMC,wBAAuB,CAAGT,KAAK,CAACU,UAAN,CAGrC,SAACC,CAAD,CAAQC,CAAR,CAAgB,OAaZD,CAbY,CAEdE,MAFc,CAEdA,CAFc,YAELR,4BAFK,KAaZM,CAbY,CAGdG,SAHc,CAGdA,CAHc,YAGFP,8BAHE,KAaZI,CAbY,CAIdI,WAJc,CAIdA,CAJc,YAIAT,iCAJA,GAKdU,CALc,CAaZL,CAbY,CAKdK,QALc,CAMdC,CANc,CAaZN,CAbY,CAMdM,OANc,GAaZN,CAbY,CAOdO,OAPc,CAOdA,CAPc,YAOJd,cAPI,KAaZO,CAbY,CAQdQ,OARc,CAQdA,CARc,YAQJhB,cARI,GASdiB,CATc,CAaZT,CAbY,CASdS,KATc,CAUJC,CAVI,CAaZV,CAbY,CAUdW,QAVc,CAWdC,CAXc,CAaZZ,CAbY,CAWdY,YAXc,CAYXC,CAZW,0BAaZb,CAbY,cAeYH,SAAS,CAAC,CACpCY,KAAK,CAALA,CADoC,CAEpCF,OAAO,CAAPA,CAFoC,CAGpCC,OAAO,CAAPA,CAHoC,CAIpCH,QAAQ,CAARA,CAJoC,CAKpCC,OAAO,CAAPA,CALoC,CAMpCH,SAAS,CAATA,CANoC,CAOpCD,MAAM,CAANA,CAPoC,CAAD,CAfrB,uBAeTS,CAfS,MAeCG,CAfD,MAyBhB,MACE,qBAAC,SAAD,kBACMD,CADN,EAEE,IAAI,CAAC,MAFP,CAGE,iBAAiB,CAAEZ,CAHrB,CAIE,QAAQ,CAAEV,UAAU,CAAC,CAACoB,CAAD,CAAWD,CAAX,CAAD,CAJtB,CAKE,WAAW,CAAEN,CALf,CAME,OAAO,CAAEU,CANX,GASH,CAtCsC,CAAhC"}
|
|
@@ -51,5 +51,5 @@ declare type UsePickerProps = {
|
|
|
51
51
|
minDate: Date;
|
|
52
52
|
maxDate: Date;
|
|
53
53
|
};
|
|
54
|
-
export declare const usePicker: (props: UsePickerProps) => import("react").MutableRefObject<HTMLInputElement | null
|
|
54
|
+
export declare const usePicker: (props: UsePickerProps) => readonly [import("react").MutableRefObject<HTMLInputElement | null>, import("react").MouseEventHandler<HTMLButtonElement>];
|
|
55
55
|
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{format as _format,isValid,isWithinInterval,parse as _parse}from"date-fns";import{useCallback
|
|
1
|
+
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{format as _format,isValid,isWithinInterval,parse as _parse}from"date-fns";import{useCallback}from"react";import{IMask,useIMask}from"react-imask";import{useMutableRef}from"../../../hooks/useMutableRef";import{datePickerPropSeparatorDefault,getPartDate,getParts,getPartsDate,useStringValue}from"../helpers";import{datePickerErrorTypes}from"../types";export var usePicker=function(a){var b=a.value,c=a.onChange,d=a.onError,f=a.format,g=a.separator,h=a.maxDate,i=a.minDate,j=useMutableRef(c),k=useMutableRef(b),l=useMutableRef(d),m=useCallback(function(a,b,c){var d=j.current,e=k.current;if(!(e&&isValid(e)&&_format(e,f)===a)){if((null===a||void 0===a?void 0:a.length)!==f.length&&e&&c&&d)return void d(null,{e:c});if(d&&c){if(!a)return void(e&&d(null,{e:c}));var m=getParts(f,g,!1),n=getParts(a,g,!1),o=m.map(function(a){return getPartDate(m,n,a)}).filter(function(a){return!!a});if(m.length===o.length){var t=_parse(n.join(datePickerPropSeparatorDefault),m.join(datePickerPropSeparatorDefault),new Date);if(!isWithinInterval(t,{start:i,end:h})){var p,q=getPartsDate(a,f,g,!1,["yyyy"]),r=_slicedToArray(q,1),s=r[0];return null===(p=l.current)||void 0===p?void 0:p.call(l,{type:datePickerErrorTypes[0],stringValue:a,yyyy:s,date:t}),void(e&&d(null,{e:c}))}d(t,{e:c})}else e&&d(null,{e:c})}}},[null===i||void 0===i?void 0:i.getTime(),null===h||void 0===h?void 0:h.getTime(),f,g]),n=useIMask({mask:Date,pattern:f,blocks:{yyyy:{mask:IMask.MaskedRange,from:1,to:9999}},lazy:!0,autofix:!0,format:function format(a){return _format(a,f)},parse:function parse(a){return _parse(a,f,new Date)},validate:function validate(a){var b=getParts(f,g,!1),c=getParts(a,g,!1),d=b.map(function(a){return getPartDate(b,c,a)}).filter(function(a){return!!a});if(b.length===d.length&&!isValid(_parse(c.join(datePickerPropSeparatorDefault),b.join(datePickerPropSeparatorDefault),new Date))){var e,h=getPartsDate(a,f,g,!1,["yyyy"]),i=_slicedToArray(h,1),j=i[0];return null===(e=l.current)||void 0===e?void 0:e.call(l,{type:datePickerErrorTypes[1],stringValue:a,yyyy:j}),!1}return!0}},{onAccept:m}),o=useStringValue(b,f,g,j,n);return[n.ref,o]};
|
|
2
2
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":["format","isValid","isWithinInterval","parse","useCallback","useEffect","IMask","useIMask","useMutableRef","datePickerPropSeparatorDefault","getPartDate","getParts","getPartsDate","datePickerErrorTypes","usePicker","props","value","onChange","onError","formatProp","separator","maxDate","minDate","onChangeRef","valueRef","onErrorRef","onAccept","stringValue","maskRef","e","current","length","formatArray","valueArray","validArray","map","marker","filter","item","date","join","Date","start","end","yyyy","type","getTime","mask","pattern","blocks","MaskedRange","from","to","lazy","autofix","string","validate","ref","setStringValue","setValue"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeYear/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport { format, isValid, isWithinInterval, parse } from 'date-fns';\nimport { MaskedDate } from 'imask';\nimport { useCallback, useEffect } from 'react';\nimport { IMask, ReactMaskOpts, useIMask } from 'react-imask';\n\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n} from '##/components/TextField';\nimport { useMutableRef } from '##/hooks/useMutableRef';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport {\n datePickerPropSeparatorDefault,\n getPartDate,\n getParts,\n getPartsDate,\n} from '../helpers';\nimport { datePickerErrorTypes, DatePickerPropOnError } from '../types';\n\ntype DatePickerFieldTypeYearPropOnChange = (\n value: Date | null,\n props: {\n e: Event;\n },\n) => void;\n\nexport type DatePickerFieldTypeYearProps = PropsWithHTMLAttributes<\n {\n className?: string;\n value?: Date | null;\n onChange?: DatePickerFieldTypeYearPropOnChange;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: string;\n disabled?: boolean;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n autoFocus?: boolean;\n placeholder?: string;\n leftSide?: string | IconComponent;\n rightSide?: string | IconComponent;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n children?: never;\n format?: string;\n separator?: string;\n minDate?: Date;\n maxDate?: Date;\n focused?: boolean;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n withClearButton?: boolean;\n },\n HTMLDivElement\n>;\n\ntype UsePickerProps = {\n value?: Date | null;\n onChange?: DatePickerFieldTypeYearPropOnChange;\n onError?: DatePickerPropOnError;\n format: string;\n separator: string;\n minDate: Date;\n maxDate: Date;\n};\n\nexport const usePicker = (props: UsePickerProps) => {\n const {\n value,\n onChange,\n onError,\n format: formatProp,\n separator,\n maxDate,\n minDate,\n } = props;\n const onChangeRef = useMutableRef(onChange);\n const valueRef = useMutableRef(value);\n const onErrorRef = useMutableRef(onError);\n\n const onAccept = useCallback(\n (stringValue: string, maskRef: unknown, e: InputEvent | undefined) => {\n const onChange = onChangeRef.current;\n const value = valueRef.current;\n\n if (\n value &&\n isValid(value) &&\n format(value, formatProp) === stringValue\n ) {\n return;\n }\n\n if (stringValue?.length !== formatProp.length && value && e && onChange) {\n onChange(null, { e });\n return;\n }\n\n if (onChange && e) {\n if (!stringValue) {\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(stringValue, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (formatArray.length === validArray.length) {\n const date = parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n );\n if (!isWithinInterval(date, { start: minDate, end: maxDate })) {\n const [yyyy] = getPartsDate(\n stringValue,\n formatProp,\n separator,\n false,\n ['yyyy'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[0],\n stringValue,\n yyyy,\n date,\n });\n\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n onChange(date, { e });\n } else if (value) {\n onChange(null, { e });\n }\n }\n },\n [minDate?.getTime(), maxDate?.getTime(), formatProp, separator],\n );\n\n const { ref, setValue: setStringValue } = useIMask<\n HTMLInputElement,\n ReactMaskOpts\n >(\n {\n mask: Date as unknown as MaskedDate,\n pattern: formatProp,\n blocks: {\n yyyy: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 9999,\n },\n },\n lazy: true,\n autofix: true,\n format: (date: Date) => format(date, formatProp),\n parse: (string: string) => parse(string, formatProp, new Date()),\n validate: (string: string) => {\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(string, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (\n formatArray.length === validArray.length &&\n !isValid(\n parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n ),\n )\n ) {\n const [yyyy] = getPartsDate(string, formatProp, separator, false, [\n 'yyyy',\n ]);\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n yyyy,\n });\n return false;\n }\n\n return true;\n },\n },\n { onAccept },\n );\n\n // при изменении value, нужно обновить stringValue\n useEffect(() => {\n if (value && isValid(value)) {\n setStringValue(format(value, formatProp));\n }\n }, [value?.getTime()]);\n\n return ref;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["format","isValid","isWithinInterval","parse","useCallback","IMask","useIMask","useMutableRef","datePickerPropSeparatorDefault","getPartDate","getParts","getPartsDate","useStringValue","datePickerErrorTypes","usePicker","props","value","onChange","onError","formatProp","separator","maxDate","minDate","onChangeRef","valueRef","onErrorRef","onAccept","stringValue","maskRef","e","current","length","formatArray","valueArray","validArray","map","marker","filter","item","date","join","Date","start","end","yyyy","type","getTime","imaskProps","mask","pattern","blocks","MaskedRange","from","to","lazy","autofix","string","validate","handleClear","ref"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeYear/helpers.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport { format, isValid, isWithinInterval, parse } from 'date-fns';\nimport { MaskedDate } from 'imask';\nimport { useCallback } from 'react';\nimport { IMask, ReactMaskOpts, useIMask } from 'react-imask';\n\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n} from '##/components/TextField';\nimport { useMutableRef } from '##/hooks/useMutableRef';\nimport { PropsWithHTMLAttributes } from '##/utils/types/PropsWithHTMLAttributes';\n\nimport {\n datePickerPropSeparatorDefault,\n getPartDate,\n getParts,\n getPartsDate,\n useStringValue,\n} from '../helpers';\nimport { datePickerErrorTypes, DatePickerPropOnError } from '../types';\n\ntype DatePickerFieldTypeYearPropOnChange = (\n value: Date | null,\n props: {\n e: Event;\n },\n) => void;\n\nexport type DatePickerFieldTypeYearProps = PropsWithHTMLAttributes<\n {\n className?: string;\n value?: Date | null;\n onChange?: DatePickerFieldTypeYearPropOnChange;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: string;\n disabled?: boolean;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n autoFocus?: boolean;\n placeholder?: string;\n leftSide?: string | IconComponent;\n rightSide?: string | IconComponent;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: React.Ref<HTMLTextAreaElement | HTMLInputElement>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n children?: never;\n format?: string;\n separator?: string;\n minDate?: Date;\n maxDate?: Date;\n focused?: boolean;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n withClearButton?: boolean;\n },\n HTMLDivElement\n>;\n\ntype UsePickerProps = {\n value?: Date | null;\n onChange?: DatePickerFieldTypeYearPropOnChange;\n onError?: DatePickerPropOnError;\n format: string;\n separator: string;\n minDate: Date;\n maxDate: Date;\n};\n\nexport const usePicker = (props: UsePickerProps) => {\n const {\n value,\n onChange,\n onError,\n format: formatProp,\n separator,\n maxDate,\n minDate,\n } = props;\n const onChangeRef = useMutableRef(onChange);\n const valueRef = useMutableRef(value);\n const onErrorRef = useMutableRef(onError);\n\n const onAccept = useCallback(\n (stringValue: string, maskRef: unknown, e: InputEvent | undefined) => {\n const onChange = onChangeRef.current;\n const value = valueRef.current;\n\n if (\n value &&\n isValid(value) &&\n format(value, formatProp) === stringValue\n ) {\n return;\n }\n\n if (stringValue?.length !== formatProp.length && value && e && onChange) {\n onChange(null, { e });\n return;\n }\n\n if (onChange && e) {\n if (!stringValue) {\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(stringValue, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (formatArray.length === validArray.length) {\n const date = parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n );\n if (!isWithinInterval(date, { start: minDate, end: maxDate })) {\n const [yyyy] = getPartsDate(\n stringValue,\n formatProp,\n separator,\n false,\n ['yyyy'],\n );\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[0],\n stringValue,\n yyyy,\n date,\n });\n\n if (value) {\n onChange(null, { e });\n }\n return;\n }\n onChange(date, { e });\n } else if (value) {\n onChange(null, { e });\n }\n }\n },\n [minDate?.getTime(), maxDate?.getTime(), formatProp, separator],\n );\n\n const imaskProps = useIMask<HTMLInputElement, ReactMaskOpts>(\n {\n mask: Date as unknown as MaskedDate,\n pattern: formatProp,\n blocks: {\n yyyy: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 9999,\n },\n },\n lazy: true,\n autofix: true,\n format: (date: Date) => format(date, formatProp),\n parse: (string: string) => parse(string, formatProp, new Date()),\n validate: (string: string) => {\n const formatArray = getParts(formatProp, separator, false);\n const valueArray = getParts(string, separator, false);\n const validArray = formatArray\n .map((marker) => getPartDate(formatArray, valueArray, marker))\n .filter((item) => Boolean(item));\n\n if (\n formatArray.length === validArray.length &&\n !isValid(\n parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n ),\n )\n ) {\n const [yyyy] = getPartsDate(string, formatProp, separator, false, [\n 'yyyy',\n ]);\n\n onErrorRef.current?.({\n type: datePickerErrorTypes[1],\n stringValue: string,\n yyyy,\n });\n return false;\n }\n\n return true;\n },\n },\n { onAccept },\n );\n\n const handleClear = useStringValue(\n value,\n formatProp,\n separator,\n onChangeRef,\n imaskProps,\n );\n\n return [imaskProps.ref, handleClear] as const;\n};\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","form","startFieldInputRef","startFieldLeftSide","startFieldRightSide","endFieldInputRef","endFieldLeftSide","endFieldRightSide","value","onChange","onError","startFieldName","endFieldName","disabled","size","id","view","status","autoFocus","placeholder","readOnly","required","tabIndex","ariaLabel","iconSize","format","separator","minDate","maxDate","startFieldOnClick","startFieldOnBlur","startFieldOnFocus","endFieldOnClick","endFieldOnBlur","endFieldOnFocus","startFieldRef","endFieldRef","startFocused","endFocused","label","labelIcon","labelPosition","caption","withClearButton"];import React,{forwardRef}from"react";import{FieldCaption}from"../../FieldCaption
|
|
1
|
+
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","form","startFieldInputRef","startFieldLeftSide","startFieldRightSide","endFieldInputRef","endFieldLeftSide","endFieldRightSide","value","onChange","onError","startFieldName","endFieldName","disabled","size","id","view","status","autoFocus","placeholder","readOnly","required","tabIndex","ariaLabel","iconSize","format","separator","minDate","maxDate","startFieldOnClick","startFieldOnBlur","startFieldOnFocus","endFieldOnClick","endFieldOnBlur","endFieldOnFocus","startFieldRef","endFieldRef","startFocused","endFocused","label","labelIcon","labelPosition","caption","withClearButton"];import React,{forwardRef}from"react";import{FieldCaption}from"../../FieldCaption";import{FieldLabel}from"../../FieldLabel";import{DatePickerFieldTypeYear}from"../DatePickerFieldTypeYear/DatePickerFieldTypeYear";import{cnDatePickerMixRangeField}from"../DatePickerMixRangeField/DatePickerMixRangeField";import{getChangeFnRange}from"../getChangeFnRange";import{getFormForEnd,getFormForStart}from"../helpers";export var DatePickerFieldTypeYearRange=forwardRef(function(a,b){var c=a.className,d=a.form,e=void 0===d?"default":d,f=a.startFieldInputRef,g=a.startFieldLeftSide,h=a.startFieldRightSide,i=a.endFieldInputRef,j=a.endFieldLeftSide,k=a.endFieldRightSide,l=a.value,m=void 0===l?[]:l,n=a.onChange,o=a.onError,p=a.startFieldName,q=a.endFieldName,r=a.disabled,s=a.size,t=a.id,u=a.view,v=a.status,w=a.autoFocus,x=a.placeholder,y=a.readOnly,z=a.required,A=a.tabIndex,B=a.ariaLabel,C=a.iconSize,D=a.format,E=a.separator,F=a.minDate,G=a.maxDate,H=a.startFieldOnClick,I=a.startFieldOnBlur,J=a.startFieldOnFocus,K=a.endFieldOnClick,L=a.endFieldOnBlur,M=a.endFieldOnFocus,N=a.startFieldRef,O=a.endFieldRef,P=a.startFocused,Q=a.endFocused,R=a.label,S=a.labelIcon,T=a.labelPosition,U=a.caption,V=a.withClearButton,W=_objectWithoutProperties(a,_excluded),X={className:cnDatePickerMixRangeField("Field"),disabled:r,onError:o,size:s,view:u,status:v,autoFocus:w,placeholder:x,readOnly:y,required:z,tabIndex:A,ariaLabel:B,iconSize:C,format:D,separator:E,minDate:F,maxDate:G,withClearButton:V},Y=getChangeFnRange(n,o,m),Z=_slicedToArray(Y,2),$=Z[0],_=Z[1];return React.createElement("div",Object.assign({},W,{className:cnDatePickerMixRangeField({view:u,labelPosition:T,size:s},[c]),ref:b}),R&&React.createElement(FieldLabel,{icon:S,required:z,as:"label",htmlFor:t,className:cnDatePickerMixRangeField("Label",{labelPosition:T}),size:s},R),React.createElement("div",{className:cnDatePickerMixRangeField("Body")},React.createElement("div",{className:cnDatePickerMixRangeField("Fields")},React.createElement(DatePickerFieldTypeYear,Object.assign({},X,{id:t,inputRef:f,ref:N,leftSide:g,rightSide:h,form:getFormForStart(e),value:null===m||void 0===m?void 0:m[0],onClick:H,onChange:$,onFocus:J,onBlur:I,focused:P,name:p})),React.createElement(DatePickerFieldTypeYear,Object.assign({},X,{name:q,inputRef:i,ref:O,leftSide:j,rightSide:k,form:getFormForEnd(e),value:null===m||void 0===m?void 0:m[1],onClick:K,onChange:_,onFocus:M,onBlur:L,focused:Q}))),U&&React.createElement(FieldCaption,{className:cnDatePickerMixRangeField("Caption"),status:v},U)))});
|
|
2
2
|
//# sourceMappingURL=DatePickerFieldTypeYearRange.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerFieldTypeYearRange.js","names":["React","forwardRef","FieldCaption","FieldLabel","DatePickerFieldTypeYear","cnDatePickerMixRangeField","getChangeFnRange","getFormForEnd","getFormForStart","DatePickerFieldTypeYearRange","props","ref","className","form","startFieldInputRef","startFieldLeftSide","startFieldRightSide","endFieldInputRef","endFieldLeftSide","endFieldRightSide","value","onChange","onError","startFieldName","endFieldName","disabled","size","id","view","status","autoFocus","placeholder","readOnly","required","tabIndex","ariaLabel","iconSize","format","separator","minDate","maxDate","startFieldOnClick","startFieldOnBlur","startFieldOnFocus","endFieldOnClick","endFieldOnBlur","endFieldOnFocus","startFieldRef","endFieldRef","startFocused","endFocused","label","labelIcon","labelPosition","caption","withClearButton","otherProps","commonProps","handleStartDateChange","handleEndDateChange"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { FieldCaption } from '
|
|
1
|
+
{"version":3,"file":"DatePickerFieldTypeYearRange.js","names":["React","forwardRef","FieldCaption","FieldLabel","DatePickerFieldTypeYear","cnDatePickerMixRangeField","getChangeFnRange","getFormForEnd","getFormForStart","DatePickerFieldTypeYearRange","props","ref","className","form","startFieldInputRef","startFieldLeftSide","startFieldRightSide","endFieldInputRef","endFieldLeftSide","endFieldRightSide","value","onChange","onError","startFieldName","endFieldName","disabled","size","id","view","status","autoFocus","placeholder","readOnly","required","tabIndex","ariaLabel","iconSize","format","separator","minDate","maxDate","startFieldOnClick","startFieldOnBlur","startFieldOnFocus","endFieldOnClick","endFieldOnBlur","endFieldOnFocus","startFieldRef","endFieldRef","startFocused","endFocused","label","labelIcon","labelPosition","caption","withClearButton","otherProps","commonProps","handleStartDateChange","handleEndDateChange"],"sources":["../../../../../../src/components/DatePicker/DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { FieldCaption } from '##/components/FieldCaption';\nimport { FieldLabel } from '##/components/FieldLabel';\n\nimport { DatePickerFieldTypeYear } from '../DatePickerFieldTypeYear/DatePickerFieldTypeYear';\nimport { cnDatePickerMixRangeField } from '../DatePickerMixRangeField/DatePickerMixRangeField';\nimport { getChangeFnRange } from '../getChangeFnRange';\nimport { getFormForEnd, getFormForStart } from '../helpers';\nimport { DatePickerFieldTypeYearRangeProps } from './helpers';\n\nexport const DatePickerFieldTypeYearRange = forwardRef<\n HTMLDivElement,\n DatePickerFieldTypeYearRangeProps\n>((props, ref) => {\n const {\n className,\n form = 'default',\n startFieldInputRef,\n startFieldLeftSide,\n startFieldRightSide,\n endFieldInputRef,\n endFieldLeftSide,\n endFieldRightSide,\n value = [],\n onChange,\n onError,\n startFieldName,\n endFieldName,\n disabled,\n size,\n id,\n view,\n status,\n autoFocus,\n placeholder,\n readOnly,\n required,\n tabIndex,\n ariaLabel,\n iconSize,\n format,\n separator,\n minDate,\n maxDate,\n startFieldOnClick,\n startFieldOnBlur,\n startFieldOnFocus,\n endFieldOnClick,\n endFieldOnBlur,\n endFieldOnFocus,\n startFieldRef,\n endFieldRef,\n startFocused,\n endFocused,\n label,\n labelIcon,\n labelPosition,\n caption,\n withClearButton,\n ...otherProps\n } = props;\n\n const commonProps = {\n className: cnDatePickerMixRangeField('Field'),\n disabled,\n onError,\n size,\n view,\n status,\n autoFocus,\n placeholder,\n readOnly,\n required,\n tabIndex,\n ariaLabel,\n iconSize,\n format,\n separator,\n minDate,\n maxDate,\n withClearButton,\n };\n\n const [handleStartDateChange, handleEndDateChange] = getChangeFnRange(\n onChange,\n onError,\n value,\n );\n\n return (\n <div\n {...otherProps}\n className={cnDatePickerMixRangeField({ view, labelPosition, size }, [\n className,\n ])}\n ref={ref}\n >\n {label && (\n <FieldLabel\n icon={labelIcon}\n required={required}\n as=\"label\"\n htmlFor={id}\n className={cnDatePickerMixRangeField('Label', { labelPosition })}\n size={size}\n >\n {label}\n </FieldLabel>\n )}\n <div className={cnDatePickerMixRangeField('Body')}>\n <div className={cnDatePickerMixRangeField('Fields')}>\n <DatePickerFieldTypeYear\n {...commonProps}\n id={id}\n inputRef={startFieldInputRef}\n ref={startFieldRef}\n leftSide={startFieldLeftSide}\n rightSide={startFieldRightSide}\n form={getFormForStart(form)}\n value={value?.[0]}\n onClick={startFieldOnClick}\n onChange={handleStartDateChange}\n onFocus={startFieldOnFocus}\n onBlur={startFieldOnBlur}\n focused={startFocused}\n name={startFieldName}\n />\n <DatePickerFieldTypeYear\n {...commonProps}\n name={endFieldName}\n inputRef={endFieldInputRef}\n ref={endFieldRef}\n leftSide={endFieldLeftSide}\n rightSide={endFieldRightSide}\n form={getFormForEnd(form)}\n value={value?.[1]}\n onClick={endFieldOnClick}\n onChange={handleEndDateChange}\n onFocus={endFieldOnFocus}\n onBlur={endFieldOnBlur}\n focused={endFocused}\n />\n </div>\n {caption && (\n <FieldCaption\n className={cnDatePickerMixRangeField('Caption')}\n status={status}\n >\n {caption}\n </FieldCaption>\n )}\n </div>\n </div>\n );\n});\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["events","dateTimeView","locale","dropdownClassName","dropdownForm","currentVisibleDate","onChangeCurrentVisibleDate","renderAdditionalControls","onDropdownOpen","dropdownOpen","ignoreOutsideClicksRefs"];import addMonths from"date-fns/addMonths";import startOfMonth from"date-fns/startOfMonth";import React,{forwardRef,useEffect,useRef}from"react";import{useClickOutside}from"../../../hooks/useClickOutside/
|
|
1
|
+
import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["events","dateTimeView","locale","dropdownClassName","dropdownForm","currentVisibleDate","onChangeCurrentVisibleDate","renderAdditionalControls","onDropdownOpen","dropdownOpen","ignoreOutsideClicksRefs","disabled","inputRef"];import addMonths from"date-fns/addMonths";import startOfMonth from"date-fns/startOfMonth";import React,{forwardRef,useEffect,useRef}from"react";import{useClickOutside}from"../../../hooks/useClickOutside";import{useForkRef}from"../../../hooks/useForkRef";import{setRef}from"../../../utils/setRef";import{DatePickerDropdown}from"../DatePickerDropdown/DatePickerDropdown";import{DatePickerFieldTypeDate}from"../DatePickerFieldTypeDate/DatePickerFieldTypeDate";import{getDropdownZIndex}from"../helpers";import{datePickerPropDateTimeViewDefault}from"../types";import{useCalendarVisible}from"../useCalendarVisible";import{useCurrentVisibleDate}from"../useCurrentVisibleDate";export var DatePickerTypeDate=forwardRef(function(a,b){var c=a.events,d=a.dateTimeView,e=void 0===d?datePickerPropDateTimeViewDefault:d,f=a.locale,g=a.dropdownClassName,h=a.dropdownForm,i=a.currentVisibleDate,j=a.onChangeCurrentVisibleDate,k=a.renderAdditionalControls,l=a.onDropdownOpen,m=a.dropdownOpen,n=a.ignoreOutsideClicksRefs,o=a.disabled,p=a.inputRef,q=_objectWithoutProperties(a,_excluded),r=useRef(null),s=useRef(null),t=useRef(null),u=useCalendarVisible({dropdownOpen:m,onDropdownOpen:l,disabled:o,startRef:t}),v=_slicedToArray(u,2),w=v[0],x=v[1],y=useCurrentVisibleDate({currentVisibleDate:i,maxDate:a.maxDate,minDate:a.minDate,value:a.value,startOfUnit:startOfMonth,onChangeCurrentVisibleDate:j,calendarVisible:w}),z=_slicedToArray(y,2),A=z[0],B=z[1];return useEffect(function(){b&&setRef(b,r.current)},[b,r]),useEffect(function(){if(a.value&&"classic"===e&&A){var b=startOfMonth(a.value);return void(b.getTime()!==A.getTime()&&B(b))}if(a.value&&"classic"!==e&&A){var c=startOfMonth(a.value);c.getTime()!==A.getTime()&&c.getTime()!==addMonths(A,1).getTime()&&B(c)}},[a.value]),useClickOutside({isActive:w,ignoreClicksInsideRefs:[r,s].concat(_toConsumableArray(null!==n&&void 0!==n?n:[])),handler:x.off}),React.createElement(React.Fragment,null,React.createElement(DatePickerFieldTypeDate,Object.assign({},q,{disabled:o,ref:r,inputRef:useForkRef([t,p]),onClick:x.on})),React.createElement(DatePickerDropdown,{ref:s,anchorRef:r,isOpen:w,value:a.value||void 0,type:"date",view:e,events:c,locale:f,minDate:a.minDate,className:g,maxDate:a.maxDate,currentVisibleDate:A,form:h,onChange:function onChange(){for(var b,c=arguments.length,d=Array(c),e=0;e<c;e++)d[e]=arguments[e];null===(b=a.onChange)||void 0===b?void 0:b.call.apply(b,[a].concat(d)),x.off()},renderAdditionalControls:k,zIndex:getDropdownZIndex(a.style),onChangeCurrentVisibleDate:B}))});
|
|
2
2
|
//# sourceMappingURL=DatePickerTypeDate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerTypeDate.js","names":["addMonths","startOfMonth","React","forwardRef","useEffect","useRef","useClickOutside","setRef","DatePickerDropdown","DatePickerFieldTypeDate","getDropdownZIndex","datePickerPropDateTimeViewDefault","useCalendarVisible","useCurrentVisibleDate","DatePickerTypeDate","props","ref","events","dateTimeView","locale","dropdownClassName","dropdownForm","currentVisibleDateProp","currentVisibleDate","onChangeCurrentVisibleDate","renderAdditionalControls","onDropdownOpen","dropdownOpen","ignoreOutsideClicksRefs","otherProps","fieldRef","calendarRef","
|
|
1
|
+
{"version":3,"file":"DatePickerTypeDate.js","names":["addMonths","startOfMonth","React","forwardRef","useEffect","useRef","useClickOutside","useForkRef","setRef","DatePickerDropdown","DatePickerFieldTypeDate","getDropdownZIndex","datePickerPropDateTimeViewDefault","useCalendarVisible","useCurrentVisibleDate","DatePickerTypeDate","props","ref","events","dateTimeView","locale","dropdownClassName","dropdownForm","currentVisibleDateProp","currentVisibleDate","onChangeCurrentVisibleDate","renderAdditionalControls","onDropdownOpen","dropdownOpen","ignoreOutsideClicksRefs","disabled","inputRefProp","inputRef","otherProps","fieldRef","calendarRef","startRef","calendarVisible","setCalendarVisible","maxDate","minDate","value","startOfUnit","setCurrentVisibleDate","current","newVisibleDate","getTime","isActive","ignoreClicksInsideRefs","handler","off","on","args","onChange","style"],"sources":["../../../../../../src/components/DatePicker/DatePickerTypeDate/DatePickerTypeDate.tsx"],"sourcesContent":["import addMonths from 'date-fns/addMonths';\nimport startOfMonth from 'date-fns/startOfMonth';\nimport React, { forwardRef, useEffect, useRef } from 'react';\n\nimport { useClickOutside } from '##/hooks/useClickOutside';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { setRef } from '##/utils/setRef';\n\nimport { DatePickerDropdown } from '../DatePickerDropdown/DatePickerDropdown';\nimport { DatePickerFieldTypeDate } from '../DatePickerFieldTypeDate/DatePickerFieldTypeDate';\nimport { getDropdownZIndex } from '../helpers';\nimport {\n datePickerPropDateTimeViewDefault,\n DatePickerTypeComponent,\n} from '../types';\nimport { useCalendarVisible } from '../useCalendarVisible';\nimport { useCurrentVisibleDate } from '../useCurrentVisibleDate';\n\nexport const DatePickerTypeDate: DatePickerTypeComponent<'date'> = forwardRef(\n (props, ref) => {\n const {\n events,\n dateTimeView = datePickerPropDateTimeViewDefault,\n locale,\n dropdownClassName,\n dropdownForm,\n currentVisibleDate: currentVisibleDateProp,\n onChangeCurrentVisibleDate,\n renderAdditionalControls,\n onDropdownOpen,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n disabled,\n inputRef: inputRefProp,\n ...otherProps\n } = props;\n\n const fieldRef = useRef<HTMLDivElement>(null);\n const calendarRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n\n const [calendarVisible, setCalendarVisible] = useCalendarVisible({\n dropdownOpen,\n onDropdownOpen,\n disabled,\n startRef: inputRef,\n });\n\n const [currentVisibleDate, setCurrentVisibleDate] = useCurrentVisibleDate({\n currentVisibleDate: currentVisibleDateProp,\n maxDate: props.maxDate,\n minDate: props.minDate,\n value: props.value,\n startOfUnit: startOfMonth,\n onChangeCurrentVisibleDate,\n calendarVisible,\n });\n\n useEffect(() => {\n if (ref) {\n setRef(ref, fieldRef.current);\n }\n }, [ref, fieldRef]);\n\n useEffect(() => {\n if (props.value && dateTimeView === 'classic' && currentVisibleDate) {\n const newVisibleDate = startOfMonth(props.value);\n if (newVisibleDate.getTime() !== currentVisibleDate.getTime()) {\n setCurrentVisibleDate(newVisibleDate);\n }\n return;\n }\n if (props.value && dateTimeView !== 'classic' && currentVisibleDate) {\n const newVisibleDate = startOfMonth(props.value);\n if (\n newVisibleDate.getTime() !== currentVisibleDate.getTime() &&\n newVisibleDate.getTime() !==\n addMonths(currentVisibleDate, 1).getTime()\n ) {\n setCurrentVisibleDate(newVisibleDate);\n }\n }\n }, [props.value]);\n\n useClickOutside({\n isActive: calendarVisible,\n ignoreClicksInsideRefs: [\n fieldRef,\n calendarRef,\n ...(ignoreOutsideClicksRefs ?? []),\n ],\n handler: setCalendarVisible.off,\n });\n\n return (\n <>\n <DatePickerFieldTypeDate\n {...otherProps}\n disabled={disabled}\n ref={fieldRef}\n inputRef={useForkRef([inputRef, inputRefProp])}\n onClick={setCalendarVisible.on}\n />\n <DatePickerDropdown\n ref={calendarRef}\n anchorRef={fieldRef}\n isOpen={calendarVisible}\n value={props.value || undefined}\n type=\"date\"\n view={dateTimeView}\n events={events}\n locale={locale}\n minDate={props.minDate}\n className={dropdownClassName}\n maxDate={props.maxDate}\n currentVisibleDate={currentVisibleDate}\n form={dropdownForm}\n onChange={(...args) => {\n props.onChange?.(...args);\n setCalendarVisible.off();\n }}\n renderAdditionalControls={renderAdditionalControls}\n zIndex={getDropdownZIndex(props.style)}\n onChangeCurrentVisibleDate={setCurrentVisibleDate}\n />\n </>\n );\n },\n);\n"],"mappings":"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"}
|
package/__internal__/src/components/DatePicker/DatePickerTypeDateRange/DatePickerTypeDateRange.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["events","dateTimeView","locale","dropdownForm","onFocus","onBlur","leftSide","rightSide","currentVisibleDate","onChangeCurrentVisibleDate","renderAdditionalControls","inputRef","dropdownClassName","name","onDropdownOpen","dropdownOpen","ignoreOutsideClicksRefs"];import addMonths from"date-fns/addMonths";import startOfMonth from"date-fns/startOfMonth";import React,{forwardRef,useCallback,useEffect,useRef,useState}from"react";import{useClickOutside}from"../../../hooks/useClickOutside
|
|
1
|
+
import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["events","dateTimeView","locale","dropdownForm","onFocus","onBlur","leftSide","rightSide","currentVisibleDate","onChangeCurrentVisibleDate","renderAdditionalControls","inputRef","dropdownClassName","name","onDropdownOpen","dropdownOpen","ignoreOutsideClicksRefs","disabled"];import addMonths from"date-fns/addMonths";import startOfMonth from"date-fns/startOfMonth";import React,{forwardRef,useCallback,useEffect,useRef,useState}from"react";import{useClickOutside}from"../../../hooks/useClickOutside";import{useForkRef}from"../../../hooks/useForkRef";import{DatePickerDropdown}from"../DatePickerDropdown/DatePickerDropdown";import{DatePickerFieldTypeDateRange}from"../DatePickerFieldTypeDateRange/DatePickerFieldTypeDateRange";import{getDropdownZIndex,getFieldName,normalizeRangeValue}from"../helpers";import{datePickerPropDateTimeViewDefault}from"../types";import{useCalendarVisible}from"../useCalendarVisible";import{useCurrentVisibleDate}from"../useCurrentVisibleDate";export var DatePickerTypeDateRange=forwardRef(function(a,b){var c,d,e,f,g=a.events,h=a.dateTimeView,i=void 0===h?datePickerPropDateTimeViewDefault:h,j=a.locale,k=a.dropdownForm,l=a.onFocus,m=a.onBlur,n=a.leftSide,o=a.rightSide,p=a.currentVisibleDate,q=a.onChangeCurrentVisibleDate,r=a.renderAdditionalControls,s=a.inputRef,t=a.dropdownClassName,u=a.name,v=a.onDropdownOpen,w=a.dropdownOpen,x=a.ignoreOutsideClicksRefs,y=a.disabled,z=_objectWithoutProperties(a,_excluded),A=useRef(null),B=useRef(null),C=useRef(null),D=useRef(null),E=useRef(null),F=useState(!1),G=_slicedToArray(F,2),H=G[0],I=G[1],J="start"===H,K="end"===H,L=useCalendarVisible({dropdownOpen:w,onDropdownOpen:v,disabled:y,startRef:C,endRef:D}),M=_slicedToArray(L,2),N=M[0],O=M[1],P=useCurrentVisibleDate({currentVisibleDate:p,maxDate:a.maxDate,minDate:a.minDate,value:a.value,startOfUnit:startOfMonth,onChangeCurrentVisibleDate:q,calendarVisible:N}),Q=_slicedToArray(P,2),R=Q[0],S=Q[1];return useEffect(function(){var b,c;if(null!==(b=a.value)&&void 0!==b&&b[0]&&"classic"===i&&J){var d=startOfMonth(a.value[0]);return void(d.getTime()!==(null===R||void 0===R?void 0:R.getTime())&&S(d))}if(null!==(c=a.value)&&void 0!==c&&c[0]&&"classic"!==i&&J){var e=startOfMonth(a.value[0]);e.getTime()!==(null===R||void 0===R?void 0:R.getTime())&&e.getTime()!==(R&&addMonths(R,1).getTime())&&S(e)}},[null===(c=a.value)||void 0===c||null===(d=c[0])||void 0===d?void 0:d.getTime(),N,J]),useEffect(function(){var b,c;if(null!==(b=a.value)&&void 0!==b&&b[1]&&"classic"===i&&K){var d=startOfMonth(a.value[1]);return void(d.getTime()!==(null===R||void 0===R?void 0:R.getTime())&&S(d))}if(null!==(c=a.value)&&void 0!==c&&c[1]&&"classic"!==i&&K){var e=startOfMonth(a.value[1]);e.getTime()!==(null===R||void 0===R?void 0:R.getTime())&&e.getTime()!==(R&&addMonths(R,1).getTime())&&S(addMonths(e,-1))}},[null===(e=a.value)||void 0===e||null===(f=e[1])||void 0===f?void 0:f.getTime(),N,K]),useClickOutside({isActive:N,ignoreClicksInsideRefs:[A,B,E].concat(_toConsumableArray(null!==x&&void 0!==x?x:[])),handler:useCallback(function(){I(!1),O.off()},[])}),React.createElement(React.Fragment,null,React.createElement(DatePickerFieldTypeDateRange,Object.assign({},z,{ref:b,startFieldRef:A,endFieldRef:B,startFieldInputRef:useForkRef([C,null===s||void 0===s?void 0:s[0]]),endFieldInputRef:useForkRef([D,null===s||void 0===s?void 0:s[1]]),startFieldOnFocus:function startFieldOnFocusHandler(a){var b;I("start"),Array.isArray(l)?null===(b=l[0])||void 0===b?void 0:b.call(l,a):null===l||void 0===l?void 0:l(a)},endFieldOnFocus:function endFieldOnFocusHandler(a){var b;I("end"),Array.isArray(l)?null===(b=l[1])||void 0===b?void 0:b.call(l,a):null===l||void 0===l?void 0:l(a)},startFieldLeftSide:Array.isArray(n)?null===n||void 0===n?void 0:n[0]:n,startFieldRightSide:Array.isArray(o)?null===o||void 0===o?void 0:o[0]:void 0,endFieldLeftSide:Array.isArray(n)?null===n||void 0===n?void 0:n[1]:void 0,endFieldRightSide:Array.isArray(o)?null===o||void 0===o?void 0:o[1]:o,startFieldOnBlur:function startFieldOnBlurHandler(a){var b;return Array.isArray(m)?null===(b=m[0])||void 0===b?void 0:b.call(m,a):null===m||void 0===m?void 0:m(a)},startFieldOnClick:O.on,endFieldOnClick:O.on,endFieldOnBlur:function endFieldOnBlurHandler(a){var b;return Array.isArray(m)?null===(b=m[1])||void 0===b?void 0:b.call(m,a):null===m||void 0===m?void 0:m(a)},startFocused:J,endFocused:K,startFieldName:getFieldName(u,0),endFieldName:getFieldName(u,1),disabled:y})),React.createElement(DatePickerDropdown,{type:"date",ref:E,anchorRef:A,className:t,isOpen:N,onChangeCurrentVisibleDate:S,currentVisibleDate:R,value:a.value||void 0,view:i,events:g,locale:j,minDate:a.minDate,maxDate:a.maxDate,form:k,onChange:function hadleChange(b,c){var d=c.e;if(J){var e,f,g=normalizeRangeValue([b,null===a||void 0===a||null===(e=a.value)||void 0===e?void 0:e[1]]);null===(f=a.onChange)||void 0===f?void 0:f.call(a,g,{e:d})}if(K){var h,i,j=normalizeRangeValue([null===a||void 0===a||null===(h=a.value)||void 0===h?void 0:h[0],b]);null===(i=a.onChange)||void 0===i?void 0:i.call(a,j,{e:d})}},renderAdditionalControls:r,zIndex:getDropdownZIndex(a.style)}))});
|
|
2
2
|
//# sourceMappingURL=DatePickerTypeDateRange.js.map
|