annotate src/app/actions/action-tray.component.ts @ 428:634d51d8e114

Bodge height
author Lucas Thompson <dev@lucas.im>
date Tue, 06 Jun 2017 23:14:57 +0100
parents 78c32c94d201
children c3f35dc61765
rev   line source
dev@423 1 /**
dev@423 2 * Created by lucast on 06/06/2017.
dev@423 3 */
dev@423 4 import {Component, Input} from '@angular/core';
dev@423 5 import {
dev@423 6 animate, keyframes, state, style, transition,
dev@423 7 trigger
dev@423 8 } from '@angular/animations';
dev@423 9
dev@423 10 @Component({
dev@423 11 selector: 'ugly-action-tray',
dev@423 12 template: `<div
dev@423 13 class="tray"
dev@423 14 [@visibility]="visibility"
dev@423 15 ><ng-content></ng-content></div>`,
dev@423 16 styles: [
dev@423 17 `.tray {
dev@423 18 background: white;
dev@428 19 height: calc(100vh - 64px);
dev@423 20 width: 100%;
dev@423 21 position: absolute;
dev@423 22 z-index: 100;
dev@425 23 overflow: hidden;
dev@423 24 }`
dev@423 25 ],
dev@423 26 animations: [
dev@423 27 trigger('visibility', [
dev@423 28 state('show', style({
dev@428 29 height: 'calc(100vh - 64px)',
dev@425 30 overflow: 'scroll'
dev@423 31 })),
dev@423 32 state('hide', style({
dev@423 33 height: 0,
dev@425 34 overflow: 'hidden',
dev@423 35 })),
dev@423 36 transition('hide => show', [
dev@423 37 animate(300, keyframes([
dev@423 38 style({height: 0, offset: 0}),
dev@428 39 style({height: 'calc(100vh - 64px)', offset: 1.0}),
dev@423 40 ]))
dev@423 41 ]),
dev@423 42 transition('show => hide', [
dev@423 43 animate(300, keyframes([
dev@428 44 style({height: 'calc(100vh - 64px)', offset: 0.0}),
dev@423 45 style({height: 0, offset: 1.0}),
dev@423 46 ]))
dev@423 47 ]),
dev@423 48 ])
dev@423 49 ]
dev@423 50 })
dev@423 51 export class ActionTrayComponent {
dev@423 52 @Input() visibility: 'show' | 'hide' = 'hide';
dev@423 53
dev@423 54 toggle() {
dev@423 55 this.visibility = this.visibility === 'show' ? 'hide' : 'show';
dev@423 56 }
dev@423 57 }