aboutsummaryrefslogtreecommitdiffhomepage
path: root/public/bower_components/jvectormap/src/legend.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/bower_components/jvectormap/src/legend.js')
-rw-r--r--public/bower_components/jvectormap/src/legend.js83
1 files changed, 83 insertions, 0 deletions
diff --git a/public/bower_components/jvectormap/src/legend.js b/public/bower_components/jvectormap/src/legend.js
new file mode 100644
index 0000000..fdc3177
--- /dev/null
+++ b/public/bower_components/jvectormap/src/legend.js
@@ -0,0 +1,83 @@
+/**
+ * Represents map legend.
+ * @constructor
+ * @param {Object} params Configuration parameters.
+ * @param {String} params.cssClass Additional CSS class to apply to legend element.
+ * @param {Boolean} params.vertical If <code>true</code> legend will be rendered as vertical.
+ * @param {String} params.title Legend title.
+ * @param {Function} params.labelRender Method to convert series values to legend labels.
+ */
+jvm.Legend = function(params) {
+ this.params = params || {};
+ this.map = this.params.map;
+ this.series = this.params.series;
+ this.body = jvm.$('<div/>');
+ this.body.addClass('jvectormap-legend');
+ if (this.params.cssClass) {
+ this.body.addClass(this.params.cssClass);
+ }
+
+ if (params.vertical) {
+ this.map.legendCntVertical.append( this.body );
+ } else {
+ this.map.legendCntHorizontal.append( this.body );
+ }
+
+ this.render();
+}
+
+jvm.Legend.prototype.render = function(){
+ var ticks = this.series.scale.getTicks(),
+ i,
+ inner = jvm.$('<div/>').addClass('jvectormap-legend-inner'),
+ tick,
+ sample,
+ label;
+
+ this.body.html('');
+ if (this.params.title) {
+ this.body.append(
+ jvm.$('<div/>').addClass('jvectormap-legend-title').html(this.params.title)
+ );
+ }
+ this.body.append(inner);
+
+ for (i = 0; i < ticks.length; i++) {
+ tick = jvm.$('<div/>').addClass('jvectormap-legend-tick');
+ sample = jvm.$('<div/>').addClass('jvectormap-legend-tick-sample');
+
+ switch (this.series.params.attribute) {
+ case 'fill':
+ if (jvm.isImageUrl(ticks[i].value)) {
+ sample.css('background', 'url('+ticks[i].value+')');
+ } else {
+ sample.css('background', ticks[i].value);
+ }
+ break;
+ case 'stroke':
+ sample.css('background', ticks[i].value);
+ break;
+ case 'image':
+ sample.css('background', 'url('+ticks[i].value+') no-repeat center center');
+ break;
+ case 'r':
+ jvm.$('<div/>').css({
+ 'border-radius': ticks[i].value,
+ border: this.map.params.markerStyle.initial['stroke-width']+'px '+
+ this.map.params.markerStyle.initial['stroke']+' solid',
+ width: ticks[i].value * 2 + 'px',
+ height: ticks[i].value * 2 + 'px',
+ background: this.map.params.markerStyle.initial['fill']
+ }).appendTo(sample);
+ break;
+ }
+ tick.append( sample );
+ label = ticks[i].label;
+ if (this.params.labelRender) {
+ label = this.params.labelRender(label);
+ }
+ tick.append( jvm.$('<div>'+label+' </div>').addClass('jvectormap-legend-tick-text') );
+ inner.append(tick);
+ }
+ inner.append( jvm.$('<div/>').css('clear', 'both') );
+} \ No newline at end of file