ngx-mzd-timeline
Version:
Minimalist's vertical timeline library for Angular applications.
152 lines (107 loc) • 5.27 kB
Markdown
# ngx-mzd-timeline
Angular material theme supported minimalist's vertical timeline library for Angular applications.
## Live Demo
Live demo is available at [github pages](https://mazid1.github.io/ngx-mzd-timeline).
## Getting Started
1) run `npm install --save ngx-mzd-timeline`
2) import `MzdTimelineModule` in your app module
```typescript
...
import { MzdTimelineModule } from 'ngx-mzd-timeline';
@NgModule({
...
imports: [
...
MzdTimelineModule
]
})
export class AppModule { }
```
## Usage
### Minimal Setup
```xml
<mzd-timeline>
<mzd-timeline-content>
Your HTML code or any angular component can be placed here.
Content will be displayed in a card.
</mzd-timeline-content>
</mzd-timeline>
```
### Icon
`mzd-icon` supports [fontawesome](https://fontawesome.com/icons) icons.
```xml
<mzd-timeline>
<mzd-icon><fa-icon icon="briefcase"></fa-icon></mzd-icon>
<mzd-timeline-content>
Your HTML code or any angular component can be placed here.
Content will be displayed in a card.
</mzd-timeline-content>
</mzd-timeline>
```
### Border
Border around the content
```xml
<mzd-timeline>
<mzd-icon><fa-icon icon="briefcase"></fa-icon></mzd-icon>
<mzd-timeline-content [border]="true">
Your HTML code or any angular component can be placed here.
Content will be displayed in a card.
</mzd-timeline-content>
</mzd-timeline>
```
### Other Examples
Other examples can be found in the [app.component.html](https://github.com/mazid1/ngx-mzd-timeline/blob/master/src/app/app.component.html) file.
## Angular Material Theme
The package supports angular material theme. In your own angular material theme:
```typescript
@import '~@angular/material/theming';
@import "~ngx-mzd-timeline/src/mzd-timeline.theme.scss";
...
@include angular-material-theme($your-theme);
@include mzd-timeline-theme($your-theme);
```
## Components
### MzdTimeline
#### Content
| tag | number |
| ------------------------ | ------ |
| `<mzd-timeline-content>` | n |
#### Inputs
| property | type | default | impact |
| ------------------ | ------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `alternateSide` | boolean | true | If set to true, entries will be displayed alternately (`'left'` / `'right'`). In XS devices, if set ture, contents will be placed at `'right'` side of the vertical line; if set false, content will be placed at `'left'`/`'right'` depending on the value of `firstContentSide`. |
| `firstContentSide` | string | 'left' | Changes side (`'left'` / `'right'`) of the first content is shown on. If `alternateSide` is `false`, all the contents will follow the side of the first content, otherwise contents will take side alternately. No effect in XS devices if `alternateSide` is `true`. |
### MzdTimelineContent
#### Content
| tag | number |
| ---------------------------- | ------ |
| `<mzd-icon>` | 0/1 |
| any html / angular component | n |
> `mat-card` can also be used. An example can be found in [app.component.html](https://github.com/mazid1/ngx-mzd-timeline/blob/master/src/app/app.component.html) file.
#### Inputs
| property | type | default | impact |
| -------- | ------- | ------- | ------------------------------------------------------------- |
| `card` | boolean | true | Creates box shadow around the content, similar to `mat-card`. |
| `border` | boolean | false | Creates border around the content. |
### MzdIcon
#### Content
Supports [fontawesome](https://fontawesome.com/icons) icon as content.
| tag | number |
| ---------------------------- | ------ |
| `<fa-icon>` | 0/1 |
Single English letter can also be used as icon. For example:
```xml
<mzd-icon><strong>X<strong></mzd-icon>
```
#### Inputs
No input for this component.
# About
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.0.7.
# For Devlopers Who Want To Contribute
## Code scaffolding
Run `ng generate component component-name --project ngx-mzd-timeline` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project ngx-mzd-timeline`.
> Note: Don't forget to add `--project ngx-mzd-timeline` or else it will be added to the default project in your `angular.json` file.
## Build
Run `ng build ngx-mzd-timeline --prod` to build the project. The build artifacts will be stored in the `dist/` directory.
## Running unit tests
Run `ng test ngx-mzd-timeline` to execute the unit tests via [Karma](https://karma-runner.github.io).