| Index: pkg/polymer/lib/elements/polymer-ui-arrow/polymer-ui-arrow.html
|
| diff --git a/pkg/polymer/lib/elements/polymer-ui-arrow/polymer-ui-arrow.html b/pkg/polymer/lib/elements/polymer-ui-arrow/polymer-ui-arrow.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f9280b6668cc878d599920a9611d93d11cd0ff8b
|
| --- /dev/null
|
| +++ b/pkg/polymer/lib/elements/polymer-ui-arrow/polymer-ui-arrow.html
|
| @@ -0,0 +1,125 @@
|
| +<!--
|
| +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-arrow is styled to look like an arrow.
|
| + *
|
| + * Example:
|
| + *
|
| + * <polymer-ui-arrow direction="up" size="20"></polymer-ui-arrow>
|
| + *
|
| + * @class polymer-ui-arrow
|
| + */
|
| +-->
|
| +<link rel="import" href="../polymer/polymer.html">
|
| +
|
| +<polymer-element name="polymer-ui-arrow" attributes="direction size color borderColor borderWidth">
|
| + <template>
|
| + <link rel="stylesheet" href="polymer-ui-arrow.css">
|
| + <div id="outer" class="arrow arrow-outer"></div>
|
| + <div id="inner" class="arrow arrow-inner"></div>
|
| + </template>
|
| + <script>
|
| + Polymer('polymer-ui-arrow', {
|
| + borders: {
|
| + up: 'Bottom',
|
| + down: 'Top',
|
| + left: 'Right',
|
| + right: 'Left'
|
| + },
|
| + tops: {
|
| + up: 1,
|
| + down: -1,
|
| + left: 0,
|
| + right: 0
|
| + },
|
| + lefts: {
|
| + up: 0,
|
| + down: 0,
|
| + left: 1,
|
| + right: -1
|
| + },
|
| + /**
|
| + * Direction of the arrow. Possible values are 'up', 'down', 'left'
|
| + * and 'right'.
|
| + *
|
| + * @attribute direction
|
| + * @type string
|
| + * @default 'up'
|
| + */
|
| + direction: 'up',
|
| + /**
|
| + * Size of the arrow.
|
| + *
|
| + * @attribute size
|
| + * @type number
|
| + * @default 10
|
| + */
|
| + size: 10,
|
| + /**
|
| + * Color of the arrow.
|
| + *
|
| + * @attribute color
|
| + * @type string
|
| + * @default '#fff'
|
| + */
|
| + color: '#fff',
|
| + /**
|
| + * Border color.
|
| + *
|
| + * @attribute borderColor
|
| + * @type string
|
| + * @default '#ccc'
|
| + */
|
| + borderColor: '#ccc',
|
| + /**
|
| + * Arrow border width.
|
| + *
|
| + * @attribute borderWidth
|
| + * @type number
|
| + * @default 1
|
| + */
|
| + borderWidth: 1,
|
| + ready: function() {
|
| + this.asyncUpdate();
|
| + },
|
| + directionChanged: function() {
|
| + this.asyncUpdate();
|
| + },
|
| + sizeChanged: function() {
|
| + this.asyncUpdate();
|
| + },
|
| + colorChanged: function() {
|
| + this.asyncUpdate();
|
| + },
|
| + borderColorChanged: function() {
|
| + this.asyncUpdate();
|
| + },
|
| + borderWidthChanged: function() {
|
| + this.asyncUpdate();
|
| + },
|
| + asyncUpdate: function() {
|
| + this.updateJob = this.job(this.updateJob, this.update, 1);
|
| + },
|
| + update: function() {
|
| + var os = this.$.outer.style;
|
| + var is = this.$.inner.style;
|
| + os.borderWidth = this.size + 'px';
|
| + is.borderWidth = this.size + 'px';
|
| + os.borderColor = 'transparent';
|
| + is.borderColor = 'transparent';
|
| + var bc = 'border' + this.borders[this.direction] + 'Color';
|
| + os[bc] = this.borderColor;
|
| + is[bc] = this.color;
|
| + is.top = this.tops[this.direction] * this.borderWidth + 'px';
|
| + is.left = this.lefts[this.direction] * this.borderWidth + 'px';
|
| + }
|
| + });
|
| + </script>
|
| +</polymer-element>
|
|
|