/** * @license * Copyright Akveo. All Rights Reserved. * Licensed under the MIT License. See License.txt in the project root for license information. */ import { Component, Input, Output, EventEmitter, HostBinding } from '@angular/core'; import { convertToBoolProperty, NbBooleanInput } from '../helpers'; /** * Route tabset components. * Renders tabs inside of a router-outlet. * * ```ts * tabs = [ * { * title: 'Route tab #1', * route: '/pages/description', * icon: 'home', * responsive: true, // hide title before `route-tabs-icon-only-max-width` value * }, * { * title: 'Route tab #2', * route: '/pages/images', * } * ]; * * * ``` * ### Installation * * Import `NbRouteTabsetModule` to your feature module. * ```ts * @NgModule({ * imports: [ * // ... * NbRouteTabsetModule, * ], * }) * export class PageModule { } * ``` * * @stacked-example(Route Tabset, tabset/route-tabset-showcase.component) * * @styles * * route-tabset-background-color: * route-tabset-border-radius: * route-tabset-shadow: * route-tabset-tab-background-color: * route-tabset-tab-padding: * route-tabset-tab-text-color: * route-tabset-tab-text-font-family: * route-tabset-tab-text-font-size: * route-tabset-tab-text-font-weight: * route-tabset-tab-text-line-height: * route-tabset-tab-text-transform: * route-tabset-tab-underline-width: * route-tabset-tab-underline-color: * route-tabset-tab-active-background-color: * route-tabset-tab-active-text-color: * route-tabset-tab-active-underline-color: * route-tabset-tab-focus-background-color: * route-tabset-tab-focus-text-color: * route-tabset-tab-focus-underline-color: * route-tabset-tab-hover-background-color: * route-tabset-tab-hover-text-color: * route-tabset-tab-hover-underline-color: * route-tabset-tab-disabled-background-color: * route-tabset-tab-disabled-text-color: * route-tabset-tab-disabled-underline-color: * route-tabset-divider-color: * route-tabset-divider-style: * route-tabset-divider-width: * route-tabset-scrollbar-color: * route-tabset-scrollbar-background-color: * route-tabset-scrollbar-width: * route-tabset-tab-text-hide-breakpoint: */ @Component({ selector: 'nb-route-tabset', styleUrls: ['./route-tabset.component.scss'], template: ` `, }) export class NbRouteTabsetComponent { @HostBinding('class.full-width') fullWidthValue: boolean = false; /** * Tabs configuration * @param Object{route: string, title: string, tag?: string, responsive?: boolean, disabled?: boolean} */ @Input() tabs: any[]; /** * Options passed to `routerLinkActiveOptions` directive which set on tab links. * `{ exact: true }` by default. */ @Input() activeLinkOptions = { exact: true }; /** * Take full width of a parent * @param {boolean} val */ @Input() set fullWidth(val: boolean) { this.fullWidthValue = convertToBoolProperty(val); } static ngAcceptInputType_fullWidth: NbBooleanInput; /** * Emits when tab is selected * @type {EventEmitter} */ @Output() changeTab = new EventEmitter(); selectTab(tab: any) { this.changeTab.emit(tab); } }