117 lines
4.5 KiB
TypeScript
117 lines
4.5 KiB
TypeScript
import { Component } from '@angular/core';
|
|
|
|
import { Heroes } from './hero.service';
|
|
import { HeroListBasicComponent } from './hero-list-basic.component';
|
|
import { HeroListInlineStylesComponent } from './hero-list-inline-styles.component';
|
|
import { HeroListEnterLeaveComponent } from './hero-list-enter-leave.component';
|
|
import { HeroListEnterLeaveStatesComponent } from './hero-list-enter-leave-states.component';
|
|
import { HeroListCombinedTransitionsComponent } from './hero-list-combined-transitions.component';
|
|
import { HeroListTwowayComponent } from './hero-list-twoway.component';
|
|
import { HeroListAutoComponent } from './hero-list-auto.component';
|
|
import { HeroListGroupsComponent } from './hero-list-groups.component';
|
|
import { HeroListMultistepComponent } from './hero-list-multistep.component';
|
|
import { HeroListTimingsComponent } from './hero-list-timings.component';
|
|
|
|
@Component({
|
|
selector: 'hero-team-builder',
|
|
template: `
|
|
<div class="buttons">
|
|
<button [disabled]="!heroes.canAdd()" (click)="heroes.addInactive()">Add inactive hero</button>
|
|
<button [disabled]="!heroes.canAdd()" (click)="heroes.addActive()">Add active hero</button>
|
|
<button [disabled]="!heroes.canRemove()" (click)="heroes.remove()">Remove hero</button>
|
|
</div>
|
|
<div class="columns">
|
|
<div class="column">
|
|
<h4>Basic State</h4>
|
|
<p>Switch between active/inactive on click.</p>
|
|
<hero-list-basic [heroes]=heroes></hero-list-basic>
|
|
</div>
|
|
<div class="column">
|
|
<h4>Styles inline in transitions</h4>
|
|
<p>Animated effect on click, no persistend end styles.</p>
|
|
<hero-list-inline-styles [heroes]=heroes></hero-list-inline-styles>
|
|
</div>
|
|
<div class="column">
|
|
<h4>Combined transition syntax</h4>
|
|
<p>Switch between active/inactive on click. Define just one transition used in both directions.</p>
|
|
<hero-list-combined-transitions [heroes]=heroes></hero-list-combined-transitions>
|
|
</div>
|
|
<div class="column">
|
|
<h4>Two-way transition syntax</h4>
|
|
<p>Switch between active/inactive on click. Define just one transition used in both directions using the <=> syntax.</p>
|
|
<hero-list-twoway [heroes]=heroes></hero-list-twoway>
|
|
</div>
|
|
<div class="column">
|
|
<h4>Enter & Leave</h4>
|
|
<p>Enter and leave animations using the void state.</p>
|
|
<hero-list-enter-leave [heroes]=heroes></hero-list-enter-leave>
|
|
</div>
|
|
</div>
|
|
<div class="columns">
|
|
<div class="column">
|
|
<h4>Enter & Leave & States</h4>
|
|
<p>
|
|
Enter and leave animations combined with active/inactive state animations.
|
|
Different enter and leave transitions depending on state.
|
|
</p>
|
|
<hero-list-enter-leave-states [heroes]=heroes></hero-list-enter-leave-states>
|
|
</div>
|
|
<div class="column">
|
|
<h4>Auto Style Calc</h4>
|
|
<p>Leave animation from the current computed height using the auto-style value *.</p>
|
|
<hero-list-auto [heroes]=heroes></hero-list-auto>
|
|
</div>
|
|
<div class="column">
|
|
<h4>Different Timings</h4>
|
|
<p>Enter and leave animations with different easings, ease-in for enter, ease-out for leave.</p>
|
|
<hero-list-timings [heroes]=heroes></hero-list-timings>
|
|
</div>
|
|
<div class="column">
|
|
<h4>Multiple Keyframes</h4>
|
|
<p>Enter and leave animations with three keyframes in each, to give the transition some bounce.</p>
|
|
<hero-list-multistep [heroes]=heroes></hero-list-multistep>
|
|
</div>
|
|
<div class="column">
|
|
<h4>Parallel Groups</h4>
|
|
<p>Enter and leave animations with multiple properties animated in parallel with different timings.</p>
|
|
<hero-list-groups [heroes]=heroes></hero-list-groups>
|
|
</div>
|
|
</div>
|
|
`,
|
|
styles: [`
|
|
.buttons {
|
|
text-align: center;
|
|
}
|
|
button {
|
|
padding: 1.5em 3em;
|
|
}
|
|
.columns {
|
|
display: flex;
|
|
flex-direction: row;
|
|
}
|
|
.column {
|
|
flex: 1;
|
|
padding: 10px;
|
|
}
|
|
.column p {
|
|
min-height: 6em;
|
|
}
|
|
`],
|
|
directives: [
|
|
HeroListBasicComponent,
|
|
HeroListInlineStylesComponent,
|
|
HeroListCombinedTransitionsComponent,
|
|
HeroListTwowayComponent,
|
|
HeroListEnterLeaveComponent,
|
|
HeroListEnterLeaveStatesComponent,
|
|
HeroListAutoComponent,
|
|
HeroListTimingsComponent,
|
|
HeroListMultistepComponent,
|
|
HeroListGroupsComponent
|
|
],
|
|
providers: [Heroes]
|
|
})
|
|
export class HeroTeamBuilderComponent {
|
|
constructor(private heroes: Heroes) { }
|
|
}
|