@coreui/react-pro
Version:
UI Components Library for React.js
100 lines (97 loc) • 3.64 kB
JavaScript
import { __rest, __spreadArray } from '../../node_modules/tslib/tslib.es6.js';
var createOption = function (label, options) {
var value = label.toLowerCase().replace(/\s/g, '-');
var uniqueValue = value;
var i = 1;
while (options.some(function (option) { return String(option.value) === uniqueValue; })) {
uniqueValue = "".concat(value, "-").concat(i);
i++;
}
return [
{
value: uniqueValue,
label: label,
custom: true,
},
];
};
var filterOptionsList = function (search, _options) {
if (search.length > 0 && _options) {
var optionsList = [];
for (var _i = 0, _options_1 = _options; _i < _options_1.length; _i++) {
var option = _options_1[_i];
var options = option.options &&
option.options.filter(function (option) {
return option.label && option.label.toLowerCase().includes(search.toLowerCase());
});
if ((option.label && option.label.toLowerCase().includes(search.toLowerCase())) ||
(options && options.length > 0)) {
optionsList.push(Object.assign({}, option, options && options.length > 0 && { options: options }));
}
}
return optionsList;
}
return _options;
};
var flattenOptionsArray = function (options, keepGroupLabel) {
var optionsList = [];
for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {
var option = options_1[_i];
if (Array.isArray(option.options)) {
var options_2 = option.options, rest = __rest(option, ["options"]);
if (keepGroupLabel) {
optionsList.push(rest);
}
optionsList.push.apply(optionsList, options_2);
}
else {
optionsList.push(option);
}
}
return optionsList;
};
var getNextSibling = function (elem, selector) {
// Get the next sibling element
var sibling = elem.nextElementSibling;
// If the sibling matches our selector, use it
// If not, jump to the next sibling and continue the loop
while (sibling) {
if (sibling.matches(selector))
return sibling;
sibling = sibling.nextElementSibling;
}
return;
};
var getPreviousSibling = function (elem, selector) {
// Get the next sibling element
var sibling = elem.previousElementSibling;
// If the sibling matches our selector, use it
// If not, jump to the next sibling and continue the loop
while (sibling) {
if (sibling.matches(selector))
return sibling;
sibling = sibling.previousElementSibling;
}
return;
};
var selectOptions = function (options, selected, deselected) {
var _selected = __spreadArray(__spreadArray([], selected, true), options, true);
if (deselected) {
_selected = _selected.filter(function (selectedOption) {
return !deselected.some(function (deselectedOption) { return deselectedOption.value === selectedOption.value; });
});
}
var deduplicated = [];
var _loop_1 = function (option) {
if (!deduplicated.some(function (obj) { return obj.value === option.value; })) {
deduplicated.push(option);
}
};
for (var _i = 0, _selected_1 = _selected; _i < _selected_1.length; _i++) {
var option = _selected_1[_i];
_loop_1(option);
}
return deduplicated;
};
export { createOption, filterOptionsList, flattenOptionsArray, getNextSibling, getPreviousSibling, selectOptions };
//# sourceMappingURL=utils.js.map