primereact 10.4.0 → 10.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/calendar/calendar.cjs.js +12 -4
- package/calendar/calendar.cjs.min.js +1 -1
- package/calendar/calendar.esm.js +12 -4
- package/calendar/calendar.esm.min.js +1 -1
- package/calendar/calendar.js +12 -4
- package/calendar/calendar.min.js +1 -1
- package/checkbox/checkbox.cjs.js +2 -0
- package/checkbox/checkbox.cjs.min.js +1 -1
- package/checkbox/checkbox.esm.js +2 -0
- package/checkbox/checkbox.esm.min.js +1 -1
- package/checkbox/checkbox.js +2 -0
- package/checkbox/checkbox.min.js +1 -1
- package/chips/chips.cjs.js +109 -20
- package/chips/chips.cjs.min.js +1 -1
- package/chips/chips.esm.js +109 -20
- package/chips/chips.esm.min.js +1 -1
- package/chips/chips.js +109 -20
- package/chips/chips.min.js +1 -1
- package/core/core.js +643 -465
- package/core/core.min.js +4 -4
- package/dropdown/dropdown.cjs.js +313 -141
- package/dropdown/dropdown.cjs.min.js +1 -1
- package/dropdown/dropdown.esm.js +313 -141
- package/dropdown/dropdown.esm.min.js +1 -1
- package/dropdown/dropdown.js +313 -141
- package/dropdown/dropdown.min.js +1 -1
- package/inputnumber/inputnumber.cjs.js +21 -17
- package/inputnumber/inputnumber.cjs.min.js +1 -1
- package/inputnumber/inputnumber.esm.js +21 -17
- package/inputnumber/inputnumber.esm.min.js +1 -1
- package/inputnumber/inputnumber.js +21 -17
- package/inputnumber/inputnumber.min.js +1 -1
- package/inputswitch/inputswitch.cjs.js +3 -1
- package/inputswitch/inputswitch.cjs.min.js +1 -1
- package/inputswitch/inputswitch.esm.js +3 -1
- package/inputswitch/inputswitch.esm.min.js +1 -1
- package/inputswitch/inputswitch.js +3 -1
- package/inputswitch/inputswitch.min.js +1 -1
- package/knob/knob.cjs.js +62 -0
- package/knob/knob.cjs.min.js +1 -1
- package/knob/knob.esm.js +62 -0
- package/knob/knob.esm.min.js +1 -1
- package/knob/knob.js +62 -0
- package/knob/knob.min.js +1 -1
- package/listbox/listbox.cjs.js +362 -92
- package/listbox/listbox.cjs.min.js +1 -1
- package/listbox/listbox.esm.js +363 -93
- package/listbox/listbox.esm.min.js +1 -1
- package/listbox/listbox.js +362 -92
- package/listbox/listbox.min.js +1 -1
- package/menu/menu.cjs.js +4 -2
- package/menu/menu.cjs.min.js +1 -1
- package/menu/menu.esm.js +4 -2
- package/menu/menu.esm.min.js +1 -1
- package/menu/menu.js +5 -4
- package/menu/menu.min.js +1 -1
- package/multiselect/multiselect.cjs.js +377 -107
- package/multiselect/multiselect.cjs.min.js +1 -1
- package/multiselect/multiselect.esm.js +377 -107
- package/multiselect/multiselect.esm.min.js +1 -1
- package/multiselect/multiselect.js +377 -107
- package/multiselect/multiselect.min.js +1 -1
- package/package.json +1 -1
- package/paginator/paginator.cjs.js +251 -251
- package/paginator/paginator.cjs.min.js +1 -1
- package/paginator/paginator.esm.js +258 -258
- package/paginator/paginator.esm.min.js +1 -1
- package/paginator/paginator.js +251 -251
- package/paginator/paginator.min.js +1 -1
- package/panelmenu/panelmenu.cjs.js +2 -1
- package/panelmenu/panelmenu.cjs.min.js +1 -1
- package/panelmenu/panelmenu.esm.js +2 -1
- package/panelmenu/panelmenu.esm.min.js +1 -1
- package/panelmenu/panelmenu.js +3 -3
- package/panelmenu/panelmenu.min.js +1 -1
- package/passthrough/tailwind/index.cjs.js +3 -2
- package/passthrough/tailwind/index.cjs.min.js +1 -1
- package/passthrough/tailwind/index.esm.js +3 -2
- package/passthrough/tailwind/index.esm.min.js +1 -1
- package/passthrough/tailwind/index.js +3 -2
- package/passthrough/tailwind/index.min.js +1 -1
- package/password/password.cjs.js +22 -20
- package/password/password.cjs.min.js +1 -1
- package/password/password.esm.js +22 -20
- package/password/password.esm.min.js +1 -1
- package/password/password.js +22 -20
- package/password/password.min.js +1 -1
- package/primereact.all.cjs.js +1473 -485
- package/primereact.all.cjs.min.js +1 -1
- package/primereact.all.esm.js +1473 -485
- package/primereact.all.esm.min.js +1 -1
- package/primereact.all.js +1473 -485
- package/primereact.all.min.js +1 -1
- package/radiobutton/radiobutton.cjs.js +1 -0
- package/radiobutton/radiobutton.cjs.min.js +1 -1
- package/radiobutton/radiobutton.esm.js +1 -0
- package/radiobutton/radiobutton.esm.min.js +1 -1
- package/radiobutton/radiobutton.js +1 -0
- package/radiobutton/radiobutton.min.js +1 -1
- package/rating/rating.cjs.js +103 -4
- package/rating/rating.cjs.min.js +1 -1
- package/rating/rating.esm.js +103 -4
- package/rating/rating.esm.min.js +1 -1
- package/rating/rating.js +103 -4
- package/rating/rating.min.js +1 -1
- package/resources/themes/arya-blue/theme.css +328 -67
- package/resources/themes/arya-green/theme.css +328 -67
- package/resources/themes/arya-orange/theme.css +328 -67
- package/resources/themes/arya-purple/theme.css +26 -6
- package/resources/themes/bootstrap4-dark-blue/theme.css +328 -67
- package/resources/themes/bootstrap4-dark-purple/theme.css +26 -6
- package/resources/themes/bootstrap4-light-blue/theme.css +328 -67
- package/resources/themes/bootstrap4-light-purple/theme.css +26 -6
- package/resources/themes/fluent-light/theme.css +327 -66
- package/resources/themes/lara-dark-amber/theme.css +328 -67
- package/resources/themes/lara-dark-blue/theme.css +328 -67
- package/resources/themes/lara-dark-cyan/theme.css +328 -67
- package/resources/themes/lara-dark-green/theme.css +328 -67
- package/resources/themes/lara-dark-indigo/theme.css +328 -67
- package/resources/themes/lara-dark-pink/theme.css +328 -67
- package/resources/themes/lara-dark-purple/theme.css +26 -6
- package/resources/themes/lara-dark-teal/theme.css +328 -67
- package/resources/themes/lara-light-amber/theme.css +328 -67
- package/resources/themes/lara-light-blue/theme.css +328 -67
- package/resources/themes/lara-light-cyan/theme.css +328 -67
- package/resources/themes/lara-light-green/theme.css +328 -67
- package/resources/themes/lara-light-indigo/theme.css +328 -67
- package/resources/themes/lara-light-pink/theme.css +328 -67
- package/resources/themes/lara-light-purple/theme.css +26 -6
- package/resources/themes/lara-light-teal/theme.css +328 -67
- package/resources/themes/luna-amber/theme.css +328 -67
- package/resources/themes/luna-blue/theme.css +328 -67
- package/resources/themes/luna-green/theme.css +328 -67
- package/resources/themes/luna-pink/theme.css +328 -67
- package/resources/themes/md-dark-deeppurple/theme.css +158 -138
- package/resources/themes/md-dark-indigo/theme.css +454 -193
- package/resources/themes/md-light-deeppurple/theme.css +26 -6
- package/resources/themes/md-light-indigo/theme.css +328 -67
- package/resources/themes/mdc-dark-deeppurple/theme.css +158 -138
- package/resources/themes/mdc-dark-indigo/theme.css +454 -193
- package/resources/themes/mdc-light-deeppurple/theme.css +26 -6
- package/resources/themes/mdc-light-indigo/theme.css +328 -67
- package/resources/themes/mira/theme.css +328 -67
- package/resources/themes/nano/theme.css +328 -67
- package/resources/themes/nova/theme.css +328 -67
- package/resources/themes/nova-accent/theme.css +328 -67
- package/resources/themes/nova-alt/theme.css +328 -67
- package/resources/themes/rhea/theme.css +328 -67
- package/resources/themes/saga-blue/theme.css +328 -67
- package/resources/themes/saga-green/theme.css +328 -67
- package/resources/themes/saga-orange/theme.css +328 -67
- package/resources/themes/saga-purple/theme.css +26 -6
- package/resources/themes/soho-dark/theme.css +353 -92
- package/resources/themes/soho-light/theme.css +328 -67
- package/resources/themes/tailwind-light/theme.css +329 -71
- package/resources/themes/vela-blue/theme.css +328 -67
- package/resources/themes/vela-green/theme.css +328 -67
- package/resources/themes/vela-orange/theme.css +328 -67
- package/resources/themes/vela-purple/theme.css +26 -6
- package/resources/themes/viva-dark/theme.css +328 -67
- package/resources/themes/viva-light/theme.css +328 -67
- package/selectbutton/selectbutton.cjs.js +96 -50
- package/selectbutton/selectbutton.cjs.min.js +1 -1
- package/selectbutton/selectbutton.esm.js +96 -50
- package/selectbutton/selectbutton.esm.min.js +1 -1
- package/selectbutton/selectbutton.js +96 -50
- package/selectbutton/selectbutton.min.js +1 -1
- package/slider/slider.cjs.js +25 -4
- package/slider/slider.cjs.min.js +1 -1
- package/slider/slider.esm.js +25 -4
- package/slider/slider.esm.min.js +1 -1
- package/slider/slider.js +25 -4
- package/slider/slider.min.js +1 -1
- package/splitter/splitter.cjs.js +16 -15
- package/splitter/splitter.cjs.min.js +1 -1
- package/splitter/splitter.esm.js +16 -15
- package/splitter/splitter.esm.min.js +1 -1
- package/splitter/splitter.js +16 -15
- package/splitter/splitter.min.js +1 -1
- package/tabview/tabview.cjs.js +6 -5
- package/tabview/tabview.cjs.min.js +1 -1
- package/tabview/tabview.d.ts +39 -34
- package/tabview/tabview.esm.js +6 -5
- package/tabview/tabview.esm.min.js +1 -1
- package/tabview/tabview.js +6 -5
- package/tabview/tabview.min.js +1 -1
- package/togglebutton/togglebutton.cjs.js +15 -14
- package/togglebutton/togglebutton.cjs.min.js +1 -1
- package/togglebutton/togglebutton.esm.js +14 -13
- package/togglebutton/togglebutton.esm.min.js +1 -1
- package/togglebutton/togglebutton.js +15 -14
- package/togglebutton/togglebutton.min.js +1 -1
- package/tristatecheckbox/tristatecheckbox.cjs.js +3 -2
- package/tristatecheckbox/tristatecheckbox.cjs.min.js +1 -1
- package/tristatecheckbox/tristatecheckbox.esm.js +3 -2
- package/tristatecheckbox/tristatecheckbox.esm.min.js +1 -1
- package/tristatecheckbox/tristatecheckbox.js +3 -2
- package/tristatecheckbox/tristatecheckbox.min.js +1 -1
- package/web-types.json +1 -1
package/listbox/listbox.cjs.js
CHANGED
|
@@ -121,6 +121,10 @@ function _toConsumableArray(arr) {
|
|
|
121
121
|
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread();
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
+
function _readOnlyError(name) {
|
|
125
|
+
throw new TypeError("\"" + name + "\" is read-only");
|
|
126
|
+
}
|
|
127
|
+
|
|
124
128
|
function _arrayWithHoles(arr) {
|
|
125
129
|
if (Array.isArray(arr)) return arr;
|
|
126
130
|
}
|
|
@@ -161,28 +165,26 @@ function _slicedToArray(arr, i) {
|
|
|
161
165
|
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest();
|
|
162
166
|
}
|
|
163
167
|
|
|
168
|
+
var _defaultProps;
|
|
164
169
|
var classes = {
|
|
165
170
|
itemGroup: 'p-listbox-item-group',
|
|
166
171
|
emptyMessage: 'p-listbox-empty-message',
|
|
167
|
-
list:
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
return props.virtualScrollerOptions ? utils.classNames('p-listbox-list', options.className) : 'p-listbox-list';
|
|
171
|
-
},
|
|
172
|
-
wrapper: function wrapper(_ref2) {
|
|
173
|
-
var props = _ref2.props;
|
|
172
|
+
list: 'p-listbox-list',
|
|
173
|
+
wrapper: function wrapper(_ref) {
|
|
174
|
+
var props = _ref.props;
|
|
174
175
|
return utils.classNames('p-listbox-list-wrapper', props.listClassName);
|
|
175
176
|
},
|
|
176
|
-
root: function root(
|
|
177
|
-
var props =
|
|
177
|
+
root: function root(_ref2) {
|
|
178
|
+
var props = _ref2.props;
|
|
178
179
|
return utils.classNames('p-listbox p-component', {
|
|
179
180
|
'p-disabled': props.disabled
|
|
180
181
|
}, props.className);
|
|
181
182
|
},
|
|
182
|
-
item: function item(
|
|
183
|
-
var props =
|
|
183
|
+
item: function item(_ref3) {
|
|
184
|
+
var props = _ref3.props;
|
|
184
185
|
return utils.classNames('p-listbox-item', {
|
|
185
186
|
'p-highlight': props.selected,
|
|
187
|
+
'p-focus': props.focusedOptionIndex === props.index,
|
|
186
188
|
'p-disabled': props.disabled
|
|
187
189
|
}, props.option.className);
|
|
188
190
|
},
|
|
@@ -191,22 +193,22 @@ var classes = {
|
|
|
191
193
|
filterInput: 'p-listbox-filter',
|
|
192
194
|
header: 'p-listbox-header'
|
|
193
195
|
};
|
|
194
|
-
var styles = "\n@layer primereact {\n .p-listbox-list-wrapper {\n overflow: auto;\n }\n \n .p-listbox-list {\n list-style-type: none;\n margin: 0;\n padding: 0;\n }\n \n .p-listbox-item {\n cursor: pointer;\n position: relative;\n overflow: hidden;\n }\n \n .p-listbox-filter-container {\n position: relative;\n }\n \n .p-listbox-filter-icon {\n position: absolute;\n top: 50%;\n margin-top: -.5rem;\n }\n \n .p-listbox-filter {\n width: 100%;\n }\n}\n";
|
|
196
|
+
var styles = "\n@layer primereact {\n .p-listbox-list-wrapper {\n overflow: auto;\n }\n \n .p-listbox-list {\n list-style-type: none;\n margin: 0;\n padding: 0;\n }\n \n .p-listbox-item {\n cursor: pointer;\n position: relative;\n overflow: hidden;\n outline: none;\n }\n \n .p-listbox-filter-container {\n position: relative;\n }\n \n .p-listbox-filter-icon {\n position: absolute;\n top: 50%;\n margin-top: -.5rem;\n }\n \n .p-listbox-filter {\n width: 100%;\n }\n}\n";
|
|
195
197
|
var inlineStyles = {
|
|
196
|
-
itemGroup: function itemGroup(
|
|
197
|
-
var scrollerOptions =
|
|
198
|
+
itemGroup: function itemGroup(_ref4) {
|
|
199
|
+
var scrollerOptions = _ref4.scrollerOptions;
|
|
198
200
|
return {
|
|
199
201
|
height: scrollerOptions.props ? scrollerOptions.props.itemSize : undefined
|
|
200
202
|
};
|
|
201
203
|
},
|
|
202
|
-
list: function list(
|
|
203
|
-
var options =
|
|
204
|
-
props =
|
|
204
|
+
list: function list(_ref5) {
|
|
205
|
+
var options = _ref5.options,
|
|
206
|
+
props = _ref5.props;
|
|
205
207
|
return props.virtualScrollerOptions ? options.style : undefined;
|
|
206
208
|
}
|
|
207
209
|
};
|
|
208
210
|
var ListBoxBase = componentbase.ComponentBase.extend({
|
|
209
|
-
defaultProps: {
|
|
211
|
+
defaultProps: (_defaultProps = {
|
|
210
212
|
__TYPE: 'ListBox',
|
|
211
213
|
className: null,
|
|
212
214
|
dataKey: null,
|
|
@@ -222,29 +224,13 @@ var ListBoxBase = componentbase.ComponentBase.extend({
|
|
|
222
224
|
filterPlaceholder: null,
|
|
223
225
|
filterTemplate: null,
|
|
224
226
|
filterValue: null,
|
|
227
|
+
selectOnFocus: false,
|
|
225
228
|
id: null,
|
|
226
229
|
itemTemplate: null,
|
|
227
230
|
listClassName: null,
|
|
228
231
|
listStyle: null,
|
|
229
|
-
metaKeySelection: false
|
|
230
|
-
|
|
231
|
-
onChange: null,
|
|
232
|
-
onFilterValueChange: null,
|
|
233
|
-
optionDisabled: null,
|
|
234
|
-
optionGroupChildren: null,
|
|
235
|
-
optionGroupLabel: null,
|
|
236
|
-
optionGroupTemplate: null,
|
|
237
|
-
optionLabel: null,
|
|
238
|
-
optionValue: null,
|
|
239
|
-
options: null,
|
|
240
|
-
style: null,
|
|
241
|
-
tabIndex: 0,
|
|
242
|
-
tooltip: null,
|
|
243
|
-
tooltipOptions: null,
|
|
244
|
-
value: null,
|
|
245
|
-
virtualScrollerOptions: null,
|
|
246
|
-
children: undefined
|
|
247
|
-
},
|
|
232
|
+
metaKeySelection: false
|
|
233
|
+
}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defaultProps, "selectOnFocus", false), "autoOptionFocus", true), "multiple", false), "onChange", null), "onFilterValueChange", null), "optionDisabled", null), "optionGroupChildren", null), "optionGroupLabel", null), "optionGroupTemplate", null), "optionLabel", null), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defaultProps, "optionValue", null), "options", null), "style", null), "tabIndex", 0), "tooltip", null), "tooltipOptions", null), "value", null), "virtualScrollerOptions", null), "children", undefined)),
|
|
248
234
|
css: {
|
|
249
235
|
classes: classes,
|
|
250
236
|
styles: styles,
|
|
@@ -341,7 +327,8 @@ var ListBoxItem = /*#__PURE__*/React__namespace.memo(function (props) {
|
|
|
341
327
|
context: {
|
|
342
328
|
selected: props.selected,
|
|
343
329
|
disabled: props.disabled,
|
|
344
|
-
focused: focusedState
|
|
330
|
+
focused: focusedState,
|
|
331
|
+
focusedOptionIndex: props.focusedOptionIndex
|
|
345
332
|
}
|
|
346
333
|
});
|
|
347
334
|
};
|
|
@@ -351,15 +338,6 @@ var ListBoxItem = /*#__PURE__*/React__namespace.memo(function (props) {
|
|
|
351
338
|
var onBlur = function onBlur(event) {
|
|
352
339
|
setFocusedState(false);
|
|
353
340
|
};
|
|
354
|
-
var onClick = function onClick(event) {
|
|
355
|
-
if (props.onClick) {
|
|
356
|
-
props.onClick({
|
|
357
|
-
originalEvent: event,
|
|
358
|
-
option: props.option
|
|
359
|
-
});
|
|
360
|
-
}
|
|
361
|
-
event.preventDefault();
|
|
362
|
-
};
|
|
363
341
|
var onTouchEnd = function onTouchEnd(event) {
|
|
364
342
|
if (props.onTouchEnd) {
|
|
365
343
|
props.onTouchEnd({
|
|
@@ -368,47 +346,17 @@ var ListBoxItem = /*#__PURE__*/React__namespace.memo(function (props) {
|
|
|
368
346
|
});
|
|
369
347
|
}
|
|
370
348
|
};
|
|
371
|
-
var onKeyDown = function onKeyDown(event) {
|
|
372
|
-
var item = event.currentTarget;
|
|
373
|
-
switch (event.which) {
|
|
374
|
-
//down
|
|
375
|
-
case 40:
|
|
376
|
-
var nextItem = findNextItem(item);
|
|
377
|
-
nextItem && nextItem.focus();
|
|
378
|
-
event.preventDefault();
|
|
379
|
-
break;
|
|
380
|
-
|
|
381
|
-
//up
|
|
382
|
-
case 38:
|
|
383
|
-
var prevItem = findPrevItem(item);
|
|
384
|
-
prevItem && prevItem.focus();
|
|
385
|
-
event.preventDefault();
|
|
386
|
-
break;
|
|
387
|
-
|
|
388
|
-
//enter
|
|
389
|
-
case 13:
|
|
390
|
-
onClick(event);
|
|
391
|
-
event.preventDefault();
|
|
392
|
-
break;
|
|
393
|
-
}
|
|
394
|
-
};
|
|
395
|
-
var findNextItem = function findNextItem(item) {
|
|
396
|
-
var nextItem = item.nextElementSibling;
|
|
397
|
-
return nextItem ? utils.DomHandler.isAttributeEquals(nextItem, 'data-p-disabled', true) || utils.DomHandler.isAttributeEquals(nextItem, 'data-pc-section', 'itemgroup') ? findNextItem(nextItem) : nextItem : null;
|
|
398
|
-
};
|
|
399
|
-
var findPrevItem = function findPrevItem(item) {
|
|
400
|
-
var prevItem = item.previousElementSibling;
|
|
401
|
-
return prevItem ? utils.DomHandler.isAttributeEquals(prevItem, 'data-p-disabled', true) || utils.DomHandler.isAttributeEquals(prevItem, 'data-pc-section', 'itemgroup') ? findPrevItem(prevItem) : prevItem : null;
|
|
402
|
-
};
|
|
403
349
|
var content = props.template ? utils.ObjectUtils.getJSXElement(props.template, props.option) : props.label;
|
|
404
350
|
var itemProps = mergeProps({
|
|
351
|
+
id: props.id,
|
|
405
352
|
className: cx('item', {
|
|
406
353
|
props: props
|
|
407
354
|
}),
|
|
408
355
|
style: props.style,
|
|
409
|
-
onClick: onClick
|
|
356
|
+
onClick: function onClick(event) {
|
|
357
|
+
return props.onClick(event, props.option, props.index);
|
|
358
|
+
},
|
|
410
359
|
onTouchEnd: onTouchEnd,
|
|
411
|
-
onKeyDown: onKeyDown,
|
|
412
360
|
onFocus: onFocus,
|
|
413
361
|
onBlur: onBlur,
|
|
414
362
|
tabIndex: '-1',
|
|
@@ -432,12 +380,25 @@ var ListBox = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.
|
|
|
432
380
|
var mergeProps = hooks.useMergeProps();
|
|
433
381
|
var context = React__namespace.useContext(api.PrimeReactContext);
|
|
434
382
|
var props = ListBoxBase.getProps(inProps, context);
|
|
435
|
-
var _React$useState = React__namespace.useState(
|
|
383
|
+
var _React$useState = React__namespace.useState(null),
|
|
436
384
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
437
|
-
|
|
438
|
-
|
|
385
|
+
focusedOptionIndex = _React$useState2[0],
|
|
386
|
+
setFocusedOptionIndex = _React$useState2[1];
|
|
387
|
+
var searchTimeout = React__namespace.useRef(null);
|
|
388
|
+
var firstHiddenFocusableElement = React__namespace.useRef(null);
|
|
389
|
+
var lastHiddenFocusableElement = React__namespace.useRef(null);
|
|
390
|
+
var _React$useState3 = React__namespace.useState(-1),
|
|
391
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
392
|
+
startRangeIndex = _React$useState4[0],
|
|
393
|
+
setStartRangeIndex = _React$useState4[1];
|
|
394
|
+
var _React$useState5 = React__namespace.useState(''),
|
|
395
|
+
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
396
|
+
filterValueState = _React$useState6[0],
|
|
397
|
+
setFilterValueState = _React$useState6[1];
|
|
439
398
|
var elementRef = React__namespace.useRef(null);
|
|
440
399
|
var virtualScrollerRef = React__namespace.useRef(null);
|
|
400
|
+
var id = React__namespace.useRef(utils.UniqueComponentId());
|
|
401
|
+
var listRef = React__namespace.useRef(null);
|
|
441
402
|
var optionTouched = React__namespace.useRef(false);
|
|
442
403
|
var filteredValue = (props.onFilterValueChange ? props.filterValue : filterValueState) || '';
|
|
443
404
|
var hasFilter = filteredValue && filteredValue.trim().length > 0;
|
|
@@ -451,13 +412,14 @@ var ListBox = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.
|
|
|
451
412
|
componentbase.useHandleStyle(ListBoxBase.css.styles, ptCallbacks.isUnstyled, {
|
|
452
413
|
name: 'listbox'
|
|
453
414
|
});
|
|
454
|
-
var onOptionSelect = function onOptionSelect(event) {
|
|
455
|
-
var
|
|
415
|
+
var onOptionSelect = function onOptionSelect(event, option) {
|
|
416
|
+
var index = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;
|
|
456
417
|
if (props.disabled || isOptionDisabled(option)) {
|
|
457
418
|
return;
|
|
458
419
|
}
|
|
459
420
|
props.multiple ? onOptionSelectMultiple(event.originalEvent, option) : onOptionSelectSingle(event.originalEvent, option);
|
|
460
421
|
optionTouched.current = false;
|
|
422
|
+
index !== -1 && setFocusedOptionIndex(index);
|
|
461
423
|
};
|
|
462
424
|
var onOptionTouchEnd = function onOptionTouchEnd() {
|
|
463
425
|
if (props.disabled) {
|
|
@@ -526,6 +488,269 @@ var ListBox = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.
|
|
|
526
488
|
});
|
|
527
489
|
}
|
|
528
490
|
};
|
|
491
|
+
var hasSelectedOption = function hasSelectedOption() {
|
|
492
|
+
return utils.ObjectUtils.isNotEmpty(props.value);
|
|
493
|
+
};
|
|
494
|
+
var isOptionGroup = function isOptionGroup(option) {
|
|
495
|
+
return props.optionGroupLabel && option.optionGroup && option.group;
|
|
496
|
+
};
|
|
497
|
+
var isValidOption = function isValidOption(option) {
|
|
498
|
+
return utils.ObjectUtils.isNotEmpty(option) && !(isOptionDisabled(option) || isOptionGroup(option));
|
|
499
|
+
};
|
|
500
|
+
var isValidSelectedOption = function isValidSelectedOption(option) {
|
|
501
|
+
return isValidOption(option) && isSelected(option);
|
|
502
|
+
};
|
|
503
|
+
var findFirstOptionIndex = function findFirstOptionIndex() {
|
|
504
|
+
return visibleOptions.findIndex(function (option) {
|
|
505
|
+
return isValidOption(option);
|
|
506
|
+
});
|
|
507
|
+
};
|
|
508
|
+
var findLastOptionIndex = function findLastOptionIndex() {
|
|
509
|
+
return utils.ObjectUtils.findLastIndex(visibleOptions, function (option) {
|
|
510
|
+
return isValidOption(option);
|
|
511
|
+
});
|
|
512
|
+
};
|
|
513
|
+
var findNextOptionIndex = function findNextOptionIndex(index) {
|
|
514
|
+
var matchedOptionIndex = index < visibleOptions.length - 1 ? visibleOptions.slice(index + 1).findIndex(function (option) {
|
|
515
|
+
return isValidOption(option);
|
|
516
|
+
}) : -1;
|
|
517
|
+
return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;
|
|
518
|
+
};
|
|
519
|
+
var findPrevOptionIndex = function findPrevOptionIndex(index) {
|
|
520
|
+
var matchedOptionIndex = index > 0 ? utils.ObjectUtils.findLastIndex(visibleOptions.slice(0, index), function (option) {
|
|
521
|
+
return isValidOption(option);
|
|
522
|
+
}) : -1;
|
|
523
|
+
return matchedOptionIndex > -1 ? matchedOptionIndex : index;
|
|
524
|
+
};
|
|
525
|
+
var focusedOptionId = function focusedOptionId() {
|
|
526
|
+
return focusedOptionIndex !== -1 ? "".concat(id.current, "_").concat(focusedOptionIndex) : null;
|
|
527
|
+
};
|
|
528
|
+
var findNearestSelectedOptionIndex = function findNearestSelectedOptionIndex(index) {
|
|
529
|
+
var firstCheckUp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
530
|
+
var matchedOptionIndex = -1;
|
|
531
|
+
if (hasSelectedOption) {
|
|
532
|
+
if (firstCheckUp) {
|
|
533
|
+
matchedOptionIndex = findPrevSelectedOptionIndex(index);
|
|
534
|
+
matchedOptionIndex = matchedOptionIndex === -1 ? findNextSelectedOptionIndex(index) : matchedOptionIndex;
|
|
535
|
+
} else {
|
|
536
|
+
matchedOptionIndex = findNextSelectedOptionIndex(index);
|
|
537
|
+
matchedOptionIndex = matchedOptionIndex === -1 ? findPrevSelectedOptionIndex(index) : matchedOptionIndex;
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
return matchedOptionIndex > -1 ? matchedOptionIndex : index;
|
|
541
|
+
};
|
|
542
|
+
var isOptionMatched = function isOptionMatched(option) {
|
|
543
|
+
var _getOptionLabel;
|
|
544
|
+
return isValidOption(option) && ((_getOptionLabel = getOptionLabel(option)) === null || _getOptionLabel === void 0 ? void 0 : _getOptionLabel.toLocaleLowerCase(props.filterLocale).startsWith(searchValue.toLocaleLowerCase(props.filterLocale)));
|
|
545
|
+
};
|
|
546
|
+
var searchOptions = function searchOptions(event, _char) {
|
|
547
|
+
searchValue = (searchValue || '') + _char;
|
|
548
|
+
var optionIndex = -1;
|
|
549
|
+
if (utils.ObjectUtils.isNotEmpty(searchValue)) {
|
|
550
|
+
if (focusedOptionIndex !== -1) {
|
|
551
|
+
optionIndex = visibleOptions.slice(focusedOptionIndex).findIndex(function (option) {
|
|
552
|
+
return isOptionMatched(option);
|
|
553
|
+
});
|
|
554
|
+
optionIndex = optionIndex === -1 ? visibleOptions.slice(0, focusedOptionIndex).findIndex(function (option) {
|
|
555
|
+
return isOptionMatched(option);
|
|
556
|
+
}) : optionIndex + focusedOptionIndex;
|
|
557
|
+
} else {
|
|
558
|
+
optionIndex = visibleOptions.findIndex(function (option) {
|
|
559
|
+
return isOptionMatched(option);
|
|
560
|
+
});
|
|
561
|
+
}
|
|
562
|
+
if (optionIndex === -1 && focusedOptionIndex === -1) {
|
|
563
|
+
optionIndex = findFirstFocusedOptionIndex();
|
|
564
|
+
}
|
|
565
|
+
if (optionIndex !== -1) {
|
|
566
|
+
changeFocusedOptionIndex(event, optionIndex);
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
if (searchTimeout.current) {
|
|
570
|
+
clearTimeout(searchTimeout.current);
|
|
571
|
+
}
|
|
572
|
+
searchTimeout.current = setTimeout(function () {
|
|
573
|
+
searchValue = '';
|
|
574
|
+
searchTimeout.current = null;
|
|
575
|
+
}, 500);
|
|
576
|
+
};
|
|
577
|
+
var findNextSelectedOptionIndex = function findNextSelectedOptionIndex(index) {
|
|
578
|
+
var matchedOptionIndex = hasSelectedOption && index < visibleOptions.length - 1 ? visibleOptions.slice(index + 1).findIndex(function (option) {
|
|
579
|
+
return isValidSelectedOption(option);
|
|
580
|
+
}) : -1;
|
|
581
|
+
return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : -1;
|
|
582
|
+
};
|
|
583
|
+
var findPrevSelectedOptionIndex = function findPrevSelectedOptionIndex(index) {
|
|
584
|
+
var matchedOptionIndex = hasSelectedOption && index > 0 ? utils.ObjectUtils.findLastIndex(visibleOptions.slice(0, index), function (option) {
|
|
585
|
+
return isValidSelectedOption(option);
|
|
586
|
+
}) : -1;
|
|
587
|
+
return matchedOptionIndex > -1 ? matchedOptionIndex : -1;
|
|
588
|
+
};
|
|
589
|
+
var onOptionSelectRange = function onOptionSelectRange(event) {
|
|
590
|
+
var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;
|
|
591
|
+
var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;
|
|
592
|
+
start === -1 && (start = findNearestSelectedOptionIndex(end, true));
|
|
593
|
+
end === -1 && (end = findNearestSelectedOptionIndex(start));
|
|
594
|
+
if (start !== -1 && end !== -1) {
|
|
595
|
+
var rangeStart = Math.min(start, end);
|
|
596
|
+
var rangeEnd = Math.max(start, end);
|
|
597
|
+
var value = visibleOptions.slice(rangeStart, rangeEnd + 1).filter(function (option) {
|
|
598
|
+
return isValidOption(option);
|
|
599
|
+
}).map(function (option) {
|
|
600
|
+
return getOptionValue(option);
|
|
601
|
+
});
|
|
602
|
+
updateModel(event, value);
|
|
603
|
+
}
|
|
604
|
+
};
|
|
605
|
+
var findFirstFocusedOptionIndex = function findFirstFocusedOptionIndex() {
|
|
606
|
+
var selectedIndex = findFirstSelectedOptionIndex();
|
|
607
|
+
return selectedIndex < 0 ? findFirstOptionIndex() : selectedIndex;
|
|
608
|
+
};
|
|
609
|
+
var changeFocusedOptionIndex = function changeFocusedOptionIndex(event, index) {
|
|
610
|
+
if (focusedOptionIndex !== index) {
|
|
611
|
+
setFocusedOptionIndex(index);
|
|
612
|
+
scrollInView();
|
|
613
|
+
if (props.selectOnFocus && !props.multiple) {
|
|
614
|
+
onOptionSelect(event, visibleOptions[index]);
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
};
|
|
618
|
+
var onArrowDownKey = function onArrowDownKey(event) {
|
|
619
|
+
var optionIndex = focusedOptionIndex !== -1 ? findNextOptionIndex(focusedOptionIndex) : findFirstFocusedOptionIndex();
|
|
620
|
+
if (props.multiple && event.shiftKey) {
|
|
621
|
+
onOptionSelectRange(event, startRangeIndex, optionIndex);
|
|
622
|
+
}
|
|
623
|
+
changeFocusedOptionIndex(event, optionIndex);
|
|
624
|
+
event.preventDefault();
|
|
625
|
+
};
|
|
626
|
+
var onArrowUpKey = function onArrowUpKey(event) {
|
|
627
|
+
var optionIndex = focusedOptionIndex !== -1 ? findPrevOptionIndex(focusedOptionIndex) : findLastFocusedOptionIndex();
|
|
628
|
+
if (props.multiple && event.shiftKey) {
|
|
629
|
+
onOptionSelectRange(event, optionIndex, startRangeIndex);
|
|
630
|
+
}
|
|
631
|
+
changeFocusedOptionIndex(event, optionIndex);
|
|
632
|
+
event.preventDefault();
|
|
633
|
+
};
|
|
634
|
+
var onEnterKey = function onEnterKey(event) {
|
|
635
|
+
if (focusedOptionIndex !== -1) {
|
|
636
|
+
if (props.multiple && event.shiftKey) onOptionSelectRange(event, focusedOptionIndex);else onOptionSelect(event, visibleOptions[focusedOptionIndex]);
|
|
637
|
+
}
|
|
638
|
+
event.preventDefault();
|
|
639
|
+
};
|
|
640
|
+
var onSpaceKey = function onSpaceKey(event) {
|
|
641
|
+
onEnterKey(event);
|
|
642
|
+
};
|
|
643
|
+
var onShiftKey = function onShiftKey() {
|
|
644
|
+
setStartRangeIndex(focusedOptionIndex);
|
|
645
|
+
};
|
|
646
|
+
var onHomeKey = function onHomeKey(event) {
|
|
647
|
+
var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
648
|
+
if (pressedInInputText) {
|
|
649
|
+
event.currentTarget.setSelectionRange(0, 0);
|
|
650
|
+
setFocusedOptionIndex(-1);
|
|
651
|
+
} else {
|
|
652
|
+
var metaKey = event.metaKey || event.ctrlKey;
|
|
653
|
+
var optionIndex = findFirstOptionIndex();
|
|
654
|
+
if (props.multiple && event.shiftKey && metaKey) {
|
|
655
|
+
onOptionSelectRange(event, optionIndex, startRangeIndex);
|
|
656
|
+
}
|
|
657
|
+
changeFocusedOptionIndex(event, optionIndex);
|
|
658
|
+
}
|
|
659
|
+
event.preventDefault();
|
|
660
|
+
};
|
|
661
|
+
var onEndKey = function onEndKey(event) {
|
|
662
|
+
var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
663
|
+
if (pressedInInputText) {
|
|
664
|
+
var target = event.currentTarget;
|
|
665
|
+
var len = target.value.length;
|
|
666
|
+
target.setSelectionRange(len, len);
|
|
667
|
+
_readOnlyError("focusedOptionIndex");
|
|
668
|
+
} else {
|
|
669
|
+
var metaKey = event.metaKey || event.ctrlKey;
|
|
670
|
+
var optionIndex = findLastOptionIndex();
|
|
671
|
+
if (props.multiple && event.shiftKey && metaKey) {
|
|
672
|
+
onOptionSelectRange(event, startRangeIndex, optionIndex);
|
|
673
|
+
}
|
|
674
|
+
changeFocusedOptionIndex(event, optionIndex);
|
|
675
|
+
}
|
|
676
|
+
event.preventDefault();
|
|
677
|
+
};
|
|
678
|
+
var onPageUpKey = function onPageUpKey(event) {
|
|
679
|
+
scrollInView(0);
|
|
680
|
+
event.preventDefault();
|
|
681
|
+
};
|
|
682
|
+
var onPageDownKey = function onPageDownKey(event) {
|
|
683
|
+
scrollInView(visibleOptions.length - 1);
|
|
684
|
+
event.preventDefault();
|
|
685
|
+
};
|
|
686
|
+
var onKeyDown = function onKeyDown(event) {
|
|
687
|
+
var metaKey = event.metaKey || event.ctrlKey;
|
|
688
|
+
switch (event.code) {
|
|
689
|
+
case 'ArrowDown':
|
|
690
|
+
onArrowDownKey(event);
|
|
691
|
+
break;
|
|
692
|
+
case 'ArrowUp':
|
|
693
|
+
onArrowUpKey(event);
|
|
694
|
+
break;
|
|
695
|
+
case 'Home':
|
|
696
|
+
onHomeKey(event);
|
|
697
|
+
break;
|
|
698
|
+
case 'End':
|
|
699
|
+
onEndKey(event);
|
|
700
|
+
break;
|
|
701
|
+
case 'PageDown':
|
|
702
|
+
onPageDownKey(event);
|
|
703
|
+
break;
|
|
704
|
+
case 'PageUp':
|
|
705
|
+
onPageUpKey(event);
|
|
706
|
+
break;
|
|
707
|
+
case 'Enter':
|
|
708
|
+
case 'NumpadEnter':
|
|
709
|
+
case 'Space':
|
|
710
|
+
onSpaceKey(event);
|
|
711
|
+
event.preventDefault();
|
|
712
|
+
break;
|
|
713
|
+
case 'Tab':
|
|
714
|
+
//NOOP
|
|
715
|
+
break;
|
|
716
|
+
case 'ShiftLeft':
|
|
717
|
+
case 'ShiftRight':
|
|
718
|
+
onShiftKey();
|
|
719
|
+
break;
|
|
720
|
+
default:
|
|
721
|
+
if (props.multiple && event.code === 'KeyA' && metaKey) {
|
|
722
|
+
var value = visibleOptions.filter(function (option) {
|
|
723
|
+
return isValidOption(option);
|
|
724
|
+
}).map(function (option) {
|
|
725
|
+
return getOptionValue(option);
|
|
726
|
+
});
|
|
727
|
+
updateModel(event, value);
|
|
728
|
+
event.preventDefault();
|
|
729
|
+
break;
|
|
730
|
+
}
|
|
731
|
+
if (!metaKey && utils.ObjectUtils.isPrintableCharacter(event.key)) {
|
|
732
|
+
searchOptions(event, event.key);
|
|
733
|
+
event.preventDefault();
|
|
734
|
+
}
|
|
735
|
+
break;
|
|
736
|
+
}
|
|
737
|
+
};
|
|
738
|
+
var scrollInView = function scrollInView() {
|
|
739
|
+
var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;
|
|
740
|
+
setTimeout(function () {
|
|
741
|
+
var idx = index !== -1 ? "".concat(id.current, "_").concat(index) : focusedOptionId();
|
|
742
|
+
var element = listRef.current.querySelector("li[id=\"".concat(idx, "\"]"));
|
|
743
|
+
if (element) {
|
|
744
|
+
element.scrollIntoView({
|
|
745
|
+
block: 'nearest',
|
|
746
|
+
inline: 'nearest',
|
|
747
|
+
behavior: 'smooth'
|
|
748
|
+
});
|
|
749
|
+
} else if (props.virtualScrollerOptions) {
|
|
750
|
+
virtualScrollerRef.current && virtualScrollerRef.current.scrollToIndex(index !== -1 ? index : props.focusedOptionIndex);
|
|
751
|
+
}
|
|
752
|
+
}, 0);
|
|
753
|
+
};
|
|
529
754
|
var onFilter = function onFilter(event) {
|
|
530
755
|
virtualScrollerRef.current && virtualScrollerRef.current.scrollToIndex(0);
|
|
531
756
|
var originalEvent = event.originalEvent,
|
|
@@ -618,6 +843,23 @@ var ListBox = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.
|
|
|
618
843
|
}
|
|
619
844
|
return option && option['disabled'] !== undefined ? option['disabled'] : false;
|
|
620
845
|
};
|
|
846
|
+
var onFirstHiddenFocus = function onFirstHiddenFocus() {
|
|
847
|
+
utils.DomHandler.focus(listRef.current);
|
|
848
|
+
var firstFocusableEl = utils.DomHandler.getFirstFocusableElement(elementRef.current, ':not([data-p-hidden-focusable="true"])');
|
|
849
|
+
lastHiddenFocusableElement.current.tabIndex = utils.DomHandler.isElement(firstFocusableEl) ? undefined : -1;
|
|
850
|
+
firstHiddenFocusableElement.current.tabIndex = -1;
|
|
851
|
+
};
|
|
852
|
+
var onLastHiddenFocus = function onLastHiddenFocus(event) {
|
|
853
|
+
var relatedTarget = event.relatedTarget;
|
|
854
|
+
if (relatedTarget === listRef.current) {
|
|
855
|
+
var firstFocusableEl = utils.DomHandler.getFirstFocusableElement(elementRef.current, ':not([data-p-hidden-focusable="true"])');
|
|
856
|
+
utils.DomHandler.focus(firstFocusableEl);
|
|
857
|
+
firstHiddenFocusableElement.current.tabIndex = undefined;
|
|
858
|
+
} else {
|
|
859
|
+
utils.DomHandler.focus(firstHiddenFocusableElement.current);
|
|
860
|
+
}
|
|
861
|
+
astHiddenFocusableElement.current.tabIndex = -1;
|
|
862
|
+
};
|
|
621
863
|
var getOptionGroupRenderKey = function getOptionGroupRenderKey(optionGroup) {
|
|
622
864
|
return utils.ObjectUtils.resolveFieldData(optionGroup, props.optionGroupLabel);
|
|
623
865
|
};
|
|
@@ -706,8 +948,9 @@ var ListBox = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.
|
|
|
706
948
|
var optionLabel = getOptionLabel(option);
|
|
707
949
|
var optionKey = j + '_' + getOptionRenderKey(option);
|
|
708
950
|
var disabled = isOptionDisabled(option);
|
|
709
|
-
|
|
951
|
+
disabled ? null : props.tabIndex || 0;
|
|
710
952
|
return /*#__PURE__*/React__namespace.createElement(ListBoxItem, {
|
|
953
|
+
id: id.current + '_' + j,
|
|
711
954
|
hostName: "ListBox",
|
|
712
955
|
key: optionKey,
|
|
713
956
|
label: optionLabel,
|
|
@@ -716,8 +959,9 @@ var ListBox = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.
|
|
|
716
959
|
template: props.itemTemplate,
|
|
717
960
|
selected: isSelected(option),
|
|
718
961
|
onClick: onOptionSelect,
|
|
962
|
+
index: j,
|
|
963
|
+
focusedOptionIndex: focusedOptionIndex,
|
|
719
964
|
onTouchEnd: onOptionTouchEnd,
|
|
720
|
-
tabIndex: tabIndex,
|
|
721
965
|
disabled: disabled,
|
|
722
966
|
ptCallbacks: ptCallbacks,
|
|
723
967
|
metaData: metaData
|
|
@@ -747,18 +991,20 @@ var ListBox = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.
|
|
|
747
991
|
var optionLabel = getOptionLabel(option);
|
|
748
992
|
var optionKey = index + '_' + getOptionRenderKey(option);
|
|
749
993
|
var disabled = isOptionDisabled(option);
|
|
750
|
-
|
|
994
|
+
disabled ? null : props.tabIndex || 0;
|
|
751
995
|
return /*#__PURE__*/React__namespace.createElement(ListBoxItem, {
|
|
996
|
+
id: id.current + '_' + index,
|
|
752
997
|
hostName: "ListBox",
|
|
753
998
|
key: optionKey,
|
|
754
999
|
label: optionLabel,
|
|
1000
|
+
index: index,
|
|
1001
|
+
focusedOptionIndex: focusedOptionIndex,
|
|
755
1002
|
option: option,
|
|
756
1003
|
style: style,
|
|
757
1004
|
template: props.itemTemplate,
|
|
758
1005
|
selected: isSelected(option),
|
|
759
1006
|
onClick: onOptionSelect,
|
|
760
1007
|
onTouchEnd: onOptionTouchEnd,
|
|
761
|
-
tabIndex: tabIndex,
|
|
762
1008
|
disabled: disabled,
|
|
763
1009
|
ptCallbacks: ptCallbacks,
|
|
764
1010
|
metaData: metaData
|
|
@@ -802,6 +1048,7 @@ var ListBox = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.
|
|
|
802
1048
|
options: options
|
|
803
1049
|
}),
|
|
804
1050
|
role: 'listbox',
|
|
1051
|
+
tabIndex: '-1',
|
|
805
1052
|
'aria-multiselectable': props.multiple
|
|
806
1053
|
}, ariaProps), ptCallbacks.ptm('list'));
|
|
807
1054
|
return /*#__PURE__*/React__namespace.createElement("ul", listProps, options.children);
|
|
@@ -815,9 +1062,12 @@ var ListBox = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.
|
|
|
815
1062
|
} else {
|
|
816
1063
|
var items = createItems();
|
|
817
1064
|
var listProps = mergeProps(_objectSpread({
|
|
1065
|
+
ref: listRef,
|
|
818
1066
|
className: ptCallbacks.cx('list'),
|
|
819
1067
|
role: 'listbox',
|
|
820
|
-
'aria-multiselectable': props.multiple
|
|
1068
|
+
'aria-multiselectable': props.multiple,
|
|
1069
|
+
tabIndex: '-1',
|
|
1070
|
+
onKeyDown: onKeyDown
|
|
821
1071
|
}, ariaProps), ptCallbacks.ptm('list'));
|
|
822
1072
|
return /*#__PURE__*/React__namespace.createElement("ul", listProps, items);
|
|
823
1073
|
}
|
|
@@ -838,7 +1088,27 @@ var ListBox = /*#__PURE__*/React__namespace.memo( /*#__PURE__*/React__namespace.
|
|
|
838
1088
|
className: ptCallbacks.cx('root'),
|
|
839
1089
|
style: props.style
|
|
840
1090
|
}, ListBoxBase.getOtherProps(props), ptCallbacks.ptm('root'));
|
|
841
|
-
|
|
1091
|
+
var hiddenFirstElement = mergeProps({
|
|
1092
|
+
ref: firstHiddenFocusableElement,
|
|
1093
|
+
role: 'presentation',
|
|
1094
|
+
'aria-hidden': 'true',
|
|
1095
|
+
className: 'p-hidden-accessible p-hidden-focusable',
|
|
1096
|
+
tabIndex: !props.disabled ? props.tabIndex : -1,
|
|
1097
|
+
onFocus: onFirstHiddenFocus,
|
|
1098
|
+
'data-p-hidden-accessible': true,
|
|
1099
|
+
'data-p-hidden-focusable': true
|
|
1100
|
+
}, ptCallbacks.ptm('hiddenFirstFocusableEl'));
|
|
1101
|
+
var hiddenLastElement = mergeProps({
|
|
1102
|
+
ref: lastHiddenFocusableElement,
|
|
1103
|
+
role: 'presentation',
|
|
1104
|
+
'aria-hidden': 'true',
|
|
1105
|
+
className: 'p-hidden-accessible p-hidden-focusable',
|
|
1106
|
+
tabIndex: !props.disabled ? props.tabIndex : -1,
|
|
1107
|
+
onFocus: onLastHiddenFocus,
|
|
1108
|
+
'data-p-hidden-accessible': true,
|
|
1109
|
+
'data-p-hidden-focusable': true
|
|
1110
|
+
}, ptCallbacks.ptm('hiddenFirstFocusableEl'));
|
|
1111
|
+
return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("div", rootProps, /*#__PURE__*/React__namespace.createElement("span", hiddenFirstElement), header, /*#__PURE__*/React__namespace.createElement("div", wrapperProps, list), /*#__PURE__*/React__namespace.createElement("span", hiddenLastElement)), hasTooltip && /*#__PURE__*/React__namespace.createElement(tooltip.Tooltip, _extends({
|
|
842
1112
|
target: elementRef,
|
|
843
1113
|
content: props.tooltip
|
|
844
1114
|
}, props.tooltipOptions, {
|