import { of, Subject } from 'rxjs'; import { distinctUntilChanged, filter, mergeMap } from 'rxjs/operators'; import { QUICK_SIDEBAR_OPTIONS } from './../constants/BuilderConstants'; export class QuickSideBarOptionsSubcriber { private static _$elementHover = new Subject(); private static _changeCurrentHover = () => QuickSideBarOptionsSubcriber._$elementHover.asObservable(); static elementHover(element: HTMLElement) { return QuickSideBarOptionsSubcriber._$elementHover.next(element); } static onElementHover() { return QuickSideBarOptionsSubcriber._changeCurrentHover() .pipe(distinctUntilChanged()) .pipe( filter((element) => QUICK_SIDEBAR_OPTIONS.includes(element.dataset['type']!) ) ) .pipe( mergeMap((res) => { return of(res); }) ); } }