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
@@ -77,6 +77,46 @@ function _toConsumableArray(arr) {
77
77
  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
78
78
  }
79
79
 
80
+ function _arrayWithHoles(arr) {
81
+ if (Array.isArray(arr)) return arr;
82
+ }
83
+
84
+ function _iterableToArrayLimit(r, l) {
85
+ var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
86
+ if (null != t) {
87
+ var e,
88
+ n,
89
+ i,
90
+ u,
91
+ a = [],
92
+ f = !0,
93
+ o = !1;
94
+ try {
95
+ if (i = (t = t.call(r)).next, 0 === l) {
96
+ if (Object(t) !== t) return;
97
+ f = !1;
98
+ } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
99
+ } catch (r) {
100
+ o = !0, n = r;
101
+ } finally {
102
+ try {
103
+ if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
104
+ } finally {
105
+ if (o) throw n;
106
+ }
107
+ }
108
+ return a;
109
+ }
110
+ }
111
+
112
+ function _nonIterableRest() {
113
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
114
+ }
115
+
116
+ function _slicedToArray(arr, i) {
117
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
118
+ }
119
+
80
120
  var classes = {
81
121
  root: function root(_ref) {
82
122
  var props = _ref.props;
@@ -121,46 +161,6 @@ var SelectButtonBase = componentbase.ComponentBase.extend({
121
161
  }
122
162
  });
123
163
 
124
- function _arrayWithHoles(arr) {
125
- if (Array.isArray(arr)) return arr;
126
- }
127
-
128
- function _iterableToArrayLimit(r, l) {
129
- var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
130
- if (null != t) {
131
- var e,
132
- n,
133
- i,
134
- u,
135
- a = [],
136
- f = !0,
137
- o = !1;
138
- try {
139
- if (i = (t = t.call(r)).next, 0 === l) {
140
- if (Object(t) !== t) return;
141
- f = !1;
142
- } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
143
- } catch (r) {
144
- o = !0, n = r;
145
- } finally {
146
- try {
147
- if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
148
- } finally {
149
- if (o) throw n;
150
- }
151
- }
152
- return a;
153
- }
154
- }
155
-
156
- function _nonIterableRest() {
157
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
158
- }
159
-
160
- function _slicedToArray(arr, i) {
161
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
162
- }
163
-
164
164
  var SelectButtonItem = /*#__PURE__*/React__namespace.memo(function (props) {
165
165
  var _React$useState = React__namespace.useState(false),
166
166
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -179,7 +179,8 @@ var SelectButtonItem = /*#__PURE__*/React__namespace.memo(function (props) {
179
179
  }
180
180
  });
181
181
  };
182
- var onClick = function onClick(event) {
182
+ var _onClick = function onClick(event, index) {
183
+ props.setFocusedIndex(index);
183
184
  if (props.onClick) {
184
185
  props.onClick({
185
186
  originalEvent: event,
@@ -193,13 +194,46 @@ var SelectButtonItem = /*#__PURE__*/React__namespace.memo(function (props) {
193
194
  var onBlur = function onBlur() {
194
195
  setFocusedState(false);
195
196
  };
196
- var onKeyDown = function onKeyDown(event) {
197
- var keyCode = event.which;
198
- if (keyCode === 32) {
199
- onClick(event);
200
- event.preventDefault();
197
+ var _onKeyDown = function onKeyDown(event, index) {
198
+ switch (event.code) {
199
+ case 'Space':
200
+ {
201
+ _onClick(event, index);
202
+ event.preventDefault();
203
+ break;
204
+ }
205
+ case 'ArrowDown':
206
+ case 'ArrowRight':
207
+ {
208
+ changeTabIndexes(event, 'next');
209
+ event.preventDefault();
210
+ break;
211
+ }
212
+ case 'ArrowUp':
213
+ case 'ArrowLeft':
214
+ {
215
+ changeTabIndexes(event, 'prev');
216
+ event.preventDefault();
217
+ break;
218
+ }
201
219
  }
202
220
  };
221
+ var changeTabIndexes = function changeTabIndexes(event, direction) {
222
+ var firstTabableChild, index;
223
+ for (var i = 0; i <= props.elementRef.current.children.length - 1; i++) {
224
+ if (props.elementRef.current.children[i].getAttribute('tabindex') === '0') firstTabableChild = {
225
+ elem: props.elementRef.current.children[i],
226
+ index: i
227
+ };
228
+ }
229
+ if (direction === 'prev') {
230
+ if (firstTabableChild.index === 0) index = props.elementRef.current.children.length - 1;else index = firstTabableChild.index - 1;
231
+ } else {
232
+ if (firstTabableChild.index === props.elementRef.current.children.length - 1) index = 0;else index = firstTabableChild.index + 1;
233
+ }
234
+ props.setFocusedIndex(index);
235
+ props.elementRef.current.children[index].focus();
236
+ };
203
237
  var createContent = function createContent() {
204
238
  var labelProps = mergeProps({
205
239
  className: cx('label')
@@ -215,9 +249,14 @@ var SelectButtonItem = /*#__PURE__*/React__namespace.memo(function (props) {
215
249
  role: 'button',
216
250
  'aria-label': props.label,
217
251
  'aria-pressed': props.selected,
218
- onClick: onClick,
219
- onKeyDown: onKeyDown,
252
+ onClick: function onClick(event) {
253
+ return _onClick(event, props.index);
254
+ },
255
+ onKeyDown: function onKeyDown(event) {
256
+ return _onKeyDown(event, props.index);
257
+ },
220
258
  tabIndex: props.tabIndex,
259
+ 'aria-disabled': props.disabled,
221
260
  onFocus: onFocus,
222
261
  onBlur: onBlur
223
262
  }, getPTOptions('button'));
@@ -229,6 +268,10 @@ var SelectButton = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__names
229
268
  var mergeProps = hooks.useMergeProps();
230
269
  var context = React__namespace.useContext(api.PrimeReactContext);
231
270
  var props = SelectButtonBase.getProps(inProps, context);
271
+ var _React$useState = React__namespace.useState(0),
272
+ _React$useState2 = _slicedToArray(_React$useState, 2),
273
+ focusedIndex = _React$useState2[0],
274
+ setFocusedIndex = _React$useState2[1];
232
275
  var elementRef = React__namespace.useRef(null);
233
276
  var _SelectButtonBase$set = SelectButtonBase.setMetaData({
234
277
  props: props
@@ -301,7 +344,7 @@ var SelectButton = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__names
301
344
  return props.options.map(function (option, index) {
302
345
  var isDisabled = props.disabled || isOptionDisabled(option);
303
346
  var optionLabel = getOptionLabel(option);
304
- var tabIndex = isDisabled ? null : 0;
347
+ var tabIndex = index === focusedIndex ? '0' : '-1';
305
348
  var selected = isSelected(option);
306
349
  var key = optionLabel + '_' + index;
307
350
  return /*#__PURE__*/React__namespace.createElement(SelectButtonItem, {
@@ -310,13 +353,16 @@ var SelectButton = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__names
310
353
  label: optionLabel,
311
354
  className: option.className,
312
355
  option: option,
356
+ setFocusedIndex: setFocusedIndex,
313
357
  onClick: onOptionClick,
314
358
  template: props.itemTemplate,
315
359
  selected: selected,
316
360
  tabIndex: tabIndex,
361
+ index: index,
317
362
  disabled: isDisabled,
318
363
  ptm: ptm,
319
- cx: cx
364
+ cx: cx,
365
+ elementRef: elementRef
320
366
  });
321
367
  });
322
368
  }
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/api"),n=require("primereact/hooks"),r=require("primereact/tooltip"),l=require("primereact/utils"),o=require("primereact/componentbase"),a=require("primereact/ripple");function i(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var u=i(e);function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function p(e){if(Array.isArray(e))return c(e)}function d(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function m(e,t){if(e){if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}function f(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function b(e){return p(e)||d(e)||m(e)||f()}var v=o.ComponentBase.extend({defaultProps:{__TYPE:"SelectButton",id:null,value:null,options:null,optionLabel:null,optionValue:null,optionDisabled:null,tabIndex:null,multiple:!1,unselectable:!0,allowEmpty:!0,disabled:!1,style:null,className:null,dataKey:null,tooltip:null,tooltipOptions:null,itemTemplate:null,onChange:null,children:void 0},css:{classes:{root:function(e){return l.classNames("p-selectbutton p-buttonset p-component",e.props.className)},button:function(e){var t=e.itemProps;return l.classNames("p-button p-component",{"p-highlight":t.selected,"p-disabled":t.disabled,"p-focus":e.focusedState})},label:"p-button-label p-c"}}});function y(e){if(Array.isArray(e))return e}function g(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,l,o,a,i=[],u=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=o.call(n)).done)&&(i.push(r.value),i.length!==t);u=!0);}catch(e){s=!0,l=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw l}}return i}}function h(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var O=u.memo((function(e){var t,r,o,i=u.useState(!1),s=(r=2,y(t=i)||g(t,r)||m(t,r)||h()),c=s[0],p=s[1],d=n.useMergeProps(),f=e.ptm,b=e.cx,v=function(t){return f(t,{hostName:e.hostName,context:{selected:e.selected,disabled:e.disabled,option:e.option}})},O=function(t){e.onClick&&e.onClick({originalEvent:t,option:e.option})},j=(o=d({className:b("label")},v("label")),e.template?l.ObjectUtils.getJSXElement(e.template,e.option):u.createElement("span",o,e.label)),E=d({className:l.classNames(e.className,b("button",{itemProps:e,focusedState:c})),role:"button","aria-label":e.label,"aria-pressed":e.selected,onClick:O,onKeyDown:function(e){32===e.which&&(O(e),e.preventDefault())},tabIndex:e.tabIndex,onFocus:function(){p(!0)},onBlur:function(){p(!1)}},v("button"));return u.createElement("div",E,j,!e.disabled&&u.createElement(a.Ripple,null))}));O.displayName="SelectButtonItem";var j=u.memo(u.forwardRef((function(e,o){var a=n.useMergeProps(),i=u.useContext(t.PrimeReactContext),c=v.getProps(e,i),p=u.useRef(null),d=v.setMetaData({props:c}),m=d.ptm,f=d.cx,y=function(e){if(!c.disabled&&!j(e.option)){var t=E(e.option);if(!t||c.unselectable&&c.allowEmpty){var n,r=h(e.option);if(c.multiple){var o=c.value?b(c.value):[];n=t?o.filter((function(e){return!l.ObjectUtils.equals(e,r,c.dataKey)})):[].concat(b(o),[r])}else n=t?null:r;c.onChange&&c.onChange({originalEvent:e.originalEvent,value:n,stopPropagation:function(){e.originalEvent.stopPropagation()},preventDefault:function(){e.originalEvent.preventDefault()},target:{name:c.name,id:c.id,value:n}})}}},g=function(e){return c.optionLabel?l.ObjectUtils.resolveFieldData(e,c.optionLabel):e&&void 0!==e.label?e.label:e},h=function(e){return c.optionValue?l.ObjectUtils.resolveFieldData(e,c.optionValue):e&&void 0!==e.value?e.value:e},j=function(e){return c.optionDisabled?l.ObjectUtils.isFunction(c.optionDisabled)?c.optionDisabled(e):l.ObjectUtils.resolveFieldData(e,c.optionDisabled):!(!e||void 0===e.disabled)&&e.disabled},E=function(e){var t=h(e);return c.multiple?!(!c.value||!c.value.length)&&c.value.some((function(e){return l.ObjectUtils.equals(e,t,c.dataKey)})):l.ObjectUtils.equals(c.value,t,c.dataKey)};u.useImperativeHandle(o,(function(){return{props:c,focus:function(){return l.DomHandler.focusFirstElement(p.current)},getElement:function(){return p.current}}}));var N=l.ObjectUtils.isNotEmpty(c.tooltip),S=c.options&&c.options.length?c.options.map((function(e,t){var n=c.disabled||j(e),r=g(e),l=n?null:0,o=E(e);return u.createElement(O,{hostName:"SelectButton",key:r+"_"+t,label:r,className:e.className,option:e,onClick:y,template:c.itemTemplate,selected:o,tabIndex:l,disabled:n,ptm:m,cx:f})})):null,D=a({ref:p,id:c.id,className:f("root"),style:c.style,role:"group"},v.getOtherProps(c),m("root"));return u.createElement(u.Fragment,null,u.createElement("div",D,S),N&&u.createElement(r.Tooltip,s({target:p,content:c.tooltip},c.tooltipOptions,{pt:m("tooltip")})))})));j.displayName="SelectButton",exports.SelectButton=j;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/api"),n=require("primereact/hooks"),r=require("primereact/tooltip"),l=require("primereact/utils"),o=require("primereact/componentbase"),a=require("primereact/ripple");function i(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var u=i(e);function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function p(e){if(Array.isArray(e))return s(e)}function d(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function f(e,t){if(e){if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}function m(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function b(e){return p(e)||d(e)||f(e)||m()}function v(e){if(Array.isArray(e))return e}function y(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,l,o,a,i=[],u=!0,c=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=o.call(n)).done)&&(i.push(r.value),i.length!==t);u=!0);}catch(e){c=!0,l=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw l}}return i}}function g(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function h(e,t){return v(e)||y(e,t)||f(e,t)||g()}var x=o.ComponentBase.extend({defaultProps:{__TYPE:"SelectButton",id:null,value:null,options:null,optionLabel:null,optionValue:null,optionDisabled:null,tabIndex:null,multiple:!1,unselectable:!0,allowEmpty:!0,disabled:!1,style:null,className:null,dataKey:null,tooltip:null,tooltipOptions:null,itemTemplate:null,onChange:null,children:void 0},css:{classes:{root:function(e){return l.classNames("p-selectbutton p-buttonset p-component",e.props.className)},button:function(e){var t=e.itemProps;return l.classNames("p-button p-component",{"p-highlight":t.selected,"p-disabled":t.disabled,"p-focus":e.focusedState})},label:"p-button-label p-c"}}}),O=u.memo((function(e){var t,r=h(u.useState(!1),2),o=r[0],i=r[1],c=n.useMergeProps(),s=e.ptm,p=e.cx,d=function(t){return s(t,{hostName:e.hostName,context:{selected:e.selected,disabled:e.disabled,option:e.option}})},f=function(t,n){e.setFocusedIndex(n),e.onClick&&e.onClick({originalEvent:t,option:e.option})},m=function(e,t){switch(e.code){case"Space":f(e,t),e.preventDefault();break;case"ArrowDown":case"ArrowRight":b(e,"next"),e.preventDefault();break;case"ArrowUp":case"ArrowLeft":b(e,"prev"),e.preventDefault()}},b=function(t,n){for(var r,l,o=0;o<=e.elementRef.current.children.length-1;o++)"0"===e.elementRef.current.children[o].getAttribute("tabindex")&&(r={elem:e.elementRef.current.children[o],index:o});e.setFocusedIndex(l="prev"===n?0===r.index?e.elementRef.current.children.length-1:r.index-1:r.index===e.elementRef.current.children.length-1?0:r.index+1),e.elementRef.current.children[l].focus()},v=(t=c({className:p("label")},d("label")),e.template?l.ObjectUtils.getJSXElement(e.template,e.option):u.createElement("span",t,e.label)),y=c({className:l.classNames(e.className,p("button",{itemProps:e,focusedState:o})),role:"button","aria-label":e.label,"aria-pressed":e.selected,onClick:function(t){return f(t,e.index)},onKeyDown:function(t){return m(t,e.index)},tabIndex:e.tabIndex,"aria-disabled":e.disabled,onFocus:function(){i(!0)},onBlur:function(){i(!1)}},d("button"));return u.createElement("div",y,v,!e.disabled&&u.createElement(a.Ripple,null))}));O.displayName="SelectButtonItem";var j=u.memo(u.forwardRef((function(e,o){var a=n.useMergeProps(),i=u.useContext(t.PrimeReactContext),s=x.getProps(e,i),p=h(u.useState(0),2),d=p[0],f=p[1],m=u.useRef(null),v=x.setMetaData({props:s}),y=v.ptm,g=v.cx,j=function(e){if(!s.disabled&&!w(e.option)){var t=D(e.option);if(!t||s.unselectable&&s.allowEmpty){var n,r=S(e.option);if(s.multiple){var o=s.value?b(s.value):[];n=t?o.filter((function(e){return!l.ObjectUtils.equals(e,r,s.dataKey)})):[].concat(b(o),[r])}else n=t?null:r;s.onChange&&s.onChange({originalEvent:e.originalEvent,value:n,stopPropagation:function(){e.originalEvent.stopPropagation()},preventDefault:function(){e.originalEvent.preventDefault()},target:{name:s.name,id:s.id,value:n}})}}},E=function(e){return s.optionLabel?l.ObjectUtils.resolveFieldData(e,s.optionLabel):e&&void 0!==e.label?e.label:e},S=function(e){return s.optionValue?l.ObjectUtils.resolveFieldData(e,s.optionValue):e&&void 0!==e.value?e.value:e},w=function(e){return s.optionDisabled?l.ObjectUtils.isFunction(s.optionDisabled)?s.optionDisabled(e):l.ObjectUtils.resolveFieldData(e,s.optionDisabled):!(!e||void 0===e.disabled)&&e.disabled},D=function(e){var t=S(e);return s.multiple?!(!s.value||!s.value.length)&&s.value.some((function(e){return l.ObjectUtils.equals(e,t,s.dataKey)})):l.ObjectUtils.equals(s.value,t,s.dataKey)};u.useImperativeHandle(o,(function(){return{props:s,focus:function(){return l.DomHandler.focusFirstElement(m.current)},getElement:function(){return m.current}}}));var N=l.ObjectUtils.isNotEmpty(s.tooltip),P=s.options&&s.options.length?s.options.map((function(e,t){var n=s.disabled||w(e),r=E(e),l=t===d?"0":"-1",o=D(e);return u.createElement(O,{hostName:"SelectButton",key:r+"_"+t,label:r,className:e.className,option:e,setFocusedIndex:f,onClick:j,template:s.itemTemplate,selected:o,tabIndex:l,index:t,disabled:n,ptm:y,cx:g,elementRef:m})})):null,A=a({ref:m,id:s.id,className:g("root"),style:s.style,role:"group"},x.getOtherProps(s),y("root"));return u.createElement(u.Fragment,null,u.createElement("div",A,P),N&&u.createElement(r.Tooltip,c({target:m,content:s.tooltip},s.tooltipOptions,{pt:y("tooltip")})))})));j.displayName="SelectButton",exports.SelectButton=j;
@@ -53,6 +53,46 @@ function _toConsumableArray(arr) {
53
53
  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
54
54
  }
55
55
 
56
+ function _arrayWithHoles(arr) {
57
+ if (Array.isArray(arr)) return arr;
58
+ }
59
+
60
+ function _iterableToArrayLimit(r, l) {
61
+ var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
62
+ if (null != t) {
63
+ var e,
64
+ n,
65
+ i,
66
+ u,
67
+ a = [],
68
+ f = !0,
69
+ o = !1;
70
+ try {
71
+ if (i = (t = t.call(r)).next, 0 === l) {
72
+ if (Object(t) !== t) return;
73
+ f = !1;
74
+ } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
75
+ } catch (r) {
76
+ o = !0, n = r;
77
+ } finally {
78
+ try {
79
+ if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
80
+ } finally {
81
+ if (o) throw n;
82
+ }
83
+ }
84
+ return a;
85
+ }
86
+ }
87
+
88
+ function _nonIterableRest() {
89
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
90
+ }
91
+
92
+ function _slicedToArray(arr, i) {
93
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
94
+ }
95
+
56
96
  var classes = {
57
97
  root: function root(_ref) {
58
98
  var props = _ref.props;
@@ -97,46 +137,6 @@ var SelectButtonBase = ComponentBase.extend({
97
137
  }
98
138
  });
99
139
 
100
- function _arrayWithHoles(arr) {
101
- if (Array.isArray(arr)) return arr;
102
- }
103
-
104
- function _iterableToArrayLimit(r, l) {
105
- var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
106
- if (null != t) {
107
- var e,
108
- n,
109
- i,
110
- u,
111
- a = [],
112
- f = !0,
113
- o = !1;
114
- try {
115
- if (i = (t = t.call(r)).next, 0 === l) {
116
- if (Object(t) !== t) return;
117
- f = !1;
118
- } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
119
- } catch (r) {
120
- o = !0, n = r;
121
- } finally {
122
- try {
123
- if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
124
- } finally {
125
- if (o) throw n;
126
- }
127
- }
128
- return a;
129
- }
130
- }
131
-
132
- function _nonIterableRest() {
133
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
134
- }
135
-
136
- function _slicedToArray(arr, i) {
137
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
138
- }
139
-
140
140
  var SelectButtonItem = /*#__PURE__*/React.memo(function (props) {
141
141
  var _React$useState = React.useState(false),
142
142
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -155,7 +155,8 @@ var SelectButtonItem = /*#__PURE__*/React.memo(function (props) {
155
155
  }
156
156
  });
157
157
  };
158
- var onClick = function onClick(event) {
158
+ var _onClick = function onClick(event, index) {
159
+ props.setFocusedIndex(index);
159
160
  if (props.onClick) {
160
161
  props.onClick({
161
162
  originalEvent: event,
@@ -169,13 +170,46 @@ var SelectButtonItem = /*#__PURE__*/React.memo(function (props) {
169
170
  var onBlur = function onBlur() {
170
171
  setFocusedState(false);
171
172
  };
172
- var onKeyDown = function onKeyDown(event) {
173
- var keyCode = event.which;
174
- if (keyCode === 32) {
175
- onClick(event);
176
- event.preventDefault();
173
+ var _onKeyDown = function onKeyDown(event, index) {
174
+ switch (event.code) {
175
+ case 'Space':
176
+ {
177
+ _onClick(event, index);
178
+ event.preventDefault();
179
+ break;
180
+ }
181
+ case 'ArrowDown':
182
+ case 'ArrowRight':
183
+ {
184
+ changeTabIndexes(event, 'next');
185
+ event.preventDefault();
186
+ break;
187
+ }
188
+ case 'ArrowUp':
189
+ case 'ArrowLeft':
190
+ {
191
+ changeTabIndexes(event, 'prev');
192
+ event.preventDefault();
193
+ break;
194
+ }
177
195
  }
178
196
  };
197
+ var changeTabIndexes = function changeTabIndexes(event, direction) {
198
+ var firstTabableChild, index;
199
+ for (var i = 0; i <= props.elementRef.current.children.length - 1; i++) {
200
+ if (props.elementRef.current.children[i].getAttribute('tabindex') === '0') firstTabableChild = {
201
+ elem: props.elementRef.current.children[i],
202
+ index: i
203
+ };
204
+ }
205
+ if (direction === 'prev') {
206
+ if (firstTabableChild.index === 0) index = props.elementRef.current.children.length - 1;else index = firstTabableChild.index - 1;
207
+ } else {
208
+ if (firstTabableChild.index === props.elementRef.current.children.length - 1) index = 0;else index = firstTabableChild.index + 1;
209
+ }
210
+ props.setFocusedIndex(index);
211
+ props.elementRef.current.children[index].focus();
212
+ };
179
213
  var createContent = function createContent() {
180
214
  var labelProps = mergeProps({
181
215
  className: cx('label')
@@ -191,9 +225,14 @@ var SelectButtonItem = /*#__PURE__*/React.memo(function (props) {
191
225
  role: 'button',
192
226
  'aria-label': props.label,
193
227
  'aria-pressed': props.selected,
194
- onClick: onClick,
195
- onKeyDown: onKeyDown,
228
+ onClick: function onClick(event) {
229
+ return _onClick(event, props.index);
230
+ },
231
+ onKeyDown: function onKeyDown(event) {
232
+ return _onKeyDown(event, props.index);
233
+ },
196
234
  tabIndex: props.tabIndex,
235
+ 'aria-disabled': props.disabled,
197
236
  onFocus: onFocus,
198
237
  onBlur: onBlur
199
238
  }, getPTOptions('button'));
@@ -205,6 +244,10 @@ var SelectButton = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functi
205
244
  var mergeProps = useMergeProps();
206
245
  var context = React.useContext(PrimeReactContext);
207
246
  var props = SelectButtonBase.getProps(inProps, context);
247
+ var _React$useState = React.useState(0),
248
+ _React$useState2 = _slicedToArray(_React$useState, 2),
249
+ focusedIndex = _React$useState2[0],
250
+ setFocusedIndex = _React$useState2[1];
208
251
  var elementRef = React.useRef(null);
209
252
  var _SelectButtonBase$set = SelectButtonBase.setMetaData({
210
253
  props: props
@@ -277,7 +320,7 @@ var SelectButton = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functi
277
320
  return props.options.map(function (option, index) {
278
321
  var isDisabled = props.disabled || isOptionDisabled(option);
279
322
  var optionLabel = getOptionLabel(option);
280
- var tabIndex = isDisabled ? null : 0;
323
+ var tabIndex = index === focusedIndex ? '0' : '-1';
281
324
  var selected = isSelected(option);
282
325
  var key = optionLabel + '_' + index;
283
326
  return /*#__PURE__*/React.createElement(SelectButtonItem, {
@@ -286,13 +329,16 @@ var SelectButton = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functi
286
329
  label: optionLabel,
287
330
  className: option.className,
288
331
  option: option,
332
+ setFocusedIndex: setFocusedIndex,
289
333
  onClick: onOptionClick,
290
334
  template: props.itemTemplate,
291
335
  selected: selected,
292
336
  tabIndex: tabIndex,
337
+ index: index,
293
338
  disabled: isDisabled,
294
339
  ptm: ptm,
295
- cx: cx
340
+ cx: cx,
341
+ elementRef: elementRef
296
342
  });
297
343
  });
298
344
  }
@@ -1 +1 @@
1
- import*as e from"react";import{PrimeReactContext as t}from"primereact/api";import{useMergeProps as n}from"primereact/hooks";import{Tooltip as o}from"primereact/tooltip";import{classNames as l,ObjectUtils as r,DomHandler as a}from"primereact/utils";import{ComponentBase as i}from"primereact/componentbase";import{Ripple as u}from"primereact/ripple";function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},s.apply(this,arguments)}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function c(e){if(Array.isArray(e))return p(e)}function m(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function d(e,t){if(e){if("string"==typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p(e,t):void 0}}function f(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function b(e){return c(e)||m(e)||d(e)||f()}var v=i.extend({defaultProps:{__TYPE:"SelectButton",id:null,value:null,options:null,optionLabel:null,optionValue:null,optionDisabled:null,tabIndex:null,multiple:!1,unselectable:!0,allowEmpty:!0,disabled:!1,style:null,className:null,dataKey:null,tooltip:null,tooltipOptions:null,itemTemplate:null,onChange:null,children:void 0},css:{classes:{root:function(e){return l("p-selectbutton p-buttonset p-component",e.props.className)},button:function(e){var t=e.itemProps;return l("p-button p-component",{"p-highlight":t.selected,"p-disabled":t.disabled,"p-focus":e.focusedState})},label:"p-button-label p-c"}}});function y(e){if(Array.isArray(e))return e}function g(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,l,r,a,i=[],u=!0,s=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(o=r.call(n)).done)&&(i.push(o.value),i.length!==t);u=!0);}catch(e){s=!0,l=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw l}}return i}}function h(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var E=e.memo((function(t){var o,a,i,s=e.useState(!1),p=(a=2,y(o=s)||g(o,a)||d(o,a)||h()),c=p[0],m=p[1],f=n(),b=t.ptm,v=t.cx,E=function(e){return b(e,{hostName:t.hostName,context:{selected:t.selected,disabled:t.disabled,option:t.option}})},S=function(e){t.onClick&&t.onClick({originalEvent:e,option:t.option})},N=(i=f({className:v("label")},E("label")),t.template?r.getJSXElement(t.template,t.option):e.createElement("span",i,t.label)),D=f({className:l(t.className,v("button",{itemProps:t,focusedState:c})),role:"button","aria-label":t.label,"aria-pressed":t.selected,onClick:S,onKeyDown:function(e){32===e.which&&(S(e),e.preventDefault())},tabIndex:t.tabIndex,onFocus:function(){m(!0)},onBlur:function(){m(!1)}},E("button"));return e.createElement("div",D,N,!t.disabled&&e.createElement(u,null))}));E.displayName="SelectButtonItem";var S=e.memo(e.forwardRef((function(l,i){var u=n(),p=e.useContext(t),c=v.getProps(l,p),m=e.useRef(null),d=v.setMetaData({props:c}),f=d.ptm,y=d.cx,g=function(e){if(!c.disabled&&!N(e.option)){var t=D(e.option);if(!t||c.unselectable&&c.allowEmpty){var n,o=S(e.option);if(c.multiple){var l=c.value?b(c.value):[];n=t?l.filter((function(e){return!r.equals(e,o,c.dataKey)})):[].concat(b(l),[o])}else n=t?null:o;c.onChange&&c.onChange({originalEvent:e.originalEvent,value:n,stopPropagation:function(){e.originalEvent.stopPropagation()},preventDefault:function(){e.originalEvent.preventDefault()},target:{name:c.name,id:c.id,value:n}})}}},h=function(e){return c.optionLabel?r.resolveFieldData(e,c.optionLabel):e&&void 0!==e.label?e.label:e},S=function(e){return c.optionValue?r.resolveFieldData(e,c.optionValue):e&&void 0!==e.value?e.value:e},N=function(e){return c.optionDisabled?r.isFunction(c.optionDisabled)?c.optionDisabled(e):r.resolveFieldData(e,c.optionDisabled):!(!e||void 0===e.disabled)&&e.disabled},D=function(e){var t=S(e);return c.multiple?!(!c.value||!c.value.length)&&c.value.some((function(e){return r.equals(e,t,c.dataKey)})):r.equals(c.value,t,c.dataKey)};e.useImperativeHandle(i,(function(){return{props:c,focus:function(){return a.focusFirstElement(m.current)},getElement:function(){return m.current}}}));var w=r.isNotEmpty(c.tooltip),x=c.options&&c.options.length?c.options.map((function(t,n){var o=c.disabled||N(t),l=h(t),r=o?null:0,a=D(t);return e.createElement(E,{hostName:"SelectButton",key:l+"_"+n,label:l,className:t.className,option:t,onClick:g,template:c.itemTemplate,selected:a,tabIndex:r,disabled:o,ptm:f,cx:y})})):null,I=u({ref:m,id:c.id,className:y("root"),style:c.style,role:"group"},v.getOtherProps(c),f("root"));return e.createElement(e.Fragment,null,e.createElement("div",I,x),w&&e.createElement(o,s({target:m,content:c.tooltip},c.tooltipOptions,{pt:f("tooltip")})))})));S.displayName="SelectButton";export{S as SelectButton};
1
+ import*as e from"react";import{PrimeReactContext as t}from"primereact/api";import{useMergeProps as n}from"primereact/hooks";import{Tooltip as r}from"primereact/tooltip";import{classNames as o,ObjectUtils as l,DomHandler as a}from"primereact/utils";import{ComponentBase as i}from"primereact/componentbase";import{Ripple as u}from"primereact/ripple";function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function p(e){if(Array.isArray(e))return s(e)}function d(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function m(e,t){if(e){if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}function f(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function b(e){return p(e)||d(e)||m(e)||f()}function v(e){if(Array.isArray(e))return e}function y(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,l,a,i=[],u=!0,c=!1;try{if(l=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=l.call(n)).done)&&(i.push(r.value),i.length!==t);u=!0);}catch(e){c=!0,o=e}finally{try{if(!u&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw o}}return i}}function h(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function g(e,t){return v(e)||y(e,t)||m(e,t)||h()}var x=i.extend({defaultProps:{__TYPE:"SelectButton",id:null,value:null,options:null,optionLabel:null,optionValue:null,optionDisabled:null,tabIndex:null,multiple:!1,unselectable:!0,allowEmpty:!0,disabled:!1,style:null,className:null,dataKey:null,tooltip:null,tooltipOptions:null,itemTemplate:null,onChange:null,children:void 0},css:{classes:{root:function(e){return o("p-selectbutton p-buttonset p-component",e.props.className)},button:function(e){var t=e.itemProps;return o("p-button p-component",{"p-highlight":t.selected,"p-disabled":t.disabled,"p-focus":e.focusedState})},label:"p-button-label p-c"}}}),E=e.memo((function(t){var r,a=g(e.useState(!1),2),i=a[0],c=a[1],s=n(),p=t.ptm,d=t.cx,m=function(e){return p(e,{hostName:t.hostName,context:{selected:t.selected,disabled:t.disabled,option:t.option}})},f=function(e,n){t.setFocusedIndex(n),t.onClick&&t.onClick({originalEvent:e,option:t.option})},b=function(e,t){switch(e.code){case"Space":f(e,t),e.preventDefault();break;case"ArrowDown":case"ArrowRight":v(e,"next"),e.preventDefault();break;case"ArrowUp":case"ArrowLeft":v(e,"prev"),e.preventDefault()}},v=function(e,n){for(var r,o,l=0;l<=t.elementRef.current.children.length-1;l++)"0"===t.elementRef.current.children[l].getAttribute("tabindex")&&(r={elem:t.elementRef.current.children[l],index:l});t.setFocusedIndex(o="prev"===n?0===r.index?t.elementRef.current.children.length-1:r.index-1:r.index===t.elementRef.current.children.length-1?0:r.index+1),t.elementRef.current.children[o].focus()},y=(r=s({className:d("label")},m("label")),t.template?l.getJSXElement(t.template,t.option):e.createElement("span",r,t.label)),h=s({className:o(t.className,d("button",{itemProps:t,focusedState:i})),role:"button","aria-label":t.label,"aria-pressed":t.selected,onClick:function(e){return f(e,t.index)},onKeyDown:function(e){return b(e,t.index)},tabIndex:t.tabIndex,"aria-disabled":t.disabled,onFocus:function(){c(!0)},onBlur:function(){c(!1)}},m("button"));return e.createElement("div",h,y,!t.disabled&&e.createElement(u,null))}));E.displayName="SelectButtonItem";var S=e.memo(e.forwardRef((function(o,i){var u=n(),s=e.useContext(t),p=x.getProps(o,s),d=g(e.useState(0),2),m=d[0],f=d[1],v=e.useRef(null),y=x.setMetaData({props:p}),h=y.ptm,S=y.cx,w=function(e){if(!p.disabled&&!I(e.option)){var t=N(e.option);if(!t||p.unselectable&&p.allowEmpty){var n,r=A(e.option);if(p.multiple){var o=p.value?b(p.value):[];n=t?o.filter((function(e){return!l.equals(e,r,p.dataKey)})):[].concat(b(o),[r])}else n=t?null:r;p.onChange&&p.onChange({originalEvent:e.originalEvent,value:n,stopPropagation:function(){e.originalEvent.stopPropagation()},preventDefault:function(){e.originalEvent.preventDefault()},target:{name:p.name,id:p.id,value:n}})}}},D=function(e){return p.optionLabel?l.resolveFieldData(e,p.optionLabel):e&&void 0!==e.label?e.label:e},A=function(e){return p.optionValue?l.resolveFieldData(e,p.optionValue):e&&void 0!==e.value?e.value:e},I=function(e){return p.optionDisabled?l.isFunction(p.optionDisabled)?p.optionDisabled(e):l.resolveFieldData(e,p.optionDisabled):!(!e||void 0===e.disabled)&&e.disabled},N=function(e){var t=A(e);return p.multiple?!(!p.value||!p.value.length)&&p.value.some((function(e){return l.equals(e,t,p.dataKey)})):l.equals(p.value,t,p.dataKey)};e.useImperativeHandle(i,(function(){return{props:p,focus:function(){return a.focusFirstElement(v.current)},getElement:function(){return v.current}}}));var O=l.isNotEmpty(p.tooltip),F=p.options&&p.options.length?p.options.map((function(t,n){var r=p.disabled||I(t),o=D(t),l=n===m?"0":"-1",a=N(t);return e.createElement(E,{hostName:"SelectButton",key:o+"_"+n,label:o,className:t.className,option:t,setFocusedIndex:f,onClick:w,template:p.itemTemplate,selected:a,tabIndex:l,index:n,disabled:r,ptm:h,cx:S,elementRef:v})})):null,R=u({ref:v,id:p.id,className:S("root"),style:p.style,role:"group"},x.getOtherProps(p),h("root"));return e.createElement(e.Fragment,null,e.createElement("div",R,F),O&&e.createElement(r,c({target:v,content:p.tooltip},p.tooltipOptions,{pt:h("tooltip")})))})));S.displayName="SelectButton";export{S as SelectButton};