Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(74)

Unified Diff: third_party/polymer/components/core-range/core-range.html

Issue 582873003: Polymer elements added to third_party/polymer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/polymer/components/core-range/core-range.html
diff --git a/third_party/polymer/components/core-range/core-range.html b/third_party/polymer/components/core-range/core-range.html
new file mode 100644
index 0000000000000000000000000000000000000000..e16993c91b33b99dc0a12176c3e2fbb7180d0ea6
--- /dev/null
+++ b/third_party/polymer/components/core-range/core-range.html
@@ -0,0 +1,108 @@
+<!--
+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-range` element is used for managing a numeric value within a given
+range. It has no visual appearance and is typically used in conjunction with
+another element.
+
+One can build a progress bar using `core-range` like this:
+
+ <core-range min="0" max="200" value="100" ratio="{{ratio}}"></core-range>
+ <div class="progress-bar" style="width: {{ratio}}%;"></div>
+
+@group Polymer Core Elements
+@element core-range
+@homepage github.io
+
+-->
+
+<link rel="import" href="../polymer/polymer.html">
+
+<polymer-element name="core-range" attributes="value min max step ratio">
+<script>
+
+ Polymer('core-range', {
+
+ /**
+ * The number that represents the current value.
+ *
+ * @attribute value
+ * @type number
+ * @default 0
+ */
+ value: 0,
+
+ /**
+ * The number that indicates the minimum value of the range.
+ *
+ * @attribute min
+ * @type number
+ * @default 0
+ */
+ min: 0,
+
+ /**
+ * The number that indicates the maximum value of the range.
+ *
+ * @attribute max
+ * @type number
+ * @default 100
+ */
+ max: 100,
+
+ /**
+ * Specifies the value granularity of the range's value.
+ *
+ * @attribute step
+ * @type number
+ * @default 1
+ */
+ step: 1,
+
+ /**
+ * Returns the ratio of the value.
+ *
+ * @attribute ratio
+ * @type number
+ * @default 0
+ */
+ ratio: 0,
+
+ observe: {
+ 'value min max step': 'update'
+ },
+
+ calcRatio: function(value) {
+ return (this.clampValue(value) - this.min) / (this.max - this.min);
+ },
+
+ clampValue: function(value) {
+ return Math.min(this.max, Math.max(this.min, this.calcStep(value)));
+ },
+
+ calcStep: function(value) {
+ return this.step ? (Math.round(value / this.step) / (1 / this.step)) : value;
+ },
+
+ validateValue: function() {
+ var v = this.clampValue(this.value);
+ this.value = this.oldValue = isNaN(v) ? this.oldValue : v;
+ return this.value !== v;
+ },
+
+ update: function() {
+ this.validateValue();
+ this.ratio = this.calcRatio(this.value) * 100;
+ }
+
+ });
+
+</script>
+</polymer-element>
« no previous file with comments | « third_party/polymer/components/core-range/bower.json ('k') | third_party/polymer/components/core-range/demo.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698