@junte/ui
Version:
Quality Angular UI components kit
63 lines • 8.18 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { ViewportScroller } from '@angular/common';
import { Component, HostBinding } from '@angular/core';
import { UI } from '../../../core/enums/ui';
var LpRewindComponent = /** @class */ (function () {
function LpRewindComponent(scrollService) {
this.scrollService = scrollService;
this.host = 'jnt-lp-rewind-host';
this.ui = UI;
}
LpRewindComponent.prototype.scroll = function (target, time) {
var _this = this;
if (time === void 0) { time = 200; }
var speed = 20;
var current = this.scrollService.getScrollPosition()[1];
var step = (Math.abs(target - current) * speed) / time;
step = step < 1 ? 1 : step;
step = target > current ? step : -step;
this.interval = setInterval(function () {
var next = current + step;
if ((step > 0 && next >= target) || (step < 0 && next <= target)) {
next = target;
clearInterval(_this.interval);
_this.interval = null;
}
current = next;
_this.scrollService.scrollToPosition([0, next]);
}, speed);
};
LpRewindComponent.prototype.up = function () {
var height = document.documentElement.clientHeight;
var current = this.scrollService.getScrollPosition()[1];
var target = (Math.ceil(current / height) - 1) * height;
if (target >= 0 && target !== current && !this.interval) {
this.scroll(target);
}
};
LpRewindComponent.prototype.down = function () {
var height = document.documentElement.clientHeight;
var current = this.scrollService.getScrollPosition()[1];
var target = (Math.floor(current / height) + 1) * height;
if (target < document.documentElement.offsetHeight && target !== current && !this.interval) {
this.scroll(target);
}
};
LpRewindComponent.ctorParameters = function () { return [
{ type: ViewportScroller }
]; };
__decorate([
HostBinding('attr.host'),
__metadata("design:type", Object)
], LpRewindComponent.prototype, "host", void 0);
LpRewindComponent = __decorate([
Component({
selector: 'jnt-lp-rewind',
template: "<jnt-stack child-of=\"jnt-lp-rewind-host\" >\n <jnt-button child-of=\"jnt-lp-rewind-host\" [icon]=\"ui.icons.arrowUp\" [size]=\"ui.size.tiny\" (click)=\"up()\"></jnt-button>\n <jnt-button child-of=\"jnt-lp-rewind-host\" [icon]=\"ui.icons.arrowDown\" [size]=\"ui.size.tiny\" (click)=\"down()\"></jnt-button>\n</jnt-stack>"
}),
__metadata("design:paramtypes", [ViewportScroller])
], LpRewindComponent);
return LpRewindComponent;
}());
export { LpRewindComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHAtcmV3aW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BqdW50ZS91aS8iLCJzb3VyY2VzIjpbImxpYi9sYXlvdXQvbHAvcmV3aW5kL2xwLXJld2luZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU01QztJQU9FLDJCQUFvQixhQUErQjtRQUEvQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFMaEIsU0FBSSxHQUFHLG9CQUFvQixDQUFDO1FBRS9ELE9BQUUsR0FBRyxFQUFFLENBQUM7SUFJUixDQUFDO0lBRUQsa0NBQU0sR0FBTixVQUFPLE1BQU0sRUFBRSxJQUFVO1FBQXpCLGlCQW9CQztRQXBCYyxxQkFBQSxFQUFBLFVBQVU7UUFFdkIsSUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RCxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN2RCxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxHQUFHLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7WUFDMUIsSUFBSSxJQUFJLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQztZQUUxQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxNQUFNLENBQUMsRUFBRTtnQkFDaEUsSUFBSSxHQUFHLE1BQU0sQ0FBQztnQkFDZCxhQUFhLENBQUMsS0FBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM3QixLQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzthQUN0QjtZQUVELE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDZixLQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDakQsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ1osQ0FBQztJQUVELDhCQUFFLEdBQUY7UUFDRSxJQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQztRQUNyRCxJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUQsSUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDMUQsSUFBSSxNQUFNLElBQUksQ0FBQyxJQUFJLE1BQU0sS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3ZELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBRUQsZ0NBQUksR0FBSjtRQUNFLElBQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDO1FBQ3JELElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRCxJQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUMzRCxJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksSUFBSSxNQUFNLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUMxRixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQzs7Z0JBekNrQyxnQkFBZ0I7O0lBTHpCO1FBQXpCLFdBQVcsQ0FBQyxXQUFXLENBQUM7O21EQUFzQztJQUZwRCxpQkFBaUI7UUFKN0IsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLGVBQWU7WUFDekIsa1ZBQTRDO1NBQzdDLENBQUM7eUNBUW1DLGdCQUFnQjtPQVB4QyxpQkFBaUIsQ0FpRDdCO0lBQUQsd0JBQUM7Q0FBQSxBQWpERCxJQWlEQztTQWpEWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWaWV3cG9ydFNjcm9sbGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVJIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9lbnVtcy91aSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2pudC1scC1yZXdpbmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbHAtcmV3aW5kLmVuY2Fwc3VsYXRlZC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBMcFJld2luZENvbXBvbmVudCB7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmhvc3QnKSByZWFkb25seSBob3N0ID0gJ2pudC1scC1yZXdpbmQtaG9zdCc7XG5cbiAgdWkgPSBVSTtcbiAgaW50ZXJ2YWw6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNjcm9sbFNlcnZpY2U6IFZpZXdwb3J0U2Nyb2xsZXIpIHtcbiAgfVxuXG4gIHNjcm9sbCh0YXJnZXQsIHRpbWUgPSAyMDApIHtcblxuICAgIGNvbnN0IHNwZWVkID0gMjA7XG4gICAgbGV0IGN1cnJlbnQgPSB0aGlzLnNjcm9sbFNlcnZpY2UuZ2V0U2Nyb2xsUG9zaXRpb24oKVsxXTtcbiAgICBsZXQgc3RlcCA9IChNYXRoLmFicyh0YXJnZXQgLSBjdXJyZW50KSAqIHNwZWVkKSAvIHRpbWU7XG4gICAgc3RlcCA9IHN0ZXAgPCAxID8gMSA6IHN0ZXA7XG4gICAgc3RlcCA9IHRhcmdldCA+IGN1cnJlbnQgPyBzdGVwIDogLXN0ZXA7XG5cbiAgICB0aGlzLmludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgbGV0IG5leHQgPSBjdXJyZW50ICsgc3RlcDtcblxuICAgICAgaWYgKChzdGVwID4gMCAmJiBuZXh0ID49IHRhcmdldCkgfHwgKHN0ZXAgPCAwICYmIG5leHQgPD0gdGFyZ2V0KSkge1xuICAgICAgICBuZXh0ID0gdGFyZ2V0O1xuICAgICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpO1xuICAgICAgICB0aGlzLmludGVydmFsID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgY3VycmVudCA9IG5leHQ7XG4gICAgICB0aGlzLnNjcm9sbFNlcnZpY2Uuc2Nyb2xsVG9Qb3NpdGlvbihbMCwgbmV4dF0pO1xuICAgIH0sIHNwZWVkKTtcbiAgfVxuXG4gIHVwKCkge1xuICAgIGNvbnN0IGhlaWdodCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuc2Nyb2xsU2VydmljZS5nZXRTY3JvbGxQb3NpdGlvbigpWzFdO1xuICAgIGNvbnN0IHRhcmdldCA9IChNYXRoLmNlaWwoY3VycmVudCAvIGhlaWdodCkgLSAxKSAqIGhlaWdodDtcbiAgICBpZiAodGFyZ2V0ID49IDAgJiYgdGFyZ2V0ICE9PSBjdXJyZW50ICYmICF0aGlzLmludGVydmFsKSB7XG4gICAgICB0aGlzLnNjcm9sbCh0YXJnZXQpO1xuICAgIH1cbiAgfVxuXG4gIGRvd24oKSB7XG4gICAgY29uc3QgaGVpZ2h0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5zY3JvbGxTZXJ2aWNlLmdldFNjcm9sbFBvc2l0aW9uKClbMV07XG4gICAgY29uc3QgdGFyZ2V0ID0gKE1hdGguZmxvb3IoY3VycmVudCAvIGhlaWdodCkgKyAxKSAqIGhlaWdodDtcbiAgICBpZiAodGFyZ2V0IDwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldEhlaWdodCAmJiB0YXJnZXQgIT09IGN1cnJlbnQgJiYgIXRoaXMuaW50ZXJ2YWwpIHtcbiAgICAgIHRoaXMuc2Nyb2xsKHRhcmdldCk7XG4gICAgfVxuICB9XG59XG4iXX0=