Fix OOP <webview> resize and autosize.
[chromium-blink-merge.git] / third_party / polymer / v1_0 / components-chromium / neon-animation / neon-animation-behavior-extracted.js
bloba54bec69220706d4cda5701eb77d8f3cc16d162b
1 /**
2    * Use `Polymer.NeonAnimationBehavior` to implement an animation.
3    * @polymerBehavior
4    */
5   Polymer.NeonAnimationBehavior = {
7     properties: {
9       /**
10        * Defines the animation timing.
11        */
12       animationTiming: {
13         type: Object,
14         value: function() {
15           return {
16             duration: 500,
17             easing: 'cubic-bezier(0.4, 0, 0.2, 1)',
18             fill: 'both'
19           }
20         }
21       }
23     },
25     registered: function() {
26       new Polymer.IronMeta({type: 'animation', key: this.is, value: this.constructor});
27     },
29     /**
30      * Do any animation configuration here.
31      */
32     // configure: function(config) {
33     // },
35     /**
36      * Returns the animation timing by mixing in properties from `config` to the defaults defined
37      * by the animation.
38      */
39     timingFromConfig: function(config) {
40       if (config.timing) {
41         for (var property in config.timing) {
42           this.animationTiming[property] = config.timing[property];
43         }
44       }
45       return this.animationTiming;
46     },
48     /**
49      * Sets `transform` and `transformOrigin` properties along with the prefixed versions.
50      */
51     setPrefixedProperty: function(node, property, value) {
52       var map = {
53         'transform': ['webkitTransform'],
54         'transformOrigin': ['mozTransformOrigin', 'webkitTransformOrigin']
55       };
56       var prefixes = map[property];
57       for (var prefix, index = 0; prefix = prefixes[index]; index++) {
58         node.style[prefix] = value;
59       }
60       node.style[property] = value;
61     },
63     /**
64      * Called when the animation finishes.
65      */
66     complete: function() {}
68   };