| Index: third_party/polymer/v1_0/components-chromium/paper-dialog-behavior/paper-dialog-behavior-extracted.js
|
| diff --git a/third_party/polymer/v1_0/components-chromium/paper-dialog-behavior/paper-dialog-behavior-extracted.js b/third_party/polymer/v1_0/components-chromium/paper-dialog-behavior/paper-dialog-behavior-extracted.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0dd39eef79ae7701573d9f0a1d539526ef9be1ac
|
| --- /dev/null
|
| +++ b/third_party/polymer/v1_0/components-chromium/paper-dialog-behavior/paper-dialog-behavior-extracted.js
|
| @@ -0,0 +1,123 @@
|
| +/**
|
| +Use `Polymer.PaperDialogBehavior` and `paper-dialog-shared-styles.html` 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-shared-styles.html` 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`.
|
| +
|
| +### 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 prevent the focus from exiting the element.
|
| +It will also ensure that focus remains in the dialog.
|
| +
|
| +@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`, `no-cancel-on-esc-key` and `with-backdrop`.
|
| + */
|
| + modal: {
|
| + type: Boolean,
|
| + value: false
|
| + }
|
| +
|
| + },
|
| +
|
| + observers: [
|
| + '_modalChanged(modal, _readied)'
|
| + ],
|
| +
|
| + listeners: {
|
| + 'tap': '_onDialogClick'
|
| + },
|
| +
|
| + ready: function () {
|
| + // Only now these properties can be read.
|
| + this.__prevNoCancelOnOutsideClick = this.noCancelOnOutsideClick;
|
| + this.__prevNoCancelOnEscKey = this.noCancelOnEscKey;
|
| + this.__prevWithBackdrop = this.withBackdrop;
|
| + },
|
| +
|
| + _modalChanged: function(modal, readied) {
|
| + // modal implies noCancelOnOutsideClick, noCancelOnEscKey and withBackdrop.
|
| + // We need to wait for the element to be ready before we can read the
|
| + // properties values.
|
| + if (!readied) {
|
| + return;
|
| + }
|
| +
|
| + if (modal) {
|
| + this.__prevNoCancelOnOutsideClick = this.noCancelOnOutsideClick;
|
| + this.__prevNoCancelOnEscKey = this.noCancelOnEscKey;
|
| + this.__prevWithBackdrop = this.withBackdrop;
|
| + this.noCancelOnOutsideClick = true;
|
| + this.noCancelOnEscKey = true;
|
| + this.withBackdrop = true;
|
| + } else {
|
| + // If the value was changed to false, let it false.
|
| + this.noCancelOnOutsideClick = this.noCancelOnOutsideClick &&
|
| + this.__prevNoCancelOnOutsideClick;
|
| + this.noCancelOnEscKey = this.noCancelOnEscKey &&
|
| + this.__prevNoCancelOnEscKey;
|
| + this.withBackdrop = this.withBackdrop && this.__prevWithBackdrop;
|
| + }
|
| + },
|
| +
|
| + _updateClosingReasonConfirmed: function(confirmed) {
|
| + this.closingReason = this.closingReason || {};
|
| + this.closingReason.confirmed = confirmed;
|
| + },
|
| +
|
| + /**
|
| + * Will dismiss the dialog if user clicked on an element with dialog-dismiss
|
| + * or dialog-confirm attribute.
|
| + */
|
| + _onDialogClick: function(event) {
|
| + // Search for the element with dialog-confirm or dialog-dismiss,
|
| + // from the root target until this (excluded).
|
| + var path = Polymer.dom(event).path;
|
| + for (var i = 0; i < path.indexOf(this); i++) {
|
| + var target = path[i];
|
| + if (target.hasAttribute && (target.hasAttribute('dialog-dismiss') || target.hasAttribute('dialog-confirm'))) {
|
| + this._updateClosingReasonConfirmed(target.hasAttribute('dialog-confirm'));
|
| + this.close();
|
| + event.stopPropagation();
|
| + break;
|
| + }
|
| + }
|
| + }
|
| +
|
| + };
|
| +
|
| + /** @polymerBehavior */
|
| + Polymer.PaperDialogBehavior = [Polymer.IronOverlayBehavior, Polymer.PaperDialogBehaviorImpl];
|
|
|