blob: 6b8b32b27d2dce007f12faa15d0b73e2edfa4ce9 [file] [log] [blame]
<!--
@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-overlay-behavior.html">
<dom-module id="test-overlay">
<template>
<style>
:host {
background: white;
color: black;
border: 1px solid black;
}
:host([animated]) {
-webkit-transition: -webkit-transform 0.3s;
transition: transform 0.3s;
-webkit-transform: translateY(300px);
transform: translateY(300px);
}
:host(.opened[animated]) {
-webkit-transform: translateY(0px);
transform: translateY(0px);
}
</style>
<content></content>
</template>
</dom-module>
<script>
(function() {
Polymer({
is: 'test-overlay',
properties: {
animated: {
type: Boolean,
reflectToAttribute: true
}
},
behaviors: [
Polymer.IronOverlayBehavior
],
listeners: {
'transitionend': '__onTransitionEnd'
},
_renderOpened: function() {
if (this.animated) {
if (this.withBackdrop) {
this.backdropElement.open();
}
this.classList.add('opened');
this.fire('simple-overlay-open-animation-start');
} else {
Polymer.IronOverlayBehaviorImpl._renderOpened.apply(this, arguments);
}
},
_renderClosed: function() {
if (this.animated) {
if (this.withBackdrop) {
this.backdropElement.close();
}
this.classList.remove('opened');
this.fire('simple-overlay-close-animation-start');
} else {
Polymer.IronOverlayBehaviorImpl._renderClosed.apply(this, arguments);
}
},
__onTransitionEnd: function(e) {
if (e && e.target === this) {
if (this.opened) {
this._finishRenderOpened();
} else {
this._finishRenderClosed();
}
}
},
});
})();
</script>