projects/atft/src/lib/animation/timeline-emitter/timeline-emitter.component.ts
AfterViewInit
OnDestroy
OnChanges
OnInit
selector | atft-timeline-emitter |
template |
|
Properties |
Methods |
|
Inputs |
constructor()
|
autostart | |
Type : boolean
|
|
Default value : false
|
|
Public ngAfterViewInit |
ngAfterViewInit()
|
Returns :
void
|
Public ngOnChanges | ||||||
ngOnChanges(changes: SimpleChanges)
|
||||||
Parameters :
Returns :
void
|
ngOnDestroy |
ngOnDestroy()
|
Returns :
void
|
ngOnInit |
ngOnInit()
|
Returns :
void
|
Public start |
start()
|
Returns :
void
|
emitSteps |
Type : QueryList<EmitStepComponent>
|
Decorators :
@ContentChildren(EmitStepComponent, {descendants: true})
|
import {
AfterViewInit,
Component,
ContentChildren,
Input,
OnChanges,
OnDestroy,
OnInit,
QueryList,
SimpleChanges
} from '@angular/core';
import {EmitStepComponent} from "./emit-step.component";
@Component({
selector: 'atft-timeline-emitter',
template: '<ng-content></ng-content>'
})
export class TimelineEmitterComponent implements AfterViewInit, OnDestroy, OnChanges, OnInit {
@ContentChildren(EmitStepComponent, {descendants: true}) emitSteps!: QueryList<EmitStepComponent>;
@Input() autostart = false;
constructor() {
console.log('TimelineEmitterComponent.constructor');
}
public ngAfterViewInit() {
console.log('TimelineEmitterComponent.ngAfterViewInit', this.emitSteps);
if (this.autostart) {
this.start()
}
}
ngOnDestroy(): void {
console.log('TimelineEmitterComponent.ngOnDestroy');
}
public ngOnChanges(changes: SimpleChanges) {
console.log('TimelineEmitterComponent.ngOnChanges', changes);
}
ngOnInit(): void {
console.log('TimelineEmitterComponent.ngOnInit', this.emitSteps);
}
public start() {
console.log('TimelineEmitterComponent.start');
this.emitSteps?.forEach(i => {
console.log('TimelineEmitterComponent.start setTimeout on', i.ms);
setTimeout(() => {
i.action.emit()
}, i.ms)
})
}
}