angular2x-timeline
TypeScript icon, indicating that this package has built-in type declarations

0.1.12 • Public • Published

angular2x-timeline

npm version

This is a animated vertical timeline component for Angular 2+. Angular Material is supported but not mandatory.

Getting started

  1. run npm install --save angular2x-timeline
  2. in your app module:
...
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NgTimelineModule } from 'angular2x-timeline';

@NgModule({
  ...
  imports: [
    ...
    BrowserAnimationsModule,
    NgTimelineModule
  ]
})
export class AppModule { }

Usage

Minimal Setup

<ng-timeline>
    <ng-timeline-entry>
        <ng-timeline-entry-header>Header</ng-timeline-entry-header>
        <ng-timeline-entry-content>Content</ng-timeline-entry-content>
    </ng-timeline-entry>
</ng-timeline>

Include a dot

<ng-timeline>
    <ng-timeline-entry>
        <ng-timeline-entry-header>Header</ng-timeline-entry-header>
        <ng-timeline-entry-content>Content</ng-timeline-entry-content>
        <ng-timeline-entry-dot></ng-timeline-entry-dot>
    </ng-timeline-entry>
</ng-timeline>

Include side data

<ng-timeline>
    <ng-timeline-entry>
        <ng-timeline-entry-header>Header</ng-timeline-entry-header>
        <ng-timeline-entry-content>Content</ng-timeline-entry-content>
        <ng-timeline-entry-side>2018</ng-timeline-entry-side>
    </ng-timeline-entry>
</ng-timeline>

Angular Material

The package includes a theme for angular material. In your own angular material theme:

@import '~@angular/material/theming';
@import '~angular-ng-timeline/theme';
...

@include angular-material-theme($your-theme);
@include ng-timeline-theme($your-theme);

If the theme is included, the components will be styled according to $your-theme including support for primary and accent colors for the dot.

Components

NgTimeline

Content

tag number
<ng-timeline-entry> n

Inputs

property type default impact
toggle boolean true If set to true, expanding one entry will collapse all other entries and vice versa
alternate boolean true If set to true, entries will be displayed alternately (left / right). No effect in mobile mode
focusOnOpen boolean false If set to true, expanding an entry will scroll it into view
side string 'left' Changes side ('left'
mobileWidthThreshold number 640 Decides when the mobile layout is used

NgTimelineEntry

The expanded class will be added to the timeline-entry compnent when the entry is expanded.

Content

tag number
<ng-timeline-entry-header> 1
<ng-timeline-entry-content> 1
<ng-timeline-entry-dot> 0...1
<ng-timeline-entry-side> 0...1

Outputs

event type description
expand boolean fired when an entry is expanded / collapsed. Value is true for expanded and false for collapsed

NgTimelineEntryHeader

NgTimelineEntryContent

NgTimelineEntryDot

Inputs

property type default impact
size number 45 Size of the dot [px]
class string primary Will be set as class name of the dot element. primary and accent can be used when using the angular material theme

Polyfills

Smoothscroll

When an entry is toggled, it will scroll into view. Smooth behavior is currently not supported in Chrome. A polyfill is available in iamdustan's smoothscroll

ClassList

ClassList.toggle was used at some points, including the second parameter. If you need to support browsers which do not support this, be sure to use a polyfill, e.g. this one.

Web Animations API

Animations are implemented with Angular animations which are based on the web animations API which has not landed in Safari and Edge yet. A polyfill is available in Web Animations JS

About

This project is a fork of https://github.com/glutengo/angular-ng-timeline#readme (credit to Markus Glutting) This project was generated with Angular CLI version 1.6.5. The NPM Version was packend with ng-packagr.

/angular2x-timeline/

    Package Sidebar

    Install

    npm i angular2x-timeline

    Weekly Downloads

    1

    Version

    0.1.12

    License

    MIT

    Unpacked Size

    532 kB

    Total Files

    44

    Last publish

    Collaborators

    • richardxlin