rt-tab-carousel
Version:
Angular tab carousel component
62 lines • 7.41 kB
JavaScript
import { Directive, HostListener, Input } from '@angular/core';
import { Subscription } from 'rxjs';
import * as i0 from "@angular/core";
import * as i1 from "../services/rt-carousel.service";
class RtCarouselTabDirective {
el;
renderer;
service;
uuidCarousel;
subscription = new Subscription();
constructor(el, renderer, service) {
this.el = el;
this.renderer = renderer;
this.service = service;
}
_disabledTab;
get disabledTab() {
return !!this._disabledTab;
}
set disabledTab(value) {
this._disabledTab = value;
if (value) {
this.renderer.addClass(this.el.nativeElement, 'rt-tab-carousel-tab__disabled');
}
else {
this.renderer.removeClass(this.el.nativeElement, 'rt-tab-carousel-tab__disabled');
}
}
onClick() {
if (!this.disabledTab) {
this.service.selectHTMLElement(this.uuidCarousel, this.el);
}
}
ngOnInit() {
this.renderer.setStyle(this.el.nativeElement, 'white-space', 'nowrap');
this.renderer.setStyle(this.el.nativeElement, 'cursor', 'pointer');
this.renderer.addClass(this.el.nativeElement, `rt-carousel-tab-${this.uuidCarousel}`);
this.service.setTab(this.uuidCarousel, this.el);
}
ngOnDestroy() {
this.service.deleteTab(this.uuidCarousel, this.el);
this.subscription.unsubscribe();
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: RtCarouselTabDirective, 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: RtCarouselTabDirective, selector: "[rtCarouselTab]", inputs: { uuidCarousel: "uuidCarousel", disabledTab: "disabledTab" }, host: { listeners: { "click": "onClick($event)" } }, ngImport: i0 });
}
export { RtCarouselTabDirective };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: RtCarouselTabDirective, decorators: [{
type: Directive,
args: [{
selector: '[rtCarouselTab]',
}]
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.RtCarouselService }]; }, propDecorators: { uuidCarousel: [{
type: Input,
args: [{ required: true }]
}], disabledTab: [{
type: Input
}], onClick: [{
type: HostListener,
args: ['click', ['$event']]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnQtY2Fyb3VzZWwtdGFiLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3J0LXRhYi1jYXJvdXNlbC9zcmMvbGliL2RpcmVjdGl2ZXMvcnQtY2Fyb3VzZWwtdGFiLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQStCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7OztBQUdsQyxNQUdhLHNCQUFzQjtJQUtYO0lBQXdCO0lBQTZCO0lBSmhELFlBQVksQ0FBVTtJQUU5QixZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVuRCxZQUFvQixFQUFjLEVBQVUsUUFBbUIsRUFBVSxPQUEwQjtRQUEvRSxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLFlBQU8sR0FBUCxPQUFPLENBQW1CO0lBQ25HLENBQUM7SUFFTyxZQUFZLENBQVc7SUFFL0IsSUFBSSxXQUFXO1FBQ1gsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBYSxXQUFXLENBQUMsS0FBYztRQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLCtCQUErQixDQUFDLENBQUM7U0FDbEY7YUFBTTtZQUNILElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLCtCQUErQixDQUFDLENBQUM7U0FDckY7SUFDTCxDQUFDO0lBR0QsT0FBTztRQUNILElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDOUQ7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDO3VHQXhDUSxzQkFBc0I7MkZBQXRCLHNCQUFzQjs7U0FBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlCQUFpQjtpQkFDOUI7eUpBRTRCLFlBQVk7c0JBQXBDLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQWFWLFdBQVc7c0JBQXZCLEtBQUs7Z0JBVU4sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7UnRDYXJvdXNlbFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL3J0LWNhcm91c2VsLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tydENhcm91c2VsVGFiXScsXG59KVxuZXhwb3J0IGNsYXNzIFJ0Q2Fyb3VzZWxUYWJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHV1aWRDYXJvdXNlbCE6IHN0cmluZztcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIHNlcnZpY2U6IFJ0Q2Fyb3VzZWxTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWRUYWI/OiBib29sZWFuO1xuXG4gICAgZ2V0IGRpc2FibGVkVGFiKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLl9kaXNhYmxlZFRhYjtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZGlzYWJsZWRUYWIodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWRUYWIgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3J0LXRhYi1jYXJvdXNlbC10YWJfX2Rpc2FibGVkJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3J0LXRhYi1jYXJvdXNlbC10YWJfX2Rpc2FibGVkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkVGFiKSB7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2Uuc2VsZWN0SFRNTEVsZW1lbnQodGhpcy51dWlkQ2Fyb3VzZWwsIHRoaXMuZWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnd2hpdGUtc3BhY2UnLCAnbm93cmFwJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnY3Vyc29yJywgJ3BvaW50ZXInKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIGBydC1jYXJvdXNlbC10YWItJHt0aGlzLnV1aWRDYXJvdXNlbH1gKTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnNldFRhYih0aGlzLnV1aWRDYXJvdXNlbCwgdGhpcy5lbCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VydmljZS5kZWxldGVUYWIodGhpcy51dWlkQ2Fyb3VzZWwsIHRoaXMuZWwpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiJdfQ==