@universal-material/angular
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.1.0.
34 lines • 4.32 kB
JavaScript
import { Directive } from '@angular/core';
import { ScrollBehavior } from '../util/scroll-behavior';
import * as i0 from "@angular/core";
export class FloatingActionBehaviorDirective extends ScrollBehavior {
constructor(elementRef) {
super();
this.elementRef = elementRef;
this._lastScrollY = null;
this.defaultTarget = window;
this._processBehavior = (scrollTop) => {
if (this._lastScrollY === null) {
this._lastScrollY = scrollTop;
return;
}
if (this._lastScrollY < scrollTop) {
this.elementRef.nativeElement.style.transform = 'translateY(150%)';
}
else {
this.elementRef.nativeElement.style.transform = '';
}
this._lastScrollY = scrollTop;
};
this.elementRef.nativeElement.style.transition = 'transform 150ms linear';
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionBehaviorDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: FloatingActionBehaviorDirective, selector: "[uFloatingActionBehavior]", usesInheritance: true, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingActionBehaviorDirective, decorators: [{
type: Directive,
args: [{
selector: '[uFloatingActionBehavior]'
}]
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXRpbmctYWN0aW9uLWJlaGF2aW9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9mbG9hdGluZy1hY3Rpb24tYmVoYXZpb3IvZmxvYXRpbmctYWN0aW9uLWJlaGF2aW9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFLekQsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLGNBQWM7SUFLakUsWUFBNkIsVUFBc0I7UUFDakQsS0FBSyxFQUFFLENBQUM7UUFEbUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUgzQyxpQkFBWSxHQUFrQixJQUFJLENBQUM7UUFDbEMsa0JBQWEsR0FBRyxNQUFNLENBQUM7UUFRdEIscUJBQWdCLEdBQUcsQ0FBQyxTQUF3QixFQUFFLEVBQUU7WUFDeEQsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksRUFBRTtnQkFDOUIsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7Z0JBQzlCLE9BQU87YUFDUjtZQUVELElBQUksSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFVLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsa0JBQWtCLENBQUM7YUFDcEU7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7YUFDcEQ7WUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztRQUNoQyxDQUFDLENBQUM7UUFoQkEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyx3QkFBd0IsQ0FBQztJQUM1RSxDQUFDOytHQVRVLCtCQUErQjttR0FBL0IsK0JBQStCOzs0RkFBL0IsK0JBQStCO2tCQUgzQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTY3JvbGxCZWhhdmlvciB9IGZyb20gJy4uL3V0aWwvc2Nyb2xsLWJlaGF2aW9yJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3VGbG9hdGluZ0FjdGlvbkJlaGF2aW9yXSdcbn0pXG5leHBvcnQgY2xhc3MgRmxvYXRpbmdBY3Rpb25CZWhhdmlvckRpcmVjdGl2ZSBleHRlbmRzIFNjcm9sbEJlaGF2aW9yIHtcblxuICBwcml2YXRlIF9sYXN0U2Nyb2xsWTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIG92ZXJyaWRlIGRlZmF1bHRUYXJnZXQgPSB3aW5kb3c7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnRyYW5zaXRpb24gPSAndHJhbnNmb3JtIDE1MG1zIGxpbmVhcic7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3Byb2Nlc3NCZWhhdmlvciA9IChzY3JvbGxUb3A6IG51bWJlciB8IG51bGwpID0+IHtcbiAgICBpZiAodGhpcy5fbGFzdFNjcm9sbFkgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuX2xhc3RTY3JvbGxZID0gc2Nyb2xsVG9wO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9sYXN0U2Nyb2xsWSA8IHNjcm9sbFRvcCEpIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGVZKDE1MCUpJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gJyc7XG4gICAgfVxuXG4gICAgdGhpcy5fbGFzdFNjcm9sbFkgPSBzY3JvbGxUb3A7XG4gIH07XG59XG4iXX0=