Socket
Socket
Sign inDemoInstall

ig_markerfactory

Package Overview
Dependencies
0
Maintainers
1
Versions
36
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.9.9 to 2.9.10

129

dist/markerfactory.es6.js

@@ -16,2 +16,10 @@ function compact(array) {

function padHex(str_in) {
if (('' + str_in).length === 1) {
return '0' + String(str_in);
} else {
return String(str_in);
}
}
var defaults = {

@@ -661,63 +669,75 @@ h: 1,

function parseColorString(somecolor, opacity) {
var parsedcolor = {
original: somecolor
},
hsl, rgb;
opacity = opacity || 1;
if (somecolor.indexOf('hsl') !== -1) {
hsl = parseHSL(somecolor, opacity);
rgb = hslToRGB(hsl.h, hsl.s, hsl.l, hsl.a);
} else {
if (somecolor.indexOf('rgb') !== -1) {
rgb = parseRGB(somecolor, opacity);
var MarkerFactory = {
/**
* Receives a color string rgb(a), hsl(a) or hex, returns its components
* in rgba and hsla, with optional transparency
* plus a darkened version (default is half of each RGB component) and a
*
* @param {string} somecolor - A color string in rgb(a), hsl(a) or hex format
* @param {Number} [opacity=1] - Opacity to apply to the color
* @param {Number} [darkenfactor=1] - How much darker should the resulting color be
*
* @return {Object} input color parsed and modified as requested
*/
parseColorString: function (somecolor, opacity, darkenfactor) {
var parsedcolor = {
original: somecolor
},
hsl, rgb;
darkenfactor = darkenfactor || 1;
opacity = opacity || 1;
if (somecolor.indexOf('hsl') !== -1) {
hsl = parseHSL(somecolor, opacity);
rgb = hslToRGB(hsl.h, hsl.s, hsl.l, hsl.a);
} else {
rgb = parseHex(somecolor, opacity);
if (somecolor.indexOf('rgb') !== -1) {
rgb = parseRGB(somecolor, opacity);
} else {
rgb = parseHex(somecolor, opacity);
}
}
rgb.r = rgb.r * darkenfactor;
rgb.g = rgb.g * darkenfactor;
rgb.b = rgb.b * darkenfactor;
hsl = rgbToHSL(rgb.r, rgb.g, rgb.b, rgb.a);
}
parsedcolor.hsl = {
h: hsl.h,
s: hsl.s,
l: hsl.l,
a: hsl.a
};
parsedcolor.rgb = {
r: rgb.r,
g: rgb.g,
b: rgb.b,
a: rgb.a
};
parsedcolor.hsl = {
h: hsl.h,
s: hsl.s,
l: hsl.l,
a: hsl.a
};
parsedcolor.rgb = {
r: rgb.r,
g: rgb.g,
b: rgb.b,
a: rgb.a
};
parsedcolor.fillColor = rgb.fillColor;
parsedcolor.strokeColor = rgb.strokeColor;
parsedcolor.hex = ['#', rgb.r.toString(16), rgb.g.toString(16), rgb.b.toString(16)].join('');
return parsedcolor;
}
var getHexColor = function (color) {
var hexcolor = color;
if (color.indexOf('rgb') !== -1) {
var rgbArr = color.split(/[\(,\)]/ig);
hexcolor = [
(1 * rgbArr[1]).toString(16), (1 * rgbArr[2]).toString(16), (1 * rgbArr[3]).toString(16)
].join('');
} else if (color.indexOf('#') !== -1) {
hexcolor = color.replace(/#/g, '');
}
return hexcolor;
};
var MarkerFactory = {
parseColorString: parseColorString,
getHexColor: getHexColor,
createTransparentMarkerIcon: createTransparentMarkerIcon,
createFatMarkerIcon: createFatMarkerIcon,
createTextMarker: createTextMarker,
createClusterIcon: createClusterIcon,
parsedcolor.fillColor = rgb.fillColor;
parsedcolor.darkerColor = 'rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ',' + rgb.a + ')';
parsedcolor.strokeColor = rgb.strokeColor;
parsedcolor.hex = ['#', padHex(rgb.r.toString(16)), padHex(rgb.g.toString(16)), padHex(rgb.b.toString(16))].join('');
return parsedcolor;
},
/**
* Generates an google maps marker (or an image as dataurl from the given options)
*
* @param {Object} options The options
* @return {Object} { description_of_the_return_value }
*/
autoIcon: function (options) {

@@ -732,3 +752,2 @@

options.color = options.color || '#FF0000';
options.hexcolor = MarkerFactory.getHexColor(options.color);

@@ -750,9 +769,9 @@ // unless explicitly set to false, the icon doesn't have a marker-like wrapper

console.log('createTransparentMarkerIcon', options.font);
return MarkerFactory.createTransparentMarkerIcon(options);
return createTransparentMarkerIcon(options);
} else {
console.log('createFatMarkerIcon', options.font);
return MarkerFactory.createFatMarkerIcon(options);
return createFatMarkerIcon(options);
}
} else if (options.shadow) {
return MarkerFactory.createClusterIcon(options);
return createClusterIcon(options);
} else {

@@ -764,3 +783,3 @@ options.scale = options.scale || 0.75;

// This is text I should print literally
return MarkerFactory.createTextMarker(options);
return createTextMarker(options);
}

@@ -767,0 +786,0 @@

@@ -22,2 +22,10 @@ (function (global, factory) {

function padHex(str_in) {
if (('' + str_in).length === 1) {
return '0' + String(str_in);
} else {
return String(str_in);
}
}
var defaults = {

@@ -667,63 +675,75 @@ h: 1,

function parseColorString(somecolor, opacity) {
var parsedcolor = {
original: somecolor
},
hsl, rgb;
opacity = opacity || 1;
if (somecolor.indexOf('hsl') !== -1) {
hsl = parseHSL(somecolor, opacity);
rgb = hslToRGB(hsl.h, hsl.s, hsl.l, hsl.a);
} else {
if (somecolor.indexOf('rgb') !== -1) {
rgb = parseRGB(somecolor, opacity);
var MarkerFactory = {
/**
* Receives a color string rgb(a), hsl(a) or hex, returns its components
* in rgba and hsla, with optional transparency
* plus a darkened version (default is half of each RGB component) and a
*
* @param {string} somecolor - A color string in rgb(a), hsl(a) or hex format
* @param {Number} [opacity=1] - Opacity to apply to the color
* @param {Number} [darkenfactor=1] - How much darker should the resulting color be
*
* @return {Object} input color parsed and modified as requested
*/
parseColorString: function (somecolor, opacity, darkenfactor) {
var parsedcolor = {
original: somecolor
},
hsl, rgb;
darkenfactor = darkenfactor || 1;
opacity = opacity || 1;
if (somecolor.indexOf('hsl') !== -1) {
hsl = parseHSL(somecolor, opacity);
rgb = hslToRGB(hsl.h, hsl.s, hsl.l, hsl.a);
} else {
rgb = parseHex(somecolor, opacity);
if (somecolor.indexOf('rgb') !== -1) {
rgb = parseRGB(somecolor, opacity);
} else {
rgb = parseHex(somecolor, opacity);
}
}
rgb.r = rgb.r * darkenfactor;
rgb.g = rgb.g * darkenfactor;
rgb.b = rgb.b * darkenfactor;
hsl = rgbToHSL(rgb.r, rgb.g, rgb.b, rgb.a);
}
parsedcolor.hsl = {
h: hsl.h,
s: hsl.s,
l: hsl.l,
a: hsl.a
};
parsedcolor.rgb = {
r: rgb.r,
g: rgb.g,
b: rgb.b,
a: rgb.a
};
parsedcolor.hsl = {
h: hsl.h,
s: hsl.s,
l: hsl.l,
a: hsl.a
};
parsedcolor.rgb = {
r: rgb.r,
g: rgb.g,
b: rgb.b,
a: rgb.a
};
parsedcolor.fillColor = rgb.fillColor;
parsedcolor.strokeColor = rgb.strokeColor;
parsedcolor.hex = ['#', rgb.r.toString(16), rgb.g.toString(16), rgb.b.toString(16)].join('');
return parsedcolor;
}
var getHexColor = function (color) {
var hexcolor = color;
if (color.indexOf('rgb') !== -1) {
var rgbArr = color.split(/[\(,\)]/ig);
hexcolor = [
(1 * rgbArr[1]).toString(16), (1 * rgbArr[2]).toString(16), (1 * rgbArr[3]).toString(16)
].join('');
} else if (color.indexOf('#') !== -1) {
hexcolor = color.replace(/#/g, '');
}
return hexcolor;
};
var MarkerFactory = {
parseColorString: parseColorString,
getHexColor: getHexColor,
createTransparentMarkerIcon: createTransparentMarkerIcon,
createFatMarkerIcon: createFatMarkerIcon,
createTextMarker: createTextMarker,
createClusterIcon: createClusterIcon,
parsedcolor.fillColor = rgb.fillColor;
parsedcolor.darkerColor = 'rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ',' + rgb.a + ')';
parsedcolor.strokeColor = rgb.strokeColor;
parsedcolor.hex = ['#', padHex(rgb.r.toString(16)), padHex(rgb.g.toString(16)), padHex(rgb.b.toString(16))].join('');
return parsedcolor;
},
/**
* Generates an google maps marker (or an image as dataurl from the given options)
*
* @param {Object} options The options
* @return {Object} { description_of_the_return_value }
*/
autoIcon: function (options) {

@@ -738,3 +758,2 @@

options.color = options.color || '#FF0000';
options.hexcolor = MarkerFactory.getHexColor(options.color);

@@ -756,9 +775,9 @@ // unless explicitly set to false, the icon doesn't have a marker-like wrapper

console.log('createTransparentMarkerIcon', options.font);
return MarkerFactory.createTransparentMarkerIcon(options);
return createTransparentMarkerIcon(options);
} else {
console.log('createFatMarkerIcon', options.font);
return MarkerFactory.createFatMarkerIcon(options);
return createFatMarkerIcon(options);
}
} else if (options.shadow) {
return MarkerFactory.createClusterIcon(options);
return createClusterIcon(options);
} else {

@@ -770,3 +789,3 @@ options.scale = options.scale || 0.75;

// This is text I should print literally
return MarkerFactory.createTextMarker(options);
return createTextMarker(options);
}

@@ -773,0 +792,0 @@

@@ -1,2 +0,2 @@

!function(global,factory){"object"==typeof exports&&"undefined"!=typeof module?factory(exports):"function"==typeof define&&define.amd?define(["exports"],factory):factory(global=global||{})}(this,function(exports){"use strict";function compact(array){for(var index=-1,length=array?array.length:0,resIndex=0,result=[];++index<length;){var value=array[index];value&&(result[resIndex++]=value)}return result}var defaults={h:1,s:78,l:63,a:1},getColor=function(val,range){return defaults.h=Math.floor(360/range*val),"hsla("+defaults.h+","+defaults.s+"%,"+defaults.l+"%,"+defaults.a+")"},getColor1=function(){return"hsla("+defaults.h+","+defaults.s+"%,"+(defaults.l-30)+"%,"+defaults.a+")"},parseHalf=function(foo){return parseInt(foo/2,10)},darken=function(stringcolor,factor){var darkercolor={};return factor||(factor=1),-1!==stringcolor.fillColor.indexOf("rgb")?(darkercolor.r=factor*parseHalf(stringcolor.r),darkercolor.g=factor*parseHalf(stringcolor.g),darkercolor.b=factor*parseHalf(stringcolor.b),darkercolor.fillColor="rgba("+darkercolor.r+","+darkercolor.g+","+darkercolor.b+",0.99)"):-1!==stringcolor.fillColor.indexOf("hsl")&&(darkercolor.h=stringcolor.h,darkercolor.s=stringcolor.s,darkercolor.l=factor*stringcolor.l-30,darkercolor.fillColor="hsl("+darkercolor.h+","+darkercolor.s+"%,"+darkercolor.l+"%)"),darkercolor},parseHex=function(hexstring,opacity){var hexcolor={hex:hexstring};return 3===(hexstring=hexstring.replace("#","")).length&&(hexstring=hexstring[0]+hexstring[0]+hexstring[1]+hexstring[1]+hexstring[2]+hexstring[2]),isNaN(parseFloat(opacity,10))&&(opacity=1),hexcolor.r=parseInt(hexstring.substring(0,2),16),hexcolor.g=parseInt(hexstring.substring(2,4),16),hexcolor.b=parseInt(hexstring.substring(4,6),16),hexcolor.a=opacity,hexcolor.fillColor="rgba("+hexcolor.r+","+hexcolor.g+","+hexcolor.b+","+hexcolor.a+")",hexcolor.strokeColor=["rgba("+parseHalf(hexcolor.r),parseHalf(hexcolor.g),parseHalf(hexcolor.b),hexcolor.a+")"].join(","),hexcolor.rgb=hexcolor.fillColor,hexcolor},parseHSL=function(hslstring,opacity){var hslcolor={},hslparts=compact(hslstring.split(/hsla?\(|\,|\)|\%/));return void 0===hslparts[3]&&(hslparts[3]=1),isNaN(parseFloat(opacity,10))&&(opacity=1),hslcolor.h=parseFloat(hslparts[0],10),hslcolor.s=parseFloat(hslparts[1],10),hslcolor.l=parseFloat(hslparts[2],10),hslcolor.a=parseFloat(opacity*hslparts[3],10),hslcolor.fillColor="hsla("+hslcolor.h+","+hslcolor.s+"%,"+hslcolor.l+"%,"+hslcolor.a+")",hslcolor.strokeColor="hsla("+hslcolor.h+","+hslcolor.s+"%,"+parseInt(hslcolor.l/2,10)+"%,"+hslcolor.a+")",hslcolor.hsl=hslcolor.fillColor,hslcolor},parseRGB=function(rgbstring,opacity){var rgbcolor={},rgbparts=compact(rgbstring.split(/rgba?\(|\,|\)/));return void 0===rgbparts[3]&&(rgbparts[3]=1),isNaN(parseFloat(opacity,10))&&(opacity=1),rgbcolor.r=parseInt(rgbparts[0],10)%256,rgbcolor.g=parseInt(rgbparts[1],10)%256,rgbcolor.b=parseInt(rgbparts[2],10)%256,rgbcolor.a=parseFloat(opacity*rgbparts[3],10),rgbcolor.fillColor="rgba("+rgbcolor.r+","+rgbcolor.g+","+rgbcolor.b+","+rgbcolor.a+")",rgbcolor.strokeColor="rgba("+rgbcolor.r/2+","+rgbcolor.g/2+","+rgbcolor.b/2+","+rgbcolor.a+")",rgbcolor.rgb=rgbcolor.fillColor,rgbcolor},rgbToHSL=function(r,g,b,a){r=r%256/255,g=g%256/255,b=b%256/255,void 0===a&&(a=1);var h,s,max=Math.max(r,g,b),min=Math.min(r,g,b),l=(max+min)/2;if(max===min)h=s=0;else{var d=max-min;switch(s=l>.5?d/(2-max-min):d/(max+min),max){case r:h=(g-b)/d+(g<b?6:0);break;case g:h=(b-r)/d+2;break;case b:h=(r-g)/d+4;break;default:h=0}h/=6}var hsl={h:Math.round(360*h),s:Math.round(100*s),l:Math.round(100*l),a:Math.round(100*a)/100};return hsl.fillColor="hsla("+hsl.h+","+hsl.s+"%,"+hsl.l+"%,"+hsl.a+")",hsl},hslToRGB=function(h,s,l,a){var r,g,b;if(h=parseFloat(h,10)/360,s=parseFloat(s,10)/100,l=parseFloat(l,10)/100,void 0===a&&(a=1),0===s)r=g=b=l;else{var hue2rgb=function(p,q,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?p+6*(q-p)*t:t<.5?q:t<2/3?p+(q-p)*(2/3-t)*6:p},q=l<.5?l*(1+s):l+s-l*s,p=2*l-q;r=hue2rgb(p,q,h+1/3),g=hue2rgb(p,q,h),b=hue2rgb(p,q,h-1/3)}void 0===a&&(a=1);var rgb={r:Math.round(255*r),g:Math.round(255*g),b:Math.round(255*b),a:parseFloat(a,10)};return rgb.fillColor="rgba("+rgb.r+","+rgb.g+","+rgb.b+","+rgb.a+")",rgb},toDecColor=function(stringcolor){var parsedcolor={};return stringcolor?parsedcolor=-1!==stringcolor.indexOf("rgb")?parseRGB(stringcolor):-1!==stringcolor.indexOf("hsl")?parseHSL(stringcolor):parseHex(stringcolor):parsedcolor.fillColor="rgba(100,250,50,0.99)",parsedcolor},IconObject=function(canvas,markerOpts){return this.url=canvas.toDataURL(),this.fillColor=canvas.fillColor,this.markerOpts=markerOpts,Object.assign(this,markerOpts),this};IconObject.prototype.toJSON=function(){return{url:null,markerOpts:this.markerOpts}};var MarkerFactory={parseColorString:function(somecolor,opacity){var hsl,rgb,parsedcolor={original:somecolor};return opacity=opacity||1,-1!==somecolor.indexOf("hsl")?(hsl=parseHSL(somecolor,opacity),rgb=hslToRGB(hsl.h,hsl.s,hsl.l,hsl.a)):(rgb=-1!==somecolor.indexOf("rgb")?parseRGB(somecolor,opacity):parseHex(somecolor,opacity),hsl=rgbToHSL(rgb.r,rgb.g,rgb.b,rgb.a)),parsedcolor.hsl={h:hsl.h,s:hsl.s,l:hsl.l,a:hsl.a},parsedcolor.rgb={r:rgb.r,g:rgb.g,b:rgb.b,a:rgb.a},parsedcolor.fillColor=rgb.fillColor,parsedcolor.strokeColor=rgb.strokeColor,parsedcolor.hex=["#",rgb.r.toString(16),rgb.g.toString(16),rgb.b.toString(16)].join(""),parsedcolor},getHexColor:function(color){var hexcolor=color;if(-1!==color.indexOf("rgb")){var rgbArr=color.split(/[\(,\)]/gi);hexcolor=[(1*rgbArr[1]).toString(16),(1*rgbArr[2]).toString(16),(1*rgbArr[3]).toString(16)].join("")}else-1!==color.indexOf("#")&&(hexcolor=color.replace(/#/g,""));return hexcolor},createTransparentMarkerIcon:function(theoptions){theoptions.scale=theoptions.scale||1,theoptions.fontsize=theoptions.fontsize||26;var markerCanvas=function(options){var color0,color1,canvas=options.canvas||document.createElement("canvas"),context=canvas.getContext("2d"),font=options.font||"fontello",fontsize=options.fontsize||26;if(canvas.width=54,canvas.height=48,context.clearRect(0,0,canvas.width,canvas.height),void 0!==options.index&&options.count>0)color0=getColor(options.index,options.count),color1=getColor1();else{var deccolor=toDecColor(options.color);color0=deccolor.fillColor,color1=darken(deccolor).fillColor}if(context.beginPath(),options.shadow){context.font="normal normal normal "+fontsize+"px "+font,context.textBaseline="top";var textWidth=context.measureText(options.unicodelabel),text_x=Math.floor(canvas.width/2-textWidth.width/2);context.shadowOffsetX=-2,context.shadowOffsetY=-2,context.shadowBlur=0,context.fillStyle="#FFFFFF",context.shadowColor="#666666",context.fillText(options.unicodelabel,text_x-4,2),context.fillText(options.unicodelabel,text_x,5),context.fillStyle=color0,context.fillText(options.unicodelabel,text_x+4,8),context.strokeStyle="#FFFFFF",context.strokeText(options.unicodelabel,text_x+4,8)}else{context.font="normal normal normal "+(fontsize-3)+"px "+font,context.textBaseline="top";var textmetric=context.measureText(options.unicodelabel),text_x=Math.floor(canvas.width/2-textmetric.width/2);context.shadowOffsetX=2,context.shadowOffsetY=2,context.shadowBlur=0,context.shadowColor="#FFFFFF",context.fillStyle=color0,context.fillText(options.unicodelabel,text_x+1,6),context.shadowOffsetX=2,context.shadowOffsetY=2,context.shadowBlur=1,context.shadowColor="#FFFFFF",context.strokeStyle=color1,context.strokeText(options.unicodelabel,text_x+1,6)}return canvas.fillColor=color0,canvas}(theoptions),markerOpts={},scale=theoptions.scale;return theoptions.type="transparent",Object.assign(markerOpts,theoptions),window.google&&window.google.maps&&Object.assign(markerOpts,{size:new google.maps.Size(54*scale,48*scale),origin:new google.maps.Point(0,0),anchor:new google.maps.Point(27*scale,24*scale),scaledSize:new google.maps.Size(54*scale,48*scale)}),new IconObject(markerCanvas,markerOpts)},createFatMarkerIcon:function(theoptions){var scale=theoptions.scale||1,markerCanvas=function(options){var color0,color1,canvas=options.canvas||document.createElement("canvas"),font=options.font||"fontello",fontsize=options.fontsize||14,context=canvas.getContext("2d"),grad=context.createLinearGradient(0,0,0,53);if(canvas.width=54,canvas.height=54,void 0!==options.index&&options.count>0)color0=getColor(options.index,options.count),color1=getColor1();else{var deccolor=toDecColor(options.color);color0=deccolor.fillColor,color1=darken(deccolor).fillColor}context.clearRect(0,0,canvas.width,canvas.height),grad.addColorStop(0,color0),grad.addColorStop(1,color1),context.fillStyle=grad,context.strokeStyle=color1,context.beginPath(),context.moveTo(27,53),context.arc(27,28.5,18,1.1,Math.PI-1.1,!0),context.lineTo(27,53),context.fill(),context.stroke(),context.beginPath(),context.arc(27,28.5,15,0,2*Math.PI,!1),context.fillStyle="white",context.fill(),context.beginPath(),context.font="normal normal normal "+fontsize+"px "+font,context.fillStyle=color1,context.textBaseline="top";var textWidth=context.measureText(options.unicodelabel);return context.fillText(options.unicodelabel,Math.floor(canvas.width/2-textWidth.width/2),1+Math.floor(canvas.height/2-fontsize/2)),canvas.fillColor=color0,canvas}(theoptions),markerOpts={};return theoptions.type="fatmarker",Object.assign(markerOpts,theoptions),window&&window.google&&window.google.maps&&Object.assign(markerOpts,{size:new google.maps.Size(54,48),origin:new google.maps.Point(0,0),anchor:new google.maps.Point(21*scale,36*scale),scaledSize:new google.maps.Size(42*scale,36*scale),scale:scale}),new IconObject(markerCanvas,markerOpts)},createTextMarker:function(theoptions){theoptions.scale=theoptions.scale||.75;var markerCanvas=function(options){var canvas=document.createElement("canvas");canvas.width=48,canvas.height=40;var x=canvas.width/2,y=canvas.height-2,font="'"+options.font+"'"||"Arial",fontsize=options.fontsize||11,context=canvas.getContext("2d");context.clearRect(0,0,canvas.width,canvas.height);var color0,color1,cx=x+28.5,cy=y+13.5,grad=context.createLinearGradient(0,0,0,canvas.height);if(void 0!==options.index&&options.count>0)color0=getColor(options.index,options.count),color1=getColor1();else{var deccolor=toDecColor(options.color);color0=deccolor.fillColor,color1=darken(deccolor).fillColor}grad.addColorStop(0,color0),grad.addColorStop(1,color1),context.fillStyle=grad,context.strokeStyle="rgba(200,200,200,0.7)",context.beginPath(),context.arc(cx-1,cy,30,9*Math.PI/8,-6*Math.PI/8,!1),context.arc(x,(y-7)/2,15,.6,Math.PI-.6,!0),context.arc(2*x-cx+1,cy,30,-.95*Math.PI/3,-Math.PI/8,!1),context.fill(),context.stroke(),context.beginPath(),context.arc(x,.4*y,10,0,2*Math.PI,!1),context.fillStyle="white",context.fill(),context.beginPath(),context.font=fontsize+"pt "+font,context.textBaseline="top";var textWidth=context.measureText(options.label);return(textWidth.width>30||String(options.label).length>3)&&(context.rect(x-2-textWidth.width/2,y-30,x-2+textWidth.width/2,y-23),context.fillStyle="#F7F0F0",context.fill(),context.stroke()),context.fillStyle="black",context.strokeStyle="black",context.fillText(options.label,1+Math.floor(canvas.width/2-textWidth.width/2),8),canvas}(theoptions),markerOpts={};return theoptions.type="textmarker",Object.assign(markerOpts,theoptions),window&&window.google&&window.google.maps&&Object.assign(markerOpts,{size:new google.maps.Size(48,40),origin:new google.maps.Point(0,0),anchor:new google.maps.Point(24*theoptions.scale,40*theoptions.scale),scaledSize:new google.maps.Size(48*theoptions.scale,40*theoptions.scale)}),new IconObject(markerCanvas,markerOpts)},createClusterIcon:function(theoptions){theoptions.scale=theoptions.scale||1;var markerCanvas=function(options){var color1,canvas=options.canvas||document.createElement("canvas"),radius=18,font=options.font||"fontello",fontsize=options.fontsize||14,context=canvas.getContext("2d");if(context.createLinearGradient(0,0,0,53),canvas.width=54,canvas.height=54,void 0!==options.index&&options.count>0)getColor(options.index,options.count),color1=getColor1();else{var deccolor=toDecColor(options.color);deccolor.fillColor,color1=darken(deccolor).fillColor}context.clearRect(0,0,canvas.width,canvas.height),context.moveTo(27,53);var labelvalue=parseInt(options.label);labelvalue<10?(color1="orange",fontsize=14):labelvalue<30?(color1="red",fontsize=15):(color1="purple",fontsize=16),labelvalue>99&&(radius+=3,context.setLineDash([5,5]),context.beginPath(),context.arc(27,28.5,radius+7,0,2*Math.PI,!1),context.fillStyle="transparent",context.strokeStyle=color1,context.lineWidth=2,context.fill(),context.stroke()),context.setLineDash([5,5]),context.beginPath(),context.arc(27,28.5,radius+2,0,2*Math.PI,!1),context.fillStyle="transparent",context.strokeStyle=color1,context.lineWidth=2,context.fill(),context.stroke(),context.setLineDash([5,0]),context.beginPath(),context.arc(27,28.5,radius-3,0,2*Math.PI,!1),context.fillStyle="white",context.strokeStyle=color1,context.lineWidth=4,context.fill(),context.stroke(),context.beginPath(),context.font="normal normal normal "+fontsize+"px "+font,console.log("context font",context.font),context.fillStyle="#333",context.textBaseline="top";var textWidth=context.measureText(options.label);return context.fillText(options.label,Math.floor(canvas.width/2-textWidth.width/2),1+Math.floor(canvas.height/2-fontsize/2)),canvas}(theoptions),markerOpts={},scale=theoptions.scale;return Object.assign(markerOpts,theoptions),window&&window.google&&window.google.maps&&Object.assign(markerOpts,{size:new google.maps.Size(54,48),origin:new google.maps.Point(0,0),anchor:new google.maps.Point(27*scale,24*scale),scaledSize:new google.maps.Size(54*scale,48*scale)}),new IconObject(markerCanvas,markerOpts)},autoIcon:function(options){return"object"!=typeof options?(console.warn("autoIcon expects an object as its only parameter"),null):(options.label=String(options.label||"A"),options.color=options.color||"#FF0000",options.hexcolor=MarkerFactory.getHexColor(options.color),void 0===options.transparent_background&&(options.transparent_background=!0),4===options.label.length||"0x"===options.label.substring(0,2)?(options.font=options.font||"fontello",options.label=(options.label||"e836").slice(-4),options.unicodelabel=String.fromCharCode("0x"+options.label),options.scale=options.scale||1,options.transparent_background?(console.log("createTransparentMarkerIcon",options.font),MarkerFactory.createTransparentMarkerIcon(options)):(console.log("createFatMarkerIcon",options.font),MarkerFactory.createFatMarkerIcon(options))):options.shadow?MarkerFactory.createClusterIcon(options):(options.scale=options.scale||.75,options.label=String(options.label||"A"),options.fontsize=options.fontsize||11,options.font=options.font||"Arial",MarkerFactory.createTextMarker(options)))}};exports.MarkerFactory=MarkerFactory,exports.default=MarkerFactory,Object.defineProperty(exports,"__esModule",{value:!0})});
!function(global,factory){"object"==typeof exports&&"undefined"!=typeof module?factory(exports):"function"==typeof define&&define.amd?define(["exports"],factory):factory(global=global||{})}(this,function(exports){"use strict";function compact(array){for(var index=-1,length=array?array.length:0,resIndex=0,result=[];++index<length;){var value=array[index];value&&(result[resIndex++]=value)}return result}function padHex(str_in){return 1===(""+str_in).length?"0"+String(str_in):String(str_in)}var defaults={h:1,s:78,l:63,a:1},getColor=function(val,range){return defaults.h=Math.floor(360/range*val),"hsla("+defaults.h+","+defaults.s+"%,"+defaults.l+"%,"+defaults.a+")"},getColor1=function(){return"hsla("+defaults.h+","+defaults.s+"%,"+(defaults.l-30)+"%,"+defaults.a+")"},parseHalf=function(foo){return parseInt(foo/2,10)},darken=function(stringcolor,factor){var darkercolor={};return factor||(factor=1),-1!==stringcolor.fillColor.indexOf("rgb")?(darkercolor.r=factor*parseHalf(stringcolor.r),darkercolor.g=factor*parseHalf(stringcolor.g),darkercolor.b=factor*parseHalf(stringcolor.b),darkercolor.fillColor="rgba("+darkercolor.r+","+darkercolor.g+","+darkercolor.b+",0.99)"):-1!==stringcolor.fillColor.indexOf("hsl")&&(darkercolor.h=stringcolor.h,darkercolor.s=stringcolor.s,darkercolor.l=factor*stringcolor.l-30,darkercolor.fillColor="hsl("+darkercolor.h+","+darkercolor.s+"%,"+darkercolor.l+"%)"),darkercolor},parseHex=function(hexstring,opacity){var hexcolor={hex:hexstring};return 3===(hexstring=hexstring.replace("#","")).length&&(hexstring=hexstring[0]+hexstring[0]+hexstring[1]+hexstring[1]+hexstring[2]+hexstring[2]),isNaN(parseFloat(opacity,10))&&(opacity=1),hexcolor.r=parseInt(hexstring.substring(0,2),16),hexcolor.g=parseInt(hexstring.substring(2,4),16),hexcolor.b=parseInt(hexstring.substring(4,6),16),hexcolor.a=opacity,hexcolor.fillColor="rgba("+hexcolor.r+","+hexcolor.g+","+hexcolor.b+","+hexcolor.a+")",hexcolor.strokeColor=["rgba("+parseHalf(hexcolor.r),parseHalf(hexcolor.g),parseHalf(hexcolor.b),hexcolor.a+")"].join(","),hexcolor.rgb=hexcolor.fillColor,hexcolor},parseHSL=function(hslstring,opacity){var hslcolor={},hslparts=compact(hslstring.split(/hsla?\(|\,|\)|\%/));return void 0===hslparts[3]&&(hslparts[3]=1),isNaN(parseFloat(opacity,10))&&(opacity=1),hslcolor.h=parseFloat(hslparts[0],10),hslcolor.s=parseFloat(hslparts[1],10),hslcolor.l=parseFloat(hslparts[2],10),hslcolor.a=parseFloat(opacity*hslparts[3],10),hslcolor.fillColor="hsla("+hslcolor.h+","+hslcolor.s+"%,"+hslcolor.l+"%,"+hslcolor.a+")",hslcolor.strokeColor="hsla("+hslcolor.h+","+hslcolor.s+"%,"+parseInt(hslcolor.l/2,10)+"%,"+hslcolor.a+")",hslcolor.hsl=hslcolor.fillColor,hslcolor},parseRGB=function(rgbstring,opacity){var rgbcolor={},rgbparts=compact(rgbstring.split(/rgba?\(|\,|\)/));return void 0===rgbparts[3]&&(rgbparts[3]=1),isNaN(parseFloat(opacity,10))&&(opacity=1),rgbcolor.r=parseInt(rgbparts[0],10)%256,rgbcolor.g=parseInt(rgbparts[1],10)%256,rgbcolor.b=parseInt(rgbparts[2],10)%256,rgbcolor.a=parseFloat(opacity*rgbparts[3],10),rgbcolor.fillColor="rgba("+rgbcolor.r+","+rgbcolor.g+","+rgbcolor.b+","+rgbcolor.a+")",rgbcolor.strokeColor="rgba("+rgbcolor.r/2+","+rgbcolor.g/2+","+rgbcolor.b/2+","+rgbcolor.a+")",rgbcolor.rgb=rgbcolor.fillColor,rgbcolor},toDecColor=function(stringcolor){var parsedcolor={};return stringcolor?parsedcolor=-1!==stringcolor.indexOf("rgb")?parseRGB(stringcolor):-1!==stringcolor.indexOf("hsl")?parseHSL(stringcolor):parseHex(stringcolor):parsedcolor.fillColor="rgba(100,250,50,0.99)",parsedcolor},IconObject=function(canvas,markerOpts){return this.url=canvas.toDataURL(),this.fillColor=canvas.fillColor,this.markerOpts=markerOpts,Object.assign(this,markerOpts),this};IconObject.prototype.toJSON=function(){return{url:null,markerOpts:this.markerOpts}};var MarkerFactory={parseColorString:function(somecolor,opacity,darkenfactor){var hsl,rgb,parsedcolor={original:somecolor};return darkenfactor=darkenfactor||1,opacity=opacity||1,rgb=-1!==somecolor.indexOf("hsl")?function(h,s,l,a){var r,g,b;if(h=parseFloat(h,10)/360,s=parseFloat(s,10)/100,l=parseFloat(l,10)/100,void 0===a&&(a=1),0===s)r=g=b=l;else{var hue2rgb=function(p,q,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?p+6*(q-p)*t:t<.5?q:t<2/3?p+(q-p)*(2/3-t)*6:p},q=l<.5?l*(1+s):l+s-l*s,p=2*l-q;r=hue2rgb(p,q,h+1/3),g=hue2rgb(p,q,h),b=hue2rgb(p,q,h-1/3)}void 0===a&&(a=1);var rgb={r:Math.round(255*r),g:Math.round(255*g),b:Math.round(255*b),a:parseFloat(a,10)};return rgb.fillColor="rgba("+rgb.r+","+rgb.g+","+rgb.b+","+rgb.a+")",rgb}((hsl=parseHSL(somecolor,opacity)).h,hsl.s,hsl.l,hsl.a):-1!==somecolor.indexOf("rgb")?parseRGB(somecolor,opacity):parseHex(somecolor,opacity),rgb.r=rgb.r*darkenfactor,rgb.g=rgb.g*darkenfactor,rgb.b=rgb.b*darkenfactor,hsl=function(r,g,b,a){r=r%256/255,g=g%256/255,b=b%256/255,void 0===a&&(a=1);var h,s,max=Math.max(r,g,b),min=Math.min(r,g,b),l=(max+min)/2;if(max===min)h=s=0;else{var d=max-min;switch(s=l>.5?d/(2-max-min):d/(max+min),max){case r:h=(g-b)/d+(g<b?6:0);break;case g:h=(b-r)/d+2;break;case b:h=(r-g)/d+4;break;default:h=0}h/=6}var hsl={h:Math.round(360*h),s:Math.round(100*s),l:Math.round(100*l),a:Math.round(100*a)/100};return hsl.fillColor="hsla("+hsl.h+","+hsl.s+"%,"+hsl.l+"%,"+hsl.a+")",hsl}(rgb.r,rgb.g,rgb.b,rgb.a),parsedcolor.hsl={h:hsl.h,s:hsl.s,l:hsl.l,a:hsl.a},parsedcolor.rgb={r:rgb.r,g:rgb.g,b:rgb.b,a:rgb.a},parsedcolor.fillColor=rgb.fillColor,parsedcolor.darkerColor="rgba("+rgb.r+","+rgb.g+","+rgb.b+","+rgb.a+")",parsedcolor.strokeColor=rgb.strokeColor,parsedcolor.hex=["#",padHex(rgb.r.toString(16)),padHex(rgb.g.toString(16)),padHex(rgb.b.toString(16))].join(""),parsedcolor},autoIcon:function(options){return"object"!=typeof options?(console.warn("autoIcon expects an object as its only parameter"),null):(options.label=String(options.label||"A"),options.color=options.color||"#FF0000",void 0===options.transparent_background&&(options.transparent_background=!0),4===options.label.length||"0x"===options.label.substring(0,2)?(options.font=options.font||"fontello",options.label=(options.label||"e836").slice(-4),options.unicodelabel=String.fromCharCode("0x"+options.label),options.scale=options.scale||1,options.transparent_background?(console.log("createTransparentMarkerIcon",options.font),function(theoptions){theoptions.scale=theoptions.scale||1,theoptions.fontsize=theoptions.fontsize||26;var markerCanvas=function(options){var color0,color1,canvas=options.canvas||document.createElement("canvas"),context=canvas.getContext("2d"),font=options.font||"fontello",fontsize=options.fontsize||26;if(canvas.width=54,canvas.height=48,context.clearRect(0,0,canvas.width,canvas.height),void 0!==options.index&&options.count>0)color0=getColor(options.index,options.count),color1=getColor1();else{var deccolor=toDecColor(options.color);color0=deccolor.fillColor,color1=darken(deccolor).fillColor}if(context.beginPath(),options.shadow){context.font="normal normal normal "+fontsize+"px "+font,context.textBaseline="top";var textWidth=context.measureText(options.unicodelabel),text_x=Math.floor(canvas.width/2-textWidth.width/2);context.shadowOffsetX=-2,context.shadowOffsetY=-2,context.shadowBlur=0,context.fillStyle="#FFFFFF",context.shadowColor="#666666",context.fillText(options.unicodelabel,text_x-4,2),context.fillText(options.unicodelabel,text_x,5),context.fillStyle=color0,context.fillText(options.unicodelabel,text_x+4,8),context.strokeStyle="#FFFFFF",context.strokeText(options.unicodelabel,text_x+4,8)}else{context.font="normal normal normal "+(fontsize-3)+"px "+font,context.textBaseline="top";var textmetric=context.measureText(options.unicodelabel),text_x=Math.floor(canvas.width/2-textmetric.width/2);context.shadowOffsetX=2,context.shadowOffsetY=2,context.shadowBlur=0,context.shadowColor="#FFFFFF",context.fillStyle=color0,context.fillText(options.unicodelabel,text_x+1,6),context.shadowOffsetX=2,context.shadowOffsetY=2,context.shadowBlur=1,context.shadowColor="#FFFFFF",context.strokeStyle=color1,context.strokeText(options.unicodelabel,text_x+1,6)}return canvas.fillColor=color0,canvas}(theoptions),markerOpts={},scale=theoptions.scale;return theoptions.type="transparent",Object.assign(markerOpts,theoptions),window.google&&window.google.maps&&Object.assign(markerOpts,{size:new google.maps.Size(54*scale,48*scale),origin:new google.maps.Point(0,0),anchor:new google.maps.Point(27*scale,24*scale),scaledSize:new google.maps.Size(54*scale,48*scale)}),new IconObject(markerCanvas,markerOpts)}(options)):(console.log("createFatMarkerIcon",options.font),function(theoptions){var scale=theoptions.scale||1,markerCanvas=function(options){var color0,color1,canvas=options.canvas||document.createElement("canvas"),font=options.font||"fontello",fontsize=options.fontsize||14,context=canvas.getContext("2d"),grad=context.createLinearGradient(0,0,0,53);if(canvas.width=54,canvas.height=54,void 0!==options.index&&options.count>0)color0=getColor(options.index,options.count),color1=getColor1();else{var deccolor=toDecColor(options.color);color0=deccolor.fillColor,color1=darken(deccolor).fillColor}context.clearRect(0,0,canvas.width,canvas.height),grad.addColorStop(0,color0),grad.addColorStop(1,color1),context.fillStyle=grad,context.strokeStyle=color1,context.beginPath(),context.moveTo(27,53),context.arc(27,28.5,18,1.1,Math.PI-1.1,!0),context.lineTo(27,53),context.fill(),context.stroke(),context.beginPath(),context.arc(27,28.5,15,0,2*Math.PI,!1),context.fillStyle="white",context.fill(),context.beginPath(),context.font="normal normal normal "+fontsize+"px "+font,context.fillStyle=color1,context.textBaseline="top";var textWidth=context.measureText(options.unicodelabel);return context.fillText(options.unicodelabel,Math.floor(canvas.width/2-textWidth.width/2),1+Math.floor(canvas.height/2-fontsize/2)),canvas.fillColor=color0,canvas}(theoptions),markerOpts={};return theoptions.type="fatmarker",Object.assign(markerOpts,theoptions),window&&window.google&&window.google.maps&&Object.assign(markerOpts,{size:new google.maps.Size(54,48),origin:new google.maps.Point(0,0),anchor:new google.maps.Point(21*scale,36*scale),scaledSize:new google.maps.Size(42*scale,36*scale),scale:scale}),new IconObject(markerCanvas,markerOpts)}(options))):options.shadow?function(theoptions){theoptions.scale=theoptions.scale||1;var markerCanvas=function(options){var color1,canvas=options.canvas||document.createElement("canvas"),radius=18,font=options.font||"fontello",fontsize=options.fontsize||14,context=canvas.getContext("2d");if(context.createLinearGradient(0,0,0,53),canvas.width=54,canvas.height=54,void 0!==options.index&&options.count>0)getColor(options.index,options.count),color1=getColor1();else{var deccolor=toDecColor(options.color);deccolor.fillColor,color1=darken(deccolor).fillColor}context.clearRect(0,0,canvas.width,canvas.height),context.moveTo(27,53);var labelvalue=parseInt(options.label);labelvalue<10?(color1="orange",fontsize=14):labelvalue<30?(color1="red",fontsize=15):(color1="purple",fontsize=16),labelvalue>99&&(radius+=3,context.setLineDash([5,5]),context.beginPath(),context.arc(27,28.5,radius+7,0,2*Math.PI,!1),context.fillStyle="transparent",context.strokeStyle=color1,context.lineWidth=2,context.fill(),context.stroke()),context.setLineDash([5,5]),context.beginPath(),context.arc(27,28.5,radius+2,0,2*Math.PI,!1),context.fillStyle="transparent",context.strokeStyle=color1,context.lineWidth=2,context.fill(),context.stroke(),context.setLineDash([5,0]),context.beginPath(),context.arc(27,28.5,radius-3,0,2*Math.PI,!1),context.fillStyle="white",context.strokeStyle=color1,context.lineWidth=4,context.fill(),context.stroke(),context.beginPath(),context.font="normal normal normal "+fontsize+"px "+font,console.log("context font",context.font),context.fillStyle="#333",context.textBaseline="top";var textWidth=context.measureText(options.label);return context.fillText(options.label,Math.floor(canvas.width/2-textWidth.width/2),1+Math.floor(canvas.height/2-fontsize/2)),canvas}(theoptions),markerOpts={},scale=theoptions.scale;return Object.assign(markerOpts,theoptions),window&&window.google&&window.google.maps&&Object.assign(markerOpts,{size:new google.maps.Size(54,48),origin:new google.maps.Point(0,0),anchor:new google.maps.Point(27*scale,24*scale),scaledSize:new google.maps.Size(54*scale,48*scale)}),new IconObject(markerCanvas,markerOpts)}(options):(options.scale=options.scale||.75,options.label=String(options.label||"A"),options.fontsize=options.fontsize||11,options.font=options.font||"Arial",function(theoptions){theoptions.scale=theoptions.scale||.75;var markerCanvas=function(options){var canvas=document.createElement("canvas");canvas.width=48,canvas.height=40;var x=canvas.width/2,y=canvas.height-2,font="'"+options.font+"'"||"Arial",fontsize=options.fontsize||11,context=canvas.getContext("2d");context.clearRect(0,0,canvas.width,canvas.height);var color0,color1,cx=x+28.5,cy=y+13.5,grad=context.createLinearGradient(0,0,0,canvas.height);if(void 0!==options.index&&options.count>0)color0=getColor(options.index,options.count),color1=getColor1();else{var deccolor=toDecColor(options.color);color0=deccolor.fillColor,color1=darken(deccolor).fillColor}grad.addColorStop(0,color0),grad.addColorStop(1,color1),context.fillStyle=grad,context.strokeStyle="rgba(200,200,200,0.7)",context.beginPath(),context.arc(cx-1,cy,30,9*Math.PI/8,-6*Math.PI/8,!1),context.arc(x,(y-7)/2,15,.6,Math.PI-.6,!0),context.arc(2*x-cx+1,cy,30,-.95*Math.PI/3,-Math.PI/8,!1),context.fill(),context.stroke(),context.beginPath(),context.arc(x,.4*y,10,0,2*Math.PI,!1),context.fillStyle="white",context.fill(),context.beginPath(),context.font=fontsize+"pt "+font,context.textBaseline="top";var textWidth=context.measureText(options.label);return(textWidth.width>30||String(options.label).length>3)&&(context.rect(x-2-textWidth.width/2,y-30,x-2+textWidth.width/2,y-23),context.fillStyle="#F7F0F0",context.fill(),context.stroke()),context.fillStyle="black",context.strokeStyle="black",context.fillText(options.label,1+Math.floor(canvas.width/2-textWidth.width/2),8),canvas}(theoptions),markerOpts={};return theoptions.type="textmarker",Object.assign(markerOpts,theoptions),window&&window.google&&window.google.maps&&Object.assign(markerOpts,{size:new google.maps.Size(48,40),origin:new google.maps.Point(0,0),anchor:new google.maps.Point(24*theoptions.scale,40*theoptions.scale),scaledSize:new google.maps.Size(48*theoptions.scale,40*theoptions.scale)}),new IconObject(markerCanvas,markerOpts)}(options)))}};exports.MarkerFactory=MarkerFactory,exports.default=MarkerFactory,Object.defineProperty(exports,"__esModule",{value:!0})});
//# sourceMappingURL=markerfactory.min.js.map
{
"name": "ig_markerfactory",
"version": "2.9.9",
"version": "2.9.10",
"description": "Uses canvas to generate google.maps.Marker Icons from graphic fonts (i.e. font-awesome) on the fly",

@@ -5,0 +5,0 @@ "keywords": [

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc