Index: pkg/polymer/lib/elements/polymer-ui-nav-arrow/polymer-ui-nav-arrow.html |
diff --git a/pkg/polymer/lib/elements/polymer-ui-nav-arrow/polymer-ui-nav-arrow.html b/pkg/polymer/lib/elements/polymer-ui-nav-arrow/polymer-ui-nav-arrow.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4105e00d4e62a06b644583770bc7f64249a65988 |
--- /dev/null |
+++ b/pkg/polymer/lib/elements/polymer-ui-nav-arrow/polymer-ui-nav-arrow.html |
@@ -0,0 +1,77 @@ |
+<!-- |
+Copyright 2013 The Polymer Authors. All rights reserved. |
+Use of this source code is governed by a BSD-style |
+license that can be found in the LICENSE file. |
+--> |
+<!-- |
+/** |
+ * @module Polymer UI Elements |
+ */ |
+/** |
+ * polymer-ui-nav-arrow is a polymer-ui-arrow that can be positioned to the |
+ * right of the target node. This element is used in |
+ * <a href="polymer-ui-sidebar-menu.html">polymer-ui-sidebar-menu</a>. |
+ * |
+ * Example: |
+ * |
+ * <polymer-selector selectedItem="{{item}}"> |
+ * <div>Item 1</div> |
+ * <div>Item 2</div> |
+ * <div>Item 3</div> |
+ * <div>Item 4</div> |
+ * <div>Item 5</div> |
+ * </polymer-selector> |
+ * <polymer-ui-nav-arrow target="{{item}}"></polymer-ui-nav-arrow> |
+ * |
+ * @class polymer-ui-nav-arrow |
+ * @extends polymer-ui-arrow |
+ */ |
+/** |
+ * The target element. |
+ * |
+ * @attribute target |
+ * @type object |
+ * @default null |
+ */ |
+--> |
+<link rel="import" href="../polymer/polymer.html"> |
+<link rel="import" href="../polymer-ui-arrow/polymer-ui-arrow.html"> |
+ |
+<polymer-element name="polymer-ui-nav-arrow" extends="polymer-ui-arrow" attributes="target"> |
+ <template> |
+ <link rel="stylesheet" href="polymer-ui-nav-arrow.css"> |
+ <shadow></shadow> |
+ </template> |
+ <script> |
+ Polymer('polymer-ui-nav-arrow', { |
+ direction: 'left', |
+ size: 9, |
+ borderColor: '#000', |
+ show: false, |
+ enteredView: function() { |
+ this.showChanged(); |
+ }, |
+ showChanged: function() { |
+ this.classList.toggle('hidden', !this.show); |
+ }, |
+ targetChanged: function() { |
+ this.show = !!this.target; |
+ if (this.target) { |
+ this.asyncMethod('move'); |
+ } |
+ }, |
+ translateY: function(y) { |
+ var s = this.style; |
+ s.webkitTransform = s.mozTransform = s.msTransform = s.transform = |
+ 'translate3d(0,' + y + 'px,0)'; |
+ }, |
+ move: function() { |
+ var t = this.target; |
+ // if the target has getOffsetMiddle(), use that instead |
+ var y = t.getOffsetMiddle ? t.getOffsetMiddle() : |
+ (t.offsetTop + t.offsetHeight/2); |
+ this.translateY(y); |
+ } |
+ }); |
+ </script> |
+</polymer-element> |