@consta/uikit 5.28.5 → 5.29.1
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/TextAreaAutoSize/index.d.ts +1 -0
- package/TextAreaAutoSize/index.js +1 -0
- package/__internal__/src/components/AutoComplete/AutoComplete.js +1 -1
- package/__internal__/src/components/AutoComplete/AutoComplete.js.map +1 -1
- package/__internal__/src/components/AutoComplete/helpers.d.ts +1 -0
- package/__internal__/src/components/AutoComplete/types.d.ts +1 -0
- package/__internal__/src/components/AutoComplete/types.js.map +1 -1
- package/__internal__/src/components/AutoCompleteCanary/AutoCompleteTypeText/AutoCompleteTypeText.js +1 -1
- package/__internal__/src/components/AutoCompleteCanary/AutoCompleteTypeText/AutoCompleteTypeText.js.map +1 -1
- package/__internal__/src/components/AutoCompleteCanary/AutoCompleteTypeTextArray/AutoCompleteTypeTextArray.js +1 -1
- package/__internal__/src/components/AutoCompleteCanary/AutoCompleteTypeTextArray/AutoCompleteTypeTextArray.js.map +1 -1
- package/__internal__/src/components/AutoCompleteCanary/helpers.d.ts +1 -0
- package/__internal__/src/components/AutoCompleteCanary/types.d.ts +1 -0
- package/__internal__/src/components/AutoCompleteCanary/types.js.map +1 -1
- package/__internal__/src/components/Combobox/Combobox.js +1 -1
- package/__internal__/src/components/Combobox/Combobox.js.map +1 -1
- package/__internal__/src/components/Combobox/helpers.d.ts +3 -1
- package/__internal__/src/components/Combobox/helpers.js.map +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevel/ContextMenuLevel.js +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevel/ContextMenuLevel.js.map +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevelWrapper/ContextMenuLevelWrapper.js +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevelWrapper/ContextMenuLevelWrapper.js.map +1 -1
- package/__internal__/src/components/ContextMenu/helpers.d.ts +4 -2
- package/__internal__/src/components/ContextMenu/types.d.ts +2 -0
- package/__internal__/src/components/ContextMenu/types.js.map +1 -1
- package/__internal__/src/components/DatePicker/DatePickerDropdown/DatePickerDropdown.d.ts +1 -0
- 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/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.js +1 -1
- package/__internal__/src/components/DatePicker/helpers.js.map +1 -1
- package/__internal__/src/components/DatePicker/types.d.ts +1 -0
- package/__internal__/src/components/DatePicker/types.js.map +1 -1
- package/__internal__/src/components/FieldComponents/FieldControlLayout/FieldControlLayout.js +1 -1
- package/__internal__/src/components/FieldComponents/FieldControlLayout/FieldControlLayout.js.map +1 -1
- package/__internal__/src/components/FieldComponents/FieldControlLayout/helpers.js +1 -1
- package/__internal__/src/components/FieldComponents/FieldControlLayout/helpers.js.map +1 -1
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.js +1 -1
- package/__internal__/src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.js.map +1 -1
- package/__internal__/src/components/FlatSelect/types.d.ts +1 -0
- package/__internal__/src/components/FlatSelect/types.js.map +1 -1
- package/__internal__/src/components/Select/Select.js +1 -1
- package/__internal__/src/components/Select/Select.js.map +1 -1
- package/__internal__/src/components/Select/helpers.d.ts +3 -1
- package/__internal__/src/components/Select/helpers.js.map +1 -1
- package/__internal__/src/components/SelectCanary/SelectDropdown/SelectDropdown.d.ts +1 -0
- package/__internal__/src/components/SelectCanary/SelectDropdown/SelectDropdown.js.map +1 -1
- package/__internal__/src/components/SelectCanary/SelectMultiple/SelectMultiple.js +1 -1
- package/__internal__/src/components/SelectCanary/SelectMultiple/SelectMultiple.js.map +1 -1
- package/__internal__/src/components/SelectCanary/SelectPopover/SelectPopover.d.ts +1 -0
- package/__internal__/src/components/SelectCanary/SelectPopover/SelectPopover.js.map +1 -1
- package/__internal__/src/components/SelectCanary/SelectSingle/SelectSingle.js +1 -1
- package/__internal__/src/components/SelectCanary/SelectSingle/SelectSingle.js.map +1 -1
- package/__internal__/src/components/SelectCanary/helpers.d.ts +2 -1
- package/__internal__/src/components/SelectCanary/types.d.ts +1 -0
- package/__internal__/src/components/SelectCanary/types.js.map +1 -1
- package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.d.ts +1 -0
- package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.js +1 -1
- package/__internal__/src/components/SelectComponents/SelectDropdown/SelectDropdown.js.map +1 -1
- package/__internal__/src/components/TagBase/TagBase.d.ts +1 -1
- package/__internal__/src/components/TextAreaAutoSize/TextAreaAutoSize.css +1 -0
- package/__internal__/src/components/TextAreaAutoSize/TextAreaAutoSize.d.ts +11 -0
- package/__internal__/src/components/TextAreaAutoSize/TextAreaAutoSize.js +2 -0
- package/__internal__/src/components/TextAreaAutoSize/TextAreaAutoSize.js.map +1 -0
- package/__internal__/src/components/TextAreaAutoSize/index.d.ts +1 -0
- package/__internal__/src/components/TextAreaAutoSize/index.js +2 -0
- package/__internal__/src/components/TextAreaAutoSize/index.js.map +1 -0
- package/__internal__/src/components/TextField/TextField.js +1 -1
- package/__internal__/src/components/TextField/TextField.js.map +1 -1
- package/__internal__/src/components/TextFieldCanary/TextFieldTypeTextArea/TextFieldTypeTextArea.css +1 -1
- package/__internal__/src/components/TextFieldCanary/TextFieldTypeTextArea/TextFieldTypeTextArea.js +1 -1
- package/__internal__/src/components/TextFieldCanary/TextFieldTypeTextArea/TextFieldTypeTextArea.js.map +1 -1
- package/__internal__/src/components/UserSelect/UserSelect.js +1 -1
- package/__internal__/src/components/UserSelect/UserSelect.js.map +1 -1
- package/__internal__/src/components/UserSelect/helpers.d.ts +3 -1
- package/__internal__/src/components/UserSelect/helpers.js.map +1 -1
- package/__internal__/src/utils/objectCompare.d.ts +7 -0
- package/__internal__/src/utils/objectCompare.js +2 -0
- package/__internal__/src/utils/objectCompare.js.map +1 -0
- package/__internal__/src/utils/state/index.d.ts +3 -0
- package/__internal__/src/utils/state/index.js +1 -1
- package/__internal__/src/utils/state/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerTypeYearRange.js","names":["addYears","startOfDecade","React","forwardRef","useEffect","useRef","useState","useClickOutside","useForkRef","DatePickerDropdown","DatePickerFieldTypeYearRange","getDropdownZIndex","normalizeRangeValue","datePickerPropDateTimeViewDefault","useCalendarVisible","useCurrentVisibleDate","DatePickerTypeYearRange","props","ref","events","dateTimeView","locale","dropdownForm","onFocus","onBlur","dropdownClassName","dropdownRef","leftSide","rightSide","currentVisibleDateProp","currentVisibleDate","onChangeCurrentVisibleDate","renderAdditionalControls","inputRef","name","placeholder","onDropdownOpen","dropdownOpen","ignoreOutsideClicksRefs","disabled","disableDates","fieldProps","startFieldRef","endFieldRef","startFieldInputRef","endFieldInputRef","calendarRef","fieldFocused","setFieldFocused","startFocused","endFocused","startRef","endRef","calendarVisible","setCalendarVisible","maxDate","minDate","value","startOfUnit","rangeIndex","setCurrentVisibleDate","newVisibleDate","getTime","isActive","ignoreClicksInsideRefs","handler","off","startFieldOnFocusHandler","e","Array","isArray","endFieldOnFocusHandler","startFieldOnBlurHandler","endFieldOnBlurHandler","on","handleChange","newValue","onChange","style"],"sources":["../../../../../../src/components/DatePicker/DatePickerTypeYearRange/DatePickerTypeYearRange.tsx"],"sourcesContent":["import { addYears, startOfDecade } from 'date-fns';\nimport React, { forwardRef, useEffect, useRef, useState } from 'react';\n\nimport { useClickOutside } from '##/hooks/useClickOutside';\nimport { useForkRef } from '##/hooks/useForkRef';\n\nimport {\n DatePickerDropdown,\n DatePickerDropdownPropOnChange,\n} from '../DatePickerDropdown/DatePickerDropdown';\nimport { DatePickerFieldTypeYearRange } from '../DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange';\nimport { getDropdownZIndex, normalizeRangeValue } from '../helpers';\nimport {\n datePickerPropDateTimeViewDefault,\n DatePickerTypeComponent,\n} from '../types';\nimport { useCalendarVisible } from '../useCalendarVisible';\nimport { useCurrentVisibleDate } from '../useCurrentVisibleDate';\n\nexport const DatePickerTypeYearRange: DatePickerTypeComponent<'date-range'> =\n forwardRef((props, ref) => {\n const {\n events,\n dateTimeView = datePickerPropDateTimeViewDefault,\n locale,\n dropdownForm,\n onFocus,\n onBlur,\n dropdownClassName,\n dropdownRef,\n leftSide,\n rightSide,\n currentVisibleDate: currentVisibleDateProp,\n onChangeCurrentVisibleDate,\n renderAdditionalControls,\n inputRef,\n name,\n placeholder,\n onDropdownOpen,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n disabled,\n disableDates,\n ...fieldProps\n } = props;\n\n const startFieldRef = useRef<HTMLDivElement>(null);\n const endFieldRef = useRef<HTMLDivElement>(null);\n const startFieldInputRef = useRef<HTMLInputElement>(null);\n const endFieldInputRef = useRef<HTMLInputElement>(null);\n const calendarRef = useRef<HTMLDivElement>(null);\n\n const [fieldFocused, setFieldFocused] = useState<0 | 1 | undefined>();\n\n const startFocused = fieldFocused === 0;\n const endFocused = fieldFocused === 1;\n\n const handleChange: DatePickerDropdownPropOnChange = (value, { e }) => {\n if (startFocused) {\n const newValue = normalizeRangeValue([value, props?.value?.[1]]);\n props.onChange?.(newValue, {\n e,\n });\n }\n if (endFocused) {\n const newValue = normalizeRangeValue([props?.value?.[0], value]);\n props.onChange?.(newValue, {\n e,\n });\n }\n };\n\n const [calendarVisible, setCalendarVisible] = useCalendarVisible({\n dropdownOpen,\n onDropdownOpen,\n disabled,\n startRef: startFieldInputRef,\n endRef: endFieldInputRef,\n });\n\n const [currentVisibleDate, setCurrentVisibleDate] = useCurrentVisibleDate({\n currentVisibleDate: currentVisibleDateProp,\n maxDate: props.maxDate,\n minDate: props.minDate,\n value: props.value,\n startOfUnit: startOfDecade,\n onChangeCurrentVisibleDate,\n calendarVisible,\n rangeIndex: fieldFocused,\n });\n\n const startFieldOnBlurHandler = (e: React.FocusEvent<HTMLElement>) =>\n Array.isArray(onBlur) ? onBlur[0]?.(e) : onBlur?.(e);\n\n const endFieldOnBlurHandler = (e: React.FocusEvent<HTMLElement>) =>\n Array.isArray(onBlur) ? onBlur[1]?.(e) : onBlur?.(e);\n\n const startFieldOnFocusHandler = (e: React.FocusEvent<HTMLElement>) => {\n setFieldFocused(0);\n Array.isArray(onFocus) ? onFocus[0]?.(e) : onFocus?.(e);\n };\n\n const endFieldOnFocusHandler = (e: React.FocusEvent<HTMLElement>) => {\n setFieldFocused(1);\n Array.isArray(onFocus) ? onFocus[1]?.(e) : onFocus?.(e);\n };\n\n // эффект для того чтобы календарь переключался при вводе с клавиатуры\n useEffect(() => {\n if (props.value?.[0] && dateTimeView === 'classic' && startFocused) {\n const newVisibleDate = startOfDecade(props.value[0]);\n if (newVisibleDate.getTime() !== currentVisibleDate?.getTime()) {\n setCurrentVisibleDate(newVisibleDate);\n }\n return;\n }\n if (props.value?.[0] && dateTimeView !== 'classic' && startFocused) {\n const newVisibleDate = startOfDecade(props.value[0]);\n if (\n newVisibleDate.getTime() !== currentVisibleDate?.getTime() &&\n newVisibleDate.getTime() !==\n (currentVisibleDate && addYears(currentVisibleDate, 10).getTime())\n ) {\n setCurrentVisibleDate(newVisibleDate);\n }\n }\n }, [props.value?.[0]?.getTime(), calendarVisible, startFocused]);\n\n useEffect(() => {\n if (props.value?.[1] && dateTimeView === 'classic' && endFocused) {\n const newVisibleDate = startOfDecade(props.value[1]);\n if (newVisibleDate.getTime() !== currentVisibleDate?.getTime()) {\n setCurrentVisibleDate(newVisibleDate);\n }\n return;\n }\n if (props.value?.[1] && dateTimeView !== 'classic' && endFocused) {\n const newVisibleDate = startOfDecade(props.value[1]);\n if (\n newVisibleDate.getTime() !== currentVisibleDate?.getTime() &&\n newVisibleDate.getTime() !==\n (currentVisibleDate && addYears(currentVisibleDate, 10).getTime())\n ) {\n setCurrentVisibleDate(addYears(newVisibleDate, -10));\n }\n }\n }, [props.value?.[1]?.getTime(), calendarVisible, endFocused]);\n\n useClickOutside({\n isActive: calendarVisible,\n ignoreClicksInsideRefs: [\n startFieldRef,\n endFieldRef,\n calendarRef,\n ...(ignoreOutsideClicksRefs ?? []),\n ],\n handler: () => {\n setFieldFocused(undefined);\n setCalendarVisible.off();\n },\n });\n\n return (\n <>\n <DatePickerFieldTypeYearRange\n {...fieldProps}\n ref={ref}\n startFieldRef={startFieldRef}\n endFieldRef={endFieldRef}\n startFieldInputRef={useForkRef([startFieldInputRef, inputRef?.[0]])}\n endFieldInputRef={useForkRef([endFieldInputRef, inputRef?.[1]])}\n startFieldOnFocus={startFieldOnFocusHandler}\n endFieldOnFocus={endFieldOnFocusHandler}\n startFieldLeftSide={\n Array.isArray(leftSide) ? leftSide?.[0] : leftSide\n }\n startFieldRightSide={\n Array.isArray(rightSide) ? rightSide?.[0] : undefined\n }\n endFieldLeftSide={Array.isArray(leftSide) ? leftSide?.[1] : undefined}\n endFieldRightSide={\n Array.isArray(rightSide) ? rightSide?.[1] : rightSide\n }\n startFieldOnBlur={startFieldOnBlurHandler}\n endFieldOnBlur={endFieldOnBlurHandler}\n startFocused={startFocused}\n endFocused={endFocused}\n startFieldOnClick={setCalendarVisible.on}\n endFieldOnClick={setCalendarVisible.on}\n startFieldName={Array.isArray(name) ? name[0] : `${name}_start`}\n endFieldName={Array.isArray(name) ? name[1] : `${name}_end`}\n disabled={disabled}\n startFieldPlaceholder={\n Array.isArray(placeholder) ? placeholder?.[0] : placeholder\n }\n endFieldPlaceholder={\n Array.isArray(placeholder) ? placeholder?.[1] : placeholder\n }\n />\n <DatePickerDropdown\n type=\"year\"\n ref={useForkRef([dropdownRef, calendarRef])}\n anchorRef={startFieldRef}\n isOpen={calendarVisible}\n onChangeCurrentVisibleDate={setCurrentVisibleDate}\n currentVisibleDate={currentVisibleDate}\n value={props.value || undefined}\n view={dateTimeView}\n events={events}\n locale={locale}\n className={dropdownClassName}\n minDate={props.minDate}\n maxDate={props.maxDate}\n form={dropdownForm}\n onChange={handleChange}\n renderAdditionalControls={renderAdditionalControls}\n zIndex={getDropdownZIndex(props.style)}\n disableDates={disableDates}\n />\n </>\n );\n });\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DatePickerTypeYearRange.js","names":["addYears","startOfDecade","React","forwardRef","useEffect","useRef","useState","useClickOutside","useForkRef","DatePickerDropdown","DatePickerFieldTypeYearRange","getDropdownZIndex","normalizeRangeValue","datePickerPropDateTimeViewDefault","useCalendarVisible","useCurrentVisibleDate","DatePickerTypeYearRange","props","ref","events","dateTimeView","locale","dropdownForm","onFocus","onBlur","dropdownClassName","dropdownRef","leftSide","rightSide","currentVisibleDateProp","currentVisibleDate","onChangeCurrentVisibleDate","renderAdditionalControls","inputRef","name","placeholder","onDropdownOpen","dropdownOpen","ignoreOutsideClicksRefs","disabled","disableDates","dropdownViewportRef","fieldProps","startFieldRef","endFieldRef","startFieldInputRef","endFieldInputRef","calendarRef","fieldFocused","setFieldFocused","startFocused","endFocused","startRef","endRef","calendarVisible","setCalendarVisible","maxDate","minDate","value","startOfUnit","rangeIndex","setCurrentVisibleDate","newVisibleDate","getTime","isActive","ignoreClicksInsideRefs","handler","off","startFieldOnFocusHandler","e","Array","isArray","endFieldOnFocusHandler","startFieldOnBlurHandler","endFieldOnBlurHandler","on","handleChange","newValue","onChange","style"],"sources":["../../../../../../src/components/DatePicker/DatePickerTypeYearRange/DatePickerTypeYearRange.tsx"],"sourcesContent":["import { addYears, startOfDecade } from 'date-fns';\nimport React, { forwardRef, useEffect, useRef, useState } from 'react';\n\nimport { useClickOutside } from '##/hooks/useClickOutside';\nimport { useForkRef } from '##/hooks/useForkRef';\n\nimport {\n DatePickerDropdown,\n DatePickerDropdownPropOnChange,\n} from '../DatePickerDropdown/DatePickerDropdown';\nimport { DatePickerFieldTypeYearRange } from '../DatePickerFieldTypeYearRange/DatePickerFieldTypeYearRange';\nimport { getDropdownZIndex, normalizeRangeValue } from '../helpers';\nimport {\n datePickerPropDateTimeViewDefault,\n DatePickerTypeComponent,\n} from '../types';\nimport { useCalendarVisible } from '../useCalendarVisible';\nimport { useCurrentVisibleDate } from '../useCurrentVisibleDate';\n\nexport const DatePickerTypeYearRange: DatePickerTypeComponent<'date-range'> =\n forwardRef((props, ref) => {\n const {\n events,\n dateTimeView = datePickerPropDateTimeViewDefault,\n locale,\n dropdownForm,\n onFocus,\n onBlur,\n dropdownClassName,\n dropdownRef,\n leftSide,\n rightSide,\n currentVisibleDate: currentVisibleDateProp,\n onChangeCurrentVisibleDate,\n renderAdditionalControls,\n inputRef,\n name,\n placeholder,\n onDropdownOpen,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n disabled,\n disableDates,\n dropdownViewportRef,\n ...fieldProps\n } = props;\n\n const startFieldRef = useRef<HTMLDivElement>(null);\n const endFieldRef = useRef<HTMLDivElement>(null);\n const startFieldInputRef = useRef<HTMLInputElement>(null);\n const endFieldInputRef = useRef<HTMLInputElement>(null);\n const calendarRef = useRef<HTMLDivElement>(null);\n\n const [fieldFocused, setFieldFocused] = useState<0 | 1 | undefined>();\n\n const startFocused = fieldFocused === 0;\n const endFocused = fieldFocused === 1;\n\n const handleChange: DatePickerDropdownPropOnChange = (value, { e }) => {\n if (startFocused) {\n const newValue = normalizeRangeValue([value, props?.value?.[1]]);\n props.onChange?.(newValue, {\n e,\n });\n }\n if (endFocused) {\n const newValue = normalizeRangeValue([props?.value?.[0], value]);\n props.onChange?.(newValue, {\n e,\n });\n }\n };\n\n const [calendarVisible, setCalendarVisible] = useCalendarVisible({\n dropdownOpen,\n onDropdownOpen,\n disabled,\n startRef: startFieldInputRef,\n endRef: endFieldInputRef,\n });\n\n const [currentVisibleDate, setCurrentVisibleDate] = useCurrentVisibleDate({\n currentVisibleDate: currentVisibleDateProp,\n maxDate: props.maxDate,\n minDate: props.minDate,\n value: props.value,\n startOfUnit: startOfDecade,\n onChangeCurrentVisibleDate,\n calendarVisible,\n rangeIndex: fieldFocused,\n });\n\n const startFieldOnBlurHandler = (e: React.FocusEvent<HTMLElement>) =>\n Array.isArray(onBlur) ? onBlur[0]?.(e) : onBlur?.(e);\n\n const endFieldOnBlurHandler = (e: React.FocusEvent<HTMLElement>) =>\n Array.isArray(onBlur) ? onBlur[1]?.(e) : onBlur?.(e);\n\n const startFieldOnFocusHandler = (e: React.FocusEvent<HTMLElement>) => {\n setFieldFocused(0);\n Array.isArray(onFocus) ? onFocus[0]?.(e) : onFocus?.(e);\n };\n\n const endFieldOnFocusHandler = (e: React.FocusEvent<HTMLElement>) => {\n setFieldFocused(1);\n Array.isArray(onFocus) ? onFocus[1]?.(e) : onFocus?.(e);\n };\n\n // эффект для того чтобы календарь переключался при вводе с клавиатуры\n useEffect(() => {\n if (props.value?.[0] && dateTimeView === 'classic' && startFocused) {\n const newVisibleDate = startOfDecade(props.value[0]);\n if (newVisibleDate.getTime() !== currentVisibleDate?.getTime()) {\n setCurrentVisibleDate(newVisibleDate);\n }\n return;\n }\n if (props.value?.[0] && dateTimeView !== 'classic' && startFocused) {\n const newVisibleDate = startOfDecade(props.value[0]);\n if (\n newVisibleDate.getTime() !== currentVisibleDate?.getTime() &&\n newVisibleDate.getTime() !==\n (currentVisibleDate && addYears(currentVisibleDate, 10).getTime())\n ) {\n setCurrentVisibleDate(newVisibleDate);\n }\n }\n }, [props.value?.[0]?.getTime(), calendarVisible, startFocused]);\n\n useEffect(() => {\n if (props.value?.[1] && dateTimeView === 'classic' && endFocused) {\n const newVisibleDate = startOfDecade(props.value[1]);\n if (newVisibleDate.getTime() !== currentVisibleDate?.getTime()) {\n setCurrentVisibleDate(newVisibleDate);\n }\n return;\n }\n if (props.value?.[1] && dateTimeView !== 'classic' && endFocused) {\n const newVisibleDate = startOfDecade(props.value[1]);\n if (\n newVisibleDate.getTime() !== currentVisibleDate?.getTime() &&\n newVisibleDate.getTime() !==\n (currentVisibleDate && addYears(currentVisibleDate, 10).getTime())\n ) {\n setCurrentVisibleDate(addYears(newVisibleDate, -10));\n }\n }\n }, [props.value?.[1]?.getTime(), calendarVisible, endFocused]);\n\n useClickOutside({\n isActive: calendarVisible,\n ignoreClicksInsideRefs: [\n startFieldRef,\n endFieldRef,\n calendarRef,\n ...(ignoreOutsideClicksRefs ?? []),\n ],\n handler: () => {\n setFieldFocused(undefined);\n setCalendarVisible.off();\n },\n });\n\n return (\n <>\n <DatePickerFieldTypeYearRange\n {...fieldProps}\n ref={ref}\n startFieldRef={startFieldRef}\n endFieldRef={endFieldRef}\n startFieldInputRef={useForkRef([startFieldInputRef, inputRef?.[0]])}\n endFieldInputRef={useForkRef([endFieldInputRef, inputRef?.[1]])}\n startFieldOnFocus={startFieldOnFocusHandler}\n endFieldOnFocus={endFieldOnFocusHandler}\n startFieldLeftSide={\n Array.isArray(leftSide) ? leftSide?.[0] : leftSide\n }\n startFieldRightSide={\n Array.isArray(rightSide) ? rightSide?.[0] : undefined\n }\n endFieldLeftSide={Array.isArray(leftSide) ? leftSide?.[1] : undefined}\n endFieldRightSide={\n Array.isArray(rightSide) ? rightSide?.[1] : rightSide\n }\n startFieldOnBlur={startFieldOnBlurHandler}\n endFieldOnBlur={endFieldOnBlurHandler}\n startFocused={startFocused}\n endFocused={endFocused}\n startFieldOnClick={setCalendarVisible.on}\n endFieldOnClick={setCalendarVisible.on}\n startFieldName={Array.isArray(name) ? name[0] : `${name}_start`}\n endFieldName={Array.isArray(name) ? name[1] : `${name}_end`}\n disabled={disabled}\n startFieldPlaceholder={\n Array.isArray(placeholder) ? placeholder?.[0] : placeholder\n }\n endFieldPlaceholder={\n Array.isArray(placeholder) ? placeholder?.[1] : placeholder\n }\n />\n <DatePickerDropdown\n type=\"year\"\n ref={useForkRef([dropdownRef, calendarRef])}\n viewportRef={dropdownViewportRef}\n anchorRef={startFieldRef}\n isOpen={calendarVisible}\n onChangeCurrentVisibleDate={setCurrentVisibleDate}\n currentVisibleDate={currentVisibleDate}\n value={props.value || undefined}\n view={dateTimeView}\n events={events}\n locale={locale}\n className={dropdownClassName}\n minDate={props.minDate}\n maxDate={props.maxDate}\n form={dropdownForm}\n onChange={handleChange}\n renderAdditionalControls={renderAdditionalControls}\n zIndex={getDropdownZIndex(props.style)}\n disableDates={disableDates}\n />\n </>\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{format,isValid,parse}from"date-fns";import{useCallback,useEffect}from"react";import{IMask}from"react-imask";import{getForm}from"../FieldGroup";import{useMutableRef}from"../../hooks/useMutableRef";import{getTimeNumbers}from"../DateTime/helpers";export var datePickerPropSeparatorDefault=".";export var datePickerPropFormatTypeDate="dd".concat(".","MM").concat(".","yyyy");export var datePickerPropFormatTypeTime="HH:mm:ss";export var datePickerPropFormatTypeDateTime="".concat(datePickerPropFormatTypeDate," ").concat("HH:mm:ss");export var datePickerPropFormatTypeYear="yyyy";export var datePickerPropFormatTypeMonth="MM".concat(".","yyyy");export var normalizeRangeValue=function(a){var b,c;return a[0]&&a[1]&&(null===(b=a[0])||void 0===b?void 0:b.getTime())>(null===(c=a[1])||void 0===c?void 0:c.getTime())?[a[1],a[0]]:a};export var getTimeOptionsByFormat=function(a,b){var c
|
|
1
|
+
import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{format,isValid,parse}from"date-fns";import{useCallback,useEffect}from"react";import{IMask}from"react-imask";import{getForm}from"../FieldGroup";import{useMutableRef}from"../../hooks/useMutableRef";import{getTimeNumbers}from"../DateTime/helpers";export var datePickerPropSeparatorDefault=".";export var datePickerPropFormatTypeDate="dd".concat(".","MM").concat(".","yyyy");export var datePickerPropFormatTypeTime="HH:mm:ss";export var datePickerPropFormatTypeDateTime="".concat(datePickerPropFormatTypeDate," ").concat("HH:mm:ss");export var datePickerPropFormatTypeYear="yyyy";export var datePickerPropFormatTypeMonth="MM".concat(".","yyyy");export var normalizeRangeValue=function(a){var b,c;return a[0]&&a[1]&&(null===(b=a[0])||void 0===b?void 0:b.getTime())>(null===(c=a[1])||void 0===c?void 0:c.getTime())?[a[1],a[0]]:a};export var getTimeOptionsByFormat=function(a,b){var c=a.includes(" ")?a.split(" ")[1]:a,d=null===c||void 0===c?void 0:c.split(":"),e={HH:null===b||void 0===b?void 0:b.hours,mm:null===b||void 0===b?void 0:b.minutes,ss:null===b||void 0===b?void 0:b.seconds},f=["HH","mm","ss"].map(function(a){return null!==d&&void 0!==d&&d.includes(a)?e[a]:[]}),g=_slicedToArray(f,3),h=g[0],i=g[1],j=g[2];return{hours:h,minutes:i,seconds:j}};export var adaptFormat=function(a,b){for(var c,d=a.split(" "),e=null!==(c=d[1])&&void 0!==c?c:a,f=function shouldRemoveTimePart(a){return!!(a&&Array.isArray(a)&&0===a.length)||a&&!Array.isArray(a)&&0===a.step},g=[{marker:"HH",timeOption:null===b||void 0===b?void 0:b.hours},{marker:"mm",timeOption:null===b||void 0===b?void 0:b.minutes},{marker:"ss",timeOption:null===b||void 0===b?void 0:b.seconds}],h=0,i=g;h<i.length;h++){var j=i[h],k=j.marker,l=j.timeOption;f(l)&&(e=e.replace(new RegExp(":?".concat(k),"g"),""))}return e=e.replace(/:+$/,"").replace(/^:+/,"").replace(/:+/g,":").replace(/\s+/g," ").trim(),1<d.length?(d[1]=e,d.filter(function(a){return 0<a.length}).join(" ")):e};export var placeholderByFormat=function placeholderByFormat(a){return a.replace(/yyyy/g,"\u0413\u0413\u0413\u0413").replace(/MM/g,"\u041C\u041C").replace(/dd/g,"\u0414\u0414").replace(/HH/g,"\u0427\u0427").replace(/mm/g,"\u041C\u041C").replace(/ss/g,"\u0421\u0421")};export var getMaskBlocks=function getMaskBlocks(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},b=a.includeDate,c=void 0===b||b,d=a.includeTime,e=void 0===d||d,f={};return c&&(f.dd={mask:IMask.MaskedRange,from:1,to:31},f.MM={mask:IMask.MaskedRange,from:1,to:12},f.yyyy={mask:IMask.MaskedRange,from:1,to:9999}),e&&(f.HH={mask:IMask.MaskedRange,from:0,to:23},f.mm={mask:IMask.MaskedRange,from:0,to:59},f.ss={mask:IMask.MaskedRange,from:0,to:59}),f};export var getFormForStart=function getFormForStart(a){return getForm(a,0,2)};export var getFormForEnd=function getFormForEnd(a){return getForm(a,1,2)};export var getPartDate=function getPartDate(a,b,c){var d=a.indexOf(c);return 0<=d&&b[d]&&b[d].length===c.length?b[d]:void 0};export var getParts=function getParts(a,b,c){if(c){var d=a.split(" "),e=_slicedToArray(d,2),f=e[0],g=e[1];return[].concat(_toConsumableArray(f?f.split(b):[]),_toConsumableArray(g?g.split(":"):[]))}return a.split(b)};export var getPartsDate=function getPartsDate(a,b,c,d,e){var f=getParts(b,c,d),g=getParts(a,c,d);return e.map(function(a){return getPartDate(f,g,a)})};export var isTypeWithTime=function isTypeWithTime(a){return-1!==a.indexOf("time")};var fieldPrefixs=["start","end"];export var getFieldName=function getFieldName(a,b){return a?Array.isArray(a)?a[b]:"".concat(a,"_").concat(fieldPrefixs[b]):void 0};export var getDropdownZIndex=function getDropdownZIndex(a){return"number"==typeof(null===a||void 0===a?void 0:a.zIndex)?a.zIndex+1:void 0};export var useStringValue=function useStringValue(a,b,c,d,e){var f=e.value,g=useMutableRef([e.setValue,a]),h=useCallback(function(a){var b;g.current[0](a),null!==(b=e.ref)&&void 0!==b&&b.current&&(e.ref.current.value=a),e.maskRef.current&&e.maskRef.current.updateValue()},[]),i=useCallback(function(a){if(h(""),g.current[1]){var b;null===(b=d.current)||void 0===b?void 0:b.call(d,null,{e:a})}},[]);return useEffect(function(){if(a&&isValid(a)&&h(format(a,b)),!a&&f){var d=getParts(b,c,!1),e=getParts(f,c,!1),g=d.map(function(a){return getPartDate(d,e,a)}).filter(function(a){return!!a}),i=d.length===g.length?parse(e.join(datePickerPropSeparatorDefault),d.join(datePickerPropSeparatorDefault),new Date):void 0;isValid(i)&&h("")}},[null===a||void 0===a?void 0:a.getTime()]),i};export var isValidTimeByTimeOptions=function isValidTimeByTimeOptions(a,b){var c=function isUnitValid(a,b,c){if(!c)return!0;var d=getTimeNumbers(a,c);return!(0!==d.length)||d.includes(b)};if(!b)return!0;var d=c("hours",a.getHours(),b.hours),e=c("minutes",a.getMinutes(),b.minutes),f=c("seconds",a.getSeconds(),b.seconds);return d&&e&&f};
|
|
2
2
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":["format","isValid","parse","useCallback","useEffect","IMask","getForm","useMutableRef","getTimeNumbers","datePickerPropSeparatorDefault","datePickerPropFormatTypeDate","datePickerPropFormatTypeTime","datePickerPropFormatTypeDateTime","datePickerPropFormatTypeYear","datePickerPropFormatTypeMonth","normalizeRangeValue","dateRange","getTime","getTimeOptionsByFormat","timeOptions","formatArray","split","mapTimeOptions","HH","hours","mm","minutes","ss","seconds","map","marker","includes","hoursOptions","minutesOptions","secondsOptions","adaptFormat","adaptedFormat","shouldRemoveTimePart","timeOption","Array","isArray","length","step","timeMarkers","replace","RegExp","trim","filter","part","join","placeholderByFormat","getMaskBlocks","includeDate","includeTime","blocks","dd","mask","MaskedRange","from","to","MM","yyyy","getFormForStart","form","getFormForEnd","getPartDate","stringArray","index","indexOf","getParts","separator","withTime","date","time","getPartsDate","value","markers","isTypeWithTime","type","fieldPrefixs","getFieldName","name","rangeIndex","getDropdownZIndex","style","zIndex","useStringValue","formatProp","onChangeRef","imaskProps","stringValue","refs","setValue","setStringValue","current","ref","maskRef","updateValue","handleClear","e","valueArray","validArray","item","Date","isValidTimeByTimeOptions","isUnitValid","unit","options","allowed","isHoursValid","getHours","isMinutesValid","getMinutes","isSecondsValid","getSeconds"],"sources":["../../../../../src/components/DatePicker/helpers.ts"],"sourcesContent":["import { format, isValid, parse } from 'date-fns';\nimport { useCallback, useEffect } from 'react';\nimport { IMask, useIMask } from 'react-imask';\n\nimport { getForm } from '##/components/FieldGroup';\nimport { TextFieldPropForm } from '##/components/TextField';\nimport { useMutableRef } from '##/hooks/useMutableRef';\nimport { DateRange } from '##/utils/types/Date';\n\nimport { TimeOptions, TimeUnitOptions } from '../DateTime';\nimport { getTimeNumbers } from '../DateTime/helpers';\nimport { DatePickerPropType } from './types';\n\nexport const datePickerPropSeparatorDefault = '.';\nexport const datePickerPropFormatTypeDate = `dd${datePickerPropSeparatorDefault}MM${datePickerPropSeparatorDefault}yyyy`;\n\nexport const datePickerPropFormatTypeTime = `HH:mm:ss`;\n\nexport const datePickerPropFormatTypeDateTime = `${datePickerPropFormatTypeDate} ${datePickerPropFormatTypeTime}`;\n\nexport const datePickerPropFormatTypeYear = `yyyy`;\n\nexport const datePickerPropFormatTypeMonth = `MM${datePickerPropSeparatorDefault}yyyy`;\n\nexport const normalizeRangeValue = (dateRange: DateRange): DateRange => {\n if (\n dateRange[0] &&\n dateRange[1] &&\n dateRange[0]?.getTime() > dateRange[1]?.getTime()\n ) {\n return [dateRange[1], dateRange[0]];\n }\n return dateRange;\n};\n\nexport const getTimeOptionsByFormat = (\n format: string,\n timeOptions?: TimeOptions,\n) => {\n const markers = ['HH', 'mm', 'ss'] as const;\n const formatArray = format.split(' ')[1]?.split(':');\n const mapTimeOptions = {\n HH: timeOptions?.hours,\n mm: timeOptions?.minutes,\n ss: timeOptions?.seconds,\n } as const;\n\n const [hoursOptions, minutesOptions, secondsOptions] = markers.map((marker) =>\n formatArray?.includes(marker) ? mapTimeOptions[marker] : [],\n ) as [\n TimeUnitOptions | undefined,\n TimeUnitOptions | undefined,\n TimeUnitOptions | undefined,\n ];\n\n const effectiveTimeOptions = {\n hours: hoursOptions,\n minutes: minutesOptions,\n seconds: secondsOptions,\n };\n\n return effectiveTimeOptions;\n};\n\nexport const adaptFormat = (\n format: string,\n timeOptions?: TimeOptions,\n): string => {\n const formatArray = format.split(' ');\n let adaptedFormat = formatArray[1] ?? format;\n\n const shouldRemoveTimePart = (\n timeOption: TimeUnitOptions | undefined,\n ): boolean => {\n if (timeOption && Array.isArray(timeOption) && timeOption.length === 0)\n return true;\n if (timeOption && !Array.isArray(timeOption) && timeOption.step === 0)\n return true;\n\n return false;\n };\n\n const timeMarkers = [\n { marker: 'HH', timeOption: timeOptions?.hours },\n { marker: 'mm', timeOption: timeOptions?.minutes },\n { marker: 'ss', timeOption: timeOptions?.seconds },\n ];\n\n for (const { marker, timeOption } of timeMarkers) {\n if (shouldRemoveTimePart(timeOption)) {\n adaptedFormat = adaptedFormat.replace(new RegExp(`:?${marker}`, 'g'), '');\n }\n }\n\n adaptedFormat = adaptedFormat\n .replace(/:+$/, '')\n .replace(/^:+/, '')\n .replace(/:+/g, ':')\n .replace(/\\s+/g, ' ')\n .trim();\n\n if (formatArray.length > 1) {\n formatArray[1] = adaptedFormat;\n return formatArray.filter((part) => part.length > 0).join(' ');\n }\n return adaptedFormat;\n};\n\nexport const placeholderByFormat = (format: string): string => {\n return format\n .replace(/yyyy/g, 'ГГГГ')\n .replace(/MM/g, 'ММ')\n .replace(/dd/g, 'ДД')\n .replace(/HH/g, 'ЧЧ')\n .replace(/mm/g, 'ММ')\n .replace(/ss/g, 'СС');\n};\n\ntype MaskBlock = {\n mask: typeof IMask.MaskedRange;\n from: number;\n to: number;\n};\n\ntype MaskBlocks = Partial<{\n dd: MaskBlock;\n MM: MaskBlock;\n yyyy: MaskBlock;\n HH: MaskBlock;\n mm: MaskBlock;\n ss: MaskBlock;\n}>;\n\nexport const getMaskBlocks = ({\n includeDate = true,\n includeTime = true,\n} = {}): MaskBlocks => {\n const blocks: MaskBlocks = {};\n\n if (includeDate) {\n blocks.dd = { mask: IMask.MaskedRange, from: 1, to: 31 };\n blocks.MM = { mask: IMask.MaskedRange, from: 1, to: 12 };\n blocks.yyyy = { mask: IMask.MaskedRange, from: 1, to: 9999 };\n }\n\n if (includeTime) {\n blocks.HH = { mask: IMask.MaskedRange, from: 0, to: 23 };\n blocks.mm = { mask: IMask.MaskedRange, from: 0, to: 59 };\n blocks.ss = { mask: IMask.MaskedRange, from: 0, to: 59 };\n }\n\n return blocks;\n};\n\nexport const getFormForStart = (form: TextFieldPropForm) => getForm(form, 0, 2);\nexport const getFormForEnd = (form: TextFieldPropForm) => getForm(form, 1, 2);\n\nexport const getPartDate = (\n formatArray: string[],\n stringArray: string[],\n marker: string,\n) => {\n const index = formatArray.indexOf(marker);\n\n if (\n index >= 0 &&\n stringArray[index] &&\n stringArray[index].length === marker.length\n ) {\n return stringArray[index];\n }\n\n return undefined;\n};\n\nexport const getParts = (\n format: string,\n separator: string,\n withTime?: boolean,\n) => {\n if (withTime) {\n const [date, time] = format.split(' ');\n\n return [\n ...(date ? date.split(separator) : []),\n ...(time ? time.split(':') : []),\n ];\n }\n\n return format.split(separator);\n};\n\nexport const getPartsDate = (\n value: string,\n format: string,\n separator: string,\n withTime: boolean,\n markers: string[],\n) => {\n const formatArray = getParts(format, separator, withTime);\n const stringArray = getParts(value, separator, withTime);\n\n return markers.map((marker) => getPartDate(formatArray, stringArray, marker));\n};\n\nexport const isTypeWithTime = (type: DatePickerPropType) =>\n type.indexOf('time') !== -1;\n\nconst fieldPrefixs = ['start', 'end'] as const;\n\nexport const getFieldName = (\n name: [string?, string?] | string | undefined,\n rangeIndex: 0 | 1,\n) => {\n if (!name) {\n return undefined;\n }\n\n if (Array.isArray(name)) {\n return name[rangeIndex];\n }\n\n return `${name}_${fieldPrefixs[rangeIndex]}`;\n};\n\nexport const getDropdownZIndex = (style?: React.CSSProperties) =>\n typeof style?.zIndex === 'number' ? style.zIndex + 1 : undefined;\n\ntype DatePickerFieldTypeDatePropOnChange = (\n value: Date | null,\n props: {\n e: Event;\n },\n) => void;\n\nexport const useStringValue = (\n value: Date | undefined | null,\n formatProp: string,\n separator: string,\n onChangeRef: React.MutableRefObject<\n DatePickerFieldTypeDatePropOnChange | undefined\n >,\n imaskProps: ReturnType<typeof useIMask<HTMLInputElement>>,\n) => {\n const stringValue = imaskProps.value;\n\n const refs = useMutableRef([imaskProps.setValue, value] as const);\n\n const setStringValue = useCallback((value: string) => {\n refs.current[0](value);\n if (imaskProps.ref?.current) {\n imaskProps.ref.current.value = value;\n }\n if (imaskProps.maskRef.current) {\n imaskProps.maskRef.current.updateValue();\n }\n }, []);\n\n const handleClear: React.MouseEventHandler<HTMLButtonElement> = useCallback(\n (e) => {\n setStringValue('');\n\n if (refs.current[1]) {\n onChangeRef.current?.(null, { e: e as unknown as Event });\n }\n },\n [],\n );\n\n useEffect(() => {\n if (value && isValid(value)) {\n setStringValue(format(value, formatProp));\n }\n\n if (!value && stringValue) {\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 const date =\n formatArray.length === validArray.length\n ? parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n )\n : undefined;\n\n if (isValid(date)) {\n setStringValue('');\n }\n }\n }, [value?.getTime()]);\n\n return handleClear;\n};\n\nexport const isValidTimeByTimeOptions = (\n date: Date,\n timeOptions?: TimeOptions,\n): boolean => {\n const isUnitValid = (\n unit: 'hours' | 'minutes' | 'seconds',\n value: number,\n options?: TimeUnitOptions,\n ): boolean => {\n if (!options) return true;\n\n const allowed = getTimeNumbers(unit, options);\n if (allowed.length === 0) return true;\n\n return allowed.includes(value);\n };\n\n if (!timeOptions) return true;\n const isHoursValid = isUnitValid('hours', date.getHours(), timeOptions.hours);\n const isMinutesValid = isUnitValid(\n 'minutes',\n date.getMinutes(),\n timeOptions.minutes,\n );\n const isSecondsValid = isUnitValid(\n 'seconds',\n date.getSeconds(),\n timeOptions.seconds,\n );\n\n return isHoursValid && isMinutesValid && isSecondsValid;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["format","isValid","parse","useCallback","useEffect","IMask","getForm","useMutableRef","getTimeNumbers","datePickerPropSeparatorDefault","datePickerPropFormatTypeDate","datePickerPropFormatTypeTime","datePickerPropFormatTypeDateTime","datePickerPropFormatTypeYear","datePickerPropFormatTypeMonth","normalizeRangeValue","dateRange","getTime","getTimeOptionsByFormat","timeOptions","timePart","includes","split","formatArray","mapTimeOptions","HH","hours","mm","minutes","ss","seconds","map","marker","hoursOptions","minutesOptions","secondsOptions","adaptFormat","adaptedFormat","shouldRemoveTimePart","timeOption","Array","isArray","length","step","timeMarkers","replace","RegExp","trim","filter","part","join","placeholderByFormat","getMaskBlocks","includeDate","includeTime","blocks","dd","mask","MaskedRange","from","to","MM","yyyy","getFormForStart","form","getFormForEnd","getPartDate","stringArray","index","indexOf","getParts","separator","withTime","date","time","getPartsDate","value","markers","isTypeWithTime","type","fieldPrefixs","getFieldName","name","rangeIndex","getDropdownZIndex","style","zIndex","useStringValue","formatProp","onChangeRef","imaskProps","stringValue","refs","setValue","setStringValue","current","ref","maskRef","updateValue","handleClear","e","valueArray","validArray","item","Date","isValidTimeByTimeOptions","isUnitValid","unit","options","allowed","isHoursValid","getHours","isMinutesValid","getMinutes","isSecondsValid","getSeconds"],"sources":["../../../../../src/components/DatePicker/helpers.ts"],"sourcesContent":["import { format, isValid, parse } from 'date-fns';\nimport { useCallback, useEffect } from 'react';\nimport { IMask, useIMask } from 'react-imask';\n\nimport { getForm } from '##/components/FieldGroup';\nimport { TextFieldPropForm } from '##/components/TextField';\nimport { useMutableRef } from '##/hooks/useMutableRef';\nimport { DateRange } from '##/utils/types/Date';\n\nimport { TimeOptions, TimeUnitOptions } from '../DateTime';\nimport { getTimeNumbers } from '../DateTime/helpers';\nimport { DatePickerPropType } from './types';\n\nexport const datePickerPropSeparatorDefault = '.';\nexport const datePickerPropFormatTypeDate = `dd${datePickerPropSeparatorDefault}MM${datePickerPropSeparatorDefault}yyyy`;\n\nexport const datePickerPropFormatTypeTime = `HH:mm:ss`;\n\nexport const datePickerPropFormatTypeDateTime = `${datePickerPropFormatTypeDate} ${datePickerPropFormatTypeTime}`;\n\nexport const datePickerPropFormatTypeYear = `yyyy`;\n\nexport const datePickerPropFormatTypeMonth = `MM${datePickerPropSeparatorDefault}yyyy`;\n\nexport const normalizeRangeValue = (dateRange: DateRange): DateRange => {\n if (\n dateRange[0] &&\n dateRange[1] &&\n dateRange[0]?.getTime() > dateRange[1]?.getTime()\n ) {\n return [dateRange[1], dateRange[0]];\n }\n return dateRange;\n};\n\nexport const getTimeOptionsByFormat = (\n format: string,\n timeOptions?: TimeOptions,\n) => {\n const markers = ['HH', 'mm', 'ss'] as const;\n const timePart = format.includes(' ') ? format.split(' ')[1] : format;\n const formatArray = timePart?.split(':');\n const mapTimeOptions = {\n HH: timeOptions?.hours,\n mm: timeOptions?.minutes,\n ss: timeOptions?.seconds,\n } as const;\n\n const [hoursOptions, minutesOptions, secondsOptions] = markers.map((marker) =>\n formatArray?.includes(marker) ? mapTimeOptions[marker] : [],\n ) as [\n TimeUnitOptions | undefined,\n TimeUnitOptions | undefined,\n TimeUnitOptions | undefined,\n ];\n\n const effectiveTimeOptions = {\n hours: hoursOptions,\n minutes: minutesOptions,\n seconds: secondsOptions,\n };\n\n return effectiveTimeOptions;\n};\n\nexport const adaptFormat = (\n format: string,\n timeOptions?: TimeOptions,\n): string => {\n const formatArray = format.split(' ');\n let adaptedFormat = formatArray[1] ?? format;\n\n const shouldRemoveTimePart = (\n timeOption: TimeUnitOptions | undefined,\n ): boolean => {\n if (timeOption && Array.isArray(timeOption) && timeOption.length === 0)\n return true;\n if (timeOption && !Array.isArray(timeOption) && timeOption.step === 0)\n return true;\n\n return false;\n };\n\n const timeMarkers = [\n { marker: 'HH', timeOption: timeOptions?.hours },\n { marker: 'mm', timeOption: timeOptions?.minutes },\n { marker: 'ss', timeOption: timeOptions?.seconds },\n ];\n\n for (const { marker, timeOption } of timeMarkers) {\n if (shouldRemoveTimePart(timeOption)) {\n adaptedFormat = adaptedFormat.replace(new RegExp(`:?${marker}`, 'g'), '');\n }\n }\n\n adaptedFormat = adaptedFormat\n .replace(/:+$/, '')\n .replace(/^:+/, '')\n .replace(/:+/g, ':')\n .replace(/\\s+/g, ' ')\n .trim();\n\n if (formatArray.length > 1) {\n formatArray[1] = adaptedFormat;\n return formatArray.filter((part) => part.length > 0).join(' ');\n }\n return adaptedFormat;\n};\n\nexport const placeholderByFormat = (format: string): string => {\n return format\n .replace(/yyyy/g, 'ГГГГ')\n .replace(/MM/g, 'ММ')\n .replace(/dd/g, 'ДД')\n .replace(/HH/g, 'ЧЧ')\n .replace(/mm/g, 'ММ')\n .replace(/ss/g, 'СС');\n};\n\ntype MaskBlock = {\n mask: typeof IMask.MaskedRange;\n from: number;\n to: number;\n};\n\ntype MaskBlocks = Partial<{\n dd: MaskBlock;\n MM: MaskBlock;\n yyyy: MaskBlock;\n HH: MaskBlock;\n mm: MaskBlock;\n ss: MaskBlock;\n}>;\n\nexport const getMaskBlocks = ({\n includeDate = true,\n includeTime = true,\n} = {}): MaskBlocks => {\n const blocks: MaskBlocks = {};\n\n if (includeDate) {\n blocks.dd = { mask: IMask.MaskedRange, from: 1, to: 31 };\n blocks.MM = { mask: IMask.MaskedRange, from: 1, to: 12 };\n blocks.yyyy = { mask: IMask.MaskedRange, from: 1, to: 9999 };\n }\n\n if (includeTime) {\n blocks.HH = { mask: IMask.MaskedRange, from: 0, to: 23 };\n blocks.mm = { mask: IMask.MaskedRange, from: 0, to: 59 };\n blocks.ss = { mask: IMask.MaskedRange, from: 0, to: 59 };\n }\n\n return blocks;\n};\n\nexport const getFormForStart = (form: TextFieldPropForm) => getForm(form, 0, 2);\nexport const getFormForEnd = (form: TextFieldPropForm) => getForm(form, 1, 2);\n\nexport const getPartDate = (\n formatArray: string[],\n stringArray: string[],\n marker: string,\n) => {\n const index = formatArray.indexOf(marker);\n\n if (\n index >= 0 &&\n stringArray[index] &&\n stringArray[index].length === marker.length\n ) {\n return stringArray[index];\n }\n\n return undefined;\n};\n\nexport const getParts = (\n format: string,\n separator: string,\n withTime?: boolean,\n) => {\n if (withTime) {\n const [date, time] = format.split(' ');\n\n return [\n ...(date ? date.split(separator) : []),\n ...(time ? time.split(':') : []),\n ];\n }\n\n return format.split(separator);\n};\n\nexport const getPartsDate = (\n value: string,\n format: string,\n separator: string,\n withTime: boolean,\n markers: string[],\n) => {\n const formatArray = getParts(format, separator, withTime);\n const stringArray = getParts(value, separator, withTime);\n\n return markers.map((marker) => getPartDate(formatArray, stringArray, marker));\n};\n\nexport const isTypeWithTime = (type: DatePickerPropType) =>\n type.indexOf('time') !== -1;\n\nconst fieldPrefixs = ['start', 'end'] as const;\n\nexport const getFieldName = (\n name: [string?, string?] | string | undefined,\n rangeIndex: 0 | 1,\n) => {\n if (!name) {\n return undefined;\n }\n\n if (Array.isArray(name)) {\n return name[rangeIndex];\n }\n\n return `${name}_${fieldPrefixs[rangeIndex]}`;\n};\n\nexport const getDropdownZIndex = (style?: React.CSSProperties) =>\n typeof style?.zIndex === 'number' ? style.zIndex + 1 : undefined;\n\ntype DatePickerFieldTypeDatePropOnChange = (\n value: Date | null,\n props: {\n e: Event;\n },\n) => void;\n\nexport const useStringValue = (\n value: Date | undefined | null,\n formatProp: string,\n separator: string,\n onChangeRef: React.MutableRefObject<\n DatePickerFieldTypeDatePropOnChange | undefined\n >,\n imaskProps: ReturnType<typeof useIMask<HTMLInputElement>>,\n) => {\n const stringValue = imaskProps.value;\n\n const refs = useMutableRef([imaskProps.setValue, value] as const);\n\n const setStringValue = useCallback((value: string) => {\n refs.current[0](value);\n if (imaskProps.ref?.current) {\n imaskProps.ref.current.value = value;\n }\n if (imaskProps.maskRef.current) {\n imaskProps.maskRef.current.updateValue();\n }\n }, []);\n\n const handleClear: React.MouseEventHandler<HTMLButtonElement> = useCallback(\n (e) => {\n setStringValue('');\n\n if (refs.current[1]) {\n onChangeRef.current?.(null, { e: e as unknown as Event });\n }\n },\n [],\n );\n\n useEffect(() => {\n if (value && isValid(value)) {\n setStringValue(format(value, formatProp));\n }\n\n if (!value && stringValue) {\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 const date =\n formatArray.length === validArray.length\n ? parse(\n valueArray.join(datePickerPropSeparatorDefault),\n formatArray.join(datePickerPropSeparatorDefault),\n new Date(),\n )\n : undefined;\n\n if (isValid(date)) {\n setStringValue('');\n }\n }\n }, [value?.getTime()]);\n\n return handleClear;\n};\n\nexport const isValidTimeByTimeOptions = (\n date: Date,\n timeOptions?: TimeOptions,\n): boolean => {\n const isUnitValid = (\n unit: 'hours' | 'minutes' | 'seconds',\n value: number,\n options?: TimeUnitOptions,\n ): boolean => {\n if (!options) return true;\n\n const allowed = getTimeNumbers(unit, options);\n if (allowed.length === 0) return true;\n\n return allowed.includes(value);\n };\n\n if (!timeOptions) return true;\n const isHoursValid = isUnitValid('hours', date.getHours(), timeOptions.hours);\n const isMinutesValid = isUnitValid(\n 'minutes',\n date.getMinutes(),\n timeOptions.minutes,\n );\n const isSecondsValid = isUnitValid(\n 'seconds',\n date.getSeconds(),\n timeOptions.seconds,\n );\n\n return isHoursValid && isMinutesValid && isSecondsValid;\n};\n"],"mappings":"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"}
|
|
@@ -95,6 +95,7 @@ export type DatePickerProps<TYPE extends DatePickerPropType = 'date'> = PropsWit
|
|
|
95
95
|
onDropdownOpen?: (isOpen: boolean) => void;
|
|
96
96
|
dropdownOpen?: boolean;
|
|
97
97
|
ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;
|
|
98
|
+
dropdownViewportRef?: React.RefObject<HTMLElement>;
|
|
98
99
|
}, HTMLDivElement>;
|
|
99
100
|
export type DatePickerComponent = <TYPE extends DatePickerPropType = 'date'>(props: DatePickerProps<TYPE>) => React.ReactNode | null;
|
|
100
101
|
export type DatePickerTypeComponent<TYPE extends DatePickerPropType> = (props: Omit<DatePickerProps<TYPE>, 'type'>) => React.ReactNode | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":["dateTimePropViewDefault","datePickerPropType","datePickerPropTypeDefault","datePickerPropDateTimeViewDefault","datePickerErrorTypes","datePickerPropDropdownForm","datePickerPropDropdownFormDefault"],"sources":["../../../../../src/components/DatePicker/types.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport { Locale } from 'date-fns';\n\nimport { DateRange } from '../../utils/types/Date';\nimport { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';\nimport {\n DateTimePropDisableDates,\n DateTimePropView,\n dateTimePropViewDefault,\n TimeOptions,\n} from '../DateTime/helpers';\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n} from '../TextField/TextField';\n\nexport const datePickerPropType = [\n 'date',\n 'date-range',\n 'date-time',\n 'date-time-range',\n 'time',\n 'year',\n 'year-range',\n 'month',\n 'month-range',\n] as const;\n\nexport type DatePickerPropType = typeof datePickerPropType[number];\nexport const datePickerPropTypeDefault = datePickerPropType[0];\n\nexport type DatePickerPropDateTimeView = DateTimePropView;\nexport const datePickerPropDateTimeViewDefault = dateTimePropViewDefault;\n\ntype Range = 'date-range' | 'date-time-range' | 'year-range' | 'month-range';\ntype Time = 'time' | 'date-time' | 'date-time-range';\n\nexport const datePickerErrorTypes = [\n 'outOfRange',\n 'invalidInputAttempt',\n 'startDateIsGreaterThanEndDate',\n 'invalidTimeByTimeOptions',\n] as const;\n\nexport type DatePickerPropValue<TYPE extends DatePickerPropType> =\n | (TYPE extends Range ? DateRange : Date)\n | null;\n\nexport type DatePickerPropPlaceholder<TYPE> = TYPE extends Range\n ? [string?, string?] | string\n : string;\n\nexport type DatePickerPropOnChange<TYPE extends DatePickerPropType> = (\n value: DatePickerPropValue<TYPE>,\n props: {\n e: React.MouseEvent<HTMLButtonElement, MouseEvent> | Event;\n },\n) => void;\n\nexport const datePickerPropDropdownForm = [\n 'default',\n 'brick',\n 'round',\n] as const;\nexport type DatePickerPropDropdownForm =\n typeof datePickerPropDropdownForm[number];\nexport const datePickerPropDropdownFormDefault = datePickerPropDropdownForm[0];\n\ntype DatePickerPropInputRef<TYPE> = TYPE extends Range\n ? [React.Ref<HTMLInputElement>?, React.Ref<HTMLInputElement>?]\n : React.Ref<HTMLInputElement>;\n\ntype DatePickerPropSide<TYPE> = TYPE extends Range\n ?\n | [(string | IconComponent)?, (string | IconComponent)?]\n | string\n | IconComponent\n : string | IconComponent;\n\ntype DatePickerPropOnFocus<TYPE> = TYPE extends Range\n ?\n | [\n React.FocusEventHandler<HTMLElement>?,\n React.FocusEventHandler<HTMLElement>?,\n ]\n | React.FocusEventHandler<HTMLElement>\n : React.FocusEventHandler<HTMLElement>;\n\ntype DatePickerPropName<TYPE> = TYPE extends Range\n ? [string?, string?] | string\n : string;\n\nexport type DatePickerAdditionalControlRenderFn = (props: {\n currentVisibleDate?: Date;\n}) => React.ReactNode | React.ReactNode[];\n\nexport type DatePickerAdditionalControlRenderProp =\n | React.ReactNode\n | DatePickerAdditionalControlRenderFn;\n\nexport type DatePickerProps<TYPE extends DatePickerPropType = 'date'> =\n PropsWithHTMLAttributesAndRef<\n {\n type?: TYPE;\n value?: DatePickerPropValue<TYPE>;\n onChange?: DatePickerPropOnChange<TYPE>;\n minDate?: Date;\n maxDate?: Date;\n renderAdditionalControls?: DatePickerAdditionalControlRenderProp;\n events?: Date[];\n dateTimeView?: DatePickerPropDateTimeView;\n locale?: Locale;\n children?: never;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: DatePickerPropName<TYPE>;\n disabled?: boolean;\n disableDates?: DateTimePropDisableDates;\n dropdownClassName?: string;\n dropdownRef?: React.Ref<HTMLDivElement>;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n onFocus?: DatePickerPropOnFocus<TYPE>;\n onBlur?: DatePickerPropOnFocus<TYPE>;\n autoFocus?: boolean;\n placeholder?: DatePickerPropPlaceholder<TYPE>;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: DatePickerPropInputRef<TYPE>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n format?: string;\n separator?: string;\n dropdownForm?: DatePickerPropDropdownForm;\n leftSide?: DatePickerPropSide<TYPE>;\n rightSide?: DatePickerPropSide<TYPE>;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n onChangeCurrentVisibleDate?: (date: Date) => void;\n currentVisibleDate?: Date;\n timeOptions?: TYPE extends Time ? TimeOptions : never;\n /**\n * @deprecated Use timeOptions instead.\n * TODO: major - удалить при мажорном релизе все свойства multiplicity*, оставив только работу с timeOptions.\n */\n multiplicitySeconds?: TYPE extends Time ? number : never;\n /**\n * @deprecated Use timeOptions instead.\n * TODO: major - удалить при мажорном релизе все свойства multiplicity*, оставив только работу с timeOptions.\n */\n multiplicityMinutes?: TYPE extends Time ? number : never;\n /**\n * @deprecated Use timeOptions instead.\n * TODO: major - удалить при мажорном релизе все свойства multiplicity*, оставив только работу с timeOptions.\n */\n multiplicityHours?: TYPE extends Time ? number : never;\n isMobile?: number;\n withClearButton?: boolean;\n onDropdownOpen?: (isOpen: boolean) => void;\n dropdownOpen?: boolean;\n ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;\n },\n HTMLDivElement\n >;\n\nexport type DatePickerComponent = <TYPE extends DatePickerPropType = 'date'>(\n props: DatePickerProps<TYPE>,\n) => React.ReactNode | null;\n\nexport type DatePickerTypeComponent<TYPE extends DatePickerPropType> = (\n props: Omit<DatePickerProps<TYPE>, 'type'>,\n) => React.ReactNode | null;\n\nexport type DatePickerPropOnError = (\n props:\n | {\n type: typeof datePickerErrorTypes[0];\n stringValue: string;\n dd?: string;\n MM?: string;\n yyyy?: string;\n ss?: string;\n mm?: string;\n HH?: string;\n date: Date;\n }\n | {\n type: typeof datePickerErrorTypes[1];\n stringValue: string;\n dd?: string;\n MM?: string;\n yyyy?: string;\n ss?: string;\n mm?: string;\n HH?: string;\n }\n | {\n type: typeof datePickerErrorTypes[2];\n date: [Date, Date];\n }\n | {\n type: typeof datePickerErrorTypes[3];\n stringValue: string;\n date: Date;\n HH?: string;\n mm?: string;\n ss?: string;\n },\n) => void;\n"],"mappings":"AAKA,OAGEA,uBAHF,2BAaA,MAAO,IAAMC,mBAAkB,CAAG,CAChC,MADgC,CAEhC,YAFgC,CAGhC,WAHgC,CAIhC,iBAJgC,CAKhC,MALgC,CAMhC,MANgC,CAOhC,YAPgC,CAQhC,OARgC,CAShC,aATgC,CAA3B,CAaP,MAAO,IAAMC,0BAAyB,CAAGD,kBAAkB,CAAC,CAAD,CAApD,CAGP,MAAO,IAAME,kCAAiC,CAAGH,uBAA1C,CAKP,MAAO,IAAMI,qBAAoB,CAAG,CAClC,YADkC,CAElC,qBAFkC,CAGlC,+BAHkC,CAIlC,0BAJkC,CAA7B,CAsBP,MAAO,IAAMC,2BAA0B,CAAG,CACxC,SADwC,CAExC,OAFwC,CAGxC,OAHwC,CAAnC,CAOP,MAAO,IAAMC,kCAAiC,CAAGD,0BAA0B,CAAC,CAAD,CAApE"}
|
|
1
|
+
{"version":3,"file":"types.js","names":["dateTimePropViewDefault","datePickerPropType","datePickerPropTypeDefault","datePickerPropDateTimeViewDefault","datePickerErrorTypes","datePickerPropDropdownForm","datePickerPropDropdownFormDefault"],"sources":["../../../../../src/components/DatePicker/types.ts"],"sourcesContent":["import { IconComponent, IconPropSize } from '@consta/icons/Icon';\nimport { Locale } from 'date-fns';\n\nimport { DateRange } from '../../utils/types/Date';\nimport { PropsWithHTMLAttributesAndRef } from '../../utils/types/PropsWithHTMLAttributes';\nimport {\n DateTimePropDisableDates,\n DateTimePropView,\n dateTimePropViewDefault,\n TimeOptions,\n} from '../DateTime/helpers';\nimport {\n TextFieldPropForm,\n TextFieldPropSize,\n TextFieldPropStatus,\n TextFieldPropView,\n} from '../TextField/TextField';\n\nexport const datePickerPropType = [\n 'date',\n 'date-range',\n 'date-time',\n 'date-time-range',\n 'time',\n 'year',\n 'year-range',\n 'month',\n 'month-range',\n] as const;\n\nexport type DatePickerPropType = typeof datePickerPropType[number];\nexport const datePickerPropTypeDefault = datePickerPropType[0];\n\nexport type DatePickerPropDateTimeView = DateTimePropView;\nexport const datePickerPropDateTimeViewDefault = dateTimePropViewDefault;\n\ntype Range = 'date-range' | 'date-time-range' | 'year-range' | 'month-range';\ntype Time = 'time' | 'date-time' | 'date-time-range';\n\nexport const datePickerErrorTypes = [\n 'outOfRange',\n 'invalidInputAttempt',\n 'startDateIsGreaterThanEndDate',\n 'invalidTimeByTimeOptions',\n] as const;\n\nexport type DatePickerPropValue<TYPE extends DatePickerPropType> =\n | (TYPE extends Range ? DateRange : Date)\n | null;\n\nexport type DatePickerPropPlaceholder<TYPE> = TYPE extends Range\n ? [string?, string?] | string\n : string;\n\nexport type DatePickerPropOnChange<TYPE extends DatePickerPropType> = (\n value: DatePickerPropValue<TYPE>,\n props: {\n e: React.MouseEvent<HTMLButtonElement, MouseEvent> | Event;\n },\n) => void;\n\nexport const datePickerPropDropdownForm = [\n 'default',\n 'brick',\n 'round',\n] as const;\nexport type DatePickerPropDropdownForm =\n typeof datePickerPropDropdownForm[number];\nexport const datePickerPropDropdownFormDefault = datePickerPropDropdownForm[0];\n\ntype DatePickerPropInputRef<TYPE> = TYPE extends Range\n ? [React.Ref<HTMLInputElement>?, React.Ref<HTMLInputElement>?]\n : React.Ref<HTMLInputElement>;\n\ntype DatePickerPropSide<TYPE> = TYPE extends Range\n ?\n | [(string | IconComponent)?, (string | IconComponent)?]\n | string\n | IconComponent\n : string | IconComponent;\n\ntype DatePickerPropOnFocus<TYPE> = TYPE extends Range\n ?\n | [\n React.FocusEventHandler<HTMLElement>?,\n React.FocusEventHandler<HTMLElement>?,\n ]\n | React.FocusEventHandler<HTMLElement>\n : React.FocusEventHandler<HTMLElement>;\n\ntype DatePickerPropName<TYPE> = TYPE extends Range\n ? [string?, string?] | string\n : string;\n\nexport type DatePickerAdditionalControlRenderFn = (props: {\n currentVisibleDate?: Date;\n}) => React.ReactNode | React.ReactNode[];\n\nexport type DatePickerAdditionalControlRenderProp =\n | React.ReactNode\n | DatePickerAdditionalControlRenderFn;\n\nexport type DatePickerProps<TYPE extends DatePickerPropType = 'date'> =\n PropsWithHTMLAttributesAndRef<\n {\n type?: TYPE;\n value?: DatePickerPropValue<TYPE>;\n onChange?: DatePickerPropOnChange<TYPE>;\n minDate?: Date;\n maxDate?: Date;\n renderAdditionalControls?: DatePickerAdditionalControlRenderProp;\n events?: Date[];\n dateTimeView?: DatePickerPropDateTimeView;\n locale?: Locale;\n children?: never;\n onError?: DatePickerPropOnError;\n id?: string;\n name?: DatePickerPropName<TYPE>;\n disabled?: boolean;\n disableDates?: DateTimePropDisableDates;\n dropdownClassName?: string;\n dropdownRef?: React.Ref<HTMLDivElement>;\n size?: TextFieldPropSize;\n view?: TextFieldPropView;\n form?: TextFieldPropForm;\n status?: TextFieldPropStatus;\n onFocus?: DatePickerPropOnFocus<TYPE>;\n onBlur?: DatePickerPropOnFocus<TYPE>;\n autoFocus?: boolean;\n placeholder?: DatePickerPropPlaceholder<TYPE>;\n readOnly?: boolean;\n required?: boolean;\n tabIndex?: number;\n inputRef?: DatePickerPropInputRef<TYPE>;\n ariaLabel?: string;\n iconSize?: IconPropSize;\n format?: string;\n separator?: string;\n dropdownForm?: DatePickerPropDropdownForm;\n leftSide?: DatePickerPropSide<TYPE>;\n rightSide?: DatePickerPropSide<TYPE>;\n label?: string;\n labelIcon?: IconComponent;\n caption?: string;\n labelPosition?: 'top' | 'left';\n onChangeCurrentVisibleDate?: (date: Date) => void;\n currentVisibleDate?: Date;\n timeOptions?: TYPE extends Time ? TimeOptions : never;\n /**\n * @deprecated Use timeOptions instead.\n * TODO: major - удалить при мажорном релизе все свойства multiplicity*, оставив только работу с timeOptions.\n */\n multiplicitySeconds?: TYPE extends Time ? number : never;\n /**\n * @deprecated Use timeOptions instead.\n * TODO: major - удалить при мажорном релизе все свойства multiplicity*, оставив только работу с timeOptions.\n */\n multiplicityMinutes?: TYPE extends Time ? number : never;\n /**\n * @deprecated Use timeOptions instead.\n * TODO: major - удалить при мажорном релизе все свойства multiplicity*, оставив только работу с timeOptions.\n */\n multiplicityHours?: TYPE extends Time ? number : never;\n isMobile?: number;\n withClearButton?: boolean;\n onDropdownOpen?: (isOpen: boolean) => void;\n dropdownOpen?: boolean;\n ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;\n dropdownViewportRef?: React.RefObject<HTMLElement>;\n },\n HTMLDivElement\n >;\n\nexport type DatePickerComponent = <TYPE extends DatePickerPropType = 'date'>(\n props: DatePickerProps<TYPE>,\n) => React.ReactNode | null;\n\nexport type DatePickerTypeComponent<TYPE extends DatePickerPropType> = (\n props: Omit<DatePickerProps<TYPE>, 'type'>,\n) => React.ReactNode | null;\n\nexport type DatePickerPropOnError = (\n props:\n | {\n type: typeof datePickerErrorTypes[0];\n stringValue: string;\n dd?: string;\n MM?: string;\n yyyy?: string;\n ss?: string;\n mm?: string;\n HH?: string;\n date: Date;\n }\n | {\n type: typeof datePickerErrorTypes[1];\n stringValue: string;\n dd?: string;\n MM?: string;\n yyyy?: string;\n ss?: string;\n mm?: string;\n HH?: string;\n }\n | {\n type: typeof datePickerErrorTypes[2];\n date: [Date, Date];\n }\n | {\n type: typeof datePickerErrorTypes[3];\n stringValue: string;\n date: Date;\n HH?: string;\n mm?: string;\n ss?: string;\n },\n) => void;\n"],"mappings":"AAKA,OAGEA,uBAHF,2BAaA,MAAO,IAAMC,mBAAkB,CAAG,CAChC,MADgC,CAEhC,YAFgC,CAGhC,WAHgC,CAIhC,iBAJgC,CAKhC,MALgC,CAMhC,MANgC,CAOhC,YAPgC,CAQhC,OARgC,CAShC,aATgC,CAA3B,CAaP,MAAO,IAAMC,0BAAyB,CAAGD,kBAAkB,CAAC,CAAD,CAApD,CAGP,MAAO,IAAME,kCAAiC,CAAGH,uBAA1C,CAKP,MAAO,IAAMI,qBAAoB,CAAG,CAClC,YADkC,CAElC,qBAFkC,CAGlC,+BAHkC,CAIlC,0BAJkC,CAA7B,CAsBP,MAAO,IAAMC,2BAA0B,CAAG,CACxC,SADwC,CAExC,OAFwC,CAGxC,OAHwC,CAAnC,CAOP,MAAO,IAAMC,kCAAiC,CAAGD,0BAA0B,CAAC,CAAD,CAApE"}
|
package/__internal__/src/components/FieldComponents/FieldControlLayout/FieldControlLayout.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","size","form","disabled","view","status","leftSide","rightSide","children","style","focused","leftSlotsRefs","rightSlotsRefs","alignSlots"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import React,{forwardRef}from"react";import{useFlag}from"../../../hooks/useFlag";import{forkRef}from"../../../hooks/useForkRef";import{useRefs}from"../../../hooks/useRefs";import{getElementWidth,useResizeObserved}from"../../../hooks/useResizeObserved";import{cnFieldControlLayout}from"./cnFieldControlLayout";import{formGuard,getBgColor,getBorderColor,getBorderRadius,getBorderStyle,getPaddingLeft,getPaddingRight,getPaddingVertical,getSlots,getSlotsWidthStyles}from"./helpers";var renderContentSlot=function(a,b,c,d){return React.createElement("div",{key:b,ref:forkRef([null===c||void 0===c?void 0:c[b],null===d||void 0===d?void 0:d[b]]),className:cnFieldControlLayout("Slot")},a)};export var FieldControlLayout=forwardRef(function(a,b){var c,d=a.className,e=a.size,f=void 0===e?"m":e,g=a.form,h=void 0===g?"default":g,i=a.disabled,j=void 0!==i&&i,k=a.view,l=void 0===k?"default":k,m=a.status,n=a.leftSide,o=a.rightSide,p=a.children,q=a.style,r=a.focused,s=a.leftSlotsRefs,t=a.rightSlotsRefs,u=a.alignSlots,v=void 0===u?"top":u,w=_objectWithoutProperties(a,_excluded),x=getSlots(n),y=getSlots(o),z=useRefs(x.length),A=useRefs(1),B=useRefs(y.length),C=useResizeObserved(z,getElementWidth),D=useResizeObserved(B,getElementWidth),E=useResizeObserved(A,getElementWidth)[0],F=formGuard(h),G=useFlag(),H=_slicedToArray(G,2),I=H[0],J=H[1];return React.createElement("div",Object.assign({},w,{ref:b,className:cnFieldControlLayout({form:F,disabled:j,view:l,alignSlots:v,status:m},[d]),style:_objectSpread(_objectSpread(_objectSpread({},q),{},(c={},_defineProperty(c,"--field-control-layout-border-color",getBorderColor(r,I,m,j)),_defineProperty(c,"--field-control-layout-height","var(--control-height-".concat(f,")")),_defineProperty(c,"--field-control-layout-space","calc(var(--control-space-".concat(f,") * 0.5)")),_defineProperty(c,"--field-control-layout-text-size","var(--control-text-size-".concat(f,")")),_defineProperty(c,"--field-control-layout-text-line-height","var(--line-height-text-
|
|
1
|
+
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","size","form","disabled","view","status","leftSide","rightSide","children","style","focused","leftSlotsRefs","rightSlotsRefs","alignSlots"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import React,{forwardRef}from"react";import{useFlag}from"../../../hooks/useFlag";import{forkRef}from"../../../hooks/useForkRef";import{useRefs}from"../../../hooks/useRefs";import{getElementWidth,useResizeObserved}from"../../../hooks/useResizeObserved";import{cnFieldControlLayout}from"./cnFieldControlLayout";import{formGuard,getBgColor,getBorderColor,getBorderRadius,getBorderStyle,getPaddingLeft,getPaddingRight,getPaddingVertical,getSlots,getSlotsWidthStyles}from"./helpers";var renderContentSlot=function(a,b,c,d){return React.createElement("div",{key:b,ref:forkRef([null===c||void 0===c?void 0:c[b],null===d||void 0===d?void 0:d[b]]),className:cnFieldControlLayout("Slot")},a)};export var FieldControlLayout=forwardRef(function(a,b){var c,d=a.className,e=a.size,f=void 0===e?"m":e,g=a.form,h=void 0===g?"default":g,i=a.disabled,j=void 0!==i&&i,k=a.view,l=void 0===k?"default":k,m=a.status,n=a.leftSide,o=a.rightSide,p=a.children,q=a.style,r=a.focused,s=a.leftSlotsRefs,t=a.rightSlotsRefs,u=a.alignSlots,v=void 0===u?"top":u,w=_objectWithoutProperties(a,_excluded),x=getSlots(n),y=getSlots(o),z=useRefs(x.length),A=useRefs(1),B=useRefs(y.length),C=useResizeObserved(z,getElementWidth),D=useResizeObserved(B,getElementWidth),E=useResizeObserved(A,getElementWidth)[0],F=formGuard(h),G=useFlag(),H=_slicedToArray(G,2),I=H[0],J=H[1];return React.createElement("div",Object.assign({},w,{ref:b,className:cnFieldControlLayout({form:F,disabled:j,view:l,alignSlots:v,status:m},[d]),style:_objectSpread(_objectSpread(_objectSpread({},q),{},(c={},_defineProperty(c,"--field-control-layout-border-color",getBorderColor(r,I,m,j)),_defineProperty(c,"--field-control-layout-height","var(--control-height-".concat(f,")")),_defineProperty(c,"--field-control-layout-space","calc(var(--control-space-".concat(f,") * 0.5)")),_defineProperty(c,"--field-control-layout-text-size","var(--control-text-size-".concat(f,")")),_defineProperty(c,"--field-control-layout-text-line-height","var(--line-height-text-m)"),_defineProperty(c,"--field-control-layout-border-radius",getBorderRadius(F,l)),_defineProperty(c,"--field-control-layout-border-style",getBorderStyle(F,l)),_defineProperty(c,"--field-control-layout-padding-top",getPaddingVertical(l)),_defineProperty(c,"--field-control-layout-padding-bottom",getPaddingVertical(l)),_defineProperty(c,"--field-control-layout-padding-left",getPaddingLeft(l,F)),_defineProperty(c,"--field-control-layout-padding-right",getPaddingRight(l,F)),_defineProperty(c,"--field-control-layout-bg-color",getBgColor(l,j)),_defineProperty(c,"--field-control-layout-border-width","default"===l?"var(--control-border-width)":"0px"),_defineProperty(c,"--field-control-layout-container-width","".concat(E,"px")),c),getSlotsWidthStyles(C,"left")),getSlotsWidthStyles(D,"right")),onMouseEnter:J.on,onMouseLeave:J.off}),React.createElement("div",{ref:A[0],className:cnFieldControlLayout("Container")},!!x.length&&x.map(function(a,b){return renderContentSlot(a,b,z,s)}),React.createElement("div",{className:cnFieldControlLayout("Children")},p),!!y.length&&y.map(function(a,b){return renderContentSlot(a,b,B,t)})))});
|
|
2
2
|
//# sourceMappingURL=FieldControlLayout.js.map
|
package/__internal__/src/components/FieldComponents/FieldControlLayout/FieldControlLayout.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldControlLayout.js","names":["React","forwardRef","useFlag","forkRef","useRefs","getElementWidth","useResizeObserved","cnFieldControlLayout","formGuard","getBgColor","getBorderColor","getBorderRadius","getBorderStyle","getPaddingLeft","getPaddingRight","getPaddingVertical","getSlots","getSlotsWidthStyles","renderContentSlot","node","index","slotsInnerRefs","slotsRefs","FieldControlLayout","props","ref","className","size","form","formProp","disabled","view","status","leftSide","rightSide","children","style","focused","leftSlotsRefsProp","leftSlotsRefs","rightSlotsRefsProp","rightSlotsRefs","alignSlots","otherProps","leftSlots","rightSlots","length","containerRefs","leftSlotsWidth","rightSlotsWidth","containerWidth","hovered","setHovered","on","off","map","slot"],"sources":["../../../../../../src/components/FieldComponents/FieldControlLayout/FieldControlLayout.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { useFlag } from '##/hooks/useFlag';\nimport { forkRef } from '##/hooks/useForkRef';\nimport { useRefs } from '##/hooks/useRefs';\nimport { getElementWidth, useResizeObserved } from '##/hooks/useResizeObserved';\n\nimport { cnFieldControlLayout } from './cnFieldControlLayout';\nimport {\n formGuard,\n getBgColor,\n getBorderColor,\n getBorderRadius,\n getBorderStyle,\n getPaddingLeft,\n getPaddingRight,\n getPaddingVertical,\n getSlots,\n getSlotsWidthStyles,\n} from './helpers';\nimport { FieldControlLayoutProps } from './types';\n\nconst renderContentSlot = (\n node: React.ReactNode,\n index: number,\n slotsInnerRefs?: React.Ref<HTMLDivElement>[],\n slotsRefs?: React.Ref<HTMLDivElement>[],\n) => (\n <div\n key={index}\n ref={forkRef([slotsInnerRefs?.[index], slotsRefs?.[index]])}\n className={cnFieldControlLayout('Slot')}\n >\n {node}\n </div>\n);\n\nexport const FieldControlLayout = forwardRef<\n HTMLDivElement,\n FieldControlLayoutProps\n>((props, ref) => {\n const {\n className,\n size = 'm',\n form: formProp = 'default',\n disabled = false,\n view = 'default',\n status,\n leftSide,\n rightSide,\n children,\n style,\n focused,\n leftSlotsRefs: leftSlotsRefsProp,\n rightSlotsRefs: rightSlotsRefsProp,\n alignSlots = 'top',\n ...otherProps\n } = props;\n const leftSlots = getSlots(leftSide);\n const rightSlots = getSlots(rightSide);\n const leftSlotsRefs = useRefs<HTMLDivElement>(leftSlots.length);\n const containerRefs = useRefs<HTMLDivElement>(1);\n const rightSlotsRefs = useRefs<HTMLDivElement>(rightSlots.length);\n const leftSlotsWidth = useResizeObserved(leftSlotsRefs, getElementWidth);\n const rightSlotsWidth = useResizeObserved(rightSlotsRefs, getElementWidth);\n const containerWidth = useResizeObserved(containerRefs, getElementWidth)[0];\n\n // ToDo: Удалить после того как удалим из всех компонентов \"clearClear\"\n const form = formGuard(formProp);\n\n const [hovered, setHovered] = useFlag();\n\n return (\n <div\n {...otherProps}\n ref={ref}\n className={cnFieldControlLayout(\n { form, disabled, view, alignSlots, status },\n [className],\n )}\n style={{\n ...style,\n ['--field-control-layout-border-color' as string]: getBorderColor(\n focused,\n hovered,\n status,\n disabled,\n ),\n ['--field-control-layout-height' as string]: `var(--control-height-${size})`,\n ['--field-control-layout-space' as string]: `calc(var(--control-space-${size}) * 0.5)`,\n ['--field-control-layout-text-size' as string]: `var(--control-text-size-${size})`,\n ['--field-control-layout-text-line-height' as string]: `var(--line-height-text
|
|
1
|
+
{"version":3,"file":"FieldControlLayout.js","names":["React","forwardRef","useFlag","forkRef","useRefs","getElementWidth","useResizeObserved","cnFieldControlLayout","formGuard","getBgColor","getBorderColor","getBorderRadius","getBorderStyle","getPaddingLeft","getPaddingRight","getPaddingVertical","getSlots","getSlotsWidthStyles","renderContentSlot","node","index","slotsInnerRefs","slotsRefs","FieldControlLayout","props","ref","className","size","form","formProp","disabled","view","status","leftSide","rightSide","children","style","focused","leftSlotsRefsProp","leftSlotsRefs","rightSlotsRefsProp","rightSlotsRefs","alignSlots","otherProps","leftSlots","rightSlots","length","containerRefs","leftSlotsWidth","rightSlotsWidth","containerWidth","hovered","setHovered","on","off","map","slot"],"sources":["../../../../../../src/components/FieldComponents/FieldControlLayout/FieldControlLayout.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { useFlag } from '##/hooks/useFlag';\nimport { forkRef } from '##/hooks/useForkRef';\nimport { useRefs } from '##/hooks/useRefs';\nimport { getElementWidth, useResizeObserved } from '##/hooks/useResizeObserved';\n\nimport { cnFieldControlLayout } from './cnFieldControlLayout';\nimport {\n formGuard,\n getBgColor,\n getBorderColor,\n getBorderRadius,\n getBorderStyle,\n getPaddingLeft,\n getPaddingRight,\n getPaddingVertical,\n getSlots,\n getSlotsWidthStyles,\n} from './helpers';\nimport { FieldControlLayoutProps } from './types';\n\nconst renderContentSlot = (\n node: React.ReactNode,\n index: number,\n slotsInnerRefs?: React.Ref<HTMLDivElement>[],\n slotsRefs?: React.Ref<HTMLDivElement>[],\n) => (\n <div\n key={index}\n ref={forkRef([slotsInnerRefs?.[index], slotsRefs?.[index]])}\n className={cnFieldControlLayout('Slot')}\n >\n {node}\n </div>\n);\n\nexport const FieldControlLayout = forwardRef<\n HTMLDivElement,\n FieldControlLayoutProps\n>((props, ref) => {\n const {\n className,\n size = 'm',\n form: formProp = 'default',\n disabled = false,\n view = 'default',\n status,\n leftSide,\n rightSide,\n children,\n style,\n focused,\n leftSlotsRefs: leftSlotsRefsProp,\n rightSlotsRefs: rightSlotsRefsProp,\n alignSlots = 'top',\n ...otherProps\n } = props;\n const leftSlots = getSlots(leftSide);\n const rightSlots = getSlots(rightSide);\n const leftSlotsRefs = useRefs<HTMLDivElement>(leftSlots.length);\n const containerRefs = useRefs<HTMLDivElement>(1);\n const rightSlotsRefs = useRefs<HTMLDivElement>(rightSlots.length);\n const leftSlotsWidth = useResizeObserved(leftSlotsRefs, getElementWidth);\n const rightSlotsWidth = useResizeObserved(rightSlotsRefs, getElementWidth);\n const containerWidth = useResizeObserved(containerRefs, getElementWidth)[0];\n\n // ToDo: Удалить после того как удалим из всех компонентов \"clearClear\"\n const form = formGuard(formProp);\n\n const [hovered, setHovered] = useFlag();\n\n return (\n <div\n {...otherProps}\n ref={ref}\n className={cnFieldControlLayout(\n { form, disabled, view, alignSlots, status },\n [className],\n )}\n style={{\n ...style,\n ['--field-control-layout-border-color' as string]: getBorderColor(\n focused,\n hovered,\n status,\n disabled,\n ),\n ['--field-control-layout-height' as string]: `var(--control-height-${size})`,\n ['--field-control-layout-space' as string]: `calc(var(--control-space-${size}) * 0.5)`,\n ['--field-control-layout-text-size' as string]: `var(--control-text-size-${size})`,\n ['--field-control-layout-text-line-height' as string]: `var(--line-height-text-m)`,\n ['--field-control-layout-border-radius' as string]: getBorderRadius(\n form,\n view,\n ),\n ['--field-control-layout-border-style' as string]: getBorderStyle(\n form,\n view,\n ),\n ['--field-control-layout-padding-top' as string]:\n getPaddingVertical(view),\n ['--field-control-layout-padding-bottom' as string]:\n getPaddingVertical(view),\n ['--field-control-layout-padding-left' as string]: getPaddingLeft(\n view,\n form,\n ),\n ['--field-control-layout-padding-right' as string]: getPaddingRight(\n view,\n form,\n ),\n // ['--field-control-layout-padding' as string]: getPadding(form, view),\n ['--field-control-layout-bg-color' as string]: getBgColor(\n view,\n disabled,\n ),\n ['--field-control-layout-border-width' as string]:\n view === 'default' ? 'var(--control-border-width)' : '0px',\n ['--field-control-layout-container-width' as string]: `${containerWidth}px`,\n ...getSlotsWidthStyles(leftSlotsWidth, 'left'),\n ...getSlotsWidthStyles(rightSlotsWidth, 'right'),\n }}\n onMouseEnter={setHovered.on}\n onMouseLeave={setHovered.off}\n >\n <div ref={containerRefs[0]} className={cnFieldControlLayout('Container')}>\n {!!leftSlots.length &&\n leftSlots.map((slot, index) =>\n renderContentSlot(slot, index, leftSlotsRefs, leftSlotsRefsProp),\n )}\n <div className={cnFieldControlLayout('Children')}>{children}</div>\n {!!rightSlots.length &&\n rightSlots.map((slot, index) =>\n renderContentSlot(slot, index, rightSlotsRefs, rightSlotsRefsProp),\n )}\n </div>\n </div>\n );\n});\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{isNotNil}from"../../../utils/type-guards";import{borderRadiusMap,borderWidthMap,paddingMap}from"./maps";export var getSlots=function(a){return(Array.isArray(a)?a:[a]).filter(function(a){return isNotNil(a)&&!1!==a})};var borderToCss=function(a){return a?"solid":"none"};export var getBorderStyle=function(a,b){return"default"===b?"solid ".concat(borderToCss(borderWidthMap[a][1])," solid ").concat(borderToCss(borderWidthMap[a][0])):"none"};var paddingToCss=function(a){return"increased"===a?"calc(var(--field-control-layout-space) * 1.6)":"var(--field-control-layout-space)"};export var getPaddingVertical=function(a){return"default"===a?"0px":"var(--control-border-width)"};export var getPaddingLeft=function(a,b){return"default"===a?paddingToCss(paddingMap[b][0]):"0px"};export var getPaddingRight=function(a,b){return"default"===a?paddingToCss(paddingMap[b][1]):"0px"};var borderRadiusToCss=function(a){return"default"===a?"var(--control-radius)":"round"===a?"calc(var(--field-control-layout-height) / 2)":"0px"};export var getBorderRadius=function(a,b){return"default"===b?borderRadiusMap[a].map(borderRadiusToCss).join(" "):"0px 0px 0px 0px"};export var getBorderColor=function(a,b,c,d){return d?"transparent":a?"var(--color-control-bg-border-focus)":b?"var(--color-control-bg-border-default-hover)":c?"var(--color-bg-".concat(c,")"):"var(--color-control-bg-border-default)"};export var getBgColor=function(a,b){return"default"===a&&b?"var(--color-control-bg-disable)":"default"===a?"var(--color-bg-default)":void 0};export var getSlotsWidthStyles=function(a,b){for(var c={},d=0;d<a.length;d++)c["--field-control-layout-".concat(b,"-slot-content-width-").concat(d)]="".concat(a[d],"px");return c["--field-control-layout-".concat(b,"-slot-contents-width")]="".concat(a.length?a.reduce(function(c,a){return c+a}):0,"px"),c["--field-control-layout-".concat(b,"-slots-length")]="".concat(a.length),c};export var formGuard=function(a){return"clearClear"===a?"clear":a};
|
|
1
|
+
import{isNotNil}from"../../../utils/type-guards";import{borderRadiusMap,borderWidthMap,paddingMap}from"./maps";export var getSlots=function(a){return(Array.isArray(a)?a:[a]).filter(function(a){return isNotNil(a)&&!1!==a})};var borderToCss=function(a){return a?"solid":"none"};export var getBorderStyle=function(a,b){return"default"===b?"solid ".concat(borderToCss(borderWidthMap[a][1])," solid ").concat(borderToCss(borderWidthMap[a][0])):"none"};var paddingToCss=function(a){var b=1<arguments.length&&arguments[1]!==void 0?arguments[1]:"0px";return"increased"===a?"calc(var(--field-control-layout-space) * 1.6 + ".concat(b,")"):"calc(var(--field-control-layout-space) + ".concat(b,")")};export var getPaddingVertical=function(a){return"default"===a?"0px":"var(--control-border-width)"};export var getPaddingLeft=function(a,b){return"default"===a?paddingToCss(paddingMap[b][0],"var(--field-control-layout-additional-padding-left, 0px)"):"var(--field-control-layout-additional-padding-left, 0px)"};export var getPaddingRight=function(a,b){return"default"===a?paddingToCss(paddingMap[b][1],"var(--field-control-layout-additional-padding-right, 0px)"):"var(--field-control-layout-additional-padding-right, 0px)"};var borderRadiusToCss=function(a){return"default"===a?"var(--control-radius)":"round"===a?"calc(var(--field-control-layout-height) / 2)":"0px"};export var getBorderRadius=function(a,b){return"default"===b?borderRadiusMap[a].map(borderRadiusToCss).join(" "):"0px 0px 0px 0px"};export var getBorderColor=function(a,b,c,d){return d?"transparent":a?"var(--color-control-bg-border-focus)":b?"var(--color-control-bg-border-default-hover)":c?"var(--color-bg-".concat(c,")"):"var(--color-control-bg-border-default)"};export var getBgColor=function(a,b){return"default"===a&&b?"var(--color-control-bg-disable)":"default"===a?"var(--color-bg-default)":void 0};export var getSlotsWidthStyles=function(a,b){for(var c={},d=0;d<a.length;d++)c["--field-control-layout-".concat(b,"-slot-content-width-").concat(d)]="".concat(a[d],"px");return c["--field-control-layout-".concat(b,"-slot-contents-width")]="".concat(a.length?a.reduce(function(c,a){return c+a}):0,"px"),c["--field-control-layout-".concat(b,"-slots-length")]="".concat(a.length),c};export var formGuard=function(a){return"clearClear"===a?"clear":a};
|
|
2
2
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":["isNotNil","borderRadiusMap","borderWidthMap","paddingMap","getSlots","side","Array","isArray","filter","item","borderToCss","value","getBorderStyle","form","view","paddingToCss","getPaddingVertical","getPaddingLeft","getPaddingRight","borderRadiusToCss","getBorderRadius","map","join","getBorderColor","focused","hovered","status","disabled","getBgColor","getSlotsWidthStyles","sizes","postfix","style","index","length","reduce","a","b","formGuard","from"],"sources":["../../../../../../src/components/FieldComponents/FieldControlLayout/helpers.ts"],"sourcesContent":["import React, { CSSProperties } from 'react';\n\nimport { isNotNil } from '##/utils/type-guards';\n\nimport { FieldPropForm, FieldPropStatus, FieldPropView } from '../types';\nimport {\n borderRadiusMap,\n borderWidthMap,\n FieldControlLayoutBorderRadiusNode,\n FieldControlLayoutBorderWidthNode,\n FieldControlLayoutPaddingNode,\n paddingMap,\n} from './maps';\n\nexport const getSlots = (\n side: React.ReactNode | React.ReactNode[],\n): React.ReactNode[] => {\n return ((Array.isArray(side) ? side : [side]) as []).filter(\n (item) => isNotNil(item) && item !== false,\n );\n};\n\nconst borderToCss = (value: FieldControlLayoutBorderWidthNode) => {\n return value ? 'solid' : 'none';\n};\n\nexport const getBorderStyle = (\n form: FieldPropForm,\n view: FieldPropView,\n): string => {\n return view === 'default'\n ? `solid ${borderToCss(borderWidthMap[form][1])} solid ${borderToCss(\n borderWidthMap[form][0],\n )}`\n : `none`;\n};\n\nconst paddingToCss = (value: FieldControlLayoutPaddingNode): string => {\n return value === 'increased'\n ?
|
|
1
|
+
{"version":3,"file":"helpers.js","names":["isNotNil","borderRadiusMap","borderWidthMap","paddingMap","getSlots","side","Array","isArray","filter","item","borderToCss","value","getBorderStyle","form","view","paddingToCss","additional","getPaddingVertical","getPaddingLeft","getPaddingRight","borderRadiusToCss","getBorderRadius","map","join","getBorderColor","focused","hovered","status","disabled","getBgColor","getSlotsWidthStyles","sizes","postfix","style","index","length","reduce","a","b","formGuard","from"],"sources":["../../../../../../src/components/FieldComponents/FieldControlLayout/helpers.ts"],"sourcesContent":["import React, { CSSProperties } from 'react';\n\nimport { isNotNil } from '##/utils/type-guards';\n\nimport { FieldPropForm, FieldPropStatus, FieldPropView } from '../types';\nimport {\n borderRadiusMap,\n borderWidthMap,\n FieldControlLayoutBorderRadiusNode,\n FieldControlLayoutBorderWidthNode,\n FieldControlLayoutPaddingNode,\n paddingMap,\n} from './maps';\n\nexport const getSlots = (\n side: React.ReactNode | React.ReactNode[],\n): React.ReactNode[] => {\n return ((Array.isArray(side) ? side : [side]) as []).filter(\n (item) => isNotNil(item) && item !== false,\n );\n};\n\nconst borderToCss = (value: FieldControlLayoutBorderWidthNode) => {\n return value ? 'solid' : 'none';\n};\n\nexport const getBorderStyle = (\n form: FieldPropForm,\n view: FieldPropView,\n): string => {\n return view === 'default'\n ? `solid ${borderToCss(borderWidthMap[form][1])} solid ${borderToCss(\n borderWidthMap[form][0],\n )}`\n : `none`;\n};\n\nconst paddingToCss = (\n value: FieldControlLayoutPaddingNode,\n additional: string = '0px',\n): string => {\n return value === 'increased'\n ? `calc(var(--field-control-layout-space) * 1.6 + ${additional})`\n : `calc(var(--field-control-layout-space) + ${additional})`;\n};\n\nexport const getPaddingVertical = (view: FieldPropView): string => {\n return view === 'default' ? '0px' : 'var(--control-border-width)';\n};\n\nexport const getPaddingLeft = (\n view: FieldPropView,\n form: FieldPropForm,\n): string => {\n return view === 'default'\n ? paddingToCss(\n paddingMap[form][0],\n 'var(--field-control-layout-additional-padding-left, 0px)',\n )\n : `var(--field-control-layout-additional-padding-left, 0px)`;\n};\n\nexport const getPaddingRight = (\n view: FieldPropView,\n form: FieldPropForm,\n): string => {\n return view === 'default'\n ? paddingToCss(\n paddingMap[form][1],\n 'var(--field-control-layout-additional-padding-right, 0px)',\n )\n : `var(--field-control-layout-additional-padding-right, 0px)`;\n};\n\nconst borderRadiusToCss = (\n value: FieldControlLayoutBorderRadiusNode,\n): string => {\n if (value === 'default') {\n return 'var(--control-radius)';\n }\n if (value === 'round') {\n return 'calc(var(--field-control-layout-height) / 2)';\n }\n return '0px';\n};\n\nexport const getBorderRadius = (\n form: FieldPropForm,\n view: FieldPropView,\n): string => {\n return view === 'default'\n ? borderRadiusMap[form].map(borderRadiusToCss).join(' ')\n : `0px 0px 0px 0px`;\n};\n\nexport const getBorderColor = (\n focused?: boolean,\n hovered?: boolean,\n status?: FieldPropStatus,\n disabled?: boolean,\n) => {\n if (disabled) {\n return 'transparent';\n }\n if (focused) {\n return 'var(--color-control-bg-border-focus)';\n }\n if (hovered) {\n return 'var(--color-control-bg-border-default-hover)';\n }\n if (status) {\n return `var(--color-bg-${status})`;\n }\n return 'var(--color-control-bg-border-default)';\n};\n\nexport const getBgColor = (view: FieldPropView, disabled?: boolean) => {\n if (view === 'default' && disabled) {\n return 'var(--color-control-bg-disable)';\n }\n if (view === 'default') {\n return 'var(--color-bg-default)';\n }\n};\n\nexport const getSlotsWidthStyles = (\n sizes: number[],\n postfix: string,\n): CSSProperties => {\n const style: CSSProperties = {};\n for (let index = 0; index < sizes.length; index++) {\n style[\n `--field-control-layout-${postfix}-slot-content-width-${index}` as 'width'\n ] = `${sizes[index]}px`;\n }\n\n style[\n `--field-control-layout-${postfix}-slot-contents-width` as 'width'\n ] = `${sizes.length ? sizes.reduce((a, b) => a + b) : 0}px`;\n\n style[\n `--field-control-layout-${postfix}-slots-length` as 'width'\n ] = `${sizes.length}`;\n\n return style;\n};\n\n// ToDo: Удалить после того как удалим из всех компонентов \"clearClear\"\nexport const formGuard = (from: FieldPropForm | 'clearClear'): FieldPropForm =>\n from === 'clearClear' ? 'clear' : from;\n"],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ export type FlatSelectRootProps = PropsWithHTMLAttributesAndRef<{
|
|
|
9
9
|
direction?: Direction;
|
|
10
10
|
spareDirection?: Direction;
|
|
11
11
|
possibleDirections?: Direction[];
|
|
12
|
+
viewportRef?: React.RefObject<HTMLElement>;
|
|
12
13
|
}, HTMLDivElement>;
|
|
13
14
|
export declare const cnFlatSelectRoot: import("@bem-react/classname").ClassNameFormatter;
|
|
14
15
|
export declare const FlatSelectRoot: React.FC<FlatSelectRootProps>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","anchorRef","openAtom","direction","spareDirection","possibleDirections"];import"./FlatSelectRoot.css";import{useAtom}from"@reatom/npm-react";import React,{forwardRef,useRef}from"react";import{Transition}from"react-transition-group";import{Popover}from"../../Popover";import{useForkRef}from"../../../hooks/useForkRef";import{animateTimeout,cnMixPopoverAnimate}from"../../../mixs/MixPopoverAnimate";import{cn}from"../../../utils/bem";export var cnFlatSelectRoot=cn("FlatSelectRoot");export var FlatSelectRoot=forwardRef(function(a,b){var c=a.className,d=a.anchorRef,e=a.openAtom,f=a.direction,g=void 0===f?"downStartLeft":f,h=a.spareDirection,i=void 0===h?"downStartLeft":h,j=a.possibleDirections,k=void 0===j?["downStartLeft","downStartRight","upStartLeft","upStartRight","leftStartDown","leftStartUp"]:j,l=_objectWithoutProperties(a,_excluded),
|
|
1
|
+
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["className","anchorRef","openAtom","direction","spareDirection","possibleDirections","viewportRef"];import"./FlatSelectRoot.css";import{useAtom}from"@reatom/npm-react";import React,{forwardRef,useRef}from"react";import{Transition}from"react-transition-group";import{Popover}from"../../Popover";import{useForkRef}from"../../../hooks/useForkRef";import{animateTimeout,cnMixPopoverAnimate}from"../../../mixs/MixPopoverAnimate";import{cn}from"../../../utils/bem";export var cnFlatSelectRoot=cn("FlatSelectRoot");export var FlatSelectRoot=forwardRef(function(a,b){var c=a.className,d=a.anchorRef,e=a.openAtom,f=a.direction,g=void 0===f?"downStartLeft":f,h=a.spareDirection,i=void 0===h?"downStartLeft":h,j=a.possibleDirections,k=void 0===j?["downStartLeft","downStartRight","upStartLeft","upStartRight","leftStartDown","leftStartUp"]:j,l=a.viewportRef,m=_objectWithoutProperties(a,_excluded),n=useRef(null),o=useForkRef([n,b]),p=!!d,q=useAtom(e),r=_slicedToArray(q,1),s=r[0];return p?React.createElement(Transition,{in:s,unmountOnExit:!0,timeout:animateTimeout,nodeRef:n},function(a){return React.createElement(Popover,Object.assign({},m,{className:cnFlatSelectRoot({withAnchor:p},[c,cnMixPopoverAnimate({animate:a})]),ref:o,anchorRef:d,equalAnchorWidth:!0,offset:"2xs",direction:g,spareDirection:i,possibleDirections:k,viewportRef:l}))}):React.createElement("div",Object.assign({},m,{className:cnFlatSelectRoot(null,[c]),ref:b}))});
|
|
2
2
|
//# sourceMappingURL=FlatSelectRoot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlatSelectRoot.js","names":["useAtom","React","forwardRef","useRef","Transition","Popover","useForkRef","animateTimeout","cnMixPopoverAnimate","cn","cnFlatSelectRoot","FlatSelectRoot","props","ref","className","anchorRef","openAtom","direction","spareDirection","possibleDirections","otherProps","contentRef","contentForkedRef","withAnchor","open","animate"],"sources":["../../../../../../src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.tsx"],"sourcesContent":["import './FlatSelectRoot.css';\n\nimport { AtomMut } from '@reatom/framework';\nimport { useAtom } from '@reatom/npm-react';\nimport React, { forwardRef, useRef } from 'react';\nimport { Transition } from 'react-transition-group';\n\nimport { Direction, Popover } from '##/components/Popover';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { animateTimeout, cnMixPopoverAnimate } from '##/mixs/MixPopoverAnimate';\nimport { cn } from '##/utils/bem';\nimport { PropsWithHTMLAttributesAndRef } from '##/utils/types/PropsWithHTMLAttributes';\n\nexport type FlatSelectRootProps = PropsWithHTMLAttributesAndRef<\n {\n anchorRef?: React.RefObject<HTMLElement>;\n openAtom: AtomMut<boolean>;\n direction?: Direction;\n spareDirection?: Direction;\n possibleDirections?: Direction[];\n },\n HTMLDivElement\n>;\n\nexport const cnFlatSelectRoot = cn('FlatSelectRoot');\n\nexport const FlatSelectRoot: React.FC<FlatSelectRootProps> = forwardRef(\n (props, ref) => {\n const {\n className,\n anchorRef,\n openAtom,\n direction = 'downStartLeft',\n spareDirection = 'downStartLeft',\n possibleDirections = [\n 'downStartLeft',\n 'downStartRight',\n 'upStartLeft',\n 'upStartRight',\n 'leftStartDown',\n 'leftStartUp',\n ],\n ...otherProps\n } = props;\n\n const contentRef = useRef(null);\n const contentForkedRef = useForkRef([contentRef, ref]);\n const withAnchor = !!anchorRef;\n const [open] = useAtom(openAtom);\n\n if (withAnchor) {\n return (\n <Transition\n in={open}\n unmountOnExit\n timeout={animateTimeout}\n nodeRef={contentRef}\n >\n {(animate) => (\n <Popover\n {...otherProps}\n className={cnFlatSelectRoot({ withAnchor }, [\n className,\n cnMixPopoverAnimate({ animate }),\n ])}\n ref={contentForkedRef}\n anchorRef={anchorRef}\n equalAnchorWidth\n offset=\"2xs\"\n direction={direction}\n spareDirection={spareDirection}\n possibleDirections={possibleDirections}\n />\n )}\n </Transition>\n );\n }\n\n return (\n <div\n {...otherProps}\n className={cnFlatSelectRoot(null, [className])}\n ref={ref}\n />\n );\n },\n);\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"FlatSelectRoot.js","names":["useAtom","React","forwardRef","useRef","Transition","Popover","useForkRef","animateTimeout","cnMixPopoverAnimate","cn","cnFlatSelectRoot","FlatSelectRoot","props","ref","className","anchorRef","openAtom","direction","spareDirection","possibleDirections","viewportRef","otherProps","contentRef","contentForkedRef","withAnchor","open","animate"],"sources":["../../../../../../src/components/FlatSelect/FlatSelectRoot/FlatSelectRoot.tsx"],"sourcesContent":["import './FlatSelectRoot.css';\n\nimport { AtomMut } from '@reatom/framework';\nimport { useAtom } from '@reatom/npm-react';\nimport React, { forwardRef, useRef } from 'react';\nimport { Transition } from 'react-transition-group';\n\nimport { Direction, Popover } from '##/components/Popover';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { animateTimeout, cnMixPopoverAnimate } from '##/mixs/MixPopoverAnimate';\nimport { cn } from '##/utils/bem';\nimport { PropsWithHTMLAttributesAndRef } from '##/utils/types/PropsWithHTMLAttributes';\n\nexport type FlatSelectRootProps = PropsWithHTMLAttributesAndRef<\n {\n anchorRef?: React.RefObject<HTMLElement>;\n openAtom: AtomMut<boolean>;\n direction?: Direction;\n spareDirection?: Direction;\n possibleDirections?: Direction[];\n viewportRef?: React.RefObject<HTMLElement>;\n },\n HTMLDivElement\n>;\n\nexport const cnFlatSelectRoot = cn('FlatSelectRoot');\n\nexport const FlatSelectRoot: React.FC<FlatSelectRootProps> = forwardRef(\n (props, ref) => {\n const {\n className,\n anchorRef,\n openAtom,\n direction = 'downStartLeft',\n spareDirection = 'downStartLeft',\n possibleDirections = [\n 'downStartLeft',\n 'downStartRight',\n 'upStartLeft',\n 'upStartRight',\n 'leftStartDown',\n 'leftStartUp',\n ],\n viewportRef,\n ...otherProps\n } = props;\n\n const contentRef = useRef(null);\n const contentForkedRef = useForkRef([contentRef, ref]);\n const withAnchor = !!anchorRef;\n const [open] = useAtom(openAtom);\n\n if (withAnchor) {\n return (\n <Transition\n in={open}\n unmountOnExit\n timeout={animateTimeout}\n nodeRef={contentRef}\n >\n {(animate) => (\n <Popover\n {...otherProps}\n className={cnFlatSelectRoot({ withAnchor }, [\n className,\n cnMixPopoverAnimate({ animate }),\n ])}\n ref={contentForkedRef}\n anchorRef={anchorRef}\n equalAnchorWidth\n offset=\"2xs\"\n direction={direction}\n spareDirection={spareDirection}\n possibleDirections={possibleDirections}\n viewportRef={viewportRef}\n />\n )}\n </Transition>\n );\n }\n\n return (\n <div\n {...otherProps}\n className={cnFlatSelectRoot(null, [className])}\n ref={ref}\n />\n );\n },\n);\n"],"mappings":"yQAAA,6BAGA,OAASA,OAAT,KAAwB,mBAAxB,CACA,MAAOC,MAAP,EAAgBC,UAAhB,CAA4BC,MAA5B,KAA0C,OAA1C,CACA,OAASC,UAAT,KAA2B,wBAA3B,CAEA,OAAoBC,OAApB,qBACA,OAASC,UAAT,iCACA,OAASC,cAAT,CAAyBC,mBAAzB,uCACA,OAASC,EAAT,0BAeA,MAAO,IAAMC,iBAAgB,CAAGD,EAAE,CAAC,gBAAD,CAA3B,CAEP,MAAO,IAAME,eAA6C,CAAGT,UAAU,CACrE,SAACU,CAAD,CAAQC,CAAR,CAAgB,IAEZC,EAFY,CAiBVF,CAjBU,CAEZE,SAFY,CAGZC,CAHY,CAiBVH,CAjBU,CAGZG,SAHY,CAIZC,CAJY,CAiBVJ,CAjBU,CAIZI,QAJY,GAiBVJ,CAjBU,CAKZK,SALY,CAKZA,CALY,YAKA,eALA,KAiBVL,CAjBU,CAMZM,cANY,CAMZA,CANY,YAMK,eANL,KAiBVN,CAjBU,CAOZO,kBAPY,CAOZA,CAPY,YAOS,CACnB,eADmB,CAEnB,gBAFmB,CAGnB,aAHmB,CAInB,cAJmB,CAKnB,eALmB,CAMnB,aANmB,CAPT,GAeZC,CAfY,CAiBVR,CAjBU,CAeZQ,WAfY,CAgBTC,CAhBS,0BAiBVT,CAjBU,YAmBRU,CAAU,CAAGnB,MAAM,CAAC,IAAD,CAnBX,CAoBRoB,CAAgB,CAAGjB,UAAU,CAAC,CAACgB,CAAD,CAAaT,CAAb,CAAD,CApBrB,CAqBRW,CAAU,CAAG,CAAC,CAACT,CArBP,GAsBCf,OAAO,CAACgB,CAAD,CAtBR,uBAsBPS,CAtBO,YAwBVD,EAxBU,CA0BV,oBAAC,UAAD,EACE,GAAIC,CADN,CAEE,aAAa,GAFf,CAGE,OAAO,CAAElB,cAHX,CAIE,OAAO,CAAEe,CAJX,EAMG,SAACI,CAAD,QACC,qBAAC,OAAD,kBACML,CADN,EAEE,SAAS,CAAEX,gBAAgB,CAAC,CAAEc,UAAU,CAAVA,CAAF,CAAD,CAAiB,CAC1CV,CAD0C,CAE1CN,mBAAmB,CAAC,CAAEkB,OAAO,CAAPA,CAAF,CAAD,CAFuB,CAAjB,CAF7B,CAME,GAAG,CAAEH,CANP,CAOE,SAAS,CAAER,CAPb,CAQE,gBAAgB,GARlB,CASE,MAAM,CAAC,KATT,CAUE,SAAS,CAAEE,CAVb,CAWE,cAAc,CAAEC,CAXlB,CAYE,kBAAkB,CAAEC,CAZtB,CAaE,WAAW,CAAEC,CAbf,GADD,CANH,CA1BU,CAsDZ,2CACMC,CADN,EAEE,SAAS,CAAEX,gBAAgB,CAAC,IAAD,CAAO,CAACI,CAAD,CAAP,CAF7B,CAGE,GAAG,CAAED,CAHP,GAMH,CA7DoE,CAAhE"}
|
|
@@ -101,6 +101,7 @@ export type FlatSelectPropsInit<ITEM = FlatSelectItemDefault, GROUP = FlatSelect
|
|
|
101
101
|
direction?: Direction;
|
|
102
102
|
spareDirection?: Direction;
|
|
103
103
|
possibleDirections?: Direction[];
|
|
104
|
+
viewportRef?: React.RefObject<HTMLElement>;
|
|
104
105
|
}, HTMLDivElement>;
|
|
105
106
|
/**
|
|
106
107
|
* Props for the FlatSelect component.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../../../src/components/FlatSelect/types.ts"],"sourcesContent":["import { IconComponent } from '@consta/icons/Icon';\nimport React from 'react';\n\nimport { FieldPropSize, FieldPropView } from '##/components/FieldComponents';\nimport { Direction } from '##/components/Popover';\nimport { PropsWithHTMLAttributesAndRef } from '##/utils/types/PropsWithHTMLAttributes';\n\nexport type RenderItemProps<ITEM> = {\n item: ITEM;\n active: boolean;\n hovered: boolean;\n onClick: (e: React.MouseEvent) => void;\n onMouseEnter: (e: React.MouseEvent) => void;\n ref: React.Ref<HTMLDivElement>;\n};\n\nexport type FlatSelectItemDefault = {\n label: string;\n id: string | number;\n groupId?: string | number;\n disabled?: boolean;\n};\n\nexport type FlatSelectGroupDefault = {\n label: string;\n id: string | number;\n};\n\nexport type FlatSelectPropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type FlatSelectPropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type FlatSelectPropGetItemGroupKey<ITEM> = (\n item: ITEM,\n) => string | number | undefined;\nexport type FlatSelectPropGetItemDisabled<ITEM> = (\n item: ITEM,\n) => boolean | undefined;\nexport type FlatSelectPropGetGroupKey<GROUP> = (\n group: GROUP,\n) => string | number;\nexport type FlatSelectPropGetGroupLabel<GROUP> = (group: GROUP) => string;\n\nexport type FlatSelectPropOnChange<ITEM, MULTIPLE extends boolean> = (\n value: (MULTIPLE extends true ? ITEM[] : ITEM) | null,\n props: {\n e: React.SyntheticEvent;\n },\n) => void;\nexport type FlatSelectPropValue<ITEM, MULTIPLE extends boolean> =\n | (MULTIPLE extends true ? ITEM[] : ITEM)\n | null\n | undefined;\n\nexport type FlatSelectPropRenderItem<ITEM> = (\n props: RenderItemProps<ITEM>,\n) => React.ReactNode | null;\n\nexport type FlatSelectPropRenderValue<ITEM, MULTIPLE> = MULTIPLE extends true\n ? (props: {\n value: ITEM[];\n getRemove: (\n item: ITEM,\n ) => (e: React.SyntheticEvent<Element, Event>) => void;\n }) => React.ReactNode | null\n : (props: { value: ITEM }) => React.ReactNode | null;\n\nexport type FlatSelectPropOnCreate = (\n label: string,\n props: { e: React.SyntheticEvent },\n) => void;\n\nexport type FlatSelectAllItem = {\n groupKey: string | number;\n __optionSelectAll: true;\n};\n\nexport type Group<ITEM, GROUP> = {\n items: ITEM[];\n key: string | number;\n group?: GROUP;\n};\n\nexport type CountedGroup<ITEM, GROUP> = Omit<Group<ITEM, GROUP>, 'items'> & {\n items: Array<FlatSelectAllItem | ITEM>;\n};\n\nexport type FlatSelectPropForm = 'default' | 'brick' | 'round';\n\nexport type FlatSelectPropsInit<\n ITEM = FlatSelectItemDefault,\n GROUP = FlatSelectGroupDefault,\n MULTIPLE extends boolean = false,\n> = PropsWithHTMLAttributesAndRef<\n {\n items: ITEM[];\n onChange: FlatSelectPropOnChange<ITEM, MULTIPLE>;\n disabled?: boolean;\n form?: 'default' | 'brick' | 'round';\n placeholder?: string;\n size?: FieldPropSize;\n isLoading?: boolean;\n listRef?: React.Ref<HTMLDivElement>;\n renderItem?: FlatSelectPropRenderItem<ITEM>;\n onInputFocus?: React.FocusEventHandler<HTMLInputElement>;\n onInputBlur?: React.FocusEventHandler<HTMLInputElement>;\n onCreate?: FlatSelectPropOnCreate;\n inputRef?: React.Ref<HTMLInputElement>;\n input?: boolean;\n inputValue?: string;\n inputDefaultValue?: string;\n onInput?: (value: string) => void;\n labelForCreate?:\n | ((label: string | undefined) => React.ReactNode)\n | React.ReactNode;\n labelForEmptyItems?: string;\n multiple?: MULTIPLE;\n value?: FlatSelectPropValue<ITEM, MULTIPLE>;\n groups?: GROUP[];\n getItemLabel?: FlatSelectPropGetItemLabel<ITEM>;\n getItemKey?: FlatSelectPropGetItemKey<ITEM>;\n getItemGroupKey?: FlatSelectPropGetItemGroupKey<ITEM>;\n getItemDisabled?: FlatSelectPropGetItemDisabled<ITEM>;\n getGroupLabel?: FlatSelectPropGetGroupLabel<GROUP>;\n getGroupKey?: FlatSelectPropGetGroupKey<GROUP>;\n virtualScroll?: boolean;\n onScrollToBottom?: (length: number) => void;\n onOpen?: (isOpen: boolean) => void;\n isOpen?: boolean;\n listClassName?: string;\n ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;\n clearButton?: boolean;\n iconClear?: IconComponent;\n iconLeft?: IconComponent;\n selectAll?: MULTIPLE extends true ? boolean : never;\n selectAllLabel?: string;\n footer?: React.ReactNode;\n view?: FieldPropView;\n bordered?: boolean;\n anchorRef?: React.RefObject<HTMLElement>;\n direction?: Direction;\n spareDirection?: Direction;\n possibleDirections?: Direction[];\n },\n HTMLDivElement\n>;\n\n/**\n * Props for the FlatSelect component.\n *\n * This type defines the props for the FlatSelect component, which is a customizable select component.\n * It allows for single or multiple selection, and supports grouping of items.\n * The component can be customized by providing custom item and group types.\n *\n * @template ITEM The type of the items in the select. Defaults to FlatSelectItemDefault.\n * @template GROUP The type of the groups in the select. Defaults to FlatSelectGroupDefault.\n * @template MULTIPLE Whether the select allows multiple selection. Defaults to false.\n */\nexport type FlatSelectProps<\n ITEM = FlatSelectItemDefault,\n GROUP = FlatSelectGroupDefault,\n MULTIPLE extends boolean = false,\n> = FlatSelectPropsInit<ITEM, GROUP, MULTIPLE> &\n (ITEM extends { label: FlatSelectItemDefault['label'] }\n ? {}\n : { getItemLabel: FlatSelectPropGetItemLabel<ITEM> }) &\n (ITEM extends { id: FlatSelectItemDefault['id'] }\n ? {}\n : { getItemKey: FlatSelectPropGetItemKey<ITEM> }) &\n (GROUP extends { label: FlatSelectGroupDefault['label'] }\n ? {}\n : { getGroupLabel: FlatSelectPropGetGroupLabel<GROUP> }) &\n (GROUP extends { id: FlatSelectGroupDefault['id'] }\n ? {}\n : { getGroupKey: FlatSelectPropGetGroupKey<GROUP> });\n\nexport type FlatSelectComponent = <\n ITEM = FlatSelectItemDefault,\n GROUP = FlatSelectGroupDefault,\n MULTIPLE extends boolean = false,\n>(\n props: FlatSelectProps<ITEM, GROUP, MULTIPLE>,\n) => React.ReactNode | null;\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../../src/components/FlatSelect/types.ts"],"sourcesContent":["import { IconComponent } from '@consta/icons/Icon';\nimport React from 'react';\n\nimport { FieldPropSize, FieldPropView } from '##/components/FieldComponents';\nimport { Direction } from '##/components/Popover';\nimport { PropsWithHTMLAttributesAndRef } from '##/utils/types/PropsWithHTMLAttributes';\n\nexport type RenderItemProps<ITEM> = {\n item: ITEM;\n active: boolean;\n hovered: boolean;\n onClick: (e: React.MouseEvent) => void;\n onMouseEnter: (e: React.MouseEvent) => void;\n ref: React.Ref<HTMLDivElement>;\n};\n\nexport type FlatSelectItemDefault = {\n label: string;\n id: string | number;\n groupId?: string | number;\n disabled?: boolean;\n};\n\nexport type FlatSelectGroupDefault = {\n label: string;\n id: string | number;\n};\n\nexport type FlatSelectPropGetItemLabel<ITEM> = (item: ITEM) => string;\nexport type FlatSelectPropGetItemKey<ITEM> = (item: ITEM) => string | number;\nexport type FlatSelectPropGetItemGroupKey<ITEM> = (\n item: ITEM,\n) => string | number | undefined;\nexport type FlatSelectPropGetItemDisabled<ITEM> = (\n item: ITEM,\n) => boolean | undefined;\nexport type FlatSelectPropGetGroupKey<GROUP> = (\n group: GROUP,\n) => string | number;\nexport type FlatSelectPropGetGroupLabel<GROUP> = (group: GROUP) => string;\n\nexport type FlatSelectPropOnChange<ITEM, MULTIPLE extends boolean> = (\n value: (MULTIPLE extends true ? ITEM[] : ITEM) | null,\n props: {\n e: React.SyntheticEvent;\n },\n) => void;\nexport type FlatSelectPropValue<ITEM, MULTIPLE extends boolean> =\n | (MULTIPLE extends true ? ITEM[] : ITEM)\n | null\n | undefined;\n\nexport type FlatSelectPropRenderItem<ITEM> = (\n props: RenderItemProps<ITEM>,\n) => React.ReactNode | null;\n\nexport type FlatSelectPropRenderValue<ITEM, MULTIPLE> = MULTIPLE extends true\n ? (props: {\n value: ITEM[];\n getRemove: (\n item: ITEM,\n ) => (e: React.SyntheticEvent<Element, Event>) => void;\n }) => React.ReactNode | null\n : (props: { value: ITEM }) => React.ReactNode | null;\n\nexport type FlatSelectPropOnCreate = (\n label: string,\n props: { e: React.SyntheticEvent },\n) => void;\n\nexport type FlatSelectAllItem = {\n groupKey: string | number;\n __optionSelectAll: true;\n};\n\nexport type Group<ITEM, GROUP> = {\n items: ITEM[];\n key: string | number;\n group?: GROUP;\n};\n\nexport type CountedGroup<ITEM, GROUP> = Omit<Group<ITEM, GROUP>, 'items'> & {\n items: Array<FlatSelectAllItem | ITEM>;\n};\n\nexport type FlatSelectPropForm = 'default' | 'brick' | 'round';\n\nexport type FlatSelectPropsInit<\n ITEM = FlatSelectItemDefault,\n GROUP = FlatSelectGroupDefault,\n MULTIPLE extends boolean = false,\n> = PropsWithHTMLAttributesAndRef<\n {\n items: ITEM[];\n onChange: FlatSelectPropOnChange<ITEM, MULTIPLE>;\n disabled?: boolean;\n form?: 'default' | 'brick' | 'round';\n placeholder?: string;\n size?: FieldPropSize;\n isLoading?: boolean;\n listRef?: React.Ref<HTMLDivElement>;\n renderItem?: FlatSelectPropRenderItem<ITEM>;\n onInputFocus?: React.FocusEventHandler<HTMLInputElement>;\n onInputBlur?: React.FocusEventHandler<HTMLInputElement>;\n onCreate?: FlatSelectPropOnCreate;\n inputRef?: React.Ref<HTMLInputElement>;\n input?: boolean;\n inputValue?: string;\n inputDefaultValue?: string;\n onInput?: (value: string) => void;\n labelForCreate?:\n | ((label: string | undefined) => React.ReactNode)\n | React.ReactNode;\n labelForEmptyItems?: string;\n multiple?: MULTIPLE;\n value?: FlatSelectPropValue<ITEM, MULTIPLE>;\n groups?: GROUP[];\n getItemLabel?: FlatSelectPropGetItemLabel<ITEM>;\n getItemKey?: FlatSelectPropGetItemKey<ITEM>;\n getItemGroupKey?: FlatSelectPropGetItemGroupKey<ITEM>;\n getItemDisabled?: FlatSelectPropGetItemDisabled<ITEM>;\n getGroupLabel?: FlatSelectPropGetGroupLabel<GROUP>;\n getGroupKey?: FlatSelectPropGetGroupKey<GROUP>;\n virtualScroll?: boolean;\n onScrollToBottom?: (length: number) => void;\n onOpen?: (isOpen: boolean) => void;\n isOpen?: boolean;\n listClassName?: string;\n ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;\n clearButton?: boolean;\n iconClear?: IconComponent;\n iconLeft?: IconComponent;\n selectAll?: MULTIPLE extends true ? boolean : never;\n selectAllLabel?: string;\n footer?: React.ReactNode;\n view?: FieldPropView;\n bordered?: boolean;\n anchorRef?: React.RefObject<HTMLElement>;\n direction?: Direction;\n spareDirection?: Direction;\n possibleDirections?: Direction[];\n viewportRef?: React.RefObject<HTMLElement>;\n },\n HTMLDivElement\n>;\n\n/**\n * Props for the FlatSelect component.\n *\n * This type defines the props for the FlatSelect component, which is a customizable select component.\n * It allows for single or multiple selection, and supports grouping of items.\n * The component can be customized by providing custom item and group types.\n *\n * @template ITEM The type of the items in the select. Defaults to FlatSelectItemDefault.\n * @template GROUP The type of the groups in the select. Defaults to FlatSelectGroupDefault.\n * @template MULTIPLE Whether the select allows multiple selection. Defaults to false.\n */\nexport type FlatSelectProps<\n ITEM = FlatSelectItemDefault,\n GROUP = FlatSelectGroupDefault,\n MULTIPLE extends boolean = false,\n> = FlatSelectPropsInit<ITEM, GROUP, MULTIPLE> &\n (ITEM extends { label: FlatSelectItemDefault['label'] }\n ? {}\n : { getItemLabel: FlatSelectPropGetItemLabel<ITEM> }) &\n (ITEM extends { id: FlatSelectItemDefault['id'] }\n ? {}\n : { getItemKey: FlatSelectPropGetItemKey<ITEM> }) &\n (GROUP extends { label: FlatSelectGroupDefault['label'] }\n ? {}\n : { getGroupLabel: FlatSelectPropGetGroupLabel<GROUP> }) &\n (GROUP extends { id: FlatSelectGroupDefault['id'] }\n ? {}\n : { getGroupKey: FlatSelectPropGetGroupKey<GROUP> });\n\nexport type FlatSelectComponent = <\n ITEM = FlatSelectItemDefault,\n GROUP = FlatSelectGroupDefault,\n MULTIPLE extends boolean = false,\n>(\n props: FlatSelectProps<ITEM, GROUP, MULTIPLE>,\n) => React.ReactNode | null;\n"],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","required","disabled","ariaLabel","id","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","labelForEmptyItems","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","isLoading","renderValue","inputRef","style","dropdownForm","onDropdownOpen","onScrollToBottom","virtualScroll","dropdownOpen","ignoreOutsideClicksRefs"];import"../SelectComponents/Select.css";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect,COMPONENT_NAME}from"../SelectComponents/cnSelect";import{defaultLabelForEmptyItems}from"../SelectComponents/helpers";import{SelectContainer}from"../SelectComponents/SelectContainer";import{SelectDropdown}from"../SelectComponents/SelectDropdown";import{SelectItem}from"../SelectComponents/SelectItem";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponents/types";import{useSelect}from"../SelectComponents/useSelect";import{useForkRef}from"../../hooks/useForkRef";import{isNotNil}from"../../utils/type-guards";import{iconSizeMap,withDefaultGetters}from"./helpers";var SelectRender=function(a,b){var c=useRef(null),d=useRef(null),e=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),d),f=e.placeholder,g=e.onBlur,h=e.onFocus,i=e.items,j=e.onChange,k=e.value,l=e.required,m=e.disabled,n=e.ariaLabel,o=e.id,p=e.dropdownRef,q=e.form,r=void 0===q?defaultPropForm:q,s=e.view,t=void 0===s?defaultPropView:s,u=e.size,v=void 0===u?defaultPropSize:u,w=e.dropdownClassName,x=e.name,y=e.groups,z=void 0===y?[]:y,A=e.getItemLabel,B=e.labelForEmptyItems,C=void 0===B?defaultLabelForEmptyItems:B,D=e.getItemKey,E=e.getItemGroupKey,F=e.getItemDisabled,G=e.getGroupKey,H=e.getGroupLabel,I=e.renderItem,J=e.isLoading,K=e.renderValue,L=e.inputRef,M=e.style,N=e.dropdownForm,O=void 0===N?"default":N,P=e.onDropdownOpen,Q=e.onScrollToBottom,R=e.virtualScroll,S=e.dropdownOpen,T=e.ignoreOutsideClicksRefs,U=_objectWithoutProperties(e,_excluded),
|
|
1
|
+
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","required","disabled","ariaLabel","id","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","labelForEmptyItems","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","isLoading","renderValue","inputRef","style","dropdownForm","onDropdownOpen","onScrollToBottom","virtualScroll","dropdownOpen","ignoreOutsideClicksRefs","dropdownViewportRef"];import"../SelectComponents/Select.css";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect,COMPONENT_NAME}from"../SelectComponents/cnSelect";import{defaultLabelForEmptyItems}from"../SelectComponents/helpers";import{SelectContainer}from"../SelectComponents/SelectContainer";import{SelectDropdown}from"../SelectComponents/SelectDropdown";import{SelectItem}from"../SelectComponents/SelectItem";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponents/types";import{useSelect}from"../SelectComponents/useSelect";import{useForkRef}from"../../hooks/useForkRef";import{isNotNil}from"../../utils/type-guards";import{iconSizeMap,withDefaultGetters}from"./helpers";var SelectRender=function(a,b){var c=useRef(null),d=useRef(null),e=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),d),f=e.placeholder,g=e.onBlur,h=e.onFocus,i=e.items,j=e.onChange,k=e.value,l=e.required,m=e.disabled,n=e.ariaLabel,o=e.id,p=e.dropdownRef,q=e.form,r=void 0===q?defaultPropForm:q,s=e.view,t=void 0===s?defaultPropView:s,u=e.size,v=void 0===u?defaultPropSize:u,w=e.dropdownClassName,x=e.name,y=e.groups,z=void 0===y?[]:y,A=e.getItemLabel,B=e.labelForEmptyItems,C=void 0===B?defaultLabelForEmptyItems:B,D=e.getItemKey,E=e.getItemGroupKey,F=e.getItemDisabled,G=e.getGroupKey,H=e.getGroupLabel,I=e.renderItem,J=e.isLoading,K=e.renderValue,L=e.inputRef,M=e.style,N=e.dropdownForm,O=void 0===N?"default":N,P=e.onDropdownOpen,Q=e.onScrollToBottom,R=e.virtualScroll,S=e.dropdownOpen,T=e.ignoreOutsideClicksRefs,U=e.dropdownViewportRef,V=_objectWithoutProperties(e,_excluded),W=useSelect({items:i,groups:z,value:k,onChange:j,dropdownRef:c,controlRef:d,disabled:m,getItemLabel:A,getItemKey:D,getGroupKey:G,getItemGroupKey:E,getItemDisabled:F,multiple:!1,onBlur:g,onFocus:h,onDropdownOpen:P,dropdownOpen:S,ignoreOutsideClicksRefs:T}),X=W.getKeyProps,Y=W.getOptionProps,Z=W.isOpen,$=W.visibleItems,_=W.isFocused,aa=W.handleInputFocus,ba=W.handleInputBlur,ca=W.handleToggleDropdown,da=W.inputRef,ea=W.handleInputClick,fa=W.notFound,ga=W.hasItems,ha=W.optionsRefs,ia=o?"".concat(o,"-input"):o;return React.createElement(React.Fragment,null,React.createElement(SelectContainer,Object.assign({focused:_,disabled:m,size:v,view:t,form:r,required:l,ref:b,style:M,id:ia},V),React.createElement("div",{className:cnSelect("Control"),ref:d,"aria-expanded":Z,"aria-haspopup":"listbox",id:o},React.createElement("div",{className:cnSelect("ControlInner")},React.createElement("div",{className:cnSelect("ControlValueContainer")},React.createElement("input",Object.assign({},X(),{className:cnSelect("FakeField"),type:"text",name:x,id:ia,onFocus:aa,onBlur:ba,"aria-label":n,onClick:ea,ref:useForkRef([da,L]),readOnly:!0})),isNotNil(k)&&(K||function renderValueDefault(a){var b=A(a.item);return React.createElement("span",{className:cnSelect("ControlValue"),title:b},b)})({item:k}),!isNotNil(k)&&f&&React.createElement("span",{className:cnSelect("Placeholder"),title:"placeholder"},f))),React.createElement("span",{className:cnSelect("Indicators")},React.createElement("button",{type:"button",className:cnSelect("IndicatorsDropdown"),tabIndex:-1,onClick:ca},React.createElement(IconSelect,{size:iconSizeMap[v],className:cnSelect("DropdownIndicatorIcon")}))))),React.createElement(SelectDropdown,{isOpen:Z,size:v,controlRef:d,getOptionProps:Y,dropdownRef:useForkRef([p,c]),form:O,className:w,renderItem:I||function renderItemDefault(a){var b=a.item,c=a.active,d=a.hovered,e=a.onClick,f=a.onMouseEnter,g=a.ref;return React.createElement(SelectItem,{label:A(b),active:c,hovered:d,multiple:!1,size:v,indent:"round"===O?"increased":"normal",onClick:e,onMouseEnter:f,disabled:F(b),ref:g})},getGroupLabel:H,visibleItems:$,notFound:fa,isLoading:J,labelForEmptyItems:C,hasItems:ga,itemsRefs:ha,virtualScroll:R,onScrollToBottom:Q,viewportRef:U,style:"number"==typeof(null===M||void 0===M?void 0:M.zIndex)?{zIndex:M.zIndex+1}:void 0}))};export var Select=forwardRef(SelectRender);export*from"./helpers";
|
|
2
2
|
//# sourceMappingURL=Select.js.map
|