UNPKG

rt-tab-carousel

Version:
77 lines 9.46 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 RtCarouselNextButtonDirective { 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.nextPart(this.uuidCarousel); } ngOnInit() { this.subscription.add(this.service.isLastTabVisible(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: RtCarouselNextButtonDirective, 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: RtCarouselNextButtonDirective, selector: "[rtCarouselNextButton]", inputs: { activeClass: "activeClass", autoHide: "autoHide", uuidCarousel: "uuidCarousel" }, outputs: { buttonHidden: "buttonHidden" }, host: { listeners: { "click": "onClick($event)" } }, ngImport: i0 }); } export { RtCarouselNextButtonDirective }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: RtCarouselNextButtonDirective, decorators: [{ type: Directive, args: [{ selector: '[rtCarouselNextButton]', }] }], 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnQtY2Fyb3VzZWwtbmV4dC1idXR0b24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcnQtdGFiLWNhcm91c2VsL3NyYy9saWIvZGlyZWN0aXZlcy9ydC1jYXJvdXNlbC1uZXh0LWJ1dHRvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7QUFHbkMsTUFHYSw2QkFBNkI7SUFTcEI7SUFBd0I7SUFBNkI7SUFSaEUsV0FBVyxDQUFVO0lBQ3JCLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDQSxZQUFZLENBQVU7SUFFckMsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFFcEMsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFbkQsWUFBb0IsRUFBYyxFQUFVLFFBQW1CLEVBQVUsT0FBMEI7UUFBL0UsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFtQjtJQUNuRyxDQUFDO0lBSUQsT0FBTztRQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBR0QsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDekQsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO2dCQUNSLElBQUksQ0FBQyxFQUFFO29CQUNMLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTt3QkFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO3FCQUNwRTtpQkFDRjtxQkFBTSxJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUU7b0JBQzFCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTt3QkFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO3FCQUNqRTtpQkFDRjtZQUNILENBQUM7U0FDRixDQUFDLENBQ0gsQ0FBQztRQUVGLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FDbkIsYUFBYSxDQUNYO2dCQUNFLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDO2dCQUN0RixJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQzthQUN0RixDQUNGO2lCQUNFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDO2lCQUMzQyxTQUFTLENBQUM7Z0JBQ1QsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO29CQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQzlFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM1QixDQUFDO2FBQ0YsQ0FBQyxDQUNMLENBQUM7U0FDSDtJQUVILENBQUM7SUFHRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO3VHQTNEVSw2QkFBNkI7MkZBQTdCLDZCQUE2Qjs7U0FBN0IsNkJBQTZCOzJGQUE3Qiw2QkFBNkI7a0JBSHpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtpQkFDbkM7eUpBRVUsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNtQixZQUFZO3NCQUFwQyxLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztnQkFFYixZQUFZO3NCQUFyQixNQUFNO2dCQVNQLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1J0Q2Fyb3VzZWxTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9ydC1jYXJvdXNlbC5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3J0Q2Fyb3VzZWxOZXh0QnV0dG9uXScsXG59KVxuZXhwb3J0IGNsYXNzIFJ0Q2Fyb3VzZWxOZXh0QnV0dG9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBhY3RpdmVDbGFzcz86IHN0cmluZztcbiAgQElucHV0KCkgYXV0b0hpZGUgPSB0cnVlO1xuICBASW5wdXQoe3JlcXVpcmVkOiB0cnVlfSkgdXVpZENhcm91c2VsITogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBidXR0b25IaWRkZW4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIHNlcnZpY2U6IFJ0Q2Fyb3VzZWxTZXJ2aWNlKSB7XG4gIH1cblxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgb25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnNlcnZpY2UubmV4dFBhcnQodGhpcy51dWlkQ2Fyb3VzZWwpO1xuICB9XG5cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLnNlcnZpY2UuaXNMYXN0VGFiVmlzaWJsZSh0aGlzLnV1aWRDYXJvdXNlbCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogdiA9PiB7XG4gICAgICAgICAgaWYgKHYpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZUNsYXNzKSB7XG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLmFjdGl2ZUNsYXNzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlQ2xhc3MpIHtcbiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMuYWN0aXZlQ2xhc3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICBpZiAodGhpcy5hdXRvSGlkZSkge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICBjb21iaW5lTGF0ZXN0KFxuICAgICAgICAgIFtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5pc0ZpcnN0VGFiVmlzaWJsZSh0aGlzLnV1aWRDYXJvdXNlbCkucGlwZShtYXAodiA9PiB2IHx8IHYgPT09IHVuZGVmaW5lZCkpLFxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmlzTGFzdFRhYlZpc2libGUodGhpcy51dWlkQ2Fyb3VzZWwpLnBpcGUobWFwKHYgPT4gdiB8fCB2ID09PSB1bmRlZmluZWQpKSxcbiAgICAgICAgICBdLFxuICAgICAgICApXG4gICAgICAgICAgLnBpcGUobWFwKChbZmlyc3QsIGxhc3RdKSA9PiBmaXJzdCAmJiBsYXN0KSlcbiAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IHYgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2Rpc3BsYXknLCB2ID8gJ25vbmUnIDogJ2ZsZXgnKTtcbiAgICAgICAgICAgICAgdGhpcy5idXR0b25IaWRkZW4uZW1pdCh2KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cblxuICB9XG5cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbn1cbiJdfQ==