@bespunky/angular-zen
Version:
The Angular tools you always wished were there.
15 lines • 2.57 kB
JavaScript
import { filter } from 'rxjs';
import { inject } from '@angular/core';
import { Router } from '@angular/router';
/**
* Creates an observable which emits only the specified router events.
*
* @export
* @param {readonly [...Events]} eventTypes
* @template Events The types of events to observe.
* @returns {Observable<TypeInstance<Events[number]>>} An observable which emits only the specified router events.
*/
export function useRouterEvents(...eventTypes) {
return inject(Router).events.pipe(filter((event) => eventTypes.some(eventType => event instanceof eventType)));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLXJvdXRlci1ldmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItemVuL3JvdXRlci14L3V0aWxzL3NyYy9saWIvdXNlLXJvdXRlci1ldmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQUl0RDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBOEMsR0FBRyxVQUFnQztJQUU1RyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUM3QixNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQXlDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsS0FBSyxZQUFZLFNBQVMsQ0FBQyxDQUFDLENBQ3JILENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlsdGVyLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbmplY3QsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciwgUm91dGVyRXZlbnQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG50eXBlIFR5cGVJbnN0YW5jZTxUIGV4dGVuZHMgVHlwZTxhbnk+PiA9IFQgZXh0ZW5kcyBUeXBlPGluZmVyIEluc3RhbmNlPiA/IEluc3RhbmNlIDogbmV2ZXI7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBvYnNlcnZhYmxlIHdoaWNoIGVtaXRzIG9ubHkgdGhlIHNwZWNpZmllZCByb3V0ZXIgZXZlbnRzLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7cmVhZG9ubHkgWy4uLkV2ZW50c119IGV2ZW50VHlwZXMgXG4gKiBAdGVtcGxhdGUgRXZlbnRzIFRoZSB0eXBlcyBvZiBldmVudHMgdG8gb2JzZXJ2ZS5cbiAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFR5cGVJbnN0YW5jZTxFdmVudHNbbnVtYmVyXT4+fSBBbiBvYnNlcnZhYmxlIHdoaWNoIGVtaXRzIG9ubHkgdGhlIHNwZWNpZmllZCByb3V0ZXIgZXZlbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlUm91dGVyRXZlbnRzPEV2ZW50cyBleHRlbmRzIHJlYWRvbmx5IFR5cGU8Um91dGVyRXZlbnQ+W10+KC4uLmV2ZW50VHlwZXM6IHJlYWRvbmx5IFsuLi5FdmVudHNdKTogT2JzZXJ2YWJsZTxUeXBlSW5zdGFuY2U8RXZlbnRzW251bWJlcl0+Plxue1xuICAgIHJldHVybiBpbmplY3QoUm91dGVyKS5ldmVudHMucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCk6IGV2ZW50IGlzIFR5cGVJbnN0YW5jZTxFdmVudHNbbnVtYmVyXT4gPT4gZXZlbnRUeXBlcy5zb21lKGV2ZW50VHlwZSA9PiBldmVudCBpbnN0YW5jZW9mIGV2ZW50VHlwZSkpXG4gICAgKTtcbn0iXX0=