@ozen-ui/kit 0.60.0 → 0.62.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/__inner__/cjs/components/Autocomplete/helper.d.ts +7 -72
- package/__inner__/cjs/components/Autocomplete/types.d.ts +11 -17
- package/__inner__/cjs/components/AutocompleteNext/Autocomplete.css +1 -1
- package/__inner__/cjs/components/AutocompleteNext/helpers.d.ts +7 -77
- package/__inner__/cjs/components/AutocompleteNext/types.d.ts +10 -16
- package/__inner__/cjs/components/Calendar/Calendar.js +2 -2
- package/__inner__/cjs/components/Calendar/CalendarContext.d.ts +2 -3
- package/__inner__/cjs/components/Calendar/components/CalendarGridItem/types.d.ts +2 -2
- package/__inner__/cjs/components/Calendar/components/CalendarModeRange/CalendarModeRange.d.ts +2 -2
- package/__inner__/cjs/components/Calendar/components/CalendarModeRange/CalendarModeRange.js +14 -18
- package/__inner__/cjs/components/Calendar/components/CalendarModeRange/components/index.d.ts +0 -1
- package/__inner__/cjs/components/Calendar/components/CalendarModeRange/components/index.js +0 -1
- package/__inner__/cjs/components/Calendar/components/CalendarModeSingle/CalendarModeSingle.d.ts +2 -2
- package/__inner__/cjs/components/Calendar/components/CalendarModeSingle/CalendarModeSingle.js +10 -18
- package/__inner__/cjs/components/Calendar/components/CalendarModeSingle/components/index.d.ts +0 -1
- package/__inner__/cjs/components/Calendar/components/CalendarModeSingle/components/index.js +0 -1
- package/__inner__/cjs/components/Calendar/components/Calendars/Calendars.d.ts +5 -0
- package/__inner__/cjs/components/Calendar/components/Calendars/Calendars.js +45 -0
- package/__inner__/cjs/components/Calendar/components/Calendars/index.d.ts +1 -0
- package/__inner__/cjs/components/Calendar/components/{CalendarModeSingle/components/CalendarConsumer → Calendars}/index.js +1 -1
- package/__inner__/cjs/components/Calendar/components/index.d.ts +1 -0
- package/__inner__/cjs/components/Calendar/components/index.js +1 -0
- package/__inner__/cjs/components/Calendar/constants.d.ts +1 -1
- package/__inner__/cjs/components/Calendar/constants.js +2 -2
- package/__inner__/cjs/components/Calendar/types.d.ts +60 -24
- package/__inner__/cjs/components/DataList/DataList.css +1 -1
- package/__inner__/cjs/components/DatePicker/DatePicker.css +12 -1
- package/__inner__/cjs/components/DatePicker/DatePicker.d.ts +2 -37
- package/__inner__/cjs/components/DatePicker/DatePicker.js +9 -143
- package/__inner__/cjs/components/DatePicker/components/DateInput/DateInput.js +1 -2
- package/__inner__/cjs/components/DatePicker/components/DateInput/utils/dateInputMask/dateInputMask.d.ts +0 -1
- package/__inner__/cjs/components/DatePicker/components/DateInput/utils/dateInputMask/dateInputMask.js +1 -3
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDate/DatePickerModeDate.d.ts +2 -0
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDate/DatePickerModeDate.js +159 -0
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDate/index.d.ts +1 -0
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDate/index.js +4 -0
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/DatePickerModeDateRange.d.ts +2 -0
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/DatePickerModeDateRange.js +247 -0
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/index.d.ts +1 -0
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/index.js +4 -0
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/formatDateForCalendar/formatDateForCalendar.d.ts +3 -0
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/formatDateForCalendar/formatDateForCalendar.js +10 -0
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/formatDateForCalendar/index.d.ts +1 -0
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/formatDateForCalendar/index.js +4 -0
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/getOffsetDateInRange/getOffsetDateInRange.d.ts +6 -0
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/getOffsetDateInRange/getOffsetDateInRange.js +32 -0
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/getOffsetDateInRange/index.d.ts +1 -0
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/getOffsetDateInRange/index.js +4 -0
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/getValueForDoubleProp/getValueForDoubleProp.d.ts +1 -0
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/getValueForDoubleProp/getValueForDoubleProp.js +7 -0
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/getValueForDoubleProp/index.d.ts +1 -0
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/getValueForDoubleProp/index.js +4 -0
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/index.d.ts +3 -0
- package/__inner__/cjs/components/DatePicker/components/DatePickerModeDateRange/utils/index.js +6 -0
- package/__inner__/cjs/components/DatePicker/components/index.d.ts +2 -0
- package/__inner__/cjs/components/DatePicker/components/index.js +2 -0
- package/__inner__/cjs/components/DatePicker/constants.d.ts +1 -0
- package/__inner__/cjs/components/DatePicker/constants.js +2 -1
- package/__inner__/cjs/components/DatePicker/types.d.ts +85 -26
- package/__inner__/cjs/components/DatePicker/types.js +2 -0
- package/__inner__/cjs/components/DatePicker/utils/formatStringToDate/formatStringToDate.js +1 -2
- package/__inner__/cjs/components/DatePicker/utils/getCommonCalendarProps/getCommonCalendarProps.d.ts +3 -0
- package/__inner__/cjs/components/DatePicker/utils/getCommonCalendarProps/getCommonCalendarProps.js +16 -0
- package/__inner__/cjs/components/DatePicker/utils/getCommonCalendarProps/index.d.ts +1 -0
- package/__inner__/cjs/components/DatePicker/utils/getCommonCalendarProps/index.js +4 -0
- package/__inner__/cjs/components/DatePicker/utils/getCommonPopoverProps/getCommonPopoverProps.d.ts +4 -0
- package/__inner__/cjs/components/DatePicker/utils/getCommonPopoverProps/getCommonPopoverProps.js +13 -0
- package/__inner__/cjs/components/DatePicker/utils/getCommonPopoverProps/index.d.ts +1 -0
- package/__inner__/cjs/components/DatePicker/utils/getCommonPopoverProps/index.js +4 -0
- package/__inner__/cjs/components/DatePicker/utils/index.d.ts +4 -0
- package/__inner__/cjs/components/DatePicker/utils/index.js +4 -0
- package/__inner__/cjs/components/DatePicker/utils/isValidDateString/index.d.ts +1 -0
- package/__inner__/cjs/components/DatePicker/utils/isValidDateString/index.js +4 -0
- package/__inner__/cjs/components/DatePicker/utils/isValidDateString/isValidDateString.d.ts +1 -0
- package/__inner__/cjs/components/DatePicker/utils/isValidDateString/isValidDateString.js +15 -0
- package/__inner__/cjs/components/DatePicker/utils/useCalendarKeyboard/index.d.ts +1 -0
- package/__inner__/cjs/components/{Select/components/SelectConsumer → DatePicker/utils/useCalendarKeyboard}/index.js +1 -1
- package/__inner__/cjs/components/DatePicker/utils/useCalendarKeyboard/useCalendarKeyboard.d.ts +8 -0
- package/__inner__/cjs/components/DatePicker/utils/useCalendarKeyboard/useCalendarKeyboard.js +47 -0
- package/__inner__/cjs/components/Menu/Menu.css +1 -1
- package/__inner__/cjs/components/Popover/Popover.js +2 -2
- package/__inner__/cjs/components/Popover/types.d.ts +2 -0
- package/__inner__/cjs/components/Segment/Segment.js +1 -1
- package/__inner__/cjs/components/Segment/components/SegmentItem/SegmentItem.js +1 -1
- package/__inner__/cjs/components/Select/Select.css +6 -0
- package/__inner__/cjs/components/Select/Select.js +41 -59
- package/__inner__/cjs/components/Select/components/SelectInput/SelectInput.js +5 -6
- package/__inner__/cjs/components/Select/components/SelectInputContextConsumer/SelectInputContextConsumer.d.ts +5 -0
- package/__inner__/cjs/components/Select/components/{SelectConsumer/SelectInputConsumer.js → SelectInputContextConsumer/SelectInputContextConsumer.js} +3 -3
- package/__inner__/cjs/components/Select/components/SelectInputContextConsumer/index.d.ts +1 -0
- package/__inner__/cjs/components/Select/components/SelectInputContextConsumer/index.js +4 -0
- package/__inner__/cjs/components/Select/helpers/types.d.ts +5 -8
- package/__inner__/cjs/components/Select/helpers/types.js +5 -1
- package/__inner__/cjs/components/Select/types.d.ts +43 -41
- package/__inner__/cjs/components/Skeleton/Skeleton.css +1 -1
- package/__inner__/cjs/components/Stack/types.d.ts +2 -2
- package/__inner__/cjs/hooks/useClickOutside/useClickOutside.d.ts +4 -4
- package/__inner__/cjs/hooks/useClickOutside/useClickOutside.js +7 -12
- package/__inner__/cjs/utils/date/index.d.ts +1 -0
- package/__inner__/cjs/utils/date/index.js +1 -0
- package/__inner__/cjs/utils/date/isValidDate/index.d.ts +1 -0
- package/__inner__/cjs/{components/Calendar/components/CalendarModeRange/components/CalendarConsumer → utils/date/isValidDate}/index.js +1 -1
- package/__inner__/cjs/utils/date/isValidDate/isValidDate.d.ts +1 -0
- package/__inner__/cjs/utils/date/isValidDate/isValidDate.js +7 -0
- package/__inner__/cjs/utils/date/monthDiff/monthDiff.d.ts +1 -1
- package/__inner__/cjs/utils/date/monthDiff/monthDiff.js +3 -0
- package/__inner__/esm/components/Autocomplete/helper.d.ts +7 -72
- package/__inner__/esm/components/Autocomplete/types.d.ts +11 -17
- package/__inner__/esm/components/AutocompleteNext/Autocomplete.css +1 -1
- package/__inner__/esm/components/AutocompleteNext/helpers.d.ts +7 -77
- package/__inner__/esm/components/AutocompleteNext/types.d.ts +10 -16
- package/__inner__/esm/components/Calendar/Calendar.js +3 -3
- package/__inner__/esm/components/Calendar/CalendarContext.d.ts +2 -3
- package/__inner__/esm/components/Calendar/components/CalendarGridItem/types.d.ts +2 -2
- package/__inner__/esm/components/Calendar/components/CalendarModeRange/CalendarModeRange.d.ts +2 -2
- package/__inner__/esm/components/Calendar/components/CalendarModeRange/CalendarModeRange.js +15 -19
- package/__inner__/esm/components/Calendar/components/CalendarModeRange/components/index.d.ts +0 -1
- package/__inner__/esm/components/Calendar/components/CalendarModeRange/components/index.js +0 -1
- package/__inner__/esm/components/Calendar/components/CalendarModeSingle/CalendarModeSingle.d.ts +2 -2
- package/__inner__/esm/components/Calendar/components/CalendarModeSingle/CalendarModeSingle.js +11 -19
- package/__inner__/esm/components/Calendar/components/CalendarModeSingle/components/index.d.ts +0 -1
- package/__inner__/esm/components/Calendar/components/CalendarModeSingle/components/index.js +0 -1
- package/__inner__/esm/components/Calendar/components/Calendars/Calendars.d.ts +5 -0
- package/__inner__/esm/components/Calendar/components/Calendars/Calendars.js +41 -0
- package/__inner__/esm/components/Calendar/components/Calendars/index.d.ts +1 -0
- package/__inner__/esm/components/Calendar/components/Calendars/index.js +1 -0
- package/__inner__/esm/components/Calendar/components/index.d.ts +1 -0
- package/__inner__/esm/components/Calendar/components/index.js +1 -0
- package/__inner__/esm/components/Calendar/constants.d.ts +1 -1
- package/__inner__/esm/components/Calendar/constants.js +1 -1
- package/__inner__/esm/components/Calendar/types.d.ts +60 -24
- package/__inner__/esm/components/DataList/DataList.css +1 -1
- package/__inner__/esm/components/DatePicker/DatePicker.css +12 -1
- package/__inner__/esm/components/DatePicker/DatePicker.d.ts +2 -37
- package/__inner__/esm/components/DatePicker/DatePicker.js +13 -147
- package/__inner__/esm/components/DatePicker/components/DateInput/DateInput.js +1 -2
- package/__inner__/esm/components/DatePicker/components/DateInput/utils/dateInputMask/dateInputMask.d.ts +0 -1
- package/__inner__/esm/components/DatePicker/components/DateInput/utils/dateInputMask/dateInputMask.js +0 -1
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDate/DatePickerModeDate.d.ts +2 -0
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDate/DatePickerModeDate.js +156 -0
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDate/index.d.ts +1 -0
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDate/index.js +1 -0
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/DatePickerModeDateRange.d.ts +2 -0
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/DatePickerModeDateRange.js +244 -0
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/index.d.ts +1 -0
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/index.js +1 -0
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/formatDateForCalendar/formatDateForCalendar.d.ts +3 -0
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/formatDateForCalendar/formatDateForCalendar.js +6 -0
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/formatDateForCalendar/index.d.ts +1 -0
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/formatDateForCalendar/index.js +1 -0
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/getOffsetDateInRange/getOffsetDateInRange.d.ts +6 -0
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/getOffsetDateInRange/getOffsetDateInRange.js +28 -0
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/getOffsetDateInRange/index.d.ts +1 -0
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/getOffsetDateInRange/index.js +1 -0
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/getValueForDoubleProp/getValueForDoubleProp.d.ts +1 -0
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/getValueForDoubleProp/getValueForDoubleProp.js +3 -0
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/getValueForDoubleProp/index.d.ts +1 -0
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/getValueForDoubleProp/index.js +1 -0
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/index.d.ts +3 -0
- package/__inner__/esm/components/DatePicker/components/DatePickerModeDateRange/utils/index.js +3 -0
- package/__inner__/esm/components/DatePicker/components/index.d.ts +2 -0
- package/__inner__/esm/components/DatePicker/components/index.js +2 -0
- package/__inner__/esm/components/DatePicker/constants.d.ts +1 -0
- package/__inner__/esm/components/DatePicker/constants.js +1 -0
- package/__inner__/esm/components/DatePicker/types.d.ts +85 -26
- package/__inner__/esm/components/DatePicker/types.js +1 -1
- package/__inner__/esm/components/DatePicker/utils/formatStringToDate/formatStringToDate.js +1 -2
- package/__inner__/esm/components/DatePicker/utils/getCommonCalendarProps/getCommonCalendarProps.d.ts +3 -0
- package/__inner__/esm/components/DatePicker/utils/getCommonCalendarProps/getCommonCalendarProps.js +12 -0
- package/__inner__/esm/components/DatePicker/utils/getCommonCalendarProps/index.d.ts +1 -0
- package/__inner__/esm/components/DatePicker/utils/getCommonCalendarProps/index.js +1 -0
- package/__inner__/esm/components/DatePicker/utils/getCommonPopoverProps/getCommonPopoverProps.d.ts +4 -0
- package/__inner__/esm/components/DatePicker/utils/getCommonPopoverProps/getCommonPopoverProps.js +9 -0
- package/__inner__/esm/components/DatePicker/utils/getCommonPopoverProps/index.d.ts +1 -0
- package/__inner__/esm/components/DatePicker/utils/getCommonPopoverProps/index.js +1 -0
- package/__inner__/esm/components/DatePicker/utils/index.d.ts +4 -0
- package/__inner__/esm/components/DatePicker/utils/index.js +4 -0
- package/__inner__/esm/components/DatePicker/utils/isValidDateString/index.d.ts +1 -0
- package/__inner__/esm/components/DatePicker/utils/isValidDateString/index.js +1 -0
- package/__inner__/esm/components/DatePicker/utils/isValidDateString/isValidDateString.d.ts +1 -0
- package/__inner__/esm/components/DatePicker/utils/isValidDateString/isValidDateString.js +11 -0
- package/__inner__/esm/components/DatePicker/utils/useCalendarKeyboard/index.d.ts +1 -0
- package/__inner__/esm/components/DatePicker/utils/useCalendarKeyboard/index.js +1 -0
- package/__inner__/esm/components/DatePicker/utils/useCalendarKeyboard/useCalendarKeyboard.d.ts +8 -0
- package/__inner__/esm/components/DatePicker/utils/useCalendarKeyboard/useCalendarKeyboard.js +43 -0
- package/__inner__/esm/components/Menu/Menu.css +1 -1
- package/__inner__/esm/components/Popover/Popover.js +2 -2
- package/__inner__/esm/components/Popover/types.d.ts +2 -0
- package/__inner__/esm/components/Segment/Segment.js +1 -1
- package/__inner__/esm/components/Segment/components/SegmentItem/SegmentItem.js +1 -1
- package/__inner__/esm/components/Select/Select.css +6 -0
- package/__inner__/esm/components/Select/Select.js +42 -60
- package/__inner__/esm/components/Select/components/SelectInput/SelectInput.js +5 -6
- package/__inner__/esm/components/Select/components/SelectInputContextConsumer/SelectInputContextConsumer.d.ts +5 -0
- package/__inner__/esm/components/Select/components/{SelectConsumer/SelectInputConsumer.js → SelectInputContextConsumer/SelectInputContextConsumer.js} +1 -1
- package/__inner__/esm/components/Select/components/SelectInputContextConsumer/index.d.ts +1 -0
- package/__inner__/esm/components/Select/components/SelectInputContextConsumer/index.js +1 -0
- package/__inner__/esm/components/Select/helpers/types.d.ts +5 -8
- package/__inner__/esm/components/Select/helpers/types.js +2 -0
- package/__inner__/esm/components/Select/types.d.ts +43 -41
- package/__inner__/esm/components/Skeleton/Skeleton.css +1 -1
- package/__inner__/esm/components/Stack/types.d.ts +2 -2
- package/__inner__/esm/hooks/useClickOutside/useClickOutside.d.ts +4 -4
- package/__inner__/esm/hooks/useClickOutside/useClickOutside.js +7 -12
- package/__inner__/esm/utils/date/index.d.ts +1 -0
- package/__inner__/esm/utils/date/index.js +1 -0
- package/__inner__/esm/utils/date/isValidDate/index.d.ts +1 -0
- package/__inner__/esm/utils/date/isValidDate/index.js +1 -0
- package/__inner__/esm/utils/date/isValidDate/isValidDate.d.ts +1 -0
- package/__inner__/esm/utils/date/isValidDate/isValidDate.js +3 -0
- package/__inner__/esm/utils/date/monthDiff/monthDiff.d.ts +1 -1
- package/__inner__/esm/utils/date/monthDiff/monthDiff.js +3 -0
- package/package.json +5 -5
- package/__inner__/cjs/components/Calendar/components/CalendarModeRange/components/CalendarConsumer/CalendarConsumer.d.ts +0 -2
- package/__inner__/cjs/components/Calendar/components/CalendarModeRange/components/CalendarConsumer/CalendarConsumer.js +0 -45
- package/__inner__/cjs/components/Calendar/components/CalendarModeRange/components/CalendarConsumer/index.d.ts +0 -1
- package/__inner__/cjs/components/Calendar/components/CalendarModeSingle/components/CalendarConsumer/CalendarConsumer.d.ts +0 -2
- package/__inner__/cjs/components/Calendar/components/CalendarModeSingle/components/CalendarConsumer/CalendarConsumer.js +0 -39
- package/__inner__/cjs/components/Calendar/components/CalendarModeSingle/components/CalendarConsumer/index.d.ts +0 -1
- package/__inner__/cjs/components/Select/components/SelectConsumer/SelectInputConsumer.d.ts +0 -5
- package/__inner__/cjs/components/Select/components/SelectConsumer/index.d.ts +0 -1
- package/__inner__/esm/components/Calendar/components/CalendarModeRange/components/CalendarConsumer/CalendarConsumer.d.ts +0 -2
- package/__inner__/esm/components/Calendar/components/CalendarModeRange/components/CalendarConsumer/CalendarConsumer.js +0 -41
- package/__inner__/esm/components/Calendar/components/CalendarModeRange/components/CalendarConsumer/index.d.ts +0 -1
- package/__inner__/esm/components/Calendar/components/CalendarModeRange/components/CalendarConsumer/index.js +0 -1
- package/__inner__/esm/components/Calendar/components/CalendarModeSingle/components/CalendarConsumer/CalendarConsumer.d.ts +0 -2
- package/__inner__/esm/components/Calendar/components/CalendarModeSingle/components/CalendarConsumer/CalendarConsumer.js +0 -35
- package/__inner__/esm/components/Calendar/components/CalendarModeSingle/components/CalendarConsumer/index.d.ts +0 -1
- package/__inner__/esm/components/Calendar/components/CalendarModeSingle/components/CalendarConsumer/index.js +0 -1
- package/__inner__/esm/components/Select/components/SelectConsumer/SelectInputConsumer.d.ts +0 -5
- package/__inner__/esm/components/Select/components/SelectConsumer/index.d.ts +0 -1
- package/__inner__/esm/components/Select/components/SelectConsumer/index.js +0 -1
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { __read } from "tslib";
|
|
2
|
+
import { useBoolean } from '../../../../hooks/useBoolean';
|
|
3
|
+
import { useClickOutside } from '../../../../hooks/useClickOutside';
|
|
4
|
+
import { useEventListener } from '../../../../hooks/useEventListener';
|
|
5
|
+
import { getFocusableElements } from '../../../../utils/getFocusableElements';
|
|
6
|
+
import { isKey } from '../../../../utils/isKey';
|
|
7
|
+
export var useCalendarKeyboard = function (_a) {
|
|
8
|
+
var controlRef = _a.controlRef, calendarRef = _a.calendarRef, _b = _a.active, active = _b === void 0 ? false : _b;
|
|
9
|
+
var _c = __read(useBoolean(false), 2), focused = _c[0], _d = _c[1], on = _d.on, off = _d.off;
|
|
10
|
+
useClickOutside({
|
|
11
|
+
refs: [calendarRef],
|
|
12
|
+
active: focused,
|
|
13
|
+
handler: function () {
|
|
14
|
+
var _a;
|
|
15
|
+
(_a = controlRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
16
|
+
off();
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
useEventListener({
|
|
20
|
+
element: controlRef,
|
|
21
|
+
eventName: 'keydown',
|
|
22
|
+
handler: function (event) {
|
|
23
|
+
if (isKey(event, 'Tab') && calendarRef.current) {
|
|
24
|
+
event.preventDefault();
|
|
25
|
+
var _a = __read(getFocusableElements(calendarRef.current), 1), firstFocusableElements = _a[0];
|
|
26
|
+
firstFocusableElements === null || firstFocusableElements === void 0 ? void 0 : firstFocusableElements.focus();
|
|
27
|
+
on();
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
active: active && !focused,
|
|
31
|
+
});
|
|
32
|
+
useEventListener({
|
|
33
|
+
eventName: 'keydown',
|
|
34
|
+
handler: function (event) {
|
|
35
|
+
if (isKey(event, 'Escape') && controlRef.current) {
|
|
36
|
+
controlRef.current.focus();
|
|
37
|
+
off();
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
active: focused,
|
|
41
|
+
});
|
|
42
|
+
return focused;
|
|
43
|
+
};
|
|
@@ -20,7 +20,7 @@ import { PopoverContext } from './PopoverContext';
|
|
|
20
20
|
export var cnPopover = cn('Popover');
|
|
21
21
|
export var Popover = polymorphicComponentWithRef(function (inProps, ref) {
|
|
22
22
|
var props = useThemeProps({ props: inProps, name: 'Popover' });
|
|
23
|
-
var _a = props.arrow, arrow = _a === void 0 ? POPOVER_DEFAULT_ARROW : _a, _b = props.open, open = _b === void 0 ? POPOVER_DEFAULT_OPEN : _b, _c = props.disableInteractive, disableInteractive = _c === void 0 ? POPOVER_DEFAULT_DISABLE_INTERACTIVE : _c, _d = props.disableEnforceFocus, disableEnforceFocus = _d === void 0 ? POPOVER_DEFAULT_DISABLE_ENFORCE_FOCUS : _d, _e = props.disableReturnFocus, disableReturnFocus = _e === void 0 ? POPOVER_DEFAULT_DISABLE_RETURN_FOCUS : _e, _f = props.disableClickOutside, disableClickOutside = _f === void 0 ? POPOVER_DEFAULT_DISABLE_CLICK_OUTSIDE : _f, _g = props.placement, placement = _g === void 0 ? POPOVER_DEFAULT_PLACEMENT : _g, _h = props.strategy, strategy = _h === void 0 ? POPOVER_DEFAULT_STRATEGY : _h, _j = props.disablePreventOverflow, disablePreventOverflow = _j === void 0 ? POPOVER_DEFAULT_DISABLE_PREVENT_OVERFLOW : _j, ignoreClickOutsideRefs = props.ignoreClickOutsideRefs, arrowProps = props.arrowProps, anchorRef = props.anchorRef, equalAnchorWidth = props.equalAnchorWidth, offset = props.offset, children = props.children, transitionProps = props.transitionProps, onClose = props.onClose, onEnter = props.onEnter, onEntered = props.onEntered, onExit = props.onExit, onExitedProp = props.onExited, className = props.className, position = props.position, style = props.style, setUpdate = props.setUpdate, modifiersProp = props.modifiers, _k = props.as, as = _k === void 0 ? POPOVER_DEFAULT_TAG : _k, other = __rest(props, ["arrow", "open", "disableInteractive", "disableEnforceFocus", "disableReturnFocus", "disableClickOutside", "placement", "strategy", "disablePreventOverflow", "ignoreClickOutsideRefs", "arrowProps", "anchorRef", "equalAnchorWidth", "offset", "children", "transitionProps", "onClose", "onEnter", "onEntered", "onExit", "onExited", "className", "position", "style", "setUpdate", "modifiers", "as"]);
|
|
23
|
+
var _a = props.arrow, arrow = _a === void 0 ? POPOVER_DEFAULT_ARROW : _a, _b = props.open, open = _b === void 0 ? POPOVER_DEFAULT_OPEN : _b, _c = props.disableInteractive, disableInteractive = _c === void 0 ? POPOVER_DEFAULT_DISABLE_INTERACTIVE : _c, _d = props.disableEnforceFocus, disableEnforceFocus = _d === void 0 ? POPOVER_DEFAULT_DISABLE_ENFORCE_FOCUS : _d, _e = props.disableReturnFocus, disableReturnFocus = _e === void 0 ? POPOVER_DEFAULT_DISABLE_RETURN_FOCUS : _e, _f = props.disableClickOutside, disableClickOutside = _f === void 0 ? POPOVER_DEFAULT_DISABLE_CLICK_OUTSIDE : _f, _g = props.placement, placement = _g === void 0 ? POPOVER_DEFAULT_PLACEMENT : _g, _h = props.strategy, strategy = _h === void 0 ? POPOVER_DEFAULT_STRATEGY : _h, _j = props.disablePreventOverflow, disablePreventOverflow = _j === void 0 ? POPOVER_DEFAULT_DISABLE_PREVENT_OVERFLOW : _j, ignoreClickOutsideRefs = props.ignoreClickOutsideRefs, disableEscapeKeyDown = props.disableEscapeKeyDown, arrowProps = props.arrowProps, anchorRef = props.anchorRef, equalAnchorWidth = props.equalAnchorWidth, offset = props.offset, children = props.children, transitionProps = props.transitionProps, onClose = props.onClose, onEnter = props.onEnter, onEntered = props.onEntered, onExit = props.onExit, onExitedProp = props.onExited, className = props.className, position = props.position, style = props.style, setUpdate = props.setUpdate, modifiersProp = props.modifiers, _k = props.as, as = _k === void 0 ? POPOVER_DEFAULT_TAG : _k, other = __rest(props, ["arrow", "open", "disableInteractive", "disableEnforceFocus", "disableReturnFocus", "disableClickOutside", "placement", "strategy", "disablePreventOverflow", "ignoreClickOutsideRefs", "disableEscapeKeyDown", "arrowProps", "anchorRef", "equalAnchorWidth", "offset", "children", "transitionProps", "onClose", "onEnter", "onEntered", "onExit", "onExited", "className", "position", "style", "setUpdate", "modifiers", "as"]);
|
|
24
24
|
var Tag = useMemo(function () {
|
|
25
25
|
// eslint-disable-next-line react/display-name
|
|
26
26
|
return forwardRef(function (props, ref) { return (React.createElement(Paper, __assign({ radius: "l", shadow: "m", background: "main" }, props, { as: as, ref: ref }))); });
|
|
@@ -44,7 +44,7 @@ export var Popover = polymorphicComponentWithRef(function (inProps, ref) {
|
|
|
44
44
|
return;
|
|
45
45
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
46
46
|
},
|
|
47
|
-
active: isTop,
|
|
47
|
+
active: isTop && !disableEscapeKeyDown,
|
|
48
48
|
});
|
|
49
49
|
useClickOutside({
|
|
50
50
|
refs: __spreadArray(__spreadArray(__spreadArray([
|
|
@@ -65,6 +65,8 @@ export type PopoverBaseProps = {
|
|
|
65
65
|
disableReturnFocus?: boolean;
|
|
66
66
|
/** Если `true` отключает закрытие окна при клике за его пределами */
|
|
67
67
|
disableClickOutside?: boolean;
|
|
68
|
+
/** Если `true` отключает закрытие окна при нажатии на клавишу ESC */
|
|
69
|
+
disableEscapeKeyDown?: boolean;
|
|
68
70
|
/** Идентификатор компонента для тестов */
|
|
69
71
|
'data-testid'?: string;
|
|
70
72
|
/** Функция обратного вызова для получения метода по перерасчету расположения компонента Popover */
|
|
@@ -29,7 +29,7 @@ export var Segment = forwardRef(function (inProps, ref) {
|
|
|
29
29
|
selected: valueState,
|
|
30
30
|
onChange: handleChange,
|
|
31
31
|
}); }, [name, disabled, iconSize, selectedColor, valueState, handleChange]);
|
|
32
|
-
return (React.createElement("fieldset", __assign({ ref: ref, disabled: disabled, className: cnSegment(
|
|
32
|
+
return (React.createElement("fieldset", __assign({ ref: ref, disabled: disabled, className: cnSegment({
|
|
33
33
|
size: size,
|
|
34
34
|
variant: variant,
|
|
35
35
|
disabled: disabled,
|
|
@@ -12,7 +12,7 @@ export var SegmentItem = forwardRef(function (_a, ref) {
|
|
|
12
12
|
onChange === null || onChange === void 0 ? void 0 : onChange(event);
|
|
13
13
|
onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp(event);
|
|
14
14
|
};
|
|
15
|
-
return (React.createElement("label", __assign({ ref: ref, className: cnSegmentItem(
|
|
15
|
+
return (React.createElement("label", __assign({ ref: ref, className: cnSegmentItem(__assign({ disabled: disabled, selected: selected }, (selected && { selectedColor: selectedColor })), [className]), "data-testid": dataTestId }, labelProps),
|
|
16
16
|
Icon && (React.createElement(Icon, { className: cnSegmentItem('Icon'), ref: iconRef, size: iconSize })),
|
|
17
17
|
children,
|
|
18
18
|
React.createElement("input", __assign({ disabled: disabled, type: "radio", name: nameProp || name, className: cnSegmentItem('Radio'), onChange: handleChange, checked: selected, value: value, "data-testid": inputTestId }, other, { ref: inputRef })),
|
|
@@ -7,10 +7,11 @@ import { useMultiRef } from '../../hooks/useMultiRef';
|
|
|
7
7
|
import { useThemeProps } from '../../hooks/useThemeProps';
|
|
8
8
|
import { cn } from '../../utils/classname';
|
|
9
9
|
import { isKeys } from '../../utils/isKeys';
|
|
10
|
+
import { isString } from '../../utils/isString';
|
|
10
11
|
import { DataList, DataListOption } from '../DataList';
|
|
11
12
|
import { SelectInput } from './components';
|
|
12
13
|
import { SELECT_DEFAULT_AUTO_FOCUS, SELECT_DEFAULT_DEFAULT_OPEN, SELECT_DEFAULT_DISABLED, SELECT_DEFAULT_FULL_WIDTH, SELECT_DEFAULT_MULTILINE, SELECT_DEFAULT_REQUIRED, SELECT_DEFAULT_SIZE, } from './constants';
|
|
13
|
-
import { isMultipleParams, isNotMultipleParams } from './helpers';
|
|
14
|
+
import { isMultipleLabel, isMultipleParams, isNotMultipleLabel, isNotMultipleParams, } from './helpers';
|
|
14
15
|
export var cnSelect = cn('Select');
|
|
15
16
|
var SelectRender = function (inProps, ref) {
|
|
16
17
|
var props = useThemeProps({
|
|
@@ -19,21 +20,20 @@ var SelectRender = function (inProps, ref) {
|
|
|
19
20
|
});
|
|
20
21
|
var _a = props.size, size = _a === void 0 ? SELECT_DEFAULT_SIZE : _a, _b = props.autoFocus, autoFocus = _b === void 0 ? SELECT_DEFAULT_AUTO_FOCUS : _b, _c = props.fullWidth, fullWidth = _c === void 0 ? SELECT_DEFAULT_FULL_WIDTH : _c, _d = props.disabled, disabled = _d === void 0 ? SELECT_DEFAULT_DISABLED : _d, _e = props.required, required = _e === void 0 ? SELECT_DEFAULT_REQUIRED : _e, _f = props.multiline, multiline = _f === void 0 ? SELECT_DEFAULT_MULTILINE : _f, _g = props.defaultOpen, defaultOpen = _g === void 0 ? SELECT_DEFAULT_DEFAULT_OPEN : _g, valueProp = props.value, defaultValue = props.defaultValue, onChange = props.onChange, renderValueProp = props.renderValue, children = props.children, onClick = props.onClick, onKeyDown = props.onKeyDown, menuProps = props.menuProps, dataListPropsProp = props.dataListProps, bodyProps = props.bodyProps, bodeRefProp = props.bodyRef, onCloseProp = props.onClose, onOpenProp = props.onOpen, openProp = props.open, multiple = props.multiple, other = __rest(props, ["size", "autoFocus", "fullWidth", "disabled", "required", "multiline", "defaultOpen", "value", "defaultValue", "onChange", "renderValue", "children", "onClick", "onKeyDown", "menuProps", "dataListProps", "bodyProps", "bodyRef", "onClose", "onOpen", "open", "multiple"]);
|
|
21
22
|
var bodyInnerRef = useRef(null);
|
|
22
|
-
|
|
23
|
-
var bodyRef = (bodyProps === null || bodyProps === void 0 ? void 0 : bodyProps.ref) || bodeRefProp;
|
|
23
|
+
var bodyRef = useMultiRef([(bodyProps === null || bodyProps === void 0 ? void 0 : bodyProps.ref) || bodeRefProp, bodyInnerRef]);
|
|
24
24
|
var dataListProps = dataListPropsProp || menuProps;
|
|
25
25
|
var _h = __read(useControlled({
|
|
26
26
|
value: valueProp,
|
|
27
27
|
defaultValue: defaultValue,
|
|
28
28
|
name: 'Select',
|
|
29
29
|
state: 'value',
|
|
30
|
-
}),
|
|
30
|
+
}), 2), valueState = _h[0], setValueState = _h[1];
|
|
31
31
|
var _j = __read(useControlled({
|
|
32
32
|
value: openProp,
|
|
33
33
|
defaultValue: defaultOpen,
|
|
34
34
|
name: 'Select',
|
|
35
35
|
state: 'open',
|
|
36
|
-
}),
|
|
36
|
+
}), 2), open = _j[0], setOpen = _j[1];
|
|
37
37
|
var currentLabel;
|
|
38
38
|
var isNotSelectOption = function (child) { return !isValidElement(child) || child.type !== DataListOption; };
|
|
39
39
|
var resolvedChildren = isFragment(children)
|
|
@@ -42,27 +42,23 @@ var SelectRender = function (inProps, ref) {
|
|
|
42
42
|
Children.forEach(resolvedChildren, function (child) {
|
|
43
43
|
var _a, _b;
|
|
44
44
|
if (!isNotSelectOption(child)) {
|
|
45
|
-
var label =
|
|
45
|
+
var label = isString(child.props.children)
|
|
46
46
|
? (_a = child.props.label) !== null && _a !== void 0 ? _a : child.props.children
|
|
47
47
|
: child.props.label;
|
|
48
|
-
var params = {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
value: valueState,
|
|
52
|
-
};
|
|
53
|
-
if (isMultipleParams(params)) {
|
|
48
|
+
var params = __assign(__assign({}, inProps), { multiple: multiple, value: valueState });
|
|
49
|
+
if (isMultipleParams(params) &&
|
|
50
|
+
isMultipleLabel(currentLabel, multiple)) {
|
|
54
51
|
var selected = (_b = params.value) === null || _b === void 0 ? void 0 : _b.includes(child.props.value);
|
|
55
|
-
if (selected)
|
|
56
|
-
currentLabel = __spreadArray(__spreadArray([], __read((
|
|
52
|
+
if (selected)
|
|
53
|
+
currentLabel = __spreadArray(__spreadArray([], __read((currentLabel || [])), false), [
|
|
57
54
|
label,
|
|
58
55
|
], false);
|
|
59
|
-
}
|
|
60
56
|
}
|
|
61
|
-
if (isNotMultipleParams(params)
|
|
57
|
+
if (isNotMultipleParams(params) &&
|
|
58
|
+
isNotMultipleLabel(currentLabel, multiple)) {
|
|
62
59
|
var selected = params.value === child.props.value;
|
|
63
|
-
if (selected)
|
|
60
|
+
if (selected)
|
|
64
61
|
currentLabel = label;
|
|
65
|
-
}
|
|
66
62
|
}
|
|
67
63
|
}
|
|
68
64
|
});
|
|
@@ -77,52 +73,40 @@ var SelectRender = function (inProps, ref) {
|
|
|
77
73
|
var handleToggle = function () {
|
|
78
74
|
if (disabled)
|
|
79
75
|
return;
|
|
80
|
-
if (open)
|
|
76
|
+
if (open)
|
|
81
77
|
handleClose();
|
|
82
|
-
|
|
83
|
-
else {
|
|
78
|
+
else
|
|
84
79
|
handleOpen();
|
|
85
|
-
}
|
|
86
80
|
};
|
|
87
|
-
var handleClick = function (
|
|
88
|
-
onClick === null || onClick === void 0 ? void 0 : onClick(
|
|
81
|
+
var handleClick = function (e) {
|
|
82
|
+
onClick === null || onClick === void 0 ? void 0 : onClick(e);
|
|
89
83
|
handleToggle();
|
|
90
84
|
};
|
|
91
85
|
/** Управление элементом контроля через клавиатуру */
|
|
92
|
-
var handleKeyDown = function (
|
|
93
|
-
if (isKeys(
|
|
94
|
-
|
|
86
|
+
var handleKeyDown = function (e) {
|
|
87
|
+
if (isKeys(e, ['Space', 'ArrowDown', 'ArrowUp']) && !open) {
|
|
88
|
+
e.preventDefault();
|
|
95
89
|
handleToggle();
|
|
96
90
|
}
|
|
97
|
-
onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(
|
|
91
|
+
onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);
|
|
98
92
|
};
|
|
99
93
|
/** Событие выбора значения из раскрывающегося списка */
|
|
100
|
-
var handleChange = function (
|
|
94
|
+
var handleChange = function (e, _a) {
|
|
101
95
|
var value = _a.value;
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}
|
|
105
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(value, event);
|
|
96
|
+
setValueState(value);
|
|
97
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(value, e);
|
|
106
98
|
if (!multiple)
|
|
107
99
|
handleClose();
|
|
108
100
|
};
|
|
109
101
|
/** Представление значение элемента контроля по умолчанию */
|
|
110
102
|
var renderDefaultValue = function (option) {
|
|
111
103
|
var _a = option.label, label = _a === void 0 ? '' : _a, _b = option.value, value = _b === void 0 ? '' : _b;
|
|
112
|
-
if (!value && value !== 0)
|
|
104
|
+
if (!value && value !== 0)
|
|
113
105
|
return null;
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
value: value,
|
|
119
|
-
};
|
|
120
|
-
if (isMultipleParams(params)) {
|
|
121
|
-
return React.createElement("span", null, __spreadArray([], __read(params.label), false).join(', '));
|
|
122
|
-
}
|
|
123
|
-
if (isNotMultipleParams(params)) {
|
|
124
|
-
return React.createElement("span", null, params.label);
|
|
125
|
-
}
|
|
106
|
+
if (isMultipleLabel(label, multiple))
|
|
107
|
+
return React.createElement("span", null, __spreadArray([], __read(label), false).join(', '));
|
|
108
|
+
if (isNotMultipleLabel(label, multiple))
|
|
109
|
+
return React.createElement("span", null, label);
|
|
126
110
|
return null;
|
|
127
111
|
};
|
|
128
112
|
/** Значение для текстового поля компонента */
|
|
@@ -132,12 +116,10 @@ var SelectRender = function (inProps, ref) {
|
|
|
132
116
|
multiple: multiple,
|
|
133
117
|
value: valueState,
|
|
134
118
|
};
|
|
135
|
-
if (isMultipleParams(params))
|
|
136
|
-
return (_a = params.value) === null || _a === void 0 ? void 0 : _a.join(',');
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
return params.value;
|
|
140
|
-
}
|
|
119
|
+
if (isMultipleParams(params))
|
|
120
|
+
return ((_a = params.value) === null || _a === void 0 ? void 0 : _a.join(',')) || '';
|
|
121
|
+
if (isNotMultipleParams(params))
|
|
122
|
+
return (params === null || params === void 0 ? void 0 : params.value) || '';
|
|
141
123
|
return '';
|
|
142
124
|
};
|
|
143
125
|
/** Представление значение элемента контроля */
|
|
@@ -147,22 +129,22 @@ var SelectRender = function (inProps, ref) {
|
|
|
147
129
|
/** Устанавливает фокус на элементе контроля
|
|
148
130
|
* если компонент по умолчанию открыт — defaultOpen={true}
|
|
149
131
|
* и является неконтролируемым */
|
|
150
|
-
if (defaultOpen
|
|
132
|
+
if (defaultOpen)
|
|
151
133
|
(_a = bodyInnerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
152
|
-
|
|
153
|
-
}, [open]);
|
|
134
|
+
}, []);
|
|
154
135
|
useEffect(function () {
|
|
155
136
|
var _a;
|
|
156
137
|
/** Автофокус на элементе контроля */
|
|
157
|
-
if (autoFocus)
|
|
138
|
+
if (autoFocus)
|
|
158
139
|
(_a = bodyInnerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
159
|
-
}
|
|
160
140
|
}, [autoFocus]);
|
|
161
141
|
return (React.createElement(React.Fragment, null,
|
|
162
|
-
React.createElement(SelectInput, __assign({ size: size, disabled: disabled, required: required, multiline: multiline, fullWidth: fullWidth }, other, { open: open, onClick: handleClick, onKeyDown: handleKeyDown,
|
|
142
|
+
React.createElement(SelectInput, __assign({ size: size, disabled: disabled, required: required, multiline: multiline, fullWidth: fullWidth }, other, { open: open, value: inputValue(), onClick: handleClick, onKeyDown: handleKeyDown, renderedValue: renderValue({
|
|
163
143
|
label: currentLabel,
|
|
164
144
|
value: valueState,
|
|
165
|
-
}), bodyProps: __assign(__assign({}, bodyProps), { ref:
|
|
166
|
-
React.createElement(DataList, __assign({ equalAnchorWidth: true }, dataListProps, { listProps: __assign({ size: size, role: 'listbox' }, dataListProps === null || dataListProps === void 0 ? void 0 : dataListProps.listProps), open: open, multiple: multiple,
|
|
145
|
+
}), bodyProps: __assign(__assign({}, bodyProps), { ref: bodyRef }), ref: ref })),
|
|
146
|
+
React.createElement(DataList, __assign({ equalAnchorWidth: true }, dataListProps, { listProps: __assign({ size: size, role: 'listbox' }, dataListProps === null || dataListProps === void 0 ? void 0 : dataListProps.listProps), open: open, multiple: multiple, onClose: handleClose, onSelect: handleChange, anchorRef: bodyInnerRef,
|
|
147
|
+
// TODO: add `null` to `DataListSelected`
|
|
148
|
+
selected: (valueState || null) }), children)));
|
|
167
149
|
};
|
|
168
150
|
export var Select = forwardRef(SelectRender);
|
|
@@ -11,7 +11,7 @@ import { FieldLabel } from '../../../FieldLabel';
|
|
|
11
11
|
import { Fieldset } from '../../../Fieldset';
|
|
12
12
|
import { SELECT_DEFAULT_MULTILINE, SELECT_DEFAULT_SIZE } from '../../constants';
|
|
13
13
|
import { cnSelect } from '../../index';
|
|
14
|
-
import {
|
|
14
|
+
import { SelectInputContextConsumer } from '../SelectInputContextConsumer';
|
|
15
15
|
export var SelectInput = forwardRef(function (_a, ref) {
|
|
16
16
|
var _b = _a.size, size = _b === void 0 ? SELECT_DEFAULT_SIZE : _b, _c = _a.multiline, multiline = _c === void 0 ? SELECT_DEFAULT_MULTILINE : _c, open = _a.open, label = _a.label, error = _a.error, id = _a.id, name = _a.name, renderLeft = _a.renderLeft, renderRight = _a.renderRight, renderedValue = _a.renderedValue, fullWidth = _a.fullWidth, disabled = _a.disabled, hint = _a.hint, required = _a.required, className = _a.className, inputProps = _a.inputProps, valueProp = _a.value, placeholderProp = _a.placeholder, defaultValue = _a.defaultValue, onFocus = _a.onFocus, onBlur = _a.onBlur, onClick = _a.onClick, onKeyDown = _a.onKeyDown, labelProps = _a.labelProps, fieldProps = _a.fieldProps, hintProps = _a.hintProps, labelRef = _a.labelRef, inputRef = _a.inputRef, fieldRef = _a.fieldRef, bodyProps = _a.bodyProps, other = __rest(_a, ["size", "multiline", "open", "label", "error", "id", "name", "renderLeft", "renderRight", "renderedValue", "fullWidth", "disabled", "hint", "required", "className", "inputProps", "value", "placeholder", "defaultValue", "onFocus", "onBlur", "onClick", "onKeyDown", "labelProps", "fieldProps", "hintProps", "labelRef", "inputRef", "fieldRef", "bodyProps"]);
|
|
17
17
|
var _d = __read(useBoolean(), 2), focused = _d[0], _e = _d[1], on = _e.on, off = _e.off;
|
|
@@ -24,14 +24,13 @@ export var SelectInput = forwardRef(function (_a, ref) {
|
|
|
24
24
|
off();
|
|
25
25
|
onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);
|
|
26
26
|
}, [onBlur]);
|
|
27
|
-
return (React.createElement(FieldControl, __assign({
|
|
28
|
-
|
|
29
|
-
}, [className]), ref: ref }),
|
|
30
|
-
React.createElement("div", __assign({ role: "button", "aria-haspopup": "listbox", "aria-expanded": open }, bodyProps, { onClick: onClick, onKeyDown: onKeyDown, tabIndex: disabled ? -1 : 0, onFocus: handleFocus, onBlur: handleBlur, className: cnSelect('Body', [bodyProps === null || bodyProps === void 0 ? void 0 : bodyProps.className]) }),
|
|
27
|
+
return (React.createElement(FieldControl, __assign({ size: size, error: error, filled: filled, focused: focused, disabled: disabled, required: required, fullWidth: fullWidth }, other, { ref: ref, className: cnSelect({ multiline: multiline }, [className]) }),
|
|
28
|
+
React.createElement("div", __assign({ role: "button", "aria-expanded": open, "aria-haspopup": "listbox" }, bodyProps, { onClick: onClick, onBlur: handleBlur, onKeyDown: onKeyDown, onFocus: handleFocus, tabIndex: disabled ? -1 : 0, className: cnSelect('Body', [bodyProps === null || bodyProps === void 0 ? void 0 : bodyProps.className]) }),
|
|
31
29
|
React.createElement(FieldIcon, { icon: renderLeft, className: cnSelect('RenderLeft') }),
|
|
32
30
|
React.createElement("div", { className: cnSelect('FieldContainer') },
|
|
31
|
+
React.createElement("div", { className: cnSelect('HiddenLabel'), "aria-hidden": true }, label),
|
|
33
32
|
React.createElement(FieldLabel, __assign({}, labelProps, { className: cnSelect('Label', [labelProps === null || labelProps === void 0 ? void 0 : labelProps.className]), ref: (labelProps === null || labelProps === void 0 ? void 0 : labelProps.ref) || labelRef }), label),
|
|
34
|
-
React.createElement(
|
|
33
|
+
React.createElement(SelectInputContextConsumer, { id: id, name: name, value: valueProp, fieldProps: fieldProps, inputProps: inputProps, defaultValue: defaultValue, renderedValue: renderedValue, placeholder: placeholderProp, fieldRef: (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.ref) || fieldRef, inputRef: (inputProps === null || inputProps === void 0 ? void 0 : inputProps.ref) || inputRef })),
|
|
35
34
|
React.createElement(FieldIcon, { icon: renderRight, className: cnSelect('RenderRight') }),
|
|
36
35
|
React.createElement(FieldIcon, { icon: ChevronDownIcon, className: classnames(cnSelect('RenderRight'), cnSelect('DropDownIcon', { open: open })) }),
|
|
37
36
|
React.createElement(Fieldset, { className: cnSelect('Fieldset') })),
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
import type { SelectInputProps } from '../SelectInput';
|
|
3
|
+
type SelectInputContextConsumerProps = Pick<SelectInputProps, 'value' | 'placeholder' | 'defaultValue' | 'id' | 'name' | 'fieldProps' | 'fieldRef' | 'inputProps' | 'inputRef' | 'renderedValue'>;
|
|
4
|
+
export declare const SelectInputContextConsumer: FC<SelectInputContextConsumerProps>;
|
|
5
|
+
export {};
|
|
@@ -2,7 +2,7 @@ import { __assign, __read } from "tslib";
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { useFieldControl } from '../../../FieldControl';
|
|
4
4
|
import { cnSelect } from '../../index';
|
|
5
|
-
export var
|
|
5
|
+
export var SelectInputContextConsumer = function (_a) {
|
|
6
6
|
var id = _a.id, name = _a.name, _b = _a.value, valueProp = _b === void 0 ? '' : _b, placeholderProp = _a.placeholder, defaultValue = _a.defaultValue, inputProps = _a.inputProps, inputRef = _a.inputRef, fieldRef = _a.fieldRef, fieldProps = _a.fieldProps, renderedValue = _a.renderedValue;
|
|
7
7
|
var context = useFieldControl();
|
|
8
8
|
var _c = __read(context, 1), fieldControl = _c[0];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './SelectInputContextConsumer';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './SelectInputContextConsumer';
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
export declare const isMultipleParams: (params: SelectedParams<boolean>) => params is SelectedParams<true>;
|
|
8
|
-
export declare const isNotMultipleParams: (params: SelectedParams<boolean>) => params is SelectedParams<false>;
|
|
1
|
+
import type { SelectProps, SelectLabel } from '../types';
|
|
2
|
+
export declare const isMultipleParams: (params: SelectProps<boolean>) => params is SelectProps<true>;
|
|
3
|
+
export declare const isNotMultipleParams: (params: SelectProps<boolean>) => params is SelectProps<false>;
|
|
4
|
+
export declare const isMultipleLabel: (_label: SelectLabel<boolean>, multiple?: boolean) => _label is SelectLabel<true>;
|
|
5
|
+
export declare const isNotMultipleLabel: (_label: SelectLabel<boolean>, multiple?: boolean) => _label is SelectLabel<false>;
|
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
export var isMultipleParams = function (params) { return !!params.multiple; };
|
|
2
2
|
export var isNotMultipleParams = function (params) { return !params.multiple; };
|
|
3
|
+
export var isMultipleLabel = function (_label, multiple) { return !!multiple; };
|
|
4
|
+
export var isNotMultipleLabel = function (_label, multiple) { return !multiple; };
|
|
@@ -1,45 +1,37 @@
|
|
|
1
1
|
import type { ReactElement, ReactNode, SyntheticEvent } from 'react';
|
|
2
2
|
import type { ExtendableComponentPropsWithRef } from '../../types/ExtendableComponentPropsWithRef';
|
|
3
3
|
import type { FormElementSizeVariant } from '../../types/FormElementSizeVariant';
|
|
4
|
-
import type { DataListBaseProps, DataListSelected } from '../DataList';
|
|
4
|
+
import type { DataListBaseProps, DataListOptionProps, DataListSelected } from '../DataList';
|
|
5
5
|
import type { SelectInputProps, SelectInputRef } from './components';
|
|
6
|
-
export type
|
|
7
|
-
export type SelectLabel =
|
|
8
|
-
export type
|
|
9
|
-
export type
|
|
10
|
-
export type
|
|
11
|
-
label?:
|
|
6
|
+
export type SelectPropSize = FormElementSizeVariant;
|
|
7
|
+
export type SelectLabel<MULTIPLE extends boolean = false> = (MULTIPLE extends true ? DataListOptionProps['label'][] : DataListOptionProps['label']) | undefined;
|
|
8
|
+
export type SelectPropValue<MULTIPLE extends boolean = false> = DataListSelected<MULTIPLE>;
|
|
9
|
+
export type SelectPropOnChange<MULTIPLE extends boolean = false> = (value: SelectPropValue<MULTIPLE>, e: SyntheticEvent | KeyboardEvent) => void;
|
|
10
|
+
export type SelectedOption<MULTIPLE extends boolean = false> = {
|
|
11
|
+
label?: SelectLabel<MULTIPLE>;
|
|
12
12
|
value?: SelectPropValue<MULTIPLE>;
|
|
13
13
|
};
|
|
14
|
-
export type
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
type SelectUncontrolledProps<MULTIPLE extends boolean = false> = {
|
|
36
|
-
/** Значение поля по умолчанию (неконтролируемый компонент) */
|
|
37
|
-
defaultValue: SelectPropValue<MULTIPLE>;
|
|
38
|
-
/** Выбранное значение */
|
|
39
|
-
value?: never;
|
|
40
|
-
/** Обработчик события на изменение выбранного значения */
|
|
41
|
-
onChange?: never;
|
|
42
|
-
};
|
|
14
|
+
export type SelectPropRenderValue<MULTIPLE extends boolean = false> = (option: SelectedOption<MULTIPLE>) => ReactNode | null;
|
|
15
|
+
/**
|
|
16
|
+
* @deprecated
|
|
17
|
+
* Use the `SelectRenderValueProp` type to replace it.
|
|
18
|
+
* */
|
|
19
|
+
export type SelectRenderValue<MULTIPLE extends boolean = false> = SelectPropRenderValue<MULTIPLE>;
|
|
20
|
+
/**
|
|
21
|
+
* @deprecated
|
|
22
|
+
* Use the `SelectLabel` type to replace it.
|
|
23
|
+
* */
|
|
24
|
+
export type SelectPropLabel<MULTIPLE extends boolean = false> = SelectLabel<MULTIPLE>;
|
|
25
|
+
/**
|
|
26
|
+
* @deprecated
|
|
27
|
+
* Use the `SelectSizeProp` type to replace it.
|
|
28
|
+
* */
|
|
29
|
+
export type SelectSizeVariant = SelectPropSize;
|
|
30
|
+
/**
|
|
31
|
+
* @deprecated
|
|
32
|
+
* Use the `SelectedPropOption` type to replace it.
|
|
33
|
+
* */
|
|
34
|
+
export type SelectedOptionProp<MULTIPLE extends boolean = false> = SelectedOption<MULTIPLE>;
|
|
43
35
|
type SelectPropsDeprecated<MULTIPLE extends boolean = false> = {
|
|
44
36
|
/**
|
|
45
37
|
* Свойства компонента Menu
|
|
@@ -52,21 +44,31 @@ export type SelectProps<MULTIPLE extends boolean = false> = ExtendableComponentP
|
|
|
52
44
|
/** Если `true` устанавливает автофокус */
|
|
53
45
|
autoFocus?: boolean;
|
|
54
46
|
/** Размер компонента */
|
|
55
|
-
size?:
|
|
47
|
+
size?: SelectPropSize;
|
|
48
|
+
/** Текущее состояние списка. Если `true`, список отображается. */
|
|
49
|
+
open?: boolean;
|
|
50
|
+
/** Состояние открытие по умолчанию (неконтролируемый компонент) */
|
|
51
|
+
defaultOpen?: boolean;
|
|
52
|
+
/** Выбранное значение */
|
|
53
|
+
value?: SelectPropValue<MULTIPLE>;
|
|
54
|
+
/** Обработчик события на изменение выбранного значения */
|
|
55
|
+
onChange?: SelectPropOnChange<MULTIPLE>;
|
|
56
|
+
/** Значение поля по умолчанию (неконтролируемый компонент) */
|
|
57
|
+
defaultValue?: SelectPropValue<MULTIPLE>;
|
|
56
58
|
/** Рендер-функция для выбранного значения */
|
|
57
|
-
renderValue?:
|
|
59
|
+
renderValue?: SelectPropRenderValue<MULTIPLE>;
|
|
58
60
|
/** Содержимое компонента */
|
|
59
61
|
children?: ReactNode;
|
|
60
62
|
/** Свойства компонента DataList */
|
|
61
63
|
dataListProps?: Partial<Omit<DataListBaseProps<MULTIPLE>, 'onClose' | 'open' | 'anchorRef' | 'multiple' | 'selected' | 'onSelect'>>;
|
|
62
64
|
/** Функция обратного вызова, которая будет вызвана когда компонент запрашивает закрытие */
|
|
63
|
-
onClose
|
|
65
|
+
onClose?(): void;
|
|
64
66
|
/** Функция обратного вызова, которая будет вызвана когда компонент запрашивает открытие */
|
|
65
|
-
onOpen
|
|
67
|
+
onOpen?(): void;
|
|
66
68
|
/** Если `true` из списка можно выбрать несколько вариантов */
|
|
67
69
|
multiple?: MULTIPLE;
|
|
68
70
|
/** Идентификатор компонента для тестов */
|
|
69
71
|
'data-testid'?: string;
|
|
70
|
-
} & Pick<SelectInputProps, 'id' | 'name' | 'label' | 'placeholder' | 'disabled' | 'required' | 'disableStroke' | 'error' | 'hint' | 'fullWidth' | 'renderLeft' | 'renderRight' | 'multiline' | 'inputProps' | 'labelProps' | 'hintProps' | 'bodyProps' | 'inputRef' | 'labelRef' | 'bodyRef'> & SelectPropsDeprecated<MULTIPLE
|
|
72
|
+
} & Pick<SelectInputProps, 'id' | 'name' | 'label' | 'placeholder' | 'disabled' | 'required' | 'disableStroke' | 'error' | 'hint' | 'fullWidth' | 'renderLeft' | 'renderRight' | 'multiline' | 'inputProps' | 'labelProps' | 'hintProps' | 'bodyProps' | 'inputRef' | 'labelRef' | 'bodyRef'> & SelectPropsDeprecated<MULTIPLE>, 'div'>;
|
|
71
73
|
export type SelectComponent = <MULTIPLE extends boolean = false>(props: SelectProps<MULTIPLE>) => ReactElement | null;
|
|
72
74
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ElementType, ReactElement } from 'react';
|
|
2
2
|
import type { ResponsiveValue } from '../../types/ResponsiveValue';
|
|
3
|
-
import type {
|
|
3
|
+
import type { PolymorphicComponentPropsWithRef } from '../../utils/polymorphicComponentWithRef';
|
|
4
4
|
export declare const stackGapVariant: readonly ["0", "xs", "s", "m", "l", "xl", "2xl", "3xl", "4xl", "5xl", "6xl", "7xl", "8xl"];
|
|
5
5
|
export declare const stackDirectionVariant: readonly ["row", "column", "rowReverse", "columnReverse"];
|
|
6
6
|
export declare const stackAlignVariant: readonly ["center", "start", "end", "baseline"];
|
|
@@ -27,4 +27,4 @@ export type StackBaseProps = {
|
|
|
27
27
|
/** React-элемент для разделителя между дочерними компонентами стека */
|
|
28
28
|
divider?: ReactElement;
|
|
29
29
|
};
|
|
30
|
-
export type StackProps<As extends ElementType = 'div'> =
|
|
30
|
+
export type StackProps<As extends ElementType = 'div'> = PolymorphicComponentPropsWithRef<StackBaseProps, As>;
|
|
@@ -3,13 +3,13 @@ export interface UseClickOutside {
|
|
|
3
3
|
/** Массив refs для которых необходимо игнорировать внешние клики */
|
|
4
4
|
refs?: ReadonlyArray<RefObject<HTMLElement>>;
|
|
5
5
|
/** Функция обратного вызова которая будет вызвана при внешнем клике */
|
|
6
|
-
handler
|
|
6
|
+
handler?(event: MouseEvent): void;
|
|
7
7
|
/** Событие клика */
|
|
8
8
|
eventName?: 'mousedown' | 'mouseup' | 'click';
|
|
9
|
-
/** вкл. /
|
|
9
|
+
/** вкл. / выкл. */
|
|
10
10
|
active?: boolean;
|
|
11
11
|
/** Опции для метода addEventListener (третий аргумент) */
|
|
12
12
|
options?: AddEventListenerOptions;
|
|
13
13
|
}
|
|
14
|
-
/** Хук отслеживающий клики за пределами
|
|
15
|
-
export declare function useClickOutside({ refs, handler, active, eventName,
|
|
14
|
+
/** Хук отслеживающий клики за пределами dom-элементов указанных в `refs` */
|
|
15
|
+
export declare function useClickOutside({ refs, handler, options, active, eventName, }: UseClickOutside): void;
|
|
@@ -1,21 +1,16 @@
|
|
|
1
|
-
import { useRef, useEffect } from 'react';
|
|
2
1
|
import { useEventListener } from '../useEventListener';
|
|
3
|
-
|
|
2
|
+
import { useMutableRef } from '../useMutableRef';
|
|
3
|
+
/** Хук отслеживающий клики за пределами dom-элементов указанных в `refs` */
|
|
4
4
|
export function useClickOutside(_a) {
|
|
5
|
-
var refs = _a.refs, handler = _a.handler, _b = _a.active, active = _b === void 0 ? true : _b, _c = _a.eventName, eventName = _c === void 0 ? 'mousedown' : _c
|
|
6
|
-
var savedRefs =
|
|
7
|
-
useEffect(function () {
|
|
8
|
-
savedRefs.current = refs;
|
|
9
|
-
}, [refs]);
|
|
5
|
+
var refs = _a.refs, handler = _a.handler, options = _a.options, _b = _a.active, active = _b === void 0 ? true : _b, _c = _a.eventName, eventName = _c === void 0 ? 'mousedown' : _c;
|
|
6
|
+
var savedRefs = useMutableRef(refs);
|
|
10
7
|
useEventListener({
|
|
11
8
|
eventName: eventName,
|
|
12
9
|
handler: function (event) {
|
|
13
10
|
var _a;
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
handler();
|
|
18
|
-
}
|
|
11
|
+
var isClickOutsideRefs = (_a = savedRefs.current) === null || _a === void 0 ? void 0 : _a.every(function (ref) { return ref.current && !event.composedPath().includes(ref.current); });
|
|
12
|
+
if (isClickOutsideRefs)
|
|
13
|
+
handler === null || handler === void 0 ? void 0 : handler(event);
|
|
19
14
|
},
|
|
20
15
|
active: active,
|
|
21
16
|
options: options,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './isValidDate';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './isValidDate';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const isValidDate: (dateString: string) => boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const monthDiff: (d1
|
|
1
|
+
export declare const monthDiff: (d1?: Date, d2?: Date) => number;
|