@base-ui/react
Version:
Base UI is a library of headless ('unstyled') React components and low-level hooks. You gain complete control over your app's CSS and accessibility features.
77 lines (76 loc) • 2.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.selectors = void 0;
var _itemEquality = require("../internals/itemEquality");
var _resolveValueLabel = require("../internals/resolveValueLabel");
const selectors = exports.selectors = {
id: state => state.id,
labelId: state => state.labelId,
items: state => state.items,
selectedValue: state => state.selectedValue,
hasSelectionChips: state => {
const selectedValue = state.selectedValue;
return Array.isArray(selectedValue) && selectedValue.length > 0;
},
hasSelectedValue: state => {
const {
selectedValue,
selectionMode
} = state;
if (selectedValue == null) {
return false;
}
if (selectionMode === 'multiple' && Array.isArray(selectedValue)) {
return selectedValue.length > 0;
}
return true;
},
hasNullItemLabel: (state, enabled) => {
return enabled ? (0, _resolveValueLabel.hasNullItemLabel)(state.items) : false;
},
open: state => state.open,
mounted: state => state.mounted,
forceMounted: state => state.forceMounted,
inline: state => state.inline,
activeIndex: state => state.activeIndex,
selectedIndex: state => state.selectedIndex,
isActive: (state, index) => state.activeIndex === index,
isSelected: (state, itemValue) => {
const comparer = state.isItemEqualToValue;
const selectedValue = state.selectedValue;
if (Array.isArray(selectedValue)) {
return selectedValue.some(selectedItem => (0, _itemEquality.compareItemEquality)(itemValue, selectedItem, comparer));
}
return (0, _itemEquality.compareItemEquality)(itemValue, selectedValue, comparer);
},
transitionStatus: state => state.transitionStatus,
popupProps: state => state.popupProps,
listProps: state => state.listProps,
inputProps: state => state.inputProps,
triggerProps: state => state.triggerProps,
itemProps: state => state.itemProps,
positionerElement: state => state.positionerElement,
listElement: state => state.listElement,
popupId: state => state.popupId,
triggerElement: state => state.triggerElement,
inputElement: state => state.inputElement,
inputGroupElement: state => state.inputGroupElement,
popupSide: state => state.popupSide,
openMethod: state => state.openMethod,
inputInsidePopup: state => state.inputInsidePopup,
inputOwnsFormValue: state => state.inputOwnsFormValue,
selectionMode: state => state.selectionMode,
name: state => state.name,
form: state => state.form,
disabled: state => state.disabled,
readOnly: state => state.readOnly,
required: state => state.required,
grid: state => state.grid,
virtualized: state => state.virtualized,
itemToStringLabel: state => state.itemToStringLabel,
isItemEqualToValue: state => state.isItemEqualToValue,
modal: state => state.modal,
autoHighlight: state => state.autoHighlight
};