User:PerfektesChaos/js/logidTooltip/r.js

/// Gadget/logidTooltip/r.js /// 2020-08-01 PerfektesChaos@de.wikipedia /// Fingerprint:#0#41407F27# /// Documentation:w:en:User:PerfektesChaos/js/logidTooltip /// @license:CC-by-sa/4.0 GPLv3 /// (function(mw,$){ "use strict"; var Version=1.3,LIT={signature:"logidTooltip",source:"0f/Arrow Blue UpperRight 001.svg",search:"&action=edit&redlink=1",selector:"data-mw-logid",npx:16,$body:false,$img:false },OO; function filepath(assign){ var s="[a-z0-9]"; if(typeof assign==="string"){ if(typeof LIT.reFile!=="object"){ LIT.reFile=new RegExp("^"+s+s+"/[^a-z][^/#<>{}]+\\.[a-zA-Z]*$");} if(LIT.reFile.test(assign)){ LIT.source=assign;}}} function fire{ var signature="ext.gadget."+LIT.signature,env,launch,rls; if(mw.loader.getState(signature)!=="ready"){ rls={}; rls[signature]="ready"; mw.loader.state(rls); LIT.vsn=Version; LIT.doc="w:en:User:PerfektesChaos/js/"+LIT.signature; LIT.doc=""+LIT.doc+""; env=mw.config.get(["wgCanonicalSpecialPageName","wgFormattedNamespaces"]); switch(env.wgCanonicalSpecialPageName){ case "Log": case "Recentchanges": case "Watchlist": launch=true; break; default: launch=(window.location.search.indexOf(LIT.search)>=0);} if(launch){ LIT.signed=LIT.signature+"-handle"; LIT.special=env.wgFormattedNamespaces["-1"]; mw.hook(LIT.signature+"-icon").add(filepath); mw.hook("wikipage.content").add(LIT.furnish);}}} LIT.$factory=function(assigned,$anchor){ var illusive=0.75,offset=$anchor.offset,options={anchor:true,padded:true,position:"below",verticalPosition:"below",$floatableContainer:$anchor},shift=LIT.special+":Redirect/logid/"+assigned,$a=$(""),r; options.width=(12+assigned.length*0.7)+"em"; if(offset.left<0.5*window.innerWidth){ options.align="forwards"; options.horizontalPosition="start"; }else{ options.align="backwards"; options.horizontalPosition="end";} $a.addClass(LIT.signature+"-text plainlinks").attr({"dir":"ltr", "href":"/wiki/"+shift, "id":LIT.signature+"-text-"+assigned, "lang":"en"}).css({"font-family":"sans-serif", "font-size":"medium", "font-style":"normal", "font-variant":"normal", "font-weight":"normal", "white-space":"nowrap"}).text(""+shift+""); options.$content=$a; r=new OO.ui.PopupWidget(options); r.$floatable.attr({"role":"tooltip"}).css({"opacity":illusive, "padding":"2px", "text-align":"center"}); LIT.$body.append(r.$floatable); return r; }; LIT.fiat=function{ var $li=$(this),id,re,src,$e; if(!$li.find("."+LIT.signed).length){ id=$li.attr(LIT.selector); if(id){ if(!LIT.$img){ re=new RegExp(" +","g"); LIT.source=LIT.source.substr(0,1)+"/"+LIT.source.replace(re,"_"); src="https://upload.wikimedia.org/wikipedia/commons/thumb/"+LIT.source+"/"+LIT.npx+"px-"+LIT.source.substr(5)+".png"; LIT.$img=$(" ").attr({src:src,height:LIT.npx+"px",width:LIT.npx+"px"});} $e=LIT.$img.clone.addClass(LIT.signed).attr("title","logidTooltip "+id).css("padding-"+(LIT.ltr?"left":"right"),"6px").click(function{LIT.fired(id,$e); }); $li.append($e);}} }; LIT.fired=function(assigned,$anchor){ if(LIT.$body){ LIT.flip(assigned,$anchor); }else{ LIT.$body=$("body"); mw.loader.using(["oojs","oojs-ui-core","oojs-ui-widgets"],function{ LIT.flip(assigned,$anchor);});} }; LIT.flip=function(assigned,$anchor){ var entry,popup; if(!OO){ OO=window.OO; LIT.popups={};} if(typeof LIT.popups[assigned]==="object"){ entry=LIT.popups[assigned]; popup=entry[0]; }else{ popup=LIT.$factory(assigned,$anchor); entry=[popup,false]; LIT.popups[assigned]=entry;} entry[1]=!entry[1]; popup.toggle(entry[1]); }; LIT.furnish=function($area){ var $entries=$area.find("li["+LIT.selector+"]"); if($entries.length){ if(typeof LIT.ltr!=="boolean"){ LIT.ltr=($("html").attr("dir")!=="rtl");} $entries.each(LIT.fiat);} }; fire; }(window.mediaWiki,window.jQuery)); /// EOF logidTooltip/r.js