diff options
Diffstat (limited to 'chromium/third_party/catapult/third_party/polymer2/bower_components/neon-animation/demo/tiles')
3 files changed, 297 insertions, 0 deletions
diff --git a/chromium/third_party/catapult/third_party/polymer2/bower_components/neon-animation/demo/tiles/circles-page.html b/chromium/third_party/catapult/third_party/polymer2/bower_components/neon-animation/demo/tiles/circles-page.html new file mode 100644 index 00000000000..3d7fdddca2f --- /dev/null +++ b/chromium/third_party/catapult/third_party/polymer2/bower_components/neon-animation/demo/tiles/circles-page.html @@ -0,0 +1,115 @@ +<!-- +@license +Copyright (c) 2015 The Polymer Project Authors. All rights reserved. +This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt +The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt +The complete set of contributors may be found at http://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 http://polymer.github.io/PATENTS.txt +--> +<link rel="import" href="../../../polymer/polymer.html"> +<link rel="import" href="../../../iron-flex-layout/iron-flex-layout.html"> +<link rel="import" href="../../neon-shared-element-animatable-behavior.html"> + +<dom-module id="circles-page"> + <template> + <style> + :host { + @apply --layout-horizontal; + @apply --layout-center-center; + } + + .circle { + display: inline-block; + box-sizing: border-box; + width: 100px; + height: 100px; + margin: 16px; + border-radius: 50%; + background: var(--color-one); + } + </style> + + <div> + <div class="circle"></div> + <div class="circle"></div> + <div class="circle"></div> + <div class="circle"></div> + </div> + + </template> + +</dom-module> + +<script> + + Polymer({ + + is: 'circles-page', + + behaviors: [ + Polymer.NeonSharedElementAnimatableBehavior + ], + + properties: { + + animationConfig: { + type: Object + } + }, + + listeners: { + 'click': '_onClick' + }, + + attached: function() { + if (this.animationConfig) { + return; + } + + var circles = Polymer.dom(this.root).querySelectorAll('.circle'); + var circlesArray = Array.prototype.slice.call(circles); + this.animationConfig = { + 'entry': [{ + name: 'cascaded-animation', + animation: 'scale-up-animation', + nodes: circlesArray + }], + + 'exit': [{ + name: 'hero-animation', + id: 'hero', + fromPage: this + }, { + name: 'cascaded-animation', + animation: 'scale-down-animation' + }] + }; + }, + + _onClick: function(event) { + var target = Polymer.dom(event).rootTarget; + + if (target.classList.contains('circle')) { + // configure the page animation + this.sharedElements = { + 'hero': target + }; + + var nodesToScale = []; + var circles = Polymer.dom(this.root).querySelectorAll('.circle'); + + for (var node, index = 0; node = circles[index]; index++) { + if (node !== event.target) { + nodesToScale.push(node); + } + } + + this.animationConfig['exit'][1].nodes = nodesToScale; + this.fire('circle-click'); + } + } + + }); + +</script> diff --git a/chromium/third_party/catapult/third_party/polymer2/bower_components/neon-animation/demo/tiles/index.html b/chromium/third_party/catapult/third_party/polymer2/bower_components/neon-animation/demo/tiles/index.html new file mode 100644 index 00000000000..3a46ab08cf4 --- /dev/null +++ b/chromium/third_party/catapult/third_party/polymer2/bower_components/neon-animation/demo/tiles/index.html @@ -0,0 +1,80 @@ +<!doctype html> +<!-- +@license +Copyright (c) 2015 The Polymer Project Authors. All rights reserved. +This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt +The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt +The complete set of contributors may be found at http://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 http://polymer.github.io/PATENTS.txt +--> +<html> + <head> + <title>neon-animated-pages demo: tiles</title> + + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> + <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes"> + + <script src="../../../webcomponentsjs/webcomponents-lite.js"></script> + + <link rel="import" href="../../web-animations.html"> + <link rel="import" href="../../../iron-flex-layout/iron-flex-layout.html"> + <link rel="import" href="../../neon-animated-pages.html"> + <link rel="import" href="../../neon-animations.html"> + <link rel="import" href="../../../paper-styles/color.html"> + <link rel="import" href="circles-page.html"> + <link rel="import" href="squares-page.html"> + + <custom-style> + <style is="custom-style"> + body { + overflow: hidden; + @apply --layout-fullbleed; + } + neon-animated-pages { + height: 100%; + } + + :root { + --color-one: var(--paper-cyan-300); + --color-two: var(--paper-orange-500); + } + </style> + </custom-style> + + </head> + <body> + <dom-bind> + <template is="dom-bind"> + + <neon-animated-pages id="pages" selected="0"> + <circles-page on-circle-click="_onCircleClick"></circles-page> + <squares-page on-click="_onSquaresClick"></squares-page> + </neon-animated-pages> + + </template> + </dom-bind> + + <script> + + var scope1 = document.querySelector('template[is="dom-bind"]'); + var scope2 = document.querySelector('dom-bind'); + + var _onCircleClick = function(event) { + this.$.pages.selected = 1; + }; + + var _onSquaresClick = function(event) { + this.$.pages.selected = 0; + }; + + scope1._onCircleClick = _onCircleClick; + scope1._onSquaresClick = _onSquaresClick; + scope2._onCircleClick = _onCircleClick; + scope2._onSquaresClick = _onSquaresClick; + + </script> + + </body> +</html> diff --git a/chromium/third_party/catapult/third_party/polymer2/bower_components/neon-animation/demo/tiles/squares-page.html b/chromium/third_party/catapult/third_party/polymer2/bower_components/neon-animation/demo/tiles/squares-page.html new file mode 100644 index 00000000000..5382fb1eed3 --- /dev/null +++ b/chromium/third_party/catapult/third_party/polymer2/bower_components/neon-animation/demo/tiles/squares-page.html @@ -0,0 +1,102 @@ +<!-- +@license +Copyright (c) 2015 The Polymer Project Authors. All rights reserved. +This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt +The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt +The complete set of contributors may be found at http://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 http://polymer.github.io/PATENTS.txt +--> +<link rel="import" href="../../../polymer/polymer.html"> +<link rel="import" href="../../neon-shared-element-animatable-behavior.html"> + +<dom-module id="squares-page"> + <template> + <style> + .header { + height: 40%; + background: var(--color-one); + } + + .body { + text-align: center; + padding: 8px; + } + + .square { + display: inline-block; + width: 150px; + height: 150px; + margin: 8px; + background: var(--color-two); + } + </style> + + <div id="header" class="header"></div> + + <div class="body"> + <div class="square"></div> + <div class="square"></div> + <div class="square"></div> + <div class="square"></div> + </div> + + </template> + +</dom-module> + +<script> + + Polymer({ + + is: 'squares-page', + + behaviors: [ + Polymer.NeonSharedElementAnimatableBehavior + ], + + properties: { + + sharedElements: { + type: Object + }, + + animationConfig: { + type: Object + } + }, + + attached: function() { + if (this.animationConfig) { + return; + } + + this.sharedElements = { 'hero': this.$.header }; + var squares = Polymer.dom(this.root).querySelectorAll('.square'); + var squaresArray = Array.prototype.slice.call(squares); + this.animationConfig = { + 'entry': [{ + name: 'hero-animation', + id: 'hero', + toPage: this + }, { + name: 'cascaded-animation', + animation: 'transform-animation', + transformFrom: 'translateY(100%)', + nodes: squaresArray + }], + + 'exit': [{ + name: 'slide-up-animation', + node: this.$.header + }, { + name: 'cascaded-animation', + animation: 'transform-animation', + transformTo: 'translateY(60vh)', + nodes: squaresArray + }] + }; + } + }); + +</script> |