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.
Files changed (276) hide show
  1. package/accordion/accordion.cjs.js +1 -1
  2. package/accordion/accordion.cjs.min.js +1 -1
  3. package/accordion/accordion.esm.js +1 -1
  4. package/accordion/accordion.esm.min.js +1 -1
  5. package/accordion/accordion.js +1 -1
  6. package/accordion/accordion.min.js +1 -1
  7. package/calendar/calendar.cjs.js +29 -14
  8. package/calendar/calendar.cjs.min.js +1 -1
  9. package/calendar/calendar.esm.js +29 -14
  10. package/calendar/calendar.esm.min.js +1 -1
  11. package/calendar/calendar.js +29 -14
  12. package/calendar/calendar.min.js +1 -1
  13. package/carousel/carousel.cjs.js +1 -0
  14. package/carousel/carousel.cjs.min.js +1 -1
  15. package/carousel/carousel.esm.js +1 -0
  16. package/carousel/carousel.esm.min.js +1 -1
  17. package/carousel/carousel.js +1 -0
  18. package/carousel/carousel.min.js +1 -1
  19. package/checkbox/checkbox.cjs.js +2 -0
  20. package/checkbox/checkbox.cjs.min.js +1 -1
  21. package/checkbox/checkbox.esm.js +2 -0
  22. package/checkbox/checkbox.esm.min.js +1 -1
  23. package/checkbox/checkbox.js +2 -0
  24. package/checkbox/checkbox.min.js +1 -1
  25. package/chips/chips.cjs.js +111 -21
  26. package/chips/chips.cjs.min.js +1 -1
  27. package/chips/chips.esm.js +111 -21
  28. package/chips/chips.esm.min.js +1 -1
  29. package/chips/chips.js +111 -21
  30. package/chips/chips.min.js +1 -1
  31. package/core/core.js +696 -505
  32. package/core/core.min.js +5 -5
  33. package/datatable/datatable.cjs.js +577 -153
  34. package/datatable/datatable.cjs.min.js +1 -1
  35. package/datatable/datatable.esm.js +573 -149
  36. package/datatable/datatable.esm.min.js +1 -1
  37. package/datatable/datatable.js +577 -153
  38. package/datatable/datatable.min.js +1 -1
  39. package/dataview/dataview.d.ts +2 -2
  40. package/divider/divider.cjs.js +2 -2
  41. package/divider/divider.cjs.min.js +1 -1
  42. package/divider/divider.esm.js +2 -2
  43. package/divider/divider.esm.min.js +1 -1
  44. package/divider/divider.js +2 -2
  45. package/divider/divider.min.js +1 -1
  46. package/dropdown/dropdown.cjs.js +327 -160
  47. package/dropdown/dropdown.cjs.min.js +1 -1
  48. package/dropdown/dropdown.d.ts +9 -0
  49. package/dropdown/dropdown.esm.js +327 -160
  50. package/dropdown/dropdown.esm.min.js +1 -1
  51. package/dropdown/dropdown.js +327 -160
  52. package/dropdown/dropdown.min.js +1 -1
  53. package/editor/editor.cjs.js +1 -1
  54. package/editor/editor.cjs.min.js +1 -1
  55. package/editor/editor.esm.js +1 -1
  56. package/editor/editor.esm.min.js +1 -1
  57. package/editor/editor.js +1 -1
  58. package/editor/editor.min.js +1 -1
  59. package/focustrap/focustrap.cjs.js +168 -0
  60. package/focustrap/focustrap.cjs.min.js +1 -0
  61. package/focustrap/focustrap.esm.js +159 -0
  62. package/focustrap/focustrap.esm.min.js +1 -0
  63. package/focustrap/focustrap.js +167 -0
  64. package/focustrap/focustrap.min.js +1 -0
  65. package/focustrap/package.json +7 -0
  66. package/galleria/galleria.cjs.js +26 -24
  67. package/galleria/galleria.cjs.min.js +1 -1
  68. package/galleria/galleria.esm.js +26 -24
  69. package/galleria/galleria.esm.min.js +1 -1
  70. package/galleria/galleria.js +26 -24
  71. package/galleria/galleria.min.js +1 -1
  72. package/hooks/hooks.d.ts +1 -1
  73. package/inputnumber/inputnumber.cjs.js +21 -17
  74. package/inputnumber/inputnumber.cjs.min.js +1 -1
  75. package/inputnumber/inputnumber.esm.js +21 -17
  76. package/inputnumber/inputnumber.esm.min.js +1 -1
  77. package/inputnumber/inputnumber.js +21 -17
  78. package/inputnumber/inputnumber.min.js +1 -1
  79. package/inputswitch/inputswitch.cjs.js +3 -1
  80. package/inputswitch/inputswitch.cjs.min.js +1 -1
  81. package/inputswitch/inputswitch.esm.js +3 -1
  82. package/inputswitch/inputswitch.esm.min.js +1 -1
  83. package/inputswitch/inputswitch.js +3 -1
  84. package/inputswitch/inputswitch.min.js +1 -1
  85. package/knob/knob.cjs.js +62 -0
  86. package/knob/knob.cjs.min.js +1 -1
  87. package/knob/knob.esm.js +62 -0
  88. package/knob/knob.esm.min.js +1 -1
  89. package/knob/knob.js +62 -0
  90. package/knob/knob.min.js +1 -1
  91. package/listbox/listbox.cjs.js +362 -92
  92. package/listbox/listbox.cjs.min.js +1 -1
  93. package/listbox/listbox.esm.js +363 -93
  94. package/listbox/listbox.esm.min.js +1 -1
  95. package/listbox/listbox.js +362 -92
  96. package/listbox/listbox.min.js +1 -1
  97. package/menu/menu.cjs.js +4 -2
  98. package/menu/menu.cjs.min.js +1 -1
  99. package/menu/menu.esm.js +4 -2
  100. package/menu/menu.esm.min.js +1 -1
  101. package/menu/menu.js +5 -4
  102. package/menu/menu.min.js +1 -1
  103. package/menubar/menubar.cjs.js +3 -0
  104. package/menubar/menubar.cjs.min.js +1 -1
  105. package/menubar/menubar.esm.js +3 -0
  106. package/menubar/menubar.esm.min.js +1 -1
  107. package/menubar/menubar.js +3 -0
  108. package/menubar/menubar.min.js +1 -1
  109. package/multiselect/multiselect.cjs.js +377 -107
  110. package/multiselect/multiselect.cjs.min.js +1 -1
  111. package/multiselect/multiselect.esm.js +377 -107
  112. package/multiselect/multiselect.esm.min.js +1 -1
  113. package/multiselect/multiselect.js +377 -107
  114. package/multiselect/multiselect.min.js +1 -1
  115. package/package.json +1 -1
  116. package/paginator/paginator.cjs.js +251 -251
  117. package/paginator/paginator.cjs.min.js +1 -1
  118. package/paginator/paginator.esm.js +258 -258
  119. package/paginator/paginator.esm.min.js +1 -1
  120. package/paginator/paginator.js +251 -251
  121. package/paginator/paginator.min.js +1 -1
  122. package/panelmenu/panelmenu.cjs.js +34 -22
  123. package/panelmenu/panelmenu.cjs.min.js +1 -1
  124. package/panelmenu/panelmenu.esm.js +34 -22
  125. package/panelmenu/panelmenu.esm.min.js +1 -1
  126. package/panelmenu/panelmenu.js +35 -24
  127. package/panelmenu/panelmenu.min.js +1 -1
  128. package/passthrough/tailwind/index.cjs.js +3 -2
  129. package/passthrough/tailwind/index.cjs.min.js +1 -1
  130. package/passthrough/tailwind/index.esm.js +3 -2
  131. package/passthrough/tailwind/index.esm.min.js +1 -1
  132. package/passthrough/tailwind/index.js +3 -2
  133. package/passthrough/tailwind/index.min.js +1 -1
  134. package/password/password.cjs.js +22 -20
  135. package/password/password.cjs.min.js +1 -1
  136. package/password/password.esm.js +22 -20
  137. package/password/password.esm.min.js +1 -1
  138. package/password/password.js +22 -20
  139. package/password/password.min.js +1 -1
  140. package/primereact.all.cjs.js +2199 -951
  141. package/primereact.all.cjs.min.js +1 -1
  142. package/primereact.all.esm.js +2199 -951
  143. package/primereact.all.esm.min.js +1 -1
  144. package/primereact.all.js +2199 -951
  145. package/primereact.all.min.js +1 -1
  146. package/radiobutton/radiobutton.cjs.js +1 -0
  147. package/radiobutton/radiobutton.cjs.min.js +1 -1
  148. package/radiobutton/radiobutton.esm.js +1 -0
  149. package/radiobutton/radiobutton.esm.min.js +1 -1
  150. package/radiobutton/radiobutton.js +1 -0
  151. package/radiobutton/radiobutton.min.js +1 -1
  152. package/rating/rating.cjs.js +103 -4
  153. package/rating/rating.cjs.min.js +1 -1
  154. package/rating/rating.esm.js +103 -4
  155. package/rating/rating.esm.min.js +1 -1
  156. package/rating/rating.js +103 -4
  157. package/rating/rating.min.js +1 -1
  158. package/resources/themes/arya-blue/theme.css +328 -67
  159. package/resources/themes/arya-green/theme.css +328 -67
  160. package/resources/themes/arya-orange/theme.css +328 -67
  161. package/resources/themes/arya-purple/theme.css +26 -6
  162. package/resources/themes/bootstrap4-dark-blue/theme.css +328 -67
  163. package/resources/themes/bootstrap4-dark-purple/theme.css +26 -6
  164. package/resources/themes/bootstrap4-light-blue/theme.css +328 -67
  165. package/resources/themes/bootstrap4-light-purple/theme.css +26 -6
  166. package/resources/themes/fluent-light/theme.css +327 -66
  167. package/resources/themes/lara-dark-amber/theme.css +328 -67
  168. package/resources/themes/lara-dark-blue/theme.css +328 -67
  169. package/resources/themes/lara-dark-cyan/theme.css +328 -67
  170. package/resources/themes/lara-dark-green/theme.css +328 -67
  171. package/resources/themes/lara-dark-indigo/theme.css +328 -67
  172. package/resources/themes/lara-dark-pink/theme.css +328 -67
  173. package/resources/themes/lara-dark-purple/theme.css +26 -6
  174. package/resources/themes/lara-dark-teal/theme.css +328 -67
  175. package/resources/themes/lara-light-amber/theme.css +328 -67
  176. package/resources/themes/lara-light-blue/theme.css +328 -67
  177. package/resources/themes/lara-light-cyan/theme.css +328 -67
  178. package/resources/themes/lara-light-green/theme.css +328 -67
  179. package/resources/themes/lara-light-indigo/theme.css +328 -67
  180. package/resources/themes/lara-light-pink/theme.css +328 -67
  181. package/resources/themes/lara-light-purple/theme.css +26 -6
  182. package/resources/themes/lara-light-teal/theme.css +328 -67
  183. package/resources/themes/luna-amber/theme.css +328 -67
  184. package/resources/themes/luna-blue/theme.css +328 -67
  185. package/resources/themes/luna-green/theme.css +328 -67
  186. package/resources/themes/luna-pink/theme.css +328 -67
  187. package/resources/themes/md-dark-deeppurple/theme.css +158 -138
  188. package/resources/themes/md-dark-indigo/theme.css +454 -193
  189. package/resources/themes/md-light-deeppurple/theme.css +26 -6
  190. package/resources/themes/md-light-indigo/theme.css +328 -67
  191. package/resources/themes/mdc-dark-deeppurple/theme.css +158 -138
  192. package/resources/themes/mdc-dark-indigo/theme.css +454 -193
  193. package/resources/themes/mdc-light-deeppurple/theme.css +26 -6
  194. package/resources/themes/mdc-light-indigo/theme.css +328 -67
  195. package/resources/themes/mira/theme.css +328 -67
  196. package/resources/themes/nano/theme.css +328 -67
  197. package/resources/themes/nova/theme.css +328 -67
  198. package/resources/themes/nova-accent/theme.css +328 -67
  199. package/resources/themes/nova-alt/theme.css +328 -67
  200. package/resources/themes/rhea/theme.css +328 -67
  201. package/resources/themes/saga-blue/theme.css +328 -67
  202. package/resources/themes/saga-green/theme.css +328 -67
  203. package/resources/themes/saga-orange/theme.css +328 -67
  204. package/resources/themes/saga-purple/theme.css +26 -6
  205. package/resources/themes/soho-dark/theme.css +353 -92
  206. package/resources/themes/soho-light/theme.css +328 -67
  207. package/resources/themes/tailwind-light/theme.css +329 -71
  208. package/resources/themes/vela-blue/theme.css +328 -67
  209. package/resources/themes/vela-green/theme.css +328 -67
  210. package/resources/themes/vela-orange/theme.css +328 -67
  211. package/resources/themes/vela-purple/theme.css +26 -6
  212. package/resources/themes/viva-dark/theme.css +328 -67
  213. package/resources/themes/viva-light/theme.css +328 -67
  214. package/selectbutton/selectbutton.cjs.js +96 -50
  215. package/selectbutton/selectbutton.cjs.min.js +1 -1
  216. package/selectbutton/selectbutton.esm.js +96 -50
  217. package/selectbutton/selectbutton.esm.min.js +1 -1
  218. package/selectbutton/selectbutton.js +96 -50
  219. package/selectbutton/selectbutton.min.js +1 -1
  220. package/sidebar/sidebar.cjs.js +18 -16
  221. package/sidebar/sidebar.cjs.min.js +1 -1
  222. package/sidebar/sidebar.esm.js +18 -16
  223. package/sidebar/sidebar.esm.min.js +1 -1
  224. package/sidebar/sidebar.js +18 -16
  225. package/sidebar/sidebar.min.js +1 -1
  226. package/slider/slider.cjs.js +25 -4
  227. package/slider/slider.cjs.min.js +1 -1
  228. package/slider/slider.esm.js +25 -4
  229. package/slider/slider.esm.min.js +1 -1
  230. package/slider/slider.js +25 -4
  231. package/slider/slider.min.js +1 -1
  232. package/splitbutton/splitbutton.cjs.js +4 -3
  233. package/splitbutton/splitbutton.cjs.min.js +1 -1
  234. package/splitbutton/splitbutton.esm.js +4 -3
  235. package/splitbutton/splitbutton.esm.min.js +1 -1
  236. package/splitbutton/splitbutton.js +4 -3
  237. package/splitbutton/splitbutton.min.js +1 -1
  238. package/splitter/splitter.cjs.js +71 -25
  239. package/splitter/splitter.cjs.min.js +1 -1
  240. package/splitter/splitter.d.ts +13 -1
  241. package/splitter/splitter.esm.js +73 -27
  242. package/splitter/splitter.esm.min.js +1 -1
  243. package/splitter/splitter.js +71 -25
  244. package/splitter/splitter.min.js +1 -1
  245. package/tabview/tabview.cjs.js +6 -5
  246. package/tabview/tabview.cjs.min.js +1 -1
  247. package/tabview/tabview.d.ts +39 -34
  248. package/tabview/tabview.esm.js +6 -5
  249. package/tabview/tabview.esm.min.js +1 -1
  250. package/tabview/tabview.js +6 -5
  251. package/tabview/tabview.min.js +1 -1
  252. package/tieredmenu/tieredmenu.cjs.js +4 -3
  253. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  254. package/tieredmenu/tieredmenu.esm.js +4 -3
  255. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  256. package/tieredmenu/tieredmenu.js +4 -3
  257. package/tieredmenu/tieredmenu.min.js +1 -1
  258. package/togglebutton/togglebutton.cjs.js +15 -14
  259. package/togglebutton/togglebutton.cjs.min.js +1 -1
  260. package/togglebutton/togglebutton.esm.js +14 -13
  261. package/togglebutton/togglebutton.esm.min.js +1 -1
  262. package/togglebutton/togglebutton.js +15 -14
  263. package/togglebutton/togglebutton.min.js +1 -1
  264. package/tree/tree.cjs.js +33 -15
  265. package/tree/tree.cjs.min.js +1 -1
  266. package/tree/tree.esm.js +34 -16
  267. package/tree/tree.esm.min.js +1 -1
  268. package/tree/tree.js +33 -15
  269. package/tree/tree.min.js +1 -1
  270. package/tristatecheckbox/tristatecheckbox.cjs.js +3 -2
  271. package/tristatecheckbox/tristatecheckbox.cjs.min.js +1 -1
  272. package/tristatecheckbox/tristatecheckbox.esm.js +3 -2
  273. package/tristatecheckbox/tristatecheckbox.esm.min.js +1 -1
  274. package/tristatecheckbox/tristatecheckbox.js +3 -2
  275. package/tristatecheckbox/tristatecheckbox.min.js +1 -1
  276. package/web-types.json +19 -1
@@ -191,10 +191,13 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
191
191
  item: function item(_ref7) {
192
192
  var selected = _ref7.selected,
193
193
  disabled = _ref7.disabled,
194
- label = _ref7.label;
194
+ label = _ref7.label,
195
+ index = _ref7.index,
196
+ focusedOptionIndex = _ref7.focusedOptionIndex;
195
197
  return utils.classNames('p-dropdown-item', {
196
198
  'p-highlight': selected,
197
199
  'p-disabled': disabled,
200
+ 'p-focus': index === focusedOptionIndex,
198
201
  'p-dropdown-item-empty': !label || label.length === 0
199
202
  });
200
203
  },
@@ -247,6 +250,8 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
247
250
  inputId: null,
248
251
  inputRef: null,
249
252
  itemTemplate: null,
253
+ loading: false,
254
+ loadingIcon: null,
250
255
  maxLength: null,
251
256
  name: null,
252
257
  onBlur: null,
@@ -259,6 +264,8 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
259
264
  onShow: null,
260
265
  optionDisabled: null,
261
266
  optionGroupChildren: 'items',
267
+ selectOnFocus: false,
268
+ autoOptionFocus: false,
262
269
  optionGroupLabel: null,
263
270
  optionGroupTemplate: null,
264
271
  optionLabel: null,
@@ -297,7 +304,9 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
297
304
  selected = props.selected,
298
305
  disabled = props.disabled,
299
306
  option = props.option,
300
- label = props.label;
307
+ label = props.label,
308
+ index = props.index,
309
+ focusedOptionIndex = props.focusedOptionIndex;
301
310
  var getPTOptions = function getPTOptions(key) {
302
311
  return ptm(key, {
303
312
  context: {
@@ -306,7 +315,7 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
306
315
  }
307
316
  });
308
317
  };
309
- var _onClick = function onClick(event) {
318
+ var _onClick = function onClick(event, i) {
310
319
  if (props.onClick) {
311
320
  props.onClick({
312
321
  originalEvent: event,
@@ -321,7 +330,9 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
321
330
  className: utils.classNames(option.className, cx('item', {
322
331
  selected: selected,
323
332
  disabled: disabled,
324
- label: label
333
+ label: label,
334
+ index: index,
335
+ focusedOptionIndex: focusedOptionIndex
325
336
  })),
326
337
  style: props.style,
327
338
  onClick: function onClick(e) {
@@ -330,6 +341,7 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
330
341
  'aria-label': label,
331
342
  'aria-selected': selected,
332
343
  'data-p-highlight': selected,
344
+ 'data-p-focused': focusedOptionIndex === index,
333
345
  'data-p-disabled': disabled
334
346
  }, getPTOptions('item'));
335
347
  return /*#__PURE__*/React__namespace.createElement("li", itemProps, content, /*#__PURE__*/React__namespace.createElement(ripple.Ripple, null));
@@ -401,6 +413,8 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
401
413
  var disabled = props.isOptionDisabled(option);
402
414
  return /*#__PURE__*/React__namespace.createElement(DropdownItem, {
403
415
  key: optionKey,
416
+ index: j,
417
+ focusedOptionIndex: props.focusedOptionIndex,
404
418
  label: optionLabel,
405
419
  option: option,
406
420
  style: style,
@@ -448,6 +462,8 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
448
462
  return /*#__PURE__*/React__namespace.createElement(DropdownItem, {
449
463
  key: optionKey,
450
464
  label: optionLabel,
465
+ index: index,
466
+ focusedOptionIndex: props.focusedOptionIndex,
451
467
  option: option,
452
468
  style: style,
453
469
  template: props.itemTemplate,
@@ -640,20 +656,30 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
640
656
  setFilterState = _React$useState2[1];
641
657
  var _React$useState3 = React__namespace.useState(false),
642
658
  _React$useState4 = _slicedToArray(_React$useState3, 2),
643
- focusedState = _React$useState4[0],
644
- setFocusedState = _React$useState4[1];
659
+ clicked = _React$useState4[0],
660
+ setClicked = _React$useState4[1];
645
661
  var _React$useState5 = React__namespace.useState(false),
646
662
  _React$useState6 = _slicedToArray(_React$useState5, 2),
647
- overlayVisibleState = _React$useState6[0],
648
- setOverlayVisibleState = _React$useState6[1];
663
+ focusedState = _React$useState6[0],
664
+ setFocusedState = _React$useState6[1];
665
+ var _React$useState7 = React__namespace.useState(null),
666
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
667
+ focusedOptionIndex = _React$useState8[0],
668
+ setFocusedOptionIndex = _React$useState8[1];
669
+ var _React$useState9 = React__namespace.useState(false),
670
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
671
+ overlayVisibleState = _React$useState10[0],
672
+ setOverlayVisibleState = _React$useState10[1];
649
673
  var elementRef = React__namespace.useRef(null);
650
674
  var overlayRef = React__namespace.useRef(null);
675
+ var firstHiddenFocusableElementOnOverlay = React__namespace.useRef(null);
676
+ var lastHiddenFocusableElementOnOverlay = React__namespace.useRef(null);
651
677
  var inputRef = React__namespace.useRef(props.inputRef);
652
678
  var focusInputRef = React__namespace.useRef(props.focusInputRef);
653
679
  var virtualScrollerRef = React__namespace.useRef(null);
654
680
  var searchTimeout = React__namespace.useRef(null);
655
681
  var searchValue = React__namespace.useRef(null);
656
- var currentSearchChar = React__namespace.useRef(null);
682
+ React__namespace.useRef(null);
657
683
  var isLazy = props.virtualScrollerOptions && props.virtualScrollerOptions.lazy;
658
684
  var hasFilter = utils.ObjectUtils.isNotEmpty(filterState);
659
685
  var appendTo = props.appendTo || context && context.appendTo || PrimeReact__default["default"].appendTo;
@@ -717,6 +743,14 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
717
743
  return props.options;
718
744
  }
719
745
  };
746
+ var onFirstHiddenFocus = function onFirstHiddenFocus(event) {
747
+ var focusableEl = event.relatedTarget === focusInputRef.current ? utils.DomHandler.getFirstFocusableElement(overlayRef.current, ':not([data-p-hidden-focusable="true"])') : focusInputRef.current;
748
+ utils.DomHandler.focus(focusableEl);
749
+ };
750
+ var onLastHiddenFocus = function onLastHiddenFocus(event) {
751
+ var focusableEl = event.relatedTarget === focusInputRef.current ? utils.DomHandler.getLastFocusableElement(overlayRef.current, ':not([data-p-hidden-focusable="true"])') : focusInputRef.current;
752
+ utils.DomHandler.focus(focusableEl);
753
+ };
720
754
  var isClearClicked = function isClearClicked(event) {
721
755
  return utils.DomHandler.isAttributeEquals(event.target, 'data-pc-section', 'clearicon') || utils.DomHandler.isAttributeEquals(event.target.parentElement || event.target, 'data-pc-section', 'filterclearicon');
722
756
  };
@@ -736,6 +770,7 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
736
770
  utils.DomHandler.focus(focusInputRef.current);
737
771
  overlayVisibleState ? hide() : show();
738
772
  }
773
+ setClicked(true);
739
774
  };
740
775
  var onInputFocus = function onInputFocus(event) {
741
776
  if (props.showOnFocus && !overlayVisibleState) {
@@ -767,6 +802,15 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
767
802
  }, 200);
768
803
  }
769
804
  };
805
+ var onOptionSelect = function onOptionSelect(event, option) {
806
+ var isHide = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
807
+ var value = getOptionValue(option);
808
+ selectItem({
809
+ originalEvent: event,
810
+ option: value
811
+ });
812
+ isHide && hide();
813
+ };
770
814
  var onPanelClick = function onPanelClick(event) {
771
815
  overlayservice.OverlayService.emit('overlay-click', {
772
816
  originalEvent: event,
@@ -774,196 +818,285 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
774
818
  });
775
819
  };
776
820
  var onInputKeyDown = function onInputKeyDown(event) {
777
- switch (event.which) {
778
- //down
779
- case 40:
780
- onDownKey(event);
821
+ if (props.disabled || utils.DomHandler.isAndroid()) {
822
+ event.preventDefault();
823
+ return;
824
+ }
825
+ var metaKey = event.metaKey || event.ctrlKey;
826
+ switch (event.code) {
827
+ case 'ArrowDown':
828
+ onArrowDownKey(event);
781
829
  break;
782
-
783
- //up
784
- case 38:
785
- onUpKey(event);
830
+ case 'ArrowUp':
831
+ onArrowUpKey(event);
786
832
  break;
787
-
788
- //space and enter
789
- case 32:
790
- case 13:
791
- overlayVisibleState ? hide() : show();
792
- event.preventDefault();
833
+ case 'ArrowLeft':
834
+ case 'ArrowRight':
835
+ onArrowLeftKey(event, props.editable);
793
836
  break;
794
-
795
- //escape and tab
796
- case 27:
797
- case 9:
798
- hide();
837
+ case 'Home':
838
+ onHomeKey(event);
839
+ break;
840
+ case 'End':
841
+ onEndKey(event);
842
+ break;
843
+ case 'PageDown':
844
+ onPageDownKey(event);
845
+ break;
846
+ case 'PageUp':
847
+ onPageUpKey(event);
848
+ break;
849
+ case 'Space':
850
+ onSpaceKey(event, props.editable);
851
+ break;
852
+ case 'NumpadEnter':
853
+ case 'Enter':
854
+ onEnterKey(event);
855
+ break;
856
+ case 'Escape':
857
+ onEscapeKey(event);
858
+ break;
859
+ case 'Tab':
860
+ onTabKey(event);
861
+ break;
862
+ case 'Backspace':
863
+ onBackspaceKey(event, props.editable);
864
+ break;
865
+ case 'ShiftLeft':
866
+ case 'ShiftRight':
867
+ //NOOP
799
868
  break;
800
869
  default:
801
- search(event);
870
+ if (!metaKey && utils.ObjectUtils.isPrintableCharacter(event.key)) {
871
+ !overlayVisibleState && show();
872
+ !props.editable && searchOptions(event, event.key);
873
+ }
802
874
  break;
803
875
  }
876
+ setClicked(false);
804
877
  };
805
878
  var onFilterInputKeyDown = function onFilterInputKeyDown(event) {
806
- switch (event.which) {
807
- //down
808
- case 40:
809
- onDownKey(event);
879
+ switch (event.code) {
880
+ case 'ArrowDown':
881
+ onArrowDownKey(event);
810
882
  break;
811
-
812
- //up
813
- case 38:
814
- onUpKey(event);
883
+ case 'ArrowUp':
884
+ onArrowUpKey(event);
815
885
  break;
816
-
817
- //enter and escape
818
- case 13:
819
- case 27:
820
- hide();
886
+ case 'ArrowLeft':
887
+ case 'ArrowRight':
888
+ onArrowLeftKey(event, true);
889
+ break;
890
+ case 'Escape':
891
+ case 'Enter':
892
+ onEnterKey(event);
821
893
  event.preventDefault();
822
894
  break;
823
895
  }
824
896
  };
825
- var onUpKey = function onUpKey(event) {
826
- if (visibleOptions) {
827
- var prevOption = findPrevOption(getSelectedOptionIndex());
828
- if (prevOption) {
829
- selectItem({
830
- originalEvent: event,
831
- option: prevOption
832
- });
833
- }
834
- }
835
- event.preventDefault();
897
+ var hasFocusableElements = function hasFocusableElements() {
898
+ return utils.DomHandler.getFocusableElements(overlayRef.current, ':not([data-p-hidden-focusable="true"])').length > 0;
899
+ };
900
+ var isOptionMatched = function isOptionMatched(option) {
901
+ var _getOptionLabel;
902
+ return isValidOption(option) && ((_getOptionLabel = getOptionLabel(option)) === null || _getOptionLabel === void 0 ? void 0 : _getOptionLabel.toLocaleLowerCase(props.filterLocale).startsWith(searchValue.current.toLocaleLowerCase(props.filterLocale)));
903
+ };
904
+ var isValidOption = function isValidOption(option) {
905
+ return utils.ObjectUtils.isNotEmpty(option) && !(isOptionDisabled(option) || isOptionGroup(option));
906
+ };
907
+ var hasSelectedOption = function hasSelectedOption() {
908
+ return utils.ObjectUtils.isNotEmpty(props.value);
909
+ };
910
+ var isValidSelectedOption = function isValidSelectedOption(option) {
911
+ return isValidOption(option) && isSelected(option);
912
+ };
913
+ var findSelectedOptionIndex = function findSelectedOptionIndex() {
914
+ return hasSelectedOption ? visibleOptions.findIndex(function (option) {
915
+ return isValidSelectedOption(option);
916
+ }) : -1;
917
+ };
918
+ var findFirstFocusedOptionIndex = function findFirstFocusedOptionIndex() {
919
+ var selectedIndex = findSelectedOptionIndex();
920
+ return selectedIndex < 0 ? findFirstOptionIndex() : selectedIndex;
836
921
  };
837
- var onDownKey = function onDownKey(event) {
838
- if (visibleOptions) {
839
- if (!overlayVisibleState && event.altKey) {
840
- show();
922
+ var searchOptions = function searchOptions(event, _char) {
923
+ searchValue.current = (searchValue.current || '') + _char;
924
+ var optionIndex = -1;
925
+ var matched = false;
926
+ if (utils.ObjectUtils.isNotEmpty(searchValue.current)) {
927
+ if (focusedOptionIndex !== -1) {
928
+ optionIndex = visibleOptions.slice(focusedOptionIndex).findIndex(function (option) {
929
+ return isOptionMatched(option);
930
+ });
931
+ optionIndex = optionIndex === -1 ? visibleOptions.slice(0, focusedOptionIndex).findIndex(function (option) {
932
+ return isOptionMatched(option);
933
+ }) : optionIndex + focusedOptionIndex;
841
934
  } else {
842
- var nextOption = findNextOption(getSelectedOptionIndex());
843
- if (nextOption) {
844
- selectItem({
845
- originalEvent: event,
846
- option: nextOption
847
- });
848
- }
935
+ optionIndex = visibleOptions.findIndex(function (option) {
936
+ return isOptionMatched(option);
937
+ });
938
+ }
939
+ if (optionIndex !== -1) {
940
+ matched = true;
941
+ }
942
+ if (optionIndex === -1 && focusedOptionIndex === -1) {
943
+ optionIndex = findFirstFocusedOptionIndex();
944
+ }
945
+ if (optionIndex !== -1) {
946
+ changeFocusedOptionIndex(event, optionIndex);
849
947
  }
850
948
  }
851
- event.preventDefault();
852
- };
853
- var findNextOption = function findNextOption(index) {
854
- if (props.optionGroupLabel) {
855
- var groupIndex = index === -1 ? 0 : index.group;
856
- var optionIndex = index === -1 ? -1 : index.option;
857
- var option = findNextOptionInList(getOptionGroupChildren(visibleOptions[groupIndex]), optionIndex);
858
- if (option) return option;else if (groupIndex + 1 !== visibleOptions.length) return findNextOption({
859
- group: groupIndex + 1,
860
- option: -1
861
- });else return null;
949
+ if (searchTimeout.current) {
950
+ clearTimeout(searchTimeout.current);
862
951
  }
863
- return findNextOptionInList(visibleOptions, index);
952
+ searchTimeout.current = setTimeout(function () {
953
+ searchValue.current = '';
954
+ searchTimeout.current = null;
955
+ }, 500);
956
+ return matched;
957
+ };
958
+ var findLastFocusedOptionIndex = function findLastFocusedOptionIndex() {
959
+ var selectedIndex = findSelectedOptionIndex();
960
+ return selectedIndex < 0 ? findLastOptionIndex() : selectedIndex;
961
+ };
962
+ var findFirstOptionIndex = function findFirstOptionIndex() {
963
+ return visibleOptions.findIndex(function (option) {
964
+ return isValidOption(option);
965
+ });
864
966
  };
865
- var findNextOptionInList = function findNextOptionInList(list, index) {
866
- var i = index + 1;
867
- if (i === list.length) {
868
- return null;
869
- }
870
- var option = list[i];
871
- return isOptionDisabled(option) ? findNextOptionInList(i) : option;
967
+ var findLastOptionIndex = function findLastOptionIndex() {
968
+ return utils.ObjectUtils.findLastIndex(visibleOptions, function (option) {
969
+ return isValidOption(option);
970
+ });
872
971
  };
873
- var findPrevOption = function findPrevOption(index) {
874
- if (index === -1) {
875
- return null;
876
- }
877
- if (props.optionGroupLabel) {
878
- var groupIndex = index.group;
879
- var optionIndex = index.option;
880
- var option = findPrevOptionInList(getOptionGroupChildren(visibleOptions[groupIndex]), optionIndex);
881
- if (option) return option;else if (groupIndex > 0) return findPrevOption({
882
- group: groupIndex - 1,
883
- option: getOptionGroupChildren(visibleOptions[groupIndex - 1]).length
884
- });else return null;
972
+ var findNextOptionIndex = function findNextOptionIndex(index) {
973
+ var matchedOptionIndex = index < visibleOptions.length - 1 ? visibleOptions.slice(index + 1).findIndex(function (option) {
974
+ return isValidOption(option);
975
+ }) : -1;
976
+ return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;
977
+ };
978
+ var findPrevOptionIndex = function findPrevOptionIndex(index) {
979
+ var matchedOptionIndex = index > 0 ? utils.ObjectUtils.findLastIndex(visibleOptions.slice(0, index), function (option) {
980
+ return isValidOption(option);
981
+ }) : -1;
982
+ return matchedOptionIndex > -1 ? matchedOptionIndex : index;
983
+ };
984
+ var changeFocusedOptionIndex = function changeFocusedOptionIndex(event, index) {
985
+ if (focusedOptionIndex !== index) {
986
+ setFocusedOptionIndex(index);
987
+ if (props.selectOnFocus) {
988
+ onOptionSelect(event, visibleOptions[index], false);
989
+ }
885
990
  }
886
- return findPrevOptionInList(visibleOptions, index);
887
991
  };
888
- var findPrevOptionInList = function findPrevOptionInList(list, index) {
889
- var i = index - 1;
890
- if (i < 0) {
891
- return null;
992
+ var onArrowDownKey = function onArrowDownKey(event) {
993
+ if (!overlayVisibleState) {
994
+ show();
995
+ props.editable && changeFocusedOptionIndex(event, findSelectedOptionIndex());
996
+ } else {
997
+ var optionIndex = focusedOptionIndex !== -1 ? findNextOptionIndex(focusedOptionIndex) : clicked ? findFirstOptionIndex() : findFirstFocusedOptionIndex();
998
+ changeFocusedOptionIndex(event, optionIndex);
892
999
  }
893
- var option = list[i];
894
- return isOptionDisabled(option) ? findPrevOption(i) : option;
1000
+ event.preventDefault();
895
1001
  };
896
- var search = function search(event) {
897
- if (searchTimeout.current) {
898
- clearTimeout(searchTimeout.current);
899
- }
900
- var _char = event.key;
901
- if (_char === 'Shift' || _char === 'Control' || _char === 'Alt') {
902
- return;
903
- }
904
- if (currentSearchChar.current === _char) searchValue.current = _char;else searchValue.current = searchValue.current ? searchValue.current + _char : _char;
905
- currentSearchChar.current = _char;
906
- if (searchValue.current) {
907
- var searchIndex = getSelectedOptionIndex();
908
- var newOption = props.optionGroupLabel ? searchOptionInGroup(searchIndex) : searchOption(searchIndex + 1);
909
- if (newOption) {
910
- selectItem({
911
- originalEvent: event,
912
- option: newOption
913
- });
1002
+ var onArrowUpKey = function onArrowUpKey(event) {
1003
+ var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1004
+ if (event.altKey && !pressedInInputText) {
1005
+ if (focusedOptionIndex !== -1) {
1006
+ onOptionSelect(event, visibleOptions[focusedOptionIndex]);
914
1007
  }
1008
+ state.overlayVisible && hide();
1009
+ event.preventDefault();
1010
+ } else {
1011
+ var optionIndex = focusedOptionIndex !== -1 ? findPrevOptionIndex(focusedOptionIndex) : clicked ? findLastOptionIndex() : findLastFocusedOptionIndex();
1012
+ changeFocusedOptionIndex(event, optionIndex);
1013
+ !overlayVisibleState && show();
1014
+ event.preventDefault();
915
1015
  }
916
- searchTimeout.current = setTimeout(function () {
917
- searchValue.current = null;
918
- }, 250);
919
1016
  };
920
- var searchOption = function searchOption(index) {
921
- if (searchValue.current) {
922
- return searchOptionInRange(index, visibleOptions.length) || searchOptionInRange(0, index);
1017
+ var onArrowLeftKey = function onArrowLeftKey(event) {
1018
+ var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1019
+ pressedInInputText && setFocusedOptionIndex(-1);
1020
+ };
1021
+ var onHomeKey = function onHomeKey(event) {
1022
+ var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1023
+ if (pressedInInputText) {
1024
+ event.currentTarget.setSelectionRange(0, 0);
1025
+ setFocusedOptionIndex(-1);
1026
+ } else {
1027
+ changeFocusedOptionIndex(event, findFirstOptionIndex());
1028
+ !overlayVisibleState && show();
923
1029
  }
924
- return null;
1030
+ event.preventDefault();
925
1031
  };
926
- var searchOptionInRange = function searchOptionInRange(start, end) {
927
- for (var i = start; i < end; i++) {
928
- var opt = visibleOptions[i];
929
- if (matchesSearchValue(opt)) {
930
- return opt;
931
- }
1032
+ var onEndKey = function onEndKey(event) {
1033
+ var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1034
+ if (pressedInInputText) {
1035
+ var target = event.currentTarget;
1036
+ var len = target.value.length;
1037
+ target.setSelectionRange(len, len);
1038
+ setFocusedOptionIndex(-1);
1039
+ } else {
1040
+ changeFocusedOptionIndex(event, findLastOptionIndex());
1041
+ !overlayVisibleState && show();
932
1042
  }
933
- return null;
1043
+ event.preventDefault();
934
1044
  };
935
- var searchOptionInGroup = function searchOptionInGroup(index) {
936
- var searchIndex = index === -1 ? {
937
- group: 0,
938
- option: -1
939
- } : index;
940
- for (var i = searchIndex.group; i < visibleOptions.length; i++) {
941
- var groupOptions = getOptionGroupChildren(visibleOptions[i]);
942
- for (var j = searchIndex.group === i ? searchIndex.option + 1 : 0; j < groupOptions.length; j++) {
943
- if (matchesSearchValue(groupOptions[j])) {
944
- return groupOptions[j];
945
- }
1045
+ var onPageUpKey = function onPageUpKey(event) {
1046
+ event.preventDefault();
1047
+ };
1048
+ var onPageDownKey = function onPageDownKey(event) {
1049
+ event.preventDefault();
1050
+ };
1051
+ var onSpaceKey = function onSpaceKey(event) {
1052
+ var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1053
+ !pressedInInputText && onEnterKey(event);
1054
+ };
1055
+ var onEnterKey = function onEnterKey(event) {
1056
+ if (!overlayVisibleState) {
1057
+ setFocusedOptionIndex(-1);
1058
+ onArrowDownKey(event);
1059
+ } else {
1060
+ if (focusedOptionIndex !== -1) {
1061
+ onOptionSelect(event, visibleOptions[focusedOptionIndex]);
946
1062
  }
1063
+ hide();
947
1064
  }
948
- for (var _i = 0; _i <= searchIndex.group; _i++) {
949
- var _groupOptions = getOptionGroupChildren(visibleOptions[_i]);
950
- for (var _j = 0; _j < (searchIndex.group === _i ? searchIndex.option : _groupOptions.length); _j++) {
951
- if (matchesSearchValue(_groupOptions[_j])) {
952
- return _groupOptions[_j];
1065
+ event.preventDefault();
1066
+ };
1067
+ var onEscapeKey = function onEscapeKey(event) {
1068
+ overlayVisibleState && hide();
1069
+ event.preventDefault();
1070
+ };
1071
+ var onTabKey = function onTabKey(event) {
1072
+ var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1073
+ if (!pressedInInputText) {
1074
+ if (overlayVisibleState && hasFocusableElements()) {
1075
+ utils.DomHandler.focus($refs.firstHiddenFocusableElementOnOverlay);
1076
+ event.preventDefault();
1077
+ } else {
1078
+ if (focusedOptionIndex !== -1) {
1079
+ onOptionSelect(event, visibleOptions[focusedOptionIndex]);
953
1080
  }
1081
+ overlayVisibleState && hide();
954
1082
  }
955
1083
  }
956
- return null;
957
1084
  };
958
- var matchesSearchValue = function matchesSearchValue(option) {
959
- var label = getOptionLabel(option);
960
- if (!label) {
961
- return false;
1085
+ var onBackspaceKey = function onBackspaceKey(event) {
1086
+ var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1087
+ if (pressedInInputText) {
1088
+ !overlayVisibleState && show();
962
1089
  }
963
- label = label.toLocaleLowerCase(props.filterLocale);
964
- return label.startsWith(searchValue.current.toLocaleLowerCase(props.filterLocale));
965
1090
  };
966
1091
  var onEditableInputChange = function onEditableInputChange(event) {
1092
+ !overlayVisibleState && show();
1093
+ var searchIndex = null;
1094
+ if (event.target.value) {
1095
+ searchIndex = visibleOptions.findIndex(function (item) {
1096
+ return item.name.toLocaleLowerCase().startsWith(event.target.value.toLocaleLowerCase());
1097
+ });
1098
+ }
1099
+ setFocusedOptionIndex(searchIndex);
967
1100
  if (props.onChange) {
968
1101
  props.onChange({
969
1102
  originalEvent: event.originalEvent,
@@ -1093,10 +1226,17 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
1093
1226
  return utils.ObjectUtils.equals(props.value, getOptionValue(option), equalityKey());
1094
1227
  };
1095
1228
  var show = function show() {
1229
+ setFocusedOptionIndex(focusedOptionIndex !== -1 ? focusedOptionIndex : props.autoOptionFocus ? findFirstFocusedOptionIndex() : props.editable ? -1 : findSelectedOptionIndex());
1096
1230
  setOverlayVisibleState(true);
1097
1231
  };
1098
1232
  var hide = function hide() {
1099
1233
  setOverlayVisibleState(false);
1234
+ setClicked(false);
1235
+ };
1236
+ var onFocus = function onFocus() {
1237
+ if (props.editable) {
1238
+ utils.DomHandler.focus(inputRef.current);
1239
+ }
1100
1240
  };
1101
1241
  var onOverlayEnter = function onOverlayEnter(callback) {
1102
1242
  utils.ZIndexUtils.set('overlay', overlayRef.current, context && context.autoZIndex || PrimeReact__default["default"].autoZIndex, context && context.zIndex['overlay'] || PrimeReact__default["default"].zIndex['overlay']);
@@ -1149,6 +1289,9 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
1149
1289
  var getOptionRenderKey = function getOptionRenderKey(option) {
1150
1290
  return props.dataKey ? utils.ObjectUtils.resolveFieldData(option, props.dataKey) : getOptionLabel(option);
1151
1291
  };
1292
+ var isOptionGroup = function isOptionGroup(option) {
1293
+ return props.optionGroupLabel && option.optionGroup && option.group;
1294
+ };
1152
1295
  var isOptionDisabled = function isOptionDisabled(option) {
1153
1296
  if (props.optionDisabled) {
1154
1297
  return utils.ObjectUtils.isFunction(props.optionDisabled) ? props.optionDisabled(option) : utils.ObjectUtils.resolveFieldData(option, props.optionDisabled);
@@ -1297,8 +1440,9 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
1297
1440
  maxLength: props.maxLength,
1298
1441
  onInput: onEditableInputChange,
1299
1442
  onFocus: onEditableInputFocus,
1443
+ onKeyDown: onInputKeyDown,
1300
1444
  onBlur: onInputBlur,
1301
- tabIndex: props.tabIndex || 0,
1445
+ tabIndex: !props.disabled ? props.tabIndex : -1,
1302
1446
  'aria-haspopup': 'listbox'
1303
1447
  }, ariaProps), ptm('input'));
1304
1448
  return /*#__PURE__*/React__namespace.createElement("input", inputProps);
@@ -1390,10 +1534,31 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
1390
1534
  },
1391
1535
  onMouseDown: props.onMouseDown,
1392
1536
  onContextMenu: props.onContextMenu,
1537
+ onFocus: onFocus,
1393
1538
  'data-p-disabled': props.disabled,
1394
1539
  'data-p-focus': focusedState
1395
1540
  }, otherProps, ptm('root'));
1396
- return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("div", rootProps, keyboardHelper, hiddenSelect, labelElement, clearIcon, dropdownIcon, /*#__PURE__*/React__namespace.createElement(DropdownPanel, _extends({
1541
+ var firstHiddenFocusableElementProps = mergeProps({
1542
+ ref: firstHiddenFocusableElementOnOverlay,
1543
+ role: 'presentation',
1544
+ 'aria-hidden': 'true',
1545
+ className: 'p-hidden-accessible p-hidden-focusable',
1546
+ tabIndex: '0',
1547
+ onFocus: onFirstHiddenFocus,
1548
+ 'data-p-hidden-accessible': true,
1549
+ 'data-p-hidden-focusable': true
1550
+ }, ptm('hiddenFirstFocusableEl'));
1551
+ var lastHiddenFocusableElementProps = mergeProps({
1552
+ ref: lastHiddenFocusableElementOnOverlay,
1553
+ role: 'presentation',
1554
+ 'aria-hidden': 'true',
1555
+ className: 'p-hidden-accessible p-hidden-focusable',
1556
+ tabIndex: '0',
1557
+ onFocus: onLastHiddenFocus,
1558
+ 'data-p-hidden-accessible': true,
1559
+ 'data-p-hidden-focusable': true
1560
+ }, ptm('hiddenLastFocusableEl'));
1561
+ 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({
1397
1562
  hostName: "Dropdown",
1398
1563
  ref: overlayRef,
1399
1564
  visibleOptions: visibleOptions,
@@ -1402,6 +1567,8 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
1402
1567
  appendTo: appendTo,
1403
1568
  onClick: onPanelClick,
1404
1569
  onOptionClick: onOptionClick,
1570
+ focusedOptionIndex: focusedOptionIndex,
1571
+ setFocusedOptionIndex: setFocusedOptionIndex,
1405
1572
  filterValue: filterState,
1406
1573
  hasFilter: hasFilter,
1407
1574
  onFilterClearIconClick: onFilterClearIconClick,
@@ -1424,7 +1591,7 @@ this.primereact.dropdown = (function (exports, React, PrimeReact, componentbase,
1424
1591
  ptm: ptm,
1425
1592
  cx: cx,
1426
1593
  sx: sx
1427
- }))), hasTooltip && /*#__PURE__*/React__namespace.createElement(tooltip.Tooltip, _extends({
1594
+ })), /*#__PURE__*/React__namespace.createElement("span", lastHiddenFocusableElementProps)), hasTooltip && /*#__PURE__*/React__namespace.createElement(tooltip.Tooltip, _extends({
1428
1595
  target: elementRef,
1429
1596
  content: props.tooltip
1430
1597
  }, props.tooltipOptions, {