@ozen-ui/kit 0.74.0 → 0.76.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/StepperVertical/package.json +5 -0
- package/__inner__/cjs/components/Autocomplete/helper.d.ts +1 -1
- package/__inner__/cjs/components/Autocomplete/types.d.ts +1 -1
- package/__inner__/cjs/components/Calendar/Calendar.js +26 -2
- package/__inner__/cjs/components/Calendar/CalendarContext.d.ts +8 -1
- package/__inner__/cjs/components/Calendar/CalendarContext.js +10 -1
- package/__inner__/cjs/components/Calendar/__tests__/utils.d.ts +11 -0
- package/__inner__/cjs/components/Calendar/__tests__/utils.js +58 -0
- package/__inner__/cjs/components/Calendar/components/CalendarGrid/CalendarGrid.js +4 -3
- package/__inner__/cjs/components/Calendar/components/CalendarItem/CalendarItem.js +25 -2
- package/__inner__/cjs/components/Calendar/components/CalendarItem/CalendarItemContext.d.ts +1 -0
- package/__inner__/cjs/components/Calendar/components/CalendarItem/CalendarItemContext.js +1 -0
- package/__inner__/cjs/components/Calendar/components/CalendarModeRange/CalendarModeRange.js +68 -13
- package/__inner__/cjs/components/Calendar/components/CalendarModeSingle/CalendarModeSingle.js +62 -16
- package/__inner__/cjs/components/Calendar/components/CalendarSwitcher/CalendarSwitcher.js +6 -7
- package/__inner__/cjs/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/CalendarSwitcherText.d.ts +3 -0
- package/__inner__/cjs/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/CalendarSwitcherText.js +13 -0
- package/__inner__/cjs/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/index.d.ts +2 -0
- package/__inner__/cjs/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/index.js +5 -0
- package/__inner__/cjs/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/types.d.ts +4 -0
- package/__inner__/cjs/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/types.js +2 -0
- package/__inner__/cjs/components/Calendar/components/CalendarSwitcher/components/index.d.ts +1 -0
- package/__inner__/cjs/components/Calendar/components/CalendarSwitcher/components/index.js +4 -0
- package/__inner__/cjs/components/Calendar/constants.d.ts +2 -0
- package/__inner__/cjs/components/Calendar/constants.js +7 -1
- package/__inner__/cjs/components/Calendar/index.d.ts +1 -0
- package/__inner__/cjs/components/Calendar/index.js +1 -0
- package/__inner__/cjs/components/Calendar/types.d.ts +13 -5
- package/__inner__/cjs/components/Calendar/utils.d.ts +10 -1
- package/__inner__/cjs/components/Calendar/utils.js +12 -1
- package/__inner__/cjs/components/DataList/types.d.ts +1 -1
- package/__inner__/cjs/components/DatePicker/components/DateInput/DateInput.js +4 -3
- package/__inner__/cjs/components/DatePicker/components/DateInput/types.d.ts +6 -2
- package/__inner__/cjs/components/DatePicker/components/DateInput/utils/dateInputMask/dateInputMask.d.ts +2 -1
- package/__inner__/cjs/components/DatePicker/components/DateInput/utils/dateInputMask/dateInputMask.js +67 -7
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDate/DatePickerModeDate.js +32 -20
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/DatePickerModeDateRange.js +74 -51
- package/__inner__/cjs/components/DatePicker/constants.d.ts +2 -0
- package/__inner__/cjs/components/DatePicker/constants.js +4 -1
- package/__inner__/cjs/components/DatePicker/types.d.ts +10 -6
- package/__inner__/cjs/components/DatePicker/types.js +3 -1
- package/__inner__/cjs/components/DatePicker/utils/formatDateToString/formatDateToString.d.ts +2 -1
- package/__inner__/cjs/components/DatePicker/utils/formatDateToString/formatDateToString.js +18 -5
- package/__inner__/cjs/components/DatePicker/utils/formatStringToDate/formatStringToDate.d.ts +2 -1
- package/__inner__/cjs/components/DatePicker/utils/formatStringToDate/formatStringToDate.js +6 -5
- package/__inner__/cjs/components/DatePicker/utils/getCommonCalendarProps/getCommonCalendarProps.js +2 -2
- package/__inner__/cjs/components/DatePicker/utils/index.d.ts +2 -0
- package/__inner__/cjs/components/DatePicker/utils/index.js +2 -0
- package/__inner__/cjs/components/DatePicker/utils/isValidDateString/isValidDateString.d.ts +2 -1
- package/__inner__/cjs/components/DatePicker/utils/isValidDateString/isValidDateString.js +9 -8
- package/__inner__/cjs/components/DatePicker/utils/maskPastedDate/index.d.ts +1 -0
- package/__inner__/cjs/components/DatePicker/utils/maskPastedDate/index.js +4 -0
- package/__inner__/cjs/components/DatePicker/utils/maskPastedDate/maskPastedDate.d.ts +6 -0
- package/__inner__/cjs/components/DatePicker/utils/maskPastedDate/maskPastedDate.js +43 -0
- package/__inner__/cjs/components/DatePicker/utils/parseDateString/index.d.ts +1 -0
- package/__inner__/cjs/components/DatePicker/utils/parseDateString/index.js +4 -0
- package/__inner__/cjs/components/DatePicker/utils/parseDateString/parseDateString.d.ts +6 -0
- package/__inner__/cjs/components/DatePicker/utils/parseDateString/parseDateString.js +66 -0
- package/__inner__/cjs/components/ListCardItem/hooks/useListCardItemRatio.js +10 -14
- package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/b-business-dark/color-b-business-dark.css +1 -1
- package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/b-business-default/color-b-business-default.css +1 -1
- package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/ozen-dark/color-ozen-dark.css +1 -1
- package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/ozen-default/color-ozen-default.css +1 -1
- package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/vip-dark/color-vip-dark.css +1 -1
- package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/color/vip-default/color-vip-default.css +1 -1
- package/__inner__/cjs/components/OzenProvider/providers/theme/tokens/shadow/ozen-default/shadow-ozen-default.css +1 -1
- package/__inner__/cjs/components/Select/Select.css +10 -1
- package/__inner__/cjs/components/Select/Select.d.ts +0 -1
- package/__inner__/cjs/components/Select/Select.js +40 -10
- package/__inner__/cjs/components/Select/SelectContext.d.ts +21 -0
- package/__inner__/cjs/components/Select/SelectContext.js +29 -0
- package/__inner__/cjs/components/Select/classNames.d.ts +1 -0
- package/__inner__/cjs/components/Select/classNames.js +5 -0
- package/__inner__/cjs/components/Select/components/SelectInput/SelectInput.js +14 -15
- package/__inner__/cjs/components/Select/components/SelectInput/types.d.ts +0 -22
- package/__inner__/cjs/components/Select/components/SelectInputContextConsumer/SelectInputContextConsumer.js +3 -3
- package/__inner__/cjs/components/Select/components/SelectInputRenderRight/SelectInputRenderRight.d.ts +2 -0
- package/__inner__/cjs/components/Select/components/SelectInputRenderRight/SelectInputRenderRight.js +42 -0
- package/__inner__/cjs/components/Select/components/SelectInputRenderRight/index.d.ts +1 -0
- package/__inner__/cjs/components/Select/components/SelectInputRenderRight/index.js +4 -0
- package/__inner__/cjs/components/Select/components/index.d.ts +1 -0
- package/__inner__/cjs/components/Select/components/index.js +1 -0
- package/__inner__/cjs/components/Select/constants.d.ts +3 -0
- package/__inner__/cjs/components/Select/constants.js +8 -1
- package/__inner__/cjs/components/Select/entities/index.d.ts +2 -0
- package/__inner__/cjs/components/Select/entities/index.js +5 -0
- package/__inner__/cjs/components/Select/entities/onClear.d.ts +2 -0
- package/__inner__/cjs/components/Select/entities/onClear.js +2 -0
- package/__inner__/cjs/components/Select/entities/render.d.ts +6 -0
- package/__inner__/cjs/components/Select/entities/render.js +4 -0
- package/__inner__/cjs/components/Select/index.d.ts +1 -0
- package/__inner__/cjs/components/Select/index.js +1 -0
- package/__inner__/cjs/components/Select/types.d.ts +30 -5
- package/__inner__/cjs/components/Select/types.js +3 -0
- package/__inner__/cjs/components/Stack/Stack.css +3 -0
- package/__inner__/cjs/components/Stack/Stack.js +2 -1
- package/__inner__/cjs/components/Stack/constants.d.ts +1 -0
- package/__inner__/cjs/components/Stack/constants.js +2 -1
- package/__inner__/cjs/components/Stack/types.d.ts +4 -0
- package/__inner__/cjs/components/Stack/types.js +2 -1
- package/__inner__/cjs/hooks/useDevEffect/index.d.ts +1 -0
- package/__inner__/cjs/hooks/useDevEffect/index.js +4 -0
- package/__inner__/cjs/hooks/useDevEffect/useDevEffect.d.ts +3 -0
- package/__inner__/cjs/hooks/useDevEffect/useDevEffect.js +13 -0
- package/__inner__/cjs/hooks/useIntersectionObserver/useIntersectionObserver.js +3 -2
- package/__inner__/cjs/locale/locale.js +48 -3
- package/__inner__/cjs/utils/array/createFilled/createFilledArray.d.ts +1 -1
- package/__inner__/cjs/utils/array/createFilled/createFilledArray.js +6 -1
- package/__inner__/cjs/utils/array/generatePermutations/generatePermutations.d.ts +1 -0
- package/__inner__/cjs/utils/array/generatePermutations/generatePermutations.js +47 -0
- package/__inner__/cjs/utils/array/generatePermutations/index.d.ts +1 -0
- package/__inner__/cjs/utils/array/generatePermutations/index.js +4 -0
- package/__inner__/cjs/utils/array/index.d.ts +1 -0
- package/__inner__/cjs/utils/array/index.js +1 -0
- package/__inner__/esm/components/Autocomplete/helper.d.ts +1 -1
- package/__inner__/esm/components/Autocomplete/types.d.ts +1 -1
- package/__inner__/esm/components/Calendar/Calendar.js +27 -3
- package/__inner__/esm/components/Calendar/CalendarContext.d.ts +8 -1
- package/__inner__/esm/components/Calendar/CalendarContext.js +10 -1
- package/__inner__/esm/components/Calendar/__tests__/utils.d.ts +11 -0
- package/__inner__/esm/components/Calendar/__tests__/utils.js +45 -0
- package/__inner__/esm/components/Calendar/components/CalendarGrid/CalendarGrid.js +4 -3
- package/__inner__/esm/components/Calendar/components/CalendarItem/CalendarItem.js +25 -2
- package/__inner__/esm/components/Calendar/components/CalendarItem/CalendarItemContext.d.ts +1 -0
- package/__inner__/esm/components/Calendar/components/CalendarItem/CalendarItemContext.js +1 -0
- package/__inner__/esm/components/Calendar/components/CalendarModeRange/CalendarModeRange.js +70 -15
- package/__inner__/esm/components/Calendar/components/CalendarModeSingle/CalendarModeSingle.js +64 -18
- package/__inner__/esm/components/Calendar/components/CalendarSwitcher/CalendarSwitcher.js +6 -7
- package/__inner__/esm/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/CalendarSwitcherText.d.ts +3 -0
- package/__inner__/esm/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/CalendarSwitcherText.js +9 -0
- package/__inner__/esm/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/index.d.ts +2 -0
- package/__inner__/esm/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/index.js +2 -0
- package/__inner__/esm/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/types.d.ts +4 -0
- package/__inner__/esm/components/Calendar/components/CalendarSwitcher/components/CalendarSwitcherText/types.js +1 -0
- package/__inner__/esm/components/Calendar/components/CalendarSwitcher/components/index.d.ts +1 -0
- package/__inner__/esm/components/Calendar/components/CalendarSwitcher/components/index.js +1 -0
- package/__inner__/esm/components/Calendar/constants.d.ts +2 -0
- package/__inner__/esm/components/Calendar/constants.js +6 -0
- package/__inner__/esm/components/Calendar/index.d.ts +1 -0
- package/__inner__/esm/components/Calendar/index.js +1 -0
- package/__inner__/esm/components/Calendar/types.d.ts +13 -5
- package/__inner__/esm/components/Calendar/utils.d.ts +10 -1
- package/__inner__/esm/components/Calendar/utils.js +9 -0
- package/__inner__/esm/components/DataList/types.d.ts +1 -1
- package/__inner__/esm/components/DatePicker/components/DateInput/DateInput.js +3 -2
- package/__inner__/esm/components/DatePicker/components/DateInput/types.d.ts +6 -2
- package/__inner__/esm/components/DatePicker/components/DateInput/utils/dateInputMask/dateInputMask.d.ts +2 -1
- package/__inner__/esm/components/DatePicker/components/DateInput/utils/dateInputMask/dateInputMask.js +67 -7
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDate/DatePickerModeDate.js +33 -21
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/DatePickerModeDateRange.js +68 -45
- package/__inner__/esm/components/DatePicker/constants.d.ts +2 -0
- package/__inner__/esm/components/DatePicker/constants.js +3 -0
- package/__inner__/esm/components/DatePicker/types.d.ts +10 -6
- package/__inner__/esm/components/DatePicker/types.js +2 -0
- package/__inner__/esm/components/DatePicker/utils/formatDateToString/formatDateToString.d.ts +2 -1
- package/__inner__/esm/components/DatePicker/utils/formatDateToString/formatDateToString.js +18 -5
- package/__inner__/esm/components/DatePicker/utils/formatStringToDate/formatStringToDate.d.ts +2 -1
- package/__inner__/esm/components/DatePicker/utils/formatStringToDate/formatStringToDate.js +6 -5
- package/__inner__/esm/components/DatePicker/utils/getCommonCalendarProps/getCommonCalendarProps.js +2 -2
- package/__inner__/esm/components/DatePicker/utils/index.d.ts +2 -0
- package/__inner__/esm/components/DatePicker/utils/index.js +2 -0
- package/__inner__/esm/components/DatePicker/utils/isValidDateString/isValidDateString.d.ts +2 -1
- package/__inner__/esm/components/DatePicker/utils/isValidDateString/isValidDateString.js +8 -7
- package/__inner__/esm/components/DatePicker/utils/maskPastedDate/index.d.ts +1 -0
- package/__inner__/esm/components/DatePicker/utils/maskPastedDate/index.js +1 -0
- package/__inner__/esm/components/DatePicker/utils/maskPastedDate/maskPastedDate.d.ts +6 -0
- package/__inner__/esm/components/DatePicker/utils/maskPastedDate/maskPastedDate.js +39 -0
- package/__inner__/esm/components/DatePicker/utils/parseDateString/index.d.ts +1 -0
- package/__inner__/esm/components/DatePicker/utils/parseDateString/index.js +1 -0
- package/__inner__/esm/components/DatePicker/utils/parseDateString/parseDateString.d.ts +6 -0
- package/__inner__/esm/components/DatePicker/utils/parseDateString/parseDateString.js +62 -0
- package/__inner__/esm/components/ListCardItem/hooks/useListCardItemRatio.js +10 -14
- package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/b-business-dark/color-b-business-dark.css +1 -1
- package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/b-business-default/color-b-business-default.css +1 -1
- package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/ozen-dark/color-ozen-dark.css +1 -1
- package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/ozen-default/color-ozen-default.css +1 -1
- package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/vip-dark/color-vip-dark.css +1 -1
- package/__inner__/esm/components/OzenProvider/providers/theme/tokens/color/vip-default/color-vip-default.css +1 -1
- package/__inner__/esm/components/OzenProvider/providers/theme/tokens/shadow/ozen-default/shadow-ozen-default.css +1 -1
- package/__inner__/esm/components/Select/Select.css +10 -1
- package/__inner__/esm/components/Select/Select.d.ts +0 -1
- package/__inner__/esm/components/Select/Select.js +40 -10
- package/__inner__/esm/components/Select/SelectContext.d.ts +21 -0
- package/__inner__/esm/components/Select/SelectContext.js +25 -0
- package/__inner__/esm/components/Select/classNames.d.ts +1 -0
- package/__inner__/esm/components/Select/classNames.js +2 -0
- package/__inner__/esm/components/Select/components/SelectInput/SelectInput.js +7 -8
- package/__inner__/esm/components/Select/components/SelectInput/types.d.ts +0 -22
- package/__inner__/esm/components/Select/components/SelectInputContextConsumer/SelectInputContextConsumer.js +1 -1
- package/__inner__/esm/components/Select/components/SelectInputRenderRight/SelectInputRenderRight.d.ts +2 -0
- package/__inner__/esm/components/Select/components/SelectInputRenderRight/SelectInputRenderRight.js +38 -0
- package/__inner__/esm/components/Select/components/SelectInputRenderRight/index.d.ts +1 -0
- package/__inner__/esm/components/Select/components/SelectInputRenderRight/index.js +1 -0
- package/__inner__/esm/components/Select/components/index.d.ts +1 -0
- package/__inner__/esm/components/Select/components/index.js +1 -0
- package/__inner__/esm/components/Select/constants.d.ts +3 -0
- package/__inner__/esm/components/Select/constants.js +7 -0
- package/__inner__/esm/components/Select/entities/index.d.ts +2 -0
- package/__inner__/esm/components/Select/entities/index.js +2 -0
- package/__inner__/esm/components/Select/entities/onClear.d.ts +2 -0
- package/__inner__/esm/components/Select/entities/onClear.js +1 -0
- package/__inner__/esm/components/Select/entities/render.d.ts +6 -0
- package/__inner__/esm/components/Select/entities/render.js +1 -0
- package/__inner__/esm/components/Select/index.d.ts +1 -0
- package/__inner__/esm/components/Select/index.js +1 -0
- package/__inner__/esm/components/Select/types.d.ts +30 -5
- package/__inner__/esm/components/Select/types.js +2 -1
- package/__inner__/esm/components/Stack/Stack.css +3 -0
- package/__inner__/esm/components/Stack/Stack.js +3 -2
- package/__inner__/esm/components/Stack/constants.d.ts +1 -0
- package/__inner__/esm/components/Stack/constants.js +1 -0
- package/__inner__/esm/components/Stack/types.d.ts +4 -0
- package/__inner__/esm/components/Stack/types.js +1 -0
- package/__inner__/esm/hooks/useDevEffect/index.d.ts +1 -0
- package/__inner__/esm/hooks/useDevEffect/index.js +1 -0
- package/__inner__/esm/hooks/useDevEffect/useDevEffect.d.ts +3 -0
- package/__inner__/esm/hooks/useDevEffect/useDevEffect.js +9 -0
- package/__inner__/esm/hooks/useIntersectionObserver/useIntersectionObserver.js +3 -2
- package/__inner__/esm/locale/locale.js +48 -3
- package/__inner__/esm/utils/array/createFilled/createFilledArray.d.ts +1 -1
- package/__inner__/esm/utils/array/createFilled/createFilledArray.js +6 -1
- package/__inner__/esm/utils/array/generatePermutations/generatePermutations.d.ts +1 -0
- package/__inner__/esm/utils/array/generatePermutations/generatePermutations.js +43 -0
- package/__inner__/esm/utils/array/generatePermutations/index.d.ts +1 -0
- package/__inner__/esm/utils/array/generatePermutations/index.js +1 -0
- package/__inner__/esm/utils/array/index.d.ts +1 -0
- package/__inner__/esm/utils/array/index.js +1 -0
- package/package.json +4 -4
|
@@ -8,27 +8,30 @@ var useBoolean_1 = require("../../../../hooks/useBoolean");
|
|
|
8
8
|
var useControlled_1 = require("../../../../hooks/useControlled");
|
|
9
9
|
var useMultiRef_1 = require("../../../../hooks/useMultiRef");
|
|
10
10
|
var useMutableRef_1 = require("../../../../hooks/useMutableRef");
|
|
11
|
-
var
|
|
11
|
+
var useStoredValue_1 = require("../../../../hooks/useStoredValue");
|
|
12
|
+
var utils_1 = require("../../../../utils");
|
|
12
13
|
var Calendar_1 = require("../../../Calendar");
|
|
13
14
|
var FieldHint_1 = require("../../../FieldHint");
|
|
14
15
|
var Popover_1 = require("../../../Popover");
|
|
15
16
|
var Stack_1 = require("../../../Stack");
|
|
17
|
+
var constants_1 = require("../../constants");
|
|
16
18
|
var index_1 = require("../../index");
|
|
17
|
-
var
|
|
19
|
+
var utils_2 = require("../../utils");
|
|
18
20
|
var index_2 = require("../index");
|
|
19
|
-
var
|
|
21
|
+
var utils_3 = require("./utils");
|
|
20
22
|
exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref) {
|
|
21
23
|
var size = props.size, error = props.error, openProp = props.open, label = props.label, onKeyDown = props.onKeyDown, onInputChange = props.onInputChange, renderLeft = props.renderLeft, renderRight = props.renderRight, required = props.required, fullWidth = props.fullWidth, placeholder = props.placeholder, hint = props.hint, disableStroke = props.disableStroke, hintProps = props.hintProps, onChange = props.onChange, labelProps = props.labelProps, popoverPropsProp = props.popoverProps, calendarPropsProp = props.calendarProps, defaultOpen = props.defaultOpen, onCloseProp = props.onClose, defaultValue = props.defaultValue, valueProp = props.value, inputProps = props.inputProps, disabled = props.disabled, className = props.className, _a = props.calendars, calendars = _a === void 0 ? 2 : _a, onError = props.onError, clearText = props.clearText, disableCloseOnSelect = props.disableCloseOnSelect, disableClearButton = props.disableClearButton, onOpenProp = props.onOpen, fieldsProps = props.fieldsProps,
|
|
22
24
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
23
25
|
minDate = props.minDate,
|
|
24
26
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
25
|
-
maxDate = props.maxDate, other = tslib_1.__rest(props, ["size", "error", "open", "label", "onKeyDown", "onInputChange", "renderLeft", "renderRight", "required", "fullWidth", "placeholder", "hint", "disableStroke", "hintProps", "onChange", "labelProps", "popoverProps", "calendarProps", "defaultOpen", "onClose", "defaultValue", "value", "inputProps", "disabled", "className", "calendars", "onError", "clearText", "disableCloseOnSelect", "disableClearButton", "onOpen", "fieldsProps", "minDate", "maxDate"]);
|
|
26
|
-
var
|
|
27
|
-
var
|
|
28
|
-
var
|
|
29
|
-
var
|
|
30
|
-
var
|
|
31
|
-
var
|
|
27
|
+
maxDate = props.maxDate, _b = props.steps, steps = _b === void 0 ? constants_1.DATE_PICKER_DEFAULT_STEPS : _b, _c = props.initialStep, initialStep = _c === void 0 ? constants_1.DATE_PICKER_DEFAULT_INITIAL_STEP : _c, other = tslib_1.__rest(props, ["size", "error", "open", "label", "onKeyDown", "onInputChange", "renderLeft", "renderRight", "required", "fullWidth", "placeholder", "hint", "disableStroke", "hintProps", "onChange", "labelProps", "popoverProps", "calendarProps", "defaultOpen", "onClose", "defaultValue", "value", "inputProps", "disabled", "className", "calendars", "onError", "clearText", "disableCloseOnSelect", "disableClearButton", "onOpen", "fieldsProps", "minDate", "maxDate", "steps", "initialStep"]);
|
|
28
|
+
var _d = tslib_1.__read((0, utils_3.getValueForDoubleProp)(label), 2), labelFrom = _d[0], labelTo = _d[1];
|
|
29
|
+
var _e = tslib_1.__read((0, utils_3.getValueForDoubleProp)(renderLeft), 2), renderLeftFrom = _e[0], renderLeftTo = _e[1];
|
|
30
|
+
var _f = tslib_1.__read((0, utils_3.getValueForDoubleProp)(renderRight), 2), renderRightFrom = _f[0], renderRightTo = _f[1];
|
|
31
|
+
var _g = tslib_1.__read((0, utils_3.getValueForDoubleProp)(placeholder), 2), placeholderFrom = _g[0], placeholderTo = _g[1];
|
|
32
|
+
var _h = tslib_1.__read((0, utils_3.getValueForDoubleProp)(inputProps), 2), inputPropsFrom = _h[0], inputPropsTo = _h[1];
|
|
33
|
+
var _j = tslib_1.__read((0, utils_3.getValueForDoubleProp)(labelProps), 2), labelPropsFrom = _j[0], labelPropsTo = _j[1];
|
|
34
|
+
var isWasPaste = (0, useStoredValue_1.useStoredValue)(false);
|
|
32
35
|
var containerRef = (0, react_1.useRef)(null);
|
|
33
36
|
var anchorRef = (0, react_1.useRef)(null);
|
|
34
37
|
var calendarInnerRef = (0, react_1.useRef)(null);
|
|
@@ -36,34 +39,34 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
|
|
|
36
39
|
var calendarRef = (0, useMultiRef_1.useMultiRef)([calendarInnerRef, calendarPropsProp === null || calendarPropsProp === void 0 ? void 0 : calendarPropsProp.ref]);
|
|
37
40
|
var fieldsRef = (0, useMultiRef_1.useMultiRef)([anchorRef, fieldsProps === null || fieldsProps === void 0 ? void 0 : fieldsProps.ref]);
|
|
38
41
|
var rootRef = (0, useMultiRef_1.useMultiRef)([ref, containerRef]);
|
|
39
|
-
var
|
|
40
|
-
var
|
|
42
|
+
var _k = tslib_1.__read((0, react_1.useState)(null), 2), offsetDate = _k[0], setOffsetDate = _k[1];
|
|
43
|
+
var _l = tslib_1.__read((0, react_1.useState)(null), 2), calendarPeriod = _l[0], setCalendarPeriod = _l[1];
|
|
41
44
|
var savedCalendarPeriod = (0, useMutableRef_1.useMutableRef)(calendarPeriod);
|
|
42
45
|
var lastValidDate = (0, react_1.useRef)(['', '']);
|
|
43
|
-
var
|
|
44
|
-
var
|
|
45
|
-
var
|
|
46
|
+
var _m = tslib_1.__read((0, useBoolean_1.useBoolean)(false), 2), focusInputFrom = _m[0], setFocusInputFrom = _m[1];
|
|
47
|
+
var _o = tslib_1.__read((0, useBoolean_1.useBoolean)(false), 2), focusInputTo = _o[0], setFocusInputTo = _o[1];
|
|
48
|
+
var _p = tslib_1.__read((0, useControlled_1.useControlled)({
|
|
46
49
|
value: valueProp,
|
|
47
50
|
defaultValue: defaultValue,
|
|
48
51
|
name: 'DatePicker',
|
|
49
52
|
state: 'value',
|
|
50
|
-
}), 2), value =
|
|
51
|
-
var
|
|
53
|
+
}), 2), value = _p[0], setValue = _p[1];
|
|
54
|
+
var _q = tslib_1.__read((0, useControlled_1.useControlled)({
|
|
52
55
|
value: undefined,
|
|
53
56
|
defaultValue: [],
|
|
54
57
|
name: 'DatePicker',
|
|
55
58
|
state: 'inputValue',
|
|
56
|
-
}), 2), inputValue =
|
|
57
|
-
var
|
|
58
|
-
var
|
|
59
|
-
var
|
|
59
|
+
}), 2), inputValue = _q[0], setInputValue = _q[1];
|
|
60
|
+
var _r = tslib_1.__read(value || [], 2), valueFrom = _r[0], valueTo = _r[1];
|
|
61
|
+
var _s = tslib_1.__read(inputValue || [], 2), _t = _s[0], inputValueFrom = _t === void 0 ? '' : _t, _u = _s[1], inputValueTo = _u === void 0 ? '' : _u;
|
|
62
|
+
var _v = tslib_1.__read((0, useControlled_1.useControlled)({
|
|
60
63
|
value: openProp,
|
|
61
64
|
defaultValue: defaultOpen,
|
|
62
65
|
name: 'DatePicker',
|
|
63
66
|
state: 'open',
|
|
64
|
-
}), 2), open =
|
|
65
|
-
var popoverProps = (0,
|
|
66
|
-
var calendarProps = (0,
|
|
67
|
+
}), 2), open = _v[0], setOpen = _v[1];
|
|
68
|
+
var popoverProps = (0, utils_2.getCommonPopoverProps)(tslib_1.__assign(tslib_1.__assign({}, props), { popoverProps: popoverPropsProp }));
|
|
69
|
+
var calendarProps = (0, utils_2.getCommonCalendarProps)(tslib_1.__assign(tslib_1.__assign({}, props), { calendarProps: calendarPropsProp, ref: calendarRef }));
|
|
67
70
|
var onOffsetDateChange = function (date) {
|
|
68
71
|
setOffsetDate(date);
|
|
69
72
|
};
|
|
@@ -71,7 +74,7 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
|
|
|
71
74
|
setCalendarPeriod(date);
|
|
72
75
|
}, []);
|
|
73
76
|
/** Enables calendar keyboard interaction */
|
|
74
|
-
var enableEnforceFocusTo = (0,
|
|
77
|
+
var enableEnforceFocusTo = (0, utils_2.useCalendarKeyboard)({
|
|
75
78
|
controlRef: dateInputToRef,
|
|
76
79
|
calendarRef: calendarInnerRef,
|
|
77
80
|
active: open,
|
|
@@ -79,8 +82,8 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
|
|
|
79
82
|
var disableEnforceFocus = !enableEnforceFocusTo;
|
|
80
83
|
/** Эффект — синхронизируем значение текстового поля со значением в списке */
|
|
81
84
|
(0, react_1.useEffect)(function () {
|
|
82
|
-
var formattedDateFrom = (0,
|
|
83
|
-
var formattedDateTo = (0,
|
|
85
|
+
var formattedDateFrom = (0, utils_2.formatDateToString)(valueFrom, steps);
|
|
86
|
+
var formattedDateTo = (0, utils_2.formatDateToString)(valueTo, steps);
|
|
84
87
|
if (formattedDateFrom !== inputValueFrom ||
|
|
85
88
|
formattedDateTo !== inputValueTo) {
|
|
86
89
|
setInputValue([formattedDateFrom, formattedDateTo]);
|
|
@@ -96,14 +99,14 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
|
|
|
96
99
|
}, [onError]);
|
|
97
100
|
/** Calendar offset when interacting with inputs */
|
|
98
101
|
(0, react_1.useEffect)(function () {
|
|
99
|
-
if (!(0,
|
|
100
|
-
!(0,
|
|
102
|
+
if (!(0, utils_2.isValidDateString)(inputValueFrom, steps) ||
|
|
103
|
+
!(0, utils_2.isValidDateString)(inputValueTo, steps) ||
|
|
101
104
|
!savedCalendarPeriod.current)
|
|
102
105
|
return;
|
|
103
106
|
if ((focusInputFrom || focusInputTo) && open && (calendarPeriod === null || calendarPeriod === void 0 ? void 0 : calendarPeriod.length)) {
|
|
104
|
-
var firstDate = (0,
|
|
105
|
-
var secondDate = (0,
|
|
106
|
-
var offset = (0,
|
|
107
|
+
var firstDate = (0, utils_2.formatStringToDate)(inputValueFrom, steps);
|
|
108
|
+
var secondDate = (0, utils_2.formatStringToDate)(inputValueTo, steps);
|
|
109
|
+
var offset = (0, utils_3.getOffsetDateInRange)(tslib_1.__assign(tslib_1.__assign({}, (focusInputTo && { type: 'end' })), { calendarPeriod: savedCalendarPeriod.current, value: [firstDate || undefined, secondDate || undefined] }));
|
|
107
110
|
setOffsetDate(offset);
|
|
108
111
|
}
|
|
109
112
|
}, [
|
|
@@ -128,8 +131,8 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
|
|
|
128
131
|
};
|
|
129
132
|
var callOnChange = function (value) {
|
|
130
133
|
var _a = tslib_1.__read(value || [], 2), dateFrom = _a[0], dateTo = _a[1];
|
|
131
|
-
var formattedDateFrom = (0,
|
|
132
|
-
var formattedDateTo = (0,
|
|
134
|
+
var formattedDateFrom = (0, utils_2.formatStringToDate)(dateFrom, steps) || undefined;
|
|
135
|
+
var formattedDateTo = (0, utils_2.formatStringToDate)(dateTo, steps) || undefined;
|
|
133
136
|
if (formattedDateTo &&
|
|
134
137
|
formattedDateFrom &&
|
|
135
138
|
(formattedDateFrom === null || formattedDateFrom === void 0 ? void 0 : formattedDateFrom.getTime()) > (formattedDateTo === null || formattedDateTo === void 0 ? void 0 : formattedDateTo.getTime())) {
|
|
@@ -144,7 +147,8 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
|
|
|
144
147
|
setInputValue(value);
|
|
145
148
|
onInputChange === null || onInputChange === void 0 ? void 0 : onInputChange(e, value);
|
|
146
149
|
var _a = tslib_1.__read(value || [], 2), valueFrom = _a[0], valueTo = _a[1];
|
|
147
|
-
if ((0,
|
|
150
|
+
if ((0, utils_2.isValidDateString)(valueFrom, steps) &&
|
|
151
|
+
(0, utils_2.isValidDateString)(valueTo, steps))
|
|
148
152
|
callOnChange([valueFrom, valueTo]);
|
|
149
153
|
};
|
|
150
154
|
var handleExited = function () {
|
|
@@ -153,12 +157,20 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
|
|
|
153
157
|
setCalendarPeriod(null);
|
|
154
158
|
(_a = popoverProps === null || popoverProps === void 0 ? void 0 : popoverProps.onExited) === null || _a === void 0 ? void 0 : _a.call(popoverProps);
|
|
155
159
|
};
|
|
160
|
+
var prepareInputValue = function (value) {
|
|
161
|
+
var trimmed = value.trim();
|
|
162
|
+
if (isWasPaste.current) {
|
|
163
|
+
return (0, utils_2.maskPastedDate)(trimmed, steps);
|
|
164
|
+
}
|
|
165
|
+
return trimmed;
|
|
166
|
+
};
|
|
156
167
|
/** Событие ввода значения в текстовом поле */
|
|
157
|
-
var handleChangeInputFrom = function (
|
|
168
|
+
var handleChangeInputFrom = function (event) {
|
|
158
169
|
var _a;
|
|
159
|
-
var value =
|
|
160
|
-
(_a = inputPropsFrom === null || inputPropsFrom === void 0 ? void 0 : inputPropsFrom.onChange) === null || _a === void 0 ? void 0 : _a.call(inputPropsFrom,
|
|
161
|
-
changeInputValue(
|
|
170
|
+
var value = prepareInputValue(event.target.value);
|
|
171
|
+
(_a = inputPropsFrom === null || inputPropsFrom === void 0 ? void 0 : inputPropsFrom.onChange) === null || _a === void 0 ? void 0 : _a.call(inputPropsFrom, event);
|
|
172
|
+
changeInputValue(event, [value, inputValueTo]);
|
|
173
|
+
isWasPaste.current = false;
|
|
162
174
|
};
|
|
163
175
|
/** Очистка поля */
|
|
164
176
|
var handleClear = function (type) { return function () {
|
|
@@ -180,7 +192,7 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
|
|
|
180
192
|
setFocusInputFrom.off();
|
|
181
193
|
if (!inputValue)
|
|
182
194
|
return;
|
|
183
|
-
if (!(0,
|
|
195
|
+
if (!(0, utils_2.isValidDateString)(inputValueFrom, steps)) {
|
|
184
196
|
changeInputValue(null, lastValidDate.current);
|
|
185
197
|
}
|
|
186
198
|
};
|
|
@@ -190,15 +202,26 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
|
|
|
190
202
|
setFocusInputTo.off();
|
|
191
203
|
if (!inputValue)
|
|
192
204
|
return;
|
|
193
|
-
if (!(0,
|
|
205
|
+
if (!(0, utils_2.isValidDateString)(inputValueTo, steps))
|
|
194
206
|
changeInputValue(null, lastValidDate.current);
|
|
195
207
|
};
|
|
196
208
|
/** Событие ввода значения в текстовом поле */
|
|
197
|
-
var handleChangeInputTo = function (
|
|
209
|
+
var handleChangeInputTo = function (event) {
|
|
210
|
+
var _a;
|
|
211
|
+
var value = prepareInputValue(event.target.value);
|
|
212
|
+
(_a = inputPropsTo === null || inputPropsTo === void 0 ? void 0 : inputPropsTo.onChange) === null || _a === void 0 ? void 0 : _a.call(inputPropsTo, event);
|
|
213
|
+
changeInputValue(event, [inputValueFrom, value]);
|
|
214
|
+
isWasPaste.current = false;
|
|
215
|
+
};
|
|
216
|
+
var handlePasteInputFrom = function (event) {
|
|
217
|
+
var _a;
|
|
218
|
+
isWasPaste.current = true;
|
|
219
|
+
(_a = inputPropsFrom === null || inputPropsFrom === void 0 ? void 0 : inputPropsFrom.onPaste) === null || _a === void 0 ? void 0 : _a.call(inputPropsFrom, event);
|
|
220
|
+
};
|
|
221
|
+
var handlePasteInputTo = function (event) {
|
|
198
222
|
var _a;
|
|
199
|
-
|
|
200
|
-
(_a = inputPropsTo === null || inputPropsTo === void 0 ? void 0 : inputPropsTo.
|
|
201
|
-
changeInputValue(e, [inputValueFrom, value]);
|
|
223
|
+
isWasPaste.current = true;
|
|
224
|
+
(_a = inputPropsTo === null || inputPropsTo === void 0 ? void 0 : inputPropsTo.onPaste) === null || _a === void 0 ? void 0 : _a.call(inputPropsTo, event);
|
|
202
225
|
};
|
|
203
226
|
/** Открытие списка по клику на текстовом поле */
|
|
204
227
|
var handleClickOnInputFrom = function (e) {
|
|
@@ -214,7 +237,7 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
|
|
|
214
237
|
};
|
|
215
238
|
/** Управление элементом контроля через клавиатуру */
|
|
216
239
|
var handleKeyDown = function (event) {
|
|
217
|
-
if ((0,
|
|
240
|
+
if ((0, utils_1.isKeys)(event, ['ArrowDown', 'ArrowUp'])) {
|
|
218
241
|
event.preventDefault();
|
|
219
242
|
handleOpen();
|
|
220
243
|
}
|
|
@@ -224,8 +247,8 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
|
|
|
224
247
|
var handleChangeCalendar = function (date) {
|
|
225
248
|
var _a = tslib_1.__read(date || [], 2), dateFrom = _a[0], dateTo = _a[1];
|
|
226
249
|
var formattedDate = [
|
|
227
|
-
(0,
|
|
228
|
-
(0,
|
|
250
|
+
(0, utils_2.formatDateToString)(dateFrom, steps),
|
|
251
|
+
(0, utils_2.formatDateToString)(dateTo, steps),
|
|
229
252
|
];
|
|
230
253
|
changeInputValue(null, formattedDate);
|
|
231
254
|
if (!disableCloseOnSelect && dateFrom && dateTo)
|
|
@@ -241,10 +264,10 @@ exports.DatePickerModeDateRange = (0, react_1.forwardRef)(function (props, ref)
|
|
|
241
264
|
disableStroke: disableStroke,
|
|
242
265
|
}, [className]) }, other, { ref: rootRef }),
|
|
243
266
|
react_1.default.createElement(Stack_1.Stack, tslib_1.__assign({ gap: "l", className: (0, index_1.cnDatePicker)('Fields', [fieldsProps === null || fieldsProps === void 0 ? void 0 : fieldsProps.className]) }, fieldsProps, { ref: fieldsRef }),
|
|
244
|
-
react_1.default.createElement(index_2.DateInput, { size: size, error: error, label: labelFrom, required: required, disabled: disabled, value: inputValueFrom, onKeyDown: handleKeyDown, renderLeft: renderLeftFrom, labelProps: labelPropsFrom, disableStroke: disableStroke, placeholder: placeholderFrom, renderRight: react_1.default.createElement(index_2.DatePickerRenderRight, { size: size, open: open, hasValue: !!valueFrom, clearText: clearText, renderRight: renderRightFrom, onClear: handleClear('from'), disableClearButton: disableClearButton }), inputProps: tslib_1.__assign(tslib_1.__assign({ autoComplete: 'off' }, inputPropsFrom), { onBlur: handleBlurInputFrom, onFocus: handleFocusInputFrom, onClick: handleClickOnInputFrom, onChange: handleChangeInputFrom }), "data-testid": "date-input-from", bodyProps: { 'aria-expanded': open } }),
|
|
245
|
-
react_1.default.createElement(index_2.DateInput, { size: size, error: error, label: labelTo, required: required, disabled: disabled, value: inputValueTo, onKeyDown: handleKeyDown, renderLeft: renderLeftTo, labelProps: labelPropsTo, placeholder: placeholderTo, disableStroke: disableStroke, renderRight: react_1.default.createElement(index_2.DatePickerRenderRight, { size: size, open: open, hasValue: !!valueTo, clearText: clearText, renderRight: renderRightTo, onClear: handleClear('to'), disableClearButton: disableClearButton }), inputProps: tslib_1.__assign(tslib_1.__assign({ autoComplete: 'off' }, inputPropsTo), { onBlur: handleBlurInputTo, onFocus: handleFocusInputTo, onClick: handleClickOnInputTo, onChange: handleChangeInputTo }), "data-testid": "date-input-to", bodyProps: { ref: dateInputToRef, 'aria-expanded': open } })),
|
|
267
|
+
react_1.default.createElement(index_2.DateInput, { size: size, error: error, label: labelFrom, required: required, disabled: disabled, value: inputValueFrom, onKeyDown: handleKeyDown, renderLeft: renderLeftFrom, labelProps: labelPropsFrom, disableStroke: disableStroke, steps: steps, placeholder: placeholderFrom, renderRight: react_1.default.createElement(index_2.DatePickerRenderRight, { size: size, open: open, hasValue: !!valueFrom, clearText: clearText, renderRight: renderRightFrom, onClear: handleClear('from'), disableClearButton: disableClearButton }), inputProps: tslib_1.__assign(tslib_1.__assign({ autoComplete: 'off' }, inputPropsFrom), { onBlur: handleBlurInputFrom, onFocus: handleFocusInputFrom, onClick: handleClickOnInputFrom, onChange: handleChangeInputFrom, onPaste: handlePasteInputFrom }), "data-testid": "date-input-from", bodyProps: { 'aria-expanded': open } }),
|
|
268
|
+
react_1.default.createElement(index_2.DateInput, { size: size, error: error, label: labelTo, required: required, disabled: disabled, value: inputValueTo, onKeyDown: handleKeyDown, renderLeft: renderLeftTo, labelProps: labelPropsTo, placeholder: placeholderTo, disableStroke: disableStroke, steps: steps, renderRight: react_1.default.createElement(index_2.DatePickerRenderRight, { size: size, open: open, hasValue: !!valueTo, clearText: clearText, renderRight: renderRightTo, onClear: handleClear('to'), disableClearButton: disableClearButton }), inputProps: tslib_1.__assign(tslib_1.__assign({ autoComplete: 'off' }, inputPropsTo), { onBlur: handleBlurInputTo, onFocus: handleFocusInputTo, onClick: handleClickOnInputTo, onChange: handleChangeInputTo, onPaste: handlePasteInputTo }), "data-testid": "date-input-to", bodyProps: { ref: dateInputToRef, 'aria-expanded': open } })),
|
|
246
269
|
react_1.default.createElement(FieldHint_1.FieldHint, tslib_1.__assign({ size: size, error: error, disabled: disabled }, hintProps), hint),
|
|
247
270
|
react_1.default.createElement(Popover_1.Popover, tslib_1.__assign({ open: open, anchorRef: anchorRef, onClose: handleClose }, popoverProps, { onExited: handleExited, ignoreClickOutsideRefs: [containerRef], disableEnforceFocus: disableEnforceFocus }),
|
|
248
|
-
react_1.default.createElement(Calendar_1.Calendar, tslib_1.__assign({ calendars: calendars }, calendarProps, { mode: "range", offsetDate: offsetDate, onChange: handleChangeCalendar, value: (0,
|
|
271
|
+
react_1.default.createElement(Calendar_1.Calendar, tslib_1.__assign({ calendars: calendars }, calendarProps, { initialStep: initialStep, steps: steps, mode: "range", offsetDate: offsetDate, onChange: handleChangeCalendar, value: (0, utils_3.formatDateForCalendar)(value), onCalendarsChange: onCalendarsChange, onOffsetDateChange: onOffsetDateChange })))));
|
|
249
272
|
});
|
|
250
273
|
exports.DatePickerModeDateRange.displayName = 'DatePickerModeDateRange';
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DATE_PICKER_DEFAULT_MODE = exports.DATE_PICKER_DEFAULT_SIZE = void 0;
|
|
3
|
+
exports.DATE_PICKER_DEFAULT_INITIAL_STEP = exports.DATE_PICKER_DEFAULT_STEPS = exports.DATE_PICKER_DEFAULT_MODE = exports.DATE_PICKER_DEFAULT_SIZE = void 0;
|
|
4
|
+
var Calendar_1 = require("../Calendar");
|
|
4
5
|
exports.DATE_PICKER_DEFAULT_SIZE = 'm';
|
|
5
6
|
exports.DATE_PICKER_DEFAULT_MODE = 'date';
|
|
7
|
+
exports.DATE_PICKER_DEFAULT_STEPS = Calendar_1.CALENDAR_DEFAULT_STEPS;
|
|
8
|
+
exports.DATE_PICKER_DEFAULT_INITIAL_STEP = Calendar_1.CALENDAR_DEFAULT_INITIAL_STEP;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { ChangeEvent, ComponentRef, ReactNode } from 'react';
|
|
2
2
|
import type { ExtendableComponentPropsWithRef } from '../../types/ExtendableComponentPropsWithRef';
|
|
3
3
|
import type { WithDisplayName } from '../../types/react';
|
|
4
|
-
import type { CalendarProps } from '../Calendar';
|
|
4
|
+
import type { CalendarPropCalendars, CalendarProps, CalendarSteps } from '../Calendar';
|
|
5
5
|
import type { FieldHintProps } from '../FieldHint';
|
|
6
6
|
import type { FieldInputProps } from '../FieldInput';
|
|
7
7
|
import type { FieldLabelProps } from '../FieldLabel';
|
|
8
|
-
import type { InputProps
|
|
8
|
+
import type { InputProps } from '../Input';
|
|
9
9
|
import type { PopoverBaseProps } from '../Popover';
|
|
10
10
|
import type { StackProps } from '../Stack';
|
|
11
11
|
import type { DATE_PICKER_DEFAULT_MODE } from './constants';
|
|
@@ -19,7 +19,11 @@ export type DatePickerPropOnChange<MODE extends DatePickerModeVariant> = (date:
|
|
|
19
19
|
type InputPropLabel = InputProps['label'];
|
|
20
20
|
type InputPropRenderLeft = InputProps['renderLeft'];
|
|
21
21
|
type InputPropRenderRight = InputProps['renderRight'];
|
|
22
|
-
type
|
|
22
|
+
type InputPropPlaceholderString = InputProps['placeholder'];
|
|
23
|
+
type InputPropPlaceholderFunction = (steps: CalendarSteps) => InputPropPlaceholderString;
|
|
24
|
+
export type InputPropPlaceholder = InputPropPlaceholderString | InputPropPlaceholderFunction;
|
|
25
|
+
export declare const datePickerSizeVariant: readonly ["2xs", "xs", "s", "m", "l"];
|
|
26
|
+
export type DatePickerSizeVariant = (typeof datePickerSizeVariant)[number];
|
|
23
27
|
export type DatePickerPropLabel<MODE> = MODE extends Range ? [InputPropLabel?, InputPropLabel?] | InputPropLabel : InputPropLabel;
|
|
24
28
|
export type DatePickerPropRenderLeft<MODE> = MODE extends Range ? [InputPropRenderLeft?, InputPropRenderLeft?] | InputPropRenderLeft : InputPropRenderLeft;
|
|
25
29
|
export type DatePickerPropRenderRight<MODE> = MODE extends Range ? [InputPropRenderRight?, InputPropRenderRight?] | InputPropRenderRight : InputPropRenderRight;
|
|
@@ -96,7 +100,7 @@ export type DatePickerProps<MODE extends DatePickerModeVariant = typeof DATE_PIC
|
|
|
96
100
|
/** Cвойства FieldHint */
|
|
97
101
|
hintProps?: Omit<FieldHintProps, 'children'>;
|
|
98
102
|
/** Размер компонента */
|
|
99
|
-
size?:
|
|
103
|
+
size?: DatePickerSizeVariant;
|
|
100
104
|
/** Если `true` растягивает поле на всю ширину */
|
|
101
105
|
fullWidth?: boolean;
|
|
102
106
|
/** Если `true` делает элемент обязательным к заполнению */
|
|
@@ -108,8 +112,8 @@ export type DatePickerProps<MODE extends DatePickerModeVariant = typeof DATE_PIC
|
|
|
108
112
|
/** Свойства обертки для текстовых полей. Принимает свойства компонента [Stack](https://ozen-ui.bereke.tech/?path=/docs/components-stack--docs) */
|
|
109
113
|
fieldsProps?: DatePickerPropFieldsProps<MODE>;
|
|
110
114
|
/** Количество отображаемых календарей в компоненте: один или два */
|
|
111
|
-
calendars?:
|
|
112
|
-
} & Pick<CalendarProps, 'minDate' | 'maxDate' | 'exclude'> & Pick<InputProps, 'onKeyDown'>, 'div'>;
|
|
115
|
+
calendars?: CalendarPropCalendars;
|
|
116
|
+
} & Pick<CalendarProps, 'minDate' | 'maxDate' | 'exclude' | 'steps' | 'initialStep'> & Pick<InputProps, 'onKeyDown'>, 'div'>;
|
|
113
117
|
export type DatePickerComponent = WithDisplayName<(<MODE extends DatePickerModeVariant = typeof DATE_PICKER_DEFAULT_MODE>(props: DatePickerProps<MODE>) => ReactNode)>;
|
|
114
118
|
export type DatePickerModeComponent<MODE extends DatePickerModeVariant> = WithDisplayName<(props: Omit<DatePickerProps<MODE>, 'mode'>) => ReactNode>;
|
|
115
119
|
export {};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.datePickerModeVariant = void 0;
|
|
3
|
+
exports.datePickerSizeVariant = exports.datePickerModeVariant = void 0;
|
|
4
|
+
var types_1 = require("../../types");
|
|
4
5
|
exports.datePickerModeVariant = ['date', 'date-range'];
|
|
6
|
+
exports.datePickerSizeVariant = types_1.formElementSizeVariant;
|
package/__inner__/cjs/components/DatePicker/utils/formatDateToString/formatDateToString.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import type { CalendarSteps } from '../../../Calendar';
|
|
2
|
+
export declare const formatDateToString: (date: Date | undefined | null, steps: CalendarSteps) => string;
|
|
@@ -1,13 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.formatDateToString = void 0;
|
|
4
|
-
var formatDateToString = function (date) {
|
|
4
|
+
var formatDateToString = function (date, steps) {
|
|
5
5
|
if (!date) {
|
|
6
6
|
return '';
|
|
7
7
|
}
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
|
|
8
|
+
var hasYearsStep = steps.includes('years');
|
|
9
|
+
var hasMonthsStep = steps.includes('months');
|
|
10
|
+
var hasDaysStep = steps.includes('days');
|
|
11
|
+
var parts = [];
|
|
12
|
+
if (hasDaysStep) {
|
|
13
|
+
var day = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(date);
|
|
14
|
+
parts.push(day);
|
|
15
|
+
}
|
|
16
|
+
if (hasMonthsStep) {
|
|
17
|
+
var month = new Intl.DateTimeFormat('en', { month: '2-digit' }).format(date);
|
|
18
|
+
parts.push(month);
|
|
19
|
+
}
|
|
20
|
+
if (hasYearsStep) {
|
|
21
|
+
var year = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(date);
|
|
22
|
+
parts.push(year);
|
|
23
|
+
}
|
|
24
|
+
return parts.join('.');
|
|
12
25
|
};
|
|
13
26
|
exports.formatDateToString = formatDateToString;
|
package/__inner__/cjs/components/DatePicker/utils/formatStringToDate/formatStringToDate.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import type { CalendarSteps } from '../../../Calendar';
|
|
2
|
+
export declare const formatStringToDate: (value: string, steps: CalendarSteps) => Date | null;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.formatStringToDate = void 0;
|
|
4
|
-
var
|
|
5
|
-
var formatStringToDate = function (value) {
|
|
6
|
-
var
|
|
7
|
-
if (!
|
|
4
|
+
var parseDateString_1 = require("../parseDateString");
|
|
5
|
+
var formatStringToDate = function (value, steps) {
|
|
6
|
+
var parsedDate = (0, parseDateString_1.parseDateString)(value, steps);
|
|
7
|
+
if (!parsedDate) {
|
|
8
8
|
return null;
|
|
9
9
|
}
|
|
10
|
-
|
|
10
|
+
var day = parsedDate.day, month = parsedDate.month, year = parsedDate.year;
|
|
11
|
+
return new Date(+year, +month - 1, +day);
|
|
11
12
|
};
|
|
12
13
|
exports.formatStringToDate = formatStringToDate;
|
package/__inner__/cjs/components/DatePicker/utils/getCommonCalendarProps/getCommonCalendarProps.js
CHANGED
|
@@ -4,13 +4,13 @@ exports.getCommonCalendarProps = void 0;
|
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var getCalendarSizeToFormElement_1 = require("../getCalendarSizeToFormElement");
|
|
6
6
|
var getCommonCalendarProps = function (props) {
|
|
7
|
-
var minDate = props.minDate, maxDate = props.maxDate, exclude = props.exclude, _a = props.size, size = _a === void 0 ? 'm' : _a, ref = props.ref, calendarProps = props.calendarProps;
|
|
7
|
+
var minDate = props.minDate, maxDate = props.maxDate, exclude = props.exclude, _a = props.size, size = _a === void 0 ? 'm' : _a, ref = props.ref, calendarProps = props.calendarProps, steps = props.steps, initialStep = props.initialStep;
|
|
8
8
|
/** Соотношение размера календаря к размеру элемента контроля */
|
|
9
9
|
var calendarSize = (0, getCalendarSizeToFormElement_1.getCalendarSizeToFormElement)(size);
|
|
10
10
|
/** Предотвращаем переход фокуса с текстового поля на интерактивные элементы календаря */
|
|
11
11
|
var handleMouseDownCalendar = function (e) {
|
|
12
12
|
e.preventDefault();
|
|
13
13
|
};
|
|
14
|
-
return tslib_1.__assign(tslib_1.__assign({ minDate: minDate, maxDate: maxDate, exclude: exclude, size: calendarSize }, calendarProps), { ref: ref, onMouseDown: handleMouseDownCalendar });
|
|
14
|
+
return tslib_1.__assign(tslib_1.__assign({ minDate: minDate, maxDate: maxDate, exclude: exclude, size: calendarSize }, calendarProps), { ref: ref, onMouseDown: handleMouseDownCalendar, steps: steps, initialStep: initialStep });
|
|
15
15
|
};
|
|
16
16
|
exports.getCommonCalendarProps = getCommonCalendarProps;
|
|
@@ -6,4 +6,6 @@ export * from './isInExclude';
|
|
|
6
6
|
export * from './getCommonPopoverProps';
|
|
7
7
|
export * from './getCommonCalendarProps';
|
|
8
8
|
export * from './isValidDateString';
|
|
9
|
+
export * from './maskPastedDate';
|
|
10
|
+
export * from './parseDateString';
|
|
9
11
|
export * from './useCalendarKeyboard';
|
|
@@ -9,4 +9,6 @@ tslib_1.__exportStar(require("./isInExclude"), exports);
|
|
|
9
9
|
tslib_1.__exportStar(require("./getCommonPopoverProps"), exports);
|
|
10
10
|
tslib_1.__exportStar(require("./getCommonCalendarProps"), exports);
|
|
11
11
|
tslib_1.__exportStar(require("./isValidDateString"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./maskPastedDate"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./parseDateString"), exports);
|
|
12
14
|
tslib_1.__exportStar(require("./useCalendarKeyboard"), exports);
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import type { CalendarSteps } from '../../../Calendar';
|
|
2
|
+
export declare const isValidDateString: (value: string | null | undefined, steps: CalendarSteps) => boolean;
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isValidDateString = void 0;
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
if (!(0, isNotNil_1.isNotNil)(value)) {
|
|
4
|
+
var utils_1 = require("../../../../utils");
|
|
5
|
+
var parseDateString_1 = require("../parseDateString");
|
|
6
|
+
var isValidDateString = function (value, steps) {
|
|
7
|
+
if (!(0, utils_1.isNotNil)(value)) {
|
|
9
8
|
return false;
|
|
10
9
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
if (value === '') {
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
var parsedDate = (0, parseDateString_1.parseDateString)(value, steps);
|
|
14
|
+
return !!parsedDate;
|
|
14
15
|
};
|
|
15
16
|
exports.isValidDateString = isValidDateString;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './maskPastedDate';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CalendarSteps } from '../../../Calendar';
|
|
2
|
+
/**
|
|
3
|
+
* Функция для обработки вставленного значения.
|
|
4
|
+
* Умеет обрабатывать форматы DD.MM.YYYY/DDMMYYYY, либо сочетания вида DDMM/DD.MM.
|
|
5
|
+
*/
|
|
6
|
+
export declare const maskPastedDate: (value: string, steps: CalendarSteps) => string;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.maskPastedDate = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Функция для обработки вставленного значения.
|
|
6
|
+
* Умеет обрабатывать форматы DD.MM.YYYY/DDMMYYYY, либо сочетания вида DDMM/DD.MM.
|
|
7
|
+
*/
|
|
8
|
+
var maskPastedDate = function (value, steps) {
|
|
9
|
+
var digits = value.replace(/\D/g, '').slice(0, 8); // максимум 8 цифр
|
|
10
|
+
var hasYearsStep = steps.includes('years');
|
|
11
|
+
var hasMonthsStep = steps.includes('months');
|
|
12
|
+
var hasDaysStep = steps.includes('days');
|
|
13
|
+
// DD
|
|
14
|
+
if (hasDaysStep && !hasMonthsStep && !hasYearsStep) {
|
|
15
|
+
return digits.slice(0, 2);
|
|
16
|
+
}
|
|
17
|
+
// MM
|
|
18
|
+
if (!hasDaysStep && hasMonthsStep && !hasYearsStep) {
|
|
19
|
+
return digits.slice(0, 2);
|
|
20
|
+
}
|
|
21
|
+
// YYYY
|
|
22
|
+
if (!hasDaysStep && !hasMonthsStep && hasYearsStep) {
|
|
23
|
+
return digits.slice(0, 4);
|
|
24
|
+
}
|
|
25
|
+
// DD.MM.YYYY
|
|
26
|
+
if (hasDaysStep && hasMonthsStep && hasYearsStep) {
|
|
27
|
+
return "".concat(digits.slice(0, 2), ".").concat(digits.slice(2, 4), ".").concat(digits.slice(4, 8));
|
|
28
|
+
}
|
|
29
|
+
// DD.MM
|
|
30
|
+
if (hasDaysStep && hasMonthsStep && !hasYearsStep) {
|
|
31
|
+
return "".concat(digits.slice(0, 2), ".").concat(digits.slice(2, 4));
|
|
32
|
+
}
|
|
33
|
+
// DD.YYYY
|
|
34
|
+
if (hasDaysStep && !hasMonthsStep && hasYearsStep) {
|
|
35
|
+
return "".concat(digits.slice(0, 2), ".").concat(digits.slice(2, 6));
|
|
36
|
+
}
|
|
37
|
+
// MM.YYYY
|
|
38
|
+
if (!hasDaysStep && hasMonthsStep && hasYearsStep) {
|
|
39
|
+
return "".concat(digits.slice(0, 2), ".").concat(digits.slice(2, 6));
|
|
40
|
+
}
|
|
41
|
+
throw new Error('Не удалось сделать маску для значения');
|
|
42
|
+
};
|
|
43
|
+
exports.maskPastedDate = maskPastedDate;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './parseDateString';
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseDateString = void 0;
|
|
4
|
+
var utils_1 = require("../../../../utils");
|
|
5
|
+
var parseDateString = function (value, steps) {
|
|
6
|
+
if (!(0, utils_1.isNotNil)(value)) {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
if (value === '') {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
var hasYearsSteps = steps.includes('years');
|
|
13
|
+
var hasMonthsSteps = steps.includes('months');
|
|
14
|
+
var hasDaysSteps = steps.includes('days');
|
|
15
|
+
var splitted = value.split('.');
|
|
16
|
+
var day;
|
|
17
|
+
var month;
|
|
18
|
+
var year;
|
|
19
|
+
var offset = 0;
|
|
20
|
+
if (hasDaysSteps) {
|
|
21
|
+
day = splitted[offset];
|
|
22
|
+
offset += 1;
|
|
23
|
+
}
|
|
24
|
+
if (hasMonthsSteps) {
|
|
25
|
+
month = splitted[offset];
|
|
26
|
+
offset += 1;
|
|
27
|
+
}
|
|
28
|
+
if (hasYearsSteps) {
|
|
29
|
+
year = splitted[offset];
|
|
30
|
+
}
|
|
31
|
+
var parts = [];
|
|
32
|
+
if (hasYearsSteps) {
|
|
33
|
+
parts.push(year);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
var now = new Date();
|
|
37
|
+
parts.push(now.getFullYear().toString());
|
|
38
|
+
}
|
|
39
|
+
if (hasMonthsSteps) {
|
|
40
|
+
parts.push(month);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
// 3 месяц для кейса, где пользователь вводит 31 день месяца
|
|
44
|
+
parts.push('03');
|
|
45
|
+
}
|
|
46
|
+
if (hasDaysSteps) {
|
|
47
|
+
parts.push(day);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
parts.push('01');
|
|
51
|
+
}
|
|
52
|
+
var filteredParts = parts.filter(function (part) { return part !== undefined; });
|
|
53
|
+
if (filteredParts.length !== 3) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
var stringDate = filteredParts.join('-');
|
|
57
|
+
if (stringDate.length !== 10 || !(0, utils_1.isValidDate)(stringDate)) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
year: parts[0],
|
|
62
|
+
month: parts[1],
|
|
63
|
+
day: parts[2],
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
exports.parseDateString = parseDateString;
|