Allow only one bookmark to be added for multiple fast starring
[chromium-blink-merge.git] / chrome / browser / resources / pdf / elements / viewer-zoom-toolbar / viewer-zoom-button.js
blob2491b06188c0ddf0a6d8704f76525469edbca916
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 Polymer({
6   is: 'viewer-zoom-button',
8   behaviors: [
9     Polymer.NeonAnimationRunnerBehavior
10   ],
12   properties: {
13     icon: String,
15     opened: {
16       type: Boolean,
17       value: true
18     },
20     delay: Number,
22     animationConfig: {
23       type: Object,
24       computed: 'computeAnimationConfig(delay)'
25     }
26   },
28   computeAnimationConfig: function(delay) {
29     return {
30       'entry': {
31         name: 'transform-animation',
32         node: this,
33         timing: {
34           easing: 'cubic-bezier(0, 0, 0.2, 1)',
35           duration: 250,
36           delay: delay
37         },
38         transformFrom: 'translateX(100%)'
39       },
40       'exit': {
41         name: 'transform-animation',
42         node: this,
43         timing: {
44           easing: 'cubic-bezier(0.4, 0, 1, 1)',
45           duration: 250,
46           delay: delay
47         },
48         transformTo: 'translateX(100%)'
49       }
50     };
51   },
53   listeners: {
54     'neon-animation-finish': '_onAnimationFinished'
55   },
57   _onAnimationFinished: function() {
58     this.style.transform = this.opened ? 'none' : 'translateX(100%)';
59   },
61   show: function() {
62     if (!this.opened) {
63       this.toggle_();
64     }
65   },
67   hide: function() {
68     if (this.opened)
69       this.toggle_();
70   },
72   toggle_: function() {
73     this.opened = !this.opened;
74     this.cancelAnimation();
75     this.playAnimation(this.opened ? 'entry' : 'exit');
76   },
77 });