{"version":3,"file":"ngx-timeline-view.mjs","sources":["../../../projects/ngx-timeline-view/src/lib/ngx-timeline-view.service.ts","../../../projects/ngx-timeline-view/src/lib/pipes/time-since.pipe.ts","../../../projects/ngx-timeline-view/src/lib/ngx-timeline-view.component.ts","../../../projects/ngx-timeline-view/src/lib/ngx-timeline-view.module.ts","../../../projects/ngx-timeline-view/src/public-api.ts","../../../projects/ngx-timeline-view/src/ngx-timeline-view.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NgxTimelineViewService {\n\n  constructor() { }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'timeSince'\n})\nexport class TimeSincePipe implements PipeTransform {\n\n  transform(date: Date): string {\n    let seconds = Math.floor((new Date().getTime() - date.getTime()) / 1000);\n\n    if (seconds >= 63072000) {\n      return `${Math.floor(seconds / 31536000)} years ago`;\n    } else if (seconds >= 31536000) {\n      return '1 year ago';\n    } else if (seconds >= 5184000) {\n      return `${Math.floor(seconds / 2592000)} months ago`;\n    } else if (seconds >= 2592000) {\n      return '1 month ago';\n    } else if (seconds >= 172800) {\n      return `${Math.floor(seconds / 86400)} days ago`;\n    } else if (seconds >= 86400) {\n      return '1 day ago';\n    } else if (seconds >= 7200) {\n      return `${Math.floor(seconds / 3600)} hours ago`;\n    } else if (seconds >= 3600) {\n      return '1 hour ago';\n    } else if (seconds >= 120) {\n      return `${Math.floor(seconds / 60)} minutes ago`;\n    } else if (seconds >= 60) {\n      return '1 minute ago';\n    } else if (seconds > 1) {\n      return `${seconds} seconds ago`;\n    } else {\n      return '1 second ago';\n    }\n  }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'ngx-timeline-view',\n  template: `\n    <div class=\"timeline\">\n      <div *ngFor=\"let event of events\" class=\"timeline-event\">\n        <div *ngIf=\"!isTimeSince; else timeSince\" class=\"date\">{{ event.date | date: 'mediumDate' }}</div>\n        <ng-template #timeSince>\n          <div class=\"date\">{{ event.date | timeSince }}</div>\n        </ng-template>\n        <div class=\"outer-circle\" [ngStyle]=\"{'borderColor': circleColor}\">\n          <div class=\"inner-circle\" [ngStyle]=\"{'backgroundColor': circleColor}\"></div>\n        </div>\n        <div class=\"content\">{{ event.content }}</div>\n      </div>\n    </div>\n  `,\n  styles: [\n    `\n      .timeline::before {\n          position: fixed;\n          top: 0;\n          bottom: 0;\n          margin-left: calc(9rem + 7.5px);\n          content: \"\";\n          width: 2px;\n          background-color: #ccc;\n      }\n\n      .timeline-event {\n          display: flex;\n          align-items: center;\n          margin-top: 15px;\n          font-family: inherit;\n      }\n\n      .date {\n          min-width: 9rem;\n          text-align: center;\n      }\n\n      .outer-circle {\n          min-width: 15px;\n          max-width: 15px;\n          min-height: 15px;\n          max-height: 15px;\n          border-radius: 15px;\n          border: 2px solid black;\n          margin-right: 20px;\n          z-index: 1;\n          display: flex;\n          justify-content: center;\n          align-items: center;\n      }\n\n      .inner-circle {\n          min-width: 7px;\n          max-width: 7px;\n          min-height: 7px;\n          max-height: 7px;\n          border-radius: 7px;\n          background-color: black;\n          z-index: 1;\n      }\n\n      .content {\n          position: relative;\n          padding: 10px;\n          border: 1px solid #ccc;\n          border-radius: 3px;\n          box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.15);\n      }\n\n      .content::before {\n          position: absolute;\n          top: calc(50% - 10px);\n          left: -19px;\n          content: \"\";\n          border: 10px solid transparent;\n          border-right-color: white;\n          z-index: 1;\n      }\n\n      .content::after {\n          position: absolute;\n          top: calc(50% - 10px);\n          left: -21px;\n          content: \"\";\n          border: 10px solid transparent;\n          border-right-color: rgba(0, 0, 0, 0.15);\n      }\n    `\n  ]\n})\nexport class NgxTimelineViewComponent implements OnInit {\n  @Input() events?: TimelineEvent[];\n  @Input() isTimeSince: boolean = false;\n  @Input() circleColor: string = '#304FFE';\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n\nexport interface TimelineEvent {\n  date: Date;\n  content: string;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgxTimelineViewComponent } from './ngx-timeline-view.component';\nimport { TimeSincePipe } from './pipes/time-since.pipe';\n\n\n\n@NgModule({\n  declarations: [\n    NgxTimelineViewComponent,\n    TimeSincePipe\n  ],\n  imports: [\n    CommonModule\n  ],\n  exports: [\n    NgxTimelineViewComponent\n  ]\n})\nexport class NgxTimelineViewModule { }\n","/*\n * Public API Surface of ngx-timeline-view\n */\n\nexport * from './lib/ngx-timeline-view.service';\nexport * from './lib/ngx-timeline-view.component';\nexport * from './lib/ngx-timeline-view.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.TimeSincePipe"],"mappings":"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"}