@coreui/react-pro
Version:
UI Components Library for React.js
90 lines (87 loc) • 3.43 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 getOptionsList = function (container) {
return Array.from(container.querySelectorAll('.form-multi-select-option:not(.disabled):not(:disabled)'));
};
var isExternalSearch = function (search) {
return ((typeof search === 'string' && search === 'external') ||
(typeof search === 'object' && search.external === true));
};
var isGlobalSearch = function (search) {
return ((typeof search === 'string' && search === 'global') ||
(typeof search === 'object' && search.global === true));
};
var selectOptions = function (multiple, options, selected, deselected) {
if (!multiple) {
return [options[0]];
}
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, getOptionsList, isExternalSearch, isGlobalSearch, selectOptions };
//# sourceMappingURL=utils.js.map