rsuite 5.49.0 → 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 +13 -0
- package/Cascader/styles/index.less +4 -4
- package/DateRangePicker/styles/index.less +15 -5
- package/Dropdown/styles/index.less +5 -4
- package/Dropdown/styles/mixin.less +0 -11
- package/Picker/styles/index.less +31 -24
- package/Picker/styles/mixin.less +17 -13
- package/README.md +4 -4
- 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 +5 -1
- 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/DatePicker/DatePicker.d.ts +5 -1
- package/cjs/DatePicker/DatePicker.js +2 -4
- package/cjs/DatePicker/Toolbar.js +2 -1
- package/cjs/DateRangeInput/DateRangeInput.js +2 -2
- package/cjs/DateRangePicker/Calendar.js +24 -23
- package/cjs/DateRangePicker/DateRangePicker.d.ts +18 -4
- package/cjs/DateRangePicker/DateRangePicker.js +239 -201
- 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/InputPicker/InputPicker.js +62 -63
- package/cjs/MultiCascader/MultiCascader.js +40 -42
- package/cjs/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
- package/cjs/{DatePicker → Picker}/PickerIndicator.js +2 -1
- package/cjs/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
- 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 +3 -1
- package/cjs/Picker/usePickerRef.js +13 -7
- 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/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 +1 -0
- package/cjs/utils/index.js +4 -1
- package/dist/rsuite-no-reset-rtl.css +92 -69
- 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 +92 -69
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +92 -69
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +92 -69
- package/dist/rsuite.js +67 -46
- 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 +5 -1
- 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/DatePicker/DatePicker.d.ts +5 -1
- package/esm/DatePicker/DatePicker.js +1 -3
- package/esm/DatePicker/Toolbar.js +2 -1
- package/esm/DateRangeInput/DateRangeInput.js +2 -2
- package/esm/DateRangePicker/Calendar.js +25 -23
- package/esm/DateRangePicker/DateRangePicker.d.ts +18 -4
- package/esm/DateRangePicker/DateRangePicker.js +241 -203
- 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/InputPicker/InputPicker.js +64 -65
- package/esm/MultiCascader/MultiCascader.js +43 -45
- package/esm/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
- package/esm/{DatePicker → Picker}/PickerIndicator.js +2 -1
- package/esm/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
- 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 +3 -1
- package/esm/Picker/usePickerRef.js +13 -8
- 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/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 +1 -0
- package/esm/utils/index.js +1 -0
- package/package.json +1 -1
- package/styles/mixins/combobox.less +10 -0
- /package/cjs/{DatePicker → Picker}/PickerLabel.js +0 -0
- /package/esm/{DatePicker → Picker}/PickerLabel.js +0 -0
|
@@ -120,15 +120,12 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
120
120
|
var _useState2 = (0, _react.useState)(),
|
|
121
121
|
selectedPaths = _useState2[0],
|
|
122
122
|
setSelectedPaths = _useState2[1];
|
|
123
|
-
var
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
overlayRef: overlayRef,
|
|
130
|
-
targetRef: targetRef
|
|
131
|
-
});
|
|
123
|
+
var _usePickerRef = (0, _Picker.usePickerRef)(ref),
|
|
124
|
+
trigger = _usePickerRef.trigger,
|
|
125
|
+
root = _usePickerRef.root,
|
|
126
|
+
target = _usePickerRef.target,
|
|
127
|
+
overlay = _usePickerRef.overlay,
|
|
128
|
+
searchInput = _usePickerRef.searchInput;
|
|
132
129
|
var _useCustom = (0, _utils3.useCustom)('Picker', overrideLocale),
|
|
133
130
|
locale = _useCustom.locale,
|
|
134
131
|
rtl = _useCustom.rtl;
|
|
@@ -145,7 +142,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
145
142
|
valueKey: valueKey,
|
|
146
143
|
defaultLayer: selectedPaths !== null && selectedPaths !== void 0 && selectedPaths.length ? selectedPaths.length - 1 : 0,
|
|
147
144
|
target: function target() {
|
|
148
|
-
return
|
|
145
|
+
return overlay.current;
|
|
149
146
|
},
|
|
150
147
|
callback: (0, _react.useCallback)(function (value) {
|
|
151
148
|
var _getColumnsAndPaths = (0, _utils2.getColumnsAndPaths)(data, flattenData.find(function (item) {
|
|
@@ -179,16 +176,16 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
179
176
|
var _useState3 = (0, _react.useState)(''),
|
|
180
177
|
searchKeyword = _useState3[0],
|
|
181
178
|
setSearchKeyword = _useState3[1];
|
|
182
|
-
var handleEntered = (0,
|
|
179
|
+
var handleEntered = (0, _utils3.useEventCallback)(function () {
|
|
183
180
|
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
184
181
|
setActive(true);
|
|
185
|
-
}
|
|
186
|
-
var handleExited = (0,
|
|
182
|
+
});
|
|
183
|
+
var handleExited = (0, _utils3.useEventCallback)(function () {
|
|
187
184
|
setActive(false);
|
|
188
185
|
setSearchKeyword('');
|
|
189
|
-
}
|
|
190
|
-
var handleSelect = (0,
|
|
191
|
-
var _node$childrenKey, _node$childrenKey2,
|
|
186
|
+
});
|
|
187
|
+
var handleSelect = (0, _utils3.useEventCallback)(function (node, cascadePaths, event) {
|
|
188
|
+
var _node$childrenKey, _node$childrenKey2, _trigger$current, _trigger$current$upda;
|
|
192
189
|
setSelectedPaths(cascadePaths);
|
|
193
190
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, event);
|
|
194
191
|
var columnIndex = cascadePaths.length;
|
|
@@ -201,7 +198,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
201
198
|
children.then(function (data) {
|
|
202
199
|
node.loading = false;
|
|
203
200
|
node[childrenKey] = data;
|
|
204
|
-
if (
|
|
201
|
+
if (target.current || inline) {
|
|
205
202
|
addFlattenData(data, node);
|
|
206
203
|
addColumn(data, columnIndex);
|
|
207
204
|
}
|
|
@@ -218,9 +215,9 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
218
215
|
// Removes subsequent columns of the current column when the clicked node is a leaf node.
|
|
219
216
|
removeColumnByIndex(columnIndex);
|
|
220
217
|
}
|
|
221
|
-
(
|
|
222
|
-
}
|
|
223
|
-
var handleCheck = (0,
|
|
218
|
+
(_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : (_trigger$current$upda = _trigger$current.updatePosition) === null || _trigger$current$upda === void 0 ? void 0 : _trigger$current$upda.call(_trigger$current);
|
|
219
|
+
});
|
|
220
|
+
var handleCheck = (0, _utils3.useEventCallback)(function (node, event, checked) {
|
|
224
221
|
var nodeValue = node[valueKey];
|
|
225
222
|
var nextValue = [];
|
|
226
223
|
if (cascade) {
|
|
@@ -238,38 +235,38 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
238
235
|
setValue(nextValue);
|
|
239
236
|
onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
|
|
240
237
|
onCheck === null || onCheck === void 0 ? void 0 : onCheck(nextValue, node, checked, event);
|
|
241
|
-
}
|
|
242
|
-
var handleClean = (0,
|
|
243
|
-
if (disabled || !
|
|
238
|
+
});
|
|
239
|
+
var handleClean = (0, _utils3.useEventCallback)(function (event) {
|
|
240
|
+
if (disabled || !target.current) {
|
|
244
241
|
return;
|
|
245
242
|
}
|
|
246
243
|
setSelectedPaths([]);
|
|
247
244
|
setValue([]);
|
|
248
245
|
setColumnData([data]);
|
|
249
246
|
onChange === null || onChange === void 0 ? void 0 : onChange([], event);
|
|
250
|
-
}
|
|
251
|
-
var handleMenuPressEnter = (0,
|
|
252
|
-
var
|
|
247
|
+
});
|
|
248
|
+
var handleMenuPressEnter = (0, _utils3.useEventCallback)(function (event) {
|
|
249
|
+
var _overlay$current;
|
|
253
250
|
var focusItem = (0, _treeUtils.findNodeOfTree)(data, function (item) {
|
|
254
251
|
return item[valueKey] === focusItemValue;
|
|
255
252
|
});
|
|
256
|
-
var checkbox = (
|
|
253
|
+
var checkbox = (_overlay$current = overlay.current) === null || _overlay$current === void 0 ? void 0 : _overlay$current.querySelector("[data-key=\"" + focusItemValue + "\"] [type=\"checkbox\"]");
|
|
257
254
|
if (checkbox) {
|
|
258
255
|
handleCheck(focusItem, event, (checkbox === null || checkbox === void 0 ? void 0 : checkbox.getAttribute('aria-checked')) !== 'true');
|
|
259
256
|
}
|
|
260
|
-
}
|
|
257
|
+
});
|
|
261
258
|
var onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)((0, _extends3.default)({
|
|
262
259
|
toggle: !focusItemValue || !active,
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
260
|
+
trigger: trigger,
|
|
261
|
+
target: target,
|
|
262
|
+
overlay: overlay,
|
|
263
|
+
searchInput: searchInput,
|
|
267
264
|
active: active,
|
|
268
265
|
onExit: handleClean,
|
|
269
266
|
onMenuKeyDown: onFocusItem,
|
|
270
267
|
onMenuPressEnter: handleMenuPressEnter
|
|
271
268
|
}, rest));
|
|
272
|
-
var handleSearch = (0,
|
|
269
|
+
var handleSearch = (0, _utils3.useEventCallback)(function (value, event) {
|
|
273
270
|
setSearchKeyword(value);
|
|
274
271
|
onSearch === null || onSearch === void 0 ? void 0 : onSearch(value, event);
|
|
275
272
|
if (value) {
|
|
@@ -278,8 +275,8 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
278
275
|
setLayer(selectedPaths.length - 1);
|
|
279
276
|
}
|
|
280
277
|
setKeys([]);
|
|
281
|
-
}
|
|
282
|
-
var getSearchResult =
|
|
278
|
+
});
|
|
279
|
+
var getSearchResult = function getSearchResult() {
|
|
283
280
|
var items = [];
|
|
284
281
|
var result = flattenData.filter(function (item) {
|
|
285
282
|
if (uncheckableItemValues.some(function (value) {
|
|
@@ -301,7 +298,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
301
298
|
}
|
|
302
299
|
}
|
|
303
300
|
return items;
|
|
304
|
-
}
|
|
301
|
+
};
|
|
305
302
|
var renderSearchRow = function renderSearchRow(item, key) {
|
|
306
303
|
var _extends2;
|
|
307
304
|
var nodes = (0, _treeUtils.getNodeParents)(item);
|
|
@@ -386,16 +383,16 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
386
383
|
inline: inline
|
|
387
384
|
}));
|
|
388
385
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {
|
|
389
|
-
ref: (0, _utils3.mergeRefs)(
|
|
386
|
+
ref: (0, _utils3.mergeRefs)(overlay, speakerRef),
|
|
390
387
|
className: classes,
|
|
391
388
|
style: styles,
|
|
392
|
-
target:
|
|
389
|
+
target: trigger,
|
|
393
390
|
onKeyDown: onPickerKeyDown
|
|
394
391
|
}, searchable && /*#__PURE__*/_react.default.createElement(_Picker.SearchBar, {
|
|
395
392
|
placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,
|
|
396
393
|
onChange: handleSearch,
|
|
397
394
|
value: searchKeyword,
|
|
398
|
-
inputRef:
|
|
395
|
+
inputRef: searchInput
|
|
399
396
|
}), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/_react.default.createElement(_DropdownMenu.default, {
|
|
400
397
|
id: id ? id + "-listbox" : undefined,
|
|
401
398
|
cascade: cascade,
|
|
@@ -451,7 +448,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
451
448
|
}
|
|
452
449
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
|
|
453
450
|
pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
|
|
454
|
-
ref:
|
|
451
|
+
ref: trigger,
|
|
455
452
|
placement: placement,
|
|
456
453
|
onEnter: (0, _utils3.createChainedFunction)(handleEntered, onEnter),
|
|
457
454
|
onExited: (0, _utils3.createChainedFunction)(handleExited, onExited),
|
|
@@ -459,13 +456,14 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
459
456
|
speaker: renderDropdownMenu
|
|
460
457
|
}, /*#__PURE__*/_react.default.createElement(Component, {
|
|
461
458
|
className: classes,
|
|
462
|
-
style: style
|
|
459
|
+
style: style,
|
|
460
|
+
ref: root
|
|
463
461
|
}, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends3.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {
|
|
464
462
|
id: id,
|
|
465
463
|
as: toggleAs,
|
|
466
464
|
appearance: appearance,
|
|
467
465
|
disabled: disabled,
|
|
468
|
-
ref:
|
|
466
|
+
ref: target,
|
|
469
467
|
onClean: (0, _utils3.createChainedFunction)(handleClean, onClean),
|
|
470
468
|
onKeyDown: onPickerKeyDown,
|
|
471
469
|
cleanable: cleanable && !disabled,
|
|
@@ -39,7 +39,8 @@ var PickerIndicator = function PickerIndicator(_ref) {
|
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
41
|
return caretAs && /*#__PURE__*/_react.default.createElement(_icons.Icon, {
|
|
42
|
-
as: caretAs
|
|
42
|
+
as: caretAs,
|
|
43
|
+
className: prefix('caret-icon')
|
|
43
44
|
});
|
|
44
45
|
};
|
|
45
46
|
return /*#__PURE__*/_react.default.createElement(Component, null, addon());
|
|
@@ -4,38 +4,33 @@ import { RsRefForwardingComponent, TypeAttributes } from '../@types/common';
|
|
|
4
4
|
import { IconProps } from '@rsuite/icons/lib/Icon';
|
|
5
5
|
declare type ValueType = string | number;
|
|
6
6
|
export interface PickerToggleProps extends ToggleButtonProps {
|
|
7
|
-
|
|
8
|
-
inputValue?: ValueType | ValueType[];
|
|
9
|
-
id?: string;
|
|
7
|
+
active?: boolean;
|
|
10
8
|
hasValue?: boolean;
|
|
11
9
|
cleanable?: boolean;
|
|
12
10
|
caret?: boolean;
|
|
13
|
-
active?: boolean;
|
|
14
|
-
disabled?: boolean;
|
|
15
|
-
readOnly?: boolean;
|
|
16
|
-
plaintext?: boolean;
|
|
17
|
-
tabIndex?: number;
|
|
18
|
-
/** Whether to display an loading indicator on toggle button */
|
|
19
|
-
loading?: boolean;
|
|
20
|
-
editable?: boolean;
|
|
21
|
-
name?: string;
|
|
22
|
-
inputPlaceholder?: string;
|
|
23
|
-
inputMask?: (string | RegExp)[];
|
|
24
|
-
onInputChange?: (value: string, event: React.ChangeEvent) => void;
|
|
25
|
-
onInputPressEnter?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
26
|
-
onInputBackspace?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
27
|
-
onInputBlur?: (event: React.FocusEvent<HTMLElement>) => void;
|
|
28
|
-
onInputFocus?: (event: React.FocusEvent<HTMLElement>) => void;
|
|
29
|
-
placement?: TypeAttributes.Placement;
|
|
30
11
|
/**
|
|
31
12
|
* Custom caret component
|
|
32
13
|
* @deprecated Use `caretAs` instead
|
|
33
14
|
*/
|
|
34
15
|
caretComponent?: React.FC<IconProps>;
|
|
35
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* Custom caret component
|
|
18
|
+
*/
|
|
36
19
|
caretAs?: React.ElementType;
|
|
37
|
-
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
placement?: TypeAttributes.Placement;
|
|
22
|
+
readOnly?: boolean;
|
|
23
|
+
plaintext?: boolean;
|
|
24
|
+
tabIndex?: number;
|
|
25
|
+
/**
|
|
26
|
+
* Whether to display an loading indicator on toggle button
|
|
27
|
+
*/
|
|
28
|
+
loading?: boolean;
|
|
38
29
|
label?: React.ReactNode;
|
|
30
|
+
name?: string;
|
|
31
|
+
id?: string;
|
|
32
|
+
inputValue?: ValueType | ValueType[];
|
|
33
|
+
onClean?: (event: React.MouseEvent) => void;
|
|
39
34
|
}
|
|
40
35
|
declare const PickerToggle: RsRefForwardingComponent<typeof ToggleButton, PickerToggleProps>;
|
|
41
36
|
export default PickerToggle;
|
|
@@ -5,25 +5,20 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
6
6
|
exports.__esModule = true;
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));
|
|
9
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));
|
|
10
10
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
-
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
14
12
|
var _ToggleButton = _interopRequireDefault(require("./ToggleButton"));
|
|
15
|
-
var _CloseButton = _interopRequireDefault(require("../CloseButton"));
|
|
16
13
|
var _utils = require("../utils");
|
|
17
14
|
var _Plaintext = _interopRequireDefault(require("../Plaintext"));
|
|
18
15
|
var _useToggleCaret = _interopRequireDefault(require("../utils/useToggleCaret"));
|
|
19
|
-
var _TextMask = _interopRequireDefault(require("../MaskedInput/TextMask"));
|
|
20
|
-
var _deprecatePropType = _interopRequireDefault(require("../utils/deprecatePropType"));
|
|
21
|
-
var _Loader = _interopRequireDefault(require("../Loader"));
|
|
22
16
|
var _Stack = _interopRequireDefault(require("../Stack"));
|
|
23
|
-
var
|
|
24
|
-
var
|
|
17
|
+
var _PickerIndicator = _interopRequireDefault(require("./PickerIndicator"));
|
|
18
|
+
var _PickerLabel = _interopRequireDefault(require("./PickerLabel"));
|
|
19
|
+
var _templateObject;
|
|
25
20
|
var PickerToggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
26
|
-
var
|
|
21
|
+
var active = props.active,
|
|
27
22
|
_props$as = props.as,
|
|
28
23
|
Component = _props$as === void 0 ? _ToggleButton.default : _props$as,
|
|
29
24
|
_props$classPrefix = props.classPrefix,
|
|
@@ -36,26 +31,14 @@ var PickerToggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
36
31
|
readOnly = props.readOnly,
|
|
37
32
|
plaintext = props.plaintext,
|
|
38
33
|
hasValue = props.hasValue,
|
|
39
|
-
editable = props.editable,
|
|
40
34
|
_props$loading = props.loading,
|
|
41
35
|
loading = _props$loading === void 0 ? false : _props$loading,
|
|
42
|
-
|
|
36
|
+
cleanable = props.cleanable,
|
|
43
37
|
_props$tabIndex = props.tabIndex,
|
|
44
|
-
|
|
38
|
+
tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,
|
|
45
39
|
id = props.id,
|
|
46
|
-
value = props.value,
|
|
47
|
-
inputPlaceholder = props.inputPlaceholder,
|
|
48
40
|
inputValueProp = props.inputValue,
|
|
49
|
-
_props$inputMask = props.inputMask,
|
|
50
|
-
inputMask = _props$inputMask === void 0 ? defaultInputMask : _props$inputMask,
|
|
51
|
-
onInputChange = props.onInputChange,
|
|
52
|
-
onInputPressEnter = props.onInputPressEnter,
|
|
53
|
-
onInputBackspace = props.onInputBackspace,
|
|
54
|
-
onInputBlur = props.onInputBlur,
|
|
55
|
-
onInputFocus = props.onInputFocus,
|
|
56
41
|
onClean = props.onClean,
|
|
57
|
-
onFocus = props.onFocus,
|
|
58
|
-
onBlur = props.onBlur,
|
|
59
42
|
_props$placement = props.placement,
|
|
60
43
|
placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,
|
|
61
44
|
caretComponent = props.caretComponent,
|
|
@@ -63,102 +46,29 @@ var PickerToggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
63
46
|
caretAs = _props$caretAs === void 0 ? caretComponent : _props$caretAs,
|
|
64
47
|
label = props.label,
|
|
65
48
|
name = props.name,
|
|
66
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["active", "as", "classPrefix", "children", "caret", "className", "disabled", "readOnly", "plaintext", "hasValue", "
|
|
67
|
-
var
|
|
68
|
-
locale = _useCustom.locale;
|
|
69
|
-
var inputRef = (0, _react.useRef)(null);
|
|
70
|
-
var comboboxRef = (0, _react.useRef)(null);
|
|
71
|
-
var _useState = (0, _react.useState)(false),
|
|
72
|
-
activeState = _useState[0],
|
|
73
|
-
setActive = _useState[1];
|
|
49
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["active", "as", "classPrefix", "children", "caret", "className", "disabled", "readOnly", "plaintext", "hasValue", "loading", "cleanable", "tabIndex", "id", "inputValue", "onClean", "placement", "caretComponent", "caretAs", "label", "name"]);
|
|
50
|
+
var combobox = (0, _react.useRef)(null);
|
|
74
51
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
75
52
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
76
53
|
merge = _useClassNames.merge,
|
|
77
54
|
prefix = _useClassNames.prefix;
|
|
78
|
-
var
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
setInputValue = _useState2[1];
|
|
84
|
-
(0, _react.useEffect)(function () {
|
|
85
|
-
if (comboboxRef.current) {
|
|
86
|
-
var _value = getInputValue();
|
|
87
|
-
setInputValue(_value);
|
|
55
|
+
var inputValue = (0, _react.useMemo)(function () {
|
|
56
|
+
if (typeof inputValueProp === 'number' || typeof inputValueProp === 'string') {
|
|
57
|
+
return inputValueProp;
|
|
58
|
+
} else if (Array.isArray(inputValueProp)) {
|
|
59
|
+
return inputValueProp.join(',');
|
|
88
60
|
}
|
|
89
|
-
|
|
61
|
+
return '';
|
|
62
|
+
}, [inputValueProp]);
|
|
90
63
|
var classes = merge(className, withClassPrefix({
|
|
91
|
-
active:
|
|
64
|
+
active: active
|
|
92
65
|
}));
|
|
93
|
-
var
|
|
94
|
-
|
|
95
|
-
setActive(true);
|
|
96
|
-
}
|
|
97
|
-
if (editable) {
|
|
98
|
-
// Avoid firing the onFocus event twice when DatePicker and DateRangePicker allow keyboard input.
|
|
99
|
-
if (event.target === inputRef.current) {
|
|
100
|
-
onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
// Force the input to be focused and editable.
|
|
104
|
-
if (document.activeElement === comboboxRef.current) {
|
|
105
|
-
var _inputRef$current;
|
|
106
|
-
(_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
|
|
107
|
-
}
|
|
108
|
-
} else {
|
|
109
|
-
onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);
|
|
110
|
-
}
|
|
111
|
-
}, [editable, loading, onFocus]);
|
|
112
|
-
var handleBlur = (0, _react.useCallback)(function (event) {
|
|
113
|
-
if (inputRef.current && !editable) {
|
|
114
|
-
setActive(false);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
// When activeElement is an input, it remains active.
|
|
118
|
-
if (editable && inputRef.current && document.activeElement !== inputRef.current) {
|
|
119
|
-
setActive(false);
|
|
120
|
-
}
|
|
121
|
-
onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
|
|
122
|
-
}, [editable, onBlur]);
|
|
123
|
-
var handleInputBlur = function handleInputBlur(event) {
|
|
124
|
-
setInputValue(getInputValue());
|
|
125
|
-
onInputBlur === null || onInputBlur === void 0 ? void 0 : onInputBlur(event);
|
|
126
|
-
};
|
|
127
|
-
var handleClean = (0, _react.useCallback)(function (event) {
|
|
128
|
-
var _inputRef$current2, _comboboxRef$current;
|
|
66
|
+
var handleClean = (0, _utils.useEventCallback)(function (event) {
|
|
67
|
+
var _combobox$current;
|
|
129
68
|
event.stopPropagation();
|
|
130
69
|
onClean === null || onClean === void 0 ? void 0 : onClean(event);
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
editable ? (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.focus() : (_comboboxRef$current = comboboxRef.current) === null || _comboboxRef$current === void 0 ? void 0 : _comboboxRef$current.focus();
|
|
134
|
-
}, [editable, onClean]);
|
|
135
|
-
var handleInputChange = (0, _react.useCallback)(function (event) {
|
|
136
|
-
var _event$target;
|
|
137
|
-
var value = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.value;
|
|
138
|
-
setInputValue(value);
|
|
139
|
-
onInputChange === null || onInputChange === void 0 ? void 0 : onInputChange(value, event);
|
|
140
|
-
}, [onInputChange]);
|
|
141
|
-
var handleInputKeyDown = (0, _react.useCallback)(function (event) {
|
|
142
|
-
if (editable) {
|
|
143
|
-
if (event.key === _utils.KEY_VALUES.ENTER) {
|
|
144
|
-
onInputPressEnter === null || onInputPressEnter === void 0 ? void 0 : onInputPressEnter(event);
|
|
145
|
-
}
|
|
146
|
-
if (event.key === _utils.KEY_VALUES.BACKSPACE) {
|
|
147
|
-
onInputBackspace === null || onInputBackspace === void 0 ? void 0 : onInputBackspace(event);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}, [editable, onInputPressEnter, onInputBackspace]);
|
|
151
|
-
var renderInput = (0, _react.useCallback)(function (ref, props) {
|
|
152
|
-
return /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({
|
|
153
|
-
type: "text",
|
|
154
|
-
autoComplete: "off",
|
|
155
|
-
ref: (0, _utils.mergeRefs)(inputRef, ref),
|
|
156
|
-
name: name,
|
|
157
|
-
style: {
|
|
158
|
-
pointerEvents: editable ? undefined : 'none'
|
|
159
|
-
}
|
|
160
|
-
}, props));
|
|
161
|
-
}, [editable, name]);
|
|
70
|
+
(_combobox$current = combobox.current) === null || _combobox$current === void 0 ? void 0 : _combobox$current.focus();
|
|
71
|
+
});
|
|
162
72
|
var ToggleCaret = (0, _useToggleCaret.default)(placement);
|
|
163
73
|
var Caret = caretAs !== null && caretAs !== void 0 ? caretAs : ToggleCaret;
|
|
164
74
|
if (plaintext) {
|
|
@@ -167,89 +77,54 @@ var PickerToggle = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
167
77
|
localeKey: "notSelected"
|
|
168
78
|
}, hasValue ? children : null);
|
|
169
79
|
}
|
|
170
|
-
var showCleanButton =
|
|
171
|
-
|
|
172
|
-
// When the component is read-only or disabled, the input is not interactive.
|
|
173
|
-
var inputFocused = readOnly || disabled ? false : editable && activeState;
|
|
174
|
-
var tabIndex = disabled ? undefined : tabIndexProp;
|
|
80
|
+
var showCleanButton = cleanable && hasValue && !readOnly;
|
|
175
81
|
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
176
82
|
role: "combobox",
|
|
177
83
|
"aria-haspopup": "listbox",
|
|
178
|
-
"aria-expanded":
|
|
84
|
+
"aria-expanded": active,
|
|
179
85
|
"aria-disabled": disabled,
|
|
180
86
|
"aria-owns": id ? id + "-listbox" : undefined
|
|
181
87
|
}, rest, {
|
|
182
|
-
ref: (0, _utils.mergeRefs)(
|
|
88
|
+
ref: (0, _utils.mergeRefs)(combobox, ref),
|
|
183
89
|
disabled: disabled,
|
|
184
|
-
tabIndex: tabIndex,
|
|
185
|
-
className: classes
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
,
|
|
189
|
-
|
|
190
|
-
}), /*#__PURE__*/_react.default.createElement(_Stack.default, null, label && /*#__PURE__*/_react.default.createElement(_Stack.default.Item, null, /*#__PURE__*/_react.default.createElement("span", {
|
|
191
|
-
className: prefix('label')
|
|
90
|
+
tabIndex: disabled ? undefined : tabIndex,
|
|
91
|
+
className: classes
|
|
92
|
+
}), /*#__PURE__*/_react.default.createElement(_Stack.default, null, label && /*#__PURE__*/_react.default.createElement(_Stack.default.Item, null, /*#__PURE__*/_react.default.createElement(_PickerLabel.default, {
|
|
93
|
+
as: "span",
|
|
94
|
+
className: prefix('label'),
|
|
95
|
+
id: id ? id + "-label" : undefined
|
|
192
96
|
}, label)), /*#__PURE__*/_react.default.createElement(_Stack.default.Item, {
|
|
193
97
|
grow: 1,
|
|
194
98
|
style: {
|
|
195
99
|
overflow: 'hidden'
|
|
196
100
|
}
|
|
197
|
-
},
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
padding: '1px 0'
|
|
201
|
-
},
|
|
202
|
-
"data-testid": "spinner"
|
|
203
|
-
}) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_TextMask.default, {
|
|
204
|
-
keepCharPositions: true,
|
|
205
|
-
mask: inputMask,
|
|
206
|
-
value: Array.isArray(inputValue) ? inputValue.toString() : inputValue,
|
|
207
|
-
onBlur: handleInputBlur,
|
|
208
|
-
onFocus: onInputFocus,
|
|
209
|
-
onChange: handleInputChange,
|
|
210
|
-
onKeyDown: handleInputKeyDown,
|
|
211
|
-
id: id,
|
|
212
|
-
"aria-hidden": !inputFocused,
|
|
213
|
-
readOnly: !inputFocused,
|
|
214
|
-
disabled: disabled,
|
|
101
|
+
}, /*#__PURE__*/_react.default.createElement("input", {
|
|
102
|
+
readOnly: true,
|
|
103
|
+
"aria-hidden": true,
|
|
215
104
|
"aria-controls": id ? id + "-listbox" : undefined,
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
105
|
+
"aria-labelledby": label ? id + "-label" : undefined,
|
|
106
|
+
tabIndex: -1,
|
|
107
|
+
"data-testid": "picker-toggle-input",
|
|
108
|
+
name: name,
|
|
109
|
+
value: inputValue,
|
|
110
|
+
id: id,
|
|
111
|
+
className: prefix('textbox', 'read-only'),
|
|
112
|
+
style: {
|
|
113
|
+
pointerEvents: 'none'
|
|
114
|
+
}
|
|
223
115
|
}), children ? /*#__PURE__*/_react.default.createElement("span", {
|
|
224
116
|
className: prefix(hasValue ? 'value' : 'placeholder'),
|
|
225
117
|
"aria-placeholder": typeof children === 'string' ? children : undefined
|
|
226
|
-
}, children) : null)
|
|
227
|
-
className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
})));
|
|
118
|
+
}, children) : null), /*#__PURE__*/_react.default.createElement(_Stack.default.Item, {
|
|
119
|
+
className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["indicator"])))
|
|
120
|
+
}, /*#__PURE__*/_react.default.createElement(_PickerIndicator.default, {
|
|
121
|
+
as: _react.default.Fragment,
|
|
122
|
+
loading: loading,
|
|
123
|
+
caretAs: caret ? Caret : null,
|
|
124
|
+
onClose: handleClean,
|
|
125
|
+
showCleanButton: showCleanButton
|
|
126
|
+
}))));
|
|
236
127
|
});
|
|
237
128
|
PickerToggle.displayName = 'PickerToggle';
|
|
238
|
-
PickerToggle.propTypes = {
|
|
239
|
-
classPrefix: _propTypes.default.string,
|
|
240
|
-
hasValue: _propTypes.default.bool,
|
|
241
|
-
cleanable: _propTypes.default.bool,
|
|
242
|
-
className: _propTypes.default.string,
|
|
243
|
-
children: _propTypes.default.node,
|
|
244
|
-
caret: _propTypes.default.bool,
|
|
245
|
-
as: _propTypes.default.elementType,
|
|
246
|
-
onClean: _propTypes.default.func,
|
|
247
|
-
active: _propTypes.default.bool,
|
|
248
|
-
readOnly: _propTypes.default.bool,
|
|
249
|
-
disabled: _propTypes.default.bool,
|
|
250
|
-
plaintext: _propTypes.default.bool,
|
|
251
|
-
caretComponent: (0, _deprecatePropType.default)(_propTypes.default.elementType, 'Use `caretAs` instead.'),
|
|
252
|
-
caretAs: _propTypes.default.elementType
|
|
253
|
-
};
|
|
254
129
|
var _default = PickerToggle;
|
|
255
130
|
exports.default = _default;
|
package/cjs/Picker/index.d.ts
CHANGED
|
@@ -7,9 +7,12 @@ export { default as DropdownMenuGroup } from './DropdownMenuGroup';
|
|
|
7
7
|
export { default as DropdownMenuItem } from './DropdownMenuItem';
|
|
8
8
|
export { default as PickerOverlay } from './PickerOverlay';
|
|
9
9
|
export { default as PickerToggle } from './PickerToggle';
|
|
10
|
+
export { default as PickerLabel } from './PickerLabel';
|
|
11
|
+
export { default as PickerIndicator } from './PickerIndicator';
|
|
10
12
|
export { default as PickerToggleTrigger } from './PickerToggleTrigger';
|
|
11
13
|
export { default as SearchBar } from './SearchBar';
|
|
12
14
|
export { default as SelectedElement } from './SelectedElement';
|
|
15
|
+
export { default as usePickerRef } from './usePickerRef';
|
|
13
16
|
export { pickTriggerPropKeys, omitTriggerPropKeys };
|
|
14
17
|
export type { OverlayTriggerHandle, PositionChildProps, PickerHandle, PickerComponent, PickerToggleProps };
|
|
15
18
|
export * from './utils';
|
package/cjs/Picker/index.js
CHANGED
|
@@ -11,13 +11,16 @@ var _exportNames = {
|
|
|
11
11
|
DropdownMenuItem: true,
|
|
12
12
|
PickerOverlay: true,
|
|
13
13
|
PickerToggle: true,
|
|
14
|
+
PickerLabel: true,
|
|
15
|
+
PickerIndicator: true,
|
|
14
16
|
PickerToggleTrigger: true,
|
|
15
17
|
SearchBar: true,
|
|
16
18
|
SelectedElement: true,
|
|
19
|
+
usePickerRef: true,
|
|
17
20
|
pickTriggerPropKeys: true,
|
|
18
21
|
omitTriggerPropKeys: true
|
|
19
22
|
};
|
|
20
|
-
exports.SelectedElement = exports.SearchBar = exports.PickerToggleTrigger = exports.PickerToggle = exports.PickerOverlay = exports.DropdownMenuItem = exports.DropdownMenuGroup = exports.DropdownMenuCheckItem = exports.DropdownMenu = void 0;
|
|
23
|
+
exports.usePickerRef = exports.SelectedElement = exports.SearchBar = exports.PickerToggleTrigger = exports.PickerIndicator = exports.PickerLabel = exports.PickerToggle = exports.PickerOverlay = exports.DropdownMenuItem = exports.DropdownMenuGroup = exports.DropdownMenuCheckItem = exports.DropdownMenu = void 0;
|
|
21
24
|
var _PickerToggleTrigger = _interopRequireWildcard(require("./PickerToggleTrigger"));
|
|
22
25
|
exports.pickTriggerPropKeys = _PickerToggleTrigger.pickTriggerPropKeys;
|
|
23
26
|
exports.omitTriggerPropKeys = _PickerToggleTrigger.omitTriggerPropKeys;
|
|
@@ -34,10 +37,16 @@ var _PickerOverlay = _interopRequireDefault(require("./PickerOverlay"));
|
|
|
34
37
|
exports.PickerOverlay = _PickerOverlay.default;
|
|
35
38
|
var _PickerToggle = _interopRequireDefault(require("./PickerToggle"));
|
|
36
39
|
exports.PickerToggle = _PickerToggle.default;
|
|
40
|
+
var _PickerLabel = _interopRequireDefault(require("./PickerLabel"));
|
|
41
|
+
exports.PickerLabel = _PickerLabel.default;
|
|
42
|
+
var _PickerIndicator = _interopRequireDefault(require("./PickerIndicator"));
|
|
43
|
+
exports.PickerIndicator = _PickerIndicator.default;
|
|
37
44
|
var _SearchBar = _interopRequireDefault(require("./SearchBar"));
|
|
38
45
|
exports.SearchBar = _SearchBar.default;
|
|
39
46
|
var _SelectedElement = _interopRequireDefault(require("./SelectedElement"));
|
|
40
47
|
exports.SelectedElement = _SelectedElement.default;
|
|
48
|
+
var _usePickerRef = _interopRequireDefault(require("./usePickerRef"));
|
|
49
|
+
exports.usePickerRef = _usePickerRef.default;
|
|
41
50
|
var _utils = require("./utils");
|
|
42
51
|
Object.keys(_utils).forEach(function (key) {
|
|
43
52
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -9,9 +9,11 @@ export interface PickerDependentParameters {
|
|
|
9
9
|
*/
|
|
10
10
|
declare function usePickerRef(ref: any, parmas?: PickerDependentParameters): {
|
|
11
11
|
trigger: import("react").RefObject<OverlayTriggerHandle>;
|
|
12
|
-
root: import("react").
|
|
12
|
+
root: import("react").MutableRefObject<any>;
|
|
13
13
|
overlay: import("react").RefObject<HTMLElement>;
|
|
14
14
|
target: import("react").RefObject<HTMLElement>;
|
|
15
15
|
list: import("react").RefObject<ListHandle>;
|
|
16
|
+
searchInput: import("react").RefObject<HTMLInputElement>;
|
|
17
|
+
treeView: import("react").RefObject<HTMLDivElement>;
|
|
16
18
|
};
|
|
17
19
|
export default usePickerRef;
|