-
Notifications
You must be signed in to change notification settings - Fork 278
/
jquery.tinycon.min.js
13 lines (12 loc) · 2.08 KB
/
jquery.tinycon.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
/**
* @description jQuery.Tinycon - Tinycon library as a jQuery plugin
* @requires jQuery >= 1.0
* @author Tom Moor, http://tommoor.com
* @author Alexander Burtsev - author of a jQuery plugin
* @license MIT
* @version 0.2.6
*/
(function(e,k,l){function p(){var a=null;e("link").each(function(){var d=e(this);if((d.attr("rel")||"").match(/\bicon\b/))return a=d,!1});return a}function q(){e("link").each(function(){var a=e(this);(a.attr("rel")||"").match(/\bicon\b/)&&a.remove()})}function r(){if(!g||!h){var a=p();g=h=a?a.attr("href"):"/favicon.ico"}return h}function f(){j||(j=e("<canvas>").attr({width:16,height:16}));return j.get(0)}function s(a){if(!f().getContext||"force"===d.fallback){var c;d.fallback?l.title=0<a?"("+a+") "+
m:m:c=void 0;return c}var b=f().getContext("2d"),a=a||0;c=r();i=new Image;i.onload=function(){b.clearRect(0,0,16,16);b.drawImage(i,0,0,i.width,i.height,0,0,16,16);if(0<a){var c=a,h=d.width+6*(c.toString().length-1),f=16-h,g=16-d.height;b.font=(e.browser.webkit?"bold ":"")+d.font;b.fillStyle=d.background;b.strokeStyle=d.background;b.lineWidth=1;b.fillRect(f,g,h-1,d.height);b.beginPath();b.moveTo(f-0.5,g+1);b.lineTo(f-0.5,15);b.stroke();b.beginPath();b.moveTo(15.5,g+1);b.lineTo(15.5,15);b.stroke();
b.beginPath();b.strokeStyle="rgba(0,0,0,0.3)";b.moveTo(f,16);b.lineTo(15,16);b.stroke();b.fillStyle=d.colour;b.textAlign="right";b.textBaseline="top";b.fillText(c,15,e.browser.mozilla?7:6)}n()};c.match(/^data/)||(i.crossOrigin="anonymous");i.src=c}function n(){if(f().getContext){var a=f().toDataURL();q();e("<link>").attr({type:"image/x-icon",rel:"icon",href:a}).appendTo("head")}}var c={},h=null,g=null,m=l.title,i=null,j=null,d={},o={width:7,height:9,font:"10px arial",colour:"#ffffff",background:"#F03D25",
fallback:!0};e.extend(c,{setOptions:function(a){d=e.extend({},o,a);return c},setImage:function(a){h=a;n();return c},setBubble:function(a,d){if(isNaN(parseFloat(a))||!isFinite(a))k.console&&console.log("Bubble must be a number");else return s(a,d),c},reset:function(){this.setImage(g);return c}});c.setOptions(o);e.Tinycon=k.Tinycon=c})(jQuery,window,document);