@versatiledatakit/shared
Version:
Versatile Data Kit Shared library enables reusability of shared features like: NgRx Redux, Error Handlers, Utils, Generic Components, etc.
30 lines • 3.22 kB
JavaScript
/*
* Copyright 2023-2025 Broadcom
* SPDX-License-Identifier: Apache-2.0
*/
/**
* ** Or criteria that filters elements in Array and remove those that does not meet at least one criterias.
*/
export class OrCriteria {
/**
* ** Constructor.
*/
constructor(...criterias) {
this.criterias = criterias;
}
/**
* @inheritDoc
*/
meetCriteria(elements) {
return this.criterias.reduce((elementsMeetCriteria, criteria) => {
const singleCriteriaMetElements = criteria.meetCriteria(elements);
for (const element of singleCriteriaMetElements) {
if (!elementsMeetCriteria.includes(element)) {
elementsMeetCriteria.push(element);
}
}
return elementsMeetCriteria;
}, []);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3IuY3JpdGVyaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9jb21tb24vY3JpdGVyaWEvY29tcG91bmQvb3IuY3JpdGVyaWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBSUg7O0dBRUc7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQU1uQjs7T0FFRztJQUNILFlBQVksR0FBRyxTQUF3QjtRQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZLENBQUMsUUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDNUQsTUFBTSx5QkFBeUIsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRWxFLEtBQUssTUFBTSxPQUFPLElBQUkseUJBQXlCLEVBQUU7Z0JBQzdDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ3pDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDdEM7YUFDSjtZQUVELE9BQU8sb0JBQW9CLENBQUM7UUFDaEMsQ0FBQyxFQUFFLEVBQVMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyMy0yMDI1IEJyb2FkY29tXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbmltcG9ydCB7IENyaXRlcmlhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbi8qKlxuICogKiogT3IgY3JpdGVyaWEgdGhhdCBmaWx0ZXJzIGVsZW1lbnRzIGluIEFycmF5IGFuZCByZW1vdmUgdGhvc2UgdGhhdCBkb2VzIG5vdCBtZWV0IGF0IGxlYXN0IG9uZSBjcml0ZXJpYXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBPckNyaXRlcmlhPFQ+IGltcGxlbWVudHMgQ3JpdGVyaWE8VD4ge1xuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgcmVhZG9ubHkgY3JpdGVyaWFzOiBDcml0ZXJpYTxUPltdO1xuXG4gICAgLyoqXG4gICAgICogKiogQ29uc3RydWN0b3IuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoLi4uY3JpdGVyaWFzOiBDcml0ZXJpYTxUPltdKSB7XG4gICAgICAgIHRoaXMuY3JpdGVyaWFzID0gY3JpdGVyaWFzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBpbmhlcml0RG9jXG4gICAgICovXG4gICAgbWVldENyaXRlcmlhKGVsZW1lbnRzOiBUW10pOiBUW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5jcml0ZXJpYXMucmVkdWNlKChlbGVtZW50c01lZXRDcml0ZXJpYSwgY3JpdGVyaWEpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNpbmdsZUNyaXRlcmlhTWV0RWxlbWVudHMgPSBjcml0ZXJpYS5tZWV0Q3JpdGVyaWEoZWxlbWVudHMpO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2Ygc2luZ2xlQ3JpdGVyaWFNZXRFbGVtZW50cykge1xuICAgICAgICAgICAgICAgIGlmICghZWxlbWVudHNNZWV0Q3JpdGVyaWEuaW5jbHVkZXMoZWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudHNNZWV0Q3JpdGVyaWEucHVzaChlbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50c01lZXRDcml0ZXJpYTtcbiAgICAgICAgfSwgW10gYXMgVFtdKTtcbiAgICB9XG59XG4iXX0=