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.cjs.js
CHANGED
|
@@ -208,10 +208,13 @@ var classes = {
|
|
|
208
208
|
item: function item(_ref7) {
|
|
209
209
|
var selected = _ref7.selected,
|
|
210
210
|
disabled = _ref7.disabled,
|
|
211
|
-
label = _ref7.label
|
|
211
|
+
label = _ref7.label,
|
|
212
|
+
index = _ref7.index,
|
|
213
|
+
focusedOptionIndex = _ref7.focusedOptionIndex;
|
|
212
214
|
return utils.classNames('p-dropdown-item', {
|
|
213
215
|
'p-highlight': selected,
|
|
214
216
|
'p-disabled': disabled,
|
|
217
|
+
'p-focus': index === focusedOptionIndex,
|
|
215
218
|
'p-dropdown-item-empty': !label || label.length === 0
|
|
216
219
|
});
|
|
217
220
|
},
|
|
@@ -264,6 +267,8 @@ var DropdownBase = componentbase.ComponentBase.extend({
|
|
|
264
267
|
inputId: null,
|
|
265
268
|
inputRef: null,
|
|
266
269
|
itemTemplate: null,
|
|
270
|
+
loading: false,
|
|
271
|
+
loadingIcon: null,
|
|
267
272
|
maxLength: null,
|
|
268
273
|
name: null,
|
|
269
274
|
onBlur: null,
|
|
@@ -276,6 +281,8 @@ var DropdownBase = componentbase.ComponentBase.extend({
|
|
|
276
281
|
onShow: null,
|
|
277
282
|
optionDisabled: null,
|
|
278
283
|
optionGroupChildren: 'items',
|
|
284
|
+
selectOnFocus: false,
|
|
285
|
+
autoOptionFocus: false,
|
|
279
286
|
optionGroupLabel: null,
|
|
280
287
|
optionGroupTemplate: null,
|
|
281
288
|
optionLabel: null,
|
|
@@ -314,7 +321,9 @@ var DropdownItem = /*#__PURE__*/React__namespace.memo(function (props) {
|
|
|
314
321
|
selected = props.selected,
|
|
315
322
|
disabled = props.disabled,
|
|
316
323
|
option = props.option,
|
|
317
|
-
label = props.label
|
|
324
|
+
label = props.label,
|
|
325
|
+
index = props.index,
|
|
326
|
+
focusedOptionIndex = props.focusedOptionIndex;
|
|
318
327
|
var getPTOptions = function getPTOptions(key) {
|
|
319
328
|
return ptm(key, {
|
|
320
329
|
context: {
|
|
@@ -323,7 +332,7 @@ var DropdownItem = /*#__PURE__*/React__namespace.memo(function (props) {
|
|
|
323
332
|
}
|
|
324
333
|
});
|
|
325
334
|
};
|
|
326
|
-
var _onClick = function onClick(event) {
|
|
335
|
+
var _onClick = function onClick(event, i) {
|
|
327
336
|
if (props.onClick) {
|
|
328
337
|
props.onClick({
|
|
329
338
|
originalEvent: event,
|
|
@@ -338,7 +347,9 @@ var DropdownItem = /*#__PURE__*/React__namespace.memo(function (props) {
|
|
|
338
347
|
className: utils.classNames(option.className, cx('item', {
|
|
339
348
|
selected: selected,
|
|
340
349
|
disabled: disabled,
|
|
341
|
-
label: label
|
|
350
|
+
label: label,
|
|
351
|
+
index: index,
|
|
352
|
+
focusedOptionIndex: focusedOptionIndex
|
|
342
353
|
})),
|
|
343
354
|
style: props.style,
|
|
344
355
|
onClick: function onClick(e) {
|
|
@@ -347,6 +358,7 @@ var DropdownItem = /*#__PURE__*/React__namespace.memo(function (props) {
|
|
|
347
358
|
'aria-label': label,
|
|
348
359
|
'aria-selected': selected,
|
|
349
360
|
'data-p-highlight': selected,
|
|
361
|
+
'data-p-focused': focusedOptionIndex === index,
|
|
350
362
|
'data-p-disabled': disabled
|
|
351
363
|
}, getPTOptions('item'));
|
|
352
364
|
return /*#__PURE__*/React__namespace.createElement("li", itemProps, content, /*#__PURE__*/React__namespace.createElement(ripple.Ripple, null));
|
|
@@ -418,6 +430,8 @@ var DropdownPanel = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__name
|
|
|
418
430
|
var disabled = props.isOptionDisabled(option);
|
|
419
431
|
return /*#__PURE__*/React__namespace.createElement(DropdownItem, {
|
|
420
432
|
key: optionKey,
|
|
433
|
+
index: j,
|
|
434
|
+
focusedOptionIndex: props.focusedOptionIndex,
|
|
421
435
|
label: optionLabel,
|
|
422
436
|
option: option,
|
|
423
437
|
style: style,
|
|
@@ -465,6 +479,8 @@ var DropdownPanel = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__name
|
|
|
465
479
|
return /*#__PURE__*/React__namespace.createElement(DropdownItem, {
|
|
466
480
|
key: optionKey,
|
|
467
481
|
label: optionLabel,
|
|
482
|
+
index: index,
|
|
483
|
+
focusedOptionIndex: props.focusedOptionIndex,
|
|
468
484
|
option: option,
|
|
469
485
|
style: style,
|
|
470
486
|
template: props.itemTemplate,
|
|
@@ -657,20 +673,30 @@ var Dropdown = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
657
673
|
setFilterState = _React$useState2[1];
|
|
658
674
|
var _React$useState3 = React__namespace.useState(false),
|
|
659
675
|
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
660
|
-
|
|
661
|
-
|
|
676
|
+
clicked = _React$useState4[0],
|
|
677
|
+
setClicked = _React$useState4[1];
|
|
662
678
|
var _React$useState5 = React__namespace.useState(false),
|
|
663
679
|
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
664
|
-
|
|
665
|
-
|
|
680
|
+
focusedState = _React$useState6[0],
|
|
681
|
+
setFocusedState = _React$useState6[1];
|
|
682
|
+
var _React$useState7 = React__namespace.useState(null),
|
|
683
|
+
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
|
684
|
+
focusedOptionIndex = _React$useState8[0],
|
|
685
|
+
setFocusedOptionIndex = _React$useState8[1];
|
|
686
|
+
var _React$useState9 = React__namespace.useState(false),
|
|
687
|
+
_React$useState10 = _slicedToArray(_React$useState9, 2),
|
|
688
|
+
overlayVisibleState = _React$useState10[0],
|
|
689
|
+
setOverlayVisibleState = _React$useState10[1];
|
|
666
690
|
var elementRef = React__namespace.useRef(null);
|
|
667
691
|
var overlayRef = React__namespace.useRef(null);
|
|
692
|
+
var firstHiddenFocusableElementOnOverlay = React__namespace.useRef(null);
|
|
693
|
+
var lastHiddenFocusableElementOnOverlay = React__namespace.useRef(null);
|
|
668
694
|
var inputRef = React__namespace.useRef(props.inputRef);
|
|
669
695
|
var focusInputRef = React__namespace.useRef(props.focusInputRef);
|
|
670
696
|
var virtualScrollerRef = React__namespace.useRef(null);
|
|
671
697
|
var searchTimeout = React__namespace.useRef(null);
|
|
672
698
|
var searchValue = React__namespace.useRef(null);
|
|
673
|
-
|
|
699
|
+
React__namespace.useRef(null);
|
|
674
700
|
var isLazy = props.virtualScrollerOptions && props.virtualScrollerOptions.lazy;
|
|
675
701
|
var hasFilter = utils.ObjectUtils.isNotEmpty(filterState);
|
|
676
702
|
var appendTo = props.appendTo || context && context.appendTo || PrimeReact__default["default"].appendTo;
|
|
@@ -734,6 +760,14 @@ var Dropdown = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
734
760
|
return props.options;
|
|
735
761
|
}
|
|
736
762
|
};
|
|
763
|
+
var onFirstHiddenFocus = function onFirstHiddenFocus(event) {
|
|
764
|
+
var focusableEl = event.relatedTarget === focusInputRef.current ? utils.DomHandler.getFirstFocusableElement(overlayRef.current, ':not([data-p-hidden-focusable="true"])') : focusInputRef.current;
|
|
765
|
+
utils.DomHandler.focus(focusableEl);
|
|
766
|
+
};
|
|
767
|
+
var onLastHiddenFocus = function onLastHiddenFocus(event) {
|
|
768
|
+
var focusableEl = event.relatedTarget === focusInputRef.current ? utils.DomHandler.getLastFocusableElement(overlayRef.current, ':not([data-p-hidden-focusable="true"])') : focusInputRef.current;
|
|
769
|
+
utils.DomHandler.focus(focusableEl);
|
|
770
|
+
};
|
|
737
771
|
var isClearClicked = function isClearClicked(event) {
|
|
738
772
|
return utils.DomHandler.isAttributeEquals(event.target, 'data-pc-section', 'clearicon') || utils.DomHandler.isAttributeEquals(event.target.parentElement || event.target, 'data-pc-section', 'filterclearicon');
|
|
739
773
|
};
|
|
@@ -753,6 +787,7 @@ var Dropdown = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
753
787
|
utils.DomHandler.focus(focusInputRef.current);
|
|
754
788
|
overlayVisibleState ? hide() : show();
|
|
755
789
|
}
|
|
790
|
+
setClicked(true);
|
|
756
791
|
};
|
|
757
792
|
var onInputFocus = function onInputFocus(event) {
|
|
758
793
|
if (props.showOnFocus && !overlayVisibleState) {
|
|
@@ -784,6 +819,15 @@ var Dropdown = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
784
819
|
}, 200);
|
|
785
820
|
}
|
|
786
821
|
};
|
|
822
|
+
var onOptionSelect = function onOptionSelect(event, option) {
|
|
823
|
+
var isHide = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
824
|
+
var value = getOptionValue(option);
|
|
825
|
+
selectItem({
|
|
826
|
+
originalEvent: event,
|
|
827
|
+
option: value
|
|
828
|
+
});
|
|
829
|
+
isHide && hide();
|
|
830
|
+
};
|
|
787
831
|
var onPanelClick = function onPanelClick(event) {
|
|
788
832
|
overlayservice.OverlayService.emit('overlay-click', {
|
|
789
833
|
originalEvent: event,
|
|
@@ -791,196 +835,285 @@ var Dropdown = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
791
835
|
});
|
|
792
836
|
};
|
|
793
837
|
var onInputKeyDown = function onInputKeyDown(event) {
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
838
|
+
if (props.disabled || utils.DomHandler.isAndroid()) {
|
|
839
|
+
event.preventDefault();
|
|
840
|
+
return;
|
|
841
|
+
}
|
|
842
|
+
var metaKey = event.metaKey || event.ctrlKey;
|
|
843
|
+
switch (event.code) {
|
|
844
|
+
case 'ArrowDown':
|
|
845
|
+
onArrowDownKey(event);
|
|
798
846
|
break;
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
case 38:
|
|
802
|
-
onUpKey(event);
|
|
847
|
+
case 'ArrowUp':
|
|
848
|
+
onArrowUpKey(event);
|
|
803
849
|
break;
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
case 13:
|
|
808
|
-
overlayVisibleState ? hide() : show();
|
|
809
|
-
event.preventDefault();
|
|
850
|
+
case 'ArrowLeft':
|
|
851
|
+
case 'ArrowRight':
|
|
852
|
+
onArrowLeftKey(event, props.editable);
|
|
810
853
|
break;
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
case
|
|
815
|
-
|
|
854
|
+
case 'Home':
|
|
855
|
+
onHomeKey(event);
|
|
856
|
+
break;
|
|
857
|
+
case 'End':
|
|
858
|
+
onEndKey(event);
|
|
859
|
+
break;
|
|
860
|
+
case 'PageDown':
|
|
861
|
+
onPageDownKey(event);
|
|
862
|
+
break;
|
|
863
|
+
case 'PageUp':
|
|
864
|
+
onPageUpKey(event);
|
|
865
|
+
break;
|
|
866
|
+
case 'Space':
|
|
867
|
+
onSpaceKey(event, props.editable);
|
|
868
|
+
break;
|
|
869
|
+
case 'NumpadEnter':
|
|
870
|
+
case 'Enter':
|
|
871
|
+
onEnterKey(event);
|
|
872
|
+
break;
|
|
873
|
+
case 'Escape':
|
|
874
|
+
onEscapeKey(event);
|
|
875
|
+
break;
|
|
876
|
+
case 'Tab':
|
|
877
|
+
onTabKey(event);
|
|
878
|
+
break;
|
|
879
|
+
case 'Backspace':
|
|
880
|
+
onBackspaceKey(event, props.editable);
|
|
881
|
+
break;
|
|
882
|
+
case 'ShiftLeft':
|
|
883
|
+
case 'ShiftRight':
|
|
884
|
+
//NOOP
|
|
816
885
|
break;
|
|
817
886
|
default:
|
|
818
|
-
|
|
887
|
+
if (!metaKey && utils.ObjectUtils.isPrintableCharacter(event.key)) {
|
|
888
|
+
!overlayVisibleState && show();
|
|
889
|
+
!props.editable && searchOptions(event, event.key);
|
|
890
|
+
}
|
|
819
891
|
break;
|
|
820
892
|
}
|
|
893
|
+
setClicked(false);
|
|
821
894
|
};
|
|
822
895
|
var onFilterInputKeyDown = function onFilterInputKeyDown(event) {
|
|
823
|
-
switch (event.
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
onDownKey(event);
|
|
896
|
+
switch (event.code) {
|
|
897
|
+
case 'ArrowDown':
|
|
898
|
+
onArrowDownKey(event);
|
|
827
899
|
break;
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
case 38:
|
|
831
|
-
onUpKey(event);
|
|
900
|
+
case 'ArrowUp':
|
|
901
|
+
onArrowUpKey(event);
|
|
832
902
|
break;
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
903
|
+
case 'ArrowLeft':
|
|
904
|
+
case 'ArrowRight':
|
|
905
|
+
onArrowLeftKey(event, true);
|
|
906
|
+
break;
|
|
907
|
+
case 'Escape':
|
|
908
|
+
case 'Enter':
|
|
909
|
+
onEnterKey(event);
|
|
838
910
|
event.preventDefault();
|
|
839
911
|
break;
|
|
840
912
|
}
|
|
841
913
|
};
|
|
842
|
-
var
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
914
|
+
var hasFocusableElements = function hasFocusableElements() {
|
|
915
|
+
return utils.DomHandler.getFocusableElements(overlayRef.current, ':not([data-p-hidden-focusable="true"])').length > 0;
|
|
916
|
+
};
|
|
917
|
+
var isOptionMatched = function isOptionMatched(option) {
|
|
918
|
+
var _getOptionLabel;
|
|
919
|
+
return isValidOption(option) && ((_getOptionLabel = getOptionLabel(option)) === null || _getOptionLabel === void 0 ? void 0 : _getOptionLabel.toLocaleLowerCase(props.filterLocale).startsWith(searchValue.current.toLocaleLowerCase(props.filterLocale)));
|
|
920
|
+
};
|
|
921
|
+
var isValidOption = function isValidOption(option) {
|
|
922
|
+
return utils.ObjectUtils.isNotEmpty(option) && !(isOptionDisabled(option) || isOptionGroup(option));
|
|
923
|
+
};
|
|
924
|
+
var hasSelectedOption = function hasSelectedOption() {
|
|
925
|
+
return utils.ObjectUtils.isNotEmpty(props.value);
|
|
926
|
+
};
|
|
927
|
+
var isValidSelectedOption = function isValidSelectedOption(option) {
|
|
928
|
+
return isValidOption(option) && isSelected(option);
|
|
929
|
+
};
|
|
930
|
+
var findSelectedOptionIndex = function findSelectedOptionIndex() {
|
|
931
|
+
return hasSelectedOption ? visibleOptions.findIndex(function (option) {
|
|
932
|
+
return isValidSelectedOption(option);
|
|
933
|
+
}) : -1;
|
|
934
|
+
};
|
|
935
|
+
var findFirstFocusedOptionIndex = function findFirstFocusedOptionIndex() {
|
|
936
|
+
var selectedIndex = findSelectedOptionIndex();
|
|
937
|
+
return selectedIndex < 0 ? findFirstOptionIndex() : selectedIndex;
|
|
853
938
|
};
|
|
854
|
-
var
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
939
|
+
var searchOptions = function searchOptions(event, _char) {
|
|
940
|
+
searchValue.current = (searchValue.current || '') + _char;
|
|
941
|
+
var optionIndex = -1;
|
|
942
|
+
var matched = false;
|
|
943
|
+
if (utils.ObjectUtils.isNotEmpty(searchValue.current)) {
|
|
944
|
+
if (focusedOptionIndex !== -1) {
|
|
945
|
+
optionIndex = visibleOptions.slice(focusedOptionIndex).findIndex(function (option) {
|
|
946
|
+
return isOptionMatched(option);
|
|
947
|
+
});
|
|
948
|
+
optionIndex = optionIndex === -1 ? visibleOptions.slice(0, focusedOptionIndex).findIndex(function (option) {
|
|
949
|
+
return isOptionMatched(option);
|
|
950
|
+
}) : optionIndex + focusedOptionIndex;
|
|
858
951
|
} else {
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
952
|
+
optionIndex = visibleOptions.findIndex(function (option) {
|
|
953
|
+
return isOptionMatched(option);
|
|
954
|
+
});
|
|
955
|
+
}
|
|
956
|
+
if (optionIndex !== -1) {
|
|
957
|
+
matched = true;
|
|
958
|
+
}
|
|
959
|
+
if (optionIndex === -1 && focusedOptionIndex === -1) {
|
|
960
|
+
optionIndex = findFirstFocusedOptionIndex();
|
|
961
|
+
}
|
|
962
|
+
if (optionIndex !== -1) {
|
|
963
|
+
changeFocusedOptionIndex(event, optionIndex);
|
|
866
964
|
}
|
|
867
965
|
}
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
var findNextOption = function findNextOption(index) {
|
|
871
|
-
if (props.optionGroupLabel) {
|
|
872
|
-
var groupIndex = index === -1 ? 0 : index.group;
|
|
873
|
-
var optionIndex = index === -1 ? -1 : index.option;
|
|
874
|
-
var option = findNextOptionInList(getOptionGroupChildren(visibleOptions[groupIndex]), optionIndex);
|
|
875
|
-
if (option) return option;else if (groupIndex + 1 !== visibleOptions.length) return findNextOption({
|
|
876
|
-
group: groupIndex + 1,
|
|
877
|
-
option: -1
|
|
878
|
-
});else return null;
|
|
966
|
+
if (searchTimeout.current) {
|
|
967
|
+
clearTimeout(searchTimeout.current);
|
|
879
968
|
}
|
|
880
|
-
|
|
969
|
+
searchTimeout.current = setTimeout(function () {
|
|
970
|
+
searchValue.current = '';
|
|
971
|
+
searchTimeout.current = null;
|
|
972
|
+
}, 500);
|
|
973
|
+
return matched;
|
|
974
|
+
};
|
|
975
|
+
var findLastFocusedOptionIndex = function findLastFocusedOptionIndex() {
|
|
976
|
+
var selectedIndex = findSelectedOptionIndex();
|
|
977
|
+
return selectedIndex < 0 ? findLastOptionIndex() : selectedIndex;
|
|
978
|
+
};
|
|
979
|
+
var findFirstOptionIndex = function findFirstOptionIndex() {
|
|
980
|
+
return visibleOptions.findIndex(function (option) {
|
|
981
|
+
return isValidOption(option);
|
|
982
|
+
});
|
|
881
983
|
};
|
|
882
|
-
var
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
}
|
|
887
|
-
var option = list[i];
|
|
888
|
-
return isOptionDisabled(option) ? findNextOptionInList(i) : option;
|
|
984
|
+
var findLastOptionIndex = function findLastOptionIndex() {
|
|
985
|
+
return utils.ObjectUtils.findLastIndex(visibleOptions, function (option) {
|
|
986
|
+
return isValidOption(option);
|
|
987
|
+
});
|
|
889
988
|
};
|
|
890
|
-
var
|
|
891
|
-
|
|
892
|
-
return
|
|
893
|
-
}
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
989
|
+
var findNextOptionIndex = function findNextOptionIndex(index) {
|
|
990
|
+
var matchedOptionIndex = index < visibleOptions.length - 1 ? visibleOptions.slice(index + 1).findIndex(function (option) {
|
|
991
|
+
return isValidOption(option);
|
|
992
|
+
}) : -1;
|
|
993
|
+
return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;
|
|
994
|
+
};
|
|
995
|
+
var findPrevOptionIndex = function findPrevOptionIndex(index) {
|
|
996
|
+
var matchedOptionIndex = index > 0 ? utils.ObjectUtils.findLastIndex(visibleOptions.slice(0, index), function (option) {
|
|
997
|
+
return isValidOption(option);
|
|
998
|
+
}) : -1;
|
|
999
|
+
return matchedOptionIndex > -1 ? matchedOptionIndex : index;
|
|
1000
|
+
};
|
|
1001
|
+
var changeFocusedOptionIndex = function changeFocusedOptionIndex(event, index) {
|
|
1002
|
+
if (focusedOptionIndex !== index) {
|
|
1003
|
+
setFocusedOptionIndex(index);
|
|
1004
|
+
if (props.selectOnFocus) {
|
|
1005
|
+
onOptionSelect(event, visibleOptions[index], false);
|
|
1006
|
+
}
|
|
902
1007
|
}
|
|
903
|
-
return findPrevOptionInList(visibleOptions, index);
|
|
904
1008
|
};
|
|
905
|
-
var
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
1009
|
+
var onArrowDownKey = function onArrowDownKey(event) {
|
|
1010
|
+
if (!overlayVisibleState) {
|
|
1011
|
+
show();
|
|
1012
|
+
props.editable && changeFocusedOptionIndex(event, findSelectedOptionIndex());
|
|
1013
|
+
} else {
|
|
1014
|
+
var optionIndex = focusedOptionIndex !== -1 ? findNextOptionIndex(focusedOptionIndex) : clicked ? findFirstOptionIndex() : findFirstFocusedOptionIndex();
|
|
1015
|
+
changeFocusedOptionIndex(event, optionIndex);
|
|
909
1016
|
}
|
|
910
|
-
|
|
911
|
-
return isOptionDisabled(option) ? findPrevOption(i) : option;
|
|
1017
|
+
event.preventDefault();
|
|
912
1018
|
};
|
|
913
|
-
var
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
if (_char === 'Shift' || _char === 'Control' || _char === 'Alt') {
|
|
919
|
-
return;
|
|
920
|
-
}
|
|
921
|
-
if (currentSearchChar.current === _char) searchValue.current = _char;else searchValue.current = searchValue.current ? searchValue.current + _char : _char;
|
|
922
|
-
currentSearchChar.current = _char;
|
|
923
|
-
if (searchValue.current) {
|
|
924
|
-
var searchIndex = getSelectedOptionIndex();
|
|
925
|
-
var newOption = props.optionGroupLabel ? searchOptionInGroup(searchIndex) : searchOption(searchIndex + 1);
|
|
926
|
-
if (newOption) {
|
|
927
|
-
selectItem({
|
|
928
|
-
originalEvent: event,
|
|
929
|
-
option: newOption
|
|
930
|
-
});
|
|
1019
|
+
var onArrowUpKey = function onArrowUpKey(event) {
|
|
1020
|
+
var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1021
|
+
if (event.altKey && !pressedInInputText) {
|
|
1022
|
+
if (focusedOptionIndex !== -1) {
|
|
1023
|
+
onOptionSelect(event, visibleOptions[focusedOptionIndex]);
|
|
931
1024
|
}
|
|
1025
|
+
state.overlayVisible && hide();
|
|
1026
|
+
event.preventDefault();
|
|
1027
|
+
} else {
|
|
1028
|
+
var optionIndex = focusedOptionIndex !== -1 ? findPrevOptionIndex(focusedOptionIndex) : clicked ? findLastOptionIndex() : findLastFocusedOptionIndex();
|
|
1029
|
+
changeFocusedOptionIndex(event, optionIndex);
|
|
1030
|
+
!overlayVisibleState && show();
|
|
1031
|
+
event.preventDefault();
|
|
932
1032
|
}
|
|
933
|
-
searchTimeout.current = setTimeout(function () {
|
|
934
|
-
searchValue.current = null;
|
|
935
|
-
}, 250);
|
|
936
1033
|
};
|
|
937
|
-
var
|
|
938
|
-
|
|
939
|
-
|
|
1034
|
+
var onArrowLeftKey = function onArrowLeftKey(event) {
|
|
1035
|
+
var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1036
|
+
pressedInInputText && setFocusedOptionIndex(-1);
|
|
1037
|
+
};
|
|
1038
|
+
var onHomeKey = function onHomeKey(event) {
|
|
1039
|
+
var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1040
|
+
if (pressedInInputText) {
|
|
1041
|
+
event.currentTarget.setSelectionRange(0, 0);
|
|
1042
|
+
setFocusedOptionIndex(-1);
|
|
1043
|
+
} else {
|
|
1044
|
+
changeFocusedOptionIndex(event, findFirstOptionIndex());
|
|
1045
|
+
!overlayVisibleState && show();
|
|
940
1046
|
}
|
|
941
|
-
|
|
1047
|
+
event.preventDefault();
|
|
942
1048
|
};
|
|
943
|
-
var
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
1049
|
+
var onEndKey = function onEndKey(event) {
|
|
1050
|
+
var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1051
|
+
if (pressedInInputText) {
|
|
1052
|
+
var target = event.currentTarget;
|
|
1053
|
+
var len = target.value.length;
|
|
1054
|
+
target.setSelectionRange(len, len);
|
|
1055
|
+
setFocusedOptionIndex(-1);
|
|
1056
|
+
} else {
|
|
1057
|
+
changeFocusedOptionIndex(event, findLastOptionIndex());
|
|
1058
|
+
!overlayVisibleState && show();
|
|
949
1059
|
}
|
|
950
|
-
|
|
1060
|
+
event.preventDefault();
|
|
951
1061
|
};
|
|
952
|
-
var
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
1062
|
+
var onPageUpKey = function onPageUpKey(event) {
|
|
1063
|
+
event.preventDefault();
|
|
1064
|
+
};
|
|
1065
|
+
var onPageDownKey = function onPageDownKey(event) {
|
|
1066
|
+
event.preventDefault();
|
|
1067
|
+
};
|
|
1068
|
+
var onSpaceKey = function onSpaceKey(event) {
|
|
1069
|
+
var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1070
|
+
!pressedInInputText && onEnterKey(event);
|
|
1071
|
+
};
|
|
1072
|
+
var onEnterKey = function onEnterKey(event) {
|
|
1073
|
+
if (!overlayVisibleState) {
|
|
1074
|
+
setFocusedOptionIndex(-1);
|
|
1075
|
+
onArrowDownKey(event);
|
|
1076
|
+
} else {
|
|
1077
|
+
if (focusedOptionIndex !== -1) {
|
|
1078
|
+
onOptionSelect(event, visibleOptions[focusedOptionIndex]);
|
|
963
1079
|
}
|
|
1080
|
+
hide();
|
|
964
1081
|
}
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
1082
|
+
event.preventDefault();
|
|
1083
|
+
};
|
|
1084
|
+
var onEscapeKey = function onEscapeKey(event) {
|
|
1085
|
+
overlayVisibleState && hide();
|
|
1086
|
+
event.preventDefault();
|
|
1087
|
+
};
|
|
1088
|
+
var onTabKey = function onTabKey(event) {
|
|
1089
|
+
var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1090
|
+
if (!pressedInInputText) {
|
|
1091
|
+
if (overlayVisibleState && hasFocusableElements()) {
|
|
1092
|
+
utils.DomHandler.focus($refs.firstHiddenFocusableElementOnOverlay);
|
|
1093
|
+
event.preventDefault();
|
|
1094
|
+
} else {
|
|
1095
|
+
if (focusedOptionIndex !== -1) {
|
|
1096
|
+
onOptionSelect(event, visibleOptions[focusedOptionIndex]);
|
|
970
1097
|
}
|
|
1098
|
+
overlayVisibleState && hide();
|
|
971
1099
|
}
|
|
972
1100
|
}
|
|
973
|
-
return null;
|
|
974
1101
|
};
|
|
975
|
-
var
|
|
976
|
-
var
|
|
977
|
-
if (
|
|
978
|
-
|
|
1102
|
+
var onBackspaceKey = function onBackspaceKey(event) {
|
|
1103
|
+
var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1104
|
+
if (pressedInInputText) {
|
|
1105
|
+
!overlayVisibleState && show();
|
|
979
1106
|
}
|
|
980
|
-
label = label.toLocaleLowerCase(props.filterLocale);
|
|
981
|
-
return label.startsWith(searchValue.current.toLocaleLowerCase(props.filterLocale));
|
|
982
1107
|
};
|
|
983
1108
|
var onEditableInputChange = function onEditableInputChange(event) {
|
|
1109
|
+
!overlayVisibleState && show();
|
|
1110
|
+
var searchIndex = null;
|
|
1111
|
+
if (event.target.value) {
|
|
1112
|
+
searchIndex = visibleOptions.findIndex(function (item) {
|
|
1113
|
+
return item.name.toLocaleLowerCase().startsWith(event.target.value.toLocaleLowerCase());
|
|
1114
|
+
});
|
|
1115
|
+
}
|
|
1116
|
+
setFocusedOptionIndex(searchIndex);
|
|
984
1117
|
if (props.onChange) {
|
|
985
1118
|
props.onChange({
|
|
986
1119
|
originalEvent: event.originalEvent,
|
|
@@ -1110,10 +1243,17 @@ var Dropdown = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
1110
1243
|
return utils.ObjectUtils.equals(props.value, getOptionValue(option), equalityKey());
|
|
1111
1244
|
};
|
|
1112
1245
|
var show = function show() {
|
|
1246
|
+
setFocusedOptionIndex(focusedOptionIndex !== -1 ? focusedOptionIndex : props.autoOptionFocus ? findFirstFocusedOptionIndex() : props.editable ? -1 : findSelectedOptionIndex());
|
|
1113
1247
|
setOverlayVisibleState(true);
|
|
1114
1248
|
};
|
|
1115
1249
|
var hide = function hide() {
|
|
1116
1250
|
setOverlayVisibleState(false);
|
|
1251
|
+
setClicked(false);
|
|
1252
|
+
};
|
|
1253
|
+
var onFocus = function onFocus() {
|
|
1254
|
+
if (props.editable) {
|
|
1255
|
+
utils.DomHandler.focus(inputRef.current);
|
|
1256
|
+
}
|
|
1117
1257
|
};
|
|
1118
1258
|
var onOverlayEnter = function onOverlayEnter(callback) {
|
|
1119
1259
|
utils.ZIndexUtils.set('overlay', overlayRef.current, context && context.autoZIndex || PrimeReact__default["default"].autoZIndex, context && context.zIndex['overlay'] || PrimeReact__default["default"].zIndex['overlay']);
|
|
@@ -1166,6 +1306,9 @@ var Dropdown = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
1166
1306
|
var getOptionRenderKey = function getOptionRenderKey(option) {
|
|
1167
1307
|
return props.dataKey ? utils.ObjectUtils.resolveFieldData(option, props.dataKey) : getOptionLabel(option);
|
|
1168
1308
|
};
|
|
1309
|
+
var isOptionGroup = function isOptionGroup(option) {
|
|
1310
|
+
return props.optionGroupLabel && option.optionGroup && option.group;
|
|
1311
|
+
};
|
|
1169
1312
|
var isOptionDisabled = function isOptionDisabled(option) {
|
|
1170
1313
|
if (props.optionDisabled) {
|
|
1171
1314
|
return utils.ObjectUtils.isFunction(props.optionDisabled) ? props.optionDisabled(option) : utils.ObjectUtils.resolveFieldData(option, props.optionDisabled);
|
|
@@ -1314,8 +1457,9 @@ var Dropdown = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
1314
1457
|
maxLength: props.maxLength,
|
|
1315
1458
|
onInput: onEditableInputChange,
|
|
1316
1459
|
onFocus: onEditableInputFocus,
|
|
1460
|
+
onKeyDown: onInputKeyDown,
|
|
1317
1461
|
onBlur: onInputBlur,
|
|
1318
|
-
tabIndex: props.tabIndex
|
|
1462
|
+
tabIndex: !props.disabled ? props.tabIndex : -1,
|
|
1319
1463
|
'aria-haspopup': 'listbox'
|
|
1320
1464
|
}, ariaProps), ptm('input'));
|
|
1321
1465
|
return /*#__PURE__*/React__namespace.createElement("input", inputProps);
|
|
@@ -1407,10 +1551,31 @@ var Dropdown = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
1407
1551
|
},
|
|
1408
1552
|
onMouseDown: props.onMouseDown,
|
|
1409
1553
|
onContextMenu: props.onContextMenu,
|
|
1554
|
+
onFocus: onFocus,
|
|
1410
1555
|
'data-p-disabled': props.disabled,
|
|
1411
1556
|
'data-p-focus': focusedState
|
|
1412
1557
|
}, otherProps, ptm('root'));
|
|
1413
|
-
|
|
1558
|
+
var firstHiddenFocusableElementProps = mergeProps({
|
|
1559
|
+
ref: firstHiddenFocusableElementOnOverlay,
|
|
1560
|
+
role: 'presentation',
|
|
1561
|
+
'aria-hidden': 'true',
|
|
1562
|
+
className: 'p-hidden-accessible p-hidden-focusable',
|
|
1563
|
+
tabIndex: '0',
|
|
1564
|
+
onFocus: onFirstHiddenFocus,
|
|
1565
|
+
'data-p-hidden-accessible': true,
|
|
1566
|
+
'data-p-hidden-focusable': true
|
|
1567
|
+
}, ptm('hiddenFirstFocusableEl'));
|
|
1568
|
+
var lastHiddenFocusableElementProps = mergeProps({
|
|
1569
|
+
ref: lastHiddenFocusableElementOnOverlay,
|
|
1570
|
+
role: 'presentation',
|
|
1571
|
+
'aria-hidden': 'true',
|
|
1572
|
+
className: 'p-hidden-accessible p-hidden-focusable',
|
|
1573
|
+
tabIndex: '0',
|
|
1574
|
+
onFocus: onLastHiddenFocus,
|
|
1575
|
+
'data-p-hidden-accessible': true,
|
|
1576
|
+
'data-p-hidden-focusable': true
|
|
1577
|
+
}, ptm('hiddenLastFocusableEl'));
|
|
1578
|
+
return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("div", rootProps, keyboardHelper, hiddenSelect, labelElement, clearIcon, dropdownIcon, /*#__PURE__*/React__namespace.createElement("span", firstHiddenFocusableElementProps), /*#__PURE__*/React__namespace.createElement(DropdownPanel, _extends({
|
|
1414
1579
|
hostName: "Dropdown",
|
|
1415
1580
|
ref: overlayRef,
|
|
1416
1581
|
visibleOptions: visibleOptions,
|
|
@@ -1419,6 +1584,8 @@ var Dropdown = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
1419
1584
|
appendTo: appendTo,
|
|
1420
1585
|
onClick: onPanelClick,
|
|
1421
1586
|
onOptionClick: onOptionClick,
|
|
1587
|
+
focusedOptionIndex: focusedOptionIndex,
|
|
1588
|
+
setFocusedOptionIndex: setFocusedOptionIndex,
|
|
1422
1589
|
filterValue: filterState,
|
|
1423
1590
|
hasFilter: hasFilter,
|
|
1424
1591
|
onFilterClearIconClick: onFilterClearIconClick,
|
|
@@ -1441,7 +1608,7 @@ var Dropdown = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace
|
|
|
1441
1608
|
ptm: ptm,
|
|
1442
1609
|
cx: cx,
|
|
1443
1610
|
sx: sx
|
|
1444
|
-
}))), hasTooltip && /*#__PURE__*/React__namespace.createElement(tooltip.Tooltip, _extends({
|
|
1611
|
+
})), /*#__PURE__*/React__namespace.createElement("span", lastHiddenFocusableElementProps)), hasTooltip && /*#__PURE__*/React__namespace.createElement(tooltip.Tooltip, _extends({
|
|
1445
1612
|
target: elementRef,
|
|
1446
1613
|
content: props.tooltip
|
|
1447
1614
|
}, props.tooltipOptions, {
|