@taiga-ui/cdk
Version:
Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance
26 lines • 4.2 kB
JavaScript
function bothEmpty(item1, item2) {
return Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length;
}
/**
* Default handler for matching stringified version of an item and a search query
* @param item arbitrary element to match with a string
* @param search search query
* @param stringify handler to turn item into a string
*/
export const TUI_DEFAULT_MATCHER = (item, search, stringify = String) => stringify(item).toLowerCase().includes(search.toLowerCase());
/**
* Default handler for strict matching stringified version of an item and a search query
* @param item arbitrary element to match with a string
* @param search search query
* @param stringify handler to turn item into a string
*/
export const TUI_STRICT_MATCHER = (item, search, stringify = String) => stringify(item).toLowerCase() === search.toLowerCase();
/**
* Default handler to match equality of two elements
* ATTENTION: considers two empty arrays equal
*
* @param item1 first element
* @param item2 second element
*/
export const TUI_DEFAULT_IDENTITY_MATCHER = (item1, item2) => item1 === item2 || bothEmpty(item1, item2);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2hlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvY29uc3RhbnRzL21hdGNoZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLFNBQVMsU0FBUyxDQUFDLEtBQWMsRUFBRSxLQUFjO0lBQzdDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDMUYsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FDL0IsSUFBTyxFQUNQLE1BQWMsRUFDZCxZQUFtQyxNQUFNLEVBQ2xDLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBRTNFOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FDOUIsSUFBTyxFQUNQLE1BQWMsRUFDZCxZQUFtQyxNQUFNLEVBQ2xDLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBRXJFOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFnQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUN0RixLQUFLLEtBQUssS0FBSyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7VHVpSGFuZGxlciwgVHVpSWRlbnRpdHlNYXRjaGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcblxuZnVuY3Rpb24gYm90aEVtcHR5KGl0ZW0xOiB1bmtub3duLCBpdGVtMjogdW5rbm93bik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGl0ZW0xKSAmJiBBcnJheS5pc0FycmF5KGl0ZW0yKSAmJiAhaXRlbTEubGVuZ3RoICYmICFpdGVtMi5sZW5ndGg7XG59XG5cbi8qKlxuICogRGVmYXVsdCBoYW5kbGVyIGZvciBtYXRjaGluZyBzdHJpbmdpZmllZCB2ZXJzaW9uIG9mIGFuIGl0ZW0gYW5kIGEgc2VhcmNoIHF1ZXJ5XG4gKiBAcGFyYW0gaXRlbSBhcmJpdHJhcnkgZWxlbWVudCB0byBtYXRjaCB3aXRoIGEgc3RyaW5nXG4gKiBAcGFyYW0gc2VhcmNoIHNlYXJjaCBxdWVyeVxuICogQHBhcmFtIHN0cmluZ2lmeSBoYW5kbGVyIHRvIHR1cm4gaXRlbSBpbnRvIGEgc3RyaW5nXG4gKi9cbmV4cG9ydCBjb25zdCBUVUlfREVGQVVMVF9NQVRDSEVSID0gPFQ+KFxuICAgIGl0ZW06IFQsXG4gICAgc2VhcmNoOiBzdHJpbmcsXG4gICAgc3RyaW5naWZ5OiBUdWlIYW5kbGVyPFQsIHN0cmluZz4gPSBTdHJpbmcsXG4pOiBib29sZWFuID0+IHN0cmluZ2lmeShpdGVtKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaC50b0xvd2VyQ2FzZSgpKTtcblxuLyoqXG4gKiBEZWZhdWx0IGhhbmRsZXIgZm9yIHN0cmljdCBtYXRjaGluZyBzdHJpbmdpZmllZCB2ZXJzaW9uIG9mIGFuIGl0ZW0gYW5kIGEgc2VhcmNoIHF1ZXJ5XG4gKiBAcGFyYW0gaXRlbSBhcmJpdHJhcnkgZWxlbWVudCB0byBtYXRjaCB3aXRoIGEgc3RyaW5nXG4gKiBAcGFyYW0gc2VhcmNoIHNlYXJjaCBxdWVyeVxuICogQHBhcmFtIHN0cmluZ2lmeSBoYW5kbGVyIHRvIHR1cm4gaXRlbSBpbnRvIGEgc3RyaW5nXG4gKi9cbmV4cG9ydCBjb25zdCBUVUlfU1RSSUNUX01BVENIRVIgPSA8VD4oXG4gICAgaXRlbTogVCxcbiAgICBzZWFyY2g6IHN0cmluZyxcbiAgICBzdHJpbmdpZnk6IFR1aUhhbmRsZXI8VCwgc3RyaW5nPiA9IFN0cmluZyxcbik6IGJvb2xlYW4gPT4gc3RyaW5naWZ5KGl0ZW0pLnRvTG93ZXJDYXNlKCkgPT09IHNlYXJjaC50b0xvd2VyQ2FzZSgpO1xuXG4vKipcbiAqIERlZmF1bHQgaGFuZGxlciB0byBtYXRjaCBlcXVhbGl0eSBvZiB0d28gZWxlbWVudHNcbiAqIEFUVEVOVElPTjogY29uc2lkZXJzIHR3byBlbXB0eSBhcnJheXMgZXF1YWxcbiAqXG4gKiBAcGFyYW0gaXRlbTEgZmlyc3QgZWxlbWVudFxuICogQHBhcmFtIGl0ZW0yIHNlY29uZCBlbGVtZW50XG4gKi9cbmV4cG9ydCBjb25zdCBUVUlfREVGQVVMVF9JREVOVElUWV9NQVRDSEVSOiBUdWlJZGVudGl0eU1hdGNoZXI8dW5rbm93bj4gPSAoaXRlbTEsIGl0ZW0yKSA9PlxuICAgIGl0ZW0xID09PSBpdGVtMiB8fCBib3RoRW1wdHkoaXRlbTEsIGl0ZW0yKTtcbiJdfQ==