UNPKG

rt-tab-carousel

Version:
77 lines 9.52 kB
import { Directive, EventEmitter, HostListener, Input, Output, } from '@angular/core'; import { combineLatest, Subscription } from 'rxjs'; import { map } from 'rxjs/operators'; import * as i0 from "@angular/core"; import * as i1 from "../services/rt-carousel.service"; class RtCarouselPreviousButtonDirective { el; renderer; service; activeClass; autoHide = true; uuidCarousel; buttonHidden = new EventEmitter(); subscription = new Subscription(); constructor(el, renderer, service) { this.el = el; this.renderer = renderer; this.service = service; } onClick() { this.service.previousPart(this.uuidCarousel); } ngOnInit() { this.subscription.add(this.service.isFirstTabVisible(this.uuidCarousel).subscribe({ next: v => { if (v) { if (this.activeClass) { this.renderer.removeClass(this.el.nativeElement, this.activeClass); } } else if (v !== undefined) { if (this.activeClass) { this.renderer.addClass(this.el.nativeElement, this.activeClass); } } }, })); if (this.autoHide) { this.subscription.add(combineLatest([ this.service.isFirstTabVisible(this.uuidCarousel).pipe(map(v => v || v === undefined)), this.service.isLastTabVisible(this.uuidCarousel).pipe(map(v => v || v === undefined)), ]) .pipe(map(([first, last]) => first && last)) .subscribe({ next: v => { this.renderer.setStyle(this.el.nativeElement, 'display', v ? 'none' : 'flex'); this.buttonHidden.emit(v); }, })); } } ngOnDestroy() { this.subscription.unsubscribe(); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: RtCarouselPreviousButtonDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.RtCarouselService }], target: i0.ɵɵFactoryTarget.Directive }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.2", type: RtCarouselPreviousButtonDirective, selector: "[rtCarouselPreviousButton]", inputs: { activeClass: "activeClass", autoHide: "autoHide", uuidCarousel: "uuidCarousel" }, outputs: { buttonHidden: "buttonHidden" }, host: { listeners: { "click": "onClick($event)" } }, ngImport: i0 }); } export { RtCarouselPreviousButtonDirective }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: RtCarouselPreviousButtonDirective, decorators: [{ type: Directive, args: [{ selector: '[rtCarouselPreviousButton]', }] }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.RtCarouselService }]; }, propDecorators: { activeClass: [{ type: Input }], autoHide: [{ type: Input }], uuidCarousel: [{ type: Input, args: [{ required: true }] }], buttonHidden: [{ type: Output }], onClick: [{ type: HostListener, args: ['click', ['$event']] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnQtY2Fyb3VzZWwtcHJldmlvdXMtYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3J0LXRhYi1jYXJvdXNlbC9zcmMvbGliL2RpcmVjdGl2ZXMvcnQtY2Fyb3VzZWwtcHJldmlvdXMtYnV0dG9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsYUFBYSxFQUFFLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7OztBQUduQyxNQUdhLGlDQUFpQztJQVN4QjtJQUF3QjtJQUE2QjtJQVJoRSxXQUFXLENBQVU7SUFDckIsUUFBUSxHQUFHLElBQUksQ0FBQztJQUNBLFlBQVksQ0FBVTtJQUVyQyxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUVwQyxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVuRCxZQUFvQixFQUFjLEVBQVUsUUFBbUIsRUFBVSxPQUEwQjtRQUEvRSxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLFlBQU8sR0FBUCxPQUFPLENBQW1CO0lBQ25HLENBQUM7SUFJRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFHRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMxRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLEVBQUU7b0JBQ0wsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO3dCQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7cUJBQ3BFO2lCQUNGO3FCQUFNLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRTtvQkFDMUIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO3dCQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7cUJBQ2pFO2lCQUNGO1lBQ0gsQ0FBQztTQUNGLENBQUMsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUNuQixhQUFhLENBQ1g7Z0JBQ0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUM7Z0JBQ3RGLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDO2FBQ3RGLENBQ0Y7aUJBQ0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUM7aUJBQzNDLFNBQVMsQ0FBQztnQkFDVCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7b0JBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDOUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVCLENBQUM7YUFDRixDQUFDLENBQ0wsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUdELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7dUdBekRVLGlDQUFpQzsyRkFBakMsaUNBQWlDOztTQUFqQyxpQ0FBaUM7MkZBQWpDLGlDQUFpQztrQkFIN0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNEJBQTRCO2lCQUN2Qzt5SkFFVSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ21CLFlBQVk7c0JBQXBDLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQUViLFlBQVk7c0JBQXJCLE1BQU07Z0JBU1AsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7UnRDYXJvdXNlbFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL3J0LWNhcm91c2VsLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcnRDYXJvdXNlbFByZXZpb3VzQnV0dG9uXScsXG59KVxuZXhwb3J0IGNsYXNzIFJ0Q2Fyb3VzZWxQcmV2aW91c0J1dHRvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgYWN0aXZlQ2xhc3M/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGF1dG9IaWRlID0gdHJ1ZTtcbiAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHV1aWRDYXJvdXNlbCE6IHN0cmluZztcblxuICBAT3V0cHV0KCkgYnV0dG9uSGlkZGVuID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBzZXJ2aWNlOiBSdENhcm91c2VsU2VydmljZSkge1xuICB9XG5cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5zZXJ2aWNlLnByZXZpb3VzUGFydCh0aGlzLnV1aWRDYXJvdXNlbCk7XG4gIH1cblxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuc2VydmljZS5pc0ZpcnN0VGFiVmlzaWJsZSh0aGlzLnV1aWRDYXJvdXNlbCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogdiA9PiB7XG4gICAgICAgICAgaWYgKHYpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZUNsYXNzKSB7XG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLmFjdGl2ZUNsYXNzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlQ2xhc3MpIHtcbiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMuYWN0aXZlQ2xhc3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICk7XG4gICAgaWYgKHRoaXMuYXV0b0hpZGUpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgY29tYmluZUxhdGVzdChcbiAgICAgICAgICBbXG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UuaXNGaXJzdFRhYlZpc2libGUodGhpcy51dWlkQ2Fyb3VzZWwpLnBpcGUobWFwKHYgPT4gdiB8fCB2ID09PSB1bmRlZmluZWQpKSxcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5pc0xhc3RUYWJWaXNpYmxlKHRoaXMudXVpZENhcm91c2VsKS5waXBlKG1hcCh2ID0+IHYgfHwgdiA9PT0gdW5kZWZpbmVkKSksXG4gICAgICAgICAgXSxcbiAgICAgICAgKVxuICAgICAgICAgIC5waXBlKG1hcCgoW2ZpcnN0LCBsYXN0XSkgPT4gZmlyc3QgJiYgbGFzdCkpXG4gICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiB2ID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdkaXNwbGF5JywgdiA/ICdub25lJyA6ICdmbGV4Jyk7XG4gICAgICAgICAgICAgIHRoaXMuYnV0dG9uSGlkZGVuLmVtaXQodik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==