|
404 | 404 | } |
405 | 405 |
|
406 | 406 | for(var i = 0, length = legendOptions.slices.length; i < length; ++i) { |
407 | | - defaultElemOptions = (legendType == 'plot') ? options.map['defaultPlot'] : options.map['defaultArea']; |
408 | | - legendOptions.slices[i].attrs = $.extend( |
409 | | - {} |
410 | | - , defaultElemOptions.attrs |
411 | | - , legendOptions.slices[i].attrs |
412 | | - ); |
413 | | - legendOptions.slices[i].attrsHover = $.extend( |
414 | | - {} |
415 | | - , defaultElemOptions.attrsHover |
416 | | - , legendOptions.slices[i].attrsHover |
417 | | - ); |
418 | | - |
419 | | - if(legendType == 'area' || legendOptions.slices[i].type == "square") { |
420 | | - // Draw a square for squared plots AND areas |
421 | | - !legendOptions.slices[i].size && (legendOptions.slices[i].size = 20); |
| 407 | + if (typeof legendOptions.slices[i].display == 'undefined' || legendOptions.slices[i].display == true) { |
| 408 | + defaultElemOptions = (legendType == 'plot') ? options.map['defaultPlot'] : options.map['defaultArea']; |
| 409 | + legendOptions.slices[i].attrs = $.extend( |
| 410 | + {} |
| 411 | + , defaultElemOptions.attrs |
| 412 | + , legendOptions.slices[i].attrs |
| 413 | + ); |
| 414 | + legendOptions.slices[i].attrsHover = $.extend( |
| 415 | + {} |
| 416 | + , defaultElemOptions.attrsHover |
| 417 | + , legendOptions.slices[i].attrsHover |
| 418 | + ); |
422 | 419 |
|
423 | | - elem = paper.rect( |
424 | | - legendOptions.marginLeft |
425 | | - , height |
426 | | - , scale * (legendOptions.slices[i].size) |
427 | | - , scale * (legendOptions.slices[i].size) |
428 | | - ).attr(legendOptions.slices[i].attrs); |
429 | | - } else { |
430 | | - elem = paper.circle( |
431 | | - legendOptions.marginLeft + scale * (legendOptions.slices[i].size / 2) |
| 420 | + if(legendType == 'area' || legendOptions.slices[i].type == "square") { |
| 421 | + // Draw a square for squared plots AND areas |
| 422 | + !legendOptions.slices[i].size && (legendOptions.slices[i].size = 20); |
| 423 | + |
| 424 | + elem = paper.rect( |
| 425 | + legendOptions.marginLeft |
| 426 | + , height |
| 427 | + , scale * (legendOptions.slices[i].size) |
| 428 | + , scale * (legendOptions.slices[i].size) |
| 429 | + ).attr(legendOptions.slices[i].attrs); |
| 430 | + } else { |
| 431 | + elem = paper.circle( |
| 432 | + legendOptions.marginLeft + scale * (legendOptions.slices[i].size / 2) |
| 433 | + , height + scale * (legendOptions.slices[i].size / 2) |
| 434 | + , scale * (legendOptions.slices[i].size / 2) |
| 435 | + ).attr(legendOptions.slices[i].attrs); |
| 436 | + } |
| 437 | + |
| 438 | + label = paper.text( |
| 439 | + legendOptions.marginLeft + scale * legendOptions.slices[i].size + legendOptions.marginLeftLabel |
432 | 440 | , height + scale * (legendOptions.slices[i].size / 2) |
433 | | - , scale * (legendOptions.slices[i].size / 2) |
434 | | - ).attr(legendOptions.slices[i].attrs); |
435 | | - } |
436 | | - |
437 | | - label = paper.text( |
438 | | - legendOptions.marginLeft + scale * legendOptions.slices[i].size + legendOptions.marginLeftLabel |
439 | | - , height + scale * (legendOptions.slices[i].size / 2) |
440 | | - , legendOptions.slices[i].label |
441 | | - ).attr(legendOptions.labelAttrs); |
442 | | - |
443 | | - height += legendOptions.marginBottom + scale * legendOptions.slices[i].size; |
444 | | - width = Math.max(width, legendOptions.marginLeft + scale * legendOptions.slices[i].size + legendOptions.marginLeftLabel + label.getBBox().width); |
445 | | - |
446 | | - if (legendOptions.hideElemsOnClick.enabled) { |
447 | | - // Hide/show elements when user clicks on a legend element |
448 | | - label.attr({cursor:'pointer'}); |
| 441 | + , legendOptions.slices[i].label |
| 442 | + ).attr(legendOptions.labelAttrs); |
449 | 443 |
|
450 | | - $.fn.mapael.setHoverOptions(elem, legendOptions.slices[i].attrs, legendOptions.slices[i].attrsHover); |
451 | | - $.fn.mapael.setHoverOptions(label, legendOptions.labelAttrs, legendOptions.labelAttrs); |
452 | | - $.fn.mapael.setHover(paper, elem, label); |
| 444 | + height += legendOptions.marginBottom + scale * legendOptions.slices[i].size; |
| 445 | + width = Math.max(width, legendOptions.marginLeft + scale * legendOptions.slices[i].size + legendOptions.marginLeftLabel + label.getBBox().width); |
453 | 446 |
|
454 | | - label.hidden = false; |
455 | | - (function(i, elem, label) { |
456 | | - $(label.node).on('click', function() { |
457 | | - if (!label.hidden) { |
458 | | - label.animate({'opacity':0.5}, 300); |
459 | | - } else { |
460 | | - label.animate({'opacity':1}, 300); |
461 | | - } |
462 | | - |
463 | | - for (var id in elems) { |
464 | | - if ((!legendOptions.slices[i].min || elems[id].value >= legendOptions.slices[i].min) |
465 | | - && (!legendOptions.slices[i].max || elems[id].value < legendOptions.slices[i].max) |
466 | | - ) { |
467 | | - (function(id) { |
468 | | - if (!label.hidden) { |
469 | | - elems[id].mapElem.animate({'opacity':legendOptions.hideElemsOnClick.opacity}, 300, 'linear', function() {(legendOptions.hideElemsOnClick.opacity == 0) && elems[id].mapElem.hide();}); |
470 | | - elems[id].textElem && elems[id].textElem.animate({'opacity':legendOptions.hideElemsOnClick.opacity}, 300, 'linear', function() {(legendOptions.hideElemsOnClick.opacity == 0) && elems[id].textElem.hide();}); |
471 | | - } else { |
472 | | - if (legendOptions.hideElemsOnClick.opacity == 0) { |
473 | | - elems[id].mapElem.show(); |
474 | | - elems[id].textElem && elems[id].textElem.show(); |
| 447 | + if (legendOptions.hideElemsOnClick.enabled) { |
| 448 | + // Hide/show elements when user clicks on a legend element |
| 449 | + label.attr({cursor:'pointer'}); |
| 450 | + |
| 451 | + $.fn.mapael.setHoverOptions(elem, legendOptions.slices[i].attrs, legendOptions.slices[i].attrsHover); |
| 452 | + $.fn.mapael.setHoverOptions(label, legendOptions.labelAttrs, legendOptions.labelAttrs); |
| 453 | + $.fn.mapael.setHover(paper, elem, label); |
| 454 | + |
| 455 | + label.hidden = false; |
| 456 | + (function(i, elem, label) { |
| 457 | + $(label.node).on('click', function() { |
| 458 | + if (!label.hidden) { |
| 459 | + label.animate({'opacity':0.5}, 300); |
| 460 | + } else { |
| 461 | + label.animate({'opacity':1}, 300); |
| 462 | + } |
| 463 | + |
| 464 | + for (var id in elems) { |
| 465 | + if ((!legendOptions.slices[i].min || elems[id].value >= legendOptions.slices[i].min) |
| 466 | + && (!legendOptions.slices[i].max || elems[id].value < legendOptions.slices[i].max) |
| 467 | + ) { |
| 468 | + (function(id) { |
| 469 | + if (!label.hidden) { |
| 470 | + elems[id].mapElem.animate({'opacity':legendOptions.hideElemsOnClick.opacity}, 300, 'linear', function() {(legendOptions.hideElemsOnClick.opacity == 0) && elems[id].mapElem.hide();}); |
| 471 | + elems[id].textElem && elems[id].textElem.animate({'opacity':legendOptions.hideElemsOnClick.opacity}, 300, 'linear', function() {(legendOptions.hideElemsOnClick.opacity == 0) && elems[id].textElem.hide();}); |
| 472 | + } else { |
| 473 | + if (legendOptions.hideElemsOnClick.opacity == 0) { |
| 474 | + elems[id].mapElem.show(); |
| 475 | + elems[id].textElem && elems[id].textElem.show(); |
| 476 | + } |
| 477 | + elems[id].mapElem.animate({'opacity':typeof elems[id].mapElem.originalAttrs.opacity != "undefined" ? elems[id].mapElem.originalAttrs.opacity : 1}, 300); |
| 478 | + elems[id].textElem && elems[id].textElem.animate({'opacity':typeof elems[id].textElem.originalAttrs.opacity != "undefined" ? elems[id].textElem.originalAttrs.opacity : 1}, 300); |
475 | 479 | } |
476 | | - elems[id].mapElem.animate({'opacity':typeof elems[id].mapElem.originalAttrs.opacity != "undefined" ? elems[id].mapElem.originalAttrs.opacity : 1}, 300); |
477 | | - elems[id].textElem && elems[id].textElem.animate({'opacity':typeof elems[id].textElem.originalAttrs.opacity != "undefined" ? elems[id].textElem.originalAttrs.opacity : 1}, 300); |
478 | | - } |
479 | | - })(id); |
| 480 | + })(id); |
| 481 | + } |
480 | 482 | } |
481 | | - } |
482 | | - label.hidden = !label.hidden; |
483 | | - }); |
484 | | - })(i, elem, label); |
| 483 | + label.hidden = !label.hidden; |
| 484 | + }); |
| 485 | + })(i, elem, label); |
| 486 | + } |
485 | 487 | } |
486 | 488 | } |
487 | 489 |
|
|
0 commit comments