UNPKG

@coreui/react-pro

Version:

UI Components Library for React.js

100 lines (97 loc) 3.64 kB
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