UNPKG

@doku-dev/doku-fragment

Version:

A new Angular UI library that moving away from Bootstrap and built from scratch.

17 lines 3.93 kB
import { iif, map, of } from 'rxjs'; export class SearchUtil { static useSearchMatcher(items = [], options) { const searchMatcherFn = options?.customSearchMatcherFn ? options?.customSearchMatcherFn : this.defaultSearchMatcherFn.bind(this); return iif(() => !!options?.searchable, options.search$.pipe(map((search) => items.filter((item) => searchMatcherFn(search, item, { bindLabel: options.bindLabel })))), of(items)); } static defaultSearchMatcherFn(searchTerm, item, options) { if (!searchTerm) return true; const itemLabel = item[options.bindLabel]?.toLowerCase(); const normalizedSearchTerm = searchTerm.toLowerCase(); return !!itemLabel?.includes(normalizedSearchTerm); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb2t1LWZyYWdtZW50L3NyYy9saWIvc2VsZWN0L3V0aWxzL3NlYXJjaC51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUloRCxNQUFNLE9BQU8sVUFBVTtJQUNyQixNQUFNLENBQUMsZ0JBQWdCLENBQ3JCLFFBQXNDLEVBQUUsRUFDeEMsT0FLQztRQUVELE1BQU0sZUFBZSxHQUFHLE9BQU8sRUFBRSxxQkFBcUI7WUFDcEQsQ0FBQyxDQUFDLE9BQU8sRUFBRSxxQkFBcUI7WUFDaEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFM0MsT0FBTyxHQUFHLENBQ1IsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQzNCLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNsQixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNiLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQ3hGLENBQ0YsRUFDRCxFQUFFLENBQUMsS0FBSyxDQUFDLENBQ1YsQ0FBQztJQUNKLENBQUM7SUFFTyxNQUFNLENBQUMsc0JBQXNCLENBQ25DLFVBQWtCLEVBQ2xCLElBQWdDLEVBQ2hDLE9BRUM7UUFFRCxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzdCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDekQsTUFBTSxvQkFBb0IsR0FBRyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEQsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3JELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIGlpZiwgbWFwLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRG9rdVNlbGVjdFNlYXJjaE1hdGNoZXJGbiB9IGZyb20gJy4uL3NlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9rdVNlbGVjdE9wdGlvbkl0ZW1SZWNvcmQgfSBmcm9tICcuLi9zZWxlY3QuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNsYXNzIFNlYXJjaFV0aWwge1xuICBzdGF0aWMgdXNlU2VhcmNoTWF0Y2hlcihcbiAgICBpdGVtczogRG9rdVNlbGVjdE9wdGlvbkl0ZW1SZWNvcmRbXSA9IFtdLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIGJpbmRMYWJlbDogc3RyaW5nO1xuICAgICAgc2VhcmNoJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgICAgc2VhcmNoYWJsZT86IGJvb2xlYW47XG4gICAgICBjdXN0b21TZWFyY2hNYXRjaGVyRm4/OiBEb2t1U2VsZWN0U2VhcmNoTWF0Y2hlckZuO1xuICAgIH1cbiAgKSB7XG4gICAgY29uc3Qgc2VhcmNoTWF0Y2hlckZuID0gb3B0aW9ucz8uY3VzdG9tU2VhcmNoTWF0Y2hlckZuXG4gICAgICA/IG9wdGlvbnM/LmN1c3RvbVNlYXJjaE1hdGNoZXJGblxuICAgICAgOiB0aGlzLmRlZmF1bHRTZWFyY2hNYXRjaGVyRm4uYmluZCh0aGlzKTtcblxuICAgIHJldHVybiBpaWYoXG4gICAgICAoKSA9PiAhIW9wdGlvbnM/LnNlYXJjaGFibGUsXG4gICAgICBvcHRpb25zLnNlYXJjaCQucGlwZShcbiAgICAgICAgbWFwKChzZWFyY2gpID0+XG4gICAgICAgICAgaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBzZWFyY2hNYXRjaGVyRm4oc2VhcmNoLCBpdGVtLCB7IGJpbmRMYWJlbDogb3B0aW9ucy5iaW5kTGFiZWwgfSkpXG4gICAgICAgIClcbiAgICAgICksXG4gICAgICBvZihpdGVtcylcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZGVmYXVsdFNlYXJjaE1hdGNoZXJGbihcbiAgICBzZWFyY2hUZXJtOiBzdHJpbmcsXG4gICAgaXRlbTogRG9rdVNlbGVjdE9wdGlvbkl0ZW1SZWNvcmQsXG4gICAgb3B0aW9uczoge1xuICAgICAgYmluZExhYmVsOiBzdHJpbmc7XG4gICAgfVxuICApOiBib29sZWFuIHtcbiAgICBpZiAoIXNlYXJjaFRlcm0pIHJldHVybiB0cnVlO1xuICAgIGNvbnN0IGl0ZW1MYWJlbCA9IGl0ZW1bb3B0aW9ucy5iaW5kTGFiZWxdPy50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRTZWFyY2hUZXJtID0gc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiAhIWl0ZW1MYWJlbD8uaW5jbHVkZXMobm9ybWFsaXplZFNlYXJjaFRlcm0pO1xuICB9XG59XG4iXX0=