1<!-- 2@license 3Copyright (c) 2015 The Polymer Project Authors. All rights reserved. 4This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt 5The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt 6The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt 7Code distributed by Google as part of the polymer project is also 8subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt 9--> 10 11<link rel="import" href="../polymer/polymer.html"> 12<link rel="import" href="neon-animation-behavior.html"> 13 14<script> 15 16 /** 17 * Use `Polymer.NeonSharedElementAnimationBehavior` to implement shared element animations. 18 * @polymerBehavior Polymer.NeonSharedElementAnimationBehavior 19 */ 20 Polymer.NeonSharedElementAnimationBehaviorImpl = { 21 22 properties: { 23 24 /** 25 * Cached copy of shared elements. 26 */ 27 sharedElements: { 28 type: Object 29 } 30 31 }, 32 33 /** 34 * Finds shared elements based on `config`. 35 */ 36 findSharedElements: function(config) { 37 var fromPage = config.fromPage; 38 var toPage = config.toPage; 39 if (!fromPage || !toPage) { 40 console.warn(this.is + ':', !fromPage ? 'fromPage' : 'toPage', 'is undefined!'); 41 return null; 42 }; 43 44 if (!fromPage.sharedElements || !toPage.sharedElements) { 45 console.warn(this.is + ':', 'sharedElements are undefined for', !fromPage.sharedElements ? fromPage : toPage); 46 return null; 47 }; 48 49 var from = fromPage.sharedElements[config.id] 50 var to = toPage.sharedElements[config.id]; 51 52 if (!from || !to) { 53 console.warn(this.is + ':', 'sharedElement with id', config.id, 'not found in', !from ? fromPage : toPage); 54 return null; 55 } 56 57 this.sharedElements = { 58 from: from, 59 to: to 60 }; 61 return this.sharedElements; 62 } 63 64 }; 65 66 /** @polymerBehavior Polymer.NeonSharedElementAnimationBehavior */ 67 Polymer.NeonSharedElementAnimationBehavior = [ 68 Polymer.NeonAnimationBehavior, 69 Polymer.NeonSharedElementAnimationBehaviorImpl 70 ]; 71 72</script> 73