Index: polymer_0.5.0/bower_components/core-label/core-label.html |
diff --git a/polymer_0.5.0/bower_components/core-label/core-label.html b/polymer_0.5.0/bower_components/core-label/core-label.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..60041f80394fa8959c875f0ef6e112f418bf3d52 |
--- /dev/null |
+++ b/polymer_0.5.0/bower_components/core-label/core-label.html |
@@ -0,0 +1,124 @@ |
+<!-- |
+ @license |
+ 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 |
+--> |
+ |
+<!-- |
+`<core-label>` provides a version of the `<label>` element that works with Custom Elements as well as native elements. |
+ |
+All text in the `core-label` will be applied to the target element as a screen-reader accessible description. |
+ |
+There are two ways to use `core-label` to target an element: |
+ |
+1. place an element inside core-label with the `for` attribute: |
+ |
+ <core-label> |
+ Context for the Button |
+ <paper-button for>button</paper-button> |
+ </core-label> |
+ |
+2. Set the `for` attribute on the `core-label` element to point to a target element in the same scope with a query |
+string: |
+ |
+ <core-label for=".foo"> |
+ Context for the button witht the "foo" class" |
+ </core-label> |
+ <paper-button class="foo">Far away button</paper-button> |
+ |
+All taps on the `core-label` will be forwarded to the "target" element. |
+ |
+@group Core Elements |
+@element core-label |
+@homepage github.io |
+--> |
+ |
+<link rel="import" href="../polymer/polymer.html"> |
+ |
+<!-- Native <label> has cursor: default --> |
+<style> |
+ html /deep/ core-label { |
+ cursor: default; |
+ } |
+</style> |
+ |
+<polymer-element name="core-label"> |
+ <script> |
+ (function() { |
+ |
+ var ID = 0; |
+ function generate(node) { |
+ if (!node.id) { |
+ node.id = 'core-label-' + ID++; |
+ } |
+ return node.id; |
+ } |
+ |
+ Polymer('core-label', { |
+ /** |
+ * A query selector string for a "target" element not nested in the `<core-label>` |
+ * |
+ * @attribute for |
+ * @type string |
+ * @default '' |
+ */ |
+ publish: { |
+ 'for': {reflect: true, value: ''} |
+ }, |
+ eventDelegates: { |
+ 'tap': 'tapHandler' |
+ }, |
+ created: function() { |
+ generate(this); |
+ this._forElement = null; |
+ }, |
+ ready: function() { |
+ if (!this.for) { |
+ this._forElement = this.querySelector('[for]'); |
+ this._tie(); |
+ } |
+ }, |
+ tapHandler: function(ev) { |
+ if (!this._forElement) { |
+ return; |
+ } |
+ if (ev.target === this._forElement) { |
+ return; |
+ } |
+ this._forElement.focus(); |
+ this._forElement.click(); |
+ this.fire('tap', null, this._forElement); |
+ }, |
+ _tie: function() { |
+ if (this._forElement) { |
+ this._forElement.setAttribute('aria-labelledby', this.id); |
+ } |
+ }, |
+ _findScope: function() { |
+ var n = this.parentNode; |
+ while(n && n.parentNode) { |
+ n = n.parentNode; |
+ } |
+ return n; |
+ }, |
+ forChanged: function(oldFor, newFor) { |
+ if (this._forElement) { |
+ this._forElement.removeAttribute('aria-labelledby'); |
+ } |
+ var scope = this._findScope(); |
+ if (!scope) { |
+ return; |
+ } |
+ this._forElement = scope.querySelector(newFor); |
+ if (this._forElement) { |
+ this._tie(); |
+ } |
+ } |
+ }); |
+ })(); |
+ </script> |
+</polymer-element> |