dev@423: /**
dev@423: * Created by lucast on 06/06/2017.
dev@423: */
dev@423: import {Component, Input} from '@angular/core';
dev@423: import {
dev@423: animate, keyframes, state, style, transition,
dev@423: trigger
dev@423: } from '@angular/animations';
dev@423:
dev@423: @Component({
dev@423: selector: 'ugly-action-tray',
dev@423: template: `
`,
dev@423: styles: [
dev@423: `.tray {
dev@423: background: white;
dev@428: height: calc(100vh - 64px);
dev@423: width: 100%;
dev@423: position: absolute;
dev@423: z-index: 100;
dev@425: overflow: hidden;
dev@429: -webkit-overflow-scrolling: touch;
dev@423: }`
dev@423: ],
dev@423: animations: [
dev@423: trigger('visibility', [
dev@423: state('show', style({
dev@428: height: 'calc(100vh - 64px)',
dev@425: overflow: 'scroll'
dev@423: })),
dev@423: state('hide', style({
dev@423: height: 0,
dev@425: overflow: 'hidden',
dev@423: })),
dev@423: transition('hide => show', [
dev@423: animate(300, keyframes([
dev@423: style({height: 0, offset: 0}),
dev@428: style({height: 'calc(100vh - 64px)', offset: 1.0}),
dev@423: ]))
dev@423: ]),
dev@423: transition('show => hide', [
dev@423: animate(300, keyframes([
dev@428: style({height: 'calc(100vh - 64px)', offset: 0.0}),
dev@423: style({height: 0, offset: 1.0}),
dev@423: ]))
dev@423: ]),
dev@423: ])
dev@423: ]
dev@423: })
dev@423: export class ActionTrayComponent {
dev@423: @Input() visibility: 'show' | 'hide' = 'hide';
dev@423:
dev@423: toggle() {
dev@423: this.visibility = this.visibility === 'show' ? 'hide' : 'show';
dev@423: }
dev@435:
dev@435: close() {
dev@435: this.visibility = 'hide';
dev@435: }
dev@423: }