| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * @fileoverview 'cr-dialog' is a component for showing a modal dialog. If the | 6 * @fileoverview 'cr-dialog' is a component for showing a modal dialog. If the |
| 7 * dialog is closed via close(), a 'close' event is fired. If the dialog is | 7 * dialog is closed via close(), a 'close' event is fired. If the dialog is |
| 8 * canceled via cancel(), a 'cancel' event is fired followed by a 'close' event. | 8 * canceled via cancel(), a 'cancel' event is fired followed by a 'close' event. |
| 9 * Additionally clients can inspect the dialog's |returnValue| property inside | 9 * Additionally clients can inspect the dialog's |returnValue| property inside |
| 10 * the 'close' event listener to determine whether it was canceled or just | 10 * the 'close' event listener to determine whether it was canceled or just |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 | 59 |
| 60 if (!this.ignoreEnterKey) | 60 if (!this.ignoreEnterKey) |
| 61 this.addEventListener('keypress', this.onKeypress_.bind(this)); | 61 this.addEventListener('keypress', this.onKeypress_.bind(this)); |
| 62 }, | 62 }, |
| 63 | 63 |
| 64 /** @override */ | 64 /** @override */ |
| 65 attached: function() { | 65 attached: function() { |
| 66 if (this.showScrollBorders) { | 66 if (this.showScrollBorders) { |
| 67 var bodyContainer = this.$$('.body-container'); | 67 var bodyContainer = this.$$('.body-container'); |
| 68 | 68 |
| 69 var bottomMarker = this.$.bodyBottomMarker; |
| 70 var topMarker = this.$.bodyTopMarker; |
| 71 |
| 69 var callback = function(entries) { | 72 var callback = function(entries) { |
| 70 assert(entries.length == 1); | 73 assert(entries.length <= 2); |
| 71 bodyContainer.classList.toggle( | 74 for (var i = 0; i < entries.length; i++) { |
| 72 'bottom-scrollable', entries[0].intersectionRatio == 0); | 75 var target = entries[i].target; |
| 76 assert(target == bottomMarker || target == topMarker); |
| 77 |
| 78 var classToToggle = |
| 79 target == bottomMarker ? 'bottom-scrollable' : 'top-scrollable'; |
| 80 |
| 81 bodyContainer.classList.toggle( |
| 82 classToToggle, entries[i].intersectionRatio == 0); |
| 83 } |
| 73 }; | 84 }; |
| 74 | 85 |
| 75 this.intersectionObserver_ = new IntersectionObserver( | 86 this.intersectionObserver_ = new IntersectionObserver( |
| 76 callback, | 87 callback, |
| 77 /** @type {IntersectionObserverInit} */ ({ | 88 /** @type {IntersectionObserverInit} */ ({ |
| 78 root: bodyContainer, | 89 root: bodyContainer, |
| 79 threshold: 0, | 90 threshold: 0, |
| 80 })); | 91 })); |
| 81 this.intersectionObserver_.observe(this.$.bodyBottomMarker); | 92 this.intersectionObserver_.observe(bottomMarker); |
| 93 this.intersectionObserver_.observe(topMarker); |
| 82 } | 94 } |
| 83 }, | 95 }, |
| 84 | 96 |
| 85 /** @override */ | 97 /** @override */ |
| 86 detached: function() { | 98 detached: function() { |
| 87 if (this.intersectionObserver_) { | 99 if (this.intersectionObserver_) { |
| 88 this.intersectionObserver_.disconnect(); | 100 this.intersectionObserver_.disconnect(); |
| 89 this.intersectionObserver_ = null; | 101 this.intersectionObserver_ = null; |
| 90 } | 102 } |
| 91 }, | 103 }, |
| (...skipping 29 matching lines...) Expand all Loading... |
| 121 return; | 133 return; |
| 122 | 134 |
| 123 var actionButton = | 135 var actionButton = |
| 124 this.querySelector('.action-button:not([disabled]):not([hidden])'); | 136 this.querySelector('.action-button:not([disabled]):not([hidden])'); |
| 125 if (actionButton) { | 137 if (actionButton) { |
| 126 actionButton.click(); | 138 actionButton.click(); |
| 127 e.preventDefault(); | 139 e.preventDefault(); |
| 128 } | 140 } |
| 129 }, | 141 }, |
| 130 }); | 142 }); |
| OLD | NEW |