@pevil/ng-tabs
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

Angular UI Tabs

Install

$ npm install @pevil/ng-tabs

Usage

Import

First, import the provided module:

import { NgTabModule } from '@pevil/ng-tabs';

@NgModule({
    imports: [NgTabModule]
})
export class Module {}

Building a set of tabs

3 directives are provided:

  • pvlTabGroup
  • pvlTab
  • pvlTabPanel

First, an example of how to use them together, with more detail below

<ul pvlTabGroup [tabPanel]="characterPanel">
    <li pvlTab [tabId]="'a'">
        View A
        <ng-template><a-component></a-component></ng-template>
    </li>
    <li pvlTab [tabId]="'b'">
        View B
        <ng-template><b-component></b-component></ng-template>
    </li>
    <li pvlTab [tabId]="'c'">
        View C
        <ng-template><img [src]="c" /></ng-template>
    </li>
</ul>

<div>some other optional content that maybe you want to place before the tab panel</div>

<ng-template pvlTabPanel #putContentHere="pvlTabPanel"></ng-template>

For a more concrete example, see here or here

pvlTabGroup Use this to define a group of tabs that belong together. Here, we're defining an

    element as the group, where each child with the pvlTab directive (in this case each
  • element), is a part of this tabGroup.

    The [tabPanel] input expects a reference to the panel where we want to render these tabs. The optional [initialTab] input expects a string matching the tabId of whichever tab should be displayed first. If none is provided, the first tab's contents will be the default.

    pvlTab As described above, we want to apply the pvlTab directive to each element that describes a tab. In this case we have 3

  • elements, where the tabs themselves will display [View A, View B, View C]. Each element with a pvlTab directive also uses an to define the data that should be rendered in the panel when the tab is selected.

    The [tabId] input expects a string id, unique to the other tabs in this tab group.

    Whichever tab is active will have the css class .pvl-active-tab applied to it

    pvlTabPanel Apply this to an element, wherever you want the content defined by each tab to render. Also remember to grab a reference to the directive, in order to pass that as an input to the tabGroup directive (in our example, we did that with #putContentHere="pvlTabPanel")

    Demo

    Run local demo by:

    1. Cloning the repo
    2. Run $ npm run build.all
    3. cd demo
    4. python3 -m http.server 4300
    5. open localhost:4300 in a browser

    OR visit this plunkr

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.0
    20
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 1.0.0
    20
  • 1.0.0-beta
    0

Package Sidebar

Install

npm i @pevil/ng-tabs

Weekly Downloads

20

Version

1.0.0

License

MIT

Last publish

Collaborators

  • peterlaraia