polymer-paper-elements-rails 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +51 -0
- data/Rakefile +1 -0
- data/app/assets/components/iron-a11y-announcer/iron-a11y-announcer.html +125 -0
- data/app/assets/components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html +418 -0
- data/app/assets/components/iron-autogrow-textarea/hero.svg +33 -0
- data/app/assets/components/iron-autogrow-textarea/iron-autogrow-textarea.html +263 -0
- data/app/assets/components/iron-behaviors/iron-button-state.html +195 -0
- data/app/assets/components/iron-behaviors/iron-control-state.html +102 -0
- data/app/assets/components/iron-fit-behavior/iron-fit-behavior.html +230 -0
- data/app/assets/components/iron-flex-layout/classes/iron-flex-layout.html +307 -0
- data/app/assets/components/iron-flex-layout/classes/iron-shadow-flex-layout.html +302 -0
- data/app/assets/components/iron-flex-layout/iron-flex-layout.html +313 -0
- data/app/assets/components/iron-form-element-behavior/iron-form-element-behavior.html +50 -0
- data/app/assets/components/iron-icon/hero.svg +19 -0
- data/app/assets/components/iron-icon/iron-icon.html +187 -0
- data/app/assets/components/iron-icons/av-icons.html +73 -0
- data/app/assets/components/iron-icons/communication-icons.html +59 -0
- data/app/assets/components/iron-icons/device-icons.html +94 -0
- data/app/assets/components/iron-icons/editor-icons.html +70 -0
- data/app/assets/components/iron-icons/hardware-icons.html +61 -0
- data/app/assets/components/iron-icons/hero.svg +35 -0
- data/app/assets/components/iron-icons/image-icons.html +164 -0
- data/app/assets/components/iron-icons/iron-icons.html +303 -0
- data/app/assets/components/iron-icons/maps-icons.html +71 -0
- data/app/assets/components/iron-icons/notification-icons.html +62 -0
- data/app/assets/components/iron-icons/social-icons.html +40 -0
- data/app/assets/components/iron-iconset-svg/iron-iconset-svg.html +191 -0
- data/app/assets/components/iron-input/hero.svg +19 -0
- data/app/assets/components/iron-input/iron-input.html +235 -0
- data/app/assets/components/iron-media-query/hero.svg +29 -0
- data/app/assets/components/iron-media-query/iron-media-query.html +84 -0
- data/app/assets/components/iron-menu-behavior/iron-menu-behavior.html +214 -0
- data/app/assets/components/iron-menu-behavior/iron-menubar-behavior.html +65 -0
- data/app/assets/components/iron-meta/hero.svg +33 -0
- data/app/assets/components/iron-meta/iron-meta.html +352 -0
- data/app/assets/components/iron-overlay-behavior/iron-overlay-backdrop.html +132 -0
- data/app/assets/components/iron-overlay-behavior/iron-overlay-behavior.html +432 -0
- data/app/assets/components/iron-overlay-behavior/iron-overlay-manager.html +107 -0
- data/app/assets/components/iron-range-behavior/iron-range-behavior.html +101 -0
- data/app/assets/components/iron-resizable-behavior/iron-resizable-behavior.html +139 -0
- data/app/assets/components/iron-selector/iron-multi-selectable.html +120 -0
- data/app/assets/components/iron-selector/iron-selectable.html +307 -0
- data/app/assets/components/iron-selector/iron-selection.html +115 -0
- data/app/assets/components/iron-selector/iron-selector.html +71 -0
- data/app/assets/components/iron-validatable-behavior/iron-validatable-behavior.html +100 -0
- data/app/assets/components/neon-animation/animations/cascaded-animation.html +84 -0
- data/app/assets/components/neon-animation/animations/fade-in-animation.html +49 -0
- data/app/assets/components/neon-animation/animations/fade-out-animation.html +49 -0
- data/app/assets/components/neon-animation/animations/hero-animation.html +83 -0
- data/app/assets/components/neon-animation/animations/opaque-animation.html +46 -0
- data/app/assets/components/neon-animation/animations/ripple-animation.html +92 -0
- data/app/assets/components/neon-animation/animations/scale-down-animation.html +65 -0
- data/app/assets/components/neon-animation/animations/scale-up-animation.html +58 -0
- data/app/assets/components/neon-animation/animations/slide-down-animation.html +59 -0
- data/app/assets/components/neon-animation/animations/slide-from-left-animation.html +60 -0
- data/app/assets/components/neon-animation/animations/slide-from-right-animation.html +60 -0
- data/app/assets/components/neon-animation/animations/slide-left-animation.html +59 -0
- data/app/assets/components/neon-animation/animations/slide-right-animation.html +59 -0
- data/app/assets/components/neon-animation/animations/slide-up-animation.html +59 -0
- data/app/assets/components/neon-animation/animations/transform-animation.html +61 -0
- data/app/assets/components/neon-animation/guides/neon-animation.md +313 -0
- data/app/assets/components/neon-animation/neon-animatable-behavior.html +156 -0
- data/app/assets/components/neon-animation/neon-animatable.html +54 -0
- data/app/assets/components/neon-animation/neon-animated-pages.html +208 -0
- data/app/assets/components/neon-animation/neon-animation-behavior.html +88 -0
- data/app/assets/components/neon-animation/neon-animation-runner-behavior.html +110 -0
- data/app/assets/components/neon-animation/neon-animation.html +17 -0
- data/app/assets/components/neon-animation/neon-animations.html +25 -0
- data/app/assets/components/neon-animation/neon-shared-element-animatable-behavior.html +37 -0
- data/app/assets/components/neon-animation/neon-shared-element-animation-behavior.html +66 -0
- data/app/assets/components/neon-animation/web-animations.html +11 -0
- data/app/assets/components/paper-behaviors/paper-button-behavior.html +55 -0
- data/app/assets/components/paper-behaviors/paper-inky-focus-behavior.html +44 -0
- data/app/assets/components/paper-button/paper-button.html +177 -0
- data/app/assets/components/paper-checkbox/metadata.html +17 -0
- data/app/assets/components/paper-checkbox/paper-checkbox.css +149 -0
- data/app/assets/components/paper-checkbox/paper-checkbox.html +163 -0
- data/app/assets/components/paper-dialog-behavior/hero.svg +51 -0
- data/app/assets/components/paper-dialog-behavior/paper-dialog-behavior.html +236 -0
- data/app/assets/components/paper-dialog-behavior/paper-dialog-common.css +58 -0
- data/app/assets/components/paper-dialog-scrollable/hero.svg +69 -0
- data/app/assets/components/paper-dialog-scrollable/paper-dialog-scrollable.html +150 -0
- data/app/assets/components/paper-dialog/hero.svg +58 -0
- data/app/assets/components/paper-dialog/paper-dialog.html +122 -0
- data/app/assets/components/paper-drawer-panel/hero.svg +21 -0
- data/app/assets/components/paper-drawer-panel/paper-drawer-panel.css +142 -0
- data/app/assets/components/paper-drawer-panel/paper-drawer-panel.html +585 -0
- data/app/assets/components/paper-fab/paper-fab.html +159 -0
- data/app/assets/components/paper-header-panel/hero.svg +38 -0
- data/app/assets/components/paper-header-panel/paper-header-panel.html +496 -0
- data/app/assets/components/paper-icon-button/paper-icon-button.html +141 -0
- data/app/assets/components/paper-input/all-imports.html +12 -0
- data/app/assets/components/paper-input/hero.svg +19 -0
- data/app/assets/components/paper-input/paper-input-addon-behavior.html +43 -0
- data/app/assets/components/paper-input/paper-input-behavior.html +293 -0
- data/app/assets/components/paper-input/paper-input-char-counter.html +95 -0
- data/app/assets/components/paper-input/paper-input-container.html +495 -0
- data/app/assets/components/paper-input/paper-input-error.html +99 -0
- data/app/assets/components/paper-input/paper-input.html +126 -0
- data/app/assets/components/paper-input/paper-textarea.html +100 -0
- data/app/assets/components/paper-item/all-imports.html +13 -0
- data/app/assets/components/paper-item/paper-icon-item.html +86 -0
- data/app/assets/components/paper-item/paper-item-body.html +93 -0
- data/app/assets/components/paper-item/paper-item-shared.css +19 -0
- data/app/assets/components/paper-item/paper-item.html +95 -0
- data/app/assets/components/paper-material/paper-material.html +98 -0
- data/app/assets/components/paper-menu/hero.svg +35 -0
- data/app/assets/components/paper-menu/paper-menu.html +133 -0
- data/app/assets/components/paper-progress/hero.svg +21 -0
- data/app/assets/components/paper-progress/paper-progress.html +199 -0
- data/app/assets/components/paper-radio-button/hero.svg +22 -0
- data/app/assets/components/paper-radio-button/paper-radio-button.css +109 -0
- data/app/assets/components/paper-radio-button/paper-radio-button.html +148 -0
- data/app/assets/components/paper-radio-group/hero.svg +25 -0
- data/app/assets/components/paper-radio-group/paper-radio-group.html +186 -0
- data/app/assets/components/paper-ripple/hero.svg +30 -0
- data/app/assets/components/paper-ripple/paper-ripple.html +714 -0
- data/app/assets/components/paper-scroll-header-panel/hero.svg +41 -0
- data/app/assets/components/paper-scroll-header-panel/paper-scroll-header-panel.html +455 -0
- data/app/assets/components/paper-slider/hero.svg +20 -0
- data/app/assets/components/paper-slider/paper-slider.css +252 -0
- data/app/assets/components/paper-slider/paper-slider.html +449 -0
- data/app/assets/components/paper-spinner/hero.svg +27 -0
- data/app/assets/components/paper-spinner/paper-spinner.css +325 -0
- data/app/assets/components/paper-spinner/paper-spinner.html +222 -0
- data/app/assets/components/paper-styles/classes/global.html +96 -0
- data/app/assets/components/paper-styles/classes/shadow-layout.html +302 -0
- data/app/assets/components/paper-styles/classes/shadow.html +39 -0
- data/app/assets/components/paper-styles/classes/typography.html +171 -0
- data/app/assets/components/paper-styles/color.html +333 -0
- data/app/assets/components/paper-styles/default-theme.html +39 -0
- data/app/assets/components/paper-styles/paper-styles-classes.html +14 -0
- data/app/assets/components/paper-styles/paper-styles.html +17 -0
- data/app/assets/components/paper-styles/shadow.html +61 -0
- data/app/assets/components/paper-styles/typography.html +240 -0
- data/app/assets/components/paper-tabs/hero.svg +23 -0
- data/app/assets/components/paper-tabs/paper-tab.html +158 -0
- data/app/assets/components/paper-tabs/paper-tabs-icons.html +18 -0
- data/app/assets/components/paper-tabs/paper-tabs.html +483 -0
- data/app/assets/components/paper-toast/hero.svg +20 -0
- data/app/assets/components/paper-toast/paper-toast.html +164 -0
- data/app/assets/components/paper-toggle-button/hero.svg +22 -0
- data/app/assets/components/paper-toggle-button/paper-toggle-button.css +108 -0
- data/app/assets/components/paper-toggle-button/paper-toggle-button.html +183 -0
- data/app/assets/components/paper-toolbar/paper-toolbar.html +375 -0
- data/app/assets/components/polymer-gestures/Gruntfile.js +60 -0
- data/app/assets/components/polymer-gestures/banner.txt +9 -0
- data/app/assets/components/polymer-gestures/build.json +17 -0
- data/app/assets/components/polymer-gestures/conf/karma.conf.js +39 -0
- data/app/assets/components/polymer-gestures/package.json +20 -0
- data/app/assets/components/polymer-gestures/polymer-gestures.html +21 -0
- data/app/assets/components/polymer-gestures/polymer-gestures.js +46 -0
- data/app/assets/components/polymer-gestures/src/dispatcher.js +474 -0
- data/app/assets/components/polymer-gestures/src/eventFactory.js +127 -0
- data/app/assets/components/polymer-gestures/src/hold.js +129 -0
- data/app/assets/components/polymer-gestures/src/mouse.js +135 -0
- data/app/assets/components/polymer-gestures/src/ms.js +80 -0
- data/app/assets/components/polymer-gestures/src/pinch.js +186 -0
- data/app/assets/components/polymer-gestures/src/platform-events.js +39 -0
- data/app/assets/components/polymer-gestures/src/pointer.js +68 -0
- data/app/assets/components/polymer-gestures/src/pointermap.js +67 -0
- data/app/assets/components/polymer-gestures/src/scope.js +10 -0
- data/app/assets/components/polymer-gestures/src/tap.js +103 -0
- data/app/assets/components/polymer-gestures/src/targetfind.js +244 -0
- data/app/assets/components/polymer-gestures/src/touch-action.js +60 -0
- data/app/assets/components/polymer-gestures/src/touch.js +341 -0
- data/app/assets/components/polymer-gestures/src/track.js +230 -0
- data/app/assets/components/web-animations-js/web-animations-next-lite.min.js +17 -0
- data/app/assets/components/web-animations-js/web-animations-next.min.js +17 -0
- data/app/assets/components/web-animations-js/web-animations.min.js +17 -0
- data/app/assets/components/webcomponentsjs/CustomElements.js +956 -0
- data/app/assets/components/webcomponentsjs/CustomElements.min.js +11 -0
- data/app/assets/components/webcomponentsjs/HTMLImports.js +1078 -0
- data/app/assets/components/webcomponentsjs/HTMLImports.min.js +11 -0
- data/app/assets/components/webcomponentsjs/MutationObserver.js +344 -0
- data/app/assets/components/webcomponentsjs/MutationObserver.min.js +11 -0
- data/app/assets/components/webcomponentsjs/ShadowDOM.js +4414 -0
- data/app/assets/components/webcomponentsjs/ShadowDOM.min.js +15 -0
- data/app/assets/components/webcomponentsjs/package.json +31 -0
- data/app/assets/components/webcomponentsjs/webcomponents-lite.js +2300 -0
- data/app/assets/components/webcomponentsjs/webcomponents-lite.min.js +13 -0
- data/app/assets/components/webcomponentsjs/webcomponents.js +7112 -0
- data/app/assets/components/webcomponentsjs/webcomponents.min.js +15 -0
- data/lib/polymer-paper-elements-rails.rb +2 -0
- data/lib/polymer-paper-elements-rails/engine.rb +4 -0
- data/lib/polymer-paper-elements-rails/version.rb +3 -0
- metadata +272 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
|
|
3
|
+
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
|
4
|
+
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
|
5
|
+
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
|
6
|
+
Code distributed by Google as part of the polymer project is also
|
|
7
|
+
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
|
|
8
|
+
-->
|
|
9
|
+
|
|
10
|
+
<link rel="import" href="../polymer/polymer.html">
|
|
11
|
+
<link rel="import" href="neon-animatable-behavior.html">
|
|
12
|
+
|
|
13
|
+
<!--
|
|
14
|
+
`<neon-animatable>` is a simple container element implementing `Polymer.NeonAnimatableBehavior`. This is a convenience element for use with `<neon-animated-pages>`.
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
<neon-animated-pages selected="0"
|
|
18
|
+
entry-animation="slide-from-right-animation"
|
|
19
|
+
exit-animation="slide-left-animation">
|
|
20
|
+
<neon-animatable>1</neon-animatable>
|
|
21
|
+
<neon-animatable>2</neon-animatable>
|
|
22
|
+
</neon-animated-pages>
|
|
23
|
+
```
|
|
24
|
+
-->
|
|
25
|
+
|
|
26
|
+
<dom-module id="neon-animatable">
|
|
27
|
+
|
|
28
|
+
<style>
|
|
29
|
+
|
|
30
|
+
:host {
|
|
31
|
+
display: block;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
</style>
|
|
35
|
+
|
|
36
|
+
<template>
|
|
37
|
+
<content></content>
|
|
38
|
+
</template>
|
|
39
|
+
|
|
40
|
+
</dom-module>
|
|
41
|
+
|
|
42
|
+
<script>
|
|
43
|
+
|
|
44
|
+
Polymer({
|
|
45
|
+
|
|
46
|
+
is: 'neon-animatable',
|
|
47
|
+
|
|
48
|
+
behaviors: [
|
|
49
|
+
Polymer.NeonAnimatableBehavior
|
|
50
|
+
]
|
|
51
|
+
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
</script>
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
|
|
3
|
+
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
|
4
|
+
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
|
5
|
+
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
|
6
|
+
Code distributed by Google as part of the polymer project is also
|
|
7
|
+
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
|
|
8
|
+
-->
|
|
9
|
+
<link rel="import" href="../polymer/polymer.html">
|
|
10
|
+
<link rel="import" href="../iron-resizable-behavior/iron-resizable-behavior.html">
|
|
11
|
+
<link rel="import" href="../iron-selector/iron-selectable.html">
|
|
12
|
+
<link rel="import" href="../paper-styles/paper-styles.html">
|
|
13
|
+
<link rel="import" href="neon-animation-runner-behavior.html">
|
|
14
|
+
<link rel="import" href="animations/opaque-animation.html">
|
|
15
|
+
|
|
16
|
+
<!--
|
|
17
|
+
`neon-animated-pages` manages a set of pages and runs an animation when switching between them. Its
|
|
18
|
+
children pages should implement `Polymer.NeonAnimatableBehavior` and define `entry` and `exit`
|
|
19
|
+
animations to be run when switching to or switching out of the page.
|
|
20
|
+
|
|
21
|
+
@group Neon Elements
|
|
22
|
+
@element neon-animated-pages
|
|
23
|
+
@demo demo/index.html
|
|
24
|
+
-->
|
|
25
|
+
|
|
26
|
+
<dom-module id="neon-animated-pages">
|
|
27
|
+
|
|
28
|
+
<style>
|
|
29
|
+
|
|
30
|
+
:host {
|
|
31
|
+
display: block;
|
|
32
|
+
position: relative;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
:host > ::content > * {
|
|
36
|
+
@apply(--layout-fit);
|
|
37
|
+
height: 100%;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
:host > ::content > :not(.iron-selected):not(.neon-animating) {
|
|
41
|
+
display: none !important;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
:host > ::content > .neon-animating {
|
|
45
|
+
pointer-events: none;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
</style>
|
|
49
|
+
|
|
50
|
+
<template>
|
|
51
|
+
<content id="content"></content>
|
|
52
|
+
</template>
|
|
53
|
+
|
|
54
|
+
</dom-module>
|
|
55
|
+
|
|
56
|
+
<script>
|
|
57
|
+
(function() {
|
|
58
|
+
|
|
59
|
+
Polymer({
|
|
60
|
+
|
|
61
|
+
is: 'neon-animated-pages',
|
|
62
|
+
|
|
63
|
+
behaviors: [
|
|
64
|
+
Polymer.IronResizableBehavior,
|
|
65
|
+
Polymer.IronSelectableBehavior,
|
|
66
|
+
Polymer.NeonAnimationRunnerBehavior
|
|
67
|
+
],
|
|
68
|
+
|
|
69
|
+
properties: {
|
|
70
|
+
|
|
71
|
+
activateEvent: {
|
|
72
|
+
type: String,
|
|
73
|
+
value: ''
|
|
74
|
+
},
|
|
75
|
+
|
|
76
|
+
// if true, the initial page selection will also be animated according to its animation config.
|
|
77
|
+
animateInitialSelection: {
|
|
78
|
+
type: Boolean,
|
|
79
|
+
value: false
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
},
|
|
83
|
+
|
|
84
|
+
observers: [
|
|
85
|
+
'_selectedChanged(selected)'
|
|
86
|
+
],
|
|
87
|
+
|
|
88
|
+
listeners: {
|
|
89
|
+
'neon-animation-finish': '_onNeonAnimationFinish'
|
|
90
|
+
},
|
|
91
|
+
|
|
92
|
+
_selectedChanged: function(selected) {
|
|
93
|
+
|
|
94
|
+
var selectedPage = this.selectedItem;
|
|
95
|
+
var oldPage = this._prevSelected || false;
|
|
96
|
+
this._prevSelected = selectedPage;
|
|
97
|
+
|
|
98
|
+
// on initial load and if animateInitialSelection is negated, simply display selectedPage.
|
|
99
|
+
if (!oldPage && !this.animateInitialSelection) {
|
|
100
|
+
this._completeSelectedChanged();
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// insert safari fix.
|
|
105
|
+
this.animationConfig = [{
|
|
106
|
+
name: 'opaque-animation',
|
|
107
|
+
node: selectedPage
|
|
108
|
+
}];
|
|
109
|
+
|
|
110
|
+
// configure selectedPage animations.
|
|
111
|
+
if (this.entryAnimation) {
|
|
112
|
+
this.animationConfig.push({
|
|
113
|
+
name: this.entryAnimation,
|
|
114
|
+
node: selectedPage
|
|
115
|
+
});
|
|
116
|
+
} else {
|
|
117
|
+
if (selectedPage.getAnimationConfig) {
|
|
118
|
+
this.animationConfig.push({
|
|
119
|
+
animatable: selectedPage,
|
|
120
|
+
type: 'entry'
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// configure oldPage animations iff exists.
|
|
126
|
+
if (oldPage) {
|
|
127
|
+
|
|
128
|
+
// cancel the currently running animation if one is ongoing.
|
|
129
|
+
if (oldPage.classList.contains('neon-animating')) {
|
|
130
|
+
this._squelchNextFinishEvent = true;
|
|
131
|
+
this.cancelAnimation();
|
|
132
|
+
this._completeSelectedChanged();
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// configure the animation.
|
|
136
|
+
if (this.exitAnimation) {
|
|
137
|
+
this.animationConfig.push({
|
|
138
|
+
name: this.exitAnimation,
|
|
139
|
+
node: oldPage
|
|
140
|
+
});
|
|
141
|
+
} else {
|
|
142
|
+
if (oldPage.getAnimationConfig) {
|
|
143
|
+
this.animationConfig.push({
|
|
144
|
+
animatable: oldPage,
|
|
145
|
+
type: 'exit'
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// display the oldPage during the transition.
|
|
151
|
+
oldPage.classList.add('neon-animating');
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// display the selectedPage during the transition.
|
|
155
|
+
selectedPage.classList.add('neon-animating');
|
|
156
|
+
|
|
157
|
+
// actually run the animations.
|
|
158
|
+
if (this.animationConfig.length > 1) {
|
|
159
|
+
|
|
160
|
+
// on first load, ensure we run animations only after element is attached.
|
|
161
|
+
if (!this.isAttached) {
|
|
162
|
+
this.async(function () {
|
|
163
|
+
this.playAnimation(null, {
|
|
164
|
+
fromPage: null,
|
|
165
|
+
toPage: selectedPage
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
} else {
|
|
170
|
+
this.playAnimation(null, {
|
|
171
|
+
fromPage: oldPage,
|
|
172
|
+
toPage: selectedPage
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
} else {
|
|
177
|
+
this._completeSelectedChanged(oldPage, selectedPage);
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
|
|
181
|
+
_completeSelectedChanged: function(oldPage, selectedPage) {
|
|
182
|
+
if (selectedPage) {
|
|
183
|
+
selectedPage.classList.remove('neon-animating');
|
|
184
|
+
}
|
|
185
|
+
if (oldPage) {
|
|
186
|
+
oldPage.classList.remove('neon-animating');
|
|
187
|
+
}
|
|
188
|
+
if (!selectedPage || !oldPage) {
|
|
189
|
+
var nodes = Polymer.dom(this.$.content).getDistributedNodes();
|
|
190
|
+
for (var node, index = 0; node = nodes[index]; index++) {
|
|
191
|
+
node.classList && node.classList.remove('neon-animating');
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
this.async(this.notifyResize);
|
|
195
|
+
},
|
|
196
|
+
|
|
197
|
+
_onNeonAnimationFinish: function(event) {
|
|
198
|
+
if (this._squelchNextFinishEvent) {
|
|
199
|
+
this._squelchNextFinishEvent = false;
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
this._completeSelectedChanged(event.detail.fromPage, event.detail.toPage);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
})
|
|
206
|
+
|
|
207
|
+
})();
|
|
208
|
+
</script>
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@license
|
|
3
|
+
Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
|
|
4
|
+
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
|
5
|
+
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
|
6
|
+
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
|
7
|
+
Code distributed by Google as part of the polymer project is also
|
|
8
|
+
subject 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="../iron-meta/iron-meta.html">
|
|
13
|
+
|
|
14
|
+
<script>
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Use `Polymer.NeonAnimationBehavior` to implement an animation.
|
|
18
|
+
* @polymerBehavior
|
|
19
|
+
*/
|
|
20
|
+
Polymer.NeonAnimationBehavior = {
|
|
21
|
+
|
|
22
|
+
properties: {
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Defines the animation timing.
|
|
26
|
+
*/
|
|
27
|
+
animationTiming: {
|
|
28
|
+
type: Object,
|
|
29
|
+
value: function() {
|
|
30
|
+
return {
|
|
31
|
+
duration: 500,
|
|
32
|
+
easing: 'cubic-bezier(0.4, 0, 0.2, 1)',
|
|
33
|
+
fill: 'both'
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
},
|
|
39
|
+
|
|
40
|
+
registered: function() {
|
|
41
|
+
new Polymer.IronMeta({type: 'animation', key: this.is, value: this.constructor});
|
|
42
|
+
},
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Do any animation configuration here.
|
|
46
|
+
*/
|
|
47
|
+
// configure: function(config) {
|
|
48
|
+
// },
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Returns the animation timing by mixing in properties from `config` to the defaults defined
|
|
52
|
+
* by the animation.
|
|
53
|
+
*/
|
|
54
|
+
timingFromConfig: function(config) {
|
|
55
|
+
if (config.timing) {
|
|
56
|
+
for (var property in config.timing) {
|
|
57
|
+
this.animationTiming[property] = config.timing[property];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return this.animationTiming;
|
|
61
|
+
},
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Sets `transform` and `transformOrigin` properties along with the prefixed versions.
|
|
65
|
+
*/
|
|
66
|
+
setPrefixedProperty: function(node, property, value) {
|
|
67
|
+
var map = {
|
|
68
|
+
'transform': ['webkitTransform'],
|
|
69
|
+
'transformOrigin': ['mozTransformOrigin', 'webkitTransformOrigin']
|
|
70
|
+
};
|
|
71
|
+
var prefixes = map[property];
|
|
72
|
+
for (var prefix, index = 0; prefix = prefixes[index]; index++) {
|
|
73
|
+
node.style[prefix] = value;
|
|
74
|
+
}
|
|
75
|
+
node.style[property] = value;
|
|
76
|
+
},
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Called when the animation finishes.
|
|
80
|
+
*/
|
|
81
|
+
complete: function() {
|
|
82
|
+
// FIXME not sure about non-bubbling event
|
|
83
|
+
this.fire(this.animationEndEvent, null, {bubbles: false});
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
</script>
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
|
|
3
|
+
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
|
4
|
+
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
|
5
|
+
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
|
6
|
+
Code distributed by Google as part of the polymer project is also
|
|
7
|
+
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
|
|
8
|
+
-->
|
|
9
|
+
<link rel="import" href="../polymer/polymer.html">
|
|
10
|
+
<link rel="import" href="../iron-meta/iron-meta.html">
|
|
11
|
+
<link rel="import" href="neon-animatable-behavior.html">
|
|
12
|
+
|
|
13
|
+
<script>
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* `Polymer.NeonAnimationRunnerBehavior` adds a method to run animations.
|
|
17
|
+
* @polymerBehavior
|
|
18
|
+
*/
|
|
19
|
+
Polymer.NeonAnimationRunnerBehavior = [Polymer.NeonAnimatableBehavior, {
|
|
20
|
+
|
|
21
|
+
properties: {
|
|
22
|
+
|
|
23
|
+
_animationMeta: {
|
|
24
|
+
type: Object,
|
|
25
|
+
value: function() {
|
|
26
|
+
return new Polymer.IronMeta({type: 'animation'});
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
|
|
30
|
+
_player: {
|
|
31
|
+
type: Object
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
_configureAnimationEffects: function(allConfigs) {
|
|
37
|
+
var allAnimations = [];
|
|
38
|
+
if (allConfigs.length > 0) {
|
|
39
|
+
for (var config, index = 0; config = allConfigs[index]; index++) {
|
|
40
|
+
var animationConstructor = this._animationMeta.byKey(config.name);
|
|
41
|
+
if (animationConstructor) {
|
|
42
|
+
var animation = animationConstructor && new animationConstructor();
|
|
43
|
+
var effect = animation.configure(config);
|
|
44
|
+
if (effect) {
|
|
45
|
+
allAnimations.push({
|
|
46
|
+
animation: animation,
|
|
47
|
+
config: config,
|
|
48
|
+
effect: effect
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
} else {
|
|
52
|
+
console.warn(this.is + ':', config.name, 'not found!');
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return allAnimations;
|
|
57
|
+
},
|
|
58
|
+
|
|
59
|
+
_runAnimationEffects: function(allEffects) {
|
|
60
|
+
return player = document.timeline.play(new GroupEffect(allEffects));
|
|
61
|
+
},
|
|
62
|
+
|
|
63
|
+
_completeAnimations: function(allAnimations) {
|
|
64
|
+
for (var animation, index = 0; animation = allAnimations[index]; index++) {
|
|
65
|
+
animation.animation.complete(animation.config);
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Plays an animation with an optional `type`.
|
|
71
|
+
*/
|
|
72
|
+
playAnimation: function(type, cookie) {
|
|
73
|
+
var allConfigs = this.getAnimationConfig(type);
|
|
74
|
+
if (!allConfigs) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
var allAnimations = this._configureAnimationEffects(allConfigs);
|
|
78
|
+
var allEffects = allAnimations.map(function(animation) {
|
|
79
|
+
return animation.effect;
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
if (allEffects.length > 0) {
|
|
83
|
+
this._player = this._runAnimationEffects(allEffects);
|
|
84
|
+
this._player.onfinish = function() {
|
|
85
|
+
this._completeAnimations(allAnimations);
|
|
86
|
+
|
|
87
|
+
if (this._player) {
|
|
88
|
+
this._player.cancel();
|
|
89
|
+
this._player = null;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
this.fire('neon-animation-finish', cookie, {bubbles: false});
|
|
93
|
+
}.bind(this);
|
|
94
|
+
|
|
95
|
+
} else {
|
|
96
|
+
this.fire('neon-animation-finish', cookie, {bubbles: false});
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Cancels the currently running animation.
|
|
102
|
+
*/
|
|
103
|
+
cancelAnimation: function() {
|
|
104
|
+
if (this._player) {
|
|
105
|
+
this._player.cancel();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
}];
|
|
110
|
+
</script>
|