@coreui/react-pro
Version:
UI Components Library for React.js
108 lines (104 loc) • 3.94 kB
JavaScript
;
var tslib_es6 = require('../../node_modules/tslib/tslib.es6.js');
var filterOptions = function (options, search) {
var result = [];
options.forEach(function (item) {
if (typeof item !== 'string' && 'options' in item && Array.isArray(item.options)) {
var filteredOptions = filterOptions(item.options, search);
if (filteredOptions.length > 0) {
result.push(tslib_es6.__assign(tslib_es6.__assign({}, item), { options: filteredOptions }));
}
}
else if (getOptionLabel(item).toLowerCase().includes(search.toLowerCase())) {
result.push(item);
}
});
return result;
};
var flattenOptionsArray = function (options) {
var optionsList = [];
for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {
var option = options_1[_i];
if (typeof option !== 'string' && 'options' in option && Array.isArray(option.options)) {
optionsList.push.apply(optionsList, option.options);
}
else {
optionsList.push(option);
}
}
return optionsList;
};
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 getOptionLabel = function (option) {
return typeof option === 'string' ? option : option.label;
};
var highlightSubstring = function (string, query) {
if (query) {
var regex = new RegExp(query, 'gi');
return string.replace(regex, function (string) { return "<strong>".concat(string, "</strong>"); });
}
return string;
};
var isOptionDisabled = function (option) {
return typeof option === 'string' ? false : option.disabled;
};
var isOptionSelected = function (option, selected) {
if (!selected) {
return false;
}
if (typeof option === 'string' && typeof selected === 'string') {
return selected === option;
}
if (typeof option !== 'string' && typeof selected !== 'string') {
return selected.label === option.label;
}
return false;
};
var getFirstOptionByLabel = function (value, options) {
for (var _i = 0, options_2 = options; _i < options_2.length; _i++) {
var option = options_2[_i];
if (typeof option !== 'string' && 'options' in option && Array.isArray(option.options)) {
var found = getFirstOptionByLabel(value, option.options);
if (found) {
return found;
}
}
if (getOptionLabel(option).toLowerCase() === value.toLowerCase()) {
return option;
}
}
return null;
};
var getFirstOptionByValue = function (value, options) {
for (var _i = 0, options_3 = options; _i < options_3.length; _i++) {
var option = options_3[_i];
if (typeof option !== 'string' && 'options' in option && Array.isArray(option.options)) {
var found = getFirstOptionByValue(value, option.options);
if (found) {
return found;
}
}
if (typeof option !== 'string' && 'value' in option && option.value === value) {
return option;
}
}
return null;
};
exports.filterOptions = filterOptions;
exports.flattenOptionsArray = flattenOptionsArray;
exports.getFirstOptionByLabel = getFirstOptionByLabel;
exports.getFirstOptionByValue = getFirstOptionByValue;
exports.getOptionLabel = getOptionLabel;
exports.highlightSubstring = highlightSubstring;
exports.isExternalSearch = isExternalSearch;
exports.isGlobalSearch = isGlobalSearch;
exports.isOptionDisabled = isOptionDisabled;
exports.isOptionSelected = isOptionSelected;
//# sourceMappingURL=utils.js.map