UNPKG

@coreui/vue-pro

Version:

UI Components Library for Vue.js

86 lines (83 loc) 2.95 kB
'use strict'; const createOption = (label, options) => { const value = label.toLowerCase().replace(/\s/g, '-'); let uniqueValue = value; let i = 1; while (options.some((option) => String(option.value) === uniqueValue)) { uniqueValue = `${value}-${i}`; i++; } return [ { value: uniqueValue, label, custom: true, }, ]; }; const filterOptionsList = (search, _options) => { if (search.length > 0 && _options) { const optionsList = []; for (const option of _options) { const options = option.options && option.options.filter((option) => 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 })); } } return optionsList; } return _options; }; const flattenOptionsArray = (options, keepGroupLabel) => { const optionsList = []; for (const option of options) { if (Array.isArray(option.options)) { const { options, ...rest } = option; if (keepGroupLabel) { optionsList.push(rest); } optionsList.push(...options); } else { optionsList.push(option); } } return optionsList; }; const getOptionsList = (container) => { return Array.from(container.querySelectorAll('.form-multi-select-option:not(.disabled):not(:disabled)')); }; const isExternalSearch = (search) => { return ((typeof search === 'string' && search === 'external') || (typeof search === 'object' && search.external === true)); }; const isGlobalSearch = (search) => { return ((typeof search === 'string' && search === 'global') || (typeof search === 'object' && search.global === true)); }; const selectOptions = (multiple, options, selected, deselected) => { if (!multiple) { return [options[0]]; } let _selected = [...selected, ...options]; if (deselected) { _selected = _selected.filter((selectedOption) => !deselected.some((deselectedOption) => deselectedOption.value === selectedOption.value)); } const deduplicated = []; for (const option of _selected) { if (!deduplicated.some((obj) => obj.value === option.value)) { deduplicated.push(option); } } return deduplicated; }; exports.createOption = createOption; exports.filterOptionsList = filterOptionsList; exports.flattenOptionsArray = flattenOptionsArray; exports.getOptionsList = getOptionsList; exports.isExternalSearch = isExternalSearch; exports.isGlobalSearch = isGlobalSearch; exports.selectOptions = selectOptions; //# sourceMappingURL=utils.js.map