Index: third_party/polymer/v1_0/components/paper-dialog-behavior/paper-dialog-behavior.html |
diff --git a/third_party/polymer/v1_0/components/paper-dialog-behavior/paper-dialog-behavior.html b/third_party/polymer/v1_0/components/paper-dialog-behavior/paper-dialog-behavior.html |
deleted file mode 100644 |
index 0afcb8b7f82da317e901295aa392c7f80d95fd3c..0000000000000000000000000000000000000000 |
--- a/third_party/polymer/v1_0/components/paper-dialog-behavior/paper-dialog-behavior.html |
+++ /dev/null |
@@ -1,239 +0,0 @@ |
-<!-- |
-@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/iron-overlay-behavior.html"> |
-<link rel="import" href="../paper-styles/paper-styles.html"> |
- |
-<script> |
- |
-/** |
-Use `Polymer.PaperDialogBehavior` and `paper-dialog-common.css` to implement a Material Design |
-dialog. |
- |
-For example, if `<paper-dialog-impl>` implements this behavior: |
- |
- <paper-dialog-impl> |
- <h2>Header</h2> |
- <div>Dialog body</div> |
- <div class="buttons"> |
- <paper-button dialog-dismiss>Cancel</paper-button> |
- <paper-button dialog-confirm>Accept</paper-button> |
- </div> |
- </paper-dialog-impl> |
- |
-`paper-dialog-common.css` provide styles for a header, content area, and an action area for buttons. |
-Use the `<h2>` tag for the header and the `buttons` class for the action area. You can use the |
-`paper-dialog-scrollable` element (in its own repository) if you need a scrolling content area. |
- |
-Use the `dialog-dismiss` and `dialog-confirm` attributes on interactive controls to close the |
-dialog. If the user dismisses the dialog with `dialog-confirm`, the `closingReason` will update |
-to include `confirmed: true`. |
- |
-### Styling |
- |
-The following custom properties and mixins are available for styling. |
- |
-Custom property | Description | Default |
-----------------|-------------|---------- |
-`--paper-dialog-background-color` | Dialog background color | `--primary-background-color` |
-`--paper-dialog-color` | Dialog foreground color | `--primary-text-color` |
-`--paper-dialog` | Mixin applied to the dialog | `{}` |
-`--paper-dialog-title` | Mixin applied to the title (`<h2>`) element | `{}` |
-`--paper-dialog-button-color` | Button area foreground color | `--default-primary-color` |
- |
-### Accessibility |
- |
-This element has `role="dialog"` by default. Depending on the context, it may be more appropriate |
-to override this attribute with `role="alertdialog"`. |
- |
-If `modal` is set, the element will set `aria-modal` and prevent the focus from exiting the element. |
-It will also ensure that focus remains in the dialog. |
- |
-The `aria-labelledby` attribute will be set to the header element, if one exists. |
- |
-@hero hero.svg |
-@demo demo/index.html |
-@polymerBehavior Polymer.PaperDialogBehavior |
-*/ |
- |
- Polymer.PaperDialogBehaviorImpl = { |
- |
- hostAttributes: { |
- 'role': 'dialog', |
- 'tabindex': '-1' |
- }, |
- |
- properties: { |
- |
- /** |
- * If `modal` is true, this implies `no-cancel-on-outside-click` and `with-backdrop`. |
- */ |
- modal: { |
- observer: '_modalChanged', |
- type: Boolean, |
- value: false |
- }, |
- |
- /** @type {?Node} */ |
- _lastFocusedElement: { |
- type: Object |
- }, |
- |
- _boundOnFocus: { |
- type: Function, |
- value: function() { |
- return this._onFocus.bind(this); |
- } |
- }, |
- |
- _boundOnBackdropClick: { |
- type: Function, |
- value: function() { |
- return this._onBackdropClick.bind(this); |
- } |
- } |
- |
- }, |
- |
- listeners: { |
- 'click': '_onDialogClick', |
- 'iron-overlay-opened': '_onIronOverlayOpened', |
- 'iron-overlay-closed': '_onIronOverlayClosed' |
- }, |
- |
- attached: function() { |
- this._observer = this._observe(this); |
- this._updateAriaLabelledBy(); |
- }, |
- |
- detached: function() { |
- if (this._observer) { |
- this._observer.disconnect(); |
- } |
- }, |
- |
- _observe: function(node) { |
- var observer = new MutationObserver(function() { |
- this._updateAriaLabelledBy(); |
- }.bind(this)); |
- observer.observe(node, { |
- childList: true, |
- subtree: true |
- }); |
- return observer; |
- }, |
- |
- _modalChanged: function() { |
- if (this.modal) { |
- this.setAttribute('aria-modal', 'true'); |
- } else { |
- this.setAttribute('aria-modal', 'false'); |
- } |
- // modal implies noCancelOnOutsideClick and withBackdrop if true, don't overwrite |
- // those properties otherwise. |
- if (this.modal) { |
- this.noCancelOnOutsideClick = true; |
- this.withBackdrop = true; |
- } |
- }, |
- |
- _updateAriaLabelledBy: function() { |
- var header = Polymer.dom(this).querySelector('h2'); |
- if (!header) { |
- this.removeAttribute('aria-labelledby'); |
- return; |
- } |
- var headerId = header.getAttribute('id'); |
- if (headerId && this.getAttribute('aria-labelledby') === headerId) { |
- return; |
- } |
- // set aria-describedBy to the header element |
- var labelledById; |
- if (headerId) { |
- labelledById = headerId; |
- } else { |
- labelledById = 'paper-dialog-header-' + new Date().getUTCMilliseconds(); |
- header.setAttribute('id', labelledById); |
- } |
- this.setAttribute('aria-labelledby', labelledById); |
- }, |
- |
- _updateClosingReasonConfirmed: function(confirmed) { |
- this.closingReason = this.closingReason || {}; |
- this.closingReason.confirmed = confirmed; |
- }, |
- |
- _onDialogClick: function(event) { |
- var target = event.target; |
- while (target && target !== this) { |
- if (target.hasAttribute) { |
- if (target.hasAttribute('dialog-dismiss')) { |
- this._updateClosingReasonConfirmed(false); |
- this.close(); |
- break; |
- } else if (target.hasAttribute('dialog-confirm')) { |
- this._updateClosingReasonConfirmed(true); |
- this.close(); |
- break; |
- } |
- } |
- target = target.parentNode; |
- } |
- }, |
- |
- _onIronOverlayOpened: function() { |
- if (this.modal) { |
- document.body.addEventListener('focus', this._boundOnFocus, true); |
- this.backdropElement.addEventListener('click', this._boundOnBackdropClick); |
- } |
- }, |
- |
- _onIronOverlayClosed: function() { |
- document.body.removeEventListener('focus', this._boundOnFocus, true); |
- this.backdropElement.removeEventListener('click', this._boundOnBackdropClick); |
- }, |
- |
- _onFocus: function(event) { |
- if (this.modal) { |
- var target = event.target; |
- while (target && target !== this && target !== document.body) { |
- target = target.parentNode; |
- } |
- if (target) { |
- if (target === document.body) { |
- if (this._lastFocusedElement) { |
- this._lastFocusedElement.focus(); |
- } else { |
- this._focusNode.focus(); |
- } |
- } else { |
- this._lastFocusedElement = event.target; |
- } |
- } |
- } |
- }, |
- |
- _onBackdropClick: function() { |
- if (this.modal) { |
- if (this._lastFocusedElement) { |
- this._lastFocusedElement.focus(); |
- } else { |
- this._focusNode.focus(); |
- } |
- } |
- } |
- |
- }; |
- |
- /** @polymerBehavior */ |
- Polymer.PaperDialogBehavior = [Polymer.IronOverlayBehavior, Polymer.PaperDialogBehaviorImpl]; |
- |
-</script> |