81 lines
2.1 KiB
JavaScript
81 lines
2.1 KiB
JavaScript
(function(){
|
|
|
|
var apiParams = {
|
|
colors: 1,
|
|
values: 1,
|
|
backgroundColor: 1,
|
|
scaleColors: 1,
|
|
normalizeFunction: 1,
|
|
enableZoom: 1,
|
|
showTooltip: 1,
|
|
borderColor: 1,
|
|
borderWidth: 1,
|
|
borderOpacity: 1,
|
|
selectedRegions: 1,
|
|
multiSelectRegion: 1
|
|
};
|
|
|
|
var apiEvents = {
|
|
onLabelShow: 'labelShow',
|
|
onLoad: 'load',
|
|
onRegionOver: 'regionMouseOver',
|
|
onRegionOut: 'regionMouseOut',
|
|
onRegionClick: 'regionClick',
|
|
onRegionSelect: 'regionSelect',
|
|
onRegionDeselect: 'regionDeselect',
|
|
onResize: 'resize'
|
|
};
|
|
|
|
jQuery.fn.vectorMap = function (options) {
|
|
|
|
var defaultParams = {
|
|
map: 'world_en',
|
|
backgroundColor: '#a5bfdd',
|
|
color: '#f4f3f0',
|
|
hoverColor: '#c9dfaf',
|
|
hoverColors: {},
|
|
selectedColor: '#c9dfaf',
|
|
scaleColors: ['#b6d6ff', '#005ace'],
|
|
normalizeFunction: 'linear',
|
|
enableZoom: true,
|
|
showTooltip: true,
|
|
borderColor: '#818181',
|
|
borderWidth: 1,
|
|
borderOpacity: 0.25,
|
|
selectedRegions: null,
|
|
multiSelectRegion: false
|
|
}, map = this.data('mapObject');
|
|
|
|
if (options === 'addMap') {
|
|
JQVMap.maps[arguments[1]] = arguments[2];
|
|
} else if (options === 'set' && apiParams[arguments[1]]) {
|
|
map['set' + arguments[1].charAt(0).toUpperCase() + arguments[1].substr(1)].apply(map, Array.prototype.slice.call(arguments, 2));
|
|
} else if (typeof options === 'string' &&
|
|
typeof map[options] === 'function') {
|
|
return map[options].apply(map, Array.prototype.slice.call(arguments, 1));
|
|
} else {
|
|
jQuery.extend(defaultParams, options);
|
|
defaultParams.container = this;
|
|
this.css({ position: 'relative', overflow: 'hidden' });
|
|
|
|
map = new JQVMap(defaultParams);
|
|
|
|
this.data('mapObject', map);
|
|
|
|
this.unbind('.jqvmap');
|
|
|
|
for (var e in apiEvents) {
|
|
if (defaultParams[e]) {
|
|
this.bind(apiEvents[e] + '.jqvmap', defaultParams[e]);
|
|
}
|
|
}
|
|
|
|
var loadEvent = jQuery.Event('load.jqvmap');
|
|
jQuery(defaultParams.container).trigger(loadEvent, map);
|
|
|
|
return map;
|
|
}
|
|
};
|
|
|
|
})(jQuery);
|