in apis/latest/scripts/components/DocumentableList.js [136:185]
isElementVisible(elementData, filter) {
return !areFiltersFromElementSelected()
? false
: includesInputValue()
function includesInputValue() {
const lcValue = filter.value.toLowerCase()
return elementData.name.toLowerCase().includes(lcValue)
|| elementData.description.toLowerCase().includes(lcValue);
}
function areFiltersFromElementSelected() {
/** @type { Dataset } */
const dataset = Object.entries(elementData.ref.dataset)
/** @type { Dataset } */
const defaultFilters = Object.entries(Filter.defaultFilters)
.filter(([key]) => !!filter.filters[getFilterKey(key)])
/** @type { Dataset } */
const defaultFiltersForMembersWithoutDataAttribute =
defaultFilters.reduce((acc, [key, value]) => {
const filterKey = getFilterKey(key)
const shouldAddDefaultFilter = !dataset.some(([k]) => k === filterKey)
return shouldAddDefaultFilter ? [...acc, [filterKey, value]] : acc
}, [])
/** @type { Dataset } */
const datasetWithAppendedDefaultFilters = dataset
.filter(([k]) => isFilterData(k))
.map(([k, v]) => {
const defaultFilter = defaultFilters.find(([defaultKey]) => defaultKey === k)
return defaultFilter ? [k, `${v},${defaultFilter[1]}`] : [k, v]
})
const datasetWithDefaultFilters = [
...defaultFiltersForMembersWithoutDataAttribute,
...datasetWithAppendedDefaultFilters
]
const isVisible = datasetWithDefaultFilters
.every(([filterKey, value]) => {
const filterGroup = filter.filters[filterKey]
return value.split(",").some(v => filterGroup && filterGroup[v].selected)
})
return isVisible
}
}