Index: third_party/polymer/components/paper-tabs/paper-tabs.html |
diff --git a/third_party/polymer/components/paper-tabs/paper-tabs.html b/third_party/polymer/components/paper-tabs/paper-tabs.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..28c4f29624565f9144d79bed5eaab277929a8eec |
--- /dev/null |
+++ b/third_party/polymer/components/paper-tabs/paper-tabs.html |
@@ -0,0 +1,128 @@ |
+<!-- |
+Copyright (c) 2014 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 |
+--> |
+ |
+<!-- |
+`paper-tabs` is a `core-selector` styled to look like tabs. Tabs make it easy to |
+explore and switch between different views or functional aspects of an app, or |
+to browse categorized data sets. |
+ |
+Use `selected` property to get or set the selected tab. |
+ |
+Example: |
+ |
+ <paper-tabs selected="0"> |
+ <paper-tab>TAB 1</paper-tab> |
+ <paper-tab>TAB 2</paper-tab> |
+ <paper-tab>TAB 3</paper-tab> |
+ </paper-tabs> |
+ |
+See <a href="#paper-tab">paper-tab</a> for more information about |
+`paper-tab`. |
+ |
+Styling tabs: |
+ |
+To change the sliding bar color: |
+ |
+ paper-tabs.pink::shadow #selectionBar { |
+ background-color: #ff4081; |
+ } |
+ |
+@group Paper Elements |
+@element paper-tabs |
+@extends core-selector |
+@homepage github.io |
+--> |
+ |
+<link rel="import" href="../core-selector/core-selector.html"> |
+<link rel="import" href="paper-tab.html"> |
+ |
+<polymer-element name="paper-tabs" extends="core-selector" attributes="noink nobar" role="tablist"> |
+<template> |
+ |
+ <link rel="stylesheet" href="paper-tabs.css"> |
+ |
+ <div id="tabsContainer" horizontal layout> |
+ |
+ <shadow></shadow> |
+ <div id="selectionBar" hidden?="{{nobar}}" on-transitionend="{{barTransitionEnd}}"></div> |
+ |
+ </div> |
+ |
+</template> |
+<script> |
+ |
+ Polymer('paper-tabs', { |
+ |
+ /** |
+ * If true, ink effect is disabled. |
+ * |
+ * @attribute noink |
+ * @type boolean |
+ * @default false |
+ */ |
+ noink: false, |
+ |
+ /** |
+ * If true, the bottom bar to indicate the selected tab will not be shown. |
+ * |
+ * @attribute nobar |
+ * @type boolean |
+ * @default false |
+ */ |
+ nobar: false, |
+ |
+ activateEvent: 'down', |
+ |
+ nostretch: false, |
+ |
+ selectedIndexChanged: function(old) { |
+ var s = this.$.selectionBar.style; |
+ |
+ if (!this.selectedItem) { |
+ s.width = 0; |
+ s.left = 0; |
+ return; |
+ } |
+ |
+ var w = 100 / this.items.length; |
+ |
+ if (this.nostretch || old === null || old === -1) { |
+ s.width = w + '%'; |
+ s.left = this.selectedIndex * w + '%'; |
+ return; |
+ } |
+ |
+ var m = 5; |
+ this.$.selectionBar.classList.add('expand'); |
+ if (old < this.selectedIndex) { |
+ s.width = w + w * (this.selectedIndex - old) - m + '%'; |
+ } else { |
+ s.width = w + w * (old - this.selectedIndex) - m + '%'; |
+ s.left = this.selectedIndex * w + m + '%'; |
+ } |
+ }, |
+ |
+ barTransitionEnd: function() { |
+ var cl = this.$.selectionBar.classList; |
+ if (cl.contains('expand')) { |
+ cl.remove('expand'); |
+ cl.add('contract'); |
+ var s = this.$.selectionBar.style; |
+ var w = 100 / this.items.length; |
+ s.width = w + '%'; |
+ s.left = this.selectedIndex * w + '%'; |
+ } else if (cl.contains('contract')) { |
+ cl.remove('contract'); |
+ } |
+ } |
+ |
+ }); |
+ |
+</script> |
+</polymer-element> |