From 6eeaf260644ce1695091bd5c51784820d8074ed3 Mon Sep 17 00:00:00 2001 From: techfg Date: Fri, 5 Apr 2024 21:51:32 -0700 Subject: [PATCH] feat: add esm support for jquery dist - resolves #415 --- dist/jquery.imagemapster.js | 30 +- dist/jquery.imagemapster.min.js | 2 +- dist/jquery.imagemapster.min.js.map | 2 +- dist/jquery.imagemapster.min.mjs | 8 + dist/jquery.imagemapster.min.mjs.map | 1 + dist/jquery.imagemapster.mjs | 4586 +++++++++++++++++++++ dist/jquery.imagemapster.zepto.js | 30 +- dist/jquery.imagemapster.zepto.min.js | 2 +- dist/jquery.imagemapster.zepto.min.js.map | 2 +- gruntfile.js | 21 + jqueryplugin.esm.hbs | 9 + jqueryplugin.hbs | 4 +- package.json | 14 + zeptoplugin.hbs | 4 +- 14 files changed, 4677 insertions(+), 38 deletions(-) create mode 100644 dist/jquery.imagemapster.min.mjs create mode 100644 dist/jquery.imagemapster.min.mjs.map create mode 100644 dist/jquery.imagemapster.mjs create mode 100644 jqueryplugin.esm.hbs diff --git a/dist/jquery.imagemapster.js b/dist/jquery.imagemapster.js index 0bda1f0..2a5043e 100644 --- a/dist/jquery.imagemapster.js +++ b/dist/jquery.imagemapster.js @@ -1,5 +1,5 @@ /*! -* imagemapster - v1.6.0 - 2024-03-12 +* imagemapster - v1.6.0 - 2024-04-05 * https://github.com/jamietre/ImageMapster/ * Copyright (c) 2011 - 2024 James Treworgy * License: MIT @@ -31,7 +31,7 @@ factory(jQuery); } }(function (jQuery) { - /* +/* jqueryextensions.js Extend/intercept jquery behavior */ @@ -699,8 +699,8 @@ return d && d.g_vml_ ? false : $('')[0].getContext - ? true - : false; + ? true + : false; } /** @@ -2606,8 +2606,8 @@ return !ar ? '' : ar.isPrimary - ? ar.key - : this.getPrimaryKeysForMapAreas(ar.areas()).join(','); + ? ar.key + : this.getPrimaryKeysForMapAreas(ar.areas()).join(','); }, /** @@ -2948,8 +2948,8 @@ sel = m.hasVml() ? 'area' : default_group - ? 'area[coords]' - : 'area[' + opts.mapKey + ']'; + ? 'area[coords]' + : 'area[' + opts.mapKey + ']'; areas = $(me.map).find(sel).off('.mapster'); @@ -3354,22 +3354,22 @@ return u.isBool(this.selected) ? this.selected : u.isBool(this.owner.area_options.selected) - ? this.owner.area_options.selected - : false; + ? this.owner.area_options.selected + : false; }, isSelectable: function () { return u.isBool(this.effectiveOptions().staticState) ? false : u.isBool(this.owner.options.staticState) - ? false - : u.boolOrDefault(this.effectiveOptions().isSelectable, true); + ? false + : u.boolOrDefault(this.effectiveOptions().isSelectable, true); }, isDeselectable: function () { return u.isBool(this.effectiveOptions().staticState) ? false : u.isBool(this.owner.options.staticState) - ? false - : u.boolOrDefault(this.effectiveOptions().isDeselectable, true); + ? false + : u.boolOrDefault(this.effectiveOptions().isDeselectable, true); }, isNotRendered: function () { return isNoHref(this.area) || this.effectiveOptions().isMask; @@ -4603,4 +4603,4 @@ }; })(jQuery); -})); \ No newline at end of file +})); diff --git a/dist/jquery.imagemapster.min.js b/dist/jquery.imagemapster.min.js index 7ff881a..320217e 100644 --- a/dist/jquery.imagemapster.min.js +++ b/dist/jquery.imagemapster.min.js @@ -1,5 +1,5 @@ /*! -* imagemapster - v1.6.0 - 2024-03-12 +* imagemapster - v1.6.0 - 2024-04-05 * https://github.com/jamietre/ImageMapster/ * Copyright (c) 2011 - 2024 James Treworgy * License: MIT diff --git a/dist/jquery.imagemapster.min.js.map b/dist/jquery.imagemapster.min.js.map index 0a3eafe..8d51ac1 100644 --- a/dist/jquery.imagemapster.min.js.map +++ b/dist/jquery.imagemapster.min.js.map @@ -1 +1 @@ -{"version":3,"file":"jquery.imagemapster.min.js","sources":["jquery.imagemapster.js"],"names":["factory","define","amd","module","exports","root","jQuery","undefined","window","require","$","event","special","setupListener","supportsPassive","opts","Object","defineProperty","get","addEventListener","removeEventListener","e","ns","type","listener","includes","this","passive","touchstart","setup","_","call","touchend","mapster_version","m","fn","mapster","method","impl","utils","isFunction","apply","Array","prototype","slice","arguments","error","bind","version","render_defaults","isSelectable","isDeselectable","fade","fadeDuration","fill","fillColor","fillColorMask","fillOpacity","highlight","stroke","strokeColor","strokeOpacity","strokeWidth","includeKeys","altImage","altImageId","altImages","defaults","clickNavigate","navigateMode","wrapClass","wrapCss","onGetList","sortList","listenToList","mapKey","mapValue","singleSelect","listKey","listSelectedAttribute","listSelectedClass","onClick","onMouseover","onMouseout","mouseoutDelay","onStateChange","boundList","onConfigured","configTimeout","noHrefIsMask","scaleMap","enableAutoResizeSupport","autoResize","autoResizeDelay","autoResizeDuration","onAutoResize","safeLoad","areas","shared_defaults","render_highlight","render_select","staticState","selected","area_defaults","isMask","canvas_style","position","left","top","padding","border","hasCanvas","map_cache","hooks","addHook","name","callback","push","callHooks","context","each","when","all","deferredArray","Promise","defer","promise","resolve","reject","then","catch","subclass","BaseClass","constr","Subclass","me","args","base","init","constructor","asArray","obj","split","text","cb","el","arr","i","length","trim","splice","updateProps","_target","_template","target","template","isEmptyObject","onlyProps","prop","src","p","inArray","isPlainObject","extend","isElement","o","HTMLElement","nodeType","nodeName","indexOf","indexOfProp","val","result","boolOrDefault","def","isBool","isUndef","ifFunction","that","size","image","raw","u","width","naturalWidth","imgWidth","height","naturalHeight","imgHeight","complete","setOpacity","opacity","style","css","fader","fade_func","op","endOp","duration","index","cbIntervals","elements","lastKey","setTimeout","getShape","areaEl","shape","toLowerCase","hasAttribute","attrName","attr","getBoundList","key_list","key","list","is","add","getMapDataIndex","img","id","tagName","parent","getMapData","queueCommand","map_data","command","currentAction","commands","unload","off","ap","capProp","substr","toUpperCase","jqwidth","Method","func_map","func_area","output","input","first","allowAsync","go","data","ar","area_list","len","getData","addMap","removeMap","hasVml","a","appendTo","b","html","firstChild","has","behavior","adj","remove","namespaces","document","d","g_vml_","getContext","merge_areas","map_areas","options","getDataForKey","merge_options","temp_opts","area_options","md","getSelected","isSelected","defaultReturn","highlightId","ensureNoHighlight","keys","keyList","addUniqueKeys","getKeysForGroup","getDataForArea","join","ad","concat","select","set","deselect","lastMap","addArea","finishSetForMap","setSelection","toggle","removeSelectionFinish","filter","toString","unbind","preserveState","clearEvents","clearMapData","rebind","configureOptions","bindImages","buildDataset","get_options","effective","eff","effectiveOptions","set_options","graphics","snapshot","base_canvas","createVisibleCanvas","before","state","map","usemap","getAttribute","MapData","initialize","useCanvas","shapes","value","v","createStyleSheet","addRule","test","eval","canvasMethods","vmlMethods","addShapeGroupImpl","areaData","nohref","addShape","hex_to_decimal","hex","Math","max","min","parseInt","css3color","color","noop","Graphics","active","canvas","masks","begin","elementName","c","mapArea","mapData","createCanvasFor","addClass","addShapeGroup","mode","effectiveRenderOptions","areaId","overlay_canvas","render","find","not","renderShape","offset","coords","rect","moveTo","lineTo","arc","PI","addAltImage","beginPath","closePath","clip","globalAlpha","altImageOpacity","drawImage","owner","scaleInfo","maskCanvas","maskContext","hasMasks","shapeCanvas","shapeContext","clearRect","save","lineWidth","fillStyle","restore","s","images","strokeStyle","globalCompositeOperation","clearHighlight","refreshSelections","canvas_temp","hide","redrawSelections","show","cssclass","el_name","el_class","t_fill","append","w","h","children","removeSelections","area_id","MapImages","clear","status","_add","ids","on","imageLoaded","imageLoadError","triesLeft","check","isLoaded","imgTimeout","deferred","resolver","clearTimeout","queueMouseEvent","delay","area","activeAreaEvent","completeAction","currentAreaId","shouldNavigateTo","href","mousedown","blur","preventDefault","imgCssText","cssText","mapAreas","_xref","_tooltip_events","autoResizeTimer","mouseover","arData","getAllDataForArea","isNotRendered","clearEffects","showToolTip","toolTip","mouseout","relatedTarget","click","list_target","newSelectionState","canChangeState","cbResult","areaOpts","navigateTo","open","location","getNavDetails","defaultHref","useEl","elHref","hrefTarget","clickArea","listTarget","navDetails","toolTipClose","activeToolTip","clearToolTip","mi","e2","isActive","resizing","zoomed","zoomedArea","wrapId","instanceEventNamespace","_idFromKey","hasOwnProperty","atMost","isPrimary","getPrimaryKeysForMapAreas","changeState","setHighlightId","clearSelections","setAreaOptions","drawSelections","key_arr","drawSelection","isSelectedOrStatic","setBoundListProperties","removeClass","clearBoundListProperties","refreshBoundList","setBoundList","sort_func","sorted_list","sort","wrap","scale","parentId","substring","className","wrapper","imgCopy","display","processCommandQueue","configureAutoResize","$img","sel","j","$area","curKey","mapAreaId","group_value","dataItem","default_group","addAreaData","AreaData","String","configure","areaDataXref","MapArea","areasXref","cur","_clearCanvases","reset","g","isNoHref","staticStateOverridden","optsCache","constuctor","newOptsCache","hasOptions","changeOptions","isDrawn","selectedHasChanged","updateSelected","partial","prevSelected","allOpts","state_type","originalCoords","parseFloat","areaCorners","container","pos","found","minX","minY","maxX","maxY","bestMinX","bestMaxX","bestMinY","bestMaxY","curX","curY","nest","rootx","rooty","iCoords","radius","angle","offsetx","offsety","body","cos","sin","getScaleInfo","actual","pct","scalePct","realWidth","realHeight","ratio","imageRaw","vis","resize","promises","newsize","sizeCanvas","finishResize","tempOptions","resizeMapData","round","els","animate","easing","resizeMap","percent","coordOffset","newCoords","noDimensions","isAutoResize","createToolTip","tooltip","clone","bindToolTipClose","bindOption","beforeClose","onClose","tooltip_ns","event_name","ttopts","corners","outerWidth","outerHeight","tooltipCss","actalOpacity","zindex","getHtmlFromOptions","jquery","content","getOptionsFromOptions","toolTipContainer","toolTipFade","onShowToolTip","onHideToolTip","stop","activeToolTipID","closeOpts","closeEvents","effectiveContent","tipClosed","areaOptions","defaultTarget"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"jquery.imagemapster.min.js","sources":["jquery.imagemapster.js"],"names":["factory","define","amd","module","exports","root","jQuery","undefined","window","require","$","event","special","setupListener","supportsPassive","opts","Object","defineProperty","get","addEventListener","removeEventListener","e","ns","type","listener","includes","this","passive","touchstart","setup","_","call","touchend","mapster_version","m","fn","mapster","method","impl","utils","isFunction","apply","Array","prototype","slice","arguments","error","bind","version","render_defaults","isSelectable","isDeselectable","fade","fadeDuration","fill","fillColor","fillColorMask","fillOpacity","highlight","stroke","strokeColor","strokeOpacity","strokeWidth","includeKeys","altImage","altImageId","altImages","defaults","clickNavigate","navigateMode","wrapClass","wrapCss","onGetList","sortList","listenToList","mapKey","mapValue","singleSelect","listKey","listSelectedAttribute","listSelectedClass","onClick","onMouseover","onMouseout","mouseoutDelay","onStateChange","boundList","onConfigured","configTimeout","noHrefIsMask","scaleMap","enableAutoResizeSupport","autoResize","autoResizeDelay","autoResizeDuration","onAutoResize","safeLoad","areas","shared_defaults","render_highlight","render_select","staticState","selected","area_defaults","isMask","canvas_style","position","left","top","padding","border","hasCanvas","map_cache","hooks","addHook","name","callback","push","callHooks","context","each","when","all","deferredArray","Promise","defer","promise","resolve","reject","then","catch","subclass","BaseClass","constr","Subclass","me","args","base","init","constructor","asArray","obj","split","text","cb","el","arr","i","length","trim","splice","updateProps","_target","_template","target","template","isEmptyObject","onlyProps","prop","src","p","inArray","isPlainObject","extend","isElement","o","HTMLElement","nodeType","nodeName","indexOf","indexOfProp","val","result","boolOrDefault","def","isBool","isUndef","ifFunction","that","size","image","raw","u","width","naturalWidth","imgWidth","height","naturalHeight","imgHeight","complete","setOpacity","opacity","style","css","fader","fade_func","op","endOp","duration","index","cbIntervals","elements","lastKey","setTimeout","getShape","areaEl","shape","toLowerCase","hasAttribute","attrName","attr","getBoundList","key_list","key","list","is","add","getMapDataIndex","img","id","tagName","parent","getMapData","queueCommand","map_data","command","currentAction","commands","unload","off","ap","capProp","substr","toUpperCase","jqwidth","Method","func_map","func_area","output","input","first","allowAsync","go","data","ar","area_list","len","getData","addMap","removeMap","hasVml","a","appendTo","b","html","firstChild","has","behavior","adj","remove","namespaces","document","d","g_vml_","getContext","merge_areas","map_areas","options","getDataForKey","merge_options","temp_opts","area_options","md","getSelected","isSelected","defaultReturn","highlightId","ensureNoHighlight","keys","keyList","addUniqueKeys","getKeysForGroup","getDataForArea","join","ad","concat","select","set","deselect","lastMap","addArea","finishSetForMap","setSelection","toggle","removeSelectionFinish","filter","toString","unbind","preserveState","clearEvents","clearMapData","rebind","configureOptions","bindImages","buildDataset","get_options","effective","eff","effectiveOptions","set_options","graphics","snapshot","base_canvas","createVisibleCanvas","before","state","map","usemap","getAttribute","MapData","initialize","useCanvas","shapes","value","v","createStyleSheet","addRule","test","eval","canvasMethods","vmlMethods","addShapeGroupImpl","areaData","nohref","addShape","hex_to_decimal","hex","Math","max","min","parseInt","css3color","color","noop","Graphics","active","canvas","masks","begin","elementName","c","mapArea","mapData","createCanvasFor","addClass","addShapeGroup","mode","effectiveRenderOptions","areaId","overlay_canvas","render","find","not","renderShape","offset","coords","rect","moveTo","lineTo","arc","PI","addAltImage","beginPath","closePath","clip","globalAlpha","altImageOpacity","drawImage","owner","scaleInfo","maskCanvas","maskContext","hasMasks","shapeCanvas","shapeContext","clearRect","save","lineWidth","fillStyle","restore","s","images","strokeStyle","globalCompositeOperation","clearHighlight","refreshSelections","canvas_temp","hide","redrawSelections","show","cssclass","el_name","el_class","t_fill","append","w","h","children","removeSelections","area_id","MapImages","clear","status","_add","ids","on","imageLoaded","imageLoadError","triesLeft","check","isLoaded","imgTimeout","deferred","resolver","clearTimeout","queueMouseEvent","delay","area","activeAreaEvent","completeAction","currentAreaId","shouldNavigateTo","href","mousedown","blur","preventDefault","imgCssText","cssText","mapAreas","_xref","_tooltip_events","autoResizeTimer","mouseover","arData","getAllDataForArea","isNotRendered","clearEffects","showToolTip","toolTip","mouseout","relatedTarget","click","list_target","newSelectionState","canChangeState","cbResult","areaOpts","navigateTo","open","location","getNavDetails","defaultHref","useEl","elHref","hrefTarget","clickArea","listTarget","navDetails","toolTipClose","activeToolTip","clearToolTip","mi","e2","isActive","resizing","zoomed","zoomedArea","wrapId","instanceEventNamespace","_idFromKey","hasOwnProperty","atMost","isPrimary","getPrimaryKeysForMapAreas","changeState","setHighlightId","clearSelections","setAreaOptions","drawSelections","key_arr","drawSelection","isSelectedOrStatic","setBoundListProperties","removeClass","clearBoundListProperties","refreshBoundList","setBoundList","sort_func","sorted_list","sort","wrap","scale","parentId","substring","className","wrapper","imgCopy","display","processCommandQueue","configureAutoResize","$img","sel","j","$area","curKey","mapAreaId","group_value","dataItem","default_group","addAreaData","AreaData","String","configure","areaDataXref","MapArea","areasXref","cur","_clearCanvases","reset","g","isNoHref","staticStateOverridden","optsCache","constuctor","newOptsCache","hasOptions","changeOptions","isDrawn","selectedHasChanged","updateSelected","partial","prevSelected","allOpts","state_type","originalCoords","parseFloat","areaCorners","container","pos","found","minX","minY","maxX","maxY","bestMinX","bestMaxX","bestMinY","bestMaxY","curX","curY","nest","rootx","rooty","iCoords","radius","angle","offsetx","offsety","body","cos","sin","getScaleInfo","actual","pct","scalePct","realWidth","realHeight","ratio","imageRaw","vis","resize","promises","newsize","sizeCanvas","finishResize","tempOptions","resizeMapData","round","els","animate","easing","resizeMap","percent","coordOffset","newCoords","noDimensions","isAutoResize","createToolTip","tooltip","clone","bindToolTipClose","bindOption","beforeClose","onClose","tooltip_ns","event_name","ttopts","corners","outerWidth","outerHeight","tooltipCss","actalOpacity","zindex","getHtmlFromOptions","jquery","content","getOptionsFromOptions","toolTipContainer","toolTipFade","onShowToolTip","onHideToolTip","stop","activeToolTipID","closeOpts","closeEvents","effectiveContent","tipClosed","areaOptions","defaultTarget"],"mappings":"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"} \ No newline at end of file diff --git a/dist/jquery.imagemapster.min.mjs b/dist/jquery.imagemapster.min.mjs new file mode 100644 index 0000000..540763f --- /dev/null +++ b/dist/jquery.imagemapster.min.mjs @@ -0,0 +1,8 @@ +/*! +* imagemapster - v1.6.0 - 2024-04-05 +* https://github.com/jamietre/ImageMapster/ +* Copyright (c) 2011 - 2024 James Treworgy +* License: MIT +*/ +import jQuery from"jquery";function imagemapsterFactory(jQuery){!function(e){"use strict";if(e.event&&e.event.special){var i,t=!1;try{var a=Object.defineProperty({},"passive",{get:function(){return t=!0}});window.addEventListener("testPassive.mapster",function(){},a),window.removeEventListener("testPassive.mapster",function(){},a)}catch(e){}t&&(i=function(e,t,a){if(!e.includes("mapster")||!e.includes("noPreventDefault"))return!1;this.addEventListener(t,a,{passive:!0})},e.event.special.touchstart={setup:function(e,t,a){return i.call(this,t,"touchstart",a)}},e.event.special.touchend={setup:function(e,t,a){return i.call(this,t,"touchend",a)}})}}(jQuery),!function($){"use strict";var mapster_version="1.6.0",m=($.fn.mapster=function(e){var t=$.mapster.impl;return $.mapster.utils.isFunction(t[e])?t[e].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof e&&e?void $.error("Method "+e+" does not exist on jQuery.mapster"):t.bind.apply(this,arguments)},$.mapster={version:mapster_version,render_defaults:{isSelectable:!0,isDeselectable:!0,fade:!1,fadeDuration:150,fill:!0,fillColor:"000000",fillColorMask:"FFFFFF",fillOpacity:.7,highlight:!0,stroke:!1,strokeColor:"ff0000",strokeOpacity:1,strokeWidth:1,includeKeys:"",altImage:null,altImageId:null,altImages:{}},defaults:{clickNavigate:!1,navigateMode:"location",wrapClass:null,wrapCss:null,onGetList:null,sortList:!1,listenToList:!1,mapKey:"",mapValue:"",singleSelect:!1,listKey:"value",listSelectedAttribute:"selected",listSelectedClass:null,onClick:null,onMouseover:null,onMouseout:null,mouseoutDelay:0,onStateChange:null,boundList:null,onConfigured:null,configTimeout:3e4,noHrefIsMask:!0,scaleMap:!0,enableAutoResizeSupport:!1,autoResize:!1,autoResizeDelay:0,autoResizeDuration:0,onAutoResize:null,safeLoad:!1,areas:[]},shared_defaults:{render_highlight:{fade:!0},render_select:{fade:!1},staticState:null,selected:null},area_defaults:{includeKeys:"",isMask:!1},canvas_style:{position:"absolute",left:0,top:0,padding:0,border:0},hasCanvas:null,map_cache:[],hooks:{},addHook:function(e,t){this.hooks[e]=(this.hooks[e]||[]).push(t)},callHooks:function(e,a){$.each(this.hooks[e]||[],function(e,t){t.apply(a)})},utils:{when:{all:function(e){return Promise.all(e)},defer:function(){return new function(){this.promise=new Promise(function(e,t){this.resolve=e,this.reject=t}.bind(this)),this.then=this.promise.then.bind(this.promise),this.catch=this.promise.catch.bind(this.promise)}}},defer:function(){return this.when.defer()},subclass:function(a,i){function e(){var e=this,t=Array.prototype.slice.call(arguments,0);e.base=a.prototype,e.base.init=function(){a.prototype.constructor.apply(e,t)},i.apply(e,t)}return(e.prototype=new a).constructor=e},asArray:function(e){return e.constructor===Array?e:this.split(e)},split:function(e,t){for(var a,i=e.split(","),n=0;n=e.index;t--)m.map_cache[t].index--};function hasVml(){var e=$("
").appendTo("body"),t=(e.html(''),e[0].firstChild),t=(t.style.behavior="url(#default#VML)",!t||"object"==typeof t.adj);return e.remove(),t}function namespaces(){return"object"==typeof document.namespaces?document.namespaces:null}function hasCanvas(){var e=namespaces();return!(e&&e.g_vml_||!$("")[0].getContext)}function merge_areas(a,e){var i,n=a.options.areas;e&&$.each(e,function(e,t){t&&t.key&&(0<=(i=u.indexOfProp(n,"key",t.key))?$.extend(n[i],t):n.push(t),i=a.getDataForKey(t.key))&&$.extend(i.options,t)})}function merge_options(e,t){var a=u.updateProps({},t);delete a.areas,u.updateProps(e.options,a),merge_areas(e,t.areas),u.updateProps(e.area_options,e.options)}return me.get=function(e){var t=m.getMapData(this);if(t&&t.complete)return new m.Method(this,function(){return this.getSelected()},function(){return this.isSelected()},{name:"get",args:arguments,key:e,first:!0,allowAsync:!0,defaultReturn:""}).go();throw"Can't access data until binding complete."},me.data=function(e){return new m.Method(this,null,function(){return this},{name:"data",args:arguments,key:e}).go()},me.highlight=function(t){return new m.Method(this,function(){var e;if(!1!==t)return 0<=(e=this.highlightId)?this.data[e].key:null;this.ensureNoHighlight()},function(){this.highlight()},{name:"highlight",args:arguments,key:t,first:!0}).go()},me.keys=function(e,i){var n=[],a=m.getMapData(this);if(a&&a.complete)return a&&a.complete?("string"==typeof e?i?s(a.getDataForKey(e)):n=[a.getKeysForGroup(e)]:(i=e,this.each(function(e,t){"AREA"===t.nodeName&&s(a.getDataForArea(t))})),n.join(",")):"";throw"Can't access data until binding complete.";function s(e){var t,a=[];i?(t=e.areas(),$.each(t,function(e,t){a=a.concat(t.keys)})):a.push(e.key),$.each(a,function(e,t){$.inArray(t,n)<0&&n.push(t)})}},me.select=function(){me.set.call(this,!0)},me.deselect=function(){me.set.call(this,!1)},me.set=function(i,n,e){var s,o,r,c,l=e;function h(e){e&&$.inArray(e,c)<0&&(c.push(e),r+=(""===r?"":",")+e.key)}function p(e){$.each(c,function(e,t){var a=t;if(a)switch(i){case!0:a.select(l);break;case!1:a.deselect(!0);break;default:a.toggle(l)}}),i||e.removeSelectionFinish()}return this.filter("img,area").each(function(e,t){var a;(o=m.getMapData(t))!==s&&(s&&p(s),c=[],r=""),o&&(a="","IMG"===t.nodeName.toUpperCase()?m.queueCommand(o,$(t),"set",[i,n,l])||(n instanceof Array?n.length&&(a=n.join(",")):a=n,a&&$.each(u.split(a),function(e,t){h(o.getDataForKey(t.toString())),s=o})):(l=n,m.queueCommand(o,$(t),"set",[i,l])||(h(o.getDataForArea(t)),s=o)))}),o&&p(o),this},me.unbind=function(e){return new m.Method(this,function(){this.clearEvents(),this.clearMapData(e),removeMap(this)},null,{name:"unbind",args:arguments}).go()},me.rebind=function(t){return new m.Method(this,function(){var e=this;e.complete=!1,e.configureOptions(t),e.bindImages().then(function(){e.buildDataset(!0),e.complete=!0,e.onConfigured()})},null,{name:"rebind",args:arguments}).go()},me.get_options=function(e,t){var a=u.isBool(e)?e:t;return new m.Method(this,function(){var e=$.extend({},this.options);return a&&(e.render_select=u.updateProps({},m.render_defaults,e,e.render_select),e.render_highlight=u.updateProps({},m.render_defaults,e,e.render_highlight)),e},function(){return a?this.effectiveOptions():this.options},{name:"get_options",args:arguments,first:!0,allowAsync:!0,key:e}).go()},me.set_options=function(e){return new m.Method(this,function(){merge_options(this,e)},null,{name:"set_options",args:arguments}).go()},me.unload=function(){for(var e=m.map_cache.length-1;0<=e;e--)m.map_cache[e]&&me.unbind.call($(m.map_cache[e].image));me.graphics=null},me.snapshot=function(){return new m.Method(this,function(){$.each(this.data,function(e,t){t.selected=!1}),this.base_canvas=this.graphics.createVisibleCanvas(this),$(this.image).before(this.base_canvas)},null,{name:"snapshot"}).go()},me.state=function(){var a,i=null;return $(this).each(function(e,t){if("IMG"===t.nodeName)return(a=m.getMapData(t))&&(i=a.state()),!1}),i},me.bind=function(s){return this.each(function(e,t){var a,i=$(t),n=m.getMapData(t);if(n){if(me.unbind.apply(i),!n.complete)return!0;n=null}if(a=(t=this.getAttribute("usemap"))&&$('map[name="'+t.substr(1)+'"]'),!(i.is("img")&&t&&0')[0]},clearHighlight:function(){var e=this.map_data.overlay_canvas;e.getContext("2d").clearRect(0,0,e.width,e.height)},refreshSelections:function(){var e=this.map_data,t=e.base_canvas;e.base_canvas=this.createVisibleCanvas(e),h(e.base_canvas).hide(),h(t).before(e.base_canvas),e.redrawSelections(),h(e.base_canvas).show(),h(t).remove()}},s={renderShape:function(e,t,a){var i,n=this,s=e.coords(),o=n.elementName?'name="'+n.elementName+'" ':"",r=a?'class="'+a+'" ':"",c='',l=t.stroke?" strokeweight="+t.strokeWidth+' stroked="t" strokecolor="#'+t.strokeColor+'"':' stroked="f"',u=t.fill?' filled="t"':' filled="f"';switch(e.shape){case"rect":case"rectangle":i="'+c+"";break;case"poly":case"polygon":i="'+c+"";break;case"circ":case"circle":i="'+c+""}return a=h(i),h(n.canvas).append(a),a},render:function(){var a,i=this;return h.each(this.shapes,function(e,t){i.renderShape(t.mapArea,t.options)}),this.masks.length&&h.each(this.masks,function(e,t){a=c.updateProps({},t.options,{fillOpacity:1,fillColor:t.options.fillColorMask}),i.renderShape(t.mapArea,a,"mapster_mask")}),this.active=!1,this.canvas},createCanvasFor:function(e){var t=e.scaleInfo.width,e=e.scaleInfo.height;return h('')[0]},clearHighlight:function(){h(this.map_data.overlay_canvas).children().remove()},removeSelections:function(e){(0<=e?h(this.map_data.base_canvas).find('[name="static_'+e.toString()+'"]'):h(this.map_data.base_canvas).children()).remove()}},h.each(["renderShape","addAltImage","render","createCanvasFor","clearHighlight","removeSelections","refreshSelections"],function(e,t){var a;i[t]=(a=t,function(){return i[a]=(r.hasCanvas()?n:s)[a]||o,i[a].apply(this,arguments)})})}(jQuery),!function(s){"use strict";var e=s.mapster,n=e.utils,t=[];e.MapImages=function(e){this.owner=e,this.clear()},e.MapImages.prototype={constructor:e.MapImages,slice:function(){return t.slice.apply(this,arguments)},splice:function(){return t.slice.apply(this.status,arguments),t.slice.apply(this,arguments)},complete:function(){return s.inArray(!1,this.status)<0},_add:function(e){e=t.push.call(this,e)-1;return this.status[e]=!1,e},indexOf:function(e){return n.indexOf(this,e)},clear:function(){var a=this;a.ids&&0").addClass("mapster_el").hide(),a=n._add(e[0]),e.on("load.mapster",function(e){n.imageLoaded.call(n,e)}).on("error.mapster",function(e){n.imageLoadError.call(n,e)}),e.attr("src",i)}else a=n._add(s(e)[0]);if(t){if(this[t])throw t+" is already used or is not available as an altImage alias.";n.ids.push(t),n[t]=n[a]}return a}},bind:function(){var t=this,a=t.owner.options.configTimeout/200,i=function(){for(var e=t.length;0
'),l.wrapClass&&(!0===l.wrapClass?a.addClass(o[0].className):a.addClass(l.wrapClass))),c.wrapper=a,c.scaleInfo=r=d.scaleMap(c.images[0],c.images[1],l.scaleMap),c.base_canvas=e=c.graphics.createVisibleCanvas(c),c.overlay_canvas=t=c.graphics.createVisibleCanvas(c),i=y(c.images[1]).addClass("mapster_el "+c.images[0].className).attr({id:null,usemap:null}),(s=d.size(c.images[0])).complete&&i.css({width:s.width,height:s.height}),c.buildDataset(),i=y.extend({display:"block",position:"relative",padding:0},!0===l.enableAutoResizeSupport?{}:{width:r.width,height:r.height}),l.wrapCss&&y.extend(i,l.wrapCss),o.parent()[0]!==c.wrapper[0]&&o.before(c.wrapper),a.css(i),y(c.images.slice(2)).hide(),n=1;nw&&t[1]>b)return v=t,!(o=!0)}),o||(v=[l,u])),v}}(jQuery),!function(d){"use strict";var f=d.mapster,m=f.utils,e=f.MapArea.prototype;f.utils.getScaleInfo=function(e,t){var a;return t?.98<(a=e.width/t.width||e.height/t.height)&&a<1.02&&(a=1):(a=1,t=e),{scale:1!==a,scalePct:a,realWidth:t.width,realHeight:t.height,width:e.width,height:e.height,ratio:e.width/e.height}},f.utils.scaleMap=function(e,t,a){e=m.size(e),t=m.size(t,!0);if(t.complete())return e.complete()||(e=t),this.getScaleInfo(e,a?t:null);throw"Another script, such as an extension, appears to be interfering with image loading. Please let us know about this."},f.MapData.prototype.resize=function(t,a,i,n){var s,o,r,c,e,l=this;function u(e,t,a){f.hasCanvas()?(e.width=t,e.height=a):(d(e).width(t),d(e).height(a))}function h(){var e;u(l.overlay_canvas,t,a),0<=c&&((e=l.data[c]).tempOptions={fade:!1},l.getDataForKey(e.key).highlight(),e.tempOptions=null),u(l.base_canvas,t,a),l.redrawSelections(),l.currentAction="",m.isFunction(n)&&n(),l.processCommandQueue()}function p(){d(l.image).css(r),l.scaleInfo=m.getScaleInfo({width:t,height:a},{width:l.scaleInfo.realWidth,height:l.scaleInfo.realHeight}),d.each(l.data,function(e,t){d.each(t.areas(),function(e,t){t.resize()})})}n=n||i,l.scaleInfo.width===t&&l.scaleInfo.height===a||(c=l.highlightId,t||(e=a/l.scaleInfo.realHeight,t=Math.round(l.scaleInfo.realWidth*e)),a||(e=t/l.scaleInfo.realWidth,a=Math.round(l.scaleInfo.realHeight*e)),r={width:String(t)+"px",height:String(a)+"px"},f.hasCanvas()||d(l.base_canvas).children().remove(),e=d(l.wrapper).find(".mapster_el"),!0!==l.options.enableAutoResizeSupport&&(e=e.add(l.wrapper)),i?(o=[],l.currentAction="resizing",e.filter(":visible").each(function(e,t){s=m.defer(),o.push(s),d(t).animate(r,{duration:i,complete:s.resolve,easing:"linear"})}),e.filter(":hidden").css(r),s=m.defer(),o.push(s),m.when.all(o).then(h),p(),s.resolve()):(e.css(r),p(),h()))},f.MapData.prototype.autoResize=function(e,t){this.resize(d(this.wrapper).width(),null,e,t)},f.MapData.prototype.configureAutoResize=function(){var e=this,t=e.instanceEventNamespace();function a(){!0===e.options.autoResize&&e.autoResize(e.options.autoResizeDuration,e.options.onAutoResize)}d(e.image).on("load"+t,a),d(window).on("focus"+t,a),d(window).on("resize"+t,function(){e.autoResizeTimer&&clearTimeout(e.autoResizeTimer),e.autoResizeTimer=setTimeout(a,e.options.autoResizeDelay)}),d(window).on("readystatechange"+t,a),d(window.document).on("fullscreenchange"+t,a),a()},f.MapArea=m.subclass(f.MapArea,function(){this.base.init(),this.owner.scaleInfo.scale&&this.resize()}),e.coords=function(e,t){var a,i=[],n=e||this.owner.scaleInfo.scalePct,s=t||0;if(1===n&&0===t)return this.originalCoords;for(a=0;a',showToolTip:!1,toolTip:null,toolTipFade:!0,toolTipClose:["area-mouseout","image-mouseout","generic-mouseout"],onShowToolTip:null,onHideToolTip:null}),c.extend(e.area_defaults,{toolTip:null,toolTipClose:null}),e.MapData.prototype.clearToolTip=function(){this.activeToolTip&&(this.activeToolTip.stop().remove(),this.activeToolTip=null,this.activeToolTipID=null,l.ifFunction(this.options.onHideToolTip,this))},e.AreaData.prototype.showToolTip=function(e,t){var a,i,n,s=this,o=s.owner,r=s.effectiveOptions();if(t=t?c.extend({},t):{},e=e||r.toolTip,a=t.closeEvents||r.toolTipClose||o.options.toolTipClose||"tooltip-click",n=void 0!==t.template?t.template:o.options.toolTipContainer,t.closeEvents="string"==typeof a?a=l.split(a):a,t.fadeDuration=t.fadeDuration||(o.options.toolTipFade?o.options.fadeDuration||r.fadeDuration:0),i=s.area||c.map(s.areas(),function(e){return e.area}),o.activeToolTipID!==s.areaId){o.clearToolTip();var e=l.isFunction(e)?e({key:this.key,target:i}):e;if(e)return o.activeToolTip=e=u(e,n,t.css),o.activeToolTipID=s.areaId,n=function(){o.clearToolTip()},h(a,"area-click","click",c(o.map),null,n),h(a,"tooltip-click","click",e,null,n),h(a,"image-mouseout","mouseout",c(o.image),function(e){return e.relatedTarget&&"AREA"!==e.relatedTarget.nodeName&&e.relatedTarget!==s.area},n),h(a,"image-click","click",c(o.image),null,n),p(e,i,o.image,t.container,t),l.ifFunction(o.options.onShowToolTip,s.area,{toolTip:e,options:{},areaOptions:r,key:s.key,selected:s.isSelected()}),e}},e.impl.tooltip=function(o,r){return new e.Method(this,function(){var e,t,a,i,n,s=this;o?(n=(e=c(o))&&0= 0) { + var p = src[prop]; + + if ($.isPlainObject(p)) { + // not recursive - only copies 1 level of subobjects, and always merges + target[prop] = $.extend(target[prop] || {}, p); + } else if (p && p.constructor === Array) { + target[prop] = p.slice(0); + } else if (typeof p !== 'undefined') { + target[prop] = src[prop]; + } + } + }); + }); + return target; + }, + isElement: function (o) { + return typeof HTMLElement === 'object' + ? o instanceof HTMLElement + : o && + typeof o === 'object' && + o.nodeType === 1 && + typeof o.nodeName === 'string'; + }, + /** + * Basic indexOf implementation for IE7-8. Though we use $.inArray, some jQuery versions will try to + * use a prototpye on the calling object, defeating the purpose of using $.inArray in the first place. + * + * This will be replaced with the array prototype if it's available. + * + * @param {Array} arr The array to search + * @param {Object} target The item to search for + * @return {Number} The index of the item, or -1 if not found + */ + indexOf: function (arr, target) { + if (Array.prototype.indexOf) { + return Array.prototype.indexOf.call(arr, target); + } else { + for (var i = 0; i < arr.length; i++) { + if (arr[i] === target) { + return i; + } + } + return -1; + } + }, + + // finds element of array or object with a property "prop" having value "val" + // if prop is not defined, then just looks for property with value "val" + indexOfProp: function (obj, prop, val) { + var result = obj.constructor === Array ? -1 : null; + $.each(obj, function (i, e) { + if (e && (prop ? e[prop] : e) === val) { + result = i; + return false; + } + }); + return result; + }, + // returns "obj" if true or false, or "def" if not true/false + boolOrDefault: function (obj, def) { + return this.isBool(obj) ? obj : def || false; + }, + isBool: function (obj) { + return typeof obj === 'boolean'; + }, + isUndef: function (obj) { + return typeof obj === 'undefined'; + }, + isFunction: function (obj) { + return typeof obj === 'function'; + }, + // evaluates "obj", if function, calls it with args + // (todo - update this to handle variable lenght/more than one arg) + ifFunction: function (obj, that, args) { + if (this.isFunction(obj)) { + obj.call(that, args); + } + }, + size: function (image, raw) { + var u = $.mapster.utils; + return { + width: raw + ? image.width || image.naturalWidth + : u.imgWidth(image, true), + height: raw + ? image.height || image.naturalHeight + : u.imgHeight(image, true), + complete: function () { + return !!this.height && !!this.width; + } + }; + }, + + /** + * Set the opacity of the element. This is an IE<8 specific function for handling VML. + * When using VML we must override the "setOpacity" utility function (monkey patch ourselves). + * jQuery does not deal with opacity correctly for VML elements. This deals with that. + * + * @param {Element} el The DOM element + * @param {double} opacity A value between 0 and 1 inclusive. + */ + + setOpacity: function (el, opacity) { + if ($.mapster.hasCanvas()) { + el.style.opacity = opacity; + } else { + $(el).each(function (_, e) { + if (typeof e.opacity !== 'undefined') { + e.opacity = opacity; + } else { + $(e).css('opacity', opacity); + } + }); + } + }, + + // fade "el" from opacity "op" to "endOp" over a period of time "duration" + + fader: (function () { + var elements = {}, + lastKey = 0, + fade_func = function (el, op, endOp, duration) { + var index, + cbIntervals = duration / 15, + obj, + u = $.mapster.utils; + + if (typeof el === 'number') { + obj = elements[el]; + if (!obj) { + return; + } + } else { + index = u.indexOfProp(elements, null, el); + if (index) { + delete elements[index]; + } + elements[++lastKey] = obj = el; + el = lastKey; + } + + endOp = endOp || 1; + + op = + op + endOp / cbIntervals > endOp - 0.01 + ? endOp + : op + endOp / cbIntervals; + + u.setOpacity(obj, op); + if (op < endOp) { + setTimeout(function () { + fade_func(el, op, endOp, duration); + }, 15); + } + }; + return fade_func; + })(), + getShape: function (areaEl) { + // per HTML spec, invalid value and missing value default is 'rect' + // Handling as follows: + // - Missing/Empty value will be treated as 'rect' per spec + // - Avoid handling invalid values do to perf impact + // Note - IM currently does not support shape of 'default' so while its technically + // a valid attribute value it should not be used. + // https://html.spec.whatwg.org/multipage/image-maps.html#the-area-element + return (areaEl.shape || 'rect').toLowerCase(); + }, + hasAttribute: function (el, attrName) { + var attr = $(el).attr(attrName); + // For some browsers, `attr` is undefined; for others, `attr` is false. + return typeof attr !== 'undefined' && attr !== false; + } + }, + getBoundList: function (opts, key_list) { + if (!opts.boundList) { + return null; + } + var index, + key, + result = $(), + list = $.mapster.utils.split(key_list); + opts.boundList.each(function (_, e) { + for (index = 0; index < list.length; index++) { + key = list[index]; + if ($(e).is('[' + opts.listKey + '="' + key + '"]')) { + result = result.add(e); + } + } + }); + return result; + }, + getMapDataIndex: function (obj) { + var img, id; + switch (obj.tagName && obj.tagName.toLowerCase()) { + case 'area': + id = $(obj).parent().attr('name'); + img = $("img[usemap='#" + id + "']")[0]; + break; + case 'img': + img = obj; + break; + } + return img ? this.utils.indexOfProp(this.map_cache, 'image', img) : -1; + }, + getMapData: function (obj) { + var index = this.getMapDataIndex(obj.length ? obj[0] : obj); + if (index >= 0) { + return index >= 0 ? this.map_cache[index] : null; + } + }, + /** + * Queue a command to be run after the active async operation has finished + * @param {MapData} map_data The target MapData object + * @param {jQuery} that jQuery object on which the command was invoked + * @param {string} command the ImageMapster method name + * @param {object[]} args arguments passed to the method + * @return {bool} true if the command was queued, false if not (e.g. there was no need to) + */ + queueCommand: function (map_data, that, command, args) { + if (!map_data) { + return false; + } + if (!map_data.complete || map_data.currentAction) { + map_data.commands.push({ + that: that, + command: command, + args: args + }); + return true; + } + return false; + }, + unload: function () { + this.impl.unload(); + this.utils = null; + this.impl = null; + $.fn.mapster = null; + $.mapster = null; + return $('*').off('.mapster'); + } + }; + + // Config for object prototypes + // first: use only first object (for things that should not apply to lists) + /// calls back one of two fuinctions, depending on whether an area was obtained. + // opts: { + // name: 'method name', + // key: 'key, + // args: 'args' + // + //} + // name: name of method (required) + // args: arguments to re-call with + // Iterates through all the objects passed, and determines whether it's an area or an image, and calls the appropriate + // callback for each. If anything is returned from that callback, the process is stopped and that data return. Otherwise, + // the object itself is returned. + + var m = $.mapster, + u = m.utils, + ap = Array.prototype; + + // jQuery's width() and height() are broken on IE9 in some situations. This tries everything. + $.each(['width', 'height'], function (_, e) { + var capProp = e.substr(0, 1).toUpperCase() + e.substr(1); + // when jqwidth parm is passed, it also checks the jQuery width()/height() property + // the issue is that jQUery width() can report a valid size before the image is loaded in some browsers + // without it, we can read zero even when image is loaded in other browsers if its not visible + // we must still check because stuff like adblock can temporarily block it + // what a goddamn headache + u['img' + capProp] = function (img, jqwidth) { + return ( + (jqwidth ? $(img)[e]() : 0) || + img[e] || + img['natural' + capProp] || + img['client' + capProp] || + img['offset' + capProp] + ); + }; + }); + + /** + * The Method object encapsulates the process of testing an ImageMapster method to see if it's being + * invoked on an image, or an area; then queues the command if the MapData is in an active state. + * + * @param {[jQuery]} that The target of the invocation + * @param {[function]} func_map The callback if the target is an imagemap + * @param {[function]} func_area The callback if the target is an area + * @param {[object]} opt Options: { key: a map key if passed explicitly + * name: the command name, if it can be queued, + * args: arguments to the method + * } + */ + + m.Method = function (that, func_map, func_area, opts) { + var me = this; + me.name = opts.name; + me.output = that; + me.input = that; + me.first = opts.first || false; + me.args = opts.args ? ap.slice.call(opts.args, 0) : []; + me.key = opts.key; + me.func_map = func_map; + me.func_area = func_area; + //$.extend(me, opts); + me.name = opts.name; + me.allowAsync = opts.allowAsync || false; + }; + m.Method.prototype = { + constructor: m.Method, + go: function () { + var i, + data, + ar, + len, + result, + src = this.input, + area_list = [], + me = this; + + len = src.length; + for (i = 0; i < len; i++) { + data = $.mapster.getMapData(src[i]); + if (data) { + if ( + !me.allowAsync && + m.queueCommand(data, me.input, me.name, me.args) + ) { + if (this.first) { + result = ''; + } + continue; + } + + ar = data.getData(src[i].nodeName === 'AREA' ? src[i] : this.key); + if (ar) { + if ($.inArray(ar, area_list) < 0) { + area_list.push(ar); + } + } else { + result = this.func_map.apply(data, me.args); + } + if (this.first || typeof result !== 'undefined') { + break; + } + } + } + // if there were areas, call the area function for each unique group + $(area_list).each(function (_, e) { + result = me.func_area.apply(e, me.args); + }); + + if (typeof result !== 'undefined') { + return result; + } else { + return this.output; + } + } + }; + + $.mapster.impl = (function () { + var me = {}, + addMap = function (map_data) { + return m.map_cache.push(map_data) - 1; + }, + removeMap = function (map_data) { + m.map_cache.splice(map_data.index, 1); + for (var i = m.map_cache.length - 1; i >= map_data.index; i--) { + m.map_cache[i].index--; + } + }; + + /** + * Test whether the browser supports VML. Credit: google. + * http://stackoverflow.com/questions/654112/how-do-you-detect-support-for-vml-or-svg-in-a-browser + * + * @return {bool} true if vml is supported, false if not + */ + + function hasVml() { + var a = $('
').appendTo('body'); + a.html(''); + + var b = a[0].firstChild; + b.style.behavior = 'url(#default#VML)'; + var has = b ? typeof b.adj === 'object' : true; + a.remove(); + return has; + } + + /** + * Return a reference to the IE namespaces object, if available, or an empty object otherwise + * @return {obkect} The document.namespaces object. + */ + function namespaces() { + return typeof document.namespaces === 'object' + ? document.namespaces + : null; + } + + /** + * Test for the presence of HTML5 Canvas support. This also checks to see if excanvas.js has been + * loaded and is faking it; if so, we assume that canvas is not supported. + * + * @return {bool} true if HTML5 canvas support, false if not + */ + + function hasCanvas() { + var d = namespaces(); + // when g_vml_ is present, then we can be sure excanvas is active, meaning there's not a real canvas. + + return d && d.g_vml_ + ? false + : $('')[0].getContext + ? true + : false; + } + + /** + * Merge new area data into existing area options on a MapData object. Used for rebinding. + * + * @param {[MapData]} map_data The MapData object + * @param {[object[]]} areas areas array to merge + */ + + function merge_areas(map_data, areas) { + var ar, + index, + map_areas = map_data.options.areas; + + if (areas) { + $.each(areas, function (_, e) { + // Issue #68 - ignore invalid data in areas array + + if (!e || !e.key) { + return; + } + + index = u.indexOfProp(map_areas, 'key', e.key); + + if (index >= 0) { + $.extend(map_areas[index], e); + } else { + map_areas.push(e); + } + ar = map_data.getDataForKey(e.key); + if (ar) { + $.extend(ar.options, e); + } + }); + } + } + function merge_options(map_data, options) { + var temp_opts = u.updateProps({}, options); + delete temp_opts.areas; + + u.updateProps(map_data.options, temp_opts); + + merge_areas(map_data, options.areas); + // refresh the area_option template + u.updateProps(map_data.area_options, map_data.options); + } + + // Most methods use the "Method" object which handles figuring out whether it's an image or area called and + // parsing key parameters. The constructor wants: + // this, the jQuery object + // a function that is called when an image was passed (with a this context of the MapData) + // a function that is called when an area was passed (with a this context of the AreaData) + // options: first = true means only the first member of a jQuery object is handled + // key = the key parameters passed + // defaultReturn: a value to return other than the jQuery object (if its not chainable) + // args: the arguments + // Returns a comma-separated list of user-selected areas. "staticState" areas are not considered selected for the purposes of this method. + + me.get = function (key) { + var md = m.getMapData(this); + if (!(md && md.complete)) { + throw "Can't access data until binding complete."; + } + + return new m.Method( + this, + function () { + // map_data return + return this.getSelected(); + }, + function () { + return this.isSelected(); + }, + { + name: 'get', + args: arguments, + key: key, + first: true, + allowAsync: true, + defaultReturn: '' + } + ).go(); + }; + me.data = function (key) { + return new m.Method( + this, + null, + function () { + return this; + }, + { name: 'data', args: arguments, key: key } + ).go(); + }; + + // Set or return highlight state. + // $(img).mapster('highlight') -- return highlighted area key, or null if none + // $(area).mapster('highlight') -- highlight an area + // $(img).mapster('highlight','area_key') -- highlight an area + // $(img).mapster('highlight',false) -- remove highlight + me.highlight = function (key) { + return new m.Method( + this, + function () { + if (key === false) { + this.ensureNoHighlight(); + } else { + var id = this.highlightId; + return id >= 0 ? this.data[id].key : null; + } + }, + function () { + this.highlight(); + }, + { name: 'highlight', args: arguments, key: key, first: true } + ).go(); + }; + // Return the primary keys for an area or group key. + // $(area).mapster('key') + // includes all keys (not just primary keys) + // $(area).mapster('key',true) + // $(img).mapster('key','group-key') + + // $(img).mapster('key','group-key', true) + me.keys = function (key, all) { + var keyList = [], + md = m.getMapData(this); + + if (!(md && md.complete)) { + throw "Can't access data until binding complete."; + } + + function addUniqueKeys(ad) { + var areas, + keys = []; + if (!all) { + keys.push(ad.key); + } else { + areas = ad.areas(); + $.each(areas, function (_, e) { + keys = keys.concat(e.keys); + }); + } + $.each(keys, function (_, e) { + if ($.inArray(e, keyList) < 0) { + keyList.push(e); + } + }); + } + + if (!(md && md.complete)) { + return ''; + } + if (typeof key === 'string') { + if (all) { + addUniqueKeys(md.getDataForKey(key)); + } else { + keyList = [md.getKeysForGroup(key)]; + } + } else { + all = key; + this.each(function (_, e) { + if (e.nodeName === 'AREA') { + addUniqueKeys(md.getDataForArea(e)); + } + }); + } + return keyList.join(','); + }; + me.select = function () { + me.set.call(this, true); + }; + me.deselect = function () { + me.set.call(this, false); + }; + + /** + * Select or unselect areas. Areas can be identified by a single string key, a comma-separated list of keys, + * or an array of strings. + * + * + * @param {boolean} selected Determines whether areas are selected or deselected + * @param {string|string[]} key A string, comma-separated string, or array of strings indicating + * the areas to select or deselect + * @param {object} options Rendering options to apply when selecting an area + */ + + me.set = function (selected, key, options) { + var lastMap, + map_data, + opts = options, + key_list, + area_list; // array of unique areas passed + + function setSelection(ar) { + var newState = selected; + if (ar) { + switch (selected) { + case true: + ar.select(opts); + break; + case false: + ar.deselect(true); + break; + default: + newState = ar.toggle(opts); + break; + } + return newState; + } + } + function addArea(ar) { + if (ar && $.inArray(ar, area_list) < 0) { + area_list.push(ar); + key_list += (key_list === '' ? '' : ',') + ar.key; + } + } + // Clean up after a group that applied to the same map + function finishSetForMap(map_data) { + $.each(area_list, function (_, el) { + setSelection(el); + }); + if (!selected) { + map_data.removeSelectionFinish(); + } + } + + this.filter('img,area').each(function (_, e) { + var keys; + map_data = m.getMapData(e); + + if (map_data !== lastMap) { + if (lastMap) { + finishSetForMap(lastMap); + } + + area_list = []; + key_list = ''; + } + + if (map_data) { + keys = ''; + if (e.nodeName.toUpperCase() === 'IMG') { + if (!m.queueCommand(map_data, $(e), 'set', [selected, key, opts])) { + if (key instanceof Array) { + if (key.length) { + keys = key.join(','); + } + } else { + keys = key; + } + + if (keys) { + $.each(u.split(keys), function (_, key) { + addArea(map_data.getDataForKey(key.toString())); + lastMap = map_data; + }); + } + } + } else { + opts = key; + if (!m.queueCommand(map_data, $(e), 'set', [selected, opts])) { + addArea(map_data.getDataForArea(e)); + lastMap = map_data; + } + } + } + }); + + if (map_data) { + finishSetForMap(map_data); + } + + return this; + }; + me.unbind = function (preserveState) { + return new m.Method( + this, + function () { + this.clearEvents(); + this.clearMapData(preserveState); + removeMap(this); + }, + null, + { name: 'unbind', args: arguments } + ).go(); + }; + + // refresh options and update selection information. + me.rebind = function (options) { + return new m.Method( + this, + function () { + var me = this; + + me.complete = false; + me.configureOptions(options); + me.bindImages().then(function () { + me.buildDataset(true); + me.complete = true; + me.onConfigured(); + }); + //this.redrawSelections(); + }, + null, + { + name: 'rebind', + args: arguments + } + ).go(); + }; + // get options. nothing or false to get, or "true" to get effective options (versus passed options) + me.get_options = function (key, effective) { + var eff = u.isBool(key) ? key : effective; // allow 2nd parm as "effective" when no key + return new m.Method( + this, + function () { + var opts = $.extend({}, this.options); + if (eff) { + opts.render_select = u.updateProps( + {}, + m.render_defaults, + opts, + opts.render_select + ); + + opts.render_highlight = u.updateProps( + {}, + m.render_defaults, + opts, + opts.render_highlight + ); + } + return opts; + }, + function () { + return eff ? this.effectiveOptions() : this.options; + }, + { + name: 'get_options', + args: arguments, + first: true, + allowAsync: true, + key: key + } + ).go(); + }; + + // set options - pass an object with options to set, + me.set_options = function (options) { + return new m.Method( + this, + function () { + merge_options(this, options); + }, + null, + { + name: 'set_options', + args: arguments + } + ).go(); + }; + me.unload = function () { + var i; + for (i = m.map_cache.length - 1; i >= 0; i--) { + if (m.map_cache[i]) { + me.unbind.call($(m.map_cache[i].image)); + } + } + me.graphics = null; + }; + + me.snapshot = function () { + return new m.Method( + this, + function () { + $.each(this.data, function (_, e) { + e.selected = false; + }); + + this.base_canvas = this.graphics.createVisibleCanvas(this); + $(this.image).before(this.base_canvas); + }, + null, + { name: 'snapshot' } + ).go(); + }; + + // do not queue this function + + me.state = function () { + var md, + result = null; + $(this).each(function (_, e) { + if (e.nodeName === 'IMG') { + md = m.getMapData(e); + if (md) { + result = md.state(); + } + return false; + } + }); + return result; + }; + + me.bind = function (options) { + return this.each(function (_, e) { + var img, map, usemap, md; + + // save ref to this image even if we can't access it yet. commands will be queued + img = $(e); + + md = m.getMapData(e); + + // if already bound completely, do a total rebind + + if (md) { + me.unbind.apply(img); + if (!md.complete) { + // will be queued + return true; + } + md = null; + } + + // ensure it's a valid image + // jQuery bug with Opera, results in full-url#usemap being returned from jQuery's attr. + // So use raw getAttribute instead. + + usemap = this.getAttribute('usemap'); + map = usemap && $('map[name="' + usemap.substr(1) + '"]'); + if (!(img.is('img') && usemap && map.length > 0)) { + return true; + } + + // sorry - your image must have border:0, things are too unpredictable otherwise. + img.css('border', 0); + + if (!md) { + md = new m.MapData(this, options); + + md.index = addMap(md); + md.map = map; + md.bindImages().then(function () { + md.initialize(); + }); + } + }); + }; + + me.init = function (useCanvas) { + var style, shapes; + + // for testing/debugging, use of canvas can be forced by initializing + // manually with "true" or "false". But generally we test for it. + + m.hasCanvas = function () { + if (!u.isBool(m.hasCanvas.value)) { + m.hasCanvas.value = u.isBool(useCanvas) ? useCanvas : hasCanvas(); + } + return m.hasCanvas.value; + }; + + m.hasVml = function () { + if (!u.isBool(m.hasVml.value)) { + // initialize VML the first time we detect its presence. + var d = namespaces(); + + if (d && !d.v) { + d.add('v', 'urn:schemas-microsoft-com:vml'); + style = document.createStyleSheet(); + shapes = [ + 'shape', + 'rect', + 'oval', + 'circ', + 'fill', + 'stroke', + 'imagedata', + 'group', + 'textbox' + ]; + $.each(shapes, function (_, el) { + style.addRule( + 'v\\:' + el, + 'behavior: url(#default#VML); antialias:true' + ); + }); + } + m.hasVml.value = hasVml(); + } + + return m.hasVml.value; + }; + + $.extend(m.defaults, m.render_defaults, m.shared_defaults); + $.extend(m.area_defaults, m.render_defaults, m.shared_defaults); + }; + me.test = function (obj) { + return eval(obj); + }; + return me; + })(); + + $.mapster.impl.init(); +})(jQuery); + +/* + graphics.js + Graphics object handles all rendering. +*/ + +(function ($) { + 'use strict'; + + var p, + m = $.mapster, + u = m.utils, + canvasMethods, + vmlMethods; + + /** + * Implemenation to add each area in an AreaData object to the canvas + * @param {Graphics} graphics The target graphics object + * @param {AreaData} areaData The AreaData object (a collection of area elements and metadata) + * @param {object} options Rendering options to apply when rendering this group of areas + */ + function addShapeGroupImpl(graphics, areaData, options) { + var me = graphics, + md = me.map_data, + isMask = options.isMask; + + // first get area options. Then override fade for selecting, and finally merge in the + // "select" effect options. + + $.each(areaData.areas(), function (_, e) { + options.isMask = isMask || (e.nohref && md.options.noHrefIsMask); + me.addShape(e, options); + }); + + // it's faster just to manipulate the passed options isMask property and restore it, than to + // copy the object each time + + options.isMask = isMask; + } + + /** + * Convert a hex value to decimal + * @param {string} hex A hexadecimal toString + * @return {int} Integer represenation of the hex string + */ + + function hex_to_decimal(hex) { + return Math.max(0, Math.min(parseInt(hex, 16), 255)); + } + function css3color(color, opacity) { + return ( + 'rgba(' + + hex_to_decimal(color.substr(0, 2)) + + ',' + + hex_to_decimal(color.substr(2, 2)) + + ',' + + hex_to_decimal(color.substr(4, 2)) + + ',' + + opacity + + ')' + ); + } + /** + * An object associated with a particular map_data instance to manage renderin. + * @param {MapData} map_data The MapData object bound to this instance + */ + + m.Graphics = function (map_data) { + //$(window).unload($.mapster.unload); + // create graphics functions for canvas and vml browsers. usage: + // 1) init with map_data, 2) call begin with canvas to be used (these are separate b/c may not require canvas to be specified + // 3) call add_shape_to for each shape or mask, 4) call render() to finish + + var me = this; + me.active = false; + me.canvas = null; + me.width = 0; + me.height = 0; + me.shapes = []; + me.masks = []; + me.map_data = map_data; + }; + + p = m.Graphics.prototype = { + constructor: m.Graphics, + + /** + * Initiate a graphics request for a canvas + * @param {Element} canvas The canvas element that is the target of this operation + * @param {string} [elementName] The name to assign to the element (VML only) + */ + + begin: function (canvas, elementName) { + var c = $(canvas); + + this.elementName = elementName; + this.canvas = canvas; + + this.width = c.width(); + this.height = c.height(); + this.shapes = []; + this.masks = []; + this.active = true; + }, + + /** + * Add an area to be rendered to this canvas. + * @param {MapArea} mapArea The MapArea object to render + * @param {object} options An object containing any rendering options that should override the + * defaults for the area + */ + + addShape: function (mapArea, options) { + var addto = options.isMask ? this.masks : this.shapes; + addto.push({ mapArea: mapArea, options: options }); + }, + + /** + * Create a canvas that is sized and styled for the MapData object + * @param {MapData} mapData The MapData object that will receive this new canvas + * @return {Element} A canvas element + */ + + createVisibleCanvas: function (mapData) { + return $(this.createCanvasFor(mapData)) + .addClass('mapster_el') + .css(m.canvas_style)[0]; + }, + + /** + * Add a group of shapes from an AreaData object to the canvas + * + * @param {AreaData} areaData An AreaData object (a set of area elements) + * @param {string} mode The rendering mode, "select" or "highlight". This determines the target + * canvas and which default options to use. + * @param {striong} options Rendering options + */ + + addShapeGroup: function (areaData, mode, options) { + // render includeKeys first - because they could be masks + var me = this, + list, + name, + canvas, + map_data = this.map_data, + opts = areaData.effectiveRenderOptions(mode); + + if (options) { + $.extend(opts, options); + } + + if (mode === 'select') { + name = 'static_' + areaData.areaId.toString(); + canvas = map_data.base_canvas; + } else { + canvas = map_data.overlay_canvas; + } + + me.begin(canvas, name); + + if (opts.includeKeys) { + list = u.split(opts.includeKeys); + $.each(list, function (_, e) { + var areaData = map_data.getDataForKey(e.toString()); + addShapeGroupImpl( + me, + areaData, + areaData.effectiveRenderOptions(mode) + ); + }); + } + + addShapeGroupImpl(me, areaData, opts); + me.render(); + if (opts.fade) { + // fading requires special handling for IE. We must access the fill elements directly. The fader also has to deal with + // the "opacity" attribute (not css) + + u.fader( + m.hasCanvas() + ? canvas + : $(canvas).find('._fill').not('.mapster_mask'), + 0, + m.hasCanvas() ? 1 : opts.fillOpacity, + opts.fadeDuration + ); + } + } + + // These prototype methods are implementation dependent + }; + + function noop() {} + + // configure remaining prototype methods for ie or canvas-supporting browser + + canvasMethods = { + renderShape: function (context, mapArea, offset) { + var i, + c = mapArea.coords(null, offset); + + switch (mapArea.shape) { + case 'rect': + case 'rectangle': + context.rect(c[0], c[1], c[2] - c[0], c[3] - c[1]); + break; + case 'poly': + case 'polygon': + context.moveTo(c[0], c[1]); + + for (i = 2; i < mapArea.length; i += 2) { + context.lineTo(c[i], c[i + 1]); + } + context.lineTo(c[0], c[1]); + break; + case 'circ': + case 'circle': + context.arc(c[0], c[1], c[2], 0, Math.PI * 2, false); + break; + } + }, + addAltImage: function (context, image, mapArea, options) { + context.beginPath(); + + this.renderShape(context, mapArea); + context.closePath(); + context.clip(); + + context.globalAlpha = options.altImageOpacity || options.fillOpacity; + + context.drawImage( + image, + 0, + 0, + mapArea.owner.scaleInfo.width, + mapArea.owner.scaleInfo.height + ); + }, + render: function () { + // firefox 6.0 context.save() seems to be broken. to work around, we have to draw the contents on one temp canvas, + // the mask on another, and merge everything. ugh. fixed in 1.2.2. unfortunately this is a lot more code for masks, + // but no other way around it that i can see. + + var maskCanvas, + maskContext, + me = this, + md = me.map_data, + hasMasks = me.masks.length, + shapeCanvas = me.createCanvasFor(md), + shapeContext = shapeCanvas.getContext('2d'), + context = me.canvas.getContext('2d'); + + if (hasMasks) { + maskCanvas = me.createCanvasFor(md); + maskContext = maskCanvas.getContext('2d'); + maskContext.clearRect(0, 0, maskCanvas.width, maskCanvas.height); + + $.each(me.masks, function (_, e) { + maskContext.save(); + maskContext.beginPath(); + me.renderShape(maskContext, e.mapArea); + maskContext.closePath(); + maskContext.clip(); + maskContext.lineWidth = 0; + maskContext.fillStyle = '#000'; + maskContext.fill(); + maskContext.restore(); + }); + } + + $.each(me.shapes, function (_, s) { + shapeContext.save(); + if (s.options.fill) { + if (s.options.altImageId) { + me.addAltImage( + shapeContext, + md.images[s.options.altImageId], + s.mapArea, + s.options + ); + } else { + shapeContext.beginPath(); + me.renderShape(shapeContext, s.mapArea); + shapeContext.closePath(); + //shapeContext.clip(); + shapeContext.fillStyle = css3color( + s.options.fillColor, + s.options.fillOpacity + ); + shapeContext.fill(); + } + } + shapeContext.restore(); + }); + + // render strokes at end since masks get stroked too + + $.each(me.shapes.concat(me.masks), function (_, s) { + var offset = s.options.strokeWidth === 1 ? 0.5 : 0; + // offset applies only when stroke width is 1 and stroke would render between pixels. + + if (s.options.stroke) { + shapeContext.save(); + shapeContext.strokeStyle = css3color( + s.options.strokeColor, + s.options.strokeOpacity + ); + shapeContext.lineWidth = s.options.strokeWidth; + + shapeContext.beginPath(); + + me.renderShape(shapeContext, s.mapArea, offset); + shapeContext.closePath(); + shapeContext.stroke(); + shapeContext.restore(); + } + }); + + if (hasMasks) { + // render the new shapes against the mask + + maskContext.globalCompositeOperation = 'source-out'; + maskContext.drawImage(shapeCanvas, 0, 0); + + // flatten into the main canvas + context.drawImage(maskCanvas, 0, 0); + } else { + context.drawImage(shapeCanvas, 0, 0); + } + + me.active = false; + return me.canvas; + }, + + // create a canvas mimicing dimensions of an existing element + createCanvasFor: function (md) { + return $( + '' + )[0]; + }, + clearHighlight: function () { + var c = this.map_data.overlay_canvas; + c.getContext('2d').clearRect(0, 0, c.width, c.height); + }, + // Draw all items from selected_list to a new canvas, then swap with the old one. This is used to delete items when using canvases. + refreshSelections: function () { + var canvas_temp, + map_data = this.map_data; + // draw new base canvas, then swap with the old one to avoid flickering + canvas_temp = map_data.base_canvas; + + map_data.base_canvas = this.createVisibleCanvas(map_data); + $(map_data.base_canvas).hide(); + $(canvas_temp).before(map_data.base_canvas); + + map_data.redrawSelections(); + + $(map_data.base_canvas).show(); + $(canvas_temp).remove(); + } + }; + + vmlMethods = { + renderShape: function (mapArea, options, cssclass) { + var me = this, + fill, + stroke, + e, + t_fill, + el_name, + el_class, + template, + c = mapArea.coords(); + el_name = me.elementName ? 'name="' + me.elementName + '" ' : ''; + el_class = cssclass ? 'class="' + cssclass + '" ' : ''; + + t_fill = + ''; + + stroke = options.stroke + ? ' strokeweight=' + + options.strokeWidth + + ' stroked="t" strokecolor="#' + + options.strokeColor + + '"' + : ' stroked="f"'; + + fill = options.fill ? ' filled="t"' : ' filled="f"'; + + switch (mapArea.shape) { + case 'rect': + case 'rectangle': + template = + '' + + t_fill + + ''; + break; + case 'poly': + case 'polygon': + template = + '' + + t_fill + + ''; + break; + case 'circ': + case 'circle': + template = + '' + + t_fill + + ''; + break; + } + e = $(template); + $(me.canvas).append(e); + + return e; + }, + render: function () { + var opts, + me = this; + + $.each(this.shapes, function (_, e) { + me.renderShape(e.mapArea, e.options); + }); + + if (this.masks.length) { + $.each(this.masks, function (_, e) { + opts = u.updateProps({}, e.options, { + fillOpacity: 1, + fillColor: e.options.fillColorMask + }); + me.renderShape(e.mapArea, opts, 'mapster_mask'); + }); + } + + this.active = false; + return this.canvas; + }, + + createCanvasFor: function (md) { + var w = md.scaleInfo.width, + h = md.scaleInfo.height; + return $( + '' + )[0]; + }, + + clearHighlight: function () { + $(this.map_data.overlay_canvas).children().remove(); + }, + // remove single or all selections + removeSelections: function (area_id) { + if (area_id >= 0) { + $(this.map_data.base_canvas) + .find('[name="static_' + area_id.toString() + '"]') + .remove(); + } else { + $(this.map_data.base_canvas).children().remove(); + } + } + }; + + // for all methods with two implemenatations, add a function that will automatically replace itself with the correct + // method on first invocation + + $.each( + [ + 'renderShape', + 'addAltImage', + 'render', + 'createCanvasFor', + 'clearHighlight', + 'removeSelections', + 'refreshSelections' + ], + function (_, e) { + p[e] = (function (method) { + return function () { + p[method] = + (m.hasCanvas() ? canvasMethods[method] : vmlMethods[method]) || + noop; + + return p[method].apply(this, arguments); + }; + })(e); + } + ); +})(jQuery); + +/* + mapimage.js + The MapImage object, repesents an instance of a single bound imagemap +*/ + +(function ($) { + 'use strict'; + + var m = $.mapster, + u = m.utils, + ap = []; + /** + * An object encapsulating all the images used by a MapData. + */ + + m.MapImages = function (owner) { + this.owner = owner; + this.clear(); + }; + + m.MapImages.prototype = { + constructor: m.MapImages, + + /* interface to make this array-like */ + + slice: function () { + return ap.slice.apply(this, arguments); + }, + splice: function () { + ap.slice.apply(this.status, arguments); + var result = ap.slice.apply(this, arguments); + return result; + }, + + /** + * a boolean value indicates whether all images are done loading + * @return {bool} true when all are done + */ + complete: function () { + return $.inArray(false, this.status) < 0; + }, + + /** + * Save an image in the images array and return its index + * @param {Image} image An Image object + * @return {int} the index of the image + */ + + _add: function (image) { + var index = ap.push.call(this, image) - 1; + this.status[index] = false; + return index; + }, + + /** + * Return the index of an Image within the images array + * @param {Image} img An Image + * @return {int} the index within the array, or -1 if it was not found + */ + + indexOf: function (image) { + return u.indexOf(this, image); + }, + + /** + * Clear this object and reset it to its initial state after binding. + */ + + clear: function () { + var me = this; + + if (me.ids && me.ids.length > 0) { + $.each(me.ids, function (_, e) { + delete me[e]; + }); + } + + /** + * A list of the cross-reference IDs bound to this object + * @type {string[]} + */ + + me.ids = []; + + /** + * Length property for array-like behavior, set to zero when initializing. Array prototype + * methods will update it after that. + * + * @type {int} + */ + + me.length = 0; + + /** + * the loaded status of the corresponding image + * @type {boolean[]} + */ + + me.status = []; + + // actually erase the images + + me.splice(0); + }, + + /** + * Bind an image to the map and add it to the queue to be loaded; return an ID that + * can be used to reference the + * + * @param {Image|string} image An Image object or a URL to an image + * @param {string} [id] An id to refer to this image + * @returns {int} an ID referencing the index of the image object in + * map_data.images + */ + + add: function (image, id) { + var index, + src, + me = this; + + if (!image) { + return; + } + + if (typeof image === 'string') { + src = image; + image = me[src]; + if (typeof image === 'object') { + return me.indexOf(image); + } + + image = $('').addClass('mapster_el').hide(); + + index = me._add(image[0]); + + image + .on('load.mapster', function (e) { + me.imageLoaded.call(me, e); + }) + .on('error.mapster', function (e) { + me.imageLoadError.call(me, e); + }); + + image.attr('src', src); + } else { + // use attr because we want the actual source, not the resolved path the browser will return directly calling image.src + + index = me._add($(image)[0]); + } + if (id) { + if (this[id]) { + throw ( + id + ' is already used or is not available as an altImage alias.' + ); + } + me.ids.push(id); + me[id] = me[index]; + } + return index; + }, + + /** + * Bind the images in this object, + * @return {Promise} a promise that resolves when the images have finished loading + */ + + bind: function () { + var me = this, + promise, + triesLeft = me.owner.options.configTimeout / 200, + /* A recursive function to continue checking that the images have been + loaded until a timeout has elapsed */ + + check = function () { + var i; + + // refresh status of images + + i = me.length; + + while (i-- > 0) { + if (!me.isLoaded(i)) { + break; + } + } + + // check to see if every image has already been loaded + + if (me.complete()) { + me.resolve(); + } else { + // to account for failure of onLoad to fire in rare situations + if (triesLeft-- > 0) { + me.imgTimeout = window.setTimeout(function () { + check.call(me, true); + }, 50); + } else { + me.imageLoadError.call(me); + } + } + }; + + promise = me.deferred = u.defer(); + + check(); + return promise; + }, + + resolve: function () { + var me = this, + resolver = me.deferred; + + if (resolver) { + // Make a copy of the resolver before calling & removing it to ensure + // it is not called twice + me.deferred = null; + resolver.resolve(); + } + }, + + /** + * Event handler for image onload + * @param {object} e jQuery event data + */ + + imageLoaded: function (e) { + var me = this, + index = me.indexOf(e.target); + + if (index >= 0) { + me.status[index] = true; + if ($.inArray(false, me.status) < 0) { + me.resolve(); + } + } + }, + + /** + * Event handler for onload error + * @param {object} e jQuery event data + */ + + imageLoadError: function (e) { + clearTimeout(this.imgTimeout); + this.triesLeft = 0; + var err = e + ? 'The image ' + e.target.src + ' failed to load.' + : 'The images never seemed to finish loading. You may just need to increase the configTimeout if images could take a long time to load.'; + throw err; + }, + /** + * Test if the image at specificed index has finished loading + * @param {int} index The image index + * @return {boolean} true if loaded, false if not + */ + + isLoaded: function (index) { + var img, + me = this, + status = me.status; + + if (status[index]) { + return true; + } + img = me[index]; + + if (typeof img.complete !== 'undefined') { + status[index] = img.complete; + } else { + status[index] = !!u.imgWidth(img); + } + // if complete passes, the image is loaded, but may STILL not be available because of stuff like adblock. + // make sure it is. + + return status[index]; + } + }; +})(jQuery); + +/* + mapdata.js + The MapData object, repesents an instance of a single bound imagemap +*/ + +(function ($) { + 'use strict'; + + var m = $.mapster, + u = m.utils; + + /** + * Set default values for MapData object properties + * @param {MapData} me The MapData object + */ + + function initializeDefaults(me) { + $.extend(me, { + complete: false, // (bool) when configuration is complete + map: null, // ($) the image map + base_canvas: null, // (canvas|var) where selections are rendered + overlay_canvas: null, // (canvas|var) where highlights are rendered + commands: [], // {} commands that were run before configuration was completed (b/c images weren't loaded) + data: [], // MapData[] area groups + mapAreas: [], // MapArea[] list. AreaData entities contain refs to this array, so options are stored with each. + _xref: {}, // (int) xref of mapKeys to data[] + highlightId: -1, // (int) the currently highlighted element. + currentAreaId: -1, + _tooltip_events: [], // {} info on events we bound to a tooltip container, so we can properly unbind them + scaleInfo: null, // {} info about the image size, scaling, defaults + index: -1, // index of this in map_cache - so we have an ID to use for wraper div + activeAreaEvent: null, + autoResizeTimer: null // tracks autoresize timer based on options.autoResizeDelay + }); + } + + /** + * Return an array of all image-containing options from an options object; + * that is, containers that may have an "altImage" property + * + * @param {object} obj An options object + * @return {object[]} An array of objects + */ + function getOptionImages(obj) { + return [obj, obj.render_highlight, obj.render_select]; + } + + /** + * Parse all the altImage references, adding them to the library so they can be preloaded + * and aliased. + * + * @param {MapData} me The MapData object on which to operate + */ + function configureAltImages(me) { + var opts = me.options, + mi = me.images; + + // add alt images + + if (m.hasCanvas()) { + // map altImage library first + + $.each(opts.altImages || {}, function (i, e) { + mi.add(e, i); + }); + + // now find everything else + + $.each([opts].concat(opts.areas), function (_, e) { + $.each(getOptionImages(e), function (_, e2) { + if (e2 && e2.altImage) { + e2.altImageId = mi.add(e2.altImage); + } + }); + }); + } + + // set area_options + me.area_options = u.updateProps( + {}, // default options for any MapArea + m.area_defaults, + opts + ); + } + + /** + * Queue a mouse move action based on current delay settings + * (helper for mouseover/mouseout handlers) + * + * @param {MapData} me The MapData context + * @param {number} delay The number of milliseconds to delay the action + * @param {AreaData} area AreaData affected + * @param {Deferred} deferred A deferred object to return (instead of a new one) + * @return {Promise} A promise that resolves when the action is completed + */ + function queueMouseEvent(me, delay, area, deferred) { + deferred = deferred || u.when.defer(); + + function cbFinal(areaId) { + if (me.currentAreaId !== areaId && me.highlightId >= 0) { + deferred.resolve({ completeAction: true }); + } + } + if (me.activeAreaEvent) { + window.clearTimeout(me.activeAreaEvent); + me.activeAreaEvent = 0; + } + if (delay < 0) { + deferred.resolve({ completeAction: false }); + } else { + if (area.owner.currentAction || delay) { + me.activeAreaEvent = window.setTimeout( + (function () { + return function () { + queueMouseEvent(me, 0, area, deferred); + }; + })(area), + delay || 100 + ); + } else { + cbFinal(area.areaId); + } + } + return deferred; + } + + function shouldNavigateTo(href) { + return !!href && href !== '#'; + } + + /** + * Mousedown event. This is captured only to prevent browser from drawing an outline around an + * area when it's clicked. + * + * @param {EventData} e jQuery event data + */ + + function mousedown(e) { + if (!m.hasCanvas()) { + this.blur(); + } + e.preventDefault(); + } + + /** + * Mouseover event. Handle highlight rendering and client callback on mouseover + * + * @param {MapData} me The MapData context + * @param {EventData} e jQuery event data + * @return {[type]} [description] + */ + + function mouseover(me, e) { + var arData = me.getAllDataForArea(this), + ar = arData.length ? arData[0] : null; + + // mouseover events are ignored entirely while resizing, though we do care about mouseout events + // and must queue the action to keep things clean. + + if (!ar || ar.isNotRendered() || ar.owner.currentAction) { + return; + } + + if (me.currentAreaId === ar.areaId) { + return; + } + if (me.highlightId !== ar.areaId) { + me.clearEffects(); + + ar.highlight(); + + if (me.options.showToolTip) { + $.each(arData, function (_, e) { + if (e.effectiveOptions().toolTip) { + e.showToolTip(); + } + }); + } + } + + me.currentAreaId = ar.areaId; + + if (u.isFunction(me.options.onMouseover)) { + me.options.onMouseover.call(this, { + e: e, + options: ar.effectiveOptions(), + key: ar.key, + selected: ar.isSelected() + }); + } + } + + /** + * Mouseout event. + * + * @param {MapData} me The MapData context + * @param {EventData} e jQuery event data + * @return {[type]} [description] + */ + + function mouseout(me, e) { + var newArea, + ar = me.getDataForArea(this), + opts = me.options; + + if (me.currentAreaId < 0 || !ar) { + return; + } + + newArea = me.getDataForArea(e.relatedTarget); + + if (newArea === ar) { + return; + } + + me.currentAreaId = -1; + ar.area = null; + + queueMouseEvent(me, opts.mouseoutDelay, ar).then(function (result) { + if (!result.completeAction) { + return; + } + me.clearEffects(); + }); + + if (u.isFunction(opts.onMouseout)) { + opts.onMouseout.call(this, { + e: e, + options: opts, + key: ar.key, + selected: ar.isSelected() + }); + } + } + + /** + * Clear any active tooltip or highlight + * + * @param {MapData} me The MapData context + * @param {EventData} e jQuery event data + * @return {[type]} [description] + */ + + function clearEffects(me) { + var opts = me.options; + + me.ensureNoHighlight(); + + if ( + opts.toolTipClose && + $.inArray('area-mouseout', opts.toolTipClose) >= 0 && + me.activeToolTip + ) { + me.clearToolTip(); + } + } + + /** + * Mouse click event handler + * + * @param {MapData} me The MapData context + * @param {EventData} e jQuery event data + * @return {[type]} [description] + */ + + function click(me, e) { + var list, + list_target, + newSelectionState, + canChangeState, + cbResult, + that = this, + ar = me.getDataForArea(this), + opts = me.options, + navDetails, + areaOpts; + + function navigateTo(mode, href, target) { + switch (mode) { + // if no target is specified, use legacy + // behavior and change current window + case 'open': + window.open(href, target || '_self'); + return; + + // default legacy behavior of ImageMapster + default: + window.location.href = href; + return; + } + } + + function getNavDetails(ar, mode, defaultHref) { + if (mode === 'open') { + var elHref = $(ar.area).attr('href'), + useEl = shouldNavigateTo(elHref); + + return { + href: useEl ? elHref : ar.href, + target: useEl ? $(ar.area).attr('target') : ar.hrefTarget + }; + } + + return { + href: defaultHref + }; + } + + function clickArea(ar) { + var target; + canChangeState = + ar.isSelectable() && (ar.isDeselectable() || !ar.isSelected()); + + if (canChangeState) { + newSelectionState = !ar.isSelected(); + } else { + newSelectionState = ar.isSelected(); + } + + list_target = m.getBoundList(opts, ar.key); + + if (u.isFunction(opts.onClick)) { + cbResult = opts.onClick.call(that, { + e: e, + listTarget: list_target, + key: ar.key, + selected: newSelectionState + }); + + if (u.isBool(cbResult)) { + if (!cbResult) { + return false; + } + target = getNavDetails( + ar, + opts.navigateMode, + $(ar.area).attr('href') + ); + if (shouldNavigateTo(target.href)) { + navigateTo(opts.navigateMode, target.href, target.target); + return false; + } + } + } + + if (canChangeState) { + ar.toggle(); + } + } + + mousedown.call(this, e); + + navDetails = getNavDetails(ar, opts.navigateMode, ar.href); + if (opts.clickNavigate && shouldNavigateTo(navDetails.href)) { + navigateTo(opts.navigateMode, navDetails.href, navDetails.target); + return; + } + + if (ar && !ar.owner.currentAction) { + opts = me.options; + clickArea(ar); + areaOpts = ar.effectiveOptions(); + if (areaOpts.includeKeys) { + list = u.split(areaOpts.includeKeys); + $.each(list, function (_, e) { + var ar = me.getDataForKey(e.toString()); + if (!ar.options.isMask) { + clickArea(ar); + } + }); + } + } + } + + /** + * Prototype for a MapData object, representing an ImageMapster bound object + * @param {Element} image an IMG element + * @param {object} options ImageMapster binding options + */ + m.MapData = function (image, options) { + var me = this; + + // (Image) main map image + + me.image = image; + + me.images = new m.MapImages(me); + me.graphics = new m.Graphics(me); + + // save the initial style of the image for unbinding. This is problematic, chrome + // duplicates styles when assigning, and cssText is apparently not universally supported. + // Need to do something more robust to make unbinding work universally. + + me.imgCssText = image.style.cssText || null; + + initializeDefaults(me); + + me.configureOptions(options); + + // create context-bound event handlers from our private functions + + me.mouseover = function (e) { + mouseover.call(this, me, e); + }; + me.mouseout = function (e) { + mouseout.call(this, me, e); + }; + me.click = function (e) { + click.call(this, me, e); + }; + me.clearEffects = function (e) { + clearEffects.call(this, me, e); + }; + me.mousedown = function (e) { + mousedown.call(this, e); + }; + }; + + m.MapData.prototype = { + constructor: m.MapData, + + /** + * Set target.options from defaults + options + * @param {[type]} target The target + * @param {[type]} options The options to merge + */ + + configureOptions: function (options) { + this.options = u.updateProps({}, m.defaults, options); + }, + + /** + * Ensure all images are loaded + * @return {Promise} A promise that resolves when the images have finished loading (or fail) + */ + + bindImages: function () { + var me = this, + mi = me.images; + + // reset the images if this is a rebind + + if (mi.length > 2) { + mi.splice(2); + } else if (mi.length === 0) { + // add the actual main image + mi.add(me.image); + // will create a duplicate of the main image, we need this to get raw size info + mi.add(me.image.src); + } + + configureAltImages(me); + + return me.images.bind(); + }, + + /** + * Test whether an async action is currently in progress + * @return {Boolean} true or false indicating state + */ + + isActive: function () { + return !this.complete || this.currentAction; + }, + + /** + * Return an object indicating the various states. This isn't really used by + * production code. + * + * @return {object} An object with properties for various states + */ + + state: function () { + return { + complete: this.complete, + resizing: this.currentAction === 'resizing', + zoomed: this.zoomed, + zoomedArea: this.zoomedArea, + scaleInfo: this.scaleInfo + }; + }, + + /** + * Get a unique ID for the wrapper of this imagemapster + * @return {string} A string that is unique to this image + */ + + wrapId: function () { + return 'mapster_wrap_' + this.index; + }, + instanceEventNamespace: function () { + return '.mapster.' + this.wrapId(); + }, + _idFromKey: function (key) { + return typeof key === 'string' && + Object.prototype.hasOwnProperty.call(this._xref, key) + ? this._xref[key] + : -1; + }, + + /** + * Return a comma-separated string of all selected keys + * @return {string} CSV of all keys that are currently selected + */ + + getSelected: function () { + var result = ''; + $.each(this.data, function (_, e) { + if (e.isSelected()) { + result += (result ? ',' : '') + this.key; + } + }); + return result; + }, + + /** + * Get an array of MapAreas associated with a specific AREA based on the keys for that area + * @param {Element} area An HTML AREA + * @param {number} atMost A number limiting the number of areas to be returned (typically 1 or 0 for no limit) + * @return {MapArea[]} Array of MapArea objects + */ + + getAllDataForArea: function (area, atMost) { + var i, + ar, + result, + me = this, + key = $(area).filter('area').attr(me.options.mapKey); + + if (key) { + result = []; + key = u.split(key); + + for (i = 0; i < (atMost || key.length); i++) { + ar = me.data[me._idFromKey(key[i])]; + if (ar) { + ar.area = area.length ? area[0] : area; + // set the actual area moused over/selected + // TODO: this is a brittle model for capturing which specific area - if this method was not used, + // ar.area could have old data. fix this. + result.push(ar); + } + } + } + + return result; + }, + getDataForArea: function (area) { + var ar = this.getAllDataForArea(area, 1); + return ar ? ar[0] || null : null; + }, + getDataForKey: function (key) { + return this.data[this._idFromKey(key)]; + }, + + /** + * Get the primary keys associated with an area group. + * If this is a primary key, it will be returned. + * + * @param {string key An area key + * @return {string} A CSV of area keys + */ + + getKeysForGroup: function (key) { + var ar = this.getDataForKey(key); + + return !ar + ? '' + : ar.isPrimary + ? ar.key + : this.getPrimaryKeysForMapAreas(ar.areas()).join(','); + }, + + /** + * given an array of MapArea object, return an array of its unique primary keys + * @param {MapArea[]} areas The areas to analyze + * @return {string[]} An array of unique primary keys + */ + + getPrimaryKeysForMapAreas: function (areas) { + var keys = []; + $.each(areas, function (_, e) { + if ($.inArray(e.keys[0], keys) < 0) { + keys.push(e.keys[0]); + } + }); + return keys; + }, + getData: function (obj) { + if (typeof obj === 'string') { + return this.getDataForKey(obj); + } else if ((obj && obj.mapster) || u.isElement(obj)) { + return this.getDataForArea(obj); + } else { + return null; + } + }, + // remove highlight if present, raise event + ensureNoHighlight: function () { + var ar; + if (this.highlightId >= 0) { + this.graphics.clearHighlight(); + ar = this.data[this.highlightId]; + ar.changeState('highlight', false); + this.setHighlightId(-1); + } + }, + setHighlightId: function (id) { + this.highlightId = id; + }, + + /** + * Clear all active selections on this map + */ + + clearSelections: function () { + $.each(this.data, function (_, e) { + if (e.selected) { + e.deselect(true); + } + }); + this.removeSelectionFinish(); + }, + + /** + * Set area options from an array of option data. + * + * @param {object[]} areas An array of objects containing area-specific options + */ + + setAreaOptions: function (areas) { + var i, area_options, ar; + areas = areas || []; + + // refer by: map_data.options[map_data.data[x].area_option_id] + + for (i = areas.length - 1; i >= 0; i--) { + area_options = areas[i]; + if (area_options) { + ar = this.getDataForKey(area_options.key); + if (ar) { + u.updateProps(ar.options, area_options); + + // TODO: will not deselect areas that were previously selected, so this only works + // for an initial bind. + + if (u.isBool(area_options.selected)) { + ar.selected = area_options.selected; + } + } + } + } + }, + // keys: a comma-separated list + drawSelections: function (keys) { + var i, + key_arr = u.asArray(keys); + + for (i = key_arr.length - 1; i >= 0; i--) { + this.data[key_arr[i]].drawSelection(); + } + }, + redrawSelections: function () { + $.each(this.data, function (_, e) { + if (e.isSelectedOrStatic()) { + e.drawSelection(); + } + }); + }, + // Causes changes to the bound list based on the user action (select or deselect) + // area: the jQuery area object + // returns the matching elements from the bound list for the first area passed + // (normally only one should be passed, but a list can be passed) + setBoundListProperties: function (opts, target, selected) { + target.each(function (_, e) { + if (opts.listSelectedClass) { + if (selected) { + $(e).addClass(opts.listSelectedClass); + } else { + $(e).removeClass(opts.listSelectedClass); + } + } + if (opts.listSelectedAttribute) { + $(e).prop(opts.listSelectedAttribute, selected); + } + }); + }, + clearBoundListProperties: function (opts) { + var me = this; + if (!opts.boundList) { + return; + } + me.setBoundListProperties(opts, opts.boundList, false); + }, + refreshBoundList: function (opts) { + var me = this; + me.clearBoundListProperties(opts); + me.setBoundListProperties( + opts, + m.getBoundList(opts, me.getSelected()), + true + ); + }, + setBoundList: function (opts) { + var me = this, + sorted_list = me.data.slice(0), + sort_func; + if (opts.sortList) { + if (opts.sortList === 'desc') { + sort_func = function (a, b) { + return a === b ? 0 : a > b ? -1 : 1; + }; + } else { + sort_func = function (a, b) { + return a === b ? 0 : a < b ? -1 : 1; + }; + } + + sorted_list.sort(function (a, b) { + a = a.value; + b = b.value; + return sort_func(a, b); + }); + } + me.options.boundList = opts.onGetList.call(me.image, sorted_list); + }, + ///called when images are done loading + initialize: function () { + var imgCopy, + base_canvas, + overlay_canvas, + wrap, + parentId, + css, + i, + size, + img, + scale, + me = this, + opts = me.options; + + if (me.complete) { + return; + } + + img = $(me.image); + + parentId = img.parent().attr('id'); + + // create a div wrapper only if there's not already a wrapper, otherwise, own it + + if ( + parentId && + parentId.length >= 12 && + parentId.substring(0, 12) === 'mapster_wrap' + ) { + wrap = img.parent(); + wrap.attr('id', me.wrapId()); + } else { + wrap = $('
'); + + if (opts.wrapClass) { + if (opts.wrapClass === true) { + wrap.addClass(img[0].className); + } else { + wrap.addClass(opts.wrapClass); + } + } + } + me.wrapper = wrap; + + // me.images[1] is the copy of the original image. It should be loaded & at its native size now so we can obtain the true + // width & height. This is needed to scale the imagemap if not being shown at its native size. It is also needed purely + // to finish binding in case the original image was not visible. It can be impossible in some browsers to obtain the + // native size of a hidden image. + + me.scaleInfo = scale = u.scaleMap( + me.images[0], + me.images[1], + opts.scaleMap + ); + + me.base_canvas = base_canvas = me.graphics.createVisibleCanvas(me); + me.overlay_canvas = overlay_canvas = me.graphics.createVisibleCanvas(me); + + // Now we got what we needed from the copy -clone from the original image again to make sure any other attributes are copied + imgCopy = $(me.images[1]) + .addClass('mapster_el ' + me.images[0].className) + .attr({ id: null, usemap: null }); + + size = u.size(me.images[0]); + + if (size.complete) { + imgCopy.css({ + width: size.width, + height: size.height + }); + } + + me.buildDataset(); + + // now that we have processed all the areas, set css for wrapper, scale map if needed + + css = $.extend( + { + display: 'block', + position: 'relative', + padding: 0 + }, + opts.enableAutoResizeSupport === true + ? {} + : { + width: scale.width, + height: scale.height + } + ); + + if (opts.wrapCss) { + $.extend(css, opts.wrapCss); + } + // if we were rebinding with an existing wrapper, the image will aready be in it + if (img.parent()[0] !== me.wrapper[0]) { + img.before(me.wrapper); + } + + wrap.css(css); + + // move all generated images into the wrapper for easy removal later + + $(me.images.slice(2)).hide(); + for (i = 1; i < me.images.length; i++) { + wrap.append(me.images[i]); + } + + //me.images[1].style.cssText = me.image.style.cssText; + + wrap + .append(base_canvas) + .append(overlay_canvas) + .append(img.css(m.canvas_style)); + + // images[0] is the original image with map, images[1] is the copy/background that is visible + + u.setOpacity(me.images[0], 0); + $(me.images[1]).show(); + + u.setOpacity(me.images[1], 1); + + me.complete = true; + me.processCommandQueue(); + + if (opts.enableAutoResizeSupport === true) { + me.configureAutoResize(); + } + + me.onConfigured(); + }, + + onConfigured: function () { + var me = this, + $img = $(me.image), + opts = me.options; + + if (opts.onConfigured && typeof opts.onConfigured === 'function') { + opts.onConfigured.call($img, true); + } + }, + + // when rebind is true, the MapArea data will not be rebuilt. + buildDataset: function (rebind) { + var sel, + areas, + j, + area_id, + $area, + area, + curKey, + mapArea, + key, + keys, + mapAreaId, + group_value, + dataItem, + href, + me = this, + opts = me.options, + default_group; + + function addAreaData(key, value) { + var dataItem = new m.AreaData(me, key, value); + dataItem.areaId = me._xref[key] = me.data.push(dataItem) - 1; + return dataItem.areaId; + } + + me._xref = {}; + me.data = []; + if (!rebind) { + me.mapAreas = []; + } + + default_group = !opts.mapKey; + if (default_group) { + opts.mapKey = 'data-mapster-key'; + } + + // the [attribute] selector is broken on old IE with jQuery. hasVml() is a quick and dirty + // way to test for that + + sel = m.hasVml() + ? 'area' + : default_group + ? 'area[coords]' + : 'area[' + opts.mapKey + ']'; + + areas = $(me.map).find(sel).off('.mapster'); + + for (mapAreaId = 0; mapAreaId < areas.length; mapAreaId++) { + area_id = 0; + area = areas[mapAreaId]; + $area = $(area); + + // skip areas with no coords - selector broken for older ie + if (!area.coords) { + continue; + } + // Create a key if none was assigned by the user + + if (default_group) { + curKey = String(mapAreaId); + $area.attr('data-mapster-key', curKey); + } else { + curKey = area.getAttribute(opts.mapKey); + } + + // conditions for which the area will be bound to mouse events + // only bind to areas that don't have nohref. ie 6&7 cannot detect the presence of nohref, so we have to also not bind if href is missing. + + if (rebind) { + mapArea = me.mapAreas[$area.data('mapster') - 1]; + mapArea.configure(curKey); + mapArea.areaDataXref = []; + } else { + mapArea = new m.MapArea(me, area, curKey); + me.mapAreas.push(mapArea); + } + + keys = mapArea.keys; // converted to an array by mapArea + + // Iterate through each mapKey assigned to this area + for (j = keys.length - 1; j >= 0; j--) { + key = keys[j]; + + if (opts.mapValue) { + group_value = $area.attr(opts.mapValue); + } + if (default_group) { + // set an attribute so we can refer to the area by index from the DOM object if no key + area_id = addAreaData(me.data.length, group_value); + dataItem = me.data[area_id]; + dataItem.key = key = area_id.toString(); + } else { + area_id = me._xref[key]; + if (area_id >= 0) { + dataItem = me.data[area_id]; + if (group_value && !me.data[area_id].value) { + dataItem.value = group_value; + } + } else { + area_id = addAreaData(key, group_value); + dataItem = me.data[area_id]; + dataItem.isPrimary = j === 0; + } + } + mapArea.areaDataXref.push(area_id); + dataItem.areasXref.push(mapAreaId); + } + + href = $area.attr('href'); + if (shouldNavigateTo(href) && !dataItem.href) { + dataItem.href = href; + dataItem.hrefTarget = $area.attr('target'); + } + + if (!mapArea.nohref) { + $area + .on('click.mapster', me.click) + .on( + 'mouseover.mapster touchstart.mapster.noPreventDefault', + me.mouseover + ) + .on( + 'mouseout.mapster touchend.mapster.noPreventDefault', + me.mouseout + ) + .on('mousedown.mapster', me.mousedown); + } + + // store an ID with each area. + $area.data('mapster', mapAreaId + 1); + } + + // TODO listenToList + // if (opts.listenToList && opts.nitG) { + // opts.nitG.bind('click.mapster', event_hooks[map_data.hooks_index].listclick_hook); + // } + + // populate areas from config options + me.setAreaOptions(opts.areas); + if (opts.onGetList) { + me.setBoundList(opts); + } + + if (opts.boundList && opts.boundList.length > 0) { + me.refreshBoundList(opts); + } + + if (rebind) { + me.graphics.removeSelections(); + me.graphics.refreshSelections(); + } else { + me.redrawSelections(); + } + }, + processCommandQueue: function () { + var cur, + me = this; + while (!me.currentAction && me.commands.length) { + cur = me.commands[0]; + me.commands.splice(0, 1); + m.impl[cur.command].apply(cur.that, cur.args); + } + }, + clearEvents: function () { + $(this.map).find('area').off('.mapster'); + $(this.images).off('.mapster'); + $(window).off(this.instanceEventNamespace()); + $(window.document).off(this.instanceEventNamespace()); + }, + _clearCanvases: function (preserveState) { + // remove the canvas elements created + if (!preserveState) { + $(this.base_canvas).remove(); + } + $(this.overlay_canvas).remove(); + }, + clearMapData: function (preserveState) { + var me = this; + this._clearCanvases(preserveState); + + // release refs to DOM elements + $.each(this.data, function (_, e) { + e.reset(); + }); + this.data = null; + if (!preserveState) { + // get rid of everything except the original image + this.image.style.cssText = this.imgCssText; + $(this.wrapper).before(this.image).remove(); + } + + me.images.clear(); + + if (me.autoResizeTimer) { + clearTimeout(me.autoResizeTimer); + } + me.autoResizeTimer = null; + this.image = null; + u.ifFunction(this.clearToolTip, this); + }, + + // Compelete cleanup process for deslecting items. Called after a batch operation, or by AreaData for single + // operations not flagged as "partial" + + removeSelectionFinish: function () { + var g = this.graphics; + + g.refreshSelections(); + // do not call ensure_no_highlight- we don't really want to unhilight it, just remove the effect + g.clearHighlight(); + } + }; +})(jQuery); + +/* areadata.js + AreaData and MapArea protoypes +*/ + +(function ($) { + 'use strict'; + + var m = $.mapster, + u = m.utils; + + function optsAreEqual(opts1, opts2) { + // deep compare is not trivial and current testing framework + // doesn't provide a way to detect this accurately so only + // implementing basic compare at this time. + // TODO: Implement deep obj compare or for perf reasons shallow + // with a short-circuit if deep is required for full compare + // since config options should only require shallow + return opts1 === opts2; + } + + /** + * Update selected state of this area + * + * @param {boolean} selected Determines whether areas are selected or deselected + */ + function updateSelected(selected) { + var me = this, + prevSelected = me.selected; + + me.selected = selected; + me.staticStateOverridden = u.isBool(me.effectiveOptions().staticState) + ? true + : false; + + return prevSelected !== selected; + } + + /** + * Select this area + * + * @param {AreaData} me AreaData context + * @param {object} options Options for rendering the selection + */ + function select(options) { + function buildOptions() { + // map the altImageId if an altimage was passed + return $.extend(me.effectiveRenderOptions('select'), options, { + altImageId: o.images.add(options.altImage) + }); + } + + var me = this, + o = me.owner, + hasOptions = !$.isEmptyObject(options), + newOptsCache = hasOptions ? buildOptions() : null, + // Per docs, options changed via set_options for an area that is + // already selected will not be reflected until the next time + // the area becomes selected. + changeOptions = hasOptions + ? !optsAreEqual(me.optsCache, newOptsCache) + : false, + selectedHasChanged = false, + isDrawn = me.isSelectedOrStatic(); + + // This won't clear staticState === true areas that have not been overridden via API set/select/deselect. + // This could be optimized to only clear if we are the only one selected. However, there are scenarios + // that do not respect singleSelect (e.g. initialization) so we force clear if there should only be one. + // TODO: Only clear if we aren't the only one selected (depends on #370) + if (o.options.singleSelect) { + o.clearSelections(); + // we may (staticState === true) or may not still be visible + isDrawn = me.isSelectedOrStatic(); + } + + if (changeOptions) { + me.optsCache = newOptsCache; + } + + // Update before we start drawing for methods + // that rely on internal selected value. + // Force update because area can be selected + // at multiple levels (selected / area_options.selected / staticState / etc.) + // and could have been cleared. + selectedHasChanged = me.updateSelected(true); + + if (isDrawn && changeOptions) { + // no way to remove just this area from canvas so must refresh everything + + // explicitly remove vml element since it uses removeSelections instead of refreshSelections + // TODO: Not sure why removeSelections isn't incorporated in to refreshSelections + // need to investigate and possibly consolidate + o.graphics.removeSelections(me.areaId); + o.graphics.refreshSelections(); + } else if (!isDrawn) { + me.drawSelection(); + } + + // don't fire until everything is done + if (selectedHasChanged) { + me.changeState('select', true); + } + } + + /** + * Deselect this area, optionally deferring finalization so additional areas can be deselected + * in a single operation + * + * @param {boolean} partial when true, the caller must invoke "finishRemoveSelection" to render + */ + + function deselect(partial) { + var me = this, + selectedHasChanged = false; + + // update before we start drawing for methods + // that rely on internal selected value + // force update because area can be selected + // at multiple levels (selected / area_options.selected / staticState / etc.) + selectedHasChanged = me.updateSelected(false); + + // release information about last area options when deselecting. + me.optsCache = null; + me.owner.graphics.removeSelections(me.areaId); + + // Complete selection removal process. This is separated because it's very inefficient to perform the whole + // process for multiple removals, as the canvas must be totally redrawn at the end of the process.ar.remove + if (!partial) { + me.owner.removeSelectionFinish(); + } + + // don't fire until everything is done + if (selectedHasChanged) { + me.changeState('select', false); + } + } + + /** + * Toggle the selection state of this area + * @param {object} options Rendering options, if toggling on + * @return {bool} The new selection state + */ + function toggle(options) { + var me = this; + if (!me.isSelected()) { + me.select(options); + } else { + me.deselect(); + } + return me.isSelected(); + } + + function isNoHref(areaEl) { + var $area = $(areaEl); + return u.hasAttribute($area, 'nohref') || !u.hasAttribute($area, 'href'); + } + + /** + * An AreaData object; represents a conceptual area that can be composed of + * one or more MapArea objects + * + * @param {MapData} owner The MapData object to which this belongs + * @param {string} key The key for this area + * @param {string} value The mapValue string for this area + */ + + m.AreaData = function (owner, key, value) { + $.extend(this, { + owner: owner, + key: key || '', + // means this represents the first key in a list of keys (it's the area group that gets highlighted on mouseover) + isPrimary: true, + areaId: -1, + href: '', + hrefTarget: null, + value: value || '', + options: {}, + // "null" means unchanged. Use "isSelected" method to just test true/false + selected: null, + // "true" means selected has been set via API AND staticState is true/false + staticStateOverridden: false, + // xref to MapArea objects + areasXref: [], + // (temporary storage) - the actual area moused over + area: null, + // the last options used to render this. Cache so when re-drawing after a remove, changes in options won't + // break already selected things. + optsCache: null + }); + }; + + /** + * The public API for AreaData object + */ + + m.AreaData.prototype = { + constuctor: m.AreaData, + select: select, + deselect: deselect, + toggle: toggle, + updateSelected: updateSelected, + areas: function () { + var i, + result = []; + for (i = 0; i < this.areasXref.length; i++) { + result.push(this.owner.mapAreas[this.areasXref[i]]); + } + return result; + }, + // return all coordinates for all areas + coords: function (offset) { + var coords = []; + $.each(this.areas(), function (_, el) { + coords = coords.concat(el.coords(offset)); + }); + return coords; + }, + reset: function () { + $.each(this.areas(), function (_, e) { + e.reset(); + }); + this.areasXref = []; + this.options = null; + }, + // Return the effective selected state of an area, incorporating staticState + isSelectedOrStatic: function () { + var o = this.effectiveOptions(); + return !u.isBool(o.staticState) || this.staticStateOverridden + ? this.isSelected() + : o.staticState; + }, + isSelected: function () { + return u.isBool(this.selected) + ? this.selected + : u.isBool(this.owner.area_options.selected) + ? this.owner.area_options.selected + : false; + }, + isSelectable: function () { + return u.isBool(this.effectiveOptions().staticState) + ? false + : u.isBool(this.owner.options.staticState) + ? false + : u.boolOrDefault(this.effectiveOptions().isSelectable, true); + }, + isDeselectable: function () { + return u.isBool(this.effectiveOptions().staticState) + ? false + : u.isBool(this.owner.options.staticState) + ? false + : u.boolOrDefault(this.effectiveOptions().isDeselectable, true); + }, + isNotRendered: function () { + return isNoHref(this.area) || this.effectiveOptions().isMask; + }, + /** + * Return the overall options effective for this area. + * This should get the default options, and merge in area-specific options, finally + * overlaying options passed by parameter + * + * @param {[type]} options options which will supercede all other options for this area + * @return {[type]} the combined options + */ + + effectiveOptions: function (options) { + var opts = u.updateProps( + {}, + this.owner.area_options, + this.options, + options || {}, + { + id: this.areaId + } + ); + + opts.selected = this.isSelected(); + + return opts; + }, + + /** + * Return the options effective for this area for a "render" or "highlight" mode. + * This should get the default options, merge in the areas-specific options, + * and then the mode-specific options. + * @param {string} mode 'render' or 'highlight' + * @param {[type]} options options which will supercede all other options for this area + * @return {[type]} the combined options + */ + + effectiveRenderOptions: function (mode, options) { + var allOpts, + opts = this.optsCache; + + if (!opts || mode === 'highlight') { + allOpts = this.effectiveOptions(options); + opts = u.updateProps({}, allOpts, allOpts['render_' + mode]); + + if (mode !== 'highlight') { + this.optsCache = opts; + } + } + return $.extend({}, opts); + }, + + // Fire callback on area state change + changeState: function (state_type, state) { + if (u.isFunction(this.owner.options.onStateChange)) { + this.owner.options.onStateChange.call(this.owner.image, { + key: this.key, + state: state_type, + selected: state + }); + } + if (state_type === 'select' && this.owner.options.boundList) { + this.owner.setBoundListProperties( + this.owner.options, + m.getBoundList(this.owner.options, this.key), + state + ); + } + }, + + // highlight this area + + highlight: function (options) { + var o = this.owner; + o.ensureNoHighlight(); + if (this.effectiveOptions().highlight) { + o.graphics.addShapeGroup(this, 'highlight', options); + } + o.setHighlightId(this.areaId); + this.changeState('highlight', true); + }, + + // select this area. if "callEvent" is true then the state change event will be called. (This method can be used + // during config operations, in which case no event is indicated) + + drawSelection: function () { + this.owner.graphics.addShapeGroup(this, 'select'); + } + }; + // represents an HTML area + m.MapArea = function (owner, areaEl, keys) { + if (!owner) { + return; + } + var me = this; + me.owner = owner; // a MapData object + me.area = areaEl; + me.areaDataXref = []; // a list of map_data.data[] id's for each areaData object containing this + me.originalCoords = []; + $.each(u.split(areaEl.coords), function (_, el) { + me.originalCoords.push(parseFloat(el)); + }); + me.length = me.originalCoords.length; + me.shape = u.getShape(areaEl); + me.nohref = isNoHref(areaEl); + me.configure(keys); + }; + m.MapArea.prototype = { + constructor: m.MapArea, + configure: function (keys) { + this.keys = u.split(keys); + }, + reset: function () { + this.area = null; + }, + coords: function (offset) { + return $.map(this.originalCoords, function (e) { + return offset ? e : e + offset; + }); + } + }; +})(jQuery); + +/* areacorners.js + determine the best place to put a box of dimensions (width,height) given a circle, rect or poly +*/ + +(function ($) { + 'use strict'; + + var u = $.mapster.utils; + + /** + * Compute positions that will place a target with dimensions [width,height] outside + * but near the boundaries of the elements "elements". When an imagemap is passed, the + * + * @param {Element|Element[]} elements An element or an array of elements (such as a jQuery object) + * @param {Element} image The image to which area elements are bound, if this is an image map. + * @param {Element} container The contianer in which the target must be constrained (or document, if missing) + * @param {int} width The width of the target object + * @return {object} a structure with the x and y positions + */ + u.areaCorners = function (elements, image, container, width, height) { + var pos, + found, + minX, + minY, + maxX, + maxY, + bestMinX, + bestMaxX, + bestMinY, + bestMaxY, + curX, + curY, + nest, + j, + offsetx = 0, + offsety = 0, + rootx, + rooty, + iCoords, + radius, + angle, + el, + coords = []; + + // if a single element was passed, map it to an array + + elements = elements.length ? elements : [elements]; + + container = container ? $(container) : $(document.body); + + // get the relative root of calculation + + pos = container.offset(); + rootx = pos.left; + rooty = pos.top; + + // with areas, all we know about is relative to the top-left corner of the image. We need to add an offset compared to + // the actual container. After this calculation, offsetx/offsety can be added to either the area coords, or the target's + // absolute position to get the correct top/left boundaries of the container. + + if (image) { + pos = $(image).offset(); + offsetx = pos.left; + offsety = pos.top; + } + + // map the coordinates of any type of shape to a poly and use the logic. simpler than using three different + // calculation methods. Circles use a 20 degree increment for this estimation. + + for (j = 0; j < elements.length; j++) { + el = elements[j]; + if (el.nodeName === 'AREA') { + iCoords = u.split(el.coords, parseInt); + + switch (u.getShape(el)) { + case 'circle': + case 'circ': + curX = iCoords[0]; + curY = iCoords[1]; + radius = iCoords[2]; + coords = []; + for (j = 0; j < 360; j += 20) { + angle = (j * Math.PI) / 180; + coords.push( + curX + radius * Math.cos(angle), + curY + radius * Math.sin(angle) + ); + } + break; + case 'rectangle': + case 'rect': + coords.push( + iCoords[0], + iCoords[1], + iCoords[2], + iCoords[1], + iCoords[2], + iCoords[3], + iCoords[0], + iCoords[3] + ); + break; + default: + coords = coords.concat(iCoords); + break; + } + + // map area positions to it's real position in the container + + for (j = 0; j < coords.length; j += 2) { + coords[j] = parseInt(coords[j], 10) + offsetx; + coords[j + 1] = parseInt(coords[j + 1], 10) + offsety; + } + } else { + el = $(el); + pos = el.position(); + coords.push( + pos.left, + pos.top, + pos.left + el.width(), + pos.top, + pos.left + el.width(), + pos.top + el.height(), + pos.left, + pos.top + el.height() + ); + } + } + + minX = minY = bestMinX = bestMinY = 999999; + maxX = maxY = bestMaxX = bestMaxY = -1; + + for (j = coords.length - 2; j >= 0; j -= 2) { + curX = coords[j]; + curY = coords[j + 1]; + + if (curX < minX) { + minX = curX; + bestMaxY = curY; + } + if (curX > maxX) { + maxX = curX; + bestMinY = curY; + } + if (curY < minY) { + minY = curY; + bestMaxX = curX; + } + if (curY > maxY) { + maxY = curY; + bestMinX = curX; + } + } + + // try to figure out the best place for the tooltip + + if (width && height) { + found = false; + $.each( + [ + [bestMaxX - width, minY - height], + [bestMinX, minY - height], + [minX - width, bestMaxY - height], + [minX - width, bestMinY], + [maxX, bestMaxY - height], + [maxX, bestMinY], + [bestMaxX - width, maxY], + [bestMinX, maxY] + ], + function (_, e) { + if (!found && e[0] > rootx && e[1] > rooty) { + nest = e; + found = true; + return false; + } + } + ); + + // default to lower-right corner if nothing fit inside the boundaries of the image + + if (!found) { + nest = [maxX, maxY]; + } + } + return nest; + }; +})(jQuery); + +/* + scale.js + Resize and zoom functionality + Requires areacorners.js +*/ + +(function ($) { + 'use strict'; + + var m = $.mapster, + u = m.utils, + p = m.MapArea.prototype; + + m.utils.getScaleInfo = function (eff, actual) { + var pct; + if (!actual) { + pct = 1; + actual = eff; + } else { + pct = eff.width / actual.width || eff.height / actual.height; + // make sure a float error doesn't muck us up + if (pct > 0.98 && pct < 1.02) { + pct = 1; + } + } + return { + scale: pct !== 1, + scalePct: pct, + realWidth: actual.width, + realHeight: actual.height, + width: eff.width, + height: eff.height, + ratio: eff.width / eff.height + }; + }; + // Scale a set of AREAs, return old data as an array of objects + m.utils.scaleMap = function (image, imageRaw, scale) { + // stunningly, jQuery width can return zero even as width does not, seems to happen only + // with adBlock or maybe other plugins. These must interfere with onload events somehow. + + var vis = u.size(image), + raw = u.size(imageRaw, true); + + if (!raw.complete()) { + throw 'Another script, such as an extension, appears to be interfering with image loading. Please let us know about this.'; + } + if (!vis.complete()) { + vis = raw; + } + return this.getScaleInfo(vis, scale ? raw : null); + }; + + /** + * Resize the image map. Only one of newWidth and newHeight should be passed to preserve scale + * + * @param {int} width The new width OR an object containing named parameters matching this function sig + * @param {int} height The new height + * @param {int} effectDuration Time in ms for the resize animation, or zero for no animation + * @param {function} callback A function to invoke when the operation finishes + * @return {promise} NOT YET IMPLEMENTED + */ + + m.MapData.prototype.resize = function (width, height, duration, callback) { + var p, + promises, + newsize, + els, + highlightId, + ratio, + me = this; + + // allow omitting duration + callback = callback || duration; + + function sizeCanvas(canvas, w, h) { + if (m.hasCanvas()) { + canvas.width = w; + canvas.height = h; + } else { + $(canvas).width(w); + $(canvas).height(h); + } + } + + // Finalize resize action, do callback, pass control to command queue + + function cleanupAndNotify() { + me.currentAction = ''; + + if (u.isFunction(callback)) { + callback(); + } + + me.processCommandQueue(); + } + + // handle cleanup after the inner elements are resized + + function finishResize() { + sizeCanvas(me.overlay_canvas, width, height); + + // restore highlight state if it was highlighted before + if (highlightId >= 0) { + var areaData = me.data[highlightId]; + areaData.tempOptions = { fade: false }; + me.getDataForKey(areaData.key).highlight(); + areaData.tempOptions = null; + } + sizeCanvas(me.base_canvas, width, height); + me.redrawSelections(); + cleanupAndNotify(); + } + + function resizeMapData() { + $(me.image).css(newsize); + // start calculation at the same time as effect + me.scaleInfo = u.getScaleInfo( + { + width: width, + height: height + }, + { + width: me.scaleInfo.realWidth, + height: me.scaleInfo.realHeight + } + ); + $.each(me.data, function (_, e) { + $.each(e.areas(), function (_, e) { + e.resize(); + }); + }); + } + + if (me.scaleInfo.width === width && me.scaleInfo.height === height) { + return; + } + + highlightId = me.highlightId; + + if (!width) { + ratio = height / me.scaleInfo.realHeight; + width = Math.round(me.scaleInfo.realWidth * ratio); + } + if (!height) { + ratio = width / me.scaleInfo.realWidth; + height = Math.round(me.scaleInfo.realHeight * ratio); + } + + newsize = { width: String(width) + 'px', height: String(height) + 'px' }; + if (!m.hasCanvas()) { + $(me.base_canvas).children().remove(); + } + + // resize all the elements that are part of the map except the image itself (which is not visible) + // but including the div wrapper + els = $(me.wrapper).find('.mapster_el'); + if (me.options.enableAutoResizeSupport !== true) { + els = els.add(me.wrapper); + } + + if (duration) { + promises = []; + me.currentAction = 'resizing'; + els.filter(':visible').each(function (_, e) { + p = u.defer(); + promises.push(p); + + $(e).animate(newsize, { + duration: duration, + complete: p.resolve, + easing: 'linear' + }); + }); + els.filter(':hidden').css(newsize); + + p = u.defer(); + promises.push(p); + + // though resizeMapData is not async, it needs to be finished just the same as the animations, + // so add it to the "to do" list. + + u.when.all(promises).then(finishResize); + resizeMapData(); + p.resolve(); + } else { + els.css(newsize); + resizeMapData(); + finishResize(); + } + }; + + m.MapData.prototype.autoResize = function (duration, callback) { + var me = this; + me.resize($(me.wrapper).width(), null, duration, callback); + }; + + m.MapData.prototype.configureAutoResize = function () { + var me = this, + ns = me.instanceEventNamespace(); + + function resizeMap() { + // Evaluate this at runtime to allow for set_options + // to change behavior as set_options intentionally + // does not change any rendering behavior when invoked. + // To improve perf, in next major release this should + // be refactored to add/remove listeners when autoResize + // changes rather than always having listeners attached + // and conditionally resizing + if (me.options.autoResize !== true) { + return; + } + + me.autoResize(me.options.autoResizeDuration, me.options.onAutoResize); + } + + function debounce() { + if (me.autoResizeTimer) { + clearTimeout(me.autoResizeTimer); + } + me.autoResizeTimer = setTimeout(resizeMap, me.options.autoResizeDelay); + } + + $(me.image).on('load' + ns, resizeMap); //Detect late image loads in IE11 + $(window).on('focus' + ns, resizeMap); + $(window).on('resize' + ns, debounce); + $(window).on('readystatechange' + ns, resizeMap); + $(window.document).on('fullscreenchange' + ns, resizeMap); + resizeMap(); + }; + + m.MapArea = u.subclass(m.MapArea, function () { + //change the area tag data if needed + this.base.init(); + if (this.owner.scaleInfo.scale) { + this.resize(); + } + }); + + p.coords = function (percent, coordOffset) { + var j, + newCoords = [], + pct = percent || this.owner.scaleInfo.scalePct, + offset = coordOffset || 0; + + if (pct === 1 && coordOffset === 0) { + return this.originalCoords; + } + + for (j = 0; j < this.length; j++) { + //amount = j % 2 === 0 ? xPct : yPct; + newCoords.push(Math.round(this.originalCoords[j] * pct) + offset); + } + return newCoords; + }; + p.resize = function () { + this.area.coords = this.coords().join(','); + }; + + p.reset = function () { + this.area.coords = this.coords(1).join(','); + }; + + m.impl.resize = function (width, height, duration, callback) { + var x = new m.Method( + this, + function () { + var me = this, + noDimensions = !width && !height, + isAutoResize = + me.options.enableAutoResizeSupport && + me.options.autoResize && + noDimensions; + + if (isAutoResize) { + me.autoResize(duration, callback); + return; + } + + if (noDimensions) { + return false; + } + + me.resize(width, height, duration, callback); + }, + null, + { + name: 'resize', + args: arguments + } + ).go(); + return x; + }; + + /* + m.impl.zoom = function (key, opts) { + var options = opts || {}; + + function zoom(areaData) { + // this will be MapData object returned by Method + + var scroll, corners, height, width, ratio, + diffX, diffY, ratioX, ratioY, offsetX, offsetY, newWidth, newHeight, scrollLeft, scrollTop, + padding = options.padding || 0, + scrollBarSize = areaData ? 20 : 0, + me = this, + zoomOut = false; + + if (areaData) { + // save original state on first zoom operation + if (!me.zoomed) { + me.zoomed = true; + me.preZoomWidth = me.scaleInfo.width; + me.preZoomHeight = me.scaleInfo.height; + me.zoomedArea = areaData; + if (options.scroll) { + me.wrapper.css({ overflow: 'auto' }); + } + } + corners = $.mapster.utils.areaCorners(areaData.coords(1, 0)); + width = me.wrapper.innerWidth() - scrollBarSize - padding * 2; + height = me.wrapper.innerHeight() - scrollBarSize - padding * 2; + diffX = corners.maxX - corners.minX; + diffY = corners.maxY - corners.minY; + ratioX = width / diffX; + ratioY = height / diffY; + ratio = Math.min(ratioX, ratioY); + offsetX = (width - diffX * ratio) / 2; + offsetY = (height - diffY * ratio) / 2; + + newWidth = me.scaleInfo.realWidth * ratio; + newHeight = me.scaleInfo.realHeight * ratio; + scrollLeft = (corners.minX) * ratio - padding - offsetX; + scrollTop = (corners.minY) * ratio - padding - offsetY; + } else { + if (!me.zoomed) { + return; + } + zoomOut = true; + newWidth = me.preZoomWidth; + newHeight = me.preZoomHeight; + scrollLeft = null; + scrollTop = null; + } + + this.resize({ + width: newWidth, + height: newHeight, + duration: options.duration, + scroll: scroll, + scrollLeft: scrollLeft, + scrollTop: scrollTop, + // closure so we can be sure values are correct + callback: (function () { + var isZoomOut = zoomOut, + scroll = options.scroll, + areaD = areaData; + return function () { + if (isZoomOut) { + me.preZoomWidth = null; + me.preZoomHeight = null; + me.zoomed = false; + me.zoomedArea = false; + if (scroll) { + me.wrapper.css({ overflow: 'inherit' }); + } + } else { + // just to be sure it wasn't canceled & restarted + me.zoomedArea = areaD; + } + }; + } ()) + }); + } + return (new m.Method(this, + function (opts) { + zoom.call(this); + }, + function () { + zoom.call(this.owner, this); + }, + { + name: 'zoom', + args: arguments, + first: true, + key: key + } + )).go(); + }; + */ +})(jQuery); + +/* + tooltip.js + Tooltip functionality + Requires areacorners.js +*/ + +(function ($) { + 'use strict'; + + var m = $.mapster, + u = m.utils; + + $.extend(m.defaults, { + toolTipContainer: + '
', + showToolTip: false, + toolTip: null, + toolTipFade: true, + toolTipClose: ['area-mouseout', 'image-mouseout', 'generic-mouseout'], + onShowToolTip: null, + onHideToolTip: null + }); + + $.extend(m.area_defaults, { + toolTip: null, + toolTipClose: null + }); + + /** + * Show a tooltip positioned near this area. + * + * @param {string|jquery} html A string of html or a jQuery object containing the tooltip content. + * @param {string|jquery} [template] The html template in which to wrap the content + * @param {string|object} [css] CSS to apply to the outermost element of the tooltip + * @return {jquery} The tooltip that was created + */ + + function createToolTip(html, template, css) { + var tooltip; + + // wrap the template in a jQuery object, or clone the template if it's already one. + // This assumes that anything other than a string is a jQuery object; if it's not jQuery will + // probably throw an error. + + if (template) { + tooltip = + typeof template === 'string' ? $(template) : $(template).clone(); + + tooltip.append(html); + } else { + tooltip = $(html); + } + + // always set display to block, or the positioning css won't work if the end user happened to + // use a non-block type element. + + tooltip + .css( + $.extend(css || {}, { + display: 'block', + position: 'absolute' + }) + ) + .hide(); + + $('body').append(tooltip); + + // we must actually add the tooltip to the DOM and "show" it in order to figure out how much space it + // consumes, and then reposition it with that knowledge. + // We also cache the actual opacity setting to restore finally. + + tooltip.attr('data-opacity', tooltip.css('opacity')).css('opacity', 0); + + // doesn't really show it because opacity=0 + + return tooltip.show(); + } + + /** + * Show a tooltip positioned near this area. + * + * @param {jquery} tooltip The tooltip + * @param {object} [options] options for displaying the tooltip. + * @config {int} [left] The 0-based absolute x position for the tooltip + * @config {int} [top] The 0-based absolute y position for the tooltip + * @config {string|object} [css] CSS to apply to the outermost element of the tooltip + * @config {bool} [fadeDuration] When non-zero, the duration in milliseconds of a fade-in effect for the tooltip. + */ + + function showToolTipImpl(tooltip, options) { + var tooltipCss = { + left: options.left + 'px', + top: options.top + 'px' + }, + actalOpacity = tooltip.attr('data-opacity') || 0, + zindex = tooltip.css('z-index'); + + if (parseInt(zindex, 10) === 0 || zindex === 'auto') { + tooltipCss['z-index'] = 9999; + } + + tooltip.css(tooltipCss).addClass('mapster_tooltip'); + + if (options.fadeDuration && options.fadeDuration > 0) { + u.fader(tooltip[0], 0, actalOpacity, options.fadeDuration); + } else { + u.setOpacity(tooltip[0], actalOpacity); + } + } + + /** + * Hide and remove active tooltips + * + * @param {MapData} this The mapdata object to which the tooltips belong + */ + + m.MapData.prototype.clearToolTip = function () { + if (this.activeToolTip) { + this.activeToolTip.stop().remove(); + this.activeToolTip = null; + this.activeToolTipID = null; + u.ifFunction(this.options.onHideToolTip, this); + } + }; + + /** + * Configure the binding between a named tooltip closing option, and a mouse event. + * + * If a callback is passed, it will be called when the activating event occurs, and the tooltip will + * only closed if it returns true. + * + * @param {MapData} [this] The MapData object to which this tooltip belongs. + * @param {String} option The name of the tooltip closing option + * @param {String} event UI event to bind to this option + * @param {Element} target The DOM element that is the target of the event + * @param {Function} [beforeClose] Callback when the tooltip is closed + * @param {Function} [onClose] Callback when the tooltip is closed + */ + function bindToolTipClose( + options, + bindOption, + event, + target, + beforeClose, + onClose + ) { + var tooltip_ns = '.mapster.tooltip', + event_name = event + tooltip_ns; + + if ($.inArray(bindOption, options) >= 0) { + target.off(event_name).on(event_name, function (e) { + if (!beforeClose || beforeClose.call(this, e)) { + target.off(tooltip_ns); + if (onClose) { + onClose.call(this); + } + } + }); + + return { + object: target, + event: event_name + }; + } + } + + /** + * Show a tooltip. + * + * @param {string|jquery} [tooltip] A string of html or a jQuery object containing the tooltip content. + * + * @param {string|jquery} [target] The target of the tooltip, to be used to determine positioning. If null, + * absolute position values must be passed with left and top. + * + * @param {string|jquery} [image] If target is an [area] the image that owns it + * + * @param {string|jquery} [container] An element within which the tooltip must be bounded + * + * @param {object|string|jQuery} [options] options to apply when creating this tooltip + * @config {int} [offsetx] the horizontal amount to offset the tooltip + * @config {int} [offsety] the vertical amount to offset the tooltip + * @config {string|object} [css] CSS to apply to the outermost element of the tooltip + * @config {bool} [fadeDuration] When non-zero, the duration in milliseconds of a fade-in effect for the tooltip. + * @config {int} [left] The 0-based absolute x position for the tooltip (only used if target is not specified) + * @config {int} [top] The 0-based absolute y position for the tooltip (only used if target it not specified) + */ + + function showToolTip(tooltip, target, image, container, options) { + var corners, + ttopts = {}; + + options = options || {}; + + if (target) { + corners = u.areaCorners( + target, + image, + container, + tooltip.outerWidth(true), + tooltip.outerHeight(true) + ); + + // Try to upper-left align it first, if that doesn't work, change the parameters + + ttopts.left = corners[0]; + ttopts.top = corners[1]; + } else { + ttopts.left = options.left; + ttopts.top = options.top; + } + + ttopts.left += options.offsetx || 0; + ttopts.top += options.offsety || 0; + + ttopts.css = options.css; + ttopts.fadeDuration = options.fadeDuration; + + showToolTipImpl(tooltip, ttopts); + + return tooltip; + } + + /** + * Show a tooltip positioned near this area. + * + * @param {string|jquery|function} [content] A string of html, jQuery object or function that returns same containing the tooltip content. + + * @param {object} [options] options to apply when creating this tooltip + * @config {string|jquery} [container] An element within which the tooltip must be bounded + * @config {bool} [template] a template to use instead of the default. If this property exists and is null, + * then no template will be used. + * @config {string} [closeEvents] A string with one or more comma-separated values that determine when the tooltip + * closes: 'area-click','tooltip-click','image-mouseout','image-click' are valid values + * then no template will be used. + * @config {int} [offsetx] the horizontal amount to offset the tooltip + * @config {int} [offsety] the vertical amount to offset the tooltip + * @config {string|object} [css] CSS to apply to the outermost element of the tooltip + * @config {bool} [fadeDuration] When non-zero, the duration in milliseconds of a fade-in effect for the tooltip. + */ + m.AreaData.prototype.showToolTip = function (content, options) { + var tooltip, + closeOpts, + target, + tipClosed, + template, + ttopts = {}, + ad = this, + md = ad.owner, + areaOpts = ad.effectiveOptions(); + + // copy the options object so we can update it + options = options ? $.extend({}, options) : {}; + + content = content || areaOpts.toolTip; + closeOpts = + options.closeEvents || + areaOpts.toolTipClose || + md.options.toolTipClose || + 'tooltip-click'; + + template = + typeof options.template !== 'undefined' + ? options.template + : md.options.toolTipContainer; + + options.closeEvents = + typeof closeOpts === 'string' + ? (closeOpts = u.split(closeOpts)) + : closeOpts; + + options.fadeDuration = + options.fadeDuration || + (md.options.toolTipFade + ? md.options.fadeDuration || areaOpts.fadeDuration + : 0); + + target = ad.area + ? ad.area + : $.map(ad.areas(), function (e) { + return e.area; + }); + + if (md.activeToolTipID === ad.areaId) { + return; + } + + md.clearToolTip(); + + var effectiveContent = u.isFunction(content) + ? content({ key: this.key, target: target }) + : content; + + if (!effectiveContent) { + return; + } + + md.activeToolTip = tooltip = createToolTip( + effectiveContent, + template, + options.css + ); + + md.activeToolTipID = ad.areaId; + + tipClosed = function () { + md.clearToolTip(); + }; + + bindToolTipClose( + closeOpts, + 'area-click', + 'click', + $(md.map), + null, + tipClosed + ); + bindToolTipClose( + closeOpts, + 'tooltip-click', + 'click', + tooltip, + null, + tipClosed + ); + bindToolTipClose( + closeOpts, + 'image-mouseout', + 'mouseout', + $(md.image), + function (e) { + return ( + e.relatedTarget && + e.relatedTarget.nodeName !== 'AREA' && + e.relatedTarget !== ad.area + ); + }, + tipClosed + ); + bindToolTipClose( + closeOpts, + 'image-click', + 'click', + $(md.image), + null, + tipClosed + ); + + showToolTip(tooltip, target, md.image, options.container, options); + + u.ifFunction(md.options.onShowToolTip, ad.area, { + toolTip: tooltip, + options: ttopts, + areaOptions: areaOpts, + key: ad.key, + selected: ad.isSelected() + }); + + return tooltip; + }; + + /** + * Parse an object that could be a string, a jquery object, or an object with a "contents" property + * containing html or a jQuery object. + * + * @param {object|string|jQuery} options The parameter to parse + * @return {string|jquery} A string or jquery object + */ + function getHtmlFromOptions(options) { + // see if any html was passed as either the options object itself, or the content property + + return options + ? typeof options === 'string' || options.jquery || u.isFunction(options) + ? options + : options.content + : null; + } + + function getOptionsFromOptions(options) { + return options + ? typeof options == 'string' || options.jquery || u.isFunction(options) + ? { content: options } + : options + : {}; + } + + /** + * Activate or remove a tooltip for an area. When this method is called on an area, the + * key parameter doesn't apply and "options" is the first parameter. + * + * When called with no parameters, or "key" is a falsy value, any active tooltip is cleared. + * + * When only a key is provided, the default tooltip for the area is used. + * + * When html is provided, this is used instead of the default tooltip. + * + * When "noTemplate" is true, the default tooltip template will not be used either, meaning only + * the actual html passed will be used. + * + * @param {string|AreaElement|HTMLElement} key The area key or element for which to activate a tooltip, or a DOM element/selector. + * + * @param {object|string|jquery} [options] options to apply when creating this tooltip - OR - + * The markup, or a jquery object, containing the data for the tooltip + * @config {string|jQuery|function} [content] the inner content of the tooltip; the tooltip text, HTML or function that returns same + * @config {Element|jQuery} [container] the inner content of the tooltip; the tooltip text or HTML + * @config {bool} [template] a template to use instead of the default. If this property exists and is null, + * then no template will be used. + * @config {string} [closeEvents] A string with one or more comma-separated values that determine when the tooltip + * closes: 'area-click','tooltip-click','image-mouseout','image-click','generic-click','generic-mouseout' are valid values + * @config {int} [offsetx] the horizontal amount to offset the tooltip. + * @config {int} [offsety] the vertical amount to offset the tooltip. + * @config {string|object} [css] CSS to apply to the outermost element of the tooltip + * @config {bool} [fadeDuration] When non-zero, the duration in milliseconds of a fade-in effect for the tooltip. + * @return {jQuery} The jQuery object + */ + + m.impl.tooltip = function (key, options) { + return new m.Method( + this, + function mapData() { + var tooltip, + target, + defaultTarget, + closeOpts, + tipClosed, + md = this; + if (!key) { + md.clearToolTip(); + } else { + target = $(key); + defaultTarget = target && target.length > 0 ? target[0] : null; + if (md.activeToolTipID === defaultTarget) { + return; + } + + md.clearToolTip(); + if (!defaultTarget) { + return; + } + + var content = getHtmlFromOptions(options), + effectiveContent = u.isFunction(content) + ? content({ key: this.key, target: target }) + : content; + + if (!effectiveContent) { + return; + } + + options = getOptionsFromOptions(options); + + closeOpts = + options.closeEvents || md.options.toolTipClose || 'tooltip-click'; + + options.closeEvents = + typeof closeOpts === 'string' + ? (closeOpts = u.split(closeOpts)) + : closeOpts; + + options.fadeDuration = + options.fadeDuration || + (md.options.toolTipFade ? md.options.fadeDuration : 0); + + tipClosed = function () { + md.clearToolTip(); + }; + + md.activeToolTip = tooltip = createToolTip( + effectiveContent, + options.template || md.options.toolTipContainer, + options.css + ); + md.activeToolTipID = defaultTarget; + + bindToolTipClose( + closeOpts, + 'tooltip-click', + 'click', + tooltip, + null, + tipClosed + ); + + bindToolTipClose( + closeOpts, + 'generic-mouseout', + 'mouseout', + target, + null, + tipClosed + ); + + bindToolTipClose( + closeOpts, + 'generic-click', + 'click', + target, + null, + tipClosed + ); + + md.activeToolTip = tooltip = showToolTip( + tooltip, + target, + md.image, + options.container, + options + ); + } + }, + function areaData() { + if ($.isPlainObject(key) && !options) { + options = key; + } + + this.showToolTip( + getHtmlFromOptions(options), + getOptionsFromOptions(options) + ); + }, + { + name: 'tooltip', + args: arguments, + key: key + } + ).go(); + }; +})(jQuery); + +}; + +imagemapsterFactory(jQuery); +export { jQuery, jQuery as $ }; +export default jQuery; diff --git a/dist/jquery.imagemapster.zepto.js b/dist/jquery.imagemapster.zepto.js index bc32749..8a03ac4 100644 --- a/dist/jquery.imagemapster.zepto.js +++ b/dist/jquery.imagemapster.zepto.js @@ -1,5 +1,5 @@ /*! -* imagemapster - v1.6.0 - 2024-03-12 +* imagemapster - v1.6.0 - 2024-04-05 * https://github.com/jamietre/ImageMapster/ * Copyright (c) 2011 - 2024 James Treworgy * License: MIT @@ -31,7 +31,7 @@ factory(root.jQuery || root.Zepto); } }(typeof self !== 'undefined' ? self : this, function (jQuery) { - /* +/* zepto.js Monkey patch for Zepto to add some methods ImageMapster needs */ @@ -725,8 +725,8 @@ return d && d.g_vml_ ? false : $('')[0].getContext - ? true - : false; + ? true + : false; } /** @@ -2632,8 +2632,8 @@ return !ar ? '' : ar.isPrimary - ? ar.key - : this.getPrimaryKeysForMapAreas(ar.areas()).join(','); + ? ar.key + : this.getPrimaryKeysForMapAreas(ar.areas()).join(','); }, /** @@ -2974,8 +2974,8 @@ sel = m.hasVml() ? 'area' : default_group - ? 'area[coords]' - : 'area[' + opts.mapKey + ']'; + ? 'area[coords]' + : 'area[' + opts.mapKey + ']'; areas = $(me.map).find(sel).off('.mapster'); @@ -3380,22 +3380,22 @@ return u.isBool(this.selected) ? this.selected : u.isBool(this.owner.area_options.selected) - ? this.owner.area_options.selected - : false; + ? this.owner.area_options.selected + : false; }, isSelectable: function () { return u.isBool(this.effectiveOptions().staticState) ? false : u.isBool(this.owner.options.staticState) - ? false - : u.boolOrDefault(this.effectiveOptions().isSelectable, true); + ? false + : u.boolOrDefault(this.effectiveOptions().isSelectable, true); }, isDeselectable: function () { return u.isBool(this.effectiveOptions().staticState) ? false : u.isBool(this.owner.options.staticState) - ? false - : u.boolOrDefault(this.effectiveOptions().isDeselectable, true); + ? false + : u.boolOrDefault(this.effectiveOptions().isDeselectable, true); }, isNotRendered: function () { return isNoHref(this.area) || this.effectiveOptions().isMask; @@ -4629,4 +4629,4 @@ }; })(jQuery); -})); \ No newline at end of file +})); diff --git a/dist/jquery.imagemapster.zepto.min.js b/dist/jquery.imagemapster.zepto.min.js index d4a489f..670eccf 100644 --- a/dist/jquery.imagemapster.zepto.min.js +++ b/dist/jquery.imagemapster.zepto.min.js @@ -1,5 +1,5 @@ /*! -* imagemapster - v1.6.0 - 2024-03-12 +* imagemapster - v1.6.0 - 2024-04-05 * https://github.com/jamietre/ImageMapster/ * Copyright (c) 2011 - 2024 James Treworgy * License: MIT diff --git a/dist/jquery.imagemapster.zepto.min.js.map b/dist/jquery.imagemapster.zepto.min.js.map index 8245d31..763884b 100644 --- a/dist/jquery.imagemapster.zepto.min.js.map +++ b/dist/jquery.imagemapster.zepto.min.js.map @@ -1 +1 @@ -{"version":3,"file":"jquery.imagemapster.zepto.min.js","sources":["jquery.imagemapster.zepto.js"],"names":["root","factory","define","amd","module","exports","jQuery","undefined","window","require","Zepto","self","this","$","fn","stop","each","_","name","funcName","toLowerCase","event","special","setupListener","supportsPassive","opts","Object","defineProperty","get","addEventListener","removeEventListener","e","ns","type","listener","includes","passive","touchstart","setup","call","touchend","mapster_version","m","mapster","method","impl","utils","isFunction","apply","Array","prototype","slice","arguments","error","bind","version","render_defaults","isSelectable","isDeselectable","fade","fadeDuration","fill","fillColor","fillColorMask","fillOpacity","highlight","stroke","strokeColor","strokeOpacity","strokeWidth","includeKeys","altImage","altImageId","altImages","defaults","clickNavigate","navigateMode","wrapClass","wrapCss","onGetList","sortList","listenToList","mapKey","mapValue","singleSelect","listKey","listSelectedAttribute","listSelectedClass","onClick","onMouseover","onMouseout","mouseoutDelay","onStateChange","boundList","onConfigured","configTimeout","noHrefIsMask","scaleMap","enableAutoResizeSupport","autoResize","autoResizeDelay","autoResizeDuration","onAutoResize","safeLoad","areas","shared_defaults","render_highlight","render_select","staticState","selected","area_defaults","isMask","canvas_style","position","left","top","padding","border","hasCanvas","map_cache","hooks","addHook","callback","push","callHooks","context","when","all","deferredArray","Promise","defer","promise","resolve","reject","then","catch","subclass","BaseClass","constr","Subclass","me","args","base","init","constructor","asArray","obj","split","text","cb","el","arr","i","length","trim","splice","updateProps","_target","_template","target","template","isEmptyObject","onlyProps","prop","src","p","inArray","isPlainObject","extend","isElement","o","HTMLElement","nodeType","nodeName","indexOf","indexOfProp","val","result","boolOrDefault","def","isBool","isUndef","ifFunction","that","size","image","raw","u","width","naturalWidth","imgWidth","height","naturalHeight","imgHeight","complete","setOpacity","opacity","style","css","fader","fade_func","op","endOp","duration","index","cbIntervals","elements","lastKey","setTimeout","getShape","areaEl","shape","hasAttribute","attrName","attr","getBoundList","key_list","key","list","is","add","getMapDataIndex","img","id","tagName","parent","getMapData","queueCommand","map_data","command","currentAction","commands","unload","off","ap","capProp","substr","toUpperCase","jqwidth","Method","func_map","func_area","output","input","first","allowAsync","go","data","ar","area_list","len","getData","addMap","removeMap","hasVml","a","appendTo","b","html","firstChild","has","behavior","adj","remove","namespaces","document","d","g_vml_","getContext","merge_areas","map_areas","options","getDataForKey","merge_options","temp_opts","area_options","md","getSelected","isSelected","defaultReturn","highlightId","ensureNoHighlight","keys","keyList","addUniqueKeys","getKeysForGroup","getDataForArea","join","ad","concat","select","set","deselect","lastMap","addArea","finishSetForMap","setSelection","toggle","removeSelectionFinish","filter","toString","unbind","preserveState","clearEvents","clearMapData","rebind","configureOptions","bindImages","buildDataset","get_options","effective","eff","effectiveOptions","set_options","graphics","snapshot","base_canvas","createVisibleCanvas","before","state","map","usemap","getAttribute","MapData","initialize","useCanvas","shapes","value","v","createStyleSheet","addRule","test","eval","canvasMethods","vmlMethods","addShapeGroupImpl","areaData","nohref","addShape","hex_to_decimal","hex","Math","max","min","parseInt","css3color","color","noop","Graphics","active","canvas","masks","begin","elementName","c","mapArea","mapData","createCanvasFor","addClass","addShapeGroup","mode","effectiveRenderOptions","areaId","overlay_canvas","render","find","not","renderShape","offset","coords","rect","moveTo","lineTo","arc","PI","addAltImage","beginPath","closePath","clip","globalAlpha","altImageOpacity","drawImage","owner","scaleInfo","maskCanvas","maskContext","hasMasks","shapeCanvas","shapeContext","clearRect","save","lineWidth","fillStyle","restore","s","images","strokeStyle","globalCompositeOperation","clearHighlight","refreshSelections","canvas_temp","hide","redrawSelections","show","cssclass","el_name","el_class","t_fill","append","w","h","children","removeSelections","area_id","MapImages","clear","status","_add","ids","on","imageLoaded","imageLoadError","triesLeft","check","isLoaded","imgTimeout","deferred","resolver","clearTimeout","queueMouseEvent","delay","area","activeAreaEvent","completeAction","currentAreaId","shouldNavigateTo","href","mousedown","blur","preventDefault","imgCssText","cssText","mapAreas","_xref","_tooltip_events","autoResizeTimer","mouseover","arData","getAllDataForArea","isNotRendered","clearEffects","showToolTip","toolTip","mouseout","relatedTarget","click","list_target","newSelectionState","canChangeState","cbResult","areaOpts","navigateTo","open","location","getNavDetails","defaultHref","useEl","elHref","hrefTarget","clickArea","listTarget","navDetails","toolTipClose","activeToolTip","clearToolTip","mi","e2","isActive","resizing","zoomed","zoomedArea","wrapId","instanceEventNamespace","_idFromKey","hasOwnProperty","atMost","isPrimary","getPrimaryKeysForMapAreas","changeState","setHighlightId","clearSelections","setAreaOptions","drawSelections","key_arr","drawSelection","isSelectedOrStatic","setBoundListProperties","removeClass","clearBoundListProperties","refreshBoundList","setBoundList","sort_func","sorted_list","sort","wrap","scale","parentId","substring","className","wrapper","imgCopy","display","processCommandQueue","configureAutoResize","$img","sel","j","$area","curKey","mapAreaId","group_value","dataItem","default_group","addAreaData","AreaData","String","configure","areaDataXref","MapArea","areasXref","cur","_clearCanvases","reset","g","isNoHref","staticStateOverridden","optsCache","constuctor","newOptsCache","hasOptions","changeOptions","isDrawn","selectedHasChanged","updateSelected","partial","prevSelected","allOpts","state_type","originalCoords","parseFloat","areaCorners","container","pos","found","minX","minY","maxX","maxY","bestMinX","bestMaxX","bestMinY","bestMaxY","curX","curY","nest","rootx","rooty","iCoords","radius","angle","offsetx","offsety","body","cos","sin","getScaleInfo","actual","pct","scalePct","realWidth","realHeight","ratio","imageRaw","vis","resize","promises","newsize","sizeCanvas","finishResize","tempOptions","resizeMapData","round","els","animate","easing","resizeMap","percent","coordOffset","newCoords","noDimensions","isAutoResize","createToolTip","tooltip","clone","bindToolTipClose","bindOption","beforeClose","onClose","tooltip_ns","event_name","ttopts","corners","outerWidth","outerHeight","tooltipCss","actalOpacity","zindex","getHtmlFromOptions","jquery","content","getOptionsFromOptions","toolTipContainer","toolTipFade","onShowToolTip","onHideToolTip","activeToolTipID","closeOpts","closeEvents","effectiveContent","tipClosed","areaOptions","defaultTarget"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"jquery.imagemapster.zepto.min.js","sources":["jquery.imagemapster.zepto.js"],"names":["root","factory","define","amd","module","exports","jQuery","undefined","window","require","Zepto","self","this","$","fn","stop","each","_","name","funcName","toLowerCase","event","special","setupListener","supportsPassive","opts","Object","defineProperty","get","addEventListener","removeEventListener","e","ns","type","listener","includes","passive","touchstart","setup","call","touchend","mapster_version","m","mapster","method","impl","utils","isFunction","apply","Array","prototype","slice","arguments","error","bind","version","render_defaults","isSelectable","isDeselectable","fade","fadeDuration","fill","fillColor","fillColorMask","fillOpacity","highlight","stroke","strokeColor","strokeOpacity","strokeWidth","includeKeys","altImage","altImageId","altImages","defaults","clickNavigate","navigateMode","wrapClass","wrapCss","onGetList","sortList","listenToList","mapKey","mapValue","singleSelect","listKey","listSelectedAttribute","listSelectedClass","onClick","onMouseover","onMouseout","mouseoutDelay","onStateChange","boundList","onConfigured","configTimeout","noHrefIsMask","scaleMap","enableAutoResizeSupport","autoResize","autoResizeDelay","autoResizeDuration","onAutoResize","safeLoad","areas","shared_defaults","render_highlight","render_select","staticState","selected","area_defaults","isMask","canvas_style","position","left","top","padding","border","hasCanvas","map_cache","hooks","addHook","callback","push","callHooks","context","when","all","deferredArray","Promise","defer","promise","resolve","reject","then","catch","subclass","BaseClass","constr","Subclass","me","args","base","init","constructor","asArray","obj","split","text","cb","el","arr","i","length","trim","splice","updateProps","_target","_template","target","template","isEmptyObject","onlyProps","prop","src","p","inArray","isPlainObject","extend","isElement","o","HTMLElement","nodeType","nodeName","indexOf","indexOfProp","val","result","boolOrDefault","def","isBool","isUndef","ifFunction","that","size","image","raw","u","width","naturalWidth","imgWidth","height","naturalHeight","imgHeight","complete","setOpacity","opacity","style","css","fader","fade_func","op","endOp","duration","index","cbIntervals","elements","lastKey","setTimeout","getShape","areaEl","shape","hasAttribute","attrName","attr","getBoundList","key_list","key","list","is","add","getMapDataIndex","img","id","tagName","parent","getMapData","queueCommand","map_data","command","currentAction","commands","unload","off","ap","capProp","substr","toUpperCase","jqwidth","Method","func_map","func_area","output","input","first","allowAsync","go","data","ar","area_list","len","getData","addMap","removeMap","hasVml","a","appendTo","b","html","firstChild","has","behavior","adj","remove","namespaces","document","d","g_vml_","getContext","merge_areas","map_areas","options","getDataForKey","merge_options","temp_opts","area_options","md","getSelected","isSelected","defaultReturn","highlightId","ensureNoHighlight","keys","keyList","addUniqueKeys","getKeysForGroup","getDataForArea","join","ad","concat","select","set","deselect","lastMap","addArea","finishSetForMap","setSelection","toggle","removeSelectionFinish","filter","toString","unbind","preserveState","clearEvents","clearMapData","rebind","configureOptions","bindImages","buildDataset","get_options","effective","eff","effectiveOptions","set_options","graphics","snapshot","base_canvas","createVisibleCanvas","before","state","map","usemap","getAttribute","MapData","initialize","useCanvas","shapes","value","v","createStyleSheet","addRule","test","eval","canvasMethods","vmlMethods","addShapeGroupImpl","areaData","nohref","addShape","hex_to_decimal","hex","Math","max","min","parseInt","css3color","color","noop","Graphics","active","canvas","masks","begin","elementName","c","mapArea","mapData","createCanvasFor","addClass","addShapeGroup","mode","effectiveRenderOptions","areaId","overlay_canvas","render","find","not","renderShape","offset","coords","rect","moveTo","lineTo","arc","PI","addAltImage","beginPath","closePath","clip","globalAlpha","altImageOpacity","drawImage","owner","scaleInfo","maskCanvas","maskContext","hasMasks","shapeCanvas","shapeContext","clearRect","save","lineWidth","fillStyle","restore","s","images","strokeStyle","globalCompositeOperation","clearHighlight","refreshSelections","canvas_temp","hide","redrawSelections","show","cssclass","el_name","el_class","t_fill","append","w","h","children","removeSelections","area_id","MapImages","clear","status","_add","ids","on","imageLoaded","imageLoadError","triesLeft","check","isLoaded","imgTimeout","deferred","resolver","clearTimeout","queueMouseEvent","delay","area","activeAreaEvent","completeAction","currentAreaId","shouldNavigateTo","href","mousedown","blur","preventDefault","imgCssText","cssText","mapAreas","_xref","_tooltip_events","autoResizeTimer","mouseover","arData","getAllDataForArea","isNotRendered","clearEffects","showToolTip","toolTip","mouseout","relatedTarget","click","list_target","newSelectionState","canChangeState","cbResult","areaOpts","navigateTo","open","location","getNavDetails","defaultHref","useEl","elHref","hrefTarget","clickArea","listTarget","navDetails","toolTipClose","activeToolTip","clearToolTip","mi","e2","isActive","resizing","zoomed","zoomedArea","wrapId","instanceEventNamespace","_idFromKey","hasOwnProperty","atMost","isPrimary","getPrimaryKeysForMapAreas","changeState","setHighlightId","clearSelections","setAreaOptions","drawSelections","key_arr","drawSelection","isSelectedOrStatic","setBoundListProperties","removeClass","clearBoundListProperties","refreshBoundList","setBoundList","sort_func","sorted_list","sort","wrap","scale","parentId","substring","className","wrapper","imgCopy","display","processCommandQueue","configureAutoResize","$img","sel","j","$area","curKey","mapAreaId","group_value","dataItem","default_group","addAreaData","AreaData","String","configure","areaDataXref","MapArea","areasXref","cur","_clearCanvases","reset","g","isNoHref","staticStateOverridden","optsCache","constuctor","newOptsCache","hasOptions","changeOptions","isDrawn","selectedHasChanged","updateSelected","partial","prevSelected","allOpts","state_type","originalCoords","parseFloat","areaCorners","container","pos","found","minX","minY","maxX","maxY","bestMinX","bestMaxX","bestMinY","bestMaxY","curX","curY","nest","rootx","rooty","iCoords","radius","angle","offsetx","offsety","body","cos","sin","getScaleInfo","actual","pct","scalePct","realWidth","realHeight","ratio","imageRaw","vis","resize","promises","newsize","sizeCanvas","finishResize","tempOptions","resizeMapData","round","els","animate","easing","resizeMap","percent","coordOffset","newCoords","noDimensions","isAutoResize","createToolTip","tooltip","clone","bindToolTipClose","bindOption","beforeClose","onClose","tooltip_ns","event_name","ttopts","corners","outerWidth","outerHeight","tooltipCss","actalOpacity","zindex","getHtmlFromOptions","jquery","content","getOptionsFromOptions","toolTipContainer","toolTipFade","onShowToolTip","onHideToolTip","activeToolTipID","closeOpts","closeEvents","effectiveContent","tipClosed","areaOptions","defaultTarget"],"mappings":"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"} \ No newline at end of file diff --git a/gruntfile.js b/gruntfile.js index d49ad31..9cc71f0 100644 --- a/gruntfile.js +++ b/gruntfile.js @@ -48,6 +48,14 @@ module.exports = function (grunt) { src: '<%= umd.jquery.options.dest %>', dest: 'dist/jquery.<%= pkg.name %>.js' }, + jqueryesmdist: { + options: { + banner: '<%= banner %>', + process: true + }, + src: '<%= umd.jqueryesm.options.dest %>', + dest: 'dist/jquery.<%= pkg.name %>.mjs' + }, zeptodist: { options: { banner: '<%= banner %>', @@ -68,6 +76,10 @@ module.exports = function (grunt) { src: '<%= concat.jquerydist.dest %>', dest: 'dist/jquery.<%= pkg.name %>.min.js' }, + jqueryesm: { + src: '<%= concat.jqueryesmdist.dest %>', + dest: 'dist/jquery.<%= pkg.name %>.min.mjs' + }, zepto: { src: '<%= concat.zeptodist.dest %>', dest: 'dist/jquery.<%= pkg.name %>.zepto.min.js' @@ -81,6 +93,13 @@ module.exports = function (grunt) { template: 'jqueryplugin.hbs' } }, + jqueryesm: { + options: { + src: '<%= concat.jquery.dest %>', + dest: 'build/jquery.<%= pkg.name %>.jquery.esm.js', + template: 'jqueryplugin.esm.hbs' + } + }, zepto: { options: { src: '<%= concat.zepto.dest %>', @@ -220,8 +239,10 @@ module.exports = function (grunt) { 'concat:jquery', 'concat:zepto', 'umd:jquery', + 'umd:jqueryesm', 'umd:zepto', 'concat:jquerydist', + 'concat:jqueryesmdist', 'concat:zeptodist' ]); grunt.registerTask('dist', ['build', 'uglify']); diff --git a/jqueryplugin.esm.hbs b/jqueryplugin.esm.hbs new file mode 100644 index 0000000..faa8193 --- /dev/null +++ b/jqueryplugin.esm.hbs @@ -0,0 +1,9 @@ +import jQuery from 'jquery'; + +function imagemapsterFactory(jQuery) { +{{{code}}} +}; + +imagemapsterFactory(jQuery); +export { jQuery, jQuery as $ }; +export default jQuery; diff --git a/jqueryplugin.hbs b/jqueryplugin.hbs index 24fc621..99408e1 100644 --- a/jqueryplugin.hbs +++ b/jqueryplugin.hbs @@ -25,5 +25,5 @@ factory(jQuery); } }(function (jQuery) { - {{{code}}} -})); \ No newline at end of file +{{{code}}} +})); diff --git a/package.json b/package.json index a4e5fc0..4cd799b 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,20 @@ "version": "1.6.0", "description": "jQuery plugin that activates areas in HTML imagemaps with support for highlighting, selecting, tooltips, resizing and more", "main": "dist/jquery.imagemapster.min.js", + "module": "dist/jquery.imagemapster.min.mjs", + "exports": { + ".": { + "import": { + "development": "./dist/jquery.imagemapster.mjs", + "default": "./dist/jquery.imagemapster.min.mjs" + }, + "require": { + "development": "./dist/jquery.imagemapster.js", + "default": "./dist/jquery.imagemapster.min.js" + }, + "default": "./dist/jquery.imagemapster.min.js" + } + }, "files": [ "dist/**/*" ], diff --git a/zeptoplugin.hbs b/zeptoplugin.hbs index a3ead73..0303b27 100644 --- a/zeptoplugin.hbs +++ b/zeptoplugin.hbs @@ -25,5 +25,5 @@ factory(root.jQuery || root.Zepto); } }(typeof self !== 'undefined' ? self : this, function (jQuery) { - {{{code}}} -})); \ No newline at end of file +{{{code}}} +}));