Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Unified Diff: third_party/polymer/v0_8/components/paper-dialog-scrollable/paper-dialog-scrollable.html

Issue 1162563004: Upgrade to 1.0 and switch clients to dom-repeat where needed. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix a layout import and remove the gzipped webanimation in reproduce.sh Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/polymer/v0_8/components/paper-dialog-scrollable/paper-dialog-scrollable.html
diff --git a/third_party/polymer/v0_8/components/paper-dialog-scrollable/paper-dialog-scrollable.html b/third_party/polymer/v0_8/components/paper-dialog-scrollable/paper-dialog-scrollable.html
new file mode 100644
index 0000000000000000000000000000000000000000..981748994f9922e7ff0640bb379f2dcd710652ee
--- /dev/null
+++ b/third_party/polymer/v0_8/components/paper-dialog-scrollable/paper-dialog-scrollable.html
@@ -0,0 +1,150 @@
+<!--
+@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-flex-layout/classes/iron-flex-layout.html">
+<link rel="import" href="../paper-styles/paper-styles.html">
+
+<!--
+`paper-dialog-scrollable` implements a scrolling area used in a Material Design dialog. It shows
+a divider at the top and/or bottom indicating more content, depending on scroll position. Use this
+together with elements implementing `Polymer.PaperDialogBehavior`.
+
+ <paper-dialog-impl>
+ <h2>Header</h2>
+ <paper-dialog-scrollable>
+ Lorem ipsum...
+ </paper-dialog-scrollable>
+ <div class="buttons">
+ <paper-button>OK</paper-button>
+ </div>
+ </paper-dialog-impl>
+
+It shows a top divider after scrolling if it is not the first child in its parent container,
+indicating there is more content above. It shows a bottom divider if it is scrollable and it is not
+the last child in its parent container, indicating there is more content below. The bottom divider
+is hidden if it is scrolled to the bottom.
+
+@group Paper Elements
+@element paper-dialog-scrollable
+@demo demo/index.html
+@hero hero.svg
+-->
+
+<dom-module id="paper-dialog-scrollable">
+
+ <style>
+
+ :host {
+ display: block;
+ position: relative;
+ }
+
+ :host(.is-scrolled:not(:first-child))::before {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 1px;
+ background: var(--divider-color);
+ }
+
+ :host(.can-scroll:not(.scrolled-to-bottom):not(:last-child))::after {
+ content: '';
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ height: 1px;
+ background: var(--divider-color);
+ }
+
+ .scrollable {
+ padding: 0 24px;
+
+ @apply(--layout-scroll);
+
+ @apply(--paper-dialog-scrollable);
+ }
+ </style>
+
+ <template>
+ <div id="scrollable" class="scrollable">
+ <content></content>
+ </div>
+ </template>
+
+</dom-module>
+
+<script>
+
+(function() {
+
+ Polymer({
+
+ is: 'paper-dialog-scrollable',
+
+ properties: {
+
+ /**
+ * The dialog element that implements `Polymer.PaperDialogBehavior` containing this element.
+ */
+ dialogElement: {
+ type: Object,
+ value: function() {
+ return this.parentNode;
+ }
+ }
+
+ },
+
+ listeners: {
+ 'scrollable.scroll': '_onScroll',
+ 'iron-resize': '_onIronResize'
+ },
+
+ /**
+ * Returns the scrolling element.
+ */
+ get scrollTarget() {
+ return this.$.scrollable;
+ },
+
+ attached: function() {
+ this.classList.add('no-padding');
+ // Set itself to the overlay sizing target
+ this.dialogElement.sizingTarget = this.scrollTarget;
+ // If the host is sized, fit the scrollable area to the container. Otherwise let it be
+ // its natural size.
+ requestAnimationFrame(function() {
+ if (this.offsetHeight > 0) {
+ this.$.scrollable.classList.add('fit');
+ }
+ this._scroll();
+ }.bind(this));
+ },
+
+ _scroll: function() {
+ this.toggleClass('is-scrolled', this.scrollTarget.scrollTop > 0);
+ this.toggleClass('can-scroll', this.scrollTarget.offsetHeight < this.scrollTarget.scrollHeight);
+ this.toggleClass('scrolled-to-bottom',
+ this.scrollTarget.scrollTop + this.scrollTarget.offsetHeight >= this.scrollTarget.scrollHeight);
+ },
+
+ _onScroll: function() {
+ this._scroll();
+ }
+
+ })
+
+})();
+
+</script>

Powered by Google App Engine
This is Rietveld 408576698