ngc-scrolling-tabs
Version:
This component is a scrollable responsive tab component build on Angular 8 and Bootstrap 4. The left and right nav buttons will scroll one tab at a time. The component will track what tab is open and re-navigate to the open tab when the screen is refreshe
83 lines • 5.24 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/scrolling-tab.directive.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Directive, Input, ElementRef, Renderer2, HostBinding } from '@angular/core';
import { ScrollingTabsComponent } from './scrolling-tabs.component';
export class ScrollingTabDirective {
/**
* @param {?} tabs
* @param {?} elementRef
* @param {?} renderer
*/
constructor(tabs, elementRef, renderer) {
this.tabs = tabs;
this.elementRef = elementRef;
this.renderer = renderer;
this.active = false;
}
/**
* @return {?}
*/
ngOnInit() {
this.tabs.addTab(this);
this.renderer.addClass(this.elementRef.nativeElement, 'tab-pane');
this.renderer.setAttribute(this.elementRef.nativeElement, 'role', 'tabpanel');
}
/**
* @return {?}
*/
ngOnDestroy() {
this.tabs.removeTab(this);
}
/**
* @return {?}
*/
getTabClasses() {
return {
'nav-link': true,
active: this.active
};
}
}
ScrollingTabDirective.decorators = [
{ type: Directive, args: [{
selector: '[ngcScrollingTab], ngcScrollingTab'
},] }
];
/** @nocollapse */
ScrollingTabDirective.ctorParameters = () => [
{ type: ScrollingTabsComponent },
{ type: ElementRef },
{ type: Renderer2 }
];
ScrollingTabDirective.propDecorators = {
id: [{ type: Input }],
title: [{ type: Input }],
active: [{ type: HostBinding, args: ['class.active',] }, { type: Input }]
};
if (false) {
/** @type {?} */
ScrollingTabDirective.prototype.id;
/** @type {?} */
ScrollingTabDirective.prototype.title;
/** @type {?} */
ScrollingTabDirective.prototype.active;
/**
* @type {?}
* @private
*/
ScrollingTabDirective.prototype.tabs;
/**
* @type {?}
* @private
*/
ScrollingTabDirective.prototype.elementRef;
/**
* @type {?}
* @private
*/
ScrollingTabDirective.prototype.renderer;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsaW5nLXRhYi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ2Mtc2Nyb2xsaW5nLXRhYnMvIiwic291cmNlcyI6WyJsaWIvc2Nyb2xsaW5nLXRhYi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFxQixXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFNcEUsTUFBTSxPQUFPLHFCQUFxQjs7Ozs7O0lBTzlCLFlBQW9CLElBQTRCLEVBQVUsVUFBc0IsRUFBVSxRQUFtQjtRQUF6RixTQUFJLEdBQUosSUFBSSxDQUF3QjtRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBRnBHLFdBQU0sR0FBRyxLQUFLLENBQUM7SUFFeUYsQ0FBQzs7OztJQUVsSCxRQUFRO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7Ozs7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQzs7OztJQUVELGFBQWE7UUFDVCxPQUFPO1lBQ0gsVUFBVSxFQUFFLElBQUk7WUFDaEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3RCLENBQUM7SUFDTixDQUFDOzs7WUEzQkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxvQ0FBb0M7YUFDakQ7Ozs7WUFMUSxzQkFBc0I7WUFGSixVQUFVO1lBQUUsU0FBUzs7O2lCQVMzQyxLQUFLO29CQUNMLEtBQUs7cUJBRUwsV0FBVyxTQUFDLGNBQWMsY0FDMUIsS0FBSzs7OztJQUpOLG1DQUFvQjs7SUFDcEIsc0NBQXVCOztJQUV2Qix1Q0FDd0I7Ozs7O0lBRVoscUNBQW9DOzs7OztJQUFFLDJDQUE4Qjs7Ozs7SUFBRSx5Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIE9uSW5pdCwgT25EZXN0cm95LCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgU2Nyb2xsaW5nVGFic0NvbXBvbmVudCB9IGZyb20gJy4vc2Nyb2xsaW5nLXRhYnMuY29tcG9uZW50JztcclxuXHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW25nY1Njcm9sbGluZ1RhYl0sIG5nY1Njcm9sbGluZ1RhYidcclxufSlcclxuZXhwb3J0IGNsYXNzIFNjcm9sbGluZ1RhYkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuYWN0aXZlJylcclxuICAgIEBJbnB1dCgpIGFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdGFiczogU2Nyb2xsaW5nVGFic0NvbXBvbmVudCwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHsgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudGFicy5hZGRUYWIodGhpcyk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3RhYi1wYW5lJyk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdyb2xlJywgJ3RhYnBhbmVsJyk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50YWJzLnJlbW92ZVRhYih0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRUYWJDbGFzc2VzKCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICduYXYtbGluayc6IHRydWUsXHJcbiAgICAgICAgICAgIGFjdGl2ZTogdGhpcy5hY3RpdmVcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==