primereact 10.3.3 → 10.5.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/accordion/accordion.cjs.js +1 -1
- package/accordion/accordion.cjs.min.js +1 -1
- package/accordion/accordion.esm.js +1 -1
- package/accordion/accordion.esm.min.js +1 -1
- package/accordion/accordion.js +1 -1
- package/accordion/accordion.min.js +1 -1
- package/calendar/calendar.cjs.js +29 -14
- package/calendar/calendar.cjs.min.js +1 -1
- package/calendar/calendar.esm.js +29 -14
- package/calendar/calendar.esm.min.js +1 -1
- package/calendar/calendar.js +29 -14
- package/calendar/calendar.min.js +1 -1
- package/carousel/carousel.cjs.js +1 -0
- package/carousel/carousel.cjs.min.js +1 -1
- package/carousel/carousel.esm.js +1 -0
- package/carousel/carousel.esm.min.js +1 -1
- package/carousel/carousel.js +1 -0
- package/carousel/carousel.min.js +1 -1
- package/checkbox/checkbox.cjs.js +2 -0
- package/checkbox/checkbox.cjs.min.js +1 -1
- package/checkbox/checkbox.esm.js +2 -0
- package/checkbox/checkbox.esm.min.js +1 -1
- package/checkbox/checkbox.js +2 -0
- package/checkbox/checkbox.min.js +1 -1
- package/chips/chips.cjs.js +111 -21
- package/chips/chips.cjs.min.js +1 -1
- package/chips/chips.esm.js +111 -21
- package/chips/chips.esm.min.js +1 -1
- package/chips/chips.js +111 -21
- package/chips/chips.min.js +1 -1
- package/core/core.js +696 -505
- package/core/core.min.js +5 -5
- package/datatable/datatable.cjs.js +577 -153
- package/datatable/datatable.cjs.min.js +1 -1
- package/datatable/datatable.esm.js +573 -149
- package/datatable/datatable.esm.min.js +1 -1
- package/datatable/datatable.js +577 -153
- package/datatable/datatable.min.js +1 -1
- package/dataview/dataview.d.ts +2 -2
- package/divider/divider.cjs.js +2 -2
- package/divider/divider.cjs.min.js +1 -1
- package/divider/divider.esm.js +2 -2
- package/divider/divider.esm.min.js +1 -1
- package/divider/divider.js +2 -2
- package/divider/divider.min.js +1 -1
- package/dropdown/dropdown.cjs.js +327 -160
- package/dropdown/dropdown.cjs.min.js +1 -1
- package/dropdown/dropdown.d.ts +9 -0
- package/dropdown/dropdown.esm.js +327 -160
- package/dropdown/dropdown.esm.min.js +1 -1
- package/dropdown/dropdown.js +327 -160
- package/dropdown/dropdown.min.js +1 -1
- package/editor/editor.cjs.js +1 -1
- package/editor/editor.cjs.min.js +1 -1
- package/editor/editor.esm.js +1 -1
- package/editor/editor.esm.min.js +1 -1
- package/editor/editor.js +1 -1
- package/editor/editor.min.js +1 -1
- package/focustrap/focustrap.cjs.js +168 -0
- package/focustrap/focustrap.cjs.min.js +1 -0
- package/focustrap/focustrap.esm.js +159 -0
- package/focustrap/focustrap.esm.min.js +1 -0
- package/focustrap/focustrap.js +167 -0
- package/focustrap/focustrap.min.js +1 -0
- package/focustrap/package.json +7 -0
- package/galleria/galleria.cjs.js +26 -24
- package/galleria/galleria.cjs.min.js +1 -1
- package/galleria/galleria.esm.js +26 -24
- package/galleria/galleria.esm.min.js +1 -1
- package/galleria/galleria.js +26 -24
- package/galleria/galleria.min.js +1 -1
- package/hooks/hooks.d.ts +1 -1
- package/inputnumber/inputnumber.cjs.js +21 -17
- package/inputnumber/inputnumber.cjs.min.js +1 -1
- package/inputnumber/inputnumber.esm.js +21 -17
- package/inputnumber/inputnumber.esm.min.js +1 -1
- package/inputnumber/inputnumber.js +21 -17
- package/inputnumber/inputnumber.min.js +1 -1
- package/inputswitch/inputswitch.cjs.js +3 -1
- package/inputswitch/inputswitch.cjs.min.js +1 -1
- package/inputswitch/inputswitch.esm.js +3 -1
- package/inputswitch/inputswitch.esm.min.js +1 -1
- package/inputswitch/inputswitch.js +3 -1
- package/inputswitch/inputswitch.min.js +1 -1
- package/knob/knob.cjs.js +62 -0
- package/knob/knob.cjs.min.js +1 -1
- package/knob/knob.esm.js +62 -0
- package/knob/knob.esm.min.js +1 -1
- package/knob/knob.js +62 -0
- package/knob/knob.min.js +1 -1
- package/listbox/listbox.cjs.js +362 -92
- package/listbox/listbox.cjs.min.js +1 -1
- package/listbox/listbox.esm.js +363 -93
- package/listbox/listbox.esm.min.js +1 -1
- package/listbox/listbox.js +362 -92
- package/listbox/listbox.min.js +1 -1
- package/menu/menu.cjs.js +4 -2
- package/menu/menu.cjs.min.js +1 -1
- package/menu/menu.esm.js +4 -2
- package/menu/menu.esm.min.js +1 -1
- package/menu/menu.js +5 -4
- package/menu/menu.min.js +1 -1
- package/menubar/menubar.cjs.js +3 -0
- package/menubar/menubar.cjs.min.js +1 -1
- package/menubar/menubar.esm.js +3 -0
- package/menubar/menubar.esm.min.js +1 -1
- package/menubar/menubar.js +3 -0
- package/menubar/menubar.min.js +1 -1
- package/multiselect/multiselect.cjs.js +377 -107
- package/multiselect/multiselect.cjs.min.js +1 -1
- package/multiselect/multiselect.esm.js +377 -107
- package/multiselect/multiselect.esm.min.js +1 -1
- package/multiselect/multiselect.js +377 -107
- package/multiselect/multiselect.min.js +1 -1
- package/package.json +1 -1
- package/paginator/paginator.cjs.js +251 -251
- package/paginator/paginator.cjs.min.js +1 -1
- package/paginator/paginator.esm.js +258 -258
- package/paginator/paginator.esm.min.js +1 -1
- package/paginator/paginator.js +251 -251
- package/paginator/paginator.min.js +1 -1
- package/panelmenu/panelmenu.cjs.js +34 -22
- package/panelmenu/panelmenu.cjs.min.js +1 -1
- package/panelmenu/panelmenu.esm.js +34 -22
- package/panelmenu/panelmenu.esm.min.js +1 -1
- package/panelmenu/panelmenu.js +35 -24
- package/panelmenu/panelmenu.min.js +1 -1
- package/passthrough/tailwind/index.cjs.js +3 -2
- package/passthrough/tailwind/index.cjs.min.js +1 -1
- package/passthrough/tailwind/index.esm.js +3 -2
- package/passthrough/tailwind/index.esm.min.js +1 -1
- package/passthrough/tailwind/index.js +3 -2
- package/passthrough/tailwind/index.min.js +1 -1
- package/password/password.cjs.js +22 -20
- package/password/password.cjs.min.js +1 -1
- package/password/password.esm.js +22 -20
- package/password/password.esm.min.js +1 -1
- package/password/password.js +22 -20
- package/password/password.min.js +1 -1
- package/primereact.all.cjs.js +2199 -951
- package/primereact.all.cjs.min.js +1 -1
- package/primereact.all.esm.js +2199 -951
- package/primereact.all.esm.min.js +1 -1
- package/primereact.all.js +2199 -951
- package/primereact.all.min.js +1 -1
- package/radiobutton/radiobutton.cjs.js +1 -0
- package/radiobutton/radiobutton.cjs.min.js +1 -1
- package/radiobutton/radiobutton.esm.js +1 -0
- package/radiobutton/radiobutton.esm.min.js +1 -1
- package/radiobutton/radiobutton.js +1 -0
- package/radiobutton/radiobutton.min.js +1 -1
- package/rating/rating.cjs.js +103 -4
- package/rating/rating.cjs.min.js +1 -1
- package/rating/rating.esm.js +103 -4
- package/rating/rating.esm.min.js +1 -1
- package/rating/rating.js +103 -4
- package/rating/rating.min.js +1 -1
- package/resources/themes/arya-blue/theme.css +328 -67
- package/resources/themes/arya-green/theme.css +328 -67
- package/resources/themes/arya-orange/theme.css +328 -67
- package/resources/themes/arya-purple/theme.css +26 -6
- package/resources/themes/bootstrap4-dark-blue/theme.css +328 -67
- package/resources/themes/bootstrap4-dark-purple/theme.css +26 -6
- package/resources/themes/bootstrap4-light-blue/theme.css +328 -67
- package/resources/themes/bootstrap4-light-purple/theme.css +26 -6
- package/resources/themes/fluent-light/theme.css +327 -66
- package/resources/themes/lara-dark-amber/theme.css +328 -67
- package/resources/themes/lara-dark-blue/theme.css +328 -67
- package/resources/themes/lara-dark-cyan/theme.css +328 -67
- package/resources/themes/lara-dark-green/theme.css +328 -67
- package/resources/themes/lara-dark-indigo/theme.css +328 -67
- package/resources/themes/lara-dark-pink/theme.css +328 -67
- package/resources/themes/lara-dark-purple/theme.css +26 -6
- package/resources/themes/lara-dark-teal/theme.css +328 -67
- package/resources/themes/lara-light-amber/theme.css +328 -67
- package/resources/themes/lara-light-blue/theme.css +328 -67
- package/resources/themes/lara-light-cyan/theme.css +328 -67
- package/resources/themes/lara-light-green/theme.css +328 -67
- package/resources/themes/lara-light-indigo/theme.css +328 -67
- package/resources/themes/lara-light-pink/theme.css +328 -67
- package/resources/themes/lara-light-purple/theme.css +26 -6
- package/resources/themes/lara-light-teal/theme.css +328 -67
- package/resources/themes/luna-amber/theme.css +328 -67
- package/resources/themes/luna-blue/theme.css +328 -67
- package/resources/themes/luna-green/theme.css +328 -67
- package/resources/themes/luna-pink/theme.css +328 -67
- package/resources/themes/md-dark-deeppurple/theme.css +158 -138
- package/resources/themes/md-dark-indigo/theme.css +454 -193
- package/resources/themes/md-light-deeppurple/theme.css +26 -6
- package/resources/themes/md-light-indigo/theme.css +328 -67
- package/resources/themes/mdc-dark-deeppurple/theme.css +158 -138
- package/resources/themes/mdc-dark-indigo/theme.css +454 -193
- package/resources/themes/mdc-light-deeppurple/theme.css +26 -6
- package/resources/themes/mdc-light-indigo/theme.css +328 -67
- package/resources/themes/mira/theme.css +328 -67
- package/resources/themes/nano/theme.css +328 -67
- package/resources/themes/nova/theme.css +328 -67
- package/resources/themes/nova-accent/theme.css +328 -67
- package/resources/themes/nova-alt/theme.css +328 -67
- package/resources/themes/rhea/theme.css +328 -67
- package/resources/themes/saga-blue/theme.css +328 -67
- package/resources/themes/saga-green/theme.css +328 -67
- package/resources/themes/saga-orange/theme.css +328 -67
- package/resources/themes/saga-purple/theme.css +26 -6
- package/resources/themes/soho-dark/theme.css +353 -92
- package/resources/themes/soho-light/theme.css +328 -67
- package/resources/themes/tailwind-light/theme.css +329 -71
- package/resources/themes/vela-blue/theme.css +328 -67
- package/resources/themes/vela-green/theme.css +328 -67
- package/resources/themes/vela-orange/theme.css +328 -67
- package/resources/themes/vela-purple/theme.css +26 -6
- package/resources/themes/viva-dark/theme.css +328 -67
- package/resources/themes/viva-light/theme.css +328 -67
- package/selectbutton/selectbutton.cjs.js +96 -50
- package/selectbutton/selectbutton.cjs.min.js +1 -1
- package/selectbutton/selectbutton.esm.js +96 -50
- package/selectbutton/selectbutton.esm.min.js +1 -1
- package/selectbutton/selectbutton.js +96 -50
- package/selectbutton/selectbutton.min.js +1 -1
- package/sidebar/sidebar.cjs.js +18 -16
- package/sidebar/sidebar.cjs.min.js +1 -1
- package/sidebar/sidebar.esm.js +18 -16
- package/sidebar/sidebar.esm.min.js +1 -1
- package/sidebar/sidebar.js +18 -16
- package/sidebar/sidebar.min.js +1 -1
- package/slider/slider.cjs.js +25 -4
- package/slider/slider.cjs.min.js +1 -1
- package/slider/slider.esm.js +25 -4
- package/slider/slider.esm.min.js +1 -1
- package/slider/slider.js +25 -4
- package/slider/slider.min.js +1 -1
- package/splitbutton/splitbutton.cjs.js +4 -3
- package/splitbutton/splitbutton.cjs.min.js +1 -1
- package/splitbutton/splitbutton.esm.js +4 -3
- package/splitbutton/splitbutton.esm.min.js +1 -1
- package/splitbutton/splitbutton.js +4 -3
- package/splitbutton/splitbutton.min.js +1 -1
- package/splitter/splitter.cjs.js +71 -25
- package/splitter/splitter.cjs.min.js +1 -1
- package/splitter/splitter.d.ts +13 -1
- package/splitter/splitter.esm.js +73 -27
- package/splitter/splitter.esm.min.js +1 -1
- package/splitter/splitter.js +71 -25
- package/splitter/splitter.min.js +1 -1
- package/tabview/tabview.cjs.js +6 -5
- package/tabview/tabview.cjs.min.js +1 -1
- package/tabview/tabview.d.ts +39 -34
- package/tabview/tabview.esm.js +6 -5
- package/tabview/tabview.esm.min.js +1 -1
- package/tabview/tabview.js +6 -5
- package/tabview/tabview.min.js +1 -1
- package/tieredmenu/tieredmenu.cjs.js +4 -3
- package/tieredmenu/tieredmenu.cjs.min.js +1 -1
- package/tieredmenu/tieredmenu.esm.js +4 -3
- package/tieredmenu/tieredmenu.esm.min.js +1 -1
- package/tieredmenu/tieredmenu.js +4 -3
- package/tieredmenu/tieredmenu.min.js +1 -1
- package/togglebutton/togglebutton.cjs.js +15 -14
- package/togglebutton/togglebutton.cjs.min.js +1 -1
- package/togglebutton/togglebutton.esm.js +14 -13
- package/togglebutton/togglebutton.esm.min.js +1 -1
- package/togglebutton/togglebutton.js +15 -14
- package/togglebutton/togglebutton.min.js +1 -1
- package/tree/tree.cjs.js +33 -15
- package/tree/tree.cjs.min.js +1 -1
- package/tree/tree.esm.js +34 -16
- package/tree/tree.esm.min.js +1 -1
- package/tree/tree.js +33 -15
- package/tree/tree.min.js +1 -1
- package/tristatecheckbox/tristatecheckbox.cjs.js +3 -2
- package/tristatecheckbox/tristatecheckbox.cjs.min.js +1 -1
- package/tristatecheckbox/tristatecheckbox.esm.js +3 -2
- package/tristatecheckbox/tristatecheckbox.esm.min.js +1 -1
- package/tristatecheckbox/tristatecheckbox.js +3 -2
- package/tristatecheckbox/tristatecheckbox.min.js +1 -1
- package/web-types.json +19 -1
package/dropdown/dropdown.esm.js
CHANGED
|
@@ -181,10 +181,13 @@ var classes = {
|
|
|
181
181
|
item: function item(_ref7) {
|
|
182
182
|
var selected = _ref7.selected,
|
|
183
183
|
disabled = _ref7.disabled,
|
|
184
|
-
label = _ref7.label
|
|
184
|
+
label = _ref7.label,
|
|
185
|
+
index = _ref7.index,
|
|
186
|
+
focusedOptionIndex = _ref7.focusedOptionIndex;
|
|
185
187
|
return classNames('p-dropdown-item', {
|
|
186
188
|
'p-highlight': selected,
|
|
187
189
|
'p-disabled': disabled,
|
|
190
|
+
'p-focus': index === focusedOptionIndex,
|
|
188
191
|
'p-dropdown-item-empty': !label || label.length === 0
|
|
189
192
|
});
|
|
190
193
|
},
|
|
@@ -237,6 +240,8 @@ var DropdownBase = ComponentBase.extend({
|
|
|
237
240
|
inputId: null,
|
|
238
241
|
inputRef: null,
|
|
239
242
|
itemTemplate: null,
|
|
243
|
+
loading: false,
|
|
244
|
+
loadingIcon: null,
|
|
240
245
|
maxLength: null,
|
|
241
246
|
name: null,
|
|
242
247
|
onBlur: null,
|
|
@@ -249,6 +254,8 @@ var DropdownBase = ComponentBase.extend({
|
|
|
249
254
|
onShow: null,
|
|
250
255
|
optionDisabled: null,
|
|
251
256
|
optionGroupChildren: 'items',
|
|
257
|
+
selectOnFocus: false,
|
|
258
|
+
autoOptionFocus: false,
|
|
252
259
|
optionGroupLabel: null,
|
|
253
260
|
optionGroupTemplate: null,
|
|
254
261
|
optionLabel: null,
|
|
@@ -287,7 +294,9 @@ var DropdownItem = /*#__PURE__*/React.memo(function (props) {
|
|
|
287
294
|
selected = props.selected,
|
|
288
295
|
disabled = props.disabled,
|
|
289
296
|
option = props.option,
|
|
290
|
-
label = props.label
|
|
297
|
+
label = props.label,
|
|
298
|
+
index = props.index,
|
|
299
|
+
focusedOptionIndex = props.focusedOptionIndex;
|
|
291
300
|
var getPTOptions = function getPTOptions(key) {
|
|
292
301
|
return ptm(key, {
|
|
293
302
|
context: {
|
|
@@ -296,7 +305,7 @@ var DropdownItem = /*#__PURE__*/React.memo(function (props) {
|
|
|
296
305
|
}
|
|
297
306
|
});
|
|
298
307
|
};
|
|
299
|
-
var _onClick = function onClick(event) {
|
|
308
|
+
var _onClick = function onClick(event, i) {
|
|
300
309
|
if (props.onClick) {
|
|
301
310
|
props.onClick({
|
|
302
311
|
originalEvent: event,
|
|
@@ -311,7 +320,9 @@ var DropdownItem = /*#__PURE__*/React.memo(function (props) {
|
|
|
311
320
|
className: classNames(option.className, cx('item', {
|
|
312
321
|
selected: selected,
|
|
313
322
|
disabled: disabled,
|
|
314
|
-
label: label
|
|
323
|
+
label: label,
|
|
324
|
+
index: index,
|
|
325
|
+
focusedOptionIndex: focusedOptionIndex
|
|
315
326
|
})),
|
|
316
327
|
style: props.style,
|
|
317
328
|
onClick: function onClick(e) {
|
|
@@ -320,6 +331,7 @@ var DropdownItem = /*#__PURE__*/React.memo(function (props) {
|
|
|
320
331
|
'aria-label': label,
|
|
321
332
|
'aria-selected': selected,
|
|
322
333
|
'data-p-highlight': selected,
|
|
334
|
+
'data-p-focused': focusedOptionIndex === index,
|
|
323
335
|
'data-p-disabled': disabled
|
|
324
336
|
}, getPTOptions('item'));
|
|
325
337
|
return /*#__PURE__*/React.createElement("li", itemProps, content, /*#__PURE__*/React.createElement(Ripple, null));
|
|
@@ -391,6 +403,8 @@ var DropdownPanel = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(funct
|
|
|
391
403
|
var disabled = props.isOptionDisabled(option);
|
|
392
404
|
return /*#__PURE__*/React.createElement(DropdownItem, {
|
|
393
405
|
key: optionKey,
|
|
406
|
+
index: j,
|
|
407
|
+
focusedOptionIndex: props.focusedOptionIndex,
|
|
394
408
|
label: optionLabel,
|
|
395
409
|
option: option,
|
|
396
410
|
style: style,
|
|
@@ -438,6 +452,8 @@ var DropdownPanel = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(funct
|
|
|
438
452
|
return /*#__PURE__*/React.createElement(DropdownItem, {
|
|
439
453
|
key: optionKey,
|
|
440
454
|
label: optionLabel,
|
|
455
|
+
index: index,
|
|
456
|
+
focusedOptionIndex: props.focusedOptionIndex,
|
|
441
457
|
option: option,
|
|
442
458
|
style: style,
|
|
443
459
|
template: props.itemTemplate,
|
|
@@ -630,20 +646,30 @@ var Dropdown = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
630
646
|
setFilterState = _React$useState2[1];
|
|
631
647
|
var _React$useState3 = React.useState(false),
|
|
632
648
|
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
633
|
-
|
|
634
|
-
|
|
649
|
+
clicked = _React$useState4[0],
|
|
650
|
+
setClicked = _React$useState4[1];
|
|
635
651
|
var _React$useState5 = React.useState(false),
|
|
636
652
|
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
637
|
-
|
|
638
|
-
|
|
653
|
+
focusedState = _React$useState6[0],
|
|
654
|
+
setFocusedState = _React$useState6[1];
|
|
655
|
+
var _React$useState7 = React.useState(null),
|
|
656
|
+
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
|
657
|
+
focusedOptionIndex = _React$useState8[0],
|
|
658
|
+
setFocusedOptionIndex = _React$useState8[1];
|
|
659
|
+
var _React$useState9 = React.useState(false),
|
|
660
|
+
_React$useState10 = _slicedToArray(_React$useState9, 2),
|
|
661
|
+
overlayVisibleState = _React$useState10[0],
|
|
662
|
+
setOverlayVisibleState = _React$useState10[1];
|
|
639
663
|
var elementRef = React.useRef(null);
|
|
640
664
|
var overlayRef = React.useRef(null);
|
|
665
|
+
var firstHiddenFocusableElementOnOverlay = React.useRef(null);
|
|
666
|
+
var lastHiddenFocusableElementOnOverlay = React.useRef(null);
|
|
641
667
|
var inputRef = React.useRef(props.inputRef);
|
|
642
668
|
var focusInputRef = React.useRef(props.focusInputRef);
|
|
643
669
|
var virtualScrollerRef = React.useRef(null);
|
|
644
670
|
var searchTimeout = React.useRef(null);
|
|
645
671
|
var searchValue = React.useRef(null);
|
|
646
|
-
|
|
672
|
+
React.useRef(null);
|
|
647
673
|
var isLazy = props.virtualScrollerOptions && props.virtualScrollerOptions.lazy;
|
|
648
674
|
var hasFilter = ObjectUtils.isNotEmpty(filterState);
|
|
649
675
|
var appendTo = props.appendTo || context && context.appendTo || PrimeReact.appendTo;
|
|
@@ -707,6 +733,14 @@ var Dropdown = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
707
733
|
return props.options;
|
|
708
734
|
}
|
|
709
735
|
};
|
|
736
|
+
var onFirstHiddenFocus = function onFirstHiddenFocus(event) {
|
|
737
|
+
var focusableEl = event.relatedTarget === focusInputRef.current ? DomHandler.getFirstFocusableElement(overlayRef.current, ':not([data-p-hidden-focusable="true"])') : focusInputRef.current;
|
|
738
|
+
DomHandler.focus(focusableEl);
|
|
739
|
+
};
|
|
740
|
+
var onLastHiddenFocus = function onLastHiddenFocus(event) {
|
|
741
|
+
var focusableEl = event.relatedTarget === focusInputRef.current ? DomHandler.getLastFocusableElement(overlayRef.current, ':not([data-p-hidden-focusable="true"])') : focusInputRef.current;
|
|
742
|
+
DomHandler.focus(focusableEl);
|
|
743
|
+
};
|
|
710
744
|
var isClearClicked = function isClearClicked(event) {
|
|
711
745
|
return DomHandler.isAttributeEquals(event.target, 'data-pc-section', 'clearicon') || DomHandler.isAttributeEquals(event.target.parentElement || event.target, 'data-pc-section', 'filterclearicon');
|
|
712
746
|
};
|
|
@@ -726,6 +760,7 @@ var Dropdown = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
726
760
|
DomHandler.focus(focusInputRef.current);
|
|
727
761
|
overlayVisibleState ? hide() : show();
|
|
728
762
|
}
|
|
763
|
+
setClicked(true);
|
|
729
764
|
};
|
|
730
765
|
var onInputFocus = function onInputFocus(event) {
|
|
731
766
|
if (props.showOnFocus && !overlayVisibleState) {
|
|
@@ -757,6 +792,15 @@ var Dropdown = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
757
792
|
}, 200);
|
|
758
793
|
}
|
|
759
794
|
};
|
|
795
|
+
var onOptionSelect = function onOptionSelect(event, option) {
|
|
796
|
+
var isHide = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
797
|
+
var value = getOptionValue(option);
|
|
798
|
+
selectItem({
|
|
799
|
+
originalEvent: event,
|
|
800
|
+
option: value
|
|
801
|
+
});
|
|
802
|
+
isHide && hide();
|
|
803
|
+
};
|
|
760
804
|
var onPanelClick = function onPanelClick(event) {
|
|
761
805
|
OverlayService.emit('overlay-click', {
|
|
762
806
|
originalEvent: event,
|
|
@@ -764,196 +808,285 @@ var Dropdown = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
764
808
|
});
|
|
765
809
|
};
|
|
766
810
|
var onInputKeyDown = function onInputKeyDown(event) {
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
811
|
+
if (props.disabled || DomHandler.isAndroid()) {
|
|
812
|
+
event.preventDefault();
|
|
813
|
+
return;
|
|
814
|
+
}
|
|
815
|
+
var metaKey = event.metaKey || event.ctrlKey;
|
|
816
|
+
switch (event.code) {
|
|
817
|
+
case 'ArrowDown':
|
|
818
|
+
onArrowDownKey(event);
|
|
771
819
|
break;
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
case 38:
|
|
775
|
-
onUpKey(event);
|
|
820
|
+
case 'ArrowUp':
|
|
821
|
+
onArrowUpKey(event);
|
|
776
822
|
break;
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
case 13:
|
|
781
|
-
overlayVisibleState ? hide() : show();
|
|
782
|
-
event.preventDefault();
|
|
823
|
+
case 'ArrowLeft':
|
|
824
|
+
case 'ArrowRight':
|
|
825
|
+
onArrowLeftKey(event, props.editable);
|
|
783
826
|
break;
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
case
|
|
788
|
-
|
|
827
|
+
case 'Home':
|
|
828
|
+
onHomeKey(event);
|
|
829
|
+
break;
|
|
830
|
+
case 'End':
|
|
831
|
+
onEndKey(event);
|
|
832
|
+
break;
|
|
833
|
+
case 'PageDown':
|
|
834
|
+
onPageDownKey(event);
|
|
835
|
+
break;
|
|
836
|
+
case 'PageUp':
|
|
837
|
+
onPageUpKey(event);
|
|
838
|
+
break;
|
|
839
|
+
case 'Space':
|
|
840
|
+
onSpaceKey(event, props.editable);
|
|
841
|
+
break;
|
|
842
|
+
case 'NumpadEnter':
|
|
843
|
+
case 'Enter':
|
|
844
|
+
onEnterKey(event);
|
|
845
|
+
break;
|
|
846
|
+
case 'Escape':
|
|
847
|
+
onEscapeKey(event);
|
|
848
|
+
break;
|
|
849
|
+
case 'Tab':
|
|
850
|
+
onTabKey(event);
|
|
851
|
+
break;
|
|
852
|
+
case 'Backspace':
|
|
853
|
+
onBackspaceKey(event, props.editable);
|
|
854
|
+
break;
|
|
855
|
+
case 'ShiftLeft':
|
|
856
|
+
case 'ShiftRight':
|
|
857
|
+
//NOOP
|
|
789
858
|
break;
|
|
790
859
|
default:
|
|
791
|
-
|
|
860
|
+
if (!metaKey && ObjectUtils.isPrintableCharacter(event.key)) {
|
|
861
|
+
!overlayVisibleState && show();
|
|
862
|
+
!props.editable && searchOptions(event, event.key);
|
|
863
|
+
}
|
|
792
864
|
break;
|
|
793
865
|
}
|
|
866
|
+
setClicked(false);
|
|
794
867
|
};
|
|
795
868
|
var onFilterInputKeyDown = function onFilterInputKeyDown(event) {
|
|
796
|
-
switch (event.
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
onDownKey(event);
|
|
869
|
+
switch (event.code) {
|
|
870
|
+
case 'ArrowDown':
|
|
871
|
+
onArrowDownKey(event);
|
|
800
872
|
break;
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
case 38:
|
|
804
|
-
onUpKey(event);
|
|
873
|
+
case 'ArrowUp':
|
|
874
|
+
onArrowUpKey(event);
|
|
805
875
|
break;
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
876
|
+
case 'ArrowLeft':
|
|
877
|
+
case 'ArrowRight':
|
|
878
|
+
onArrowLeftKey(event, true);
|
|
879
|
+
break;
|
|
880
|
+
case 'Escape':
|
|
881
|
+
case 'Enter':
|
|
882
|
+
onEnterKey(event);
|
|
811
883
|
event.preventDefault();
|
|
812
884
|
break;
|
|
813
885
|
}
|
|
814
886
|
};
|
|
815
|
-
var
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
887
|
+
var hasFocusableElements = function hasFocusableElements() {
|
|
888
|
+
return DomHandler.getFocusableElements(overlayRef.current, ':not([data-p-hidden-focusable="true"])').length > 0;
|
|
889
|
+
};
|
|
890
|
+
var isOptionMatched = function isOptionMatched(option) {
|
|
891
|
+
var _getOptionLabel;
|
|
892
|
+
return isValidOption(option) && ((_getOptionLabel = getOptionLabel(option)) === null || _getOptionLabel === void 0 ? void 0 : _getOptionLabel.toLocaleLowerCase(props.filterLocale).startsWith(searchValue.current.toLocaleLowerCase(props.filterLocale)));
|
|
893
|
+
};
|
|
894
|
+
var isValidOption = function isValidOption(option) {
|
|
895
|
+
return ObjectUtils.isNotEmpty(option) && !(isOptionDisabled(option) || isOptionGroup(option));
|
|
896
|
+
};
|
|
897
|
+
var hasSelectedOption = function hasSelectedOption() {
|
|
898
|
+
return ObjectUtils.isNotEmpty(props.value);
|
|
899
|
+
};
|
|
900
|
+
var isValidSelectedOption = function isValidSelectedOption(option) {
|
|
901
|
+
return isValidOption(option) && isSelected(option);
|
|
902
|
+
};
|
|
903
|
+
var findSelectedOptionIndex = function findSelectedOptionIndex() {
|
|
904
|
+
return hasSelectedOption ? visibleOptions.findIndex(function (option) {
|
|
905
|
+
return isValidSelectedOption(option);
|
|
906
|
+
}) : -1;
|
|
907
|
+
};
|
|
908
|
+
var findFirstFocusedOptionIndex = function findFirstFocusedOptionIndex() {
|
|
909
|
+
var selectedIndex = findSelectedOptionIndex();
|
|
910
|
+
return selectedIndex < 0 ? findFirstOptionIndex() : selectedIndex;
|
|
826
911
|
};
|
|
827
|
-
var
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
912
|
+
var searchOptions = function searchOptions(event, _char) {
|
|
913
|
+
searchValue.current = (searchValue.current || '') + _char;
|
|
914
|
+
var optionIndex = -1;
|
|
915
|
+
var matched = false;
|
|
916
|
+
if (ObjectUtils.isNotEmpty(searchValue.current)) {
|
|
917
|
+
if (focusedOptionIndex !== -1) {
|
|
918
|
+
optionIndex = visibleOptions.slice(focusedOptionIndex).findIndex(function (option) {
|
|
919
|
+
return isOptionMatched(option);
|
|
920
|
+
});
|
|
921
|
+
optionIndex = optionIndex === -1 ? visibleOptions.slice(0, focusedOptionIndex).findIndex(function (option) {
|
|
922
|
+
return isOptionMatched(option);
|
|
923
|
+
}) : optionIndex + focusedOptionIndex;
|
|
831
924
|
} else {
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
925
|
+
optionIndex = visibleOptions.findIndex(function (option) {
|
|
926
|
+
return isOptionMatched(option);
|
|
927
|
+
});
|
|
928
|
+
}
|
|
929
|
+
if (optionIndex !== -1) {
|
|
930
|
+
matched = true;
|
|
931
|
+
}
|
|
932
|
+
if (optionIndex === -1 && focusedOptionIndex === -1) {
|
|
933
|
+
optionIndex = findFirstFocusedOptionIndex();
|
|
934
|
+
}
|
|
935
|
+
if (optionIndex !== -1) {
|
|
936
|
+
changeFocusedOptionIndex(event, optionIndex);
|
|
839
937
|
}
|
|
840
938
|
}
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
var findNextOption = function findNextOption(index) {
|
|
844
|
-
if (props.optionGroupLabel) {
|
|
845
|
-
var groupIndex = index === -1 ? 0 : index.group;
|
|
846
|
-
var optionIndex = index === -1 ? -1 : index.option;
|
|
847
|
-
var option = findNextOptionInList(getOptionGroupChildren(visibleOptions[groupIndex]), optionIndex);
|
|
848
|
-
if (option) return option;else if (groupIndex + 1 !== visibleOptions.length) return findNextOption({
|
|
849
|
-
group: groupIndex + 1,
|
|
850
|
-
option: -1
|
|
851
|
-
});else return null;
|
|
939
|
+
if (searchTimeout.current) {
|
|
940
|
+
clearTimeout(searchTimeout.current);
|
|
852
941
|
}
|
|
853
|
-
|
|
942
|
+
searchTimeout.current = setTimeout(function () {
|
|
943
|
+
searchValue.current = '';
|
|
944
|
+
searchTimeout.current = null;
|
|
945
|
+
}, 500);
|
|
946
|
+
return matched;
|
|
947
|
+
};
|
|
948
|
+
var findLastFocusedOptionIndex = function findLastFocusedOptionIndex() {
|
|
949
|
+
var selectedIndex = findSelectedOptionIndex();
|
|
950
|
+
return selectedIndex < 0 ? findLastOptionIndex() : selectedIndex;
|
|
951
|
+
};
|
|
952
|
+
var findFirstOptionIndex = function findFirstOptionIndex() {
|
|
953
|
+
return visibleOptions.findIndex(function (option) {
|
|
954
|
+
return isValidOption(option);
|
|
955
|
+
});
|
|
854
956
|
};
|
|
855
|
-
var
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
}
|
|
860
|
-
var option = list[i];
|
|
861
|
-
return isOptionDisabled(option) ? findNextOptionInList(i) : option;
|
|
957
|
+
var findLastOptionIndex = function findLastOptionIndex() {
|
|
958
|
+
return ObjectUtils.findLastIndex(visibleOptions, function (option) {
|
|
959
|
+
return isValidOption(option);
|
|
960
|
+
});
|
|
862
961
|
};
|
|
863
|
-
var
|
|
864
|
-
|
|
865
|
-
return
|
|
866
|
-
}
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
962
|
+
var findNextOptionIndex = function findNextOptionIndex(index) {
|
|
963
|
+
var matchedOptionIndex = index < visibleOptions.length - 1 ? visibleOptions.slice(index + 1).findIndex(function (option) {
|
|
964
|
+
return isValidOption(option);
|
|
965
|
+
}) : -1;
|
|
966
|
+
return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;
|
|
967
|
+
};
|
|
968
|
+
var findPrevOptionIndex = function findPrevOptionIndex(index) {
|
|
969
|
+
var matchedOptionIndex = index > 0 ? ObjectUtils.findLastIndex(visibleOptions.slice(0, index), function (option) {
|
|
970
|
+
return isValidOption(option);
|
|
971
|
+
}) : -1;
|
|
972
|
+
return matchedOptionIndex > -1 ? matchedOptionIndex : index;
|
|
973
|
+
};
|
|
974
|
+
var changeFocusedOptionIndex = function changeFocusedOptionIndex(event, index) {
|
|
975
|
+
if (focusedOptionIndex !== index) {
|
|
976
|
+
setFocusedOptionIndex(index);
|
|
977
|
+
if (props.selectOnFocus) {
|
|
978
|
+
onOptionSelect(event, visibleOptions[index], false);
|
|
979
|
+
}
|
|
875
980
|
}
|
|
876
|
-
return findPrevOptionInList(visibleOptions, index);
|
|
877
981
|
};
|
|
878
|
-
var
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
982
|
+
var onArrowDownKey = function onArrowDownKey(event) {
|
|
983
|
+
if (!overlayVisibleState) {
|
|
984
|
+
show();
|
|
985
|
+
props.editable && changeFocusedOptionIndex(event, findSelectedOptionIndex());
|
|
986
|
+
} else {
|
|
987
|
+
var optionIndex = focusedOptionIndex !== -1 ? findNextOptionIndex(focusedOptionIndex) : clicked ? findFirstOptionIndex() : findFirstFocusedOptionIndex();
|
|
988
|
+
changeFocusedOptionIndex(event, optionIndex);
|
|
882
989
|
}
|
|
883
|
-
|
|
884
|
-
return isOptionDisabled(option) ? findPrevOption(i) : option;
|
|
990
|
+
event.preventDefault();
|
|
885
991
|
};
|
|
886
|
-
var
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
if (_char === 'Shift' || _char === 'Control' || _char === 'Alt') {
|
|
892
|
-
return;
|
|
893
|
-
}
|
|
894
|
-
if (currentSearchChar.current === _char) searchValue.current = _char;else searchValue.current = searchValue.current ? searchValue.current + _char : _char;
|
|
895
|
-
currentSearchChar.current = _char;
|
|
896
|
-
if (searchValue.current) {
|
|
897
|
-
var searchIndex = getSelectedOptionIndex();
|
|
898
|
-
var newOption = props.optionGroupLabel ? searchOptionInGroup(searchIndex) : searchOption(searchIndex + 1);
|
|
899
|
-
if (newOption) {
|
|
900
|
-
selectItem({
|
|
901
|
-
originalEvent: event,
|
|
902
|
-
option: newOption
|
|
903
|
-
});
|
|
992
|
+
var onArrowUpKey = function onArrowUpKey(event) {
|
|
993
|
+
var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
994
|
+
if (event.altKey && !pressedInInputText) {
|
|
995
|
+
if (focusedOptionIndex !== -1) {
|
|
996
|
+
onOptionSelect(event, visibleOptions[focusedOptionIndex]);
|
|
904
997
|
}
|
|
998
|
+
state.overlayVisible && hide();
|
|
999
|
+
event.preventDefault();
|
|
1000
|
+
} else {
|
|
1001
|
+
var optionIndex = focusedOptionIndex !== -1 ? findPrevOptionIndex(focusedOptionIndex) : clicked ? findLastOptionIndex() : findLastFocusedOptionIndex();
|
|
1002
|
+
changeFocusedOptionIndex(event, optionIndex);
|
|
1003
|
+
!overlayVisibleState && show();
|
|
1004
|
+
event.preventDefault();
|
|
905
1005
|
}
|
|
906
|
-
searchTimeout.current = setTimeout(function () {
|
|
907
|
-
searchValue.current = null;
|
|
908
|
-
}, 250);
|
|
909
1006
|
};
|
|
910
|
-
var
|
|
911
|
-
|
|
912
|
-
|
|
1007
|
+
var onArrowLeftKey = function onArrowLeftKey(event) {
|
|
1008
|
+
var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1009
|
+
pressedInInputText && setFocusedOptionIndex(-1);
|
|
1010
|
+
};
|
|
1011
|
+
var onHomeKey = function onHomeKey(event) {
|
|
1012
|
+
var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1013
|
+
if (pressedInInputText) {
|
|
1014
|
+
event.currentTarget.setSelectionRange(0, 0);
|
|
1015
|
+
setFocusedOptionIndex(-1);
|
|
1016
|
+
} else {
|
|
1017
|
+
changeFocusedOptionIndex(event, findFirstOptionIndex());
|
|
1018
|
+
!overlayVisibleState && show();
|
|
913
1019
|
}
|
|
914
|
-
|
|
1020
|
+
event.preventDefault();
|
|
915
1021
|
};
|
|
916
|
-
var
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
1022
|
+
var onEndKey = function onEndKey(event) {
|
|
1023
|
+
var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1024
|
+
if (pressedInInputText) {
|
|
1025
|
+
var target = event.currentTarget;
|
|
1026
|
+
var len = target.value.length;
|
|
1027
|
+
target.setSelectionRange(len, len);
|
|
1028
|
+
setFocusedOptionIndex(-1);
|
|
1029
|
+
} else {
|
|
1030
|
+
changeFocusedOptionIndex(event, findLastOptionIndex());
|
|
1031
|
+
!overlayVisibleState && show();
|
|
922
1032
|
}
|
|
923
|
-
|
|
1033
|
+
event.preventDefault();
|
|
924
1034
|
};
|
|
925
|
-
var
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
1035
|
+
var onPageUpKey = function onPageUpKey(event) {
|
|
1036
|
+
event.preventDefault();
|
|
1037
|
+
};
|
|
1038
|
+
var onPageDownKey = function onPageDownKey(event) {
|
|
1039
|
+
event.preventDefault();
|
|
1040
|
+
};
|
|
1041
|
+
var onSpaceKey = function onSpaceKey(event) {
|
|
1042
|
+
var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1043
|
+
!pressedInInputText && onEnterKey(event);
|
|
1044
|
+
};
|
|
1045
|
+
var onEnterKey = function onEnterKey(event) {
|
|
1046
|
+
if (!overlayVisibleState) {
|
|
1047
|
+
setFocusedOptionIndex(-1);
|
|
1048
|
+
onArrowDownKey(event);
|
|
1049
|
+
} else {
|
|
1050
|
+
if (focusedOptionIndex !== -1) {
|
|
1051
|
+
onOptionSelect(event, visibleOptions[focusedOptionIndex]);
|
|
936
1052
|
}
|
|
1053
|
+
hide();
|
|
937
1054
|
}
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
1055
|
+
event.preventDefault();
|
|
1056
|
+
};
|
|
1057
|
+
var onEscapeKey = function onEscapeKey(event) {
|
|
1058
|
+
overlayVisibleState && hide();
|
|
1059
|
+
event.preventDefault();
|
|
1060
|
+
};
|
|
1061
|
+
var onTabKey = function onTabKey(event) {
|
|
1062
|
+
var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1063
|
+
if (!pressedInInputText) {
|
|
1064
|
+
if (overlayVisibleState && hasFocusableElements()) {
|
|
1065
|
+
DomHandler.focus($refs.firstHiddenFocusableElementOnOverlay);
|
|
1066
|
+
event.preventDefault();
|
|
1067
|
+
} else {
|
|
1068
|
+
if (focusedOptionIndex !== -1) {
|
|
1069
|
+
onOptionSelect(event, visibleOptions[focusedOptionIndex]);
|
|
943
1070
|
}
|
|
1071
|
+
overlayVisibleState && hide();
|
|
944
1072
|
}
|
|
945
1073
|
}
|
|
946
|
-
return null;
|
|
947
1074
|
};
|
|
948
|
-
var
|
|
949
|
-
var
|
|
950
|
-
if (
|
|
951
|
-
|
|
1075
|
+
var onBackspaceKey = function onBackspaceKey(event) {
|
|
1076
|
+
var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1077
|
+
if (pressedInInputText) {
|
|
1078
|
+
!overlayVisibleState && show();
|
|
952
1079
|
}
|
|
953
|
-
label = label.toLocaleLowerCase(props.filterLocale);
|
|
954
|
-
return label.startsWith(searchValue.current.toLocaleLowerCase(props.filterLocale));
|
|
955
1080
|
};
|
|
956
1081
|
var onEditableInputChange = function onEditableInputChange(event) {
|
|
1082
|
+
!overlayVisibleState && show();
|
|
1083
|
+
var searchIndex = null;
|
|
1084
|
+
if (event.target.value) {
|
|
1085
|
+
searchIndex = visibleOptions.findIndex(function (item) {
|
|
1086
|
+
return item.name.toLocaleLowerCase().startsWith(event.target.value.toLocaleLowerCase());
|
|
1087
|
+
});
|
|
1088
|
+
}
|
|
1089
|
+
setFocusedOptionIndex(searchIndex);
|
|
957
1090
|
if (props.onChange) {
|
|
958
1091
|
props.onChange({
|
|
959
1092
|
originalEvent: event.originalEvent,
|
|
@@ -1083,10 +1216,17 @@ var Dropdown = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
1083
1216
|
return ObjectUtils.equals(props.value, getOptionValue(option), equalityKey());
|
|
1084
1217
|
};
|
|
1085
1218
|
var show = function show() {
|
|
1219
|
+
setFocusedOptionIndex(focusedOptionIndex !== -1 ? focusedOptionIndex : props.autoOptionFocus ? findFirstFocusedOptionIndex() : props.editable ? -1 : findSelectedOptionIndex());
|
|
1086
1220
|
setOverlayVisibleState(true);
|
|
1087
1221
|
};
|
|
1088
1222
|
var hide = function hide() {
|
|
1089
1223
|
setOverlayVisibleState(false);
|
|
1224
|
+
setClicked(false);
|
|
1225
|
+
};
|
|
1226
|
+
var onFocus = function onFocus() {
|
|
1227
|
+
if (props.editable) {
|
|
1228
|
+
DomHandler.focus(inputRef.current);
|
|
1229
|
+
}
|
|
1090
1230
|
};
|
|
1091
1231
|
var onOverlayEnter = function onOverlayEnter(callback) {
|
|
1092
1232
|
ZIndexUtils.set('overlay', overlayRef.current, context && context.autoZIndex || PrimeReact.autoZIndex, context && context.zIndex['overlay'] || PrimeReact.zIndex['overlay']);
|
|
@@ -1139,6 +1279,9 @@ var Dropdown = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
1139
1279
|
var getOptionRenderKey = function getOptionRenderKey(option) {
|
|
1140
1280
|
return props.dataKey ? ObjectUtils.resolveFieldData(option, props.dataKey) : getOptionLabel(option);
|
|
1141
1281
|
};
|
|
1282
|
+
var isOptionGroup = function isOptionGroup(option) {
|
|
1283
|
+
return props.optionGroupLabel && option.optionGroup && option.group;
|
|
1284
|
+
};
|
|
1142
1285
|
var isOptionDisabled = function isOptionDisabled(option) {
|
|
1143
1286
|
if (props.optionDisabled) {
|
|
1144
1287
|
return ObjectUtils.isFunction(props.optionDisabled) ? props.optionDisabled(option) : ObjectUtils.resolveFieldData(option, props.optionDisabled);
|
|
@@ -1287,8 +1430,9 @@ var Dropdown = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
1287
1430
|
maxLength: props.maxLength,
|
|
1288
1431
|
onInput: onEditableInputChange,
|
|
1289
1432
|
onFocus: onEditableInputFocus,
|
|
1433
|
+
onKeyDown: onInputKeyDown,
|
|
1290
1434
|
onBlur: onInputBlur,
|
|
1291
|
-
tabIndex: props.tabIndex
|
|
1435
|
+
tabIndex: !props.disabled ? props.tabIndex : -1,
|
|
1292
1436
|
'aria-haspopup': 'listbox'
|
|
1293
1437
|
}, ariaProps), ptm('input'));
|
|
1294
1438
|
return /*#__PURE__*/React.createElement("input", inputProps);
|
|
@@ -1380,10 +1524,31 @@ var Dropdown = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
1380
1524
|
},
|
|
1381
1525
|
onMouseDown: props.onMouseDown,
|
|
1382
1526
|
onContextMenu: props.onContextMenu,
|
|
1527
|
+
onFocus: onFocus,
|
|
1383
1528
|
'data-p-disabled': props.disabled,
|
|
1384
1529
|
'data-p-focus': focusedState
|
|
1385
1530
|
}, otherProps, ptm('root'));
|
|
1386
|
-
|
|
1531
|
+
var firstHiddenFocusableElementProps = mergeProps({
|
|
1532
|
+
ref: firstHiddenFocusableElementOnOverlay,
|
|
1533
|
+
role: 'presentation',
|
|
1534
|
+
'aria-hidden': 'true',
|
|
1535
|
+
className: 'p-hidden-accessible p-hidden-focusable',
|
|
1536
|
+
tabIndex: '0',
|
|
1537
|
+
onFocus: onFirstHiddenFocus,
|
|
1538
|
+
'data-p-hidden-accessible': true,
|
|
1539
|
+
'data-p-hidden-focusable': true
|
|
1540
|
+
}, ptm('hiddenFirstFocusableEl'));
|
|
1541
|
+
var lastHiddenFocusableElementProps = mergeProps({
|
|
1542
|
+
ref: lastHiddenFocusableElementOnOverlay,
|
|
1543
|
+
role: 'presentation',
|
|
1544
|
+
'aria-hidden': 'true',
|
|
1545
|
+
className: 'p-hidden-accessible p-hidden-focusable',
|
|
1546
|
+
tabIndex: '0',
|
|
1547
|
+
onFocus: onLastHiddenFocus,
|
|
1548
|
+
'data-p-hidden-accessible': true,
|
|
1549
|
+
'data-p-hidden-focusable': true
|
|
1550
|
+
}, ptm('hiddenLastFocusableEl'));
|
|
1551
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", rootProps, keyboardHelper, hiddenSelect, labelElement, clearIcon, dropdownIcon, /*#__PURE__*/React.createElement("span", firstHiddenFocusableElementProps), /*#__PURE__*/React.createElement(DropdownPanel, _extends({
|
|
1387
1552
|
hostName: "Dropdown",
|
|
1388
1553
|
ref: overlayRef,
|
|
1389
1554
|
visibleOptions: visibleOptions,
|
|
@@ -1392,6 +1557,8 @@ var Dropdown = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
1392
1557
|
appendTo: appendTo,
|
|
1393
1558
|
onClick: onPanelClick,
|
|
1394
1559
|
onOptionClick: onOptionClick,
|
|
1560
|
+
focusedOptionIndex: focusedOptionIndex,
|
|
1561
|
+
setFocusedOptionIndex: setFocusedOptionIndex,
|
|
1395
1562
|
filterValue: filterState,
|
|
1396
1563
|
hasFilter: hasFilter,
|
|
1397
1564
|
onFilterClearIconClick: onFilterClearIconClick,
|
|
@@ -1414,7 +1581,7 @@ var Dropdown = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
|
|
|
1414
1581
|
ptm: ptm,
|
|
1415
1582
|
cx: cx,
|
|
1416
1583
|
sx: sx
|
|
1417
|
-
}))), hasTooltip && /*#__PURE__*/React.createElement(Tooltip, _extends({
|
|
1584
|
+
})), /*#__PURE__*/React.createElement("span", lastHiddenFocusableElementProps)), hasTooltip && /*#__PURE__*/React.createElement(Tooltip, _extends({
|
|
1418
1585
|
target: elementRef,
|
|
1419
1586
|
content: props.tooltip
|
|
1420
1587
|
}, props.tooltipOptions, {
|