1.7.0 • Published 2 years ago
ngx-timeline-albe v1.7.0
- Content HTML highly manipulable.
- Styles for the template are easily customizable.
- Simplifies the aspects of internationalization, displaying dates and alternatives texts in a local format.
Version history: | Library | Angular | | ------- | ------- | | Lastet | 18.0.1 | | 1.6.0 | 17.3.0 | | 1.5.0 | 16.0.0 | | 1.4.1 | 15.2.6 | | 1.3.0 | 14.2.0 | | 1.2.11 | 11.2.4 | | 1.2.0 | 10.1.2 | | 1.1.0 | 8.0.0 |
Use license
The component is open source and released for free commercial use at no cost. Donations are welcome.
Installation
$ npm install ngx-timeline-albeHow to use
Import the module
import { NgxTimelineAlbeModule } from 'ngx-timeline-albe';
@NgModule({
imports: [ NgxTimelineAlbeModule ],
...
})
export class AppModule {}Template
<ngx-timeline [itens]="data"></ngx-timeline>- Instance with options:
<ngx-timeline [itens]="data"
[formatDate]="'dd MMMM'"
[sortDesc]="true"
[showMenu]="true"
[showGroup]="true"
[theme]="'basic'">
</ngx-timeline>Component
import { TimelineItem } from 'ngx-timeline-albe'; //The Json object is also accepted in string format.
data: Array<TimelineItem> | String;ngOnInit() {
//Object type
this.data = [
{
datetime: new Date('2020-03-29 23:59:59'),
header: 'Sample of header',
body: [
{
tag: 'h1',
content: "Lorem ipsum"
},
{
tag: 'p',
content: 'Lorem ipsum dolor sit amet, nisl lorem, wisi egestas orci tempus class massa.'
}],
footer: 'Sample of footer. See <a href=\"https://github.com/Albejr/ngx-timeline\" target=\"_blank\">more details</a>'
}
];
//OR Json format
this.data = `[{
"datetime": "2020-03-29 23:59:59",
"header": "Sample of header",
"body": [{
"tag": "h1",
"content": "Lorem ipsum"
},
{
"tag": "p",
"content": "Lorem ipsum dolor sit amet, nisl lorem, wisi egestas orci tempus class massa."
}
],
"footer": "Sample of footer. See <a href='https://github.com/Albejr/jquery-albe-timeline' target='_blank'>more details</a>"
}]`;
}Options
| Name | Type | Default | Description | |
|---|---|---|---|---|
| itens | required | Array<TimelineItem> or String Json | List of itens to be displayed. | |
| showGroup | optional | Boolean | true | Sets the visibility of the annual grouper. |
| showMenu | optional | Boolean | true | Sets the anchor menu visibility for annual groupings (depends on 'showGroup'). |
| sortDesc | optional | Boolean | true | Defines ordering of items, true: Descendente, false: Ascendente. |
| formatDate | optional | String | 'dd MMMM' | Sets the date display format: 'dd MMMM''dd/MM/yyyy HH:mm:ss''MM/dd/yyyy''yyyy/MM/dd' |
| language | optional | String | 'pt-BR' | Specifies manually the display language of texts (i18n), if the token LocaleID is not configured. |
| theme | optional | String | 'basic' | Defines the style: 'basic''horizontal''minimalist''mobile''vertical' |
TimelineItem Type
| Name | Type | Description | |
|---|---|---|---|
| datetime | required | Date | |
| icon | optional | string | |
| header | optional | string | |
| body | required | Array<ItemBody> | |
| footer | optional | string |
ItemBody Type
| Name | Type | Description | |
|---|---|---|---|
| tag | required | string | |
| content | required | string | |
| attr | optional | TagAttribute |
TagAttribute Type
| Name | Type | Description | |
|---|---|---|---|
| href | optional | string | |
| target | optional | string | |
| title | optional | string | |
| src | optional | string | |
| width | optional | string | |
| cssclass | optional | string |
Html Structure
We'll have a similar result:
<ngx-timeline>
<div id="timeline-albe" class="clasic">
<section>
<header class="group">2020</header>
<div class="item">
<div class="badge">
<span>29/03</span>
</div>
<article>
<header>Sample of header</header>
<div class="body">
<span>2017-03-29 23:59:59</span>
<h1>Lorem ipsum</h1>
<p>Lorem ipsum dolor sit amet, nisl lorem, wisi egestas orci tempus class massa.</p>
</div>
<footer>Sample of footer.</footer>
</article>
<div class="badge last">
</div>
</div>
</section>
</div>
<ngx-timeline>Styling guide
There are several classes that help you to create your custom styles
app.component.css
:host ::ng-deep #timeline-albe.minimalist {
color: inherit;
font-size: inherit;
width: inherit;
margin: 10px;
}Notes
- The datetime element must meet the ISO 8601 standard in year-month-day format "yyyy-MM-dd" or "yyyy-MM-dd HH:mm:ss"
Demo App
Follow these instructions to run the demo:
- Clone the repository to your local machine
- From the project folder, run
npm ito install all required dependencies - Run
ng b ngx-timeline-albeto build in dist folder. - Run
ng sto serve the project from a live-updating server. - Go to
localhost:4200to see the demo site
To do
- If 'json' (string) is passed, convert to 'object'.
- Displays default message.
- Insert animation.
- Sort items by date.
- Multiple languages.
- Multiple styles.
- Document CSS customization.
- Document 'json' or 'object'.
Inspired on the plug-in: https://github.com/Albejr/jquery-albe-timeline