mw.loader.impl(function(){return["ext.gadget.Calculator@b764c",function($,jQuery,require,module){(function(){var mathFuncs=['abs','acos','acosh','asin','asinh','atan','atan2','atanh','cbrt','ceil','cos','cosh','exp','expm1','floor','hypot','log','log10','log2','log1p','max','min','pow','random','sign','sin','sinh','sqrt','tan','tanh','trunc','clz32'];var otherFuncs=['ifzero','coalesce','iffinite','ifnan','ifpositive','ifequal','round','jsround','not','and','or','bool','ifless','iflessorequal','ifgreater','ifgreaterorequal','ifbetween','xor','index','switch','radiogroup','bitand','bitor','bitxor','bitnot','bitleftshift','bitlogicrightshift','bitarithrightshift','if','getclick','timer','timeriterations','timertime'];var allFuncs=mathFuncs.concat(otherFuncs);var convertFloat=function(f){if(typeof f==='number'){return f;}f=f.replace(/×\s?10/,'e');return parseFloat(f.replace(/[×⁰¹²³⁴⁵⁶⁷⁸⁹⁻]/g,function(m){return({'⁰':0,'¹':1,'²':2,'³':3,'⁴':4,'⁵':5,'⁶':6,'⁷':7,'⁸':8,'⁹':9,'⁻':"-","×":"e"})[m];}));};var Numb=function(n){if(typeof n==='number'){
this.value=n;}this.value=parseFloat(n);};Numb.prototype.toString=function(){return'Number<'+this.value+'>';};var Ident=function(n){this.value=n;};Ident.prototype.toString=function(){return'IDENT<'+this.value+'>';};var Operator=function(val,args){this.op=val;this.args=args;};var Null=function(){};var Parser=function(text){this.text=text;};var terminals={'IDENT':/^[a-zA-Z_][a-zA-Z0-9_]*/,'NUMBER':/^-?[0-9]+(?:\.[0-9]+)?(?:[eE][0-9]+|×10⁻?[⁰¹²³⁴⁵⁶⁷⁸⁹]+)*/,'WS':/^\s*/,'PLUSMINUS':/^[+-]/,'pi':/^(?:pi|π)(?![A-z_0-9-])/i,'true':/^(?:true)(?![A-z_0-9-])/,'false':/^(?:false)(?![A-z_0-9-])/,'epsilon':/^EPSILON(?![A-z_0-9-])/,'Infinity':/^Infinity(?![A-z_0-9-])/i,'-Infinity':/^Infinity(?![A-z_0-9-])/i,'NaN':/^NaN(?![A-z_0-9-])/i,'MULTIPLYDIV':/^[*\/%×÷]/i,};Parser.prototype={check:function(id){if(terminals[id]){return!!(this.text.match(terminals[id]));}return this.text.startsWith(id);},consume:function(id){if(terminals[id]){var res=this.text.match(terminals[id]);this.text=this.text.substring(res[0].length);
return res[0];}if(this.text.startsWith(id)){this.text=this.text.substring(id.length);return id;}throw new Error("Expected "+id+" near "+this.text.substring(0,15));},parse:function(){if(this.text===undefined||this.text==='')return new Null();this.consume('WS');res=this.expression();if(this.text.length!==0){throw new Error("Unexpected end of formula. Perhaps you forgot to close a parenthesis or are using an invalid function.");}return res;},expression:function(){var text2,res,res2;res=this.term();this.consume('WS');while(this.check("PLUSMINUS")){var op=this.consume("PLUSMINUS");this.consume('WS');res2=this.term();this.consume('WS');res=new Operator(op,[res,res2]);}return res;},argList:function(){var args=[];this.consume('WS');if(this.check(')')){this.consume(')');return args;}args[args.length]=this.expression();this.consume('WS');while(this.check(',')){this.consume(',');this.consume('WS');args[args.length]=this.expression();}this.consume('WS');this.consume(')');return args;},term:function(){
var text2,res,res2;res=this.factor();this.consume('WS');while(this.check("MULTIPLYDIV")){var op=this.consume("MULTIPLYDIV");if(op==='×')op='*';if(op==='÷')op='/';this.consume('WS');res2=this.factor();this.consume('WS');res=new Operator(op,[res,res2]);}return res;},factor:function(){this.consume('WS');var res;if(this.check('pi')){this.consume('pi');return new Numb(Math.PI);}if(this.check('true')){this.consume('true');return new Numb(1);}if(this.check('false')){this.consume('false');return new Numb(0);}if(this.check('Infinity')){this.consume('Infinity');return new Numb(Infinity);}if(this.check('-Infinity')){this.consume('-Infinity');return new Numb(-Infinity);}if(this.check('NaN')){this.consume('NaN');return new Numb(NaN);}if(this.check('epsilon')){this.consume('epsilon');return new Numb(Number.EPSILON);}for(var i in allFuncs){if(this.check(allFuncs[i]+'(')){this.consume(allFuncs[i]+'(');var argList=this.argList();return new Operator(allFuncs[i],argList);}}if(this.check('IDENT')){
return new Ident(this.consume('IDENT'));}if(this.check('NUMBER')){return new Numb(convertFloat(this.consume('NUMBER')));}if(this.check('(')){this.consume('(');this.consume('WS');res=this.expression();this.consume('WS');this.consume(')');return res;}if(this.check('-')){this.consume('-');this.consume('WS');if(this.check('-')){throw new Error("Double unary minus without parenthesis not allowed near "+this.text.substring(0,15));}res=this.factor();return new Operator('*',[new Numb(-1),res]);}throw new Error("Expected to see a term (e.g. an identifier, number, function, opening parenthesis, etc) near "+this.text.substring(0,15));},};var almostEquals=function(a,b){var absA=Math.abs(a);var absB=Math.abs(b);var diff=Math.abs(a-b);var epsilon=Number.EPSILON;var minNormal=Math.pow(2,-1022);if(a===b){return true;}if(a==0||b==0||absA+absB<minNormal){return diff<epsilon*minNormal;}return diff/Math.min((absA+absB),Number.MAX_VALUE)<epsilon;};var getValueOfElm=function(elm,mapping){var val;if(elm.hasAttribute('data-calculator-real-value')){
return parseFloat(elm.getAttribute('data-calculator-real-value'));}else if(elm.tagName==='INPUT'||elm.tagName==='SELECT'){if(elm.type==='radio'||elm.type==='checkbox'){return elm.checked?convertFloat(elm.value):0;}val=elm.value;}else{val=elm.textContent;}if(typeof val==='string'){val=val.trim();var mapVals=[val,val.toLowerCase()];for(var k=0;k<mapVals.length;k++){if(mapping&&typeof mapping[mapVals[k]]==='number'){return mapping[mapVals[k]];}else if(mapping&&['Infinity','-Infinity','NaN'].indexOf(mapping[mapVals[k]])!==-1){return parseFloat(mapping[mapVals[k]]);}}}return convertFloat(val);};var evaluate=function(ast){var that=this;var elmList=this.elmList;var i,then,ielse,res,elm;if(ast instanceof Numb){return ast.value;}if(ast instanceof Ident){elm=elmList[ast.value];if(elm===undefined){console.log("Calculator: Reference to '"+ast.value+"' but there is no field by that name");return NaN;}return getValueOfElm(elm,this.mappingInput[elm.id.replace(/^(?:calcdisambig-\d+-)?calculator-field-/,'')]);
}if(ast instanceof Operator){if('index'===ast.op){if(ast.args.length<2||!(ast.args[0]instanceof Ident)){return NaN;}var indexValue=Math.floor(this.evaluate(ast.args[1]));if(!Number.isSafeInteger(indexValue)||indexValue<0){return NaN;}res=elmList[ast.args[0].value+indexValue];if(res===undefined){return ast.args.length>=3?this.evaluate(ast.args[2]):NaN;}return getValueOfElm(res,this.mappingInput[res.id.replace(/^(?:calcdisambig-\d+-)?calculator-field-/,'')]);}if(ast.op==='radiogroup'){if(ast.args.length<1||!(ast.args[0]instanceof Ident)){return NaN;}var radioName=ast.args[0].value;elm=this.parent.querySelector('input:checked[type=radio][name='+CSS.escape('calcgadget-'+this.rand+'-'+radioName)+']');if(!elm){return NaN;}return this.evaluate(new Ident(elm.id.replace(/^(?:calcdisambig-\d+-)?calculator-field-/,'')));}if(ast.op==='getclick'){if(ast.args.length<1||!(ast.args[0]instanceof Ident)){return NaN;}switch(ast.args[0].value.toLowerCase()){case'x':return this.clickX;case'prevx':return this.clickPrevX;
case'prevpercentx':return this.clickPrevPercentX;case'startpercentx':return this.clickStartPercentX;case'startx':return this.clickStartX;case'percentx':return this.clickPercentX;case'y':return this.clickY;case'percenty':return this.clickPercentY;case'prevy':return this.clickPrevY;case'prevpercenty':return this.clickPrevPercentY;case'starty':return this.clickStartY;case'startpercenty':return this.clickStartPercentY;case'inprogress':return this.clickInProgress;case'type':return this.clickType;default:return NaN;}}if(ast.op==='timer'){if(!this.repeatInfo){return ast.args.length>=3?this.evaluate(ast.args[2]):0;}if(ast.args.length<1||(ast.args[0]instanceof Ident&&ast.args[0].value===this.repeatInfo.id)){return ast.args.length>=2?this.evaluate(ast.args[1]):1;}return ast.args.length>=3?this.evaluate(ast.args[2]):0;}if(ast.op==='timeriterations'){if(!this.repeatInfo){return NaN;}if(ast.args.length<1||(ast.args[0]instanceof Ident&&ast.args[0].value===this.repeatInfo.id)){return this.repeatInfo.iterationsSoFar;
}return NaN;}if(ast.op==='timertime'){if(!this.repeatInfo){return NaN;}if(ast.args.length<1||(ast.args[0]instanceof Ident&&ast.args[0].value===this.repeatInfo.id)){return(Date.now()-this.repeatInfo.timeStart)/1000;}return NaN;}evaledArgs=ast.args.map(function(i){return that.evaluate(i)});if(mathFuncs.indexOf(ast.op)!==-1){return Math[ast.op].apply(Math,evaledArgs);}if('coalesce'===ast.op){for(var k=0;k<evaledArgs.length;k++){if(!isNaN(evaledArgs[k])){return evaledArgs[k];}}return NaN;}if('ifzero'===ast.op){if(evaledArgs.length<1){return NaN;}then=evaledArgs.length<2?1:evaledArgs[1];ielse=evaledArgs.length<3?0:evaledArgs[2];return almostEquals(evaledArgs[0],0)?then:ielse;}if('if'===ast.op){if(evaledArgs.length<1){return NaN;}then=evaledArgs.length<2?1:evaledArgs[1];ielse=evaledArgs.length<3?0:evaledArgs[2];return!almostEquals(evaledArgs[0],0)?then:ielse;}if('ifequal'===ast.op){if(evaledArgs.length<2){return NaN;}then=evaledArgs.length<3?1:evaledArgs[2];ielse=evaledArgs.length<4?0:evaledArgs[3];
return almostEquals(evaledArgs[0],evaledArgs[1])?then:ielse;}if('iffinite'===ast.op){if(evaledArgs.length<1){return NaN;}then=evaledArgs.length<2?1:evaledArgs[1];ielse=evaledArgs.length<3?0:evaledArgs[2];return isFinite(evaledArgs[0])?then:ielse;}if('ifnan'===ast.op){if(evaledArgs.length<1){return NaN;}then=evaledArgs.length<2?1:evaledArgs[1];ielse=evaledArgs.length<3?0:evaledArgs[2];return isNaN(evaledArgs[0])?then:ielse;}if('ifpositive'===ast.op){if(evaledArgs.length<1){return NaN;}then=evaledArgs.length<2?1:evaledArgs[1];ielse=evaledArgs.length<3?0:evaledArgs[2];return evaledArgs[0]>=0?then:ielse;}if('ifless'===ast.op){if(evaledArgs.length<2){return NaN;}then=evaledArgs.length<3?1:evaledArgs[2];ielse=evaledArgs.length<4?0:evaledArgs[3];return evaledArgs[0]<evaledArgs[1]&&!almostEquals(evaledArgs[0],evaledArgs[1])?then:ielse;}if('ifgreater'===ast.op){if(evaledArgs.length<2){return NaN;}then=evaledArgs.length<3?1:evaledArgs[2];ielse=evaledArgs.length<4?0:evaledArgs[3];return evaledArgs[0]>evaledArgs[1]&&!almostEquals(evaledArgs[0],evaledArgs[1])?then:ielse;
}if('iflessorequal'===ast.op){if(evaledArgs.length<2){return NaN;}then=evaledArgs.length<3?1:evaledArgs[2];ielse=evaledArgs.length<4?0:evaledArgs[3];return evaledArgs[0]<=evaledArgs[1]||almostEquals(evaledArgs[0],evaledArgs[1])?then:ielse;}if('ifgreaterorequal'===ast.op){if(evaledArgs.length<2){return NaN;}then=evaledArgs.length<3?1:evaledArgs[2];ielse=evaledArgs.length<4?0:evaledArgs[3];return evaledArgs[0]>=evaledArgs[1]||almostEquals(evaledArgs[0],evaledArgs[1])?then:ielse;}if('ifbetween'===ast.op){if(evaledArgs.length<3){return NaN;}then=evaledArgs.length<4?1:evaledArgs[3];ielse=evaledArgs.length<5?0:evaledArgs[4];return evaledArgs[0]>=evaledArgs[1]&&evaledArgs[0]<=evaledArgs[2]?then:ielse;}if('bool'===ast.op){if(evaledArgs.length!==1){return NaN;}return isNaN(evaledArgs[0])||almostEquals(evaledArgs[0],0.0)?0:1;}if('not'===ast.op){if(evaledArgs.length!==1){return NaN;}return isNaN(evaledArgs[0])||almostEquals(evaledArgs[0],0.0)?1:0;}if('xor'===ast.op){if(evaledArgs.length!==2){
return NaN;}if(((isNaN(evaledArgs[0])||almostEquals(evaledArgs[0],0.0))&&!(isNaN(evaledArgs[1])||almostEquals(evaledArgs[1],0.0)))||((isNaN(evaledArgs[1])||almostEquals(evaledArgs[1],0.0))&&!(isNaN(evaledArgs[0])||almostEquals(evaledArgs[0],0.0)))){return 1;}else{return 0;}}if('and'===ast.op){for(i=0;i<evaledArgs.length;i++){if(isNaN(evaledArgs[i])||almostEquals(evaledArgs[i],0.0)){return evaledArgs[i];}}return evaledArgs.length>=1?evaledArgs[evaledArgs.length-1]:1;}if('or'===ast.op){for(i=0;i<evaledArgs.length;i++){if(!isNaN(evaledArgs[i])&&!almostEquals(evaledArgs[i],0.0)){return evaledArgs[i];}}return evaledArgs.length>=1?evaledArgs[evaledArgs.length-1]:0;}if('bitand'===ast.op){if(evaledArgs.length<1){return NaN;}res=evaledArgs[0];for(i=1;i<evaledArgs.length;i++){res=res&evaledArgs[i];}return res;}if('bitor'===ast.op){if(evaledArgs.length<1){return NaN;}res=evaledArgs[0];for(i=1;i<evaledArgs.length;i++){res=res|evaledArgs[i];}return res;}if('bitxor'===ast.op){if(evaledArgs.length<1){
return NaN;}res=evaledArgs[0];for(i=1;i<evaledArgs.length;i++){res=res^evaledArgs[i];}return res;}if('bitnot'===ast.op){if(evaledArgs.length<1){return NaN;}return~evaledArgs[0];}if('bitleftshift'===ast.op){if(evaledArgs.length<2){return NaN;}return evaledArgs[0]<<evaledArgs[1];}if('bitlogicrightshift'===ast.op){if(evaledArgs.length<2){return NaN;}return evaledArgs[0]>>>evaledArgs[1];}if('bitarithrightshift'===ast.op){if(evaledArgs.length<2){return NaN;}return evaledArgs[0]>>evaledArgs[1];}if('switch'===ast.op){if(evaledArgs.length<2){return NaN;}var defaultVal=NaN;if(evaledArgs.length%2===0){defaultVal=evaledArgs[evaledArgs.length-1];}for(i=1;i<evaledArgs.length-1;i+=2){if(evaledArgs[0]<=evaledArgs[i]||almostEquals(evaledArgs[i],evaledArgs[0])){return evaledArgs[i+1];}}return defaultVal;}if('round'===ast.op){var decimals=evaledArgs.length>=2?evaledArgs[1]:0;var p=Math.pow(10,decimals);var n=(evaledArgs[0]*p)*(1+Number.EPSILON);return Math.round(n)/p;}if(ast.op==='jsround'){return Math.round.apply(Math,evaledArgs);
}if(evaledArgs.length!==2){throw new Error("Unexpected number of args for "+ast.op);}if(ast.op==='*')return evaledArgs[0]*evaledArgs[1];if(ast.op==='/')return evaledArgs[0]/evaledArgs[1];if(ast.op==='+')return evaledArgs[0]+evaledArgs[1];if(ast.op==='-')return evaledArgs[0]-evaledArgs[1];if(ast.op==='%')return evaledArgs[0]%evaledArgs[1];throw new Error("Unrecognized operator "+ast.op);}return NaN;};var getIdentifiers=function(tree){if(tree instanceof Ident){return new Set([tree.value]);}if(tree instanceof Operator){var res=new Set([]);var i=0;if(tree.op==='index'&&tree.args.length>0){i++;getIdentifiers(tree.args[0]).forEach(function(x){res.add(x+'*')});}else if((tree.op==='radiogroup')&&tree.args.length>0&&tree.args[0]instanceof Ident){i++;res.add('--radio-'+tree.args[0].value);}else if((tree.op==='timer')){if(tree.args.length>0&&tree.args[0]instanceof Ident){i++;res.add('--timer-active-'+tree.args[0].value);}else{res.add('--timer-active');}}else if(tree.op==='timertime'||tree.op==='timeriterations'){
res.add('--timer-iteration');if(tree.args.length>0&&tree.args[0]instanceof Ident){res.add('--timer-iteration-'+tree.args[0].value);}else{res.add('--timer-iteration');}return res;}else if(tree.op==='getclick'){res.add('--click');return res;}for(;i<tree.args.length;i++){getIdentifiers(tree.args[i]).forEach(function(x){res.add(x)});}return res;}return new Set();};var buildBacklinks=function(items,radioGroups){var backlinks=Object.create(null);for(var item in items){var idents=getIdentifiers(items[item]);idents.forEach(function(ident){if(!backlinks[ident]){backlinks[ident]=[];}backlinks[ident].push(item);});}var identPrefix='--radio-';for(var groupName in radioGroups){if(backlinks[identPrefix+groupName]==undefined){backlinks[identPrefix+groupName]=[];}for(var i=0;i<radioGroups[groupName].length;i++){backlinks[identPrefix+groupName].push(radioGroups[groupName][i]);if(backlinks[radioGroups[groupName][i]]==undefined){backlinks[radioGroups[groupName][i]]=[];}backlinks[radioGroups[groupName][i]].push(identPrefix+groupName);
}}return backlinks;};var setup=function($content){var containers=Array.from($content.find('.calculator-container'));for(var i=0;i<containers.length;i++){var calc=new CalculatorWidgets(Array.from(containers[i].getElementsByClassName('calculator-field')),containers[i]);}var elms=Array.from($content.find('.calculator-field'));new CalculatorWidgets(elms,$content[0]);$content.find('.calculator-field-label').replaceWith(function(){var l=$('<label>');if(this.dataset.for!==undefined){if(!this.dataset.for.match(/^(?:calcdisambig-\d+-)?calculator-field-[a-zA-Z_][a-zA-Z0-9_]*$/)||!$content.find('#'+$.escapeSelector(this.dataset.for)).length){return this;}l.attr('for',this.dataset.for);}if(this.id){l.attr('id',this.id);}if(this.title){l.attr('title',this.title);}if(this.style.cssText){l.attr('style',this.style.cssText);}if(this.classList.contains('cdx-label__label')){mw.loader.load('@wikimedia/codex');}if(this.className!=='calculator-field-label'){var extraClass=this.dataset.calculatorClass===undefined?'':' '+this.dataset.calculatorClass;
l.attr('class',this.className.replace(/(^| )calculator-field-label( |$)/g,' ')+extraClass);}l.append(this.childNodes);return l;});};var doStats=function(){if(window.calculatorStatsAlreadyDone!==true){window.calculatorStatsAlreadyDone=true;mw.track('stats.mediawiki_gadget_calculator_total');mw.track('stats.mediawiki_gadget_calculator_wiki_total',1,{wiki:mw.config.get('wgDBname')});var pageName=encodeURIComponent(mw.config.get('wgTitle').replace(/ /g,'_'));pageName=pageName.replace(/[^a-zA-Z0-9_]/g,'_');mw.track('stats.mediawiki_gadget_calculator_page_total',1,{wiki:mw.config.get('wgDBname'),page:pageName,NS:mw.config.get('wgNamespaceNumber')});}};var createSelect=function(elm){var sel=document.createElement('select');var mapping;try{mapping=JSON.parse(elm.dataset.calculatorMapping);}catch(e){console.log("Calculator: Error processing mapping of "+elm.id+". "+e.message);return sel;}if(typeof mapping!=='object'){console.log("Calculator: Error processing mapping of "+elm.id+". unexpected type");
return sel;}var opt;for(var i in mapping){if(typeof mapping[i]==='object'){var optgroup=document.createElement('optgroup');optgroup.label=i;sel.appendChild(optgroup);for(var j in mapping[i]){if(typeof mapping[i][j]==='number'||['Infinity','-Infinity','NaN'].indexOf(mapping[i][j])!==-1){opt=document.createElement('option');opt.value=mapping[i][j];opt.appendChild(document.createTextNode(j));optgroup.appendChild(opt);}}}else if(typeof mapping[i]==='number'||['Infinity','-Infinity','NaN'].indexOf(mapping[i])!==-1){opt=document.createElement('option');opt.value=mapping[i];opt.appendChild(document.createTextNode(i));sel.appendChild(opt);}}return sel;};var CalculatorWidgets=function(elms,parent){this.parent=parent;this.rand=Math.floor(Math.random()*1000000000);this.itemList=Object.create(null);this.elmList=Object.create(null);this.backlinks=Object.create(null);this.inProgressRefresh=undefined;this.clickX=this.clickY=this.clickPercentX=this.clickPercentY=NaN;this.clickPrevX=this.clickPrevY=this.clickPrevPercentX=this.clickPrevPercentY=NaN;
this.clickStartX=this.clickStartY=this.clickStartPercentX=this.clickStartPercentY=NaN;this.clickType=NaN;this.clickInProgress=0;this.repeatInfo=null;var that=this;var radioGroups=Object.create(null);this.buttonInfo=Object.create(null);this.mappingInput=Object.create(null);this.mappingOutput=Object.create(null);this.repeatInfo=null;if(elms.length>200){console.log("Too many calculator widgets on page");return;}for(var i in elms){var elm=elms[i];var formula=elm.dataset.calculatorFormula;if(formula&&formula.length>2000){console.log("Skipping element with too long formula");continue;}var type=elm.dataset.calculatorType;var readonly=!!elm.dataset.calculatorReadonly;var id=elm.id.toString();if(id.match(/^(?:calcdisambig-\d+-)?calculator-field-__proto__$/)||elm.dataset.calculatorName==='__proto__'){throw new Error("Invalid calculator id: "+id);}if(!id){id='calculator-field-auto'+Math.floor(Math.random()*10000000)+'unnamed';}if(this.parent.classList.contains('calculator-container')&&document.getElementById(id)!==elm){
var labelsToUpdate=this.parent.querySelectorAll(":scope .calculator-field-label[data-for=\""+CSS.escape(id)+"\"]");id='calcdisambig-'+this.rand+'-'+id;for(var l=0;l<labelsToUpdate.length;l++){labelsToUpdate[l].dataset.for=id;}}var defaultVal=(""+elm.textContent).trim();if(type===undefined||!id.match(/^(?:calcdisambig-\d+-)?calculator-field-[a-zA-Z_][a-zA-Z0-9_]*$/)){console.log("Skipping "+id);continue;}var formulaAST;try{formulaAST=(new Parser(formula)).parse();}catch(e){console.log("Error parsing formula of "+id+": "+e.message+". Formula given:"+formula);continue;}if(elm.className.match(/(^| )cdx-/)||(elm.dataset.calculatorClass&&elm.dataset.calculatorClass.match(/(^| )cdx-/))){mw.loader.load('@wikimedia/codex');}if(type!=='plain'&&type!=='passthru'){var input=type==='select'?createSelect(elm):document.createElement('input');input.className='calculator-field-live';if(elm.className!=='calculator-field')input.className+=' '+elm.className.replace(/(^| )calculator-field($| )/g,' ');input.readOnly=readonly;
if(defaultVal!==''){input.value=convertFloat(defaultVal);}input.style.cssText=elm.style.cssText;if(elm.dataset.calculatorSize){var size=parseInt(elm.dataset.calculatorSize);input.size=size;input.style.width=type==='number'?"calc( "+size+'ch'+' + 20px)':size+'ch';}if(elm.dataset.calculatorClass)input.className+=' '+elm.dataset.calculatorClass;if(elm.dataset.calculatorSize)input.size=elm.dataset.calculatorSize;if(elm.dataset.calculatorMax)input.max=elm.dataset.calculatorMax;if(elm.dataset.calculatorMin)input.min=elm.dataset.calculatorMin;if(elm.dataset.calculatorPlaceholder)input.placeholder=elm.dataset.calculatorPlaceholder;if(elm.dataset.calculatorStep)input.step=elm.dataset.calculatorStep;if(elm.dataset.calculatorPrecision)input.dataset.calculatorPrecision=elm.dataset.calculatorPrecision;if(elm.dataset.calculatorExponentialPrecision)input.dataset.calculatorExponentialPrecision=elm.dataset.calculatorExponentialPrecision;if(elm.dataset.calculatorDecimals)input.dataset.calculatorDecimals=elm.dataset.calculatorDecimals;
if(elm.dataset.calculatorNanText)input.dataset.calculatorNanText=elm.dataset.calculatorNanText;if(type==='radio'){if(elm.dataset.calculatorName)input.name='calcgadget-'+this.rand+'-'+elm.dataset.calculatorName;if(radioGroups[elm.dataset.calculatorName]===undefined){radioGroups[elm.dataset.calculatorName]=[];}radioGroups[elm.dataset.calculatorName][radioGroups[elm.dataset.calculatorName].length]=id.replace(/^(?:calcdisambig-\d+-)?calculator-field-/,'');}if(elm.dataset.calculatorInputmode)input.inputMode=elm.dataset.calculatorInputmode;if(elm.dataset.calculatorEnterkeyhint)input.enterKeyHint=elm.dataset.calculatorEnterkeyhint;if(elm.getAttribute('aria-describedby')!==null)input.setAttribute('aria-describedby',elm.getAttribute('aria-describedby'));if(elm.getAttribute('aria-labelledby')!==null)input.setAttribute('aria-labelledby',elm.getAttribute('aria-labelledby'));if(elm.getAttribute('aria-label')!==null)input.setAttribute('aria-label',elm.getAttribute('aria-label'));if(elm.getAttribute('aria-owns')!==null)input.setAttribute('aria-owns',elm.getAttribute('aria-owns'));
if(elm.getAttribute('aria-flowto')!==null)input.setAttribute('aria-flowto',elm.getAttribute('aria-flowto'));if(elm.getAttribute('role')!==null)input.setAttribute('role',elm.getAttribute('role'));if(elm.dataset.calculatorAriaRole)input.setAttribute('role',elm.dataset.calculatorAriaRole);if(['true','false'].indexOf(elm.dataset.calculatorAriaAtomic)!==-1)input.setAttribute('aria-atomic',elm.dataset.calculatorAriaAtomic);if(elm.dataset.calculatorAriaRelevant)input.setAttribute('aria-relevant',elm.dataset.calculatorAriaRelevant);if(['off','polite','assertive'].indexOf(elm.dataset.calculatorAriaLive)!==-1){input.setAttribute('aria-live',elm.dataset.calculatorAriaLive);}else{if(formula){input.setAttribute('aria-live','polite');}}if(type==='number'||type==='text'||type==='radio'||type==='checkbox'||type==="hidden"||type==="range"){input.type=type;}if(type==='select'){if(elm.dataset.calculatorValue){input.value=elm.dataset.calculatorValue;}}if(type==='radio'||type==='checkbox'){input.onchange=this.changeHandler.bind(this);
if(elm.dataset.calculatorChecked==='true'||elm.dataset.calculatorChecked==='1'){input.checked=true;}else if(elm.dataset.calculatorChecked==='false'||elm.dataset.calculatorChecked==='0'){input.checked=false;}else if(!isNaN(defaultVal)&&!almostEquals(defaultVal,0)){input.checked=true;}var checkValue=convertFloat(elm.dataset.calculatorValue||'');if(!isNaN(checkValue)&&!almostEquals(checkValue,0)){input.value=checkValue;input.dataset.calculatorValue=checkValue;}else if(!isNaN(defaultVal)&&!almostEquals(defaultVal,0)){input.value=defaultVal;input.dataset.calculatorValue=defaultVal;}else{input.value=1;input.dataset.calculatorValue=1;}}if(elm.dataset.calculatorMapping&&type==='text'){this.processMapping(elm.dataset.calculatorMapping,id.replace(/^(?:calcdisambig-\d+-)?calculator-field-/,''));}input.id=id;elm.replaceWith(input);elm=input;input.addEventListener('input',this.changeHandler.bind(this));}else{elm.classList.remove('calculator-field');elm.classList.add('calculator-field-live');if(elm.dataset.calculatorClass)elm.className+=' '+elm.dataset.calculatorClass;
if(['off','polite','assertive'].indexOf(elm.dataset.calculatorAriaLive)!==-1){elm.setAttribute('aria-live',elm.dataset.calculatorAriaLive);}else if(formula&&type!=='passthru'&&!elm.dataset.calculatorAriaLive){elm.setAttribute('aria-live','polite');}if(['true','false'].indexOf(elm.dataset.calculatorAriaAtomic)!==-1)elm.setAttribute('aria-atomic',elm.dataset.calculatorAriaAtomic);if(elm.dataset.calculatorAriaRole)elm.setAttribute('role',elm.dataset.calculatorAriaRole);if(elm.dataset.calculatorAriaRelevant)elm.setAttribute('aria-relevant',elm.dataset.calculatorAriaRelevant);if(elm.id===''){elm.id=id;}if(elm.dataset.calculatorMapping&&type==='plain'){this.processMapping(elm.dataset.calculatorMapping,id.replace(/^(?:calcdisambig-\d+-)?calculator-field-/,''));}}var itemId=id.replace(/^(?:calcdisambig-\d+-)?calculator-field-/,'');this.itemList[itemId]=formulaAST;this.elmList[itemId]=elm;}this.backlinks=buildBacklinks(this.itemList,radioGroups);if(this.parent.dataset.calculatorRefreshOnLoad&&this.parent.dataset.calculatorRefreshOnLoad==='true'){
this.inProgressRefresh=Object.create(null);var unsetBusy=this.setBusy();this.refresh(Object.keys(this.itemList).filter(function(a){return!(that.itemList[a]instanceof Null);}));this.inProgressRefresh=undefined;unsetBusy();}this.setupButtons();};CalculatorWidgets.prototype.processMapping=function(mappingText,itemId){var mapping;try{mapping=JSON.parse(mappingText);}catch(e){console.log("Calculator: Error processing mapping of "+itemId+". "+e.message);return;}if(typeof mapping!=='object'){console.log("Calculator: Error processing mapping of "+itemId+". unexpected type");return;}this.mappingInput[itemId]=mapping;var mapOut=Object.create(null);for(var i in mapping){if(typeof mapping[i]==='number'||['default','Infinity','-Infinity','NaN'].indexOf(mapping[i])!==-1){mapOut[mapping[i]]=i;}}this.mappingOutput[itemId]=mapOut;};CalculatorWidgets.prototype.stopRepeat=function(){if(this.repeatInfo){if(this.repeatInfo.cancelIdentifier){window.clearInterval(this.repeatInfo.cancelIdentifier);}var id=this.repeatInfo.id;
this.repeatInfo=null;this.inProgressRefresh=Object.create(null);var unsetBusy=this.setBusy();this.refresh(['--timer-active','--timer-active-'+id,'--timer-iteration','--timer-iteration-'+id]);this.inProgressRefresh=undefined;unsetBusy();}this.repeatInfo=null;};CalculatorWidgets.prototype.startRepeat=function(maxIterations,id){if(this.repeatInfo){console.log("Calculator: Trying to start a repeat when one is already in progress. This should not happen");}this.repeatInfo={maxIterations:maxIterations,iterationsSoFar:0,cancelIdentifier:null,timeStart:Date.now(),id:id};if(this.inProgressRefresh){console.log("Calculator: Refresh already in progress. This probably indicates a bug");}else{this.inProgressRefresh=Object.create(null);}var unsetBusy=this.setBusy();this.refresh(['--timer-active','--timer-active-'+id,'--timer-iteration','--timer-iteration-'+id]);this.inProgressRefresh=undefined;unsetBusy();};CalculatorWidgets.prototype.incrementRepeatIteration=function(until){this.repeatInfo.iterationsSoFar++;
if(this.repeatInfo.iterationsSoFar>this.repeatInfo.maxIterations){this.stopRepeat();return false;}if(until){var untilRes=this.evaluate(until);if(!isNaN(untilRes)&&!almostEquals(untilRes,0)){this.stopRepeat();return false;}}var id=this.repeatInfo.id;if(this.inProgressRefresh){console.log("Calculator: Refresh already in progress. This probably indicates a bug");}else{this.inProgressRefresh=Object.create(null);}var unsetBusy=this.setBusy();this.refresh(['--timer-iteration','--timer-iteration-'+id]);this.inProgressRefresh=undefined;unsetBusy();return true;};var convertEventTypeToNumber=function(type){switch(type){case'pointerdown':return 1;case'pointermove':return 2;case'pointerup':case'click':return 3;case'pointerleave':return 4;default:throw new Error("Unrecognized event type: "+type);}};var updateClick=function(calc){if(calc.inProgressRefresh){console.log("Calculator: Refresh already in progress. This probably indicates a bug");}else{calc.inProgressRefresh=Object.create(null);}var unsetBusy=calc.setBusy();
calc.refresh(['--click']);calc.inProgressRefresh=undefined;unsetBusy();};var makeButtonCallback=function(calc,forElms,formulaASTs,repeat,maxIterations,toggle,until){return function buttonCallback(event){if(event.type!=='click'){if(!event.isPrimary||(!calc.clickInProgress&&event.type!=='pointerdown')){return;}}event.preventDefault();doStats();var unsetBusy=calc.setBusy();if(toggle&&calc.repeatInfo&&calc.repeatInfo.id===event.currentTarget.id){calc.stopRepeat();unsetBusy();return;}if(maxIterations!==undefined||repeat!==undefined){calc.stopRepeat();if(maxIterations>1){calc.startRepeat(maxIterations,event.currentTarget.id);}}var doStuff=function(event){var unsetBusyInner=calc.setBusy();var stillGoing=true;if(calc.repeatInfo){stillGoing=calc.incrementRepeatIteration(until);}if(stillGoing){for(var i=0;i<forElms.length;i++){if(!formulaASTs[i]||!forElms[i]){console.log("Skipping button update due to invalid formula or for attribute");continue;}var res=calc.evaluate(formulaASTs[i]);calc.setValue(forElms[i],res);
forElms[i].dispatchEvent(new InputEvent('input'));}}unsetBusyInner();};if(maxIterations===undefined||maxIterations>=1){if(calc.clickInProgress){calc.clickPrevX=calc.clickX;calc.clickPrevY=calc.clickY;calc.clickPrevPercentX=calc.clickPercentX;calc.clickPrevPercentY=calc.clickPercentY;}if(event.type==='pointerdown'){event.currentTarget.setPointerCapture(event.pointerId);}if(event.type!=='pointerleave'){calc.clickX=event.offsetX;calc.clickY=event.offsetY;calc.clickPercentX=100*event.offsetX/event.currentTarget.clientWidth;calc.clickPercentY=100*event.offsetY/event.currentTarget.clientHeight;calc.clickInProgress=1;}calc.clickType=convertEventTypeToNumber(event.type);if(event.type==='click'||event.type==='pointerdown'){calc.clickPrevX=calc.clickStartX=calc.clickX;calc.clickPrevY=calc.clickStartY=calc.clickY;calc.clickPrevPercentX=calc.clickStartPercentX=calc.clickPercentX;calc.clickPrevPercentY=calc.clickStartPercentY=calc.clickPercentY;}updateClick(calc);doStuff();if(calc.clickType>=3){
calc.clickX=calc.clickY=calc.clickPercentX=calc.clickPercentY=NaN;calc.clickPrevX=calc.clickPrevY=calc.clickPrevPercentX=calc.clickPrevPercentY=NaN;calc.clickStartX=calc.clickStartY=calc.clickStartPercentX=calc.clickStartPercentY=NaN;calc.clickInProgress=0;calc.clickType=NaN;updateClick(calc);}}unsetBusy();if(calc.repeatInfo&&maxIterations>1&&repeat>=500){calc.repeatInfo.cancelIdentifier=window.setInterval(doStuff,repeat);}};};var connectButtonToFormula=function(calc,$button,forAttr,formulaAttr,repeatDuration,maxIterations,toggle,untilAttr,draggable){if(repeatDuration!==undefined){repeatDuration=Math.max(500,Math.ceil(parseFloat(repeatDuration)*1000));if(isNaN(repeatDuration)){repeatDuration=undefined;}}if(toggle==='false'){toggle=false;}if(maxIterations!==undefined){maxIterations=parseInt(maxIterations);}else if(repeatDuration){maxIterations=Infinity;}if(typeof forAttr!=='string'||typeof formulaAttr!=='string'){return;}if(formulaAttr.length>2000||(untilAttr&&untilAttr.length>2000)){
console.log("Skipping button with too long formula");return;}var until=null;try{until=(new Parser(untilAttr)).parse();}catch(e){console.log("Calculator: Error parsing until formula of button "+$button[0].id+": "+e.message);}var forList=forAttr.split(';');var formulaList=formulaAttr.split(';');var forElms=[];var formulaASTs=[];for(var i=0;i<forList.length;i++){if(formulaList[i]===undefined){break;}forElms[i]=calc.elmList[forList[i]];try{formulaASTs[i]=(new Parser(formulaList[i])).parse();}catch(e){formulaASTs[i]=null;console.log("Calculator: Error parsing formula of button "+$button[0].id+" for "+forList[i]+": "+e.message);}}if(draggable){$button[0].addEventListener('pointerdown',makeButtonCallback(calc,forElms,formulaASTs,repeatDuration,maxIterations,toggle,until));$button[0].addEventListener('pointerup',makeButtonCallback(calc,forElms,formulaASTs,repeatDuration,maxIterations,toggle,until));$button[0].addEventListener('pointerleave',makeButtonCallback(calc,forElms,formulaASTs,repeatDuration,maxIterations,toggle,until));
$button[0].addEventListener('pointermove',makeButtonCallback(calc,forElms,formulaASTs,repeatDuration,maxIterations,toggle,until));}else{$button[0].addEventListener('click',makeButtonCallback(calc,forElms,formulaASTs,repeatDuration,maxIterations,toggle,until));}};CalculatorWidgets.prototype.connectButtonDisable=function(button,formula){if(formula===''||formula==='0'||formula==='false'){return;}if(formula.length>2000){console.log("Calculator: Disable formula for button "+button.id+" is too long");return;}var formulaAST;try{formulaAST=(new Parser(formula)).parse();}catch(e){console.log("Error parsing disable formula of button "+button.id+": "+e.message);return;}this.buttonInfo[button.id]={elm:button,formula:formulaAST,};var idents=getIdentifiers(formulaAST);var that=this;var item='--button-disable-'+button.id;idents.forEach(function(ident){if(!that.backlinks[ident]){that.backlinks[ident]=[];}that.backlinks[ident].push(item);});var curValue=this.evaluate(formulaAST);if(!isNaN(curValue)&&!almostEquals(curValue,0)){
button.disabled=true;}};CalculatorWidgets.prototype.setupButtons=function(){var calc=this;$(this.parent).find('.calculator-field-button').replaceWith(function(){var b=$('<button type="button">');if(this.id&&this.id!=='__proto__'){b.attr('id',this.id);}else{b.attr('id','calculator-button-'+Math.ceil(Math.random()*100000000000));}if(this.title){b.attr('title',this.title);}if(this.style.cssText){b.attr('style',this.style.cssText);}if(this.classList.contains('cdx-button')){mw.loader.load('@wikimedia/codex');}if(this.className!=='calculator-field-button'){var extraClass=this.dataset.calculatorClass===undefined?'':' '+this.dataset.calculatorClass;b.attr('class',this.className.replace(/(^| )calculator-field-button( |$)/g,' ')+extraClass);}if(this.dataset.calculatorAlt){b.attr('aria-label',this.dataset.calculatorAlt);}if(this.dataset.calculatorAriaLive){b.attr('aria-live',this.dataset.calculatorAriaLive);}if(this.getAttribute('role')){b.attr('role',this.getAttribute('role'));}if(this.getAttribute('aria-owns')){
b.attr('aria-owns',this.getAttribute('aria-owns'));}if(this.getAttribute('aria-flowto')){b.attr('aria-flowto',this.getAttribute('aria-flowto'));}if(this.dataset.calculatorDisabled!==undefined){if(this.dataset.calculatorDisabled==='true'||this.dataset.calculatorDisabled==='1'){b.attr('disabled',true);}else{calc.connectButtonDisable(b[0],this.dataset.calculatorDisabled);}}connectButtonToFormula(calc,b,this.dataset.calculatorFor,this.dataset.calculatorFormula,this.dataset.calculatorDelay,this.dataset.calculatorMaxIterations,this.dataset.calculatorToggle,this.dataset.calculatorUntil);b.append(this.childNodes);return b;});$(this.parent).find('.calculator-field-buttonraw').each(function(){if(!this.id||this.id==='__proto__'){this.id='calculator-button-'+Math.ceil(Math.random()*100000000000);}connectButtonToFormula(calc,$(this),this.dataset.calculatorFor,this.dataset.calculatorFormula,this.dataset.calculatorDelay,this.dataset.calculatorMaxIterations,this.dataset.calculatorToggle,this.dataset.calculatorUntil,
this.classList.contains('calculator-field-buttondraggable'));});};CalculatorWidgets.prototype.changeHandler=function(e){this.inProgressRefresh=Object.create(null);var unsetBusy=this.setBusy();doStats();e.target.removeAttribute('data-calculator-real-value');var itemId=e.target.id.replace(/^(?:calcdisambig-\d+-)?calculator-field-/,'');var itemsToRefresh=[this.backlinks[itemId]];this.inProgressRefresh[itemId]=true;this.setValueProperties(e.target,getValueOfElm(e.target,this.mappingInput[e.target.id.replace(/^(?:calcdisambig-\d+-)?calculator-field-/,'')]));var staritem=itemId.replace(/[0-9]+$/,'*');if(itemId.match(/[0-9]+$/)&&this.backlinks[staritem]){this.inProgressRefresh[staritem]=true;itemsToRefresh.push(this.backlinks[staritem]);}this.refresh(itemsToRefresh.flat());this.inProgressRefresh=undefined;unsetBusy();};var formatNumeric=function(n,options){if(typeof n!=="number"){return n;}if(!isNaN(parseInt(options.calculatorDecimals))){return n.toFixed(parseInt(options.calculatorDecimals));
}if(!isNaN(parseInt(options.calculatorPrecision))){return n.toPrecision(parseInt(options.calculatorPrecision));}if(!isNaN(parseInt(options.calculatorExponentialPrecision))){return n.toExponential(parseInt(options.calculatorExponentialPrecision));}return n;};var format=function(n,options,mapping){var res=n.toString();if(typeof n!=="number"){return res;}if(mapping&&mapping[n]){return mapping[n];}if(mapping&&mapping['default']!==undefined){return mapping['default'];}if(isNaN(n)){return options.calculatorNanText?options.calculatorNanText:'?';}if(!isNaN(parseInt(options.calculatorDecimals))){res=n.toFixed(parseInt(options.calculatorDecimals));}if(!isNaN(parseInt(options.calculatorPrecision))){res=n.toPrecision(parseInt(options.calculatorPrecision));}if(!isNaN(parseInt(options.calculatorExponentialPrecision))){res=n.toExponential(parseInt(options.calculatorExponentialPrecision));}res=res.replace(/e([+-])([0-9]+)$/,function(m,sign,exp){var tmp="×10";if(sign==='-'){tmp+='⁻';}tmp+=exp.replace(/[0-9]/g,function(m){
return['⁰','¹','²','³','⁴','⁵','⁶','⁷','⁸','⁹'][m];});return tmp;});return res;};CalculatorWidgets.prototype.setValuePropertiesSpecialPurpose=function(id){if(id.match(/^--button-disable-.+/)){var buttonId=id.substring(17);if(this.buttonInfo[buttonId]){var res=this.evaluate(this.buttonInfo[buttonId].formula);this.buttonInfo[buttonId].elm.disabled=!isNaN(res)&&!almostEquals(res,0);}else{console.log('Tried to refresh disable status for '+buttonId+' but there is no such button.');}}return;};CalculatorWidgets.prototype.setValueProperties=function(elm,value){var itemId=elm.id.replace(/^(?:calcdisambig-\d+-)?calculator-field-/,'');elm.dataset.calculatorFieldValue=value.toFixed(5);if(!itemId.match(/^auto\d\d\d\d+unnamed$/)){this.parent.style.setProperty('--calculator-'+itemId,value);}if(!isNaN(value)&&!almostEquals(value,0)){elm.classList.remove('calculator-value-false');elm.classList.add('calculator-value-true');}else{elm.classList.remove('calculator-value-true');elm.classList.add('calculator-value-false');
}};CalculatorWidgets.prototype.refresh=function(itemIds){var i;var permMarks=Object.create(null);var tempMarks=Object.create(null);var topList=[];var that=this;if(!itemIds){return;}var visit=function(item){var i;if(permMarks[item]){return;}if(tempMarks[item]){if(!item.match(/^--radio-/)){console.log("Loop detected in calculator. '"+item+"' may not be updated properly. (This is expected for radio buttons)");}return;}tempMarks[item]=true;for(i=0;that.backlinks[item]&&i<that.backlinks[item].length;i++){visit(that.backlinks[item][i]);}if(item.match(/[0-9]+$/)){var staritem=item.replace(/[0-9]+$/,'*');for(i=0;that.backlinks[staritem]&&i<that.backlinks[staritem].length;i++){visit(that.backlinks[staritem][i]);}}permMarks[item]=true;topList.push(item);};for(i=0;i<itemIds.length;i++){if(itemIds[i]!==undefined){visit(itemIds[i]);}}for(i=topList.length-1;i>=0;i--){var itemId=topList[i];if(this.inProgressRefresh[itemId]){if(this.elmList[itemId].type!=='radio'){console.log("Loop Detected! Skipping "+itemId);
}continue;}if(itemId.match(/^--/)){this.setValuePropertiesSpecialPurpose(itemId);this.inProgressRefresh[itemId]=true;continue;}else if(!this.itemList[itemId]||this.itemList[itemId]instanceof Null){var elm=this.elmList[itemId];this.setValueProperties(elm,getValueOfElm(elm,this.mappingInput[itemId]));if(this.elmList[itemId].type!=='radio'){console.log("Tried to refresh field "+itemId+" with no formula");}continue;}this.inProgressRefresh[itemId]=true;var elm=this.elmList[itemId];if(elm.type==='radio'&&this.inProgressRefresh['--radio-'+elm.name.replace(/^calcgadget-\d+-/,'')]){this.setValueProperties(elm,getValueOfElm(elm,this.mappingInput[itemId]));continue;}var res=this.evaluate(this.itemList[itemId]);this.setValue(elm,res);}};CalculatorWidgets.prototype.setValue=function(elm,res){this.setValueProperties(elm,res);var mappingOut=this.mappingOutput[elm.id.replace(/^(?:calcdisambig-\d+-)?calculator-field-/,'')]
if(elm.tagName==='INPUT'){if(elm.type==='range'){elm.value=res;}else if(elm.type==='number'){elm.setAttribute('data-calculator-real-value',res);elm.value=formatNumeric(res,elm.dataset);}else if(elm.type==='radio'||elm.type==='checkbox'){elm.checked=!isNaN(res)&&!almostEquals(res,0);if(!elm.checked&&elm.dataset.calculatorValue){elm.value=elm.dataset.calculatorValue;}}else{elm.setAttribute('data-calculator-real-value',res);elm.value=format(res,elm.dataset,mappingOut);}}else if(elm.tagName==='SELECT'){elm.value=res;}else if(elm.dataset.calculatorType!=='passthru'){elm.setAttribute('data-calculator-real-value',res);elm.textContent=format(res,elm.dataset,mappingOut);}}
CalculatorWidgets.prototype.setBusy=function(){var curVal=this.parent.getAttribute('aria-busy');if(curVal==='true'){return function(){};}this.parent.setAttribute('aria-busy','true');var that=this;return function(){that.parent.setAttribute('aria-busy','false');};}
CalculatorWidgets.prototype.evaluate=evaluate;mw.hook('wikipage.content').add(setup);})();
},{"css":["body.skin-minerva input.calculator-field-live:not(.cdx-text-input__input):not(.cdx-checkbox__input):not(.cdx-radio__input){background:revert;border:revert}@media screen{ html.client-js .calculatorgadget-enabled{display:revert !important}html.client-js .calculatorgadget-fallback{display:none}}"]}];});
mw.loader.impl(function(){return["ext.gadget.WikiMiniAtlas@1v00j",function($,jQuery,require,module){jQuery(function($){var requireWikiminiatlas=$('a.external.text[href*="geohack"]').length||$('div.kmldata').length;if(requireWikiminiatlas){mw.loader.load('//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript');}});
}];});
mw.loader.impl(function(){return["ext.gadget.directcommons@1nxbx",function($,jQuery,require,module){if(mw.config.get('wgNamespaceNumber',0)>=0){mw.loader.using(['mediawiki.util']).then(function(){mw.hook('wikipage.content').add(function($content){var uploadBaseRe=/^(https:)?\/\/upload\.wikimedia\.org\/wikipedia\/commons/;var localFileNSString=mw.config.get('wgFormattedNamespaces')['6']+':';var server='(https:)?'+mw.util.escapeRegExp(mw.config.get('wgServer'));var localBasePath=new RegExp('^(?:'+server+')?'+mw.util.escapeRegExp(mw.util.getUrl(localFileNSString)));var localBaseScript=new RegExp('^(?:'+server+')?'+mw.util.escapeRegExp(mw.util.wikiScript()+'?title='+mw.util.wikiUrlencode(localFileNSString)));var commonsBasePath='https://commons.wikimedia.org/wiki/File:';var commonsBaseScript='https://commons.wikimedia.org/w/index.php?title=File:';$content.find('a.image, a.mw-file-description').each(function(i){if(uploadBaseRe.test($(this).find('img').attr('src'))){this.href=this.href.replace(localBasePath,commonsBasePath).replace(localBaseScript,commonsBaseScript);}});});});}
}];});
mw.loader.impl(function(){return["ext.gadget.edittools@1a0b6",function($,jQuery,require,module){jQuery(document).ready(function($){if(typeof window.updateEditTools!=="undefined"){return;}var isUpload=mw.config.get('wgCanonicalSpecialPageName')==='Upload';var isVector2022=mw.config.get('skin')==='vector-2022';if(/^(edit|submit)$/.test(mw.config.get('wgAction'))||isUpload){$("#editpage-specialchars").css({"padding":"0px","text-align":"left","background-color":isVector2022?"var(--background-color-neutral-subtle)":"var(--background-color-neutral-subtle, #f8f9fa)","height":"6em","overflow-y":"scroll"});if($('.editOptions').length>0){$("#editpage-specialchars").css({"margin-left":'-'+$(".editOptions").css("padding-left"),"margin-right":'-'+$(".editOptions").css("padding-right"),"margin-top":'-'+$(".editOptions").css("padding-top"),"margin-bottom":$(".editOptions").css("padding-top"),"border-bottom":"solid 1px #c5c9ce"});}else{$("#editpage-specialchars").css({"border":"solid 1px #c5c9ce"});}$('.editOptions').prepend($('#editpage-specialchars'));}});
},{"css":[".my-buttons a{color:black;background-color:#f9f9f9 !important;text-decoration:none;border:1px solid #dddddd;margin:0.25em;padding-left:3px;padding-right:3px}"]}];});
mw.loader.impl(function(){return["ext.gadget.protectionIndicator@1be1u",function($,jQuery,require,module){$protectionLogLabel={"de":"Seitenschutz-Logbuch","fr":"Journal des protections","en":"Protection Log","es":"Protecciones de páginas","it":"Registri","ja":"保護記録","ko":"문서 보호 기록","pt":"Registo de proteções","pl":"Zabezpieczone","ru":"Журнал защиты","zh":"保护日志","zh-cn":"保护日志","zh-hans":"保护日志","zh-hant":"保護日誌","zh-hk":"保護日誌","zh-sg":"保护日志","zh-tw":"保護日誌","yue":"保護日誌"};$allLogLabel={"de":"Logbuch","fr":"Journal","en":"Logs","es":"Registro","it":"Protezioni","ja":"ログ","ko":"기록","pt":"Registo","pl":"Rejestr","ru":"Журналы","zh":"日志","zh-cn":"日志","zh-hans":"日志","zh-hant":"日志","zh-hk":"日志","zh-sg":"日志","zh-tw":"日志","yue":"日誌"};$tabJs="true";$editLevel={"sysop":{"policy":"//ko.wikipedia.org/wiki/위키백과:보호_정책","id":{"normal":"#mw-indicator-fullprotect","indef":"#mw-indicator-pp-default"},"icon":"//upload.wikimedia.org/wikipedia/commons/thumb/0/01/Edit_Protection.svg/40px-Edit_Protection.svg.png",
"alticon":"//upload.wikimedia.org/wikipedia/commons/thumb/0/01/Edit_Protection.svg/60px-Edit_Protection.svg.png 1.5x,//upload.wikimedia.org/wikipedia/commons/thumb/0/01/Edit_Protection.svg/60px-Edit_Protection.svg.png 2x","message":"이 문서는 보호되어 있습니다.",},"extendedconfirmed":{"policy":"//ko.wikipedia.org/wiki/위키백과:보호_정책#장기인증보호","id":{"normal":"#mw-indicator-extendprotect","indef":"#mw-indicator-pp-default"},"icon":"//upload.wikimedia.org/wikipedia/commons/thumb/3/31/Edit_Extended_Semi-protection.svg/40px-Edit_Extended_Semi-protection.svg.png","alticon":"//upload.wikimedia.org/wikipedia/commons/thumb/3/31/Edit_Extended_Semi-protection.svg/60px-Edit_Extended_Semi-protection.svg.png 1.5x,//upload.wikimedia.org/wikipedia/commons/thumb/3/31/Edit_Extended_Semi-protection.svg/60px-Edit_Extended_Semi-protection.svg.png 2x","message":"이 문서는 장기인증보호 상태입니다.",},"autoconfirmed":{"policy":"//ko.wikipedia.org/wiki/위키백과:보호_정책#준보호",
"id":{"normal":"#mw-indicator-semiprotect","indef":"#mw-indicator-pp-default"},"icon":"//upload.wikimedia.org/wikipedia/commons/thumb/5/58/Edit_Semi-protection.svg/40px-Edit_Semi-protection.svg.png","alticon":"//upload.wikimedia.org/wikipedia/commons/thumb/5/58/Edit_Semi-protection.svg/60px-Edit_Semi-protection.svg.png 1.5x,//upload.wikimedia.org/wikipedia/commons/thumb/5/58/Edit_Semi-protection.svg/60px-Edit_Semi-protection.svg.png 2x","message":"이 문서는 준보호 상태입니다.",}};$moveLevel={"sysop":{"policy":"//ko.wikipedia.org/wiki/위키백과:보호_정책","id":"#mw-indicator-moveprotect","icon":"//upload.wikimedia.org/wikipedia/commons/thumb/4/44/Move-protection-shackle.svg/40px-Move-protection-shackle.svg.png","alticon":"//upload.wikimedia.org/wikipedia/commons/thumb/4/44/Move-protection-shackle.svg/60px-Move-protection-shackle.svg.png 1.5x,//upload.wikimedia.org/wikipedia/commons/thumb/4/44/Move-protection-shackle.svg/60px-Move-protection-shackle.svg.png 2x",
"message":"이 문서는 이동 보호 상태입니다.",},"extendedconfirmed":{"policy":"//ko.wikipedia.org/wiki/위키백과:보호_정책#장기인증보호","id":{"normal":"#mw-indicator-extendprotect","indef":"#mw-indicator-pp-default"},"icon":"//upload.wikimedia.org/wikipedia/commons/thumb/9/96/Move_Extended_Semi-protection.svg/40px-Move_Extended_Semi-protection.svg.png","alticon":"//upload.wikimedia.org/wikipedia/commons/thumb/9/96/Move_Extended_Semi-protection.svg/60px-Move_Extended_Semi-protection.svg.png 1.5x,//upload.wikimedia.org/wikipedia/commons/thumb/9/96/Move_Extended_Semi-protection.svg/60px-Move_Extended_Semi-protection.svg.png 2x","message":"이 문서는 이동 장기인증보호 상태입니다.",}};$createLevel={"sysop":{"policy":"//ko.wikipedia.org/wiki/위키백과:보호_정책","id":"#mw-indicator-moveprotect","icon":"//upload.wikimedia.org/wikipedia/commons/thumb/0/02/Create-protection-shackle.svg/40px-Create-protection-shackle.svg.png","alticon":"//upload.wikimedia.org/wikipedia/commons/thumb/0/02/Create-protection-shackle.svg/60px-Create-protection-shackle.svg.png 1.5x,//upload.wikimedia.org/wikipedia/commons/thumb/0/02/Create-protection-shackle.svg/60px-Create-protection-shackle.svg.png 2x",
"message":"이 문서는 생성 보호 상태입니다."},"extendedconfirmed":{"policy":"//ko.wikipedia.org/wiki/위키백과:보호_정책#장기인증보호","id":"#mw-indicator-moveprotect","icon":"//upload.wikimedia.org/wikipedia/commons/thumb/7/74/Creation_Extended_Semi-protection.svg/40px-Creation_Extended_Semi-protection.svg.png","alticon":"//upload.wikimedia.org/wikipedia/commons/thumb/7/74/Creation_Extended_Semi-protection.svg/60px-Creation_Extended_Semi-protection.svg.png 1.5x,//upload.wikimedia.org/wikipedia/commons/thumb/7/74/Creation_Extended_Semi-protection.svg/60px-Creation_Extended_Semi-protection.svg.png 2x","message":"이 문서는 생성 장기인증보호 상태입니다."},"autoconfirmed":{"policy":"//ko.wikipedia.org/wiki/위키백과:보호_정책#준보호","id":"#mw-indicator-moveprotect","icon":"//upload.wikimedia.org/wikipedia/commons/thumb/8/8f/Creation_Semi-protection.svg/40px-Creation_Semi-protection.svg.png","alticon":"//upload.wikimedia.org/wikipedia/commons/thumb/8/8f/Creation_Semi-protection.svg/60px-Creation_Semi-protection.svg.png 1.5x,//upload.wikimedia.org/wikipedia/commons/thumb/8/8f/Creation_Semi-protection.svg/60px-Creation_Semi-protection.svg.png 2x",
"message":"이 문서는 생성 준보호 상태입니다."}};$uploadLevel={"sysop":{"policy":"//ko.wikipedia.org/wiki/위키백과:보호_정책","id":"#mw-indicator-moveprotect","icon":"//upload.wikimedia.org/wikipedia/commons/thumb/f/f1/Upload_Protection.svg/40px-Upload_Protection.svg.png","alticon":"//upload.wikimedia.org/wikipedia/commons/thumb/f/f1/Upload_Protection.svg/60px-Upload_Protection.svg.png 1.5x,//upload.wikimedia.org/wikipedia/commons/thumb/f/f1/Upload_Protection.svg/60px-Upload_Protection.svg.png 2x","message":"이 파일은 업로드 보호 상태입니다.",},"extendedconfirmed":{"policy":"//ko.wikipedia.org/wiki/위키백과:보호_정책#장기인증보호","id":"#mw-indicator-moveprotect","icon":"//upload.wikimedia.org/wikipedia/commons/thumb/7/72/Upload_Extended_Semi-protection.svg/40px-Upload_Extended_Semi-protection.svg.png","alticon":"//upload.wikimedia.org/wikipedia/commons/thumb/7/72/Upload_Extended_Semi-protection.svg/60px-Upload_Extended_Semi-protection.svg.png 1.5x,//upload.wikimedia.org/wikipedia/commons/thumb/7/72/Upload_Extended_Semi-protection.svg/45px-Upload_Extended_Semi-protection.svg.png 2x",
"message":"이 파일은 업로드 장기인증보호 상태입니다.",}};$nsTalk=[1,5,7,9,11,13,15,101,103,829,2301,2303];if(mw.config.get('wgNamespaceNumber')===6){$editLevel.sysop.message="이 파일은 보호되어 있습니다.";$editLevel.extendedconfirmed.message="이 파일은 장기인증보호 상태입니다.";$editLevel.autoconfirmed.message="이 파일은 준보호 상태입니다.";$createLevel.sysop.message="이 파일 문서는 생성 보호 상태입니다.";$createLevel.extendedconfirmed.message="이 파일 문서는 생성 장기인증보호 상태입니다.";$createLevel.autoconfirmed.message="이 파일 문서는 생성 준보호 상태입니다.";}else if(mw.config.get('wgNamespaceNumber')===10){$editLevel.sysop.message="이 틀은 보호되어 있습니다.";$editLevel.extendedconfirmed.message="이 틀은 장기인증보호 상태입니다.";$editLevel.autoconfirmed.message="이 틀은 준보호 상태입니다.";$moveLevel.sysop.message="이 틀은 이동 보호 상태입니다.";
$moveLevel.extendedconfirmed.message="이 틀은 이동 장기인증보호 상태입니다.";$createLevel.sysop.message="이 틀은 생성 보호 상태입니다.";$createLevel.extendedconfirmed.message="이 틀은 생성 장기인증보호 상태입니다.";$createLevel.autoconfirmed.message="이 틀은 생성 준보호 상태입니다.";}else if(mw.config.get('wgNamespaceNumber')===14){$editLevel.sysop.message="이 분류는 보호되어 있습니다.";$editLevel.extendedconfirmed.message="이 분류는 장기인증보호 상태입니다.";$editLevel.autoconfirmed.message="이 분류는 준보호 상태입니다.";$moveLevel.sysop.message="이 분류는 이동 보호 상태입니다.";$moveLevel.extendedconfirmed.message="이 분류는 이동 장기인증보호 상태입니다.";$createLevel.sysop.message="이 분류는 생성 보호 상태입니다.";$createLevel.extendedconfirmed.message="이 분류는 생성 장기인증보호 상태입니다.";$createLevel.autoconfirmed.message="이 분류는 생성 준보호 상태입니다.";
}else if(mw.config.get('wgNamespaceNumber')===828){$createLevel.sysop.message="이 모듈은 생성 보호 상태입니다.";$createLevel.extendedconfirmed.message="이 모듈은 생성 장기인증보호 상태입니다.";$createLevel.autoconfirmed.message="이 모듈은 생성 준보호 상태입니다.";}else if($nsTalk.includes(mw.config.get('wgNamespaceNumber'))){$editLevel.sysop.message="이 토론 문서는 보호되어 있습니다.";$editLevel.extendedconfirmed.message="이 토론 문서는 장기인증보호 상태입니다.";$editLevel.autoconfirmed.message="이 토론 문서는 준보호 상태입니다.";$moveLevel.sysop.message="이 토론 문서는 이동 보호 상태입니다.";$moveLevel.extendedconfirmed.message="이 토론 문서는 이동 장기인증보호 상태입니다.";$createLevel.sysop.message="이 토론 문서는 생성 보호 상태입니다.";$createLevel.extendedconfirmed.message="이 토론 문서는 생성 장기인증보호 상태입니다.";
$createLevel.autoconfirmed.message="이 토론 문서는 생성 준보호 상태입니다.";}else if(mw.config.get('wgNamespaceNumber')===3){$editLevel.sysop.message="이 사용자 토론 문서는 보호되어 있습니다.";$editLevel.extendedconfirmed.message="이 사용자 토론 문서는 장기인증보호 상태입니다.";$editLevel.autoconfirmed.message="이 사용자 토론 문서는 준보호 상태입니다.";$moveLevel.sysop.message="이 사용자 토론 문서는 이동 보호 상태입니다.";$moveLevel.extendedconfirmed.message="이 사용자 토론 문서는 이동 장기인증보호 상태입니다.";$createLevel.sysop.message="이 사용자 토론 문서는 생성 보호 상태입니다.";$createLevel.extendedconfirmed.message="이 사용자 토론 문서는 생성 장기인증보호 상태입니다.";$createLevel.autoconfirmed.message="이 사용자 토론 문서는 생성 준보호 상태입니다.";}mw.loader.load("//ko.wikipedia.org/w/index.php?title=MediaWiki:Gadget-protectionLog.js/core.js&action=raw&ctype=text/javascript");
}];});
mw.loader.impl(function(){return["ext.gadget.refToolbar@35ow8",function($,jQuery,require,module){(function(mw,$){'use strict';function initializeRefTools(){if(window.refToolbarInstalled||$('#wpTextbox1[readonly]').length){return;}if(mw.user.options.get('usebetatoolbar')==true){mw.loader.using(['ext.gadget.refToolbarBase','ext.wikiEditor'],function(){importScript('미디어위키:RefToolbar.js');});}else if(mw.user.options.get('showtoolbar')){importScript('//en.wikipedia.org/w/index.php?title=MediaWiki:RefToolbarLegacy.js&action=raw&ctype=text/javascript');}else{return;}window.refToolbarInstalled=true;}if($.inArray(mw.config.get('wgAction'),['edit','submit'])!==-1){$.when(mw.loader.using(['user.options']),$.ready).done(initializeRefTools);}}(mediaWiki,jQuery));
}];});
mw.loader.impl(function(){return["ext.gadget.scrollUpButton@eibw1",function($,jQuery,require,module){$(function(){'use strict';var $icon='//upload.wikimedia.org/wikipedia/commons/2/2e/Up_%2889591%29_-_The_Noun_Project.svg';var helpPanelButtonFound=false;if(!document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#Image','1.1'))$icon='//upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Up_%2889591%29_-_The_Noun_Project.svg/32px-Up_%2889591%29_-_The_Noun_Project.svg.png';$icon=$('<img>',{src:$icon,id:'scrollUpButton',class:'noprint'}).css({position:'fixed',bottom:'50px',right:'9px',opacity:0.7,width:'32px',cursor:'pointer',filter:'invert(66%) sepia(21%) saturate(761%) hue-rotate(172deg) brightness(99%) contrast(77%)',display:'none'}).on('click',function(){$('html, body').animate({scrollTop:0},660);}).on('mouseenter mouseleave',function(e){this.style.opacity=e.type==='mouseenter'?1:0.7;}).appendTo('body');$(window).on('scroll',function(){if(!helpPanelButtonFound&&$("#mw-ge-help-panel-cta-button").length>0){$("img#scrollUpButton").css({bottom:'75px'});helpPanelButtonFound=true;
}if($(this).scrollTop()>60)$icon.fadeIn('30');else $icon.fadeOut('30');});}());
}];});
mw.loader.impl(function(){return["ext.gadget.siteNotice@u6oz2",function($,jQuery,require,module){(()=>{'use strict';const noticeGrpPage='틀:소도구/noticeGrp';const isBot=/bot|googlebot|crawler|spider|robot|crawling/i.test(navigator.userAgent);const isMobile=/\.m\.wikipedia\.org/.test(window.location.host);const storageKeys=Object.freeze({html:'parsedSiteNoticeHtml',dismissClicked:'dismissClicked',noticeId:'storedSiteNoticeId'});if(isBot){$("#siteNotice, .noprint, .mw-jump-link").empty();return;}const parseHTMLOnce=(html)=>{const container=document.createElement('div');container.innerHTML=html;return container;};const getSelHtml=(root,selector)=>{const el=root.querySelector(selector);return el?el.innerHTML:'';};const getSelTextTrim=(root,selector)=>{const el=root.querySelector(selector);return el?el.textContent.trim():'';};const html2text=(html)=>{const div=document.createElement('div');div.innerHTML=html;return div.textContent||'';};const hasVisibleText=(str)=>/\S/.test(str);const $siteNotice=$('#siteNotice');let sitenoticeId='';let dismissLabel='';const applyMobileStyle=($root)=>{
$root.css({position:'relative',paddingLeft:($root.css('padding-left')==='0px')?'12px':$root.css('padding-left'),paddingTop:($root.css('padding-top')==='0px')?'12px':$root.css('padding-top'),paddingRight:($root.css('padding-right')==='0px')?'12px':$root.css('padding-right'),paddingBottom:($root.css('padding-bottom')==='0px')?'15px':$root.css('padding-bottom')});$(".mw-dismissable-notice-close2").css({position:'relative',top:'0px',right:'0px',paddingLeft:'5px',textAlign:'right',float:'right'});};const applyDesktopStyle=($root)=>{$root.css({paddingTop:'5px',paddingBottom:'5px',marginBottom:'15px'});$(".mw-dismissable-notice-close2").css({position:'relative',top:'0px',right:'7px',paddingLeft:'5px',textAlign:'right',float:'right'});};const installDismissUI=()=>{const $existingClose=$('.mw-dismissable-notice-close2');if($existingClose.length===0){const closeDiv=document.createElement('div');closeDiv.className='mw-dismissable-notice-close2';const btn=document.createElement('a');btn.setAttribute('tabindex','0');
btn.setAttribute('role','button');const img=document.createElement('img');img.style.display='block';img.style.opacity='0.55';img.style.backgroundColor='white';img.style.width='17px';img.style.marginLeft='2px';img.style.marginBottom='2px';img.src='data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2220%22 height=%2220%22 viewBox=%220 0 20 20%22%3E%3Ctitle%3Eclose%3C/title%3E%3Cpath d=%22M4.34 2.93l12.73 12.73-1.41 1.41L2.93 4.35z%22/%3E%3Cpath d=%22M17.07 4.34L4.34 17.07l-1.41-1.41L15.66 1.93z%22/%3E%3C/svg%3E';img.title=dismissLabel||'';btn.appendChild(img);closeDiv.appendChild(btn);const $local=$('#siteNoticeLocal');$local.length&&$local.prepend(closeDiv);$local.find('ul').css({listStyle:'none',textAlign:'left',display:'table',margin:'0 auto',paddingLeft:'10px',maxWidth:'calc(100% - 20px)'});if(isMobile){applyMobileStyle($local);}else{applyDesktopStyle($local);}$('.mw-dismissable-notice-close2 a').on('click keypress',(e)=>{if(e.type==='click'||(e.type==='keypress'&&(e.which===13||e.key==='Enter'))){
$('#siteNoticeLocal').hide();mw.storage.set(storageKeys.dismissClicked,'true');mw.storage.set(storageKeys.noticeId,sitenoticeId);addRestorePortletWhenReady();}});}};const appendNoticeFromParsed=(parsedRoot,isForAnon)=>{const contentHtml=isForAnon?getSelHtml(parsedRoot,'#gadgetAnonnotice'):getSelHtml(parsedRoot,'#gadgetSiteNotice');const styleText=getSelTextTrim(parsedRoot,'#sitenoticeStyle');if(!contentHtml||!hasVisibleText(html2text(contentHtml)))return;const wrapper=document.createElement('div');wrapper.id='siteNoticeLocal';if(styleText)wrapper.setAttribute('style',styleText);const inner=document.createElement('div');inner.className='mw-parser-output';inner.innerHTML=contentHtml;wrapper.appendChild(inner);const $existing=$('#siteNoticeLocal');if($existing.length){if($existing.prop('outerHTML').trim()===wrapper.outerHTML.trim())return;$existing.remove();}$siteNotice.append(wrapper);installDismissUI();};const procApi=(forceShow=false)=>{const api=new mw.Api();api.parse(new mw.Title(noticeGrpPage)).then((html)=>{
const parsed=parseHTMLOnce(html);const isLoggedIn=mw.config.get('wgUserName')!==null;sitenoticeId=getSelTextTrim(parsed,'#sitenoticeId');dismissLabel=getSelTextTrim(parsed,'#dismissLabel');const storedId=mw.storage.get(storageKeys.noticeId);const oldHtml=mw.storage.get(storageKeys.html)||'';if(html.trim()!==oldHtml.trim()){mw.storage.set(storageKeys.html,html);}const gadgetSiteNotice=getSelHtml(parsed,'#gadgetSiteNotice');const gadgetAnonnotice=getSelHtml(parsed,'#gadgetAnonnotice');const siteText=html2text(gadgetSiteNotice).trim();const anonText=html2text(gadgetAnonnotice).trim();const showSite=()=>{mw.storage.set(storageKeys.dismissClicked,'false');appendNoticeFromParsed(parsed,false);$('#t-restoreNotice').remove();};const showAnon=()=>{mw.storage.set(storageKeys.dismissClicked,'false');appendNoticeFromParsed(parsed,true);$('#t-restoreNotice').remove();};if(isLoggedIn){if(hasVisibleText(siteText)&&(storedId!==sitenoticeId||forceShow)){showSite();}}else{if(!hasVisibleText(anonText))return;
if(/^\s*-\s*$/.test(anonText)){if(hasVisibleText(siteText)&&(storedId!==sitenoticeId||forceShow)){showSite();}}else{showAnon();}}});};const addRestorePortletWhenReady=(retries=10)=>{if($('#t-restoreNotice').length>0)return;if($('#p-tb').length===0){if(retries>0){setTimeout(()=>addRestorePortletWhenReady(retries-1),100);}return;}mw.util.addPortletLink('p-tb','#','사이트 공지 다시 보기','t-restoreNotice','숨긴 사이트 공지를 다시 표시합니다.',null,'#t-specialpages');$('#t-restoreNotice a').on('click',(e)=>{e.preventDefault();mw.storage.set(storageKeys.dismissClicked,'false');procApi(true);});};$(function(){if(mw.storage.get(storageKeys.dismissClicked)==='true'){addRestorePortletWhenReady();}const cachedHtml=mw.storage.get(storageKeys.html);if(mw.storage.get(storageKeys.dismissClicked)==='false'&&cachedHtml){const parsedCached=parseHTMLOnce(cachedHtml);const isLoggedIn=mw.config.get('wgUserName')!==null;const cachedSiteText=html2text(getSelHtml(parsedCached,'#gadgetSiteNotice')).trim();
const cachedAnonText=html2text(getSelHtml(parsedCached,'#gadgetAnonnotice')).trim();if(isLoggedIn){appendNoticeFromParsed(parsedCached,false);}else{if(hasVisibleText(cachedAnonText)){if(/^\s*-\s*$/.test(cachedAnonText)){appendNoticeFromParsed(parsedCached,false);}else{appendNoticeFromParsed(parsedCached,true);}}}}procApi();});})();
}];});
mw.loader.impl(function(){return["ext.gadget.strikethroughTOC@1agke",function($,jQuery,require,module){$(function(){var tocname;var levelname;const waitImg='https://upload.wikimedia.org/wikipedia/commons/thumb/5/58/Flat_minus_icon.svg/20px-Flat_minus_icon.svg.png';const validImgs=["/Yes_check.svg","/X_mark.svg","/Yellow_check.svg","/U2713.svg","/Red_x.svg","/Green_check.svg","/Check-green.svg","/Antu_mail-mark-notjunk.svg","/Cross_reject.svg","/Antu_mail-mark-notjunk_yellow.svg","/Eo_circle_blue-grey_white_checkmark.svg","X_Icon_or_Close_Icon.svg","Icon_Maintenance.svg","Pictogram_voting_wait_orange.svg","Symbol_declined.svg","Symbol_wait.svg","Emoji_u231b.svg"];const validTitles=["문서 관리 요청","다중 계정 검사 요청","사용자 관리 요청","계정 이름 변경 요청","이동 요청","파일 업로드 요청","사용자 권한 신청\/일괄 되돌리기 기능 사용자","사용자 권한 신청\/업로더","사용자 권한 신청\/기타 권한","봇\/등록 신청","봇 편집 요청"];function addImg(nTxt,fileUrl,lvl){var imgStyle="padding-right: 8px; padding-top: 3px;";
var imgTag="<img src="+fileUrl+" width='14' height='14'"+" style='"+imgStyle+(tocname!=='#toc'?"float: left;":"")+"'>";var elm=$($($(levelname)[lvl]).find("a")[0]);if(tocname!=='#toc'){elm=elm.find('.vector-toc-text');}$(nTxt).prepend("<img width='14' height='14' src="+fileUrl+">");elm.prepend(imgTag);}function isImgValid(fileUrl){for(var i=0;i<validImgs.length;i++){if(fileUrl.includes(validImgs[i])){return true;}}return false;}function isTocValid(){const wgTitle=mw.config.get('wgTitle');var isTitleValid=false;if($(".mw-heading").length===0||mw.config.get('wgNamespaceNumber')!==4||mw.config.get('wgAction')!=="view"){return false;}for(var i=0;i<validTitles.length;i++){var re=new RegExp("^"+validTitles[i]+"($|\/)");if(re.test(wgTitle)){isTitleValid=true;break;}}if(!isTitleValid){return false;}if($('#mw-panel-toc ul').length>0){tocname='#mw-panel-toc';levelname=tocname+' li.vector-toc-level-1';}else if($('#toc ul').length>0){tocname='#toc';levelname=tocname+' li.toclevel-1';}else{return false;
}return true;}function proc(){var arr_ids=[];$(levelname).each(function(i,li){if(tocname!=='#toc'&&i===0){return true;}var checked=false;var cnt=0;var fileUrl="";var txt;var nTxt;if(tocname==='#toc'){txt='#'+$.escapeSelector($(li).find('span.toctext').text().replace(/‎+/g,"").replace(/\s+/g,"_"));}else{var itemNo=$(li).find('.vector-toc-text .vector-toc-numb').text();var itemTxt=$(li).find('.vector-toc-text').text().replace(itemNo,"");txt='#'+$.escapeSelector(itemTxt.replace(/‎+/g,"").trim().replace(/\s+/g,"_"));}arr_ids.forEach(function(item){if(item===txt){cnt++;}});arr_ids.push(txt);if(cnt!==0){cnt++;txt=txt+"_"+cnt;}nTxt=txt.replace(/^#/,tocname+"-")+" .vector-toc-text";var mwMainHead=$($(".mw-heading").not(".mw-heading3",".mw-heading4",".mw-heading5",".mw-heading6")[tocname!=='#toc'?i-1:i]);var mwHead=mwMainHead.next();while(true){if(mwHead[0]===undefined){break;}if($(mwHead[0]).hasClass('mw-heading')){break;}var sibl=mwHead;var imgTag=sibl.find('img');var pp=sibl.clone().find('noscript').contents().unwrap();
if(pp.length>0){imgTag=pp;}if(imgTag.length>0){for(var i2=0;i2<imgTag.length;i2++){if(pp.length>0){fileUrl=$($(imgTag[i2]).text()).attr("src");}else{fileUrl=$(imgTag[i2]).attr("src");}if(isImgValid(fileUrl)){checked=true;break;}}if(checked){break;}}mwHead=mwHead.next();}if(!checked){addImg(nTxt,waitImg,i);return;}checked=false;if(isImgValid(fileUrl)){addImg(nTxt,fileUrl,i);checked=true;}if(!checked){addImg(nTxt,waitImg,i);return;}});}if(isTocValid()){proc();}});
}];});
mw.loader.impl(function(){return["ext.gadget.switcher@1itb9",function($,jQuery,require,module){'use strict';$(function(){$.each(document.querySelectorAll('.switcher-container'),function(i,container){if(i==0){mw.loader.using(['mediawiki.util'],function(){mw.util.addCSS('.switcher-container label input{margin-right:0.5em}')})}var selected,$radio;var switchers=[]
var radioName='switcher-'+i;var first=true;$.each(container.children,function(j,switcher){var label=switcher.querySelector('.switcher-label');if(!label||!label.childNodes.length){return;}switchers.push(switcher);$radio=$('<input>').prop({type:'radio',name:radioName}).on('click',function(){$(selected).hide();$(switcher).show();selected=switcher;});if(!selected){selected=switcher;$radio.prop('checked',true);}else if(label.getAttribute('data-switcher-default')!==null){$radio.click();}else{$(switcher).hide();}$('<label style="display:'+(first?"inline-block":"block")+'"></label>').append($radio,label.childNodes).appendTo(container);first=false;$(label).remove();});if(switchers.length>1){$('<label style="display:block">모두 보기</label>').prepend($('<input>').prop({type:'radio',name:radioName}).on('click',function(){$(switchers).show();selected=switchers;})).appendTo(container);}if(switchers.length===1){$radio.remove();}});});
}];});
