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
JavaScript
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=