{"version":3,"file":"angular-mgl-timeline.mjs","sources":["../../src/timeline/timeline-entry-header/timeline-entry-header.component.ts","../../src/timeline/timeline-entry-header/timeline-entry-header.component.html","../../src/timeline/timeline-entry-dot/timeline-entry-dot.component.ts","../../src/timeline/timeline-entry-dot/timeline-entry-dot.component.html","../../src/timeline/timeline-entry-content/timeline-entry-content.component.ts","../../src/timeline/timeline-entry-content/timeline-entry-content.component.html","../../src/timeline/timeline-entry-side/timeline-entry-side.component.ts","../../src/timeline/timeline-entry-side/timeline-entry-side.component.html","../../src/timeline/timeline-entry/timeline-entry.component.ts","../../src/timeline/timeline-entry/timeline-entry.component.html","../../src/timeline/timeline/timeline.component.ts","../../src/timeline/timeline/timeline.component.html","../../src/timeline/timeline.module.ts","../../angular-mgl-timeline.ts"],"sourcesContent":["import { Component, OnInit, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'mgl-timeline-entry-header',\n  templateUrl: './timeline-entry-header.component.html',\n  styleUrls: ['./timeline-entry-header.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class MglTimelineEntryHeaderComponent {\n  \n}\n","<ng-content></ng-content>","import {\n  Component, Input, HostBinding, ElementRef, EventEmitter, Output,\n  AfterViewInit, Renderer2, ChangeDetectorRef, Inject, ViewEncapsulation\n} from '@angular/core';\nimport { AnimationBuilder, style, animate, AnimationPlayer } from '@angular/animations';\nimport { DOCUMENT } from '@angular/common';\n\n@Component({\n  selector: 'mgl-timeline-entry-dot',\n  templateUrl: './timeline-entry-dot.component.html',\n  styleUrls: ['./timeline-entry-dot.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class MglTimelineEntryDotComponent implements AfterViewInit {\n\n  private _expanded: boolean = false;\n  private _alternate: boolean = false;\n  private _mobile: boolean = false;\n  private initialStyle: CSSStyleDeclaration;\n  private _size: number = 50;\n  private animation?: AnimationPlayer;\n\n  animationDone = new EventEmitter<any>();\n\n  @Input()\n  expandAnimationTiming = '200ms ease';\n\n  @Input()\n  collapseAnimationTiming = '100ms ease';\n\n\n  @Input('class')\n  @HostBinding('class')\n  clazz = 'primary';\n\n  @Input()\n  set size(size: number) {\n    this._size = size;\n    this.setStyle();\n  }\n\n  get size() {\n    return this._size;\n  }\n\n  set alternate(alternate: boolean) {\n    this._alternate = alternate;\n    this.setStyle();\n  }\n\n  get alternate() {\n    return this._alternate;\n  }\n\n  set mobile(mobile: boolean) {\n    this._mobile = mobile;\n    this.setStyle();\n  }\n\n  get mobile() {\n    return this._mobile;\n  }\n\n  set expanded(expanded: boolean) {\n    const animate = this._expanded !== expanded;\n    this._expanded = expanded;\n    animate ? this.animate() : this.setStyle()\n  }\n\n  get expanded() {\n    return this._expanded;\n  }\n\n  constructor(private animationBuilder: AnimationBuilder, private elementRef: ElementRef,\n    private renderer: Renderer2, private changeDetectorRef: ChangeDetectorRef,\n    @Inject(DOCUMENT) private document: Document) { }\n\n  ngAfterViewInit() {\n    this.initialStyle = this.document.defaultView!.getComputedStyle(this.elementRef.nativeElement);\n    this.setStyle();\n    this.changeDetectorRef.detectChanges();\n  }\n\n  private getCollapsedStyle() {\n    return {\n      top: '50%',\n      left: (this.alternate || this.mobile) ? '-5px' : 'calc(100% + 5px)',\n      width: this.size + 'px',\n      height: this.size + 'px',\n      opacity: 1,\n      transform: 'translateY(-50%) translateX(-50%)',\n      boxShadow: this.initialStyle && this.initialStyle.boxShadow,\n      borderRadius: '100px'\n    }\n  }\n\n  private getTransitionStyle() {\n    return {\n      ...this.getCollapsedStyle(),\n      left: '50%',\n      opacity: 0.5,\n      boxShadow: 'none'\n    }\n  }\n\n  private getExpandedStyle() {\n    return {\n      ...this.getTransitionStyle(),\n      left: '0',\n      transform: 'translateX(0) translateY(-50%)',\n      width: '100%',\n      height: '100%',\n      opacity: 1,\n      borderRadius: 0\n    }\n  }\n\n  private animate() {\n    this.destroyAnimation();\n    if (this.expanded) {\n      this.animation = this.animationBuilder\n        .build([\n          style(this.getCollapsedStyle()),\n          animate(this.expandAnimationTiming, style(this.getTransitionStyle())),\n          animate(this.expandAnimationTiming, style(this.getExpandedStyle())),\n        ])\n        .create(this.elementRef.nativeElement)\n      this.animation.onDone(() => this.animationDone.emit({ toState: 'expanded' }));\n      this.animation.play();\n\n    } else {\n      this.animationBuilder\n      this.animation = this.animationBuilder\n        .build([\n          style(this.getExpandedStyle()),\n          animate(this.collapseAnimationTiming, style(this.getTransitionStyle())),\n          animate(this.collapseAnimationTiming, style(this.getCollapsedStyle())),\n        ])\n        .create(this.elementRef.nativeElement)\n      this.animation.onDone(() => this.animationDone.emit({ toState: 'collapsed' }));\n      this.animation.play();\n    }\n  }\n\n  private setStyle() {\n    this.destroyAnimation();\n    const baseStyle: any = this.expanded ? this.getExpandedStyle() : this.getCollapsedStyle();\n    Object.keys(baseStyle).forEach(property => {\n      this.renderer.setStyle(this.elementRef.nativeElement, property, baseStyle[property])\n    })\n  }\n\n  private destroyAnimation() {\n    if (this.animation) {\n      this.animation.destroy();\n      delete this.animation;\n    }\n  }\n\n}\n","<ng-content></ng-content>\n","import { AnimationBuilder, style, animate } from '@angular/animations';\nimport { Component, EventEmitter, ElementRef, AfterViewInit, Renderer2, ViewEncapsulation, Input } from '@angular/core';\n\n@Component({\n  selector: 'mgl-timeline-entry-content',\n  templateUrl: './timeline-entry-content.component.html',\n  styleUrls: ['./timeline-entry-content.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class MglTimelineEntryContentComponent implements AfterViewInit {\n\n  @Input()\n  expandAnimationTiming = '200ms ease';\n\n  @Input()\n  collapseAnimationTiming = '100ms ease';\n\n  private contentHeight: string;\n  animationDone = new EventEmitter<any>();\n\n  private _expanded: boolean = false;\n\n  set expanded(expanded: boolean) {\n    this.contentHeight = this.elementRef.nativeElement.scrollHeight;\n    const animate = this._expanded !== expanded;\n    this._expanded = expanded;\n    animate ? this.animate() : this.setStyle\n  }\n\n  get expanded() {\n    return this._expanded;\n  }\n\n  constructor(private elementRef: ElementRef, private animationBuilder: AnimationBuilder, private renderer: Renderer2) { }\n\n  ngAfterViewInit(): void {\n    this.contentHeight = this.elementRef.nativeElement.scrollHeight;\n    this.setStyle();\n  }\n\n  private getCollapsedStyle() {\n    return {\n      height: '0px'\n    }\n  }\n\n  private getExpandedStyle() {\n    return {\n      height: this.contentHeight + 'px'\n    }\n  }\n\n  animate() {\n    if (this.expanded) {\n      const animation = this.animationBuilder\n        .build([\n          style(this.getCollapsedStyle()),\n          animate(this.expandAnimationTiming, style(this.getExpandedStyle())),\n        ])\n        .create(this.elementRef.nativeElement)\n      animation.onDone(() => this.animationDone.emit({ toState: 'expanded' }));\n      animation.play();\n\n    } else {\n      this.animationBuilder\n      const animation = this.animationBuilder\n        .build([\n          style(this.getExpandedStyle()),\n          animate(this.collapseAnimationTiming, style(this.getCollapsedStyle())),\n        ])\n        .create(this.elementRef.nativeElement)\n      animation.onDone(() => this.animationDone.emit({ toState: 'collapsed' }));\n      animation.play();\n    }\n  }\n\n  setStyle() {\n    const baseStyle = this.expanded ? this.getExpandedStyle() : this.getCollapsedStyle();\n    Object.keys(baseStyle).forEach(property => {\n      this.renderer.setStyle(this.elementRef.nativeElement, property, baseStyle[property as keyof typeof baseStyle])\n    })\n  }\n\n}\n","<div><ng-content></ng-content></div>","import { Component, ElementRef, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'mgl-timeline-entry-side',\n  templateUrl: './timeline-entry-side.component.html',\n  styleUrls: ['./timeline-entry-side.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class MglTimelineEntrySideComponent {\n\n  set alternate(value: boolean) {\n    this.elementRef.nativeElement.classList.toggle('alternate', value);\n  }\n\n  set mobile(value: boolean) {\n    this.elementRef.nativeElement.classList.toggle('mobile', value);\n  }\n\n  constructor(private elementRef: ElementRef) { }\n\n}\n","<ng-content></ng-content>","import { HostBinding, ViewEncapsulation } from '@angular/core';\nimport { MglTimelineEntrySideComponent } from './../timeline-entry-side/timeline-entry-side.component';\nimport { Subscription } from 'rxjs';\nimport { MglTimelineEntryDotComponent } from './../timeline-entry-dot/timeline-entry-dot.component';\nimport {\n  Component, AfterViewInit, Output, EventEmitter, ContentChild, OnDestroy, ElementRef\n} from '@angular/core';\nimport { MglTimelineEntryContentComponent } from '../timeline-entry-content/timeline-entry-content.component';\nimport { MglTimelineEntryHeaderComponent } from '../timeline-entry-header/timeline-entry-header.component';\n\n@Component({\n  selector: 'mgl-timeline-entry',\n  templateUrl: './timeline-entry.component.html',\n  styleUrls: ['./timeline-entry.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class MglTimelineEntryComponent implements AfterViewInit, OnDestroy {\n\n  private subscriptions: Subscription[] = [];\n\n  focusOnOpen: boolean = false;\n\n  set expanded(expanded) {\n    if (this.dot && expanded) {\n      this.dot.expanded = expanded;\n    } else {\n      this.content.expanded = expanded\n    }\n    this.changed.emit(expanded);\n  }\n\n  @HostBinding('class.expanded')\n  get expanded() {\n    return this.dot ? (this.dot.expanded && this.content.expanded) : this.content.expanded;\n  }\n\n  private _mobile: boolean = false;\n\n  set mobile(value: boolean) {\n    this.elementRef.nativeElement.classList.toggle('mobile', value);\n    if (this.dot) {\n      this.dot.mobile = value;\n    }\n    if (this.side) {\n      this.side.mobile = value;\n    }\n  }\n\n  @Output('expand')\n  changed = new EventEmitter<boolean>();\n\n  @Output()\n  animationDone = new EventEmitter<string>();\n\n  @ContentChild(MglTimelineEntryContentComponent) content: MglTimelineEntryContentComponent;\n  @ContentChild(MglTimelineEntryHeaderComponent) header: MglTimelineEntryHeaderComponent;\n  @ContentChild(MglTimelineEntryDotComponent) dot: MglTimelineEntryDotComponent;\n  @ContentChild(MglTimelineEntrySideComponent) side: MglTimelineEntrySideComponent;\n\n  constructor(private elementRef: ElementRef) { }\n\n  ngAfterViewInit() {\n    if (this.dot) {\n      this.subscriptions.push(this.dot.animationDone.subscribe(event => {\n        if (event.toState === 'expanded') {\n          this.content.expanded = true;\n        } else {\n          this.animationDone.emit(event);\n        }\n      }));\n    }\n    if (this.content) {\n      this.subscriptions.push(this.content.animationDone.subscribe(event => {\n        if (this.dot && event.toState === 'collapsed') {\n          this.dot.expanded = false;\n        } else {\n          if (this.focusOnOpen) {\n            this.elementRef.nativeElement.scrollIntoView({ behavior: 'smooth' });\n          }\n          this.animationDone.emit(event);\n        }\n      }));\n    }\n  }\n\n  set alternate(value: boolean) {\n    this.elementRef.nativeElement.classList.toggle('alternate', value);\n    if (this.dot) {\n      this.dot.alternate = value;\n    }\n    if (this.side) {\n      this.side.alternate = value;\n    }\n  }\n\n  ngOnDestroy() {\n    this.subscriptions.forEach(subscription => subscription.unsubscribe());\n  }\n\n  collapse() {\n    this.expanded = false;\n  }\n\n  expand() {\n    this.expanded = true;\n  }\n\n\n  toggle(event: MouseEvent) {\n    const headerFound = this.containsInPath(event, 'mgl-timeline-entry-header');\n    const dotFound = this.containsInPath(event, 'mgl-timeline-entry-dot');\n    if (headerFound || dotFound) {\n      this.expanded = !this.expanded;\n    }\n  }\n\n  private containsInPath(mouseEvent: MouseEvent, name: string): boolean {\n    let currentElem: Element | null = mouseEvent.target as Element;\n    while (currentElem) {\n      if (currentElem.localName === name) {\n        return true;\n      }\n      currentElem = currentElem.parentElement;\n    }\n    return false;\n  }\n}\n","<ng-content select=\"mgl-timeline-entry-side\"></ng-content>\n<div class=\"mgl-timeline-entry-card\">\n  <div class=\"mgl-timeline-entry-card-header\" (click)=\"toggle($event)\">\n    <ng-content select=\"mgl-timeline-entry-dot\"></ng-content>\n    <ng-content select=\"mgl-timeline-entry-header\"></ng-content>\n  </div>\n  <ng-content select=\"mgl-timeline-entry-content\"></ng-content>\n</div>","import { QueryList, ElementRef, ChangeDetectorRef, ViewEncapsulation, SimpleChanges } from '@angular/core';\nimport { MglTimelineEntryComponent } from './../timeline-entry/timeline-entry.component';\nimport { Component, Input, ContentChildren, AfterViewInit, HostListener, OnChanges, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\n@Component({\n  selector: 'mgl-timeline',\n  templateUrl: './timeline.component.html',\n  styleUrls: ['./timeline.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class MglTimelineComponent implements AfterViewInit, OnChanges, OnDestroy {\n\n  @Input()\n  toggle: boolean = true;\n\n  @Input()\n  mobileWidthThreshold: number = 640;\n\n  @Input()\n  alternate: boolean = true;\n\n  @Input()\n  side: string = 'left';\n\n  set mobile(value: boolean) {\n    this.content && this.content.forEach(entry => entry.mobile = value);\n    this.elementRef.nativeElement.classList.toggle('mobile', value)\n  }\n\n  get mobile() {\n    return this.elementRef.nativeElement.classList.contains('mobile');\n  }\n\n  private _focusOnOpen = false;\n\n  @Input()\n  set focusOnOpen(focusOnOpen) {\n    this.content && this.content.forEach(entry => entry.focusOnOpen = focusOnOpen);\n    this._focusOnOpen = focusOnOpen;\n  }\n\n  get focusOnOpen() {\n    return this._focusOnOpen;\n  }\n\n  private subscriptions: Subscription[] = [];\n\n  @ContentChildren(MglTimelineEntryComponent)\n  private content: QueryList<MglTimelineEntryComponent>;\n\n  constructor(private elementRef: ElementRef, private changeDetectorRef: ChangeDetectorRef) { }\n\n  ngOnChanges(simpleChanges: SimpleChanges) {\n    this.updateContent();\n  }\n\n  ngOnDestroy() {\n    this.subscriptions.forEach(subscription => subscription.unsubscribe());\n  }\n\n  ngAfterViewInit() {\n    this.mobile = this.elementRef.nativeElement.clientWidth < this.mobileWidthThreshold;\n    setTimeout(() => this.updateContent());\n    this.content.changes.subscribe(changes => {\n      this.updateContent();\n    });\n  }\n\n  private updateContent() {\n    this.ngOnDestroy();\n    if (this.content) {\n      this.content.forEach((entry, index) => {\n        if (this.toggle) {\n          this.subscriptions.push(\n            entry.changed.subscribe(state => {\n              if (state === true) {\n                this.content.filter(e => e !== entry).forEach(e => e.collapse());\n              }\n            }));\n        }\n        entry.alternate = this.alternate ? (index % 2 !== 0) : (this.side === 'right');\n        entry.mobile = this.mobile;\n        entry.focusOnOpen = this.focusOnOpen;\n      });\n    }\n  }\n\n  @HostListener('window:resize', ['$event'])\n  onResize(ev: KeyboardEvent) {\n    this.mobile = this.elementRef.nativeElement.clientWidth < this.mobileWidthThreshold;\n  }\n}\n","<div class=\"mgl-timeline-line\"></div>\n<ng-content></ng-content>","import { MglTimelineEntryHeaderComponent } from './timeline-entry-header/timeline-entry-header.component';\nimport { MglTimelineEntryDotComponent } from './timeline-entry-dot/timeline-entry-dot.component';\nimport { MglTimelineEntryContentComponent } from './timeline-entry-content/timeline-entry-content.component';\nimport { MglTimelineEntrySideComponent } from './timeline-entry-side/timeline-entry-side.component';\nimport { MglTimelineEntryComponent } from './timeline-entry/timeline-entry.component';\nimport { MglTimelineComponent } from './timeline/timeline.component';\nimport { NgModule } from '@angular/core';\n@NgModule({\n  declarations: [\n    MglTimelineComponent,\n    MglTimelineEntryComponent,\n    MglTimelineEntryHeaderComponent,\n    MglTimelineEntrySideComponent,\n    MglTimelineEntryContentComponent,\n    MglTimelineEntryDotComponent\n  ],\n  exports: [\n    MglTimelineComponent,\n    MglTimelineEntryComponent,\n    MglTimelineEntryHeaderComponent,\n    MglTimelineEntrySideComponent,\n    MglTimelineEntryContentComponent,\n    MglTimelineEntryDotComponent\n  ]\n})\nexport class MglTimelineModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}