ngx-free-fullpage
Version:
ngx-free-fullpage is a free-for-profit angular library that gives you all the tools you need to implement a fullpage scroll effect. This library hasn't been developed in order to substitute the current ngx-fullpage, this library is an alternative for thos
48 lines • 7.65 kB
JavaScript
import { __decorate } from "tslib";
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
var NgxFullpageService = /** @class */ (function () {
function NgxFullpageService() {
var _this = this;
this.section = 0;
this.scrollHeight = 0;
this.goNext = function () { return (_this.scroll(1)); };
this.goPrev = function () { return (_this.scroll(-1)); };
this.goTo = function (section) { return (_this.scroll(section - _this.section)); };
this.adjustSection = function (section) { return _this.setNumberInRange(section, 0, _this.sectionsNumber - 1); };
}
NgxFullpageService.prototype.addWrapper = function (wrapper, section) {
if (this.wrapper)
throw new Error('There is already a wrapper defined');
this.wrapper = wrapper;
if (section > 0)
this.goTo(section);
};
NgxFullpageService.prototype.scroll = function (direction) {
this.sectionsNumber = (this.wrapper.nativeElement.scrollHeight / this.wrapper.nativeElement.offsetHeight);
this.scrollHeight += direction * this.wrapper.nativeElement.offsetHeight;
this.scrollHeight = this.adjustScroll(this.scrollHeight);
this.wrapper.nativeElement.scroll({ top: this.scrollHeight });
this.section = this.adjustSection(Math.round(this.scrollHeight / this.wrapper.nativeElement.offsetHeight));
};
NgxFullpageService.prototype.goLast = function () {
this.sectionsNumber = this.sectionsNumber || (this.wrapper.nativeElement.scrollHeight / this.wrapper.nativeElement.offsetHeight);
this.goTo(this.sectionsNumber - 1);
};
NgxFullpageService.prototype.adjustScroll = function (scroll) {
var maxScroll = (this.sectionsNumber - 1) * this.wrapper.nativeElement.offsetHeight;
return this.setNumberInRange(scroll, 0, maxScroll);
};
NgxFullpageService.prototype.setNumberInRange = function (n, min, max) {
return Math.min(Math.max(n, min), max);
};
NgxFullpageService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NgxFullpageService_Factory() { return new NgxFullpageService(); }, token: NgxFullpageService, providedIn: "root" });
NgxFullpageService = __decorate([
Injectable({
providedIn: 'root'
})
], NgxFullpageService);
return NgxFullpageService;
}());
export { NgxFullpageService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZ1bGxwYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtZnJlZS1mdWxscGFnZS8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtZnVsbHBhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYyxNQUFNLGVBQWUsQ0FBQzs7QUFLdkQ7SUFVRTtRQUFBLGlCQUFpQjtRQUxqQixZQUFPLEdBQVksQ0FBQyxDQUFDO1FBRXJCLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBbUJqQixXQUFNLEdBQUcsY0FBTSxPQUFBLENBQUMsS0FBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFoQixDQUFnQixDQUFDO1FBRWhDLFdBQU0sR0FBRyxjQUFNLE9BQUEsQ0FBQyxLQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBakIsQ0FBaUIsQ0FBQztRQUVqQyxTQUFJLEdBQUcsVUFBQyxPQUFlLElBQUssT0FBQSxDQUFDLEtBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFyQyxDQUFxQyxDQUFDO1FBT2xFLGtCQUFhLEdBQUcsVUFBQyxPQUFnQixJQUFLLE9BQUEsS0FBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsRUFBMUQsQ0FBMEQsQ0FBQztJQTNCakYsQ0FBQztJQUVqQix1Q0FBVSxHQUFWLFVBQVcsT0FBd0IsRUFBRSxPQUFlO1FBQ2xELElBQUksSUFBSSxDQUFDLE9BQU87WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUE7UUFDdkUsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxPQUFPLEdBQUcsQ0FBQztZQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELG1DQUFNLEdBQU4sVUFBTyxTQUFpQjtRQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFHLElBQUksQ0FBQyxZQUFZLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztRQUN6RSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFDLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDN0csQ0FBQztJQVFELG1DQUFNLEdBQU47UUFDRSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDakksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFJRCx5Q0FBWSxHQUFaLFVBQWEsTUFBYztRQUN6QixJQUFJLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1FBQ3BGLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUdPLDZDQUFnQixHQUF4QixVQUF5QixDQUFVLEVBQUUsR0FBWSxFQUFFLEdBQVk7UUFDN0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7O0lBL0NVLGtCQUFrQjtRQUg5QixVQUFVLENBQUM7WUFDVixVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDO09BQ1csa0JBQWtCLENBaUQ5Qjs2QkF0REQ7Q0FzREMsQUFqREQsSUFpREM7U0FqRFksa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBOZ3hGdWxscGFnZVNlcnZpY2Uge1xuXG4gIHdyYXBwZXIgOiBFbGVtZW50UmVmO1xuICBzZWN0aW9uc051bWJlciA6IG51bWJlcjtcblxuICBzZWN0aW9uIDogbnVtYmVyID0gMDtcblxuICBzY3JvbGxIZWlnaHQgPSAwO1xuXG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBhZGRXcmFwcGVyKHdyYXBwZXI6IEVsZW1lbnRSZWY8YW55Piwgc2VjdGlvbjogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMud3JhcHBlcikgdGhyb3cgbmV3IEVycm9yKCdUaGVyZSBpcyBhbHJlYWR5IGEgd3JhcHBlciBkZWZpbmVkJylcbiAgICB0aGlzLndyYXBwZXIgPSB3cmFwcGVyO1xuICAgIGlmIChzZWN0aW9uID4gMCkgdGhpcy5nb1RvKHNlY3Rpb24pO1xuICB9XG5cbiAgc2Nyb2xsKGRpcmVjdGlvbjogbnVtYmVyKSB7XG4gICAgdGhpcy5zZWN0aW9uc051bWJlciA9ICh0aGlzLndyYXBwZXIubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQgLyB0aGlzLndyYXBwZXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQpO1xuICAgIHRoaXMuc2Nyb2xsSGVpZ2h0ICs9IGRpcmVjdGlvbiAqIHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICB0aGlzLnNjcm9sbEhlaWdodCA9IHRoaXMuYWRqdXN0U2Nyb2xsKHRoaXMuc2Nyb2xsSGVpZ2h0KTtcbiAgICB0aGlzLndyYXBwZXIubmF0aXZlRWxlbWVudC5zY3JvbGwoe3RvcDogdGhpcy5zY3JvbGxIZWlnaHR9KTtcbiAgICB0aGlzLnNlY3Rpb24gPSB0aGlzLmFkanVzdFNlY3Rpb24oTWF0aC5yb3VuZCh0aGlzLnNjcm9sbEhlaWdodCAvIHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCkpO1xuICB9XG5cbiAgZ29OZXh0ID0gKCkgPT4gKHRoaXMuc2Nyb2xsKDEpKTtcblxuICBnb1ByZXYgPSAoKSA9PiAodGhpcy5zY3JvbGwoLTEpKTtcblxuICBnb1RvID0gKHNlY3Rpb246IG51bWJlcikgPT4gKHRoaXMuc2Nyb2xsKHNlY3Rpb24gLSB0aGlzLnNlY3Rpb24pKTtcblxuICBnb0xhc3QoKSB7XG4gICAgdGhpcy5zZWN0aW9uc051bWJlciA9IHRoaXMuc2VjdGlvbnNOdW1iZXIgfHwgKHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodCAvIHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCk7XG4gICAgdGhpcy5nb1RvKHRoaXMuc2VjdGlvbnNOdW1iZXIgLSAxKTtcbiAgfVxuXG4gIGFkanVzdFNlY3Rpb24gPSAoc2VjdGlvbiA6IG51bWJlcikgPT4gdGhpcy5zZXROdW1iZXJJblJhbmdlKHNlY3Rpb24sIDAsIHRoaXMuc2VjdGlvbnNOdW1iZXIgLSAxKTtcbiAgXG4gIGFkanVzdFNjcm9sbChzY3JvbGw6IG51bWJlcikge1xuICAgIGxldCBtYXhTY3JvbGwgPSAodGhpcy5zZWN0aW9uc051bWJlciAtIDEpICogdGhpcy53cmFwcGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgIHJldHVybiB0aGlzLnNldE51bWJlckluUmFuZ2Uoc2Nyb2xsLCAwLCBtYXhTY3JvbGwpO1xuICB9XG4gIFxuICBcbiAgcHJpdmF0ZSBzZXROdW1iZXJJblJhbmdlKG4gOiBudW1iZXIsIG1pbiA6IG51bWJlciwgbWF4IDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIE1hdGgubWluKE1hdGgubWF4KG4sIG1pbiksIG1heCk7XG4gIH1cblxufVxuIl19