Index: third_party/polymer/v0_8/components/iron-overlay-behavior/iron-overlay-backdrop.html |
diff --git a/third_party/polymer/v0_8/components/iron-overlay-behavior/iron-overlay-backdrop.html b/third_party/polymer/v0_8/components/iron-overlay-behavior/iron-overlay-backdrop.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5682c285057815b2582abf0157f9f3365bc25c6c |
--- /dev/null |
+++ b/third_party/polymer/v0_8/components/iron-overlay-behavior/iron-overlay-backdrop.html |
@@ -0,0 +1,132 @@ |
+<!-- |
+@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-manager.html"> |
+ |
+<!-- |
+`iron-overlay-backdrop` is a backdrop used by `Polymer.IronOverlayBehavior`. It should be a |
+singleton. |
+ |
+### Styling |
+ |
+The following custom properties and mixins are available for styling. |
+ |
+Custom property | Description | Default |
+-------------------------------------------|------------------------|--------- |
+`--iron-overlay-backdrop-background-color` | Backdrop background color | #000 |
+`--iron-overlay-backdrop-opacity` | Backdrop opacity | 0.6 |
+`--iron-overlay-backdrop` | Mixin applied to `iron-overlay-backdrop`. | {} |
+`--iron-overlay-backdrop-opened` | Mixin applied to `iron-overlay-backdrop` when it is displayed | {} |
+--> |
+ |
+<dom-module id="iron-overlay-backdrop"> |
+ |
+ <style> |
+ |
+ :host { |
+ position: fixed; |
+ top: 0; |
+ left: 0; |
+ width: 100vw; |
+ height: 100vh; |
+ background-color: var(--iron-overlay-backdrop-background-color, #000); |
+ opacity: 0; |
+ transition: opacity 0.2s; |
+ |
+ @apply(--iron-overlay-backdrop); |
+ } |
+ |
+ :host([opened]) { |
+ opacity: var(--iron-overlay-backdrop-opacity, 0.6); |
+ |
+ @apply(--iron-overlay-backdrop-opened); |
+ } |
+ |
+ </style> |
+ |
+ <template> |
+ <content></content> |
+ </template> |
+ |
+</dom-module> |
+ |
+<script> |
+ |
+(function() { |
+ |
+ Polymer({ |
+ |
+ is: 'iron-overlay-backdrop', |
+ |
+ properties: { |
+ |
+ /** |
+ * Returns true if the backdrop is opened. |
+ */ |
+ opened: { |
+ readOnly: true, |
+ reflectToAttribute: true, |
+ type: Boolean, |
+ value: false |
+ }, |
+ |
+ _manager: { |
+ type: Object, |
+ value: Polymer.IronOverlayManager |
+ } |
+ |
+ }, |
+ |
+ /** |
+ * Appends the backdrop to document body and sets its `z-index` to be below the latest overlay. |
+ */ |
+ prepare: function() { |
+ if (!this.parentNode) { |
+ Polymer.dom(document.body).appendChild(this); |
+ this.style.zIndex = this._manager.currentOverlayZ() - 1; |
+ } |
+ }, |
+ |
+ /** |
+ * Shows the backdrop if needed. |
+ */ |
+ open: function() { |
+ // only need to make the backdrop visible if this is called by the first overlay with a backdrop |
+ if (this._manager.getBackdrops().length < 2) { |
+ this._setOpened(true); |
+ } |
+ }, |
+ |
+ /** |
+ * Hides the backdrop if needed. |
+ */ |
+ close: function() { |
+ // only need to make the backdrop invisible if this is called by the last overlay with a backdrop |
+ if (this._manager.getBackdrops().length < 2) { |
+ this._setOpened(false); |
+ } |
+ }, |
+ |
+ /** |
+ * Removes the backdrop from document body if needed. |
+ */ |
+ complete: function() { |
+ // only remove the backdrop if there are no more overlays with backdrops |
+ if (this._manager.getBackdrops().length === 0 && this.parentNode) { |
+ Polymer.dom(this.parentNode).removeChild(this); |
+ } |
+ } |
+ |
+ }); |
+ |
+})(); |
+ |
+</script> |