Index: polymer_0.5.0/bower_components/core-tooltip/core-tooltip.html |
diff --git a/polymer_0.5.0/bower_components/core-tooltip/core-tooltip.html b/polymer_0.5.0/bower_components/core-tooltip/core-tooltip.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1a67f3b77c68bb2a795fd6e3bcffc3054633468c |
--- /dev/null |
+++ b/polymer_0.5.0/bower_components/core-tooltip/core-tooltip.html |
@@ -0,0 +1,217 @@ |
+<!-- |
+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 |
+--> |
+ |
+<!-- |
+The `core-tooltip` element creates a hover tooltip centered for the content |
+it contains. It can be positioned on the top|bottom|left|right of content using |
+the `position` attribute. |
+ |
+To include HTML in the tooltip, include the `tip` attribute on the relevant |
+content. |
+ |
+<b>Example</b>: |
+ |
+ <core-tooltip label="I'm a tooltip"> |
+ <span>Hover over me.</span> |
+ </core-tooltip> |
+ |
+<b>Example</b> - positioning the tooltip to the right: |
+ |
+ <core-tooltip label="I'm a tooltip to the right" position="right"> |
+ <core-icon-button icon="drawer"></core-icon-button> |
+ </core-tooltip> |
+ |
+<b>Example</b> - no arrow and showing by default: |
+ |
+ <core-tooltip label="Tooltip with no arrow and always on" noarrow show> |
+ <img src="image.jpg"> |
+ </core-tooltip> |
+ |
+<b>Example</b> - disable the tooltip. |
+ |
+ <core-tooltip label="Disabled label never shows" disabled> |
+ ... |
+ </core-tooltip> |
+ |
+<b>Example</b> - rich tooltip using the `tip` attribute: |
+ |
+ <core-tooltip> |
+ <div>Example of a rich information tooltip</div> |
+ <div tip> |
+ <img src="profile.jpg">Foo <b>Bar</b> - <a href="#">@baz</a> |
+ </div> |
+ </core-tooltip> |
+ |
+By default, the `tip` attribute specifies the HTML content for a rich tooltip. |
+You can customize this attribute with the `tipAttribute` attribute: |
+ |
+ <core-tooltip tipAttribute="htmltooltip"> |
+ <div>Example of a rich information tooltip</div> |
+ <div htmltooltip> |
+ ... |
+ </div> |
+ </core-tooltip> |
+ |
+@group Polymer Core Elements |
+@element core-tooltip |
+@extends core-focusable |
+@mixins Polymer.CoreFocusable |
+@homepage http://www.polymer-project.org/components/core-tooltip/index.html |
+--> |
+ |
+<link rel="import" href="../polymer/polymer.html"> |
+<link rel="import" href="../core-focusable/core-focusable.html"> |
+<link rel="import" href="../core-resizable/core-resizable.html"> |
+ |
+<!-- TODO: would be nice to inherit from label to get .htmlFor, and .control, |
+ but the latter is readonly. --> |
+<!-- TODO: support off center arrows. --> |
+<!-- TODO: detect mobile and apply the .large class, instead of manual |
+ control. --> |
+<!-- TODO: possibly reuse core-overlay. --> |
+<polymer-element name="core-tooltip" attributes="noarrow position label show tipAttribute" role="tooltip" tabindex="0"> |
+<template> |
+ |
+ <link rel="stylesheet" href="core-tooltip.css"> |
+ <div id="tooltip" hidden?="{{!hasTooltipContent}}" |
+ class="core-tooltip {{position}} {{ {noarrow: noarrow, show: show && !disabled} | tokenList}}"> |
+ <content id="c" select="[{{tipAttribute}}]">{{label}}</content> |
+ </div> |
+ |
+ <content></content> |
+ |
+</template> |
+<script> |
+(function() { |
+ |
+ var proto = { |
+ |
+ /** |
+ * A simple string label for the tooltip to display. To display a rich |
+ * HTML tooltip instead, omit `label` and include the `tip` attribute |
+ * on a child node of `core-tooltip`. |
+ * |
+ * @attribute label |
+ * @type string |
+ * @default null |
+ */ |
+ label: null, |
+ |
+ eventDelegates: { |
+ 'core-resize': 'positionChanged' |
+ }, |
+ |
+ computed: { |
+ // Indicates whether the tooltip has a set label propety or |
+ // an element with the `tip` attribute. |
+ hasTooltipContent: 'label || !!tipElement' |
+ }, |
+ |
+ publish: { |
+ /** |
+ * Forces the tooltip to display. If `disabled` is set, this property is ignored. |
+ * |
+ * @attribute show |
+ * @type boolean |
+ * @default false |
+ */ |
+ show: {value: false, reflect: true}, |
+ |
+ /** |
+ * Positions the tooltip to the top, right, bottom, left of its content. |
+ * |
+ * @attribute position |
+ * @type string |
+ * @default 'bottom' |
+ */ |
+ position: {value: 'bottom', reflect: true}, |
+ |
+ /** |
+ * If true, the tooltip an arrow pointing towards the content. |
+ * |
+ * @attribute noarrow |
+ * @type boolean |
+ * @default false |
+ */ |
+ noarrow: {value: false, reflect: true} |
+ }, |
+ |
+ /** |
+ * Customizes the attribute used to specify which content |
+ * is the rich HTML tooltip. |
+ * |
+ * @attribute tipAttribute |
+ * @type string |
+ * @default 'tip' |
+ */ |
+ tipAttribute: 'tip', |
+ |
+ attached: function() { |
+ this.updatedChildren(); |
+ this.resizableAttachedHandler(); |
+ }, |
+ |
+ detached: function() { |
+ this.resizableDetachedHandler(); |
+ }, |
+ |
+ updatedChildren: function () { |
+ this.tipElement = null; |
+ |
+ for (var i = 0, el; el = this.$.c.getDistributedNodes()[i]; ++i) { |
+ if (el.hasAttribute && el.hasAttribute('tip')) { |
+ this.tipElement = el; |
+ break; |
+ } |
+ } |
+ |
+ // Job ensures we're not double calling setPosition() on DOM attach. |
+ this.job('positionJob', this.setPosition); |
+ |
+ // Monitor children to re-position tooltip when light dom changes. |
+ this.onMutation(this, this.updatedChildren); |
+ }, |
+ |
+ labelChanged: function(oldVal, newVal) { |
+ this.job('positionJob', this.setPosition); |
+ }, |
+ |
+ positionChanged: function(oldVal, newVal) { |
+ this.job('positionJob', this.setPosition); |
+ }, |
+ |
+ setPosition: function() { |
+ var controlWidth = this.clientWidth; |
+ var controlHeight = this.clientHeight; |
+ var toolTipWidth = this.$.tooltip.clientWidth; |
+ var toolTipHeight = this.$.tooltip.clientHeight; |
+ |
+ switch (this.position) { |
+ case 'top': |
+ case 'bottom': |
+ this.$.tooltip.style.left = (controlWidth - toolTipWidth) / 2 + 'px'; |
+ this.$.tooltip.style.top = null; |
+ break; |
+ case 'left': |
+ case 'right': |
+ this.$.tooltip.style.left = null; |
+ this.$.tooltip.style.top = (controlHeight - toolTipHeight) / 2 + 'px'; |
+ break; |
+ } |
+ } |
+ |
+ }; |
+ |
+ Polymer.mixin2(proto, Polymer.CoreFocusable); |
+ Polymer.mixin(proto, Polymer.CoreResizable); |
+ Polymer(proto); |
+ })(); |
+ |
+</script> |
+</polymer-element> |