@kubit-ui-web/react-components
Version:
Kubit React Components is a customizable, accessible library of React web components, designed to enhance your application's user experience
45 lines • 1.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getState = exports.getHighlightedIndexes = void 0;
const state_1 = require("../types/state");
const getState = (disabled, focused, selected, multiSelected, hover, filling) => {
if (disabled) {
return state_1.OptionStateType.DISABLED;
}
if (focused) {
return state_1.OptionStateType.FOCUS;
}
if (selected) {
if (multiSelected) {
return hover ? state_1.OptionStateType.MULTIPLE_SELECTED_HOVER : state_1.OptionStateType.MULTIPLE_SELECTED;
}
return hover ? state_1.OptionStateType.SELECTED_HOVER : state_1.OptionStateType.SELECTED;
}
if (hover) {
return state_1.OptionStateType.HOVER;
}
if (filling) {
return state_1.OptionStateType.FILLING;
}
return state_1.OptionStateType.DEFAULT;
};
exports.getState = getState;
/**
* @description
* function to get the indexes of the highlighted chars
*/
const getHighlightedIndexes = (label, labelCharsHighlighted) => {
let firstHighlightedIndex = 0;
let lastHighlightedIndex = 0;
if (labelCharsHighlighted) {
const labelLowerCase = label.toLocaleLowerCase();
const charsHightlightedLowerCase = labelCharsHighlighted.toLocaleLowerCase();
if (labelLowerCase.includes(charsHightlightedLowerCase)) {
firstHighlightedIndex = labelLowerCase.indexOf(charsHightlightedLowerCase);
lastHighlightedIndex = firstHighlightedIndex + labelCharsHighlighted.length;
}
}
return { firstHighlightedIndex, lastHighlightedIndex };
};
exports.getHighlightedIndexes = getHighlightedIndexes;
//# sourceMappingURL=option.utils.js.map