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
|
@@ -112,6 +112,10 @@ this.primereact.multiselect = (function (exports, React, PrimeReact, componentba
|
|
|
112
112
|
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread();
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
+
function _readOnlyError(name) {
|
|
116
|
+
throw new TypeError("\"" + name + "\" is read-only");
|
|
117
|
+
}
|
|
118
|
+
|
|
115
119
|
function _arrayWithHoles(arr) {
|
|
116
120
|
if (Array.isArray(arr)) return arr;
|
|
117
121
|
}
|
|
@@ -213,7 +217,8 @@ this.primereact.multiselect = (function (exports, React, PrimeReact, componentba
|
|
|
213
217
|
var props = _ref5.itemProps;
|
|
214
218
|
return utils.classNames('p-multiselect-item', {
|
|
215
219
|
'p-highlight': props.selected,
|
|
216
|
-
'p-disabled': props.disabled
|
|
220
|
+
'p-disabled': props.disabled,
|
|
221
|
+
'p-focus': props.focusedOptionIndex === props.index
|
|
217
222
|
});
|
|
218
223
|
},
|
|
219
224
|
checkboxContainer: 'p-checkbox p-component',
|
|
@@ -226,7 +231,7 @@ this.primereact.multiselect = (function (exports, React, PrimeReact, componentba
|
|
|
226
231
|
},
|
|
227
232
|
transition: 'p-connected-overlay'
|
|
228
233
|
};
|
|
229
|
-
var styles$1 = "\n@layer primereact {\n .p-multiselect {\n display: inline-flex;\n user-select: none;\n cursor: pointer;\n }\n \n .p-multiselect-trigger {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n cursor: pointer;\n }\n \n .p-multiselect-label-container {\n overflow: hidden;\n flex: 1 1 auto;\n cursor: pointer;\n }\n \n .p-multiselect-label {\n display: block;\n white-space: nowrap;\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .p-multiselect-label-empty {\n overflow: hidden;\n visibility: hidden;\n }\n \n .p-multiselect-token {\n cursor: default;\n display: inline-flex;\n align-items: center;\n flex: 0 0 auto;\n }\n \n .p-multiselect-token-icon {\n cursor: pointer;\n }\n \n .p-multiselect .p-multiselect-panel {\n min-width: 100%;\n }\n \n .p-multiselect-inline.p-multiselect-panel {\n border: none;\n position: initial;\n background: none;\n box-shadow: none;\n }\n \n .p-multiselect-inline.p-multiselect-panel .p-multiselect-items {\n padding: 0;\n }\n \n .p-multiselect-flex.p-multiselect-panel .p-multiselect-items {\n display: flex;\n flex-wrap: wrap;\n }\n \n .p-multiselect-items-wrapper {\n overflow: auto;\n }\n \n .p-multiselect-items {\n margin: 0;\n padding: 0;\n list-style-type: none;\n }\n \n .p-multiselect-item {\n cursor: pointer;\n display: flex;\n align-items: center;\n font-weight: normal;\n white-space: nowrap;\n position: relative;\n overflow: hidden;\n }\n \n .p-multiselect-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n \n .p-multiselect-select-all-label {\n margin-left: 0.5rem;\n }\n \n .p-multiselect-filter-container {\n position: relative;\n flex: 1 1 auto;\n }\n \n .p-multiselect-filter-icon {\n position: absolute;\n top: 50%;\n margin-top: -.5rem;\n }\n \n .p-multiselect-filter-container .p-inputtext {\n width: 100%;\n }\n \n .p-multiselect-close {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n overflow: hidden;\n position: relative;\n margin-left: auto;\n }\n \n .p-multiselect-clear-icon {\n position: absolute;\n top: 50%;\n margin-top: -.5rem;\n }\n \n .p-fluid .p-multiselect {\n display: flex;\n }\n}\n";
|
|
234
|
+
var styles$1 = "\n@layer primereact {\n .p-multiselect {\n display: inline-flex;\n user-select: none;\n cursor: pointer;\n }\n \n .p-multiselect-trigger {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n cursor: pointer;\n }\n \n .p-multiselect-label-container {\n overflow: hidden;\n flex: 1 1 auto;\n cursor: pointer;\n }\n \n .p-multiselect-label {\n display: block;\n white-space: nowrap;\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .p-multiselect-label-empty {\n overflow: hidden;\n visibility: hidden;\n }\n \n .p-multiselect-token {\n cursor: default;\n display: inline-flex;\n align-items: center;\n flex: 0 0 auto;\n }\n \n .p-multiselect-token-icon {\n cursor: pointer;\n }\n \n .p-multiselect .p-multiselect-panel {\n min-width: 100%;\n }\n \n .p-multiselect-inline.p-multiselect-panel {\n border: none;\n position: initial;\n background: none;\n box-shadow: none;\n }\n \n .p-multiselect-inline.p-multiselect-panel .p-multiselect-items {\n padding: 0;\n }\n \n .p-multiselect-flex.p-multiselect-panel .p-multiselect-items {\n display: flex;\n flex-wrap: wrap;\n }\n \n .p-multiselect-items-wrapper {\n overflow: auto;\n }\n \n .p-multiselect-items {\n margin: 0;\n padding: 0;\n list-style-type: none;\n }\n \n .p-multiselect-item {\n cursor: pointer;\n display: flex;\n align-items: center;\n font-weight: normal;\n white-space: nowrap;\n position: relative;\n overflow: hidden;\n outline: none;\n }\n \n .p-multiselect-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n \n .p-multiselect-select-all-label {\n margin-left: 0.5rem;\n }\n \n .p-multiselect-filter-container {\n position: relative;\n flex: 1 1 auto;\n }\n \n .p-multiselect-filter-icon {\n position: absolute;\n top: 50%;\n margin-top: -.5rem;\n }\n \n .p-multiselect-filter-container .p-inputtext {\n width: 100%;\n }\n \n .p-multiselect-close {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n overflow: hidden;\n position: relative;\n margin-left: auto;\n }\n \n .p-multiselect-clear-icon {\n position: absolute;\n top: 50%;\n margin-top: -.5rem;\n right: 3rem;\n }\n \n .p-fluid .p-multiselect {\n display: flex;\n }\n}\n";
|
|
230
235
|
var inlineStyles = {
|
|
231
236
|
root: function root(_ref7) {
|
|
232
237
|
var props = _ref7.props;
|
|
@@ -260,6 +265,8 @@ this.primereact.multiselect = (function (exports, React, PrimeReact, componentba
|
|
|
260
265
|
filterBy: null,
|
|
261
266
|
filterInputAutoFocus: true,
|
|
262
267
|
filterLocale: undefined,
|
|
268
|
+
selectOnFocus: false,
|
|
269
|
+
autoOptionFocus: false,
|
|
263
270
|
filterMatchMode: 'contains',
|
|
264
271
|
filterPlaceholder: null,
|
|
265
272
|
filterTemplate: null,
|
|
@@ -512,6 +519,8 @@ this.primereact.multiselect = (function (exports, React, PrimeReact, componentba
|
|
|
512
519
|
onClick: function onClick(e) {
|
|
513
520
|
return _onClick(e);
|
|
514
521
|
},
|
|
522
|
+
'data-p-highlight': checked,
|
|
523
|
+
'data-p-disabled': props.disabled,
|
|
515
524
|
onContextMenu: props.onContextMenu,
|
|
516
525
|
onMouseDown: props.onMouseDown
|
|
517
526
|
}, otherProps, ptm('root'));
|
|
@@ -719,7 +728,9 @@ this.primereact.multiselect = (function (exports, React, PrimeReact, componentba
|
|
|
719
728
|
context: {
|
|
720
729
|
selected: props.selected,
|
|
721
730
|
disabled: props.disabled,
|
|
722
|
-
focused: focusedState
|
|
731
|
+
focused: focusedState,
|
|
732
|
+
focusedIndex: props.focusedIndex,
|
|
733
|
+
index: props.index
|
|
723
734
|
}
|
|
724
735
|
});
|
|
725
736
|
};
|
|
@@ -731,22 +742,11 @@ this.primereact.multiselect = (function (exports, React, PrimeReact, componentba
|
|
|
731
742
|
};
|
|
732
743
|
var onClick = function onClick(event) {
|
|
733
744
|
if (props.onClick) {
|
|
734
|
-
props.onClick(
|
|
735
|
-
originalEvent: event,
|
|
736
|
-
option: props.option
|
|
737
|
-
});
|
|
745
|
+
props.onClick(event, props.option);
|
|
738
746
|
}
|
|
739
747
|
event.preventDefault();
|
|
740
748
|
event.stopPropagation();
|
|
741
749
|
};
|
|
742
|
-
var onKeyDown = function onKeyDown(event) {
|
|
743
|
-
if (props.onKeyDown) {
|
|
744
|
-
props.onKeyDown({
|
|
745
|
-
originalEvent: event,
|
|
746
|
-
option: props.option
|
|
747
|
-
});
|
|
748
|
-
}
|
|
749
|
-
};
|
|
750
750
|
var checkboxIconProps = mergeProps({
|
|
751
751
|
className: cx('checkboxIcon')
|
|
752
752
|
}, getPTOptions('checkboxIcon'));
|
|
@@ -755,7 +755,7 @@ this.primereact.multiselect = (function (exports, React, PrimeReact, componentba
|
|
|
755
755
|
selected: props.selected
|
|
756
756
|
}) : null;
|
|
757
757
|
var content = props.template ? utils.ObjectUtils.getJSXElement(props.template, props.option) : props.label;
|
|
758
|
-
var tabIndex = props.disabled ?
|
|
758
|
+
var tabIndex = props.disabled ? -1 : props.tabIndex;
|
|
759
759
|
var checkboxContainerProps = mergeProps({
|
|
760
760
|
className: cx('checkboxContainer')
|
|
761
761
|
}, getPTOptions('checkboxContainer'));
|
|
@@ -771,7 +771,6 @@ this.primereact.multiselect = (function (exports, React, PrimeReact, componentba
|
|
|
771
771
|
})),
|
|
772
772
|
style: props.style,
|
|
773
773
|
onClick: onClick,
|
|
774
|
-
onKeyDown: onKeyDown,
|
|
775
774
|
onFocus: onFocus,
|
|
776
775
|
onBlur: onBlur,
|
|
777
776
|
tabIndex: tabIndex,
|
|
@@ -873,14 +872,15 @@ this.primereact.multiselect = (function (exports, React, PrimeReact, componentba
|
|
|
873
872
|
var selected = props.isSelected(option);
|
|
874
873
|
return /*#__PURE__*/React__namespace.createElement(MultiSelectItem, {
|
|
875
874
|
hostName: props.hostName,
|
|
875
|
+
index: j,
|
|
876
876
|
key: optionKey,
|
|
877
|
+
focusedOptionIndex: props.focusedOptionIndex,
|
|
877
878
|
label: optionLabel,
|
|
878
879
|
option: option,
|
|
879
880
|
style: style,
|
|
880
881
|
template: props.itemTemplate,
|
|
881
882
|
selected: selected,
|
|
882
883
|
onClick: props.onOptionSelect,
|
|
883
|
-
onKeyDown: props.onOptionKeyDown,
|
|
884
884
|
tabIndex: tabIndex,
|
|
885
885
|
disabled: disabled,
|
|
886
886
|
className: props.itemClassName,
|
|
@@ -931,13 +931,14 @@ this.primereact.multiselect = (function (exports, React, PrimeReact, componentba
|
|
|
931
931
|
return /*#__PURE__*/React__namespace.createElement(MultiSelectItem, {
|
|
932
932
|
hostName: props.hostName,
|
|
933
933
|
key: optionKey,
|
|
934
|
+
focusedOptionIndex: props.focusedOptionIndex,
|
|
934
935
|
label: optionLabel,
|
|
935
936
|
option: option,
|
|
936
937
|
style: style,
|
|
938
|
+
index: index,
|
|
937
939
|
template: props.itemTemplate,
|
|
938
940
|
selected: selected,
|
|
939
941
|
onClick: props.onOptionSelect,
|
|
940
|
-
onKeyDown: props.onOptionKeyDown,
|
|
941
942
|
tabIndex: tabIndex,
|
|
942
943
|
disabled: disabled,
|
|
943
944
|
className: props.itemClassName,
|
|
@@ -1066,19 +1067,35 @@ this.primereact.multiselect = (function (exports, React, PrimeReact, componentba
|
|
|
1066
1067
|
var mergeProps = hooks.useMergeProps();
|
|
1067
1068
|
var context = React__namespace.useContext(PrimeReact.PrimeReactContext);
|
|
1068
1069
|
var props = MultiSelectBase.getProps(inProps, context);
|
|
1069
|
-
var _React$useState = React__namespace.useState(
|
|
1070
|
+
var _React$useState = React__namespace.useState(null),
|
|
1070
1071
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
1071
|
-
|
|
1072
|
-
|
|
1072
|
+
focusedOptionIndex = _React$useState2[0],
|
|
1073
|
+
setFocusedOptionIndex = _React$useState2[1];
|
|
1073
1074
|
var _React$useState3 = React__namespace.useState(false),
|
|
1074
1075
|
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
var _React$useState5 = React__namespace.useState(
|
|
1076
|
+
clicked = _React$useState4[0],
|
|
1077
|
+
setClicked = _React$useState4[1];
|
|
1078
|
+
var _React$useState5 = React__namespace.useState(''),
|
|
1078
1079
|
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
1079
|
-
|
|
1080
|
-
|
|
1080
|
+
filterState = _React$useState6[0],
|
|
1081
|
+
setFilterState = _React$useState6[1];
|
|
1082
|
+
var _React$useState7 = React__namespace.useState(-1),
|
|
1083
|
+
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
|
1084
|
+
startRangeIndex = _React$useState8[0],
|
|
1085
|
+
setStartRangeIndex = _React$useState8[1];
|
|
1086
|
+
var _React$useState9 = React__namespace.useState(false),
|
|
1087
|
+
_React$useState10 = _slicedToArray(_React$useState9, 2),
|
|
1088
|
+
focusedState = _React$useState10[0],
|
|
1089
|
+
setFocusedState = _React$useState10[1];
|
|
1090
|
+
var _React$useState11 = React__namespace.useState(props.inline),
|
|
1091
|
+
_React$useState12 = _slicedToArray(_React$useState11, 2),
|
|
1092
|
+
overlayVisibleState = _React$useState12[0],
|
|
1093
|
+
setOverlayVisibleState = _React$useState12[1];
|
|
1081
1094
|
var elementRef = React__namespace.useRef(null);
|
|
1095
|
+
var searchValue = React__namespace.useRef(null);
|
|
1096
|
+
var searchTimeout = React__namespace.useRef(null);
|
|
1097
|
+
var firstHiddenFocusableElementOnOverlay = React__namespace.useRef(null);
|
|
1098
|
+
var lastHiddenFocusableElementOnOverlay = React__namespace.useRef(null);
|
|
1082
1099
|
var inputRef = React__namespace.useRef(props.inputRef);
|
|
1083
1100
|
var labelRef = React__namespace.useRef(null);
|
|
1084
1101
|
var overlayRef = React__namespace.useRef(null);
|
|
@@ -1120,6 +1137,14 @@ this.primereact.multiselect = (function (exports, React, PrimeReact, componentba
|
|
|
1120
1137
|
_useOverlayListener2 = _slicedToArray(_useOverlayListener, 2),
|
|
1121
1138
|
bindOverlayListener = _useOverlayListener2[0],
|
|
1122
1139
|
unbindOverlayListener = _useOverlayListener2[1];
|
|
1140
|
+
var onFirstHiddenFocus = function onFirstHiddenFocus(event) {
|
|
1141
|
+
var focusableEl = event.relatedTarget === inputRef.current ? utils.DomHandler.getFirstFocusableElement(overlayRef.current, ':not([data-p-hidden-focusable="true"])') : inputRef.current;
|
|
1142
|
+
utils.DomHandler.focus(focusableEl);
|
|
1143
|
+
};
|
|
1144
|
+
var onLastHiddenFocus = function onLastHiddenFocus(event) {
|
|
1145
|
+
var focusableEl = event.relatedTarget === inputRef.current ? utils.DomHandler.getLastFocusableElement(overlayRef.current, ':not([data-p-hidden-focusable="true"])') : inputRef.current;
|
|
1146
|
+
utils.DomHandler.focus(focusableEl);
|
|
1147
|
+
};
|
|
1123
1148
|
var onPanelClick = function onPanelClick(event) {
|
|
1124
1149
|
overlayservice.OverlayService.emit('overlay-click', {
|
|
1125
1150
|
originalEvent: event,
|
|
@@ -1129,63 +1154,60 @@ this.primereact.multiselect = (function (exports, React, PrimeReact, componentba
|
|
|
1129
1154
|
var allowOptionSelect = function allowOptionSelect() {
|
|
1130
1155
|
return !props.selectionLimit || !props.value || props.value && props.value.length < props.selectionLimit;
|
|
1131
1156
|
};
|
|
1132
|
-
var
|
|
1133
|
-
var
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1157
|
+
var findNextSelectedOptionIndex = function findNextSelectedOptionIndex(index) {
|
|
1158
|
+
var matchedOptionIndex = hasSelectedOption && index < visibleOptions.length - 1 ? visibleOptions.slice(index + 1).findIndex(function (option) {
|
|
1159
|
+
return isValidSelectedOption(option);
|
|
1160
|
+
}) : -1;
|
|
1161
|
+
return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : -1;
|
|
1162
|
+
};
|
|
1163
|
+
var findPrevSelectedOptionIndex = function findPrevSelectedOptionIndex(index) {
|
|
1164
|
+
var matchedOptionIndex = hasSelectedOption && index > 0 ? utils.ObjectUtils.findLastIndex(visibleOptions.slice(0, index), function (option) {
|
|
1165
|
+
return isValidSelectedOption(option);
|
|
1166
|
+
}) : -1;
|
|
1167
|
+
return matchedOptionIndex > -1 ? matchedOptionIndex : -1;
|
|
1168
|
+
};
|
|
1169
|
+
var findNearestSelectedOptionIndex = function findNearestSelectedOptionIndex(index) {
|
|
1170
|
+
var firstCheckUp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1171
|
+
var matchedOptionIndex = -1;
|
|
1172
|
+
if (hasSelectedOption) {
|
|
1173
|
+
if (firstCheckUp) {
|
|
1174
|
+
matchedOptionIndex = findPrevSelectedOptionIndex(index);
|
|
1175
|
+
matchedOptionIndex = matchedOptionIndex === -1 ? findNextSelectedOptionIndex(index) : matchedOptionIndex;
|
|
1176
|
+
} else {
|
|
1177
|
+
matchedOptionIndex = findNextSelectedOptionIndex(index);
|
|
1178
|
+
matchedOptionIndex = matchedOptionIndex === -1 ? findPrevSelectedOptionIndex(index) : matchedOptionIndex;
|
|
1179
|
+
}
|
|
1137
1180
|
}
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
var
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1181
|
+
return matchedOptionIndex > -1 ? matchedOptionIndex : index;
|
|
1182
|
+
};
|
|
1183
|
+
var onOptionSelectRange = function onOptionSelectRange(event) {
|
|
1184
|
+
var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;
|
|
1185
|
+
var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;
|
|
1186
|
+
start === -1 && (start = findNearestSelectedOptionIndex(end, true));
|
|
1187
|
+
end === -1 && (end = findNearestSelectedOptionIndex(start));
|
|
1188
|
+
if (start !== -1 && end !== -1) {
|
|
1189
|
+
var rangeStart = Math.min(start, end);
|
|
1190
|
+
var rangeEnd = Math.max(start, end);
|
|
1191
|
+
var value = visibleOptions.slice(rangeStart, rangeEnd + 1).filter(function (option) {
|
|
1192
|
+
return isValidOption(option);
|
|
1193
|
+
}).map(function (option) {
|
|
1194
|
+
return getOptionValue(option);
|
|
1195
|
+
});
|
|
1196
|
+
updateModel(event, value);
|
|
1148
1197
|
}
|
|
1149
1198
|
};
|
|
1150
|
-
var
|
|
1151
|
-
var
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
//down
|
|
1155
|
-
case 40:
|
|
1156
|
-
var nextItem = findNextItem(listItem);
|
|
1157
|
-
nextItem && nextItem.focus();
|
|
1158
|
-
originalEvent.preventDefault();
|
|
1159
|
-
break;
|
|
1160
|
-
|
|
1161
|
-
//up
|
|
1162
|
-
case 38:
|
|
1163
|
-
var prevItem = findPrevItem(listItem);
|
|
1164
|
-
prevItem && prevItem.focus();
|
|
1165
|
-
originalEvent.preventDefault();
|
|
1166
|
-
break;
|
|
1167
|
-
|
|
1168
|
-
//enter and space
|
|
1169
|
-
case 13:
|
|
1170
|
-
case 32:
|
|
1171
|
-
onOptionSelect(event);
|
|
1172
|
-
originalEvent.preventDefault();
|
|
1173
|
-
break;
|
|
1174
|
-
|
|
1175
|
-
//escape
|
|
1176
|
-
case 27:
|
|
1177
|
-
hide();
|
|
1178
|
-
utils.DomHandler.focus(inputRef.current);
|
|
1179
|
-
break;
|
|
1199
|
+
var onOptionSelect = function onOptionSelect(event, option) {
|
|
1200
|
+
var index = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1;
|
|
1201
|
+
if (props.disabled || isOptionDisabled(option)) {
|
|
1202
|
+
return;
|
|
1180
1203
|
}
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
return prevItem ? utils.DomHandler.getAttribute(prevItem, 'data-p-disabled') === true || utils.DomHandler.getAttribute(prevItem, 'data-pc-section') === 'itemgroup' ? findPrevItem(prevItem) : prevItem : null;
|
|
1204
|
+
var selected = isSelected(option);
|
|
1205
|
+
var value = null;
|
|
1206
|
+
if (selected) value = props.value.filter(function (val) {
|
|
1207
|
+
return !utils.ObjectUtils.equals(val, getOptionValue(option), equalityKey);
|
|
1208
|
+
});else value = [].concat(_toConsumableArray(props.value || []), [getOptionValue(option)]);
|
|
1209
|
+
updateModel(event, value);
|
|
1210
|
+
index !== -1 && setFocusedOptionIndex(index);
|
|
1189
1211
|
};
|
|
1190
1212
|
var onClick = function onClick(event) {
|
|
1191
1213
|
if (!props.inline && !props.disabled && !props.loading && !isPanelClicked(event) && utils.DomHandler.getAttribute(event.target, 'data-pc-section') !== 'removetokenicon' && !isClearClicked(event)) {
|
|
@@ -1193,42 +1215,170 @@ this.primereact.multiselect = (function (exports, React, PrimeReact, componentba
|
|
|
1193
1215
|
utils.DomHandler.focus(inputRef.current);
|
|
1194
1216
|
event.preventDefault();
|
|
1195
1217
|
}
|
|
1218
|
+
setClicked(true);
|
|
1219
|
+
};
|
|
1220
|
+
var onArrowDownKey = function onArrowDownKey(event) {
|
|
1221
|
+
if (!overlayVisibleState) {
|
|
1222
|
+
show();
|
|
1223
|
+
props.editable && changeFocusedOptionIndex(event, findSelectedOptionIndex());
|
|
1224
|
+
} else {
|
|
1225
|
+
var optionIndex = focusedOptionIndex !== -1 ? findNextOptionIndex(focusedOptionIndex) : clicked ? findFirstOptionIndex() : findFirstFocusedOptionIndex();
|
|
1226
|
+
if (event.shiftKey) {
|
|
1227
|
+
onOptionSelectRange(event, startRangeIndex, optionIndex);
|
|
1228
|
+
}
|
|
1229
|
+
changeFocusedOptionIndex(event, optionIndex);
|
|
1230
|
+
}
|
|
1231
|
+
event.preventDefault();
|
|
1232
|
+
};
|
|
1233
|
+
var onArrowUpKey = function onArrowUpKey(event) {
|
|
1234
|
+
var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1235
|
+
if (event.altKey && !pressedInInputText) {
|
|
1236
|
+
if (focusedOptionIndex !== -1) {
|
|
1237
|
+
onOptionSelect(event, visibleOptions[focusedOptionIndex]);
|
|
1238
|
+
}
|
|
1239
|
+
overlayVisibleState && hide();
|
|
1240
|
+
event.preventDefault();
|
|
1241
|
+
} else {
|
|
1242
|
+
var optionIndex = focusedOptionIndex !== -1 ? findPrevOptionIndex(focusedOptionIndex) : clicked ? findLastOptionIndex() : findLastFocusedOptionIndex();
|
|
1243
|
+
changeFocusedOptionIndex(event, optionIndex);
|
|
1244
|
+
!overlayVisibleState && show();
|
|
1245
|
+
event.preventDefault();
|
|
1246
|
+
}
|
|
1247
|
+
};
|
|
1248
|
+
var onEnterKey = function onEnterKey(event) {
|
|
1249
|
+
if (!overlayVisibleState) {
|
|
1250
|
+
setFocusedOptionIndex(-1);
|
|
1251
|
+
onArrowDownKey(event);
|
|
1252
|
+
} else {
|
|
1253
|
+
if (focusedOptionIndex !== -1) {
|
|
1254
|
+
if (event.shiftKey) onOptionSelectRange(event, focusedOptionIndex);else onOptionSelect(event, visibleOptions[focusedOptionIndex]);
|
|
1255
|
+
}
|
|
1256
|
+
hide();
|
|
1257
|
+
}
|
|
1258
|
+
event.preventDefault();
|
|
1259
|
+
};
|
|
1260
|
+
var onHomeKey = function onHomeKey(event) {
|
|
1261
|
+
var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1262
|
+
var currentTarget = event.currentTarget;
|
|
1263
|
+
if (pressedInInputText) {
|
|
1264
|
+
var len = currentTarget.value.length;
|
|
1265
|
+
currentTarget.setSelectionRange(0, event.shiftKey ? len : 0);
|
|
1266
|
+
setFocusedOptionIndex(-1);
|
|
1267
|
+
} else {
|
|
1268
|
+
var metaKey = event.metaKey || event.ctrlKey;
|
|
1269
|
+
var optionIndex = findFirstOptionIndex();
|
|
1270
|
+
if (event.shiftKey && metaKey) {
|
|
1271
|
+
onOptionSelectRange(event, optionIndex, startRangeIndex);
|
|
1272
|
+
}
|
|
1273
|
+
changeFocusedOptionIndex(event, optionIndex);
|
|
1274
|
+
!overlayVisibleState && show();
|
|
1275
|
+
}
|
|
1276
|
+
event.preventDefault();
|
|
1277
|
+
};
|
|
1278
|
+
var onEndKey = function onEndKey(event) {
|
|
1279
|
+
var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1280
|
+
var currentTarget = event.currentTarget;
|
|
1281
|
+
if (pressedInInputText) {
|
|
1282
|
+
var len = currentTarget.value.length;
|
|
1283
|
+
currentTarget.setSelectionRange(event.shiftKey ? 0 : len, len);
|
|
1284
|
+
_readOnlyError("focusedOptionIndex");
|
|
1285
|
+
} else {
|
|
1286
|
+
var metaKey = event.metaKey || event.ctrlKey;
|
|
1287
|
+
var optionIndex = findLastOptionIndex();
|
|
1288
|
+
if (event.shiftKey && metaKey) {
|
|
1289
|
+
onOptionSelectRange(event, startRangeIndex, optionIndex);
|
|
1290
|
+
}
|
|
1291
|
+
changeFocusedOptionIndex(event, optionIndex);
|
|
1292
|
+
!overlayVisibleState && show();
|
|
1293
|
+
}
|
|
1294
|
+
event.preventDefault();
|
|
1295
|
+
};
|
|
1296
|
+
var onPageUpKey = function onPageUpKey(event) {
|
|
1297
|
+
event.preventDefault();
|
|
1298
|
+
};
|
|
1299
|
+
var onPageDownKey = function onPageDownKey(event) {
|
|
1300
|
+
event.preventDefault();
|
|
1301
|
+
};
|
|
1302
|
+
var onTabKey = function onTabKey(event) {
|
|
1303
|
+
var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1304
|
+
if (!pressedInInputText) {
|
|
1305
|
+
if (overlayVisibleState && hasFocusableElements()) {
|
|
1306
|
+
utils.DomHandler.focus(event.shiftKey ? lastHiddenFocusableElementOnOverlay.current : firstHiddenFocusableElementOnOverlay.current);
|
|
1307
|
+
event.preventDefault();
|
|
1308
|
+
} else {
|
|
1309
|
+
if (focusedOptionIndex !== -1) {
|
|
1310
|
+
onOptionSelect(event, visibleOptions[focusedOptionIndex]);
|
|
1311
|
+
}
|
|
1312
|
+
overlayVisibleState && hide(filter);
|
|
1313
|
+
}
|
|
1314
|
+
}
|
|
1315
|
+
};
|
|
1316
|
+
var onShiftKey = function onShiftKey() {
|
|
1317
|
+
setStartRangeIndex(focusedOptionIndex);
|
|
1196
1318
|
};
|
|
1197
1319
|
var onKeyDown = function onKeyDown(event) {
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
case
|
|
1320
|
+
var metaKey = event.metaKey || event.ctrlKey;
|
|
1321
|
+
switch (event.code) {
|
|
1322
|
+
case 'ArrowUp':
|
|
1201
1323
|
if (props.inline) break;
|
|
1202
|
-
|
|
1203
|
-
show();
|
|
1204
|
-
event.preventDefault();
|
|
1205
|
-
}
|
|
1324
|
+
onArrowUpKey(event);
|
|
1206
1325
|
break;
|
|
1207
|
-
|
|
1208
|
-
//space
|
|
1209
|
-
case 32:
|
|
1326
|
+
case 'ArrowDown':
|
|
1210
1327
|
if (props.inline) break;
|
|
1211
|
-
|
|
1328
|
+
onArrowDownKey(event);
|
|
1329
|
+
break;
|
|
1330
|
+
case 'Space':
|
|
1331
|
+
case 'NumpadEnter':
|
|
1332
|
+
case 'Enter':
|
|
1333
|
+
if (props.inline) break;
|
|
1334
|
+
onEnterKey(event);
|
|
1335
|
+
break;
|
|
1336
|
+
case 'Home':
|
|
1337
|
+
if (props.inline) break;
|
|
1338
|
+
onHomeKey(event);
|
|
1212
1339
|
event.preventDefault();
|
|
1213
1340
|
break;
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1341
|
+
case 'End':
|
|
1342
|
+
if (props.inline) break;
|
|
1343
|
+
onEndKey(event);
|
|
1344
|
+
event.preventDefault();
|
|
1345
|
+
break;
|
|
1346
|
+
case 'PageDown':
|
|
1347
|
+
onPageDownKey(event);
|
|
1348
|
+
break;
|
|
1349
|
+
case 'PageUp':
|
|
1350
|
+
onPageUpKey(event);
|
|
1351
|
+
break;
|
|
1352
|
+
case 'Escape':
|
|
1217
1353
|
if (props.inline) break;
|
|
1218
1354
|
hide();
|
|
1219
1355
|
break;
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1356
|
+
case 'Tab':
|
|
1357
|
+
onTabKey(event);
|
|
1358
|
+
break;
|
|
1359
|
+
case 'ShiftLeft':
|
|
1360
|
+
case 'ShiftRight':
|
|
1361
|
+
onShiftKey();
|
|
1362
|
+
break;
|
|
1363
|
+
default:
|
|
1364
|
+
if (event.code === 'KeyA' && metaKey) {
|
|
1365
|
+
var value = visibleOptions.filter(function (option) {
|
|
1366
|
+
return isValidOption(option);
|
|
1367
|
+
}).map(function (option) {
|
|
1368
|
+
return getOptionValue(option);
|
|
1369
|
+
});
|
|
1370
|
+
updateModel(event, value);
|
|
1371
|
+
event.preventDefault();
|
|
1372
|
+
break;
|
|
1373
|
+
}
|
|
1374
|
+
if (!metaKey && utils.ObjectUtils.isPrintableCharacter(event.key)) {
|
|
1375
|
+
!overlayVisibleState && show();
|
|
1376
|
+
searchOptions(event);
|
|
1377
|
+
event.preventDefault();
|
|
1229
1378
|
}
|
|
1230
1379
|
break;
|
|
1231
1380
|
}
|
|
1381
|
+
setClicked(false);
|
|
1232
1382
|
};
|
|
1233
1383
|
var onSelectAll = function onSelectAll(event) {
|
|
1234
1384
|
if (props.onSelectAll) {
|
|
@@ -1314,9 +1464,13 @@ this.primereact.multiselect = (function (exports, React, PrimeReact, componentba
|
|
|
1314
1464
|
};
|
|
1315
1465
|
var show = function show() {
|
|
1316
1466
|
setOverlayVisibleState(true);
|
|
1467
|
+
setFocusedOptionIndex(focusedOptionIndex !== -1 ? focusedOptionIndex : props.autoOptionFocus ? findFirstFocusedOptionIndex() : findSelectedOptionIndex());
|
|
1468
|
+
utils.DomHandler.focus(inputRef.current);
|
|
1317
1469
|
};
|
|
1318
1470
|
var hide = function hide() {
|
|
1471
|
+
setFocusedOptionIndex(-1);
|
|
1319
1472
|
setOverlayVisibleState(false);
|
|
1473
|
+
setClicked(false);
|
|
1320
1474
|
};
|
|
1321
1475
|
var onOverlayEnter = function onOverlayEnter(callback) {
|
|
1322
1476
|
utils.ZIndexUtils.set('overlay', overlayRef.current, context && context.autoZIndex || PrimeReact__default["default"].autoZIndex, context && context.zIndex['overlay'] || PrimeReact__default["default"].zIndex['overlay']);
|
|
@@ -1510,6 +1664,100 @@ this.primereact.multiselect = (function (exports, React, PrimeReact, componentba
|
|
|
1510
1664
|
var isOptionValueUsed = function isOptionValueUsed(option) {
|
|
1511
1665
|
return !props.useOptionAsValue && props.optionValue || option && option['value'] !== undefined;
|
|
1512
1666
|
};
|
|
1667
|
+
var isOptionGroup = function isOptionGroup(option) {
|
|
1668
|
+
return props.optionGroupLabel && option.optionGroup && option.group;
|
|
1669
|
+
};
|
|
1670
|
+
var hasSelectedOption = function hasSelectedOption() {
|
|
1671
|
+
return utils.ObjectUtils.isNotEmpty(props.value);
|
|
1672
|
+
};
|
|
1673
|
+
var hasFocusableElements = function hasFocusableElements() {
|
|
1674
|
+
return utils.DomHandler.getFocusableElements(overlayRef.current, ':not([data-p-hidden-focusable="true"])').length > 0;
|
|
1675
|
+
};
|
|
1676
|
+
var isOptionMatched = function isOptionMatched(option) {
|
|
1677
|
+
var _getOptionLabel;
|
|
1678
|
+
return isValidOption(option) && ((_getOptionLabel = getOptionLabel(option)) === null || _getOptionLabel === void 0 ? void 0 : _getOptionLabel.toLocaleLowerCase(props.filterLocale).startsWith(searchValue.current.toLocaleLowerCase(props.filterLocale)));
|
|
1679
|
+
};
|
|
1680
|
+
var isValidOption = function isValidOption(option) {
|
|
1681
|
+
return utils.ObjectUtils.isNotEmpty(option) && !(isOptionDisabled(option) || isOptionGroup(option));
|
|
1682
|
+
};
|
|
1683
|
+
var isValidSelectedOption = function isValidSelectedOption(option) {
|
|
1684
|
+
return isValidOption(option) && isSelected(option);
|
|
1685
|
+
};
|
|
1686
|
+
var findSelectedOptionIndex = function findSelectedOptionIndex() {
|
|
1687
|
+
return hasSelectedOption ? visibleOptions === null || visibleOptions === void 0 ? void 0 : visibleOptions.findIndex(function (option) {
|
|
1688
|
+
return isValidSelectedOption(option);
|
|
1689
|
+
}) : -1;
|
|
1690
|
+
};
|
|
1691
|
+
var findFirstFocusedOptionIndex = function findFirstFocusedOptionIndex() {
|
|
1692
|
+
var selectedIndex = findSelectedOptionIndex();
|
|
1693
|
+
return selectedIndex < 0 ? findFirstOptionIndex() : selectedIndex;
|
|
1694
|
+
};
|
|
1695
|
+
var findLastFocusedOptionIndex = function findLastFocusedOptionIndex() {
|
|
1696
|
+
var selectedIndex = findSelectedOptionIndex();
|
|
1697
|
+
return selectedIndex < 0 ? findLastOptionIndex() : selectedIndex;
|
|
1698
|
+
};
|
|
1699
|
+
var findFirstOptionIndex = function findFirstOptionIndex() {
|
|
1700
|
+
return visibleOptions.findIndex(function (option) {
|
|
1701
|
+
return isValidOption(option);
|
|
1702
|
+
});
|
|
1703
|
+
};
|
|
1704
|
+
var findLastOptionIndex = function findLastOptionIndex() {
|
|
1705
|
+
return utils.ObjectUtils.findLastIndex(visibleOptions, function (option) {
|
|
1706
|
+
return isValidOption(option);
|
|
1707
|
+
});
|
|
1708
|
+
};
|
|
1709
|
+
var findNextOptionIndex = function findNextOptionIndex(index) {
|
|
1710
|
+
var matchedOptionIndex = index < visibleOptions.length - 1 ? visibleOptions.slice(index + 1).findIndex(function (option) {
|
|
1711
|
+
return isValidOption(option);
|
|
1712
|
+
}) : -1;
|
|
1713
|
+
return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;
|
|
1714
|
+
};
|
|
1715
|
+
var findPrevOptionIndex = function findPrevOptionIndex(index) {
|
|
1716
|
+
var matchedOptionIndex = index > 0 ? utils.ObjectUtils.findLastIndex(visibleOptions.slice(0, index), function (option) {
|
|
1717
|
+
return isValidOption(option);
|
|
1718
|
+
}) : -1;
|
|
1719
|
+
return matchedOptionIndex > -1 ? matchedOptionIndex : index;
|
|
1720
|
+
};
|
|
1721
|
+
var searchOptions = function searchOptions(event) {
|
|
1722
|
+
searchValue.current = (searchValue.current || '') + event.key;
|
|
1723
|
+
var optionIndex = -1;
|
|
1724
|
+
if (utils.ObjectUtils.isNotEmpty(searchValue.current)) {
|
|
1725
|
+
if (focusedOptionIndex !== -1) {
|
|
1726
|
+
optionIndex = visibleOptions.slice(focusedOptionIndex).findIndex(function (option) {
|
|
1727
|
+
return isOptionMatched(option);
|
|
1728
|
+
});
|
|
1729
|
+
optionIndex = optionIndex === -1 ? visibleOptions.slice(0, focusedOptionIndex).findIndex(function (option) {
|
|
1730
|
+
return isOptionMatched(option);
|
|
1731
|
+
}) : optionIndex + focusedOptionIndex;
|
|
1732
|
+
} else {
|
|
1733
|
+
optionIndex = visibleOptions.findIndex(function (option) {
|
|
1734
|
+
return isOptionMatched(option);
|
|
1735
|
+
});
|
|
1736
|
+
}
|
|
1737
|
+
if (optionIndex === -1 && focusedOptionIndex === -1) {
|
|
1738
|
+
optionIndex = findFirstFocusedOptionIndex();
|
|
1739
|
+
}
|
|
1740
|
+
if (optionIndex !== -1) {
|
|
1741
|
+
changeFocusedOptionIndex(event, optionIndex);
|
|
1742
|
+
}
|
|
1743
|
+
}
|
|
1744
|
+
if (searchTimeout.current) {
|
|
1745
|
+
clearTimeout(searchTimeout.current);
|
|
1746
|
+
}
|
|
1747
|
+
searchTimeout.current = setTimeout(function () {
|
|
1748
|
+
searchValue.current = '';
|
|
1749
|
+
searchTimeout.current = null;
|
|
1750
|
+
}, 500);
|
|
1751
|
+
};
|
|
1752
|
+
var changeFocusedOptionIndex = function changeFocusedOptionIndex(event, index) {
|
|
1753
|
+
if (focusedOptionIndex !== index) {
|
|
1754
|
+
setFocusedOptionIndex(index);
|
|
1755
|
+
scrollInView();
|
|
1756
|
+
if (props.selectOnFocus) {
|
|
1757
|
+
onOptionSelect(event, visibleOptions[index], false);
|
|
1758
|
+
}
|
|
1759
|
+
}
|
|
1760
|
+
};
|
|
1513
1761
|
var removeChip = function removeChip(event, item) {
|
|
1514
1762
|
var value = props.value.filter(function (val) {
|
|
1515
1763
|
return !utils.ObjectUtils.equals(val, item, equalityKey);
|
|
@@ -1650,6 +1898,7 @@ this.primereact.multiselect = (function (exports, React, PrimeReact, componentba
|
|
|
1650
1898
|
setTimeout(function () {
|
|
1651
1899
|
props.overlayVisible ? show() : hide();
|
|
1652
1900
|
}, 100);
|
|
1901
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
1653
1902
|
}, [props.overlayVisible]);
|
|
1654
1903
|
hooks.useUpdateEffect(function () {
|
|
1655
1904
|
if (overlayVisibleState && filterState && hasFilter) {
|
|
@@ -1734,11 +1983,31 @@ this.primereact.multiselect = (function (exports, React, PrimeReact, componentba
|
|
|
1734
1983
|
role: 'listbox',
|
|
1735
1984
|
'aria-expanded': overlayVisibleState,
|
|
1736
1985
|
disabled: props.disabled,
|
|
1737
|
-
tabIndex: props.tabIndex
|
|
1986
|
+
tabIndex: !props.disabled ? props.tabIndex : -1
|
|
1738
1987
|
}, ariaProps), ptm('input'));
|
|
1988
|
+
var firstHiddenElementProps = mergeProps({
|
|
1989
|
+
ref: firstHiddenFocusableElementOnOverlay,
|
|
1990
|
+
role: 'presentation',
|
|
1991
|
+
'aria-hidden': true,
|
|
1992
|
+
className: 'p-hidden-accessible p-hidden-focusable',
|
|
1993
|
+
tabIndex: '0',
|
|
1994
|
+
onFocus: onFirstHiddenFocus,
|
|
1995
|
+
'data-p-hidden-accessible': true,
|
|
1996
|
+
'data-p-hidden-focusable': true
|
|
1997
|
+
}, ptm('hiddenFirstFocusableEl'));
|
|
1998
|
+
var lastHiddenElementProps = mergeProps({
|
|
1999
|
+
ref: lastHiddenFocusableElementOnOverlay,
|
|
2000
|
+
role: 'presentation',
|
|
2001
|
+
'aria-hidden': true,
|
|
2002
|
+
className: 'p-hidden-accessible p-hidden-focusable',
|
|
2003
|
+
tabIndex: '0',
|
|
2004
|
+
onFocus: onLastHiddenFocus,
|
|
2005
|
+
'data-p-hidden-accessible': true,
|
|
2006
|
+
'data-p-hidden-focusable': true
|
|
2007
|
+
}, ptm('hiddenLastFocusableEl'));
|
|
1739
2008
|
return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("div", rootProps, /*#__PURE__*/React__namespace.createElement("div", hiddenInputWrapperProps, /*#__PURE__*/React__namespace.createElement("input", _extends({}, inputProps, {
|
|
1740
2009
|
readOnly: true
|
|
1741
|
-
}))), !props.inline && /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, label, clearIcon, triggerIcon), /*#__PURE__*/React__namespace.createElement(MultiSelectPanel, _extends({
|
|
2010
|
+
}))), !props.inline && /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, label, clearIcon, triggerIcon), /*#__PURE__*/React__namespace.createElement("span", firstHiddenElementProps), /*#__PURE__*/React__namespace.createElement(MultiSelectPanel, _extends({
|
|
1742
2011
|
hostName: "MultiSelect",
|
|
1743
2012
|
ref: overlayRef,
|
|
1744
2013
|
visibleOptions: visibleOptions
|
|
@@ -1746,6 +2015,8 @@ this.primereact.multiselect = (function (exports, React, PrimeReact, componentba
|
|
|
1746
2015
|
onClick: onPanelClick,
|
|
1747
2016
|
onOverlayHide: hide,
|
|
1748
2017
|
filterValue: filterState,
|
|
2018
|
+
focusedOptionIndex: focusedOptionIndex,
|
|
2019
|
+
setFocusedOptionIndex: setFocusedOptionIndex,
|
|
1749
2020
|
hasFilter: hasFilter,
|
|
1750
2021
|
onFilterInputChange: onFilterInputChange,
|
|
1751
2022
|
resetFilter: resetFilter,
|
|
@@ -1762,7 +2033,6 @@ this.primereact.multiselect = (function (exports, React, PrimeReact, componentba
|
|
|
1762
2033
|
isAllSelected: isAllSelected,
|
|
1763
2034
|
onOptionSelect: onOptionSelect,
|
|
1764
2035
|
allowOptionSelect: allowOptionSelect,
|
|
1765
|
-
onOptionKeyDown: onOptionKeyDown,
|
|
1766
2036
|
"in": overlayVisibleState,
|
|
1767
2037
|
onEnter: onOverlayEnter,
|
|
1768
2038
|
onEntered: onOverlayEntered,
|
|
@@ -1773,7 +2043,7 @@ this.primereact.multiselect = (function (exports, React, PrimeReact, componentba
|
|
|
1773
2043
|
sx: sx,
|
|
1774
2044
|
isUnstyled: isUnstyled,
|
|
1775
2045
|
metaData: metaData
|
|
1776
|
-
}))), hasTooltip && /*#__PURE__*/React__namespace.createElement(tooltip.Tooltip, _extends({
|
|
2046
|
+
})), /*#__PURE__*/React__namespace.createElement("span", lastHiddenElementProps)), hasTooltip && /*#__PURE__*/React__namespace.createElement(tooltip.Tooltip, _extends({
|
|
1777
2047
|
target: elementRef,
|
|
1778
2048
|
content: props.tooltip
|
|
1779
2049
|
}, props.tooltipOptions, {
|