<!– @license Copyright © 2015 The Polymer Project Authors. All rights reserved. This code may only be used under the BSD style license found at polymer.github.io/LICENSE.txt The complete set of authors may be found at polymer.github.io/AUTHORS.txt The complete set of contributors may be found at polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as part of the polymer project is also subject to an additional IP rights grant found at polymer.github.io/PATENTS.txt –>

<link rel=“import” href=“../../polymer/polymer.html”> <link rel=“import” href=“../neon-animation-behavior.html”> <link rel=“import” href=“../web-animations.html”>

<!– `<transform-animation>` animates a custom transform on an element. Use this to animate multiple transform properties, or to apply a custom transform value.

Configuration: “` {

name: 'transform-animation',
node: <node>,
transformOrigin: <transform-origin>,
transformFrom: <transform-from-string>,
transformTo: <transform-to-string>,
timing: <animation-timing>

} “` –>

<script>

Polymer({

  is: 'transform-animation',

  behaviors: [
    Polymer.NeonAnimationBehavior
  ],

  /**
   * @param {{
   *   node: !Element,
   *   transformOrigin: (string|undefined),
   *   transformFrom: (string|undefined),
   *   transformTo: (string|undefined),
   *   timing: (Object|undefined)
   * }} config
   */
  configure: function(config) {
    var node = config.node;
    var transformFrom = config.transformFrom || 'none';
    var transformTo = config.transformTo || 'none';

    this._effect = new KeyframeEffect(node, [
      {'transform': transformFrom},
      {'transform': transformTo}
    ], this.timingFromConfig(config));

    if (config.transformOrigin) {
      this.setPrefixedProperty(node, 'transformOrigin', config.transformOrigin);
    }

    return this._effect;
  }

});

</script>