UNPKG

ngx-contextual-action-bar

Version:

ngx-contextual-action-bar is an Angular2+ implementation of the [Material Design Contextual Action Bar](https://material.io/components/app-bars-top#contextual-action-bar). The implementation makes it possible to change the action bar properties (i.e. titl

35 lines 3.98 kB
import { Directive, ElementRef } from '@angular/core'; import { fromEvent } from 'rxjs'; import { debounceTime, map, pairwise, scan } from 'rxjs/operators'; export class ScrollhandlerDirective { constructor(el) { this.el = el; this.scrollHeight = fromEvent(this.el.nativeElement, 'scroll').pipe(debounceTime(10), map(e => { return this.el.nativeElement.scrollTop; })); this.scrolled$ = this.scrollHeight.pipe(pairwise(), scan((acc, cur) => { const [a, b] = cur; if (b > a) { if (acc < 50) return 0; } else { if (acc > 50) return 0; } return acc + (b - a); }, 0)); } ngOnDestroy() { } } ScrollhandlerDirective.decorators = [ { type: Directive, args: [{ selector: '[ngxScrollhandler]', exportAs: 'scroll' },] } ]; ScrollhandlerDirective.ctorParameters = () => [ { type: ElementRef } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNjcm9sbGhhbmRsZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uL3Byb2plY3RzL25neC1jb250ZXh0dWFsLWFjdGlvbi1iYXIvc3JjLyIsInNvdXJjZXMiOlsibGliL25neC1zY3JvbGxoYW5kbGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU1uRSxNQUFNLE9BQU8sc0JBQXNCO0lBc0JqQyxZQUNTLEVBQTJCO1FBQTNCLE9BQUUsR0FBRixFQUFFLENBQXlCO1FBckI3QixpQkFBWSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQ25FLFlBQVksQ0FBQyxFQUFFLENBQUMsRUFDaEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ04sT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUE7UUFDeEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUVNLGNBQVMsR0FBdUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQzNELFFBQVEsRUFBRSxFQUNWLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUNoQixNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztZQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUM7Z0JBQ1IsSUFBSSxHQUFHLEdBQUcsRUFBRTtvQkFBRSxPQUFPLENBQUMsQ0FBQzthQUN4QjtpQkFBTTtnQkFDTCxJQUFJLEdBQUcsR0FBRyxFQUFFO29CQUFFLE9BQU8sQ0FBQyxDQUFDO2FBQ3hCO1lBQ0QsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUNOLENBQUE7SUFNRCxDQUFDO0lBRUQsV0FBVztJQUVYLENBQUM7OztZQWxDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsUUFBUSxFQUFFLFFBQVE7YUFDbkI7OztZQVBtQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZnJvbUV2ZW50LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwLCBwYWlyd2lzZSwgc2NhbiB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW25neFNjcm9sbGhhbmRsZXJdJyxcclxuICBleHBvcnRBczogJ3Njcm9sbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNjcm9sbGhhbmRsZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwdWJsaWMgc2Nyb2xsSGVpZ2h0ID0gZnJvbUV2ZW50KHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3Njcm9sbCcpLnBpcGUoXHJcbiAgICBkZWJvdW5jZVRpbWUoMTApLFxyXG4gICAgbWFwKGUgPT4geyAgICAgICAgXHJcbiAgICAgIHJldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wXHJcbiAgICB9KVxyXG4gIClcclxuXHJcbiAgcHVibGljIHNjcm9sbGVkJDogT2JzZXJ2YWJsZTxudW1iZXI+ID0gdGhpcy5zY3JvbGxIZWlnaHQucGlwZShcclxuICAgIHBhaXJ3aXNlKCksXHJcbiAgICBzY2FuKChhY2MsIGN1cikgPT4ge1xyXG4gICAgICBjb25zdCBbYSwgYl0gPSBjdXI7XHJcbiAgICAgIGlmIChiID4gYSl7XHJcbiAgICAgICAgaWYgKGFjYyA8IDUwKSByZXR1cm4gMDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoYWNjID4gNTApIHJldHVybiAwO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBhY2MgKyAoYiAtIGEpO1xyXG4gICAgfSwgMClcclxuICApXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxyXG4gICkge1xyXG4gICAgXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpe1xyXG4gICAgXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=