rsuite 5.48.1 → 5.50.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/CHANGELOG.md +27 -0
- package/Cascader/styles/index.less +5 -4
- package/DatePicker/styles/index.less +18 -11
- package/DateRangeInput/package.json +7 -0
- package/DateRangePicker/styles/index.less +20 -0
- package/Dropdown/styles/index.less +5 -4
- package/Dropdown/styles/mixin.less +0 -11
- package/InputGroup/styles/index.less +1 -0
- package/Picker/styles/index.less +51 -24
- package/Picker/styles/mixin.less +17 -13
- package/README.md +34 -24
- package/Sidenav/styles/index.less +2 -0
- package/TagInput/styles/index.less +1 -1
- package/cjs/AutoComplete/AutoComplete.js +25 -26
- package/cjs/Calendar/Calendar.d.ts +5 -1
- package/cjs/Calendar/CalendarContainer.d.ts +7 -1
- package/cjs/Calendar/CalendarContainer.js +11 -4
- package/cjs/Calendar/CalendarHeader.js +2 -0
- package/cjs/Calendar/MonthDropdown.js +7 -2
- package/cjs/Calendar/MonthDropdownItem.js +2 -2
- package/cjs/Calendar/Table.js +6 -1
- package/cjs/Calendar/TimeDropdown.js +17 -10
- package/cjs/Calendar/types.d.ts +1 -0
- package/cjs/Cascader/Cascader.js +46 -48
- package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
- package/cjs/CheckPicker/CheckPicker.js +33 -36
- package/cjs/CheckTreePicker/CheckTreePicker.js +61 -64
- package/cjs/CustomProvider/CustomProvider.d.ts +13 -0
- package/cjs/CustomProvider/CustomProvider.js +2 -2
- package/cjs/DateInput/DateField.d.ts +9 -31
- package/cjs/DateInput/DateField.js +61 -12
- package/cjs/DateInput/DateInput.d.ts +7 -2
- package/cjs/DateInput/DateInput.js +74 -92
- package/cjs/DateInput/index.d.ts +4 -0
- package/cjs/DateInput/index.js +19 -1
- package/cjs/DateInput/useDateInputState.d.ts +7 -31
- package/cjs/DateInput/useDateInputState.js +39 -15
- package/cjs/DateInput/useIsFocused.d.ts +7 -0
- package/cjs/DateInput/useIsFocused.js +28 -0
- package/cjs/DateInput/useKeyboardInputEvent.d.ts +10 -0
- package/cjs/DateInput/useKeyboardInputEvent.js +44 -0
- package/cjs/DateInput/utils.d.ts +23 -1
- package/cjs/DateInput/utils.js +155 -51
- package/cjs/DatePicker/DatePicker.d.ts +25 -8
- package/cjs/DatePicker/DatePicker.js +208 -241
- package/cjs/DatePicker/Toolbar.js +5 -22
- package/cjs/DatePicker/utils.d.ts +5 -1
- package/cjs/DatePicker/utils.js +17 -1
- package/cjs/DateRangeInput/DateRangeInput.d.ts +29 -0
- package/cjs/DateRangeInput/DateRangeInput.js +244 -0
- package/cjs/DateRangeInput/index.d.ts +3 -0
- package/cjs/DateRangeInput/index.js +9 -0
- package/cjs/DateRangeInput/utils.d.ts +61 -0
- package/cjs/DateRangeInput/utils.js +146 -0
- package/cjs/DateRangePicker/Calendar.js +24 -23
- package/cjs/DateRangePicker/DateRangePicker.d.ts +18 -4
- package/cjs/DateRangePicker/DateRangePicker.js +251 -203
- package/cjs/DateRangePicker/types.d.ts +11 -3
- package/cjs/DateRangePicker/utils.d.ts +2 -1
- package/cjs/DateRangePicker/utils.js +7 -5
- package/cjs/FormControl/FormControl.d.ts +11 -1
- package/cjs/FormControl/FormControl.js +6 -5
- package/cjs/Input/Input.d.ts +11 -0
- package/cjs/Input/Input.js +11 -8
- package/cjs/InputPicker/InputPicker.js +62 -63
- package/cjs/MultiCascader/MultiCascader.js +40 -42
- package/cjs/Overlay/OverlayTrigger.d.ts +3 -0
- package/cjs/Overlay/OverlayTrigger.js +5 -0
- package/cjs/Picker/PickerIndicator.d.ts +10 -0
- package/cjs/Picker/PickerIndicator.js +49 -0
- package/cjs/Picker/PickerLabel.d.ts +9 -0
- package/cjs/Picker/PickerLabel.js +23 -0
- package/cjs/Picker/PickerToggle.d.ts +17 -22
- package/cjs/Picker/PickerToggle.js +52 -177
- package/cjs/Picker/index.d.ts +3 -0
- package/cjs/Picker/index.js +10 -1
- package/cjs/Picker/usePickerRef.d.ts +19 -0
- package/cjs/Picker/usePickerRef.js +88 -0
- package/cjs/Picker/utils.d.ts +5 -9
- package/cjs/Picker/utils.js +22 -89
- package/cjs/SelectPicker/SelectPicker.d.ts +2 -2
- package/cjs/SelectPicker/SelectPicker.js +39 -42
- package/cjs/TreePicker/TreePicker.js +72 -75
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +3 -1
- package/cjs/locales/index.d.ts +2 -2
- package/cjs/utils/constants.d.ts +2 -1
- package/cjs/utils/constants.js +1 -0
- package/cjs/utils/dateUtils.d.ts +0 -1
- package/cjs/utils/dateUtils.js +0 -6
- package/cjs/utils/getStringLength.d.ts +2 -0
- package/cjs/utils/getStringLength.js +18 -0
- package/cjs/utils/index.d.ts +3 -0
- package/cjs/utils/index.js +11 -2
- package/cjs/utils/useCustom.js +1 -1
- package/cjs/utils/useIsomorphicLayoutEffect.d.ts +3 -0
- package/cjs/utils/useIsomorphicLayoutEffect.js +9 -0
- package/dist/rsuite-no-reset-rtl.css +140 -207
- package/dist/rsuite-no-reset-rtl.min.css +1 -1
- package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
- package/dist/rsuite-no-reset.css +140 -207
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +140 -75
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +140 -75
- package/dist/rsuite.js +4833 -258
- package/dist/rsuite.js.map +1 -1
- package/dist/rsuite.min.css +1 -1
- package/dist/rsuite.min.css.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/AutoComplete/AutoComplete.js +28 -29
- package/esm/Calendar/Calendar.d.ts +5 -1
- package/esm/Calendar/CalendarContainer.d.ts +7 -1
- package/esm/Calendar/CalendarContainer.js +12 -5
- package/esm/Calendar/CalendarHeader.js +2 -0
- package/esm/Calendar/MonthDropdown.js +7 -2
- package/esm/Calendar/MonthDropdownItem.js +2 -2
- package/esm/Calendar/Table.js +6 -1
- package/esm/Calendar/TimeDropdown.js +17 -10
- package/esm/Calendar/types.d.ts +1 -0
- package/esm/Cascader/Cascader.js +49 -51
- package/esm/CheckPicker/CheckPicker.d.ts +2 -2
- package/esm/CheckPicker/CheckPicker.js +36 -39
- package/esm/CheckTreePicker/CheckTreePicker.js +64 -67
- package/esm/CustomProvider/CustomProvider.d.ts +13 -0
- package/esm/CustomProvider/CustomProvider.js +3 -3
- package/esm/DateInput/DateField.d.ts +9 -31
- package/esm/DateInput/DateField.js +61 -12
- package/esm/DateInput/DateInput.d.ts +7 -2
- package/esm/DateInput/DateInput.js +77 -95
- package/esm/DateInput/index.d.ts +4 -0
- package/esm/DateInput/index.js +4 -0
- package/esm/DateInput/useDateInputState.d.ts +7 -31
- package/esm/DateInput/useDateInputState.js +41 -18
- package/esm/DateInput/useIsFocused.d.ts +7 -0
- package/esm/DateInput/useIsFocused.js +22 -0
- package/esm/DateInput/useKeyboardInputEvent.d.ts +10 -0
- package/esm/DateInput/useKeyboardInputEvent.js +38 -0
- package/esm/DateInput/utils.d.ts +23 -1
- package/esm/DateInput/utils.js +150 -51
- package/esm/DatePicker/DatePicker.d.ts +25 -8
- package/esm/DatePicker/DatePicker.js +211 -244
- package/esm/DatePicker/Toolbar.js +5 -22
- package/esm/DatePicker/utils.d.ts +5 -1
- package/esm/DatePicker/utils.js +16 -1
- package/esm/DateRangeInput/DateRangeInput.d.ts +29 -0
- package/esm/DateRangeInput/DateRangeInput.js +237 -0
- package/esm/DateRangeInput/index.d.ts +3 -0
- package/esm/DateRangeInput/index.js +3 -0
- package/esm/DateRangeInput/utils.d.ts +61 -0
- package/esm/DateRangeInput/utils.js +137 -0
- package/esm/DateRangePicker/Calendar.js +25 -23
- package/esm/DateRangePicker/DateRangePicker.d.ts +18 -4
- package/esm/DateRangePicker/DateRangePicker.js +253 -205
- package/esm/DateRangePicker/types.d.ts +11 -3
- package/esm/DateRangePicker/utils.d.ts +2 -1
- package/esm/DateRangePicker/utils.js +7 -5
- package/esm/FormControl/FormControl.d.ts +11 -1
- package/esm/FormControl/FormControl.js +4 -3
- package/esm/Input/Input.d.ts +11 -0
- package/esm/Input/Input.js +12 -9
- package/esm/InputPicker/InputPicker.js +64 -65
- package/esm/MultiCascader/MultiCascader.js +43 -45
- package/esm/Overlay/OverlayTrigger.d.ts +3 -0
- package/esm/Overlay/OverlayTrigger.js +5 -0
- package/esm/Picker/PickerIndicator.d.ts +10 -0
- package/esm/Picker/PickerIndicator.js +43 -0
- package/esm/Picker/PickerLabel.d.ts +9 -0
- package/esm/Picker/PickerLabel.js +17 -0
- package/esm/Picker/PickerToggle.d.ts +17 -22
- package/esm/Picker/PickerToggle.js +54 -179
- package/esm/Picker/index.d.ts +3 -0
- package/esm/Picker/index.js +3 -0
- package/esm/Picker/usePickerRef.d.ts +19 -0
- package/esm/Picker/usePickerRef.js +82 -0
- package/esm/Picker/utils.d.ts +5 -9
- package/esm/Picker/utils.js +24 -90
- package/esm/SelectPicker/SelectPicker.d.ts +2 -2
- package/esm/SelectPicker/SelectPicker.js +42 -45
- package/esm/TreePicker/TreePicker.js +75 -78
- package/esm/index.d.ts +2 -0
- package/esm/index.js +1 -0
- package/esm/locales/index.d.ts +2 -2
- package/esm/utils/constants.d.ts +2 -1
- package/esm/utils/constants.js +1 -0
- package/esm/utils/dateUtils.d.ts +0 -1
- package/esm/utils/dateUtils.js +0 -5
- package/esm/utils/getStringLength.d.ts +2 -0
- package/esm/utils/getStringLength.js +13 -0
- package/esm/utils/index.d.ts +3 -0
- package/esm/utils/index.js +4 -1
- package/esm/utils/useCustom.js +2 -2
- package/esm/utils/useIsomorphicLayoutEffect.d.ts +3 -0
- package/esm/utils/useIsomorphicLayoutEffect.js +4 -0
- package/package.json +1 -1
- package/styles/color-modes/dark.less +1 -0
- package/styles/color-modes/high-contrast.less +1 -0
- package/styles/color-modes/light.less +1 -0
- package/styles/mixins/combobox.less +10 -0
- package/styles/normalize.less +230 -231
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { PickerLocale } from '../locales';
|
|
3
3
|
import { PickerHandle, PickerToggleProps } from '../Picker';
|
|
4
4
|
import { ItemDataType, FormControlPickerProps } from '../@types/common';
|
|
@@ -12,7 +12,7 @@ export interface CheckPickerProps<T> extends FormControlPickerProps<T[], PickerL
|
|
|
12
12
|
}
|
|
13
13
|
export interface CheckPickerComponent {
|
|
14
14
|
<T>(props: CheckPickerProps<T> & {
|
|
15
|
-
ref?: Ref<PickerHandle>;
|
|
15
|
+
ref?: React.Ref<PickerHandle>;
|
|
16
16
|
}): JSX.Element | null;
|
|
17
17
|
displayName?: string;
|
|
18
18
|
propTypes?: React.WeakValidationMap<CheckPickerProps<any>>;
|
|
@@ -3,7 +3,7 @@ import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTempla
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
5
|
var _templateObject;
|
|
6
|
-
import React, {
|
|
6
|
+
import React, { useState } from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import clone from 'lodash/clone';
|
|
9
9
|
import isUndefined from 'lodash/isUndefined';
|
|
@@ -13,9 +13,9 @@ import omit from 'lodash/omit';
|
|
|
13
13
|
import pick from 'lodash/pick';
|
|
14
14
|
import isNil from 'lodash/isNil';
|
|
15
15
|
import { filterNodesOfTree } from '../utils/treeUtils';
|
|
16
|
-
import { createChainedFunction, useClassNames, shallowEqual, useCustom, useControlled, mergeRefs } from '../utils';
|
|
16
|
+
import { createChainedFunction, useClassNames, shallowEqual, useCustom, useControlled, useEventCallback, mergeRefs } from '../utils';
|
|
17
17
|
import { getDataGroupBy } from '../utils/getDataGroupBy';
|
|
18
|
-
import { DropdownMenu, DropdownMenuCheckItem as DropdownMenuItem, PickerToggle, PickerOverlay, SearchBar, SelectedElement, PickerToggleTrigger, useFocusItemValue, usePickerClassName, useSearch,
|
|
18
|
+
import { DropdownMenu, DropdownMenuCheckItem as DropdownMenuItem, PickerToggle, PickerOverlay, SearchBar, SelectedElement, PickerToggleTrigger, useFocusItemValue, usePickerClassName, useSearch, useToggleKeyDownEvent, usePickerRef, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../Picker';
|
|
19
19
|
var emptyArray = [];
|
|
20
20
|
/**
|
|
21
21
|
* A component for selecting checkable items in a dropdown list.
|
|
@@ -80,11 +80,13 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
80
80
|
onClose = props.onClose,
|
|
81
81
|
onOpen = props.onOpen,
|
|
82
82
|
rest = _objectWithoutPropertiesLoose(props, ["as", "appearance", "classPrefix", "countable", "data", "disabledItemValues", "valueKey", "labelKey", "searchable", "virtualized", "cleanable", "placement", "menuAutoWidth", "menuMaxHeight", "menuClassName", "menuStyle", "locale", "placeholder", "disabled", "toggleAs", "style", "sticky", "value", "defaultValue", "groupBy", "listProps", "id", "sort", "searchBy", "renderMenuItem", "renderMenuGroup", "renderValue", "renderExtraFooter", "renderMenu", "onGroupTitleClick", "onSearch", "onEnter", "onEntered", "onExited", "onClean", "onChange", "onSelect", "onClose", "onOpen"]);
|
|
83
|
-
var
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
83
|
+
var _usePickerRef = usePickerRef(ref),
|
|
84
|
+
trigger = _usePickerRef.trigger,
|
|
85
|
+
root = _usePickerRef.root,
|
|
86
|
+
target = _usePickerRef.target,
|
|
87
|
+
overlay = _usePickerRef.overlay,
|
|
88
|
+
list = _usePickerRef.list,
|
|
89
|
+
searchInput = _usePickerRef.searchInput;
|
|
88
90
|
var _useCustom = useCustom('Picker', overrideLocale),
|
|
89
91
|
locale = _useCustom.locale;
|
|
90
92
|
var _useControlled = useControlled(valueProp, defaultValue || []),
|
|
@@ -94,18 +96,18 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
94
96
|
data: data,
|
|
95
97
|
valueKey: valueKey,
|
|
96
98
|
target: function target() {
|
|
97
|
-
return
|
|
99
|
+
return overlay.current;
|
|
98
100
|
}
|
|
99
101
|
}),
|
|
100
102
|
focusItemValue = _useFocusItemValue.focusItemValue,
|
|
101
103
|
setFocusItemValue = _useFocusItemValue.setFocusItemValue,
|
|
102
104
|
onFocusItem = _useFocusItemValue.onKeyDown;
|
|
103
|
-
var handleSearchCallback =
|
|
105
|
+
var handleSearchCallback = useEventCallback(function (searchKeyword, filteredData, event) {
|
|
104
106
|
var _filteredData$;
|
|
105
107
|
// The first option after filtering is the focus.
|
|
106
108
|
setFocusItemValue(filteredData === null || filteredData === void 0 ? void 0 : (_filteredData$ = filteredData[0]) === null || _filteredData$ === void 0 ? void 0 : _filteredData$[valueKey]);
|
|
107
109
|
onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchKeyword, event);
|
|
108
|
-
}
|
|
110
|
+
});
|
|
109
111
|
|
|
110
112
|
// Use search keywords to filter options.
|
|
111
113
|
var _useSearch = useSearch(data, {
|
|
@@ -139,17 +141,17 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
139
141
|
}
|
|
140
142
|
setStickyItems(nextStickyItems);
|
|
141
143
|
};
|
|
142
|
-
var handleChangeValue =
|
|
144
|
+
var handleChangeValue = useEventCallback(function (value, event) {
|
|
143
145
|
onChange === null || onChange === void 0 ? void 0 : onChange(value, event);
|
|
144
|
-
}
|
|
145
|
-
var handleClean =
|
|
146
|
+
});
|
|
147
|
+
var handleClean = useEventCallback(function (event) {
|
|
146
148
|
if (disabled || !cleanable) {
|
|
147
149
|
return;
|
|
148
150
|
}
|
|
149
151
|
setValue([]);
|
|
150
152
|
onClean === null || onClean === void 0 ? void 0 : onClean(event);
|
|
151
153
|
handleChangeValue([], event);
|
|
152
|
-
}
|
|
154
|
+
});
|
|
153
155
|
var handleMenuPressEnter = function handleMenuPressEnter(event) {
|
|
154
156
|
var nextValue = clone(value);
|
|
155
157
|
if (!focusItemValue) {
|
|
@@ -173,10 +175,10 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
173
175
|
};
|
|
174
176
|
var onPickerKeyDown = useToggleKeyDownEvent(_extends({
|
|
175
177
|
toggle: !focusItemValue || !active,
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
178
|
+
trigger: trigger,
|
|
179
|
+
target: target,
|
|
180
|
+
overlay: overlay,
|
|
181
|
+
searchInput: searchInput,
|
|
180
182
|
active: active,
|
|
181
183
|
onExit: handleClean,
|
|
182
184
|
onMenuKeyDown: onFocusItem,
|
|
@@ -186,10 +188,10 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
186
188
|
setFocusItemValue(null);
|
|
187
189
|
}
|
|
188
190
|
}, rest));
|
|
189
|
-
var handleSelect =
|
|
191
|
+
var handleSelect = useEventCallback(function (nextItemValue, item, event) {
|
|
190
192
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(nextItemValue, item, event);
|
|
191
|
-
}
|
|
192
|
-
var handleItemSelect =
|
|
193
|
+
});
|
|
194
|
+
var handleItemSelect = useEventCallback(function (nextItemValue, item, event, checked) {
|
|
193
195
|
var nextValue = clone(value);
|
|
194
196
|
if (checked) {
|
|
195
197
|
nextValue.push(nextItemValue);
|
|
@@ -202,22 +204,16 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
202
204
|
setFocusItemValue(nextItemValue);
|
|
203
205
|
handleSelect(nextValue, item, event);
|
|
204
206
|
handleChangeValue(nextValue, event);
|
|
205
|
-
}
|
|
206
|
-
var handleEntered =
|
|
207
|
+
});
|
|
208
|
+
var handleEntered = useEventCallback(function () {
|
|
207
209
|
setActive(true);
|
|
208
210
|
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
209
|
-
}
|
|
210
|
-
var handleExited =
|
|
211
|
+
});
|
|
212
|
+
var handleExited = useEventCallback(function () {
|
|
211
213
|
resetSearch();
|
|
212
214
|
setFocusItemValue(null);
|
|
213
215
|
setActive(false);
|
|
214
216
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
215
|
-
}, [onClose, setFocusItemValue, resetSearch]);
|
|
216
|
-
usePublicMethods(ref, {
|
|
217
|
-
triggerRef: triggerRef,
|
|
218
|
-
overlayRef: overlayRef,
|
|
219
|
-
targetRef: targetRef,
|
|
220
|
-
listRef: listRef
|
|
221
217
|
});
|
|
222
218
|
var selectedItems = data.filter(function (item) {
|
|
223
219
|
return value === null || value === void 0 ? void 0 : value.some(function (val) {
|
|
@@ -281,7 +277,7 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
281
277
|
var menu = items.length || filteredStickyItems.length ? /*#__PURE__*/React.createElement(DropdownMenu, {
|
|
282
278
|
id: id ? id + "-listbox" : undefined,
|
|
283
279
|
listProps: listProps,
|
|
284
|
-
listRef:
|
|
280
|
+
listRef: list,
|
|
285
281
|
disabledItemValues: disabledItemValues,
|
|
286
282
|
valueKey: valueKey,
|
|
287
283
|
labelKey: labelKey,
|
|
@@ -304,17 +300,17 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
304
300
|
className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["none"])))
|
|
305
301
|
}, locale === null || locale === void 0 ? void 0 : locale.noResultsText);
|
|
306
302
|
return /*#__PURE__*/React.createElement(PickerOverlay, {
|
|
307
|
-
ref: mergeRefs(
|
|
303
|
+
ref: mergeRefs(overlay, speakerRef),
|
|
308
304
|
autoWidth: menuAutoWidth,
|
|
309
305
|
className: classes,
|
|
310
306
|
style: styles,
|
|
311
307
|
onKeyDown: onPickerKeyDown,
|
|
312
|
-
target:
|
|
308
|
+
target: trigger
|
|
313
309
|
}, searchable && /*#__PURE__*/React.createElement(SearchBar, {
|
|
314
310
|
placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,
|
|
315
311
|
onChange: handleSearch,
|
|
316
312
|
value: searchKeyword,
|
|
317
|
-
inputRef:
|
|
313
|
+
inputRef: searchInput
|
|
318
314
|
}), renderMenu ? renderMenu(menu) : menu, renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());
|
|
319
315
|
};
|
|
320
316
|
var _usePickerClassName = usePickerClassName(_extends({}, props, {
|
|
@@ -329,7 +325,7 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
329
325
|
usedClassNamePropKeys = _usePickerClassName[1];
|
|
330
326
|
return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
|
|
331
327
|
pickerProps: pick(props, pickTriggerPropKeys),
|
|
332
|
-
ref:
|
|
328
|
+
ref: trigger,
|
|
333
329
|
placement: placement,
|
|
334
330
|
onEnter: createChainedFunction(initStickyItems, onEnter),
|
|
335
331
|
onEntered: createChainedFunction(handleEntered, onEntered),
|
|
@@ -337,10 +333,11 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
337
333
|
speaker: renderDropdownMenu
|
|
338
334
|
}, /*#__PURE__*/React.createElement(Component, {
|
|
339
335
|
className: classes,
|
|
340
|
-
style: style
|
|
336
|
+
style: style,
|
|
337
|
+
ref: root
|
|
341
338
|
}, /*#__PURE__*/React.createElement(PickerToggle, _extends({}, omit(rest, [].concat(omitTriggerPropKeys, usedClassNamePropKeys)), {
|
|
342
339
|
id: id,
|
|
343
|
-
ref:
|
|
340
|
+
ref: target,
|
|
344
341
|
appearance: appearance,
|
|
345
342
|
disabled: disabled,
|
|
346
343
|
onClean: handleClean,
|
|
@@ -7,15 +7,15 @@ import _omit from "lodash/omit";
|
|
|
7
7
|
import _isFunction from "lodash/isFunction";
|
|
8
8
|
import _pick from "lodash/pick";
|
|
9
9
|
import _isNil from "lodash/isNil";
|
|
10
|
-
import React, { useState,
|
|
10
|
+
import React, { useState, useEffect, useContext, useMemo } from 'react';
|
|
11
11
|
import PropTypes from 'prop-types';
|
|
12
12
|
import classNames from 'classnames';
|
|
13
13
|
import { List, AutoSizer } from '../Windowing';
|
|
14
14
|
import CheckTreeNode from './CheckTreeNode';
|
|
15
15
|
import TreeContext from '../Tree/TreeContext';
|
|
16
16
|
import { getKeyParentMap, getPathTowardsItem, getTreeNodeIndent } from '../utils/treeUtils';
|
|
17
|
-
import { createChainedFunction, useCustom, useClassNames, useControlled, KEY_VALUES, mergeRefs } from '../utils';
|
|
18
|
-
import { PickerToggle, onMenuKeyDown as _onMenuKeyDown, PickerOverlay, SearchBar, SelectedElement, PickerToggleTrigger, createConcatChildrenFunction, usePickerClassName,
|
|
17
|
+
import { createChainedFunction, useCustom, useClassNames, useControlled, useEventCallback, KEY_VALUES, mergeRefs } from '../utils';
|
|
18
|
+
import { PickerToggle, onMenuKeyDown as _onMenuKeyDown, PickerOverlay, SearchBar, SelectedElement, PickerToggleTrigger, createConcatChildrenFunction, usePickerClassName, useToggleKeyDownEvent, usePickerRef, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../Picker';
|
|
19
19
|
import { isEveryChildChecked, isSomeNodeHasChildren, isAllSiblingNodeUncheckable, isEveryFirstLevelNodeUncheckable, getFormattedTree, getDisabledState, getCheckTreePickerDefaultValue, getSelectedItems, isNodeUncheckable } from './utils';
|
|
20
20
|
import { hasVisibleChildren, getExpandWhenSearching, useTreeSearch, useTreeNodeRefs, getDefaultExpandItemValues, useFlattenTreeData, focusNextItem, getFocusableItems, focusPreviousItem, toggleExpand, getActiveItem, useGetTreeNodeChildren, focusToActiveTreeNode, focusTreeNode, leftArrowHandler, rightArrowHandler, isSearching } from '../utils/treeUtils';
|
|
21
21
|
var emptyArray = [];
|
|
@@ -106,12 +106,16 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
106
106
|
rest = _objectWithoutPropertiesLoose(props, ["as", "data", "style", "appearance", "cleanable", "countable", "searchBy", "toggleAs", "searchKeyword", "showIndentLine", "locale", "cascade", "disabled", "valueKey", "labelKey", "placement", "childrenKey", "placeholder", "value", "defaultValue", "defaultExpandAll", "disabledItemValues", "expandItemValues", "defaultExpandItemValues", "height", "menuMaxHeight", "menuStyle", "searchable", "virtualized", "className", "classPrefix", "menuClassName", "menuAutoWidth", "uncheckableItemValues", "id", "listProps", "renderMenu", "getChildren", "renderExtraFooter", "onEntered", "onChange", "onClean", "onClose", "onExited", "onSearch", "onSelect", "onSelectItem", "onOpen", "onScroll", "onExpand", "renderValue", "renderTreeIcon", "renderTreeNode"]);
|
|
107
107
|
var _useContext = useContext(TreeContext),
|
|
108
108
|
inline = _useContext.inline;
|
|
109
|
-
var
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
109
|
+
var _usePickerRef = usePickerRef(ref, {
|
|
110
|
+
inline: inline
|
|
111
|
+
}),
|
|
112
|
+
trigger = _usePickerRef.trigger,
|
|
113
|
+
root = _usePickerRef.root,
|
|
114
|
+
target = _usePickerRef.target,
|
|
115
|
+
overlay = _usePickerRef.overlay,
|
|
116
|
+
list = _usePickerRef.list,
|
|
117
|
+
searchInput = _usePickerRef.searchInput,
|
|
118
|
+
treeView = _usePickerRef.treeView;
|
|
115
119
|
var _useCustom = useCustom('Picker', overrideLocale),
|
|
116
120
|
rtl = _useCustom.rtl,
|
|
117
121
|
locale = _useCustom.locale;
|
|
@@ -192,7 +196,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
192
196
|
* get formatted nodes for render tree
|
|
193
197
|
* @params render - renderNode function. only used when virtualized setting false
|
|
194
198
|
*/
|
|
195
|
-
var getFormattedNodes =
|
|
199
|
+
var getFormattedNodes = function getFormattedNodes(render) {
|
|
196
200
|
if (virtualized) {
|
|
197
201
|
return formatVirtualizedTreeData(flattenNodes, filteredData, expandItemValues, {
|
|
198
202
|
cascade: cascade,
|
|
@@ -207,7 +211,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
207
211
|
}).map(function (node) {
|
|
208
212
|
return render === null || render === void 0 ? void 0 : render(node, 1);
|
|
209
213
|
});
|
|
210
|
-
}
|
|
214
|
+
};
|
|
211
215
|
var getTreeNodeProps = function getTreeNodeProps(node, layer) {
|
|
212
216
|
return {
|
|
213
217
|
as: Component,
|
|
@@ -238,19 +242,19 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
238
242
|
onRenderTreeIcon: renderTreeIcon
|
|
239
243
|
};
|
|
240
244
|
};
|
|
241
|
-
var focusActiveNode =
|
|
242
|
-
if (
|
|
245
|
+
var focusActiveNode = function focusActiveNode() {
|
|
246
|
+
if (list.current) {
|
|
243
247
|
focusToActiveTreeNode({
|
|
244
|
-
list:
|
|
248
|
+
list: list.current,
|
|
245
249
|
valueKey: valueKey,
|
|
246
250
|
selector: "." + checkTreePrefix('node-active'),
|
|
247
251
|
activeNode: activeNode,
|
|
248
252
|
virtualized: virtualized,
|
|
249
|
-
container:
|
|
253
|
+
container: treeView.current,
|
|
250
254
|
formattedNodes: getFormattedNodes()
|
|
251
255
|
});
|
|
252
256
|
}
|
|
253
|
-
}
|
|
257
|
+
};
|
|
254
258
|
useEffect(function () {
|
|
255
259
|
setValue(getCheckTreePickerDefaultValue(value, uncheckableItemValues));
|
|
256
260
|
}, []); // eslint-disable-line react-hooks/exhaustive-deps
|
|
@@ -280,7 +284,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
280
284
|
});
|
|
281
285
|
forceUpdate();
|
|
282
286
|
}, [cascade, value, uncheckableItemValues, unSerializeList, flattenNodes, forceUpdate]);
|
|
283
|
-
var toggleUpChecked =
|
|
287
|
+
var toggleUpChecked = useEventCallback(function (nodes, node, checked) {
|
|
284
288
|
var currentNode = node.refKey ? nodes[node.refKey] : null;
|
|
285
289
|
if (cascade && currentNode) {
|
|
286
290
|
if (!checked) {
|
|
@@ -299,8 +303,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
299
303
|
toggleUpChecked(nodes, currentNode.parent, checked);
|
|
300
304
|
}
|
|
301
305
|
}
|
|
302
|
-
}
|
|
303
|
-
var toggleDownChecked =
|
|
306
|
+
});
|
|
307
|
+
var toggleDownChecked = useEventCallback(function (nodes, node, isChecked) {
|
|
304
308
|
var currentNode = node.refKey ? nodes[node.refKey] : null;
|
|
305
309
|
if (!currentNode) {
|
|
306
310
|
return;
|
|
@@ -314,8 +318,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
314
318
|
toggleDownChecked(nodes, child, isChecked);
|
|
315
319
|
});
|
|
316
320
|
}
|
|
317
|
-
}
|
|
318
|
-
var toggleChecked =
|
|
321
|
+
});
|
|
322
|
+
var toggleChecked = useEventCallback(function (node, isChecked) {
|
|
319
323
|
var nodes = _cloneDeep(flattenNodes);
|
|
320
324
|
toggleDownChecked(nodes, node, isChecked);
|
|
321
325
|
node.parent && toggleUpChecked(nodes, node.parent, isChecked);
|
|
@@ -324,7 +328,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
324
328
|
return values.filter(function (v) {
|
|
325
329
|
return !uncheckableItemValues.includes(v);
|
|
326
330
|
});
|
|
327
|
-
}
|
|
331
|
+
});
|
|
328
332
|
|
|
329
333
|
// TODO-Doma
|
|
330
334
|
// Replace `getKeyParentMap` with `getParentMap`
|
|
@@ -335,7 +339,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
335
339
|
return node[childrenKey];
|
|
336
340
|
});
|
|
337
341
|
}, [childrenKey, data, valueKey]);
|
|
338
|
-
var handleSelect =
|
|
342
|
+
var handleSelect = useEventCallback(function (node, event) {
|
|
339
343
|
var currentNode = node.refKey ? flattenNodes[node.refKey] : null;
|
|
340
344
|
if (!node || !currentNode) {
|
|
341
345
|
return;
|
|
@@ -358,18 +362,18 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
358
362
|
onSelectItem === null || onSelectItem === void 0 ? void 0 : onSelectItem(node, getPathTowardsItem(node, function (item) {
|
|
359
363
|
return itemParentMap.get(item[valueKey]);
|
|
360
364
|
}));
|
|
361
|
-
}
|
|
362
|
-
var handleOpen =
|
|
363
|
-
var
|
|
364
|
-
(
|
|
365
|
+
});
|
|
366
|
+
var handleOpen = useEventCallback(function () {
|
|
367
|
+
var _trigger$current, _trigger$current$open;
|
|
368
|
+
(_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : (_trigger$current$open = _trigger$current.open) === null || _trigger$current$open === void 0 ? void 0 : _trigger$current$open.call(_trigger$current);
|
|
365
369
|
setFocusItemValue(activeNode === null || activeNode === void 0 ? void 0 : activeNode[valueKey]);
|
|
366
370
|
focusActiveNode();
|
|
367
371
|
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
368
372
|
setActive(true);
|
|
369
|
-
}
|
|
370
|
-
var handleClose =
|
|
371
|
-
var
|
|
372
|
-
(
|
|
373
|
+
});
|
|
374
|
+
var handleClose = useEventCallback(function () {
|
|
375
|
+
var _trigger$current2, _trigger$current2$clo, _target$current;
|
|
376
|
+
(_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : (_trigger$current2$clo = _trigger$current2.close) === null || _trigger$current2$clo === void 0 ? void 0 : _trigger$current2$clo.call(_trigger$current2);
|
|
373
377
|
setSearchKeyword('');
|
|
374
378
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
375
379
|
setFocusItemValue(null);
|
|
@@ -378,9 +382,9 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
378
382
|
/**
|
|
379
383
|
* when using keyboard toggle picker, should refocus on PickerToggle Component after close picker menu
|
|
380
384
|
*/
|
|
381
|
-
(
|
|
382
|
-
}
|
|
383
|
-
var handleExpand =
|
|
385
|
+
(_target$current = target.current) === null || _target$current === void 0 ? void 0 : _target$current.focus();
|
|
386
|
+
});
|
|
387
|
+
var handleExpand = useEventCallback(function (node) {
|
|
384
388
|
var nextExpandItemValues = toggleExpand({
|
|
385
389
|
node: node,
|
|
386
390
|
isExpand: !node.expand,
|
|
@@ -395,16 +399,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
395
399
|
if (_isFunction(getChildren) && !node.expand && Array.isArray(node[childrenKey]) && node[childrenKey].length === 0) {
|
|
396
400
|
loadChildren(node, getChildren);
|
|
397
401
|
}
|
|
398
|
-
}, [childrenKey, expandItemValues, getChildren, loadChildren, onExpand, setExpandItemValues, valueKey]);
|
|
399
|
-
usePublicMethods(ref, {
|
|
400
|
-
rootRef: inline ? treeViewRef : undefined,
|
|
401
|
-
triggerRef: triggerRef,
|
|
402
|
-
overlayRef: overlayRef,
|
|
403
|
-
targetRef: targetRef,
|
|
404
|
-
listRef: listRef,
|
|
405
|
-
inline: inline
|
|
406
402
|
});
|
|
407
|
-
var handleClean =
|
|
403
|
+
var handleClean = useEventCallback(function (event) {
|
|
408
404
|
var target = event.target;
|
|
409
405
|
// exclude searchBar
|
|
410
406
|
if (target.matches('div[role="searchbox"] > input') || disabled || !cleanable) {
|
|
@@ -423,8 +419,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
423
419
|
});
|
|
424
420
|
}
|
|
425
421
|
onChange === null || onChange === void 0 ? void 0 : onChange([], event);
|
|
426
|
-
}
|
|
427
|
-
var handleFocusItem =
|
|
422
|
+
});
|
|
423
|
+
var handleFocusItem = useEventCallback(function (key) {
|
|
428
424
|
var focusableItems = getFocusableItems(filteredData, {
|
|
429
425
|
disabledItemValues: disabledItemValues,
|
|
430
426
|
valueKey: valueKey,
|
|
@@ -449,8 +445,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
449
445
|
if (key === KEY_VALUES.UP) {
|
|
450
446
|
focusPreviousItem(focusProps);
|
|
451
447
|
}
|
|
452
|
-
}
|
|
453
|
-
var handleLeftArrow =
|
|
448
|
+
});
|
|
449
|
+
var handleLeftArrow = useEventCallback(function () {
|
|
454
450
|
if (_isNil(focusItemValue)) return;
|
|
455
451
|
var focusItem = getActiveItem(focusItemValue, flattenNodes, valueKey);
|
|
456
452
|
leftArrowHandler({
|
|
@@ -464,8 +460,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
464
460
|
focusTreeNode(focusItem === null || focusItem === void 0 ? void 0 : (_focusItem$parent2 = focusItem.parent) === null || _focusItem$parent2 === void 0 ? void 0 : _focusItem$parent2.refKey, treeNodesRefs, "." + checkTreePrefix('node-label'));
|
|
465
461
|
}
|
|
466
462
|
});
|
|
467
|
-
}
|
|
468
|
-
var handleRightArrow =
|
|
463
|
+
});
|
|
464
|
+
var handleRightArrow = useEventCallback(function () {
|
|
469
465
|
if (_isNil(focusItemValue)) return;
|
|
470
466
|
var focusItem = getActiveItem(focusItemValue, flattenNodes, valueKey);
|
|
471
467
|
rightArrowHandler({
|
|
@@ -477,8 +473,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
477
473
|
handleFocusItem(KEY_VALUES.DOWN);
|
|
478
474
|
}
|
|
479
475
|
});
|
|
480
|
-
}
|
|
481
|
-
var selectActiveItem =
|
|
476
|
+
});
|
|
477
|
+
var selectActiveItem = function selectActiveItem(event) {
|
|
482
478
|
if (_isNil(focusItemValue)) return;
|
|
483
479
|
var activeItem = getActiveItem(focusItemValue, flattenNodes, valueKey);
|
|
484
480
|
if (!isNodeUncheckable(activeItem, {
|
|
@@ -487,13 +483,13 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
487
483
|
}) && activeItem !== null) {
|
|
488
484
|
handleSelect(activeItem, event);
|
|
489
485
|
}
|
|
490
|
-
}
|
|
486
|
+
};
|
|
491
487
|
var onPickerKeydown = useToggleKeyDownEvent(_extends({
|
|
492
488
|
toggle: !focusItemValue || !active,
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
489
|
+
trigger: trigger,
|
|
490
|
+
target: target,
|
|
491
|
+
overlay: overlay,
|
|
492
|
+
searchInput: searchInput,
|
|
497
493
|
active: active,
|
|
498
494
|
onExit: handleClean,
|
|
499
495
|
onClose: handleClose,
|
|
@@ -512,8 +508,8 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
512
508
|
});
|
|
513
509
|
}
|
|
514
510
|
}, rest));
|
|
515
|
-
var handleTreeKeydown =
|
|
516
|
-
if (!
|
|
511
|
+
var handleTreeKeydown = useEventCallback(function (event) {
|
|
512
|
+
if (!treeView.current) {
|
|
517
513
|
return;
|
|
518
514
|
}
|
|
519
515
|
_onMenuKeyDown(event, {
|
|
@@ -527,7 +523,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
527
523
|
right: rtl ? handleLeftArrow : handleRightArrow,
|
|
528
524
|
enter: selectActiveItem
|
|
529
525
|
});
|
|
530
|
-
}
|
|
526
|
+
});
|
|
531
527
|
var renderNode = function renderNode(node, layer) {
|
|
532
528
|
var visible = node.visible,
|
|
533
529
|
refKey = node.refKey; // when searching, all nodes should be expand
|
|
@@ -619,7 +615,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
619
615
|
}, style) : {};
|
|
620
616
|
return /*#__PURE__*/React.createElement("div", {
|
|
621
617
|
id: id ? id + "-listbox" : undefined,
|
|
622
|
-
ref:
|
|
618
|
+
ref: inline ? root : treeView,
|
|
623
619
|
role: "tree",
|
|
624
620
|
"aria-multiselectable": true,
|
|
625
621
|
className: classes,
|
|
@@ -637,7 +633,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
637
633
|
}, function (_ref5) {
|
|
638
634
|
var height = _ref5.height;
|
|
639
635
|
return /*#__PURE__*/React.createElement(List, _extends({
|
|
640
|
-
ref:
|
|
636
|
+
ref: list,
|
|
641
637
|
height: height,
|
|
642
638
|
itemSize: itemSize,
|
|
643
639
|
itemCount: formattedNodes.length,
|
|
@@ -658,14 +654,14 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
658
654
|
autoWidth: menuAutoWidth,
|
|
659
655
|
className: classes,
|
|
660
656
|
style: mergedMenuStyle,
|
|
661
|
-
ref: mergeRefs(
|
|
657
|
+
ref: mergeRefs(overlay, speakerRef),
|
|
662
658
|
onKeyDown: onPickerKeydown,
|
|
663
|
-
target:
|
|
659
|
+
target: trigger
|
|
664
660
|
}, searchable ? /*#__PURE__*/React.createElement(SearchBar, {
|
|
665
661
|
placeholder: locale.searchPlaceholder,
|
|
666
662
|
onChange: handleSearch,
|
|
667
663
|
value: searchKeywordState,
|
|
668
|
-
inputRef:
|
|
664
|
+
inputRef: searchInput
|
|
669
665
|
}) : null, renderMenu ? renderMenu(renderCheckTree()) : renderCheckTree(), renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());
|
|
670
666
|
};
|
|
671
667
|
var selectedItems = useMemo(function () {
|
|
@@ -711,7 +707,7 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
711
707
|
}
|
|
712
708
|
return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
|
|
713
709
|
pickerProps: _pick(props, pickTriggerPropKeys),
|
|
714
|
-
ref:
|
|
710
|
+
ref: trigger,
|
|
715
711
|
placement: placement,
|
|
716
712
|
onEnter: handleOpen,
|
|
717
713
|
onEntered: onEntered,
|
|
@@ -719,10 +715,11 @@ var CheckTreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
719
715
|
speaker: renderDropdownMenu
|
|
720
716
|
}, /*#__PURE__*/React.createElement(Component, {
|
|
721
717
|
className: classes,
|
|
722
|
-
style: style
|
|
718
|
+
style: style,
|
|
719
|
+
ref: root
|
|
723
720
|
}, /*#__PURE__*/React.createElement(PickerToggle, _extends({}, _omit(rest, [].concat(omitTriggerPropKeys, usedClassNamePropKeys)), {
|
|
724
721
|
id: id,
|
|
725
|
-
ref:
|
|
722
|
+
ref: target,
|
|
726
723
|
appearance: appearance,
|
|
727
724
|
onKeyDown: onPickerKeydown,
|
|
728
725
|
onClean: createChainedFunction(handleClean, onClean),
|
|
@@ -67,6 +67,19 @@ declare const CustomContext: React.Context<CustomProviderProps<{
|
|
|
67
67
|
more: string;
|
|
68
68
|
prev: string;
|
|
69
69
|
next: string;
|
|
70
|
+
/**
|
|
71
|
+
* Return the date parsed from string using the given format string.
|
|
72
|
+
*
|
|
73
|
+
* Example:
|
|
74
|
+
*
|
|
75
|
+
* import parse from 'date-fns/parse';
|
|
76
|
+
* import eo from 'date-fns/locale/eo'
|
|
77
|
+
*
|
|
78
|
+
* function parseDate(date, formatStr) {
|
|
79
|
+
* return parse(date, formatStr, new Date(), { locale: eo });
|
|
80
|
+
* }
|
|
81
|
+
*
|
|
82
|
+
* */
|
|
70
83
|
first: string;
|
|
71
84
|
last: string;
|
|
72
85
|
limit: string;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
|
-
import React
|
|
4
|
+
import React from 'react';
|
|
5
5
|
import { getClassNamePrefix, prefix } from '../utils/prefix';
|
|
6
6
|
import { addClass, removeClass, canUseDOM } from '../DOMHelper';
|
|
7
7
|
import ToastContainer, { toastPlacements } from '../toaster/ToastContainer';
|
|
8
|
-
import { usePortal } from '../utils';
|
|
8
|
+
import { usePortal, useIsomorphicLayoutEffect } from '../utils';
|
|
9
9
|
var CustomContext = /*#__PURE__*/React.createContext({});
|
|
10
10
|
var themes = ['light', 'dark', 'high-contrast'];
|
|
11
11
|
|
|
@@ -36,7 +36,7 @@ var CustomProvider = function CustomProvider(props) {
|
|
|
36
36
|
disableRipple: disableRipple
|
|
37
37
|
}, rest);
|
|
38
38
|
}, [classPrefix, theme, disableRipple, rest]);
|
|
39
|
-
|
|
39
|
+
useIsomorphicLayoutEffect(function () {
|
|
40
40
|
if (canUseDOM && theme) {
|
|
41
41
|
addClass(document.body, prefix(classPrefix, "theme-" + theme));
|
|
42
42
|
|