annotate src/app/actions/action-tray.component.ts @ 423:4387175f594b
Basic action tray for feature analysis. WIP, bit buggy wrt scrolling and not dismissed automatically when extractor selected.
author |
Lucas Thompson <dev@lucas.im> |
date |
Tue, 06 Jun 2017 18:11:30 +0100 |
parents |
|
children |
78c32c94d201 |
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@423
|
19 height: 100%;
|
dev@423
|
20 width: 100%;
|
dev@423
|
21 position: absolute;
|
dev@423
|
22 z-index: 100;
|
dev@423
|
23 overflow-y: hidden;
|
dev@423
|
24 }`
|
dev@423
|
25 ],
|
dev@423
|
26 animations: [
|
dev@423
|
27 trigger('visibility', [
|
dev@423
|
28 state('show', style({
|
dev@423
|
29 height: '100%',
|
dev@423
|
30 'overflow-y': 'scroll'
|
dev@423
|
31 })),
|
dev@423
|
32 state('hide', style({
|
dev@423
|
33 height: 0,
|
dev@423
|
34 'overflow-y': '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@423
|
39 style({height: '100%', offset: 1.0}),
|
dev@423
|
40 ]))
|
dev@423
|
41 ]),
|
dev@423
|
42 transition('show => hide', [
|
dev@423
|
43 animate(300, keyframes([
|
dev@423
|
44 style({height: '100%', 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 }
|