mw.loader.impl(function(){return["jquery@16rou",function($,jQuery,require,module){(function(global,factory){"use strict";if(typeof module==="object"&&typeof module.exports==="object"){module.exports=global.document?factory(global,true):function(w){if(!w.document){throw new Error("jQuery requires a window with a document");}return factory(w);};}else{factory(global);}})(typeof window!=="undefined"?window:this,function(window,noGlobal){"use strict";var arr=[];var getProto=Object.getPrototypeOf;var slice=arr.slice;var flat=arr.flat?function(array){return arr.flat.call(array);}:function(array){return arr.concat.apply([],array);};var push=arr.push;var indexOf=arr.indexOf;var class2type={};var toString=class2type.toString;var hasOwn=class2type.hasOwnProperty;var fnToString=hasOwn.toString;var ObjectFunctionString=fnToString.call(Object);var support={};var isFunction=function isFunction(obj){return typeof obj==="function"&&typeof obj.nodeType!=="number"&&typeof obj.item!=="function";};var isWindow=function isWindow(obj){return obj!=null&&obj===obj.window;};var document=window.document;
var preservedScriptAttributes={type:true,src:true,nonce:true,noModule:true};function DOMEval(code,node,doc){doc=doc||document;var i,val,script=doc.createElement("script");script.text=code;if(node){for(i in preservedScriptAttributes){val=node[i]||node.getAttribute&&node.getAttribute(i);if(val){script.setAttribute(i,val);}}}doc.head.appendChild(script).parentNode.removeChild(script);}function toType(obj){if(obj==null){return obj+"";}return typeof obj==="object"||typeof obj==="function"?class2type[toString.call(obj)]||"object":typeof obj;}var version="3.7.1",rhtmlSuffix=/HTML$/i,jQuery=function(selector,context){return new jQuery.fn.init(selector,context);};jQuery.fn=jQuery.prototype={jquery:version,constructor:jQuery,length:0,toArray:function(){return slice.call(this);},get:function(num){if(num==null){return slice.call(this);}return num<0?this[num+this.length]:this[num];},pushStack:function(elems){var ret=jQuery.merge(this.constructor(),elems);ret.prevObject=this;return ret;},each:function(callback){
return jQuery.each(this,callback);},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},slice:function(){return this.pushStack(slice.apply(this,arguments));},first:function(){return this.eq(0);},last:function(){return this.eq(-1);},even:function(){return this.pushStack(jQuery.grep(this,function(_elem,i){return(i+1)%2;}));},odd:function(){return this.pushStack(jQuery.grep(this,function(_elem,i){return i%2;}));},eq:function(i){var len=this.length,j=+i+(i<0?len:0);return this.pushStack(j>=0&&j<len?[this[j]]:[]);},end:function(){return this.prevObject||this.constructor();},push:push,sort:arr.sort,splice:arr.splice};jQuery.extend=jQuery.fn.extend=function(){var options,name,src,copy,copyIsArray,clone,target=arguments[0]||{},i=1,length=arguments.length,deep=false;if(typeof target==="boolean"){deep=target;target=arguments[i]||{};i++;}if(typeof target!=="object"&&!isFunction(target)){target={};}if(i===length){target=this;i--;}
for(;i<length;i++){if((options=arguments[i])!=null){for(name in options){copy=options[name];if(name==="__proto__"||target===copy){continue;}if(deep&&copy&&(jQuery.isPlainObject(copy)||(copyIsArray=Array.isArray(copy)))){src=target[name];if(copyIsArray&&!Array.isArray(src)){clone=[];}else if(!copyIsArray&&!jQuery.isPlainObject(src)){clone={};}else{clone=src;}copyIsArray=false;target[name]=jQuery.extend(deep,clone,copy);}else if(copy!==undefined){target[name]=copy;}}}}return target;};jQuery.extend({expando:"jQuery"+(version+Math.random()).replace(/\D/g,""),isReady:true,error:function(msg){throw new Error(msg);},noop:function(){},isPlainObject:function(obj){var proto,Ctor;if(!obj||toString.call(obj)!=="[object Object]"){return false;}proto=getProto(obj);if(!proto){return true;}Ctor=hasOwn.call(proto,"constructor")&&proto.constructor;return typeof Ctor==="function"&&fnToString.call(Ctor)===ObjectFunctionString;},isEmptyObject:function(obj){var name;for(name in obj){return false;}return true;
},globalEval:function(code,options,doc){DOMEval(code,{nonce:options&&options.nonce},doc);},each:function(obj,callback){var length,i=0;if(isArrayLike(obj)){length=obj.length;for(;i<length;i++){if(callback.call(obj[i],i,obj[i])===false){break;}}}else{for(i in obj){if(callback.call(obj[i],i,obj[i])===false){break;}}}return obj;},text:function(elem){var node,ret="",i=0,nodeType=elem.nodeType;if(!nodeType){while((node=elem[i++])){ret+=jQuery.text(node);}}if(nodeType===1||nodeType===11){return elem.textContent;}if(nodeType===9){return elem.documentElement.textContent;}if(nodeType===3||nodeType===4){return elem.nodeValue;}return ret;},makeArray:function(arr,results){var ret=results||[];if(arr!=null){if(isArrayLike(Object(arr))){jQuery.merge(ret,typeof arr==="string"?[arr]:arr);}else{push.call(ret,arr);}}return ret;},inArray:function(elem,arr,i){return arr==null?-1:indexOf.call(arr,elem,i);},isXMLDoc:function(elem){var namespace=elem&&elem.namespaceURI,docElem=elem&&(elem.ownerDocument||elem).documentElement;
return!rhtmlSuffix.test(namespace||docElem&&docElem.nodeName||"HTML");},merge:function(first,second){var len=+second.length,j=0,i=first.length;for(;j<len;j++){first[i++]=second[j];}first.length=i;return first;},grep:function(elems,callback,invert){var callbackInverse,matches=[],i=0,length=elems.length,callbackExpect=!invert;for(;i<length;i++){callbackInverse=!callback(elems[i],i);if(callbackInverse!==callbackExpect){matches.push(elems[i]);}}return matches;},map:function(elems,callback,arg){var length,value,i=0,ret=[];if(isArrayLike(elems)){length=elems.length;for(;i<length;i++){value=callback(elems[i],i,arg);if(value!=null){ret.push(value);}}}else{for(i in elems){value=callback(elems[i],i,arg);if(value!=null){ret.push(value);}}}return flat(ret);},guid:1,support:support});if(typeof Symbol==="function"){jQuery.fn[Symbol.iterator]=arr[Symbol.iterator];}jQuery.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(_i,name){class2type["[object "+name+"]"]=name.toLowerCase();
});function isArrayLike(obj){var length=!!obj&&"length"in obj&&obj.length,type=toType(obj);if(isFunction(obj)||isWindow(obj)){return false;}return type==="array"||length===0||typeof length==="number"&&length>0&&(length-1)in obj;}function nodeName(elem,name){return elem.nodeName&&elem.nodeName.toLowerCase()===name.toLowerCase();}var pop=arr.pop;var sort=arr.sort;var splice=arr.splice;var whitespace="[\\x20\\t\\r\\n\\f]";var rtrimCSS=new RegExp("^"+whitespace+"+|((?:^|[^\\\\])(?:\\\\.)*)"+whitespace+"+$","g");jQuery.contains=function(a,b){var bup=b&&b.parentNode;return a===bup||!!(bup&&bup.nodeType===1&&(a.contains?a.contains(bup):a.compareDocumentPosition&&a.compareDocumentPosition(bup)&16));};var rcssescape=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;function fcssescape(ch,asCodePoint){if(asCodePoint){if(ch==="\0"){return"\uFFFD";}return ch.slice(0,-1)+"\\"+ch.charCodeAt(ch.length-1).toString(16)+" ";}return"\\"+ch;}jQuery.escapeSelector=function(sel){return(sel+"").replace(rcssescape,fcssescape);
};var preferredDoc=document,pushNative=push;(function(){var i,Expr,outermostContext,sortInput,hasDuplicate,push=pushNative,document,documentElement,documentIsHTML,rbuggyQSA,matches,expando=jQuery.expando,dirruns=0,done=0,classCache=createCache(),tokenCache=createCache(),compilerCache=createCache(),nonnativeSelectorCache=createCache(),sortOrder=function(a,b){if(a===b){hasDuplicate=true;}return 0;},booleans="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|"+"loop|multiple|open|readonly|required|scoped",identifier="(?:\\\\[\\da-fA-F]{1,6}"+whitespace+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",attributes="\\["+whitespace+"*("+identifier+")(?:"+whitespace+"*([*^$|!~]?=)"+whitespace+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+identifier+"))|)"+whitespace+"*\\]",pseudos=":("+identifier+")(?:\\(("+"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|"+"((?:\\\\.|[^\\\\()[\\]]|"+attributes+")*)|"+".*"+")\\)|)",rwhitespace=new RegExp(whitespace+"+","g"),
rcomma=new RegExp("^"+whitespace+"*,"+whitespace+"*"),rleadingCombinator=new RegExp("^"+whitespace+"*([>+~]|"+whitespace+")"+whitespace+"*"),rdescend=new RegExp(whitespace+"|>"),rpseudo=new RegExp(pseudos),ridentifier=new RegExp("^"+identifier+"$"),matchExpr={ID:new RegExp("^#("+identifier+")"),CLASS:new RegExp("^\\.("+identifier+")"),TAG:new RegExp("^("+identifier+"|[*])"),ATTR:new RegExp("^"+attributes),PSEUDO:new RegExp("^"+pseudos),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+whitespace+"*(even|odd|(([+-]|)(\\d*)n|)"+whitespace+"*(?:([+-]|)"+whitespace+"*(\\d+)|))"+whitespace+"*\\)|)","i"),bool:new RegExp("^(?:"+booleans+")$","i"),needsContext:new RegExp("^"+whitespace+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+whitespace+"*((?:-\\d)?\\d*)"+whitespace+"*\\)|)(?=[^-]|$)","i")},rinputs=/^(?:input|select|textarea|button)$/i,rheader=/^h\d$/i,rquickExpr=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,rsibling=/[+~]/,runescape=new RegExp("\\\\[\\da-fA-F]{1,6}"+whitespace+
"?|\\\\([^\\r\\n\\f])","g"),funescape=function(escape,nonHex){var high="0x"+escape.slice(1)-0x10000;if(nonHex){return nonHex;}return high<0?String.fromCharCode(high+0x10000):String.fromCharCode(high>>10|0xD800,high&0x3FF|0xDC00);},unloadHandler=function(){setDocument();},inDisabledFieldset=addCombinator(function(elem){return elem.disabled===true&&nodeName(elem,"fieldset");},{dir:"parentNode",next:"legend"});function safeActiveElement(){try{return document.activeElement;}catch(err){}}try{push.apply((arr=slice.call(preferredDoc.childNodes)),preferredDoc.childNodes);arr[preferredDoc.childNodes.length].nodeType;}catch(e){push={apply:function(target,els){pushNative.apply(target,slice.call(els));},call:function(target){pushNative.apply(target,slice.call(arguments,1));}};}function find(selector,context,results,seed){var m,i,elem,nid,match,groups,newSelector,newContext=context&&context.ownerDocument,nodeType=context?context.nodeType:9;results=results||[];if(typeof selector!=="string"||!selector||
nodeType!==1&&nodeType!==9&&nodeType!==11){return results;}if(!seed){setDocument(context);context=context||document;if(documentIsHTML){if(nodeType!==11&&(match=rquickExpr.exec(selector))){if((m=match[1])){if(nodeType===9){if((elem=context.getElementById(m))){if(elem.id===m){push.call(results,elem);return results;}}else{return results;}}else{if(newContext&&(elem=newContext.getElementById(m))&&find.contains(context,elem)&&elem.id===m){push.call(results,elem);return results;}}}else if(match[2]){push.apply(results,context.getElementsByTagName(selector));return results;}else if((m=match[3])&&context.getElementsByClassName){push.apply(results,context.getElementsByClassName(m));return results;}}if(!nonnativeSelectorCache[selector+" "]&&(!rbuggyQSA||!rbuggyQSA.test(selector))){newSelector=selector;newContext=context;if(nodeType===1&&(rdescend.test(selector)||rleadingCombinator.test(selector))){newContext=rsibling.test(selector)&&testContext(context.parentNode)||context;if(newContext!=context||!support.scope){
if((nid=context.getAttribute("id"))){nid=jQuery.escapeSelector(nid);}else{context.setAttribute("id",(nid=expando));}}groups=tokenize(selector);i=groups.length;while(i--){groups[i]=(nid?"#"+nid:":scope")+" "+toSelector(groups[i]);}newSelector=groups.join(",");}try{push.apply(results,newContext.querySelectorAll(newSelector));return results;}catch(qsaError){nonnativeSelectorCache(selector,true);}finally{if(nid===expando){context.removeAttribute("id");}}}}}return select(selector.replace(rtrimCSS,"$1"),context,results,seed);}function createCache(){var keys=[];function cache(key,value){if(keys.push(key+" ")>Expr.cacheLength){delete cache[keys.shift()];}return(cache[key+" "]=value);}return cache;}function markFunction(fn){fn[expando]=true;return fn;}function assert(fn){var el=document.createElement("fieldset");try{return!!fn(el);}catch(e){return false;}finally{if(el.parentNode){el.parentNode.removeChild(el);}el=null;}}function createInputPseudo(type){return function(elem){return nodeName(elem,"input")&&elem.type===type;
};}function createButtonPseudo(type){return function(elem){return(nodeName(elem,"input")||nodeName(elem,"button"))&&elem.type===type;};}function createDisabledPseudo(disabled){return function(elem){if("form"in elem){if(elem.parentNode&&elem.disabled===false){if("label"in elem){if("label"in elem.parentNode){return elem.parentNode.disabled===disabled;}else{return elem.disabled===disabled;}}return elem.isDisabled===disabled||elem.isDisabled!==!disabled&&inDisabledFieldset(elem)===disabled;}return elem.disabled===disabled;}else if("label"in elem){return elem.disabled===disabled;}return false;};}function createPositionalPseudo(fn){return markFunction(function(argument){argument=+argument;return markFunction(function(seed,matches){var j,matchIndexes=fn([],seed.length,argument),i=matchIndexes.length;while(i--){if(seed[(j=matchIndexes[i])]){seed[j]=!(matches[j]=seed[j]);}}});});}function testContext(context){return context&&typeof context.getElementsByTagName!=="undefined"&&context;}function setDocument(node){
var subWindow,doc=node?node.ownerDocument||node:preferredDoc;if(doc==document||doc.nodeType!==9||!doc.documentElement){return document;}document=doc;documentElement=document.documentElement;documentIsHTML=!jQuery.isXMLDoc(document);matches=documentElement.matches||documentElement.webkitMatchesSelector||documentElement.msMatchesSelector;if(documentElement.msMatchesSelector&&preferredDoc!=document&&(subWindow=document.defaultView)&&subWindow.top!==subWindow){subWindow.addEventListener("unload",unloadHandler);}support.getById=assert(function(el){documentElement.appendChild(el).id=jQuery.expando;return!document.getElementsByName||!document.getElementsByName(jQuery.expando).length;});support.disconnectedMatch=assert(function(el){return matches.call(el,"*");});support.scope=assert(function(){return document.querySelectorAll(":scope");});support.cssHas=assert(function(){try{document.querySelector(":has(*,:jqfake)");return false;}catch(e){return true;}});if(support.getById){Expr.filter.ID=function(id){
var attrId=id.replace(runescape,funescape);return function(elem){return elem.getAttribute("id")===attrId;};};Expr.find.ID=function(id,context){if(typeof context.getElementById!=="undefined"&&documentIsHTML){var elem=context.getElementById(id);return elem?[elem]:[];}};}else{Expr.filter.ID=function(id){var attrId=id.replace(runescape,funescape);return function(elem){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");return node&&node.value===attrId;};};Expr.find.ID=function(id,context){if(typeof context.getElementById!=="undefined"&&documentIsHTML){var node,i,elems,elem=context.getElementById(id);if(elem){node=elem.getAttributeNode("id");if(node&&node.value===id){return[elem];}elems=context.getElementsByName(id);i=0;while((elem=elems[i++])){node=elem.getAttributeNode("id");if(node&&node.value===id){return[elem];}}}return[];}};}Expr.find.TAG=function(tag,context){if(typeof context.getElementsByTagName!=="undefined"){return context.getElementsByTagName(tag);}else{
return context.querySelectorAll(tag);}};Expr.find.CLASS=function(className,context){if(typeof context.getElementsByClassName!=="undefined"&&documentIsHTML){return context.getElementsByClassName(className);}};rbuggyQSA=[];assert(function(el){var input;documentElement.appendChild(el).innerHTML="<a id='"+expando+"' href='' disabled='disabled'></a>"+"<select id='"+expando+"-\r\\' disabled='disabled'>"+"<option selected=''></option></select>";if(!el.querySelectorAll("[selected]").length){rbuggyQSA.push("\\["+whitespace+"*(?:value|"+booleans+")");}if(!el.querySelectorAll("[id~="+expando+"-]").length){rbuggyQSA.push("~=");}if(!el.querySelectorAll("a#"+expando+"+*").length){rbuggyQSA.push(".#.+[+~]");}if(!el.querySelectorAll(":checked").length){rbuggyQSA.push(":checked");}input=document.createElement("input");input.setAttribute("type","hidden");el.appendChild(input).setAttribute("name","D");documentElement.appendChild(el).disabled=true;if(el.querySelectorAll(":disabled").length!==2){rbuggyQSA.push(":enabled",":disabled");
}input=document.createElement("input");input.setAttribute("name","");el.appendChild(input);if(!el.querySelectorAll("[name='']").length){rbuggyQSA.push("\\["+whitespace+"*name"+whitespace+"*="+whitespace+"*(?:''|\"\")");}});if(!support.cssHas){rbuggyQSA.push(":has");}rbuggyQSA=rbuggyQSA.length&&new RegExp(rbuggyQSA.join("|"));sortOrder=function(a,b){if(a===b){hasDuplicate=true;return 0;}var compare=!a.compareDocumentPosition-!b.compareDocumentPosition;if(compare){return compare;}compare=(a.ownerDocument||a)==(b.ownerDocument||b)?a.compareDocumentPosition(b):1;if(compare&1||(!support.sortDetached&&b.compareDocumentPosition(a)===compare)){if(a===document||a.ownerDocument==preferredDoc&&find.contains(preferredDoc,a)){return-1;}if(b===document||b.ownerDocument==preferredDoc&&find.contains(preferredDoc,b)){return 1;}return sortInput?(indexOf.call(sortInput,a)-indexOf.call(sortInput,b)):0;}return compare&4?-1:1;};return document;}find.matches=function(expr,elements){return find(expr,null,null,elements);
};find.matchesSelector=function(elem,expr){setDocument(elem);if(documentIsHTML&&!nonnativeSelectorCache[expr+" "]&&(!rbuggyQSA||!rbuggyQSA.test(expr))){try{var ret=matches.call(elem,expr);if(ret||support.disconnectedMatch||elem.document&&elem.document.nodeType!==11){return ret;}}catch(e){nonnativeSelectorCache(expr,true);}}return find(expr,document,null,[elem]).length>0;};find.contains=function(context,elem){if((context.ownerDocument||context)!=document){setDocument(context);}return jQuery.contains(context,elem);};find.attr=function(elem,name){if((elem.ownerDocument||elem)!=document){setDocument(elem);}var fn=Expr.attrHandle[name.toLowerCase()],val=fn&&hasOwn.call(Expr.attrHandle,name.toLowerCase())?fn(elem,name,!documentIsHTML):undefined;if(val!==undefined){return val;}return elem.getAttribute(name);};find.error=function(msg){throw new Error("Syntax error, unrecognized expression: "+msg);};jQuery.uniqueSort=function(results){var elem,duplicates=[],j=0,i=0;hasDuplicate=!support.sortStable;
sortInput=!support.sortStable&&slice.call(results,0);sort.call(results,sortOrder);if(hasDuplicate){while((elem=results[i++])){if(elem===results[i]){j=duplicates.push(i);}}while(j--){splice.call(results,duplicates[j],1);}}sortInput=null;return results;};jQuery.fn.uniqueSort=function(){return this.pushStack(jQuery.uniqueSort(slice.apply(this)));};Expr=jQuery.expr={cacheLength:50,createPseudo:markFunction,match:matchExpr,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:true}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:true},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(match){match[1]=match[1].replace(runescape,funescape);match[3]=(match[3]||match[4]||match[5]||"").replace(runescape,funescape);if(match[2]==="~="){match[3]=" "+match[3]+" ";}return match.slice(0,4);},CHILD:function(match){match[1]=match[1].toLowerCase();if(match[1].slice(0,3)==="nth"){if(!match[3]){find.error(match[0]);}match[4]=+(match[4]?match[5]+(match[6]||1):2*(match[3]==="even"||match[3]==="odd")
);match[5]=+((match[7]+match[8])||match[3]==="odd");}else if(match[3]){find.error(match[0]);}return match;},PSEUDO:function(match){var excess,unquoted=!match[6]&&match[2];if(matchExpr.CHILD.test(match[0])){return null;}if(match[3]){match[2]=match[4]||match[5]||"";}else if(unquoted&&rpseudo.test(unquoted)&&(excess=tokenize(unquoted,true))&&(excess=unquoted.indexOf(")",unquoted.length-excess)-unquoted.length)){match[0]=match[0].slice(0,excess);match[2]=unquoted.slice(0,excess);}return match.slice(0,3);}},filter:{TAG:function(nodeNameSelector){var expectedNodeName=nodeNameSelector.replace(runescape,funescape).toLowerCase();return nodeNameSelector==="*"?function(){return true;}:function(elem){return nodeName(elem,expectedNodeName);};},CLASS:function(className){var pattern=classCache[className+" "];return pattern||(pattern=new RegExp("(^|"+whitespace+")"+className+"("+whitespace+"|$)"))&&classCache(className,function(elem){return pattern.test(typeof elem.className==="string"&&elem.className||
typeof elem.getAttribute!=="undefined"&&elem.getAttribute("class")||"");});},ATTR:function(name,operator,check){return function(elem){var result=find.attr(elem,name);if(result==null){return operator==="!=";}if(!operator){return true;}result+="";if(operator==="="){return result===check;}if(operator==="!="){return result!==check;}if(operator==="^="){return check&&result.indexOf(check)===0;}if(operator==="*="){return check&&result.indexOf(check)>-1;}if(operator==="$="){return check&&result.slice(-check.length)===check;}if(operator==="~="){return(" "+result.replace(rwhitespace," ")+" ").indexOf(check)>-1;}if(operator==="|="){return result===check||result.slice(0,check.length+1)===check+"-";}return false;};},CHILD:function(type,what,_argument,first,last){var simple=type.slice(0,3)!=="nth",forward=type.slice(-4)!=="last",ofType=what==="of-type";return first===1&&last===0?function(elem){return!!elem.parentNode;}:function(elem,_context,xml){var cache,outerCache,node,nodeIndex,start,dir=simple!==forward?"nextSibling":"previousSibling",
parent=elem.parentNode,name=ofType&&elem.nodeName.toLowerCase(),useCache=!xml&&!ofType,diff=false;if(parent){if(simple){while(dir){node=elem;while((node=node[dir])){if(ofType?nodeName(node,name):node.nodeType===1){return false;}}start=dir=type==="only"&&!start&&"nextSibling";}return true;}start=[forward?parent.firstChild:parent.lastChild];if(forward&&useCache){outerCache=parent[expando]||(parent[expando]={});cache=outerCache[type]||[];nodeIndex=cache[0]===dirruns&&cache[1];diff=nodeIndex&&cache[2];node=nodeIndex&&parent.childNodes[nodeIndex];while((node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop())){if(node.nodeType===1&&++diff&&node===elem){outerCache[type]=[dirruns,nodeIndex,diff];break;}}}else{if(useCache){outerCache=elem[expando]||(elem[expando]={});cache=outerCache[type]||[];nodeIndex=cache[0]===dirruns&&cache[1];diff=nodeIndex;}if(diff===false){while((node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop())){if((ofType?nodeName(node,name):node.nodeType===1)&&++diff){
if(useCache){outerCache=node[expando]||(node[expando]={});outerCache[type]=[dirruns,diff];}if(node===elem){break;}}}}}diff-=last;return diff===first||(diff%first===0&&diff/first>=0);}};},PSEUDO:function(pseudo,argument){var args,fn=Expr.pseudos[pseudo]||Expr.setFilters[pseudo.toLowerCase()]||find.error("unsupported pseudo: "+pseudo);if(fn[expando]){return fn(argument);}if(fn.length>1){args=[pseudo,pseudo,"",argument];return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase())?markFunction(function(seed,matches){var idx,matched=fn(seed,argument),i=matched.length;while(i--){idx=indexOf.call(seed,matched[i]);seed[idx]=!(matches[idx]=matched[i]);}}):function(elem){return fn(elem,0,args);};}return fn;}},pseudos:{not:markFunction(function(selector){var input=[],results=[],matcher=compile(selector.replace(rtrimCSS,"$1"));return matcher[expando]?markFunction(function(seed,matches,_context,xml){var elem,unmatched=matcher(seed,null,xml,[]),i=seed.length;while(i--){if((elem=unmatched[i])){seed[i]=!(matches[i]=elem);
}}}):function(elem,_context,xml){input[0]=elem;matcher(input,null,xml,results);input[0]=null;return!results.pop();};}),has:markFunction(function(selector){return function(elem){return find(selector,elem).length>0;};}),contains:markFunction(function(text){text=text.replace(runescape,funescape);return function(elem){return(elem.textContent||jQuery.text(elem)).indexOf(text)>-1;};}),lang:markFunction(function(lang){if(!ridentifier.test(lang||"")){find.error("unsupported lang: "+lang);}lang=lang.replace(runescape,funescape).toLowerCase();return function(elem){var elemLang;do{if((elemLang=documentIsHTML?elem.lang:elem.getAttribute("xml:lang")||elem.getAttribute("lang"))){elemLang=elemLang.toLowerCase();return elemLang===lang||elemLang.indexOf(lang+"-")===0;}}while((elem=elem.parentNode)&&elem.nodeType===1);return false;};}),target:function(elem){var hash=window.location&&window.location.hash;return hash&&hash.slice(1)===elem.id;},root:function(elem){return elem===documentElement;},focus:function(elem){
return elem===safeActiveElement()&&document.hasFocus()&&!!(elem.type||elem.href||~elem.tabIndex);},enabled:createDisabledPseudo(false),disabled:createDisabledPseudo(true),checked:function(elem){return(nodeName(elem,"input")&&!!elem.checked)||(nodeName(elem,"option")&&!!elem.selected);},selected:function(elem){if(elem.parentNode){elem.parentNode.selectedIndex;}return elem.selected===true;},empty:function(elem){for(elem=elem.firstChild;elem;elem=elem.nextSibling){if(elem.nodeType<6){return false;}}return true;},parent:function(elem){return!Expr.pseudos.empty(elem);},header:function(elem){return rheader.test(elem.nodeName);},input:function(elem){return rinputs.test(elem.nodeName);},button:function(elem){return nodeName(elem,"input")&&elem.type==="button"||nodeName(elem,"button");},text:function(elem){var attr;return nodeName(elem,"input")&&elem.type==="text"&&((attr=elem.getAttribute("type"))==null||attr.toLowerCase()==="text");},first:createPositionalPseudo(function(){return[0];}),last:createPositionalPseudo(function(_matchIndexes,length){
return[length-1];}),eq:createPositionalPseudo(function(_matchIndexes,length,argument){return[argument<0?argument+length:argument];}),even:createPositionalPseudo(function(matchIndexes,length){var i=0;for(;i<length;i+=2){matchIndexes.push(i);}return matchIndexes;}),odd:createPositionalPseudo(function(matchIndexes,length){var i=1;for(;i<length;i+=2){matchIndexes.push(i);}return matchIndexes;}),lt:createPositionalPseudo(function(matchIndexes,length,argument){var i;if(argument<0){i=argument+length;}else if(argument>length){i=length;}else{i=argument;}for(;--i>=0;){matchIndexes.push(i);}return matchIndexes;}),gt:createPositionalPseudo(function(matchIndexes,length,argument){var i=argument<0?argument+length:argument;for(;++i<length;){matchIndexes.push(i);}return matchIndexes;})}};Expr.pseudos.nth=Expr.pseudos.eq;for(i in{radio:true,checkbox:true,file:true,password:true,image:true}){Expr.pseudos[i]=createInputPseudo(i);}for(i in{submit:true,reset:true}){Expr.pseudos[i]=createButtonPseudo(i);}
function setFilters(){}setFilters.prototype=Expr.filters=Expr.pseudos;Expr.setFilters=new setFilters();function tokenize(selector,parseOnly){var matched,match,tokens,type,soFar,groups,preFilters,cached=tokenCache[selector+" "];if(cached){return parseOnly?0:cached.slice(0);}soFar=selector;groups=[];preFilters=Expr.preFilter;while(soFar){if(!matched||(match=rcomma.exec(soFar))){if(match){soFar=soFar.slice(match[0].length)||soFar;}groups.push((tokens=[]));}matched=false;if((match=rleadingCombinator.exec(soFar))){matched=match.shift();tokens.push({value:matched,type:match[0].replace(rtrimCSS," ")});soFar=soFar.slice(matched.length);}for(type in Expr.filter){if((match=matchExpr[type].exec(soFar))&&(!preFilters[type]||(match=preFilters[type](match)))){matched=match.shift();tokens.push({value:matched,type:type,matches:match});soFar=soFar.slice(matched.length);}}if(!matched){break;}}if(parseOnly){return soFar.length;}return soFar?find.error(selector):tokenCache(selector,groups).slice(0);}
function toSelector(tokens){var i=0,len=tokens.length,selector="";for(;i<len;i++){selector+=tokens[i].value;}return selector;}function addCombinator(matcher,combinator,base){var dir=combinator.dir,skip=combinator.next,key=skip||dir,checkNonElements=base&&key==="parentNode",doneName=done++;return combinator.first?function(elem,context,xml){while((elem=elem[dir])){if(elem.nodeType===1||checkNonElements){return matcher(elem,context,xml);}}return false;}:function(elem,context,xml){var oldCache,outerCache,newCache=[dirruns,doneName];if(xml){while((elem=elem[dir])){if(elem.nodeType===1||checkNonElements){if(matcher(elem,context,xml)){return true;}}}}else{while((elem=elem[dir])){if(elem.nodeType===1||checkNonElements){outerCache=elem[expando]||(elem[expando]={});if(skip&&nodeName(elem,skip)){elem=elem[dir]||elem;}else if((oldCache=outerCache[key])&&oldCache[0]===dirruns&&oldCache[1]===doneName){return(newCache[2]=oldCache[2]);}else{outerCache[key]=newCache;if((newCache[2]=matcher(elem,context,xml))){
return true;}}}}}return false;};}function elementMatcher(matchers){return matchers.length>1?function(elem,context,xml){var i=matchers.length;while(i--){if(!matchers[i](elem,context,xml)){return false;}}return true;}:matchers[0];}function multipleContexts(selector,contexts,results){var i=0,len=contexts.length;for(;i<len;i++){find(selector,contexts[i],results);}return results;}function condense(unmatched,map,filter,context,xml){var elem,newUnmatched=[],i=0,len=unmatched.length,mapped=map!=null;for(;i<len;i++){if((elem=unmatched[i])){if(!filter||filter(elem,context,xml)){newUnmatched.push(elem);if(mapped){map.push(i);}}}}return newUnmatched;}function setMatcher(preFilter,selector,matcher,postFilter,postFinder,postSelector){if(postFilter&&!postFilter[expando]){postFilter=setMatcher(postFilter);}if(postFinder&&!postFinder[expando]){postFinder=setMatcher(postFinder,postSelector);}return markFunction(function(seed,results,context,xml){var temp,i,elem,matcherOut,preMap=[],postMap=[],
preexisting=results.length,elems=seed||multipleContexts(selector||"*",context.nodeType?[context]:context,[]),matcherIn=preFilter&&(seed||!selector)?condense(elems,preMap,preFilter,context,xml):elems;if(matcher){matcherOut=postFinder||(seed?preFilter:preexisting||postFilter)?[]:results;matcher(matcherIn,matcherOut,context,xml);}else{matcherOut=matcherIn;}if(postFilter){temp=condense(matcherOut,postMap);postFilter(temp,[],context,xml);i=temp.length;while(i--){if((elem=temp[i])){matcherOut[postMap[i]]=!(matcherIn[postMap[i]]=elem);}}}if(seed){if(postFinder||preFilter){if(postFinder){temp=[];i=matcherOut.length;while(i--){if((elem=matcherOut[i])){temp.push((matcherIn[i]=elem));}}postFinder(null,(matcherOut=[]),temp,xml);}i=matcherOut.length;while(i--){if((elem=matcherOut[i])&&(temp=postFinder?indexOf.call(seed,elem):preMap[i])>-1){seed[temp]=!(results[temp]=elem);}}}}else{matcherOut=condense(matcherOut===results?matcherOut.splice(preexisting,matcherOut.length):matcherOut);if(postFinder){
postFinder(null,results,matcherOut,xml);}else{push.apply(results,matcherOut);}}});}function matcherFromTokens(tokens){var checkContext,matcher,j,len=tokens.length,leadingRelative=Expr.relative[tokens[0].type],implicitRelative=leadingRelative||Expr.relative[" "],i=leadingRelative?1:0,matchContext=addCombinator(function(elem){return elem===checkContext;},implicitRelative,true),matchAnyContext=addCombinator(function(elem){return indexOf.call(checkContext,elem)>-1;},implicitRelative,true),matchers=[function(elem,context,xml){var ret=(!leadingRelative&&(xml||context!=outermostContext))||((checkContext=context).nodeType?matchContext(elem,context,xml):matchAnyContext(elem,context,xml));checkContext=null;return ret;}];for(;i<len;i++){if((matcher=Expr.relative[tokens[i].type])){matchers=[addCombinator(elementMatcher(matchers),matcher)];}else{matcher=Expr.filter[tokens[i].type].apply(null,tokens[i].matches);if(matcher[expando]){j=++i;for(;j<len;j++){if(Expr.relative[tokens[j].type]){break;}}
return setMatcher(i>1&&elementMatcher(matchers),i>1&&toSelector(tokens.slice(0,i-1).concat({value:tokens[i-2].type===" "?"*":""})).replace(rtrimCSS,"$1"),matcher,i<j&&matcherFromTokens(tokens.slice(i,j)),j<len&&matcherFromTokens((tokens=tokens.slice(j))),j<len&&toSelector(tokens));}matchers.push(matcher);}}return elementMatcher(matchers);}function matcherFromGroupMatchers(elementMatchers,setMatchers){var bySet=setMatchers.length>0,byElement=elementMatchers.length>0,superMatcher=function(seed,context,xml,results,outermost){var elem,j,matcher,matchedCount=0,i="0",unmatched=seed&&[],setMatched=[],contextBackup=outermostContext,elems=seed||byElement&&Expr.find.TAG("*",outermost),dirrunsUnique=(dirruns+=contextBackup==null?1:Math.random()||0.1),len=elems.length;if(outermost){outermostContext=context==document||context||outermost;}for(;i!==len&&(elem=elems[i])!=null;i++){if(byElement&&elem){j=0;if(!context&&elem.ownerDocument!=document){setDocument(elem);xml=!documentIsHTML;}while((matcher=elementMatchers[j++])){
if(matcher(elem,context||document,xml)){push.call(results,elem);break;}}if(outermost){dirruns=dirrunsUnique;}}if(bySet){if((elem=!matcher&&elem)){matchedCount--;}if(seed){unmatched.push(elem);}}}matchedCount+=i;if(bySet&&i!==matchedCount){j=0;while((matcher=setMatchers[j++])){matcher(unmatched,setMatched,context,xml);}if(seed){if(matchedCount>0){while(i--){if(!(unmatched[i]||setMatched[i])){setMatched[i]=pop.call(results);}}}setMatched=condense(setMatched);}push.apply(results,setMatched);if(outermost&&!seed&&setMatched.length>0&&(matchedCount+setMatchers.length)>1){jQuery.uniqueSort(results);}}if(outermost){dirruns=dirrunsUnique;outermostContext=contextBackup;}return unmatched;};return bySet?markFunction(superMatcher):superMatcher;}function compile(selector,match){var i,setMatchers=[],elementMatchers=[],cached=compilerCache[selector+" "];if(!cached){if(!match){match=tokenize(selector);}i=match.length;while(i--){cached=matcherFromTokens(match[i]);if(cached[expando]){setMatchers.push(cached);
}else{elementMatchers.push(cached);}}cached=compilerCache(selector,matcherFromGroupMatchers(elementMatchers,setMatchers));cached.selector=selector;}return cached;}function select(selector,context,results,seed){var i,tokens,token,type,find,compiled=typeof selector==="function"&&selector,match=!seed&&tokenize((selector=compiled.selector||selector));results=results||[];if(match.length===1){tokens=match[0]=match[0].slice(0);if(tokens.length>2&&(token=tokens[0]).type==="ID"&&context.nodeType===9&&documentIsHTML&&Expr.relative[tokens[1].type]){context=(Expr.find.ID(token.matches[0].replace(runescape,funescape),context)||[])[0];if(!context){return results;}else if(compiled){context=context.parentNode;}selector=selector.slice(tokens.shift().value.length);}i=matchExpr.needsContext.test(selector)?0:tokens.length;while(i--){token=tokens[i];if(Expr.relative[(type=token.type)]){break;}if((find=Expr.find[type])){if((seed=find(token.matches[0].replace(runescape,funescape),rsibling.test(tokens[0].type)&&
testContext(context.parentNode)||context))){tokens.splice(i,1);selector=seed.length&&toSelector(tokens);if(!selector){push.apply(results,seed);return results;}break;}}}}(compiled||compile(selector,match))(seed,context,!documentIsHTML,results,!context||rsibling.test(selector)&&testContext(context.parentNode)||context);return results;}support.sortStable=expando.split("").sort(sortOrder).join("")===expando;setDocument();support.sortDetached=assert(function(el){return el.compareDocumentPosition(document.createElement("fieldset"))&1;});jQuery.find=find;jQuery.expr[":"]=jQuery.expr.pseudos;jQuery.unique=jQuery.uniqueSort;find.compile=compile;find.select=select;find.setDocument=setDocument;find.tokenize=tokenize;find.escape=jQuery.escapeSelector;find.getText=jQuery.text;find.isXML=jQuery.isXMLDoc;find.selectors=jQuery.expr;find.support=jQuery.support;find.uniqueSort=jQuery.uniqueSort;})();var dir=function(elem,dir,until){var matched=[],truncate=until!==undefined;while((elem=elem[dir])&&elem.nodeType!==9){
if(elem.nodeType===1){if(truncate&&jQuery(elem).is(until)){break;}matched.push(elem);}}return matched;};var siblings=function(n,elem){var matched=[];for(;n;n=n.nextSibling){if(n.nodeType===1&&n!==elem){matched.push(n);}}return matched;};var rneedsContext=jQuery.expr.match.needsContext;var rsingleTag=(/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i);function winnow(elements,qualifier,not){if(isFunction(qualifier)){return jQuery.grep(elements,function(elem,i){return!!qualifier.call(elem,i,elem)!==not;});}if(qualifier.nodeType){return jQuery.grep(elements,function(elem){return(elem===qualifier)!==not;});}if(typeof qualifier!=="string"){return jQuery.grep(elements,function(elem){return(indexOf.call(qualifier,elem)>-1)!==not;});}return jQuery.filter(qualifier,elements,not);}jQuery.filter=function(expr,elems,not){var elem=elems[0];if(not){expr=":not("+expr+")";}if(elems.length===1&&elem.nodeType===1){return jQuery.find.matchesSelector(elem,expr)?[elem]:[];}return jQuery.find.matches(expr,jQuery.grep(elems,function(elem){
return elem.nodeType===1;}));};jQuery.fn.extend({find:function(selector){var i,ret,len=this.length,self=this;if(typeof selector!=="string"){return this.pushStack(jQuery(selector).filter(function(){for(i=0;i<len;i++){if(jQuery.contains(self[i],this)){return true;}}}));}ret=this.pushStack([]);for(i=0;i<len;i++){jQuery.find(selector,self[i],ret);}return len>1?jQuery.uniqueSort(ret):ret;},filter:function(selector){return this.pushStack(winnow(this,selector||[],false));},not:function(selector){return this.pushStack(winnow(this,selector||[],true));},is:function(selector){return!!winnow(this,typeof selector==="string"&&rneedsContext.test(selector)?jQuery(selector):selector||[],false).length;}});var rootjQuery,rquickExpr=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,init=jQuery.fn.init=function(selector,context,root){var match,elem;if(!selector){return this;}root=root||rootjQuery;if(typeof selector==="string"){if(selector[0]==="<"&&selector[selector.length-1]===">"&&selector.length>=3){match=[null,selector,null];
}else{match=rquickExpr.exec(selector);}if(match&&(match[1]||!context)){if(match[1]){context=context instanceof jQuery?context[0]:context;jQuery.merge(this,jQuery.parseHTML(match[1],context&&context.nodeType?context.ownerDocument||context:document,true));if(rsingleTag.test(match[1])&&jQuery.isPlainObject(context)){for(match in context){if(isFunction(this[match])){this[match](context[match]);}else{this.attr(match,context[match]);}}}return this;}else{elem=document.getElementById(match[2]);if(elem){this[0]=elem;this.length=1;}return this;}}else if(!context||context.jquery){return(context||root).find(selector);}else{return this.constructor(context).find(selector);}}else if(selector.nodeType){this[0]=selector;this.length=1;return this;}else if(isFunction(selector)){return root.ready!==undefined?root.ready(selector):selector(jQuery);}return jQuery.makeArray(selector,this);};init.prototype=jQuery.fn;rootjQuery=jQuery(document);var rparentsprev=/^(?:parents|prev(?:Until|All))/,guaranteedUnique={
children:true,contents:true,next:true,prev:true};jQuery.fn.extend({has:function(target){var targets=jQuery(target,this),l=targets.length;return this.filter(function(){var i=0;for(;i<l;i++){if(jQuery.contains(this,targets[i])){return true;}}});},closest:function(selectors,context){var cur,i=0,l=this.length,matched=[],targets=typeof selectors!=="string"&&jQuery(selectors);if(!rneedsContext.test(selectors)){for(;i<l;i++){for(cur=this[i];cur&&cur!==context;cur=cur.parentNode){if(cur.nodeType<11&&(targets?targets.index(cur)>-1:cur.nodeType===1&&jQuery.find.matchesSelector(cur,selectors))){matched.push(cur);break;}}}}return this.pushStack(matched.length>1?jQuery.uniqueSort(matched):matched);},index:function(elem){if(!elem){return(this[0]&&this[0].parentNode)?this.first().prevAll().length:-1;}if(typeof elem==="string"){return indexOf.call(jQuery(elem),this[0]);}return indexOf.call(this,elem.jquery?elem[0]:elem);},add:function(selector,context){return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(),jQuery(selector,context))
));},addBack:function(selector){return this.add(selector==null?this.prevObject:this.prevObject.filter(selector));}});function sibling(cur,dir){while((cur=cur[dir])&&cur.nodeType!==1){}return cur;}jQuery.each({parent:function(elem){var parent=elem.parentNode;return parent&&parent.nodeType!==11?parent:null;},parents:function(elem){return dir(elem,"parentNode");},parentsUntil:function(elem,_i,until){return dir(elem,"parentNode",until);},next:function(elem){return sibling(elem,"nextSibling");},prev:function(elem){return sibling(elem,"previousSibling");},nextAll:function(elem){return dir(elem,"nextSibling");},prevAll:function(elem){return dir(elem,"previousSibling");},nextUntil:function(elem,_i,until){return dir(elem,"nextSibling",until);},prevUntil:function(elem,_i,until){return dir(elem,"previousSibling",until);},siblings:function(elem){return siblings((elem.parentNode||{}).firstChild,elem);},children:function(elem){return siblings(elem.firstChild);},contents:function(elem){if(elem.contentDocument!=null&&
getProto(elem.contentDocument)){return elem.contentDocument;}if(nodeName(elem,"template")){elem=elem.content||elem;}return jQuery.merge([],elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(until,selector){var matched=jQuery.map(this,fn,until);if(name.slice(-5)!=="Until"){selector=until;}if(selector&&typeof selector==="string"){matched=jQuery.filter(selector,matched);}if(this.length>1){if(!guaranteedUnique[name]){jQuery.uniqueSort(matched);}if(rparentsprev.test(name)){matched.reverse();}}return this.pushStack(matched);};});var rnothtmlwhite=(/[^\x20\t\r\n\f]+/g);function createOptions(options){var object={};jQuery.each(options.match(rnothtmlwhite)||[],function(_,flag){object[flag]=true;});return object;}jQuery.Callbacks=function(options){options=typeof options==="string"?createOptions(options):jQuery.extend({},options);var firing,memory,fired,locked,list=[],queue=[],firingIndex=-1,fire=function(){locked=locked||options.once;fired=firing=true;for(;queue.length;firingIndex=-1){
memory=queue.shift();while(++firingIndex<list.length){if(list[firingIndex].apply(memory[0],memory[1])===false&&options.stopOnFalse){firingIndex=list.length;memory=false;}}}if(!options.memory){memory=false;}firing=false;if(locked){if(memory){list=[];}else{list="";}}},self={add:function(){if(list){if(memory&&!firing){firingIndex=list.length-1;queue.push(memory);}(function add(args){jQuery.each(args,function(_,arg){if(isFunction(arg)){if(!options.unique||!self.has(arg)){list.push(arg);}}else if(arg&&arg.length&&toType(arg)!=="string"){add(arg);}});})(arguments);if(memory&&!firing){fire();}}return this;},remove:function(){jQuery.each(arguments,function(_,arg){var index;while((index=jQuery.inArray(arg,list,index))>-1){list.splice(index,1);if(index<=firingIndex){firingIndex--;}}});return this;},has:function(fn){return fn?jQuery.inArray(fn,list)>-1:list.length>0;},empty:function(){if(list){list=[];}return this;},disable:function(){locked=queue=[];list=memory="";return this;},disabled:function(){
return!list;},lock:function(){locked=queue=[];if(!memory&&!firing){list=memory="";}return this;},locked:function(){return!!locked;},fireWith:function(context,args){if(!locked){args=args||[];args=[context,args.slice?args.slice():args];queue.push(args);if(!firing){fire();}}return this;},fire:function(){self.fireWith(this,arguments);return this;},fired:function(){return!!fired;}};return self;};function Identity(v){return v;}function Thrower(ex){throw ex;}function adoptValue(value,resolve,reject,noValue){var method;try{if(value&&isFunction((method=value.promise))){method.call(value).done(resolve).fail(reject);}else if(value&&isFunction((method=value.then))){method.call(value,resolve,reject);}else{resolve.apply(undefined,[value].slice(noValue));}}catch(value){reject.apply(undefined,[value]);}}jQuery.extend({Deferred:function(func){var tuples=[["notify","progress",jQuery.Callbacks("memory"),jQuery.Callbacks("memory"),2],["resolve","done",jQuery.Callbacks("once memory"),jQuery.Callbacks("once memory"),0,"resolved"],
["reject","fail",jQuery.Callbacks("once memory"),jQuery.Callbacks("once memory"),1,"rejected"]],state="pending",promise={state:function(){return state;},always:function(){deferred.done(arguments).fail(arguments);return this;},"catch":function(fn){return promise.then(null,fn);},pipe:function(){var fns=arguments;return jQuery.Deferred(function(newDefer){jQuery.each(tuples,function(_i,tuple){var fn=isFunction(fns[tuple[4]])&&fns[tuple[4]];deferred[tuple[1]](function(){var returned=fn&&fn.apply(this,arguments);if(returned&&isFunction(returned.promise)){returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);}else{newDefer[tuple[0]+"With"](this,fn?[returned]:arguments);}});});fns=null;}).promise();},then:function(onFulfilled,onRejected,onProgress){var maxDepth=0;function resolve(depth,deferred,handler,special){return function(){var that=this,args=arguments,mightThrow=function(){var returned,then;if(depth<maxDepth){return;}returned=handler.apply(that,args);
if(returned===deferred.promise()){throw new TypeError("Thenable self-resolution");}then=returned&&(typeof returned==="object"||typeof returned==="function")&&returned.then;if(isFunction(then)){if(special){then.call(returned,resolve(maxDepth,deferred,Identity,special),resolve(maxDepth,deferred,Thrower,special));}else{maxDepth++;then.call(returned,resolve(maxDepth,deferred,Identity,special),resolve(maxDepth,deferred,Thrower,special),resolve(maxDepth,deferred,Identity,deferred.notifyWith));}}else{if(handler!==Identity){that=undefined;args=[returned];}(special||deferred.resolveWith)(that,args);}},process=special?mightThrow:function(){try{mightThrow();}catch(e){if(jQuery.Deferred.exceptionHook){jQuery.Deferred.exceptionHook(e,process.error);}if(depth+1>=maxDepth){if(handler!==Thrower){that=undefined;args=[e];}deferred.rejectWith(that,args);}}};if(depth){process();}else{if(jQuery.Deferred.getErrorHook){process.error=jQuery.Deferred.getErrorHook();}else if(jQuery.Deferred.getStackHook){
process.error=jQuery.Deferred.getStackHook();}window.setTimeout(process);}};}return jQuery.Deferred(function(newDefer){tuples[0][3].add(resolve(0,newDefer,isFunction(onProgress)?onProgress:Identity,newDefer.notifyWith));tuples[1][3].add(resolve(0,newDefer,isFunction(onFulfilled)?onFulfilled:Identity));tuples[2][3].add(resolve(0,newDefer,isFunction(onRejected)?onRejected:Thrower));}).promise();},promise:function(obj){return obj!=null?jQuery.extend(obj,promise):promise;}},deferred={};jQuery.each(tuples,function(i,tuple){var list=tuple[2],stateString=tuple[5];promise[tuple[1]]=list.add;if(stateString){list.add(function(){state=stateString;},tuples[3-i][2].disable,tuples[3-i][3].disable,tuples[0][2].lock,tuples[0][3].lock);}list.add(tuple[3].fire);deferred[tuple[0]]=function(){deferred[tuple[0]+"With"](this===deferred?undefined:this,arguments);return this;};deferred[tuple[0]+"With"]=list.fireWith;});promise.promise(deferred);if(func){func.call(deferred,deferred);}return deferred;},when:function(singleValue){
var remaining=arguments.length,i=remaining,resolveContexts=Array(i),resolveValues=slice.call(arguments),primary=jQuery.Deferred(),updateFunc=function(i){return function(value){resolveContexts[i]=this;resolveValues[i]=arguments.length>1?slice.call(arguments):value;if(!(--remaining)){primary.resolveWith(resolveContexts,resolveValues);}};};if(remaining<=1){adoptValue(singleValue,primary.done(updateFunc(i)).resolve,primary.reject,!remaining);if(primary.state()==="pending"||isFunction(resolveValues[i]&&resolveValues[i].then)){return primary.then();}}while(i--){adoptValue(resolveValues[i],updateFunc(i),primary.reject);}return primary.promise();}});var rerrorNames=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;jQuery.Deferred.exceptionHook=function(error,asyncError){if(window.console&&window.console.warn&&error&&rerrorNames.test(error.name)){window.console.warn("jQuery.Deferred exception: "+error.message,error.stack,asyncError);}};jQuery.readyException=function(error){window.setTimeout(function(){
throw error;});};var readyList=jQuery.Deferred();jQuery.fn.ready=function(fn){readyList.then(fn).catch(function(error){jQuery.readyException(error);});return this;};jQuery.extend({isReady:false,readyWait:1,ready:function(wait){if(wait===true?--jQuery.readyWait:jQuery.isReady){return;}jQuery.isReady=true;if(wait!==true&&--jQuery.readyWait>0){return;}readyList.resolveWith(document,[jQuery]);}});jQuery.ready.then=readyList.then;function completed(){document.removeEventListener("DOMContentLoaded",completed);window.removeEventListener("load",completed);jQuery.ready();}if(document.readyState==="complete"||(document.readyState!=="loading"&&!document.documentElement.doScroll)){window.setTimeout(jQuery.ready);}else{document.addEventListener("DOMContentLoaded",completed);window.addEventListener("load",completed);}var access=function(elems,fn,key,value,chainable,emptyGet,raw){var i=0,len=elems.length,bulk=key==null;if(toType(key)==="object"){chainable=true;for(i in key){access(elems,fn,i,key[i],true,emptyGet,raw);
}}else if(value!==undefined){chainable=true;if(!isFunction(value)){raw=true;}if(bulk){if(raw){fn.call(elems,value);fn=null;}else{bulk=fn;fn=function(elem,_key,value){return bulk.call(jQuery(elem),value);};}}if(fn){for(;i<len;i++){fn(elems[i],key,raw?value:value.call(elems[i],i,fn(elems[i],key)));}}}if(chainable){return elems;}if(bulk){return fn.call(elems);}return len?fn(elems[0],key):emptyGet;};var rmsPrefix=/^-ms-/,rdashAlpha=/-([a-z])/g;function fcamelCase(_all,letter){return letter.toUpperCase();}function camelCase(string){return string.replace(rmsPrefix,"ms-").replace(rdashAlpha,fcamelCase);}var acceptData=function(owner){return owner.nodeType===1||owner.nodeType===9||!(+owner.nodeType);};function Data(){this.expando=jQuery.expando+Data.uid++;}Data.uid=1;Data.prototype={cache:function(owner){var value=owner[this.expando];if(!value){value={};if(acceptData(owner)){if(owner.nodeType){owner[this.expando]=value;}else{Object.defineProperty(owner,this.expando,{value:value,configurable:true
});}}}return value;},set:function(owner,data,value){var prop,cache=this.cache(owner);if(typeof data==="string"){cache[camelCase(data)]=value;}else{for(prop in data){cache[camelCase(prop)]=data[prop];}}return cache;},get:function(owner,key){return key===undefined?this.cache(owner):owner[this.expando]&&owner[this.expando][camelCase(key)];},access:function(owner,key,value){if(key===undefined||((key&&typeof key==="string")&&value===undefined)){return this.get(owner,key);}this.set(owner,key,value);return value!==undefined?value:key;},remove:function(owner,key){var i,cache=owner[this.expando];if(cache===undefined){return;}if(key!==undefined){if(Array.isArray(key)){key=key.map(camelCase);}else{key=camelCase(key);key=key in cache?[key]:(key.match(rnothtmlwhite)||[]);}i=key.length;while(i--){delete cache[key[i]];}}if(key===undefined||jQuery.isEmptyObject(cache)){if(owner.nodeType){owner[this.expando]=undefined;}else{delete owner[this.expando];}}},hasData:function(owner){var cache=owner[this.expando];
return cache!==undefined&&!jQuery.isEmptyObject(cache);}};var dataPriv=new Data();var dataUser=new Data();var rbrace=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,rmultiDash=/[A-Z]/g;function getData(data){if(data==="true"){return true;}if(data==="false"){return false;}if(data==="null"){return null;}if(data===+data+""){return+data;}if(rbrace.test(data)){return JSON.parse(data);}return data;}function dataAttr(elem,key,data){var name;if(data===undefined&&elem.nodeType===1){name="data-"+key.replace(rmultiDash,"-$&").toLowerCase();data=elem.getAttribute(name);if(typeof data==="string"){try{data=getData(data);}catch(e){}dataUser.set(elem,key,data);}else{data=undefined;}}return data;}jQuery.extend({hasData:function(elem){return dataUser.hasData(elem)||dataPriv.hasData(elem);},data:function(elem,name,data){return dataUser.access(elem,name,data);},removeData:function(elem,name){dataUser.remove(elem,name);},_data:function(elem,name,data){return dataPriv.access(elem,name,data);},_removeData:function(elem,name){
dataPriv.remove(elem,name);}});jQuery.fn.extend({data:function(key,value){var i,name,data,elem=this[0],attrs=elem&&elem.attributes;if(key===undefined){if(this.length){data=dataUser.get(elem);if(elem.nodeType===1&&!dataPriv.get(elem,"hasDataAttrs")){i=attrs.length;while(i--){if(attrs[i]){name=attrs[i].name;if(name.indexOf("data-")===0){name=camelCase(name.slice(5));dataAttr(elem,name,data[name]);}}}dataPriv.set(elem,"hasDataAttrs",true);}}return data;}if(typeof key==="object"){return this.each(function(){dataUser.set(this,key);});}return access(this,function(value){var data;if(elem&&value===undefined){data=dataUser.get(elem,key);if(data!==undefined){return data;}data=dataAttr(elem,key);if(data!==undefined){return data;}return;}this.each(function(){dataUser.set(this,key,value);});},null,value,arguments.length>1,null,true);},removeData:function(key){return this.each(function(){dataUser.remove(this,key);});}});jQuery.extend({queue:function(elem,type,data){var queue;if(elem){type=(type||"fx")+"queue";
queue=dataPriv.get(elem,type);if(data){if(!queue||Array.isArray(data)){queue=dataPriv.access(elem,type,jQuery.makeArray(data));}else{queue.push(data);}}return queue||[];}},dequeue:function(elem,type){type=type||"fx";var queue=jQuery.queue(elem,type),startLength=queue.length,fn=queue.shift(),hooks=jQuery._queueHooks(elem,type),next=function(){jQuery.dequeue(elem,type);};if(fn==="inprogress"){fn=queue.shift();startLength--;}if(fn){if(type==="fx"){queue.unshift("inprogress");}delete hooks.stop;fn.call(elem,next,hooks);}if(!startLength&&hooks){hooks.empty.fire();}},_queueHooks:function(elem,type){var key=type+"queueHooks";return dataPriv.get(elem,key)||dataPriv.access(elem,key,{empty:jQuery.Callbacks("once memory").add(function(){dataPriv.remove(elem,[type+"queue",key]);})});}});jQuery.fn.extend({queue:function(type,data){var setter=2;if(typeof type!=="string"){data=type;type="fx";setter--;}if(arguments.length<setter){return jQuery.queue(this[0],type);}return data===undefined?this:this.each(function(){
var queue=jQuery.queue(this,type,data);jQuery._queueHooks(this,type);if(type==="fx"&&queue[0]!=="inprogress"){jQuery.dequeue(this,type);}});},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type);});},clearQueue:function(type){return this.queue(type||"fx",[]);},promise:function(type,obj){var tmp,count=1,defer=jQuery.Deferred(),elements=this,i=this.length,resolve=function(){if(!(--count)){defer.resolveWith(elements,[elements]);}};if(typeof type!=="string"){obj=type;type=undefined;}type=type||"fx";while(i--){tmp=dataPriv.get(elements[i],type+"queueHooks");if(tmp&&tmp.empty){count++;tmp.empty.add(resolve);}}resolve();return defer.promise(obj);}});var pnum=(/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source;var rcssNum=new RegExp("^(?:([+-])=|)("+pnum+")([a-z%]*)$","i");var cssExpand=["Top","Right","Bottom","Left"];var documentElement=document.documentElement;var isAttached=function(elem){return jQuery.contains(elem.ownerDocument,elem);},composed={composed:true};if(documentElement.getRootNode){
isAttached=function(elem){return jQuery.contains(elem.ownerDocument,elem)||elem.getRootNode(composed)===elem.ownerDocument;};}var isHiddenWithinTree=function(elem,el){elem=el||elem;return elem.style.display==="none"||elem.style.display===""&&isAttached(elem)&&jQuery.css(elem,"display")==="none";};function adjustCSS(elem,prop,valueParts,tween){var adjusted,scale,maxIterations=20,currentValue=tween?function(){return tween.cur();}:function(){return jQuery.css(elem,prop,"");},initial=currentValue(),unit=valueParts&&valueParts[3]||(jQuery.cssNumber[prop]?"":"px"),initialInUnit=elem.nodeType&&(jQuery.cssNumber[prop]||unit!=="px"&&+initial)&&rcssNum.exec(jQuery.css(elem,prop));if(initialInUnit&&initialInUnit[3]!==unit){initial=initial/2;unit=unit||initialInUnit[3];initialInUnit=+initial||1;while(maxIterations--){jQuery.style(elem,prop,initialInUnit+unit);if((1-scale)*(1-(scale=currentValue()/initial||0.5))<=0){maxIterations=0;}initialInUnit=initialInUnit/scale;}initialInUnit=initialInUnit*2;
jQuery.style(elem,prop,initialInUnit+unit);valueParts=valueParts||[];}if(valueParts){initialInUnit=+initialInUnit||+initial||0;adjusted=valueParts[1]?initialInUnit+(valueParts[1]+1)*valueParts[2]:+valueParts[2];if(tween){tween.unit=unit;tween.start=initialInUnit;tween.end=adjusted;}}return adjusted;}var defaultDisplayMap={};function getDefaultDisplay(elem){var temp,doc=elem.ownerDocument,nodeName=elem.nodeName,display=defaultDisplayMap[nodeName];if(display){return display;}temp=doc.body.appendChild(doc.createElement(nodeName));display=jQuery.css(temp,"display");temp.parentNode.removeChild(temp);if(display==="none"){display="block";}defaultDisplayMap[nodeName]=display;return display;}function showHide(elements,show){var display,elem,values=[],index=0,length=elements.length;for(;index<length;index++){elem=elements[index];if(!elem.style){continue;}display=elem.style.display;if(show){if(display==="none"){values[index]=dataPriv.get(elem,"display")||null;if(!values[index]){elem.style.display="";
}}if(elem.style.display===""&&isHiddenWithinTree(elem)){values[index]=getDefaultDisplay(elem);}}else{if(display!=="none"){values[index]="none";dataPriv.set(elem,"display",display);}}}for(index=0;index<length;index++){if(values[index]!=null){elements[index].style.display=values[index];}}return elements;}jQuery.fn.extend({show:function(){return showHide(this,true);},hide:function(){return showHide(this);},toggle:function(state){if(typeof state==="boolean"){return state?this.show():this.hide();}return this.each(function(){if(isHiddenWithinTree(this)){jQuery(this).show();}else{jQuery(this).hide();}});}});var rcheckableType=(/^(?:checkbox|radio)$/i);var rtagName=(/<([a-z][^\/\0>\x20\t\r\n\f]*)/i);var rscriptType=(/^$|^module$|\/(?:java|ecma)script/i);(function(){var fragment=document.createDocumentFragment(),div=fragment.appendChild(document.createElement("div")),input=document.createElement("input");input.setAttribute("type","radio");input.setAttribute("checked","checked");input.setAttribute("name","t");
div.appendChild(input);support.checkClone=div.cloneNode(true).cloneNode(true).lastChild.checked;div.innerHTML="<textarea>x</textarea>";support.noCloneChecked=!!div.cloneNode(true).lastChild.defaultValue;div.innerHTML="<option></option>";support.option=!!div.lastChild;})();var wrapMap={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead;wrapMap.th=wrapMap.td;if(!support.option){wrapMap.optgroup=wrapMap.option=[1,"<select multiple='multiple'>","</select>"];}function getAll(context,tag){var ret;if(typeof context.getElementsByTagName!=="undefined"){ret=context.getElementsByTagName(tag||"*");}else if(typeof context.querySelectorAll!=="undefined"){ret=context.querySelectorAll(tag||"*");}else{ret=[];}if(tag===undefined||tag&&nodeName(context,tag)){return jQuery.merge([context],ret);
}return ret;}function setGlobalEval(elems,refElements){var i=0,l=elems.length;for(;i<l;i++){dataPriv.set(elems[i],"globalEval",!refElements||dataPriv.get(refElements[i],"globalEval"));}}var rhtml=/<|&#?\w+;/;function buildFragment(elems,context,scripts,selection,ignored){var elem,tmp,tag,wrap,attached,j,fragment=context.createDocumentFragment(),nodes=[],i=0,l=elems.length;for(;i<l;i++){elem=elems[i];if(elem||elem===0){if(toType(elem)==="object"){jQuery.merge(nodes,elem.nodeType?[elem]:elem);}else if(!rhtml.test(elem)){nodes.push(context.createTextNode(elem));}else{tmp=tmp||fragment.appendChild(context.createElement("div"));tag=(rtagName.exec(elem)||["",""])[1].toLowerCase();wrap=wrapMap[tag]||wrapMap._default;tmp.innerHTML=wrap[1]+jQuery.htmlPrefilter(elem)+wrap[2];j=wrap[0];while(j--){tmp=tmp.lastChild;}jQuery.merge(nodes,tmp.childNodes);tmp=fragment.firstChild;tmp.textContent="";}}}fragment.textContent="";i=0;while((elem=nodes[i++])){if(selection&&jQuery.inArray(elem,selection)>-1){
if(ignored){ignored.push(elem);}continue;}attached=isAttached(elem);tmp=getAll(fragment.appendChild(elem),"script");if(attached){setGlobalEval(tmp);}if(scripts){j=0;while((elem=tmp[j++])){if(rscriptType.test(elem.type||"")){scripts.push(elem);}}}}return fragment;}var rtypenamespace=/^([^.]*)(?:\.(.+)|)/;function returnTrue(){return true;}function returnFalse(){return false;}function on(elem,types,selector,data,fn,one){var origFn,type;if(typeof types==="object"){if(typeof selector!=="string"){data=data||selector;selector=undefined;}for(type in types){on(elem,type,selector,data,types[type],one);}return elem;}if(data==null&&fn==null){fn=selector;data=selector=undefined;}else if(fn==null){if(typeof selector==="string"){fn=data;data=undefined;}else{fn=data;data=selector;selector=undefined;}}if(fn===false){fn=returnFalse;}else if(!fn){return elem;}if(one===1){origFn=fn;fn=function(event){jQuery().off(event);return origFn.apply(this,arguments);};fn.guid=origFn.guid||(origFn.guid=jQuery.guid++);
}return elem.each(function(){jQuery.event.add(this,types,fn,data,selector);});}jQuery.event={global:{},add:function(elem,types,handler,data,selector){var handleObjIn,eventHandle,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=dataPriv.get(elem);if(!acceptData(elem)){return;}if(handler.handler){handleObjIn=handler;handler=handleObjIn.handler;selector=handleObjIn.selector;}if(selector){jQuery.find.matchesSelector(documentElement,selector);}if(!handler.guid){handler.guid=jQuery.guid++;}if(!(events=elemData.events)){events=elemData.events=Object.create(null);}if(!(eventHandle=elemData.handle)){eventHandle=elemData.handle=function(e){return typeof jQuery!=="undefined"&&jQuery.event.triggered!==e.type?jQuery.event.dispatch.apply(elem,arguments):undefined;};}types=(types||"").match(rnothtmlwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type){continue;}special=jQuery.event.special[type]||{};
type=(selector?special.delegateType:special.bindType)||type;special=jQuery.event.special[type]||{};handleObj=jQuery.extend({type:type,origType:origType,data:data,handler:handler,guid:handler.guid,selector:selector,needsContext:selector&&jQuery.expr.match.needsContext.test(selector),namespace:namespaces.join(".")},handleObjIn);if(!(handlers=events[type])){handlers=events[type]=[];handlers.delegateCount=0;if(!special.setup||special.setup.call(elem,data,namespaces,eventHandle)===false){if(elem.addEventListener){elem.addEventListener(type,eventHandle);}}}if(special.add){special.add.call(elem,handleObj);if(!handleObj.handler.guid){handleObj.handler.guid=handler.guid;}}if(selector){handlers.splice(handlers.delegateCount++,0,handleObj);}else{handlers.push(handleObj);}jQuery.event.global[type]=true;}},remove:function(elem,types,handler,selector,mappedTypes){var j,origCount,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=dataPriv.hasData(elem)&&dataPriv.get(elem);if(!elemData||!(events=elemData.events)){
return;}types=(types||"").match(rnothtmlwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type){for(type in events){jQuery.event.remove(elem,type+types[t],handler,selector,true);}continue;}special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;handlers=events[type]||[];tmp=tmp[2]&&new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)");origCount=j=handlers.length;while(j--){handleObj=handlers[j];if((mappedTypes||origType===handleObj.origType)&&(!handler||handler.guid===handleObj.guid)&&(!tmp||tmp.test(handleObj.namespace))&&(!selector||selector===handleObj.selector||selector==="**"&&handleObj.selector)){handlers.splice(j,1);if(handleObj.selector){handlers.delegateCount--;}if(special.remove){special.remove.call(elem,handleObj);}}}if(origCount&&!handlers.length){if(!special.teardown||special.teardown.call(elem,namespaces,elemData.handle)===false){
jQuery.removeEvent(elem,type,elemData.handle);}delete events[type];}}if(jQuery.isEmptyObject(events)){dataPriv.remove(elem,"handle events");}},dispatch:function(nativeEvent){var i,j,ret,matched,handleObj,handlerQueue,args=new Array(arguments.length),event=jQuery.event.fix(nativeEvent),handlers=(dataPriv.get(this,"events")||Object.create(null))[event.type]||[],special=jQuery.event.special[event.type]||{};args[0]=event;for(i=1;i<arguments.length;i++){args[i]=arguments[i];}event.delegateTarget=this;if(special.preDispatch&&special.preDispatch.call(this,event)===false){return;}handlerQueue=jQuery.event.handlers.call(this,event,handlers);i=0;while((matched=handlerQueue[i++])&&!event.isPropagationStopped()){event.currentTarget=matched.elem;j=0;while((handleObj=matched.handlers[j++])&&!event.isImmediatePropagationStopped()){if(!event.rnamespace||handleObj.namespace===false||event.rnamespace.test(handleObj.namespace)){event.handleObj=handleObj;event.data=handleObj.data;ret=((jQuery.event.special[handleObj.origType]||{}).handle||
handleObj.handler).apply(matched.elem,args);if(ret!==undefined){if((event.result=ret)===false){event.preventDefault();event.stopPropagation();}}}}}if(special.postDispatch){special.postDispatch.call(this,event);}return event.result;},handlers:function(event,handlers){var i,handleObj,sel,matchedHandlers,matchedSelectors,handlerQueue=[],delegateCount=handlers.delegateCount,cur=event.target;if(delegateCount&&cur.nodeType&&!(event.type==="click"&&event.button>=1)){for(;cur!==this;cur=cur.parentNode||this){if(cur.nodeType===1&&!(event.type==="click"&&cur.disabled===true)){matchedHandlers=[];matchedSelectors={};for(i=0;i<delegateCount;i++){handleObj=handlers[i];sel=handleObj.selector+" ";if(matchedSelectors[sel]===undefined){matchedSelectors[sel]=handleObj.needsContext?jQuery(sel,this).index(cur)>-1:jQuery.find(sel,this,null,[cur]).length;}if(matchedSelectors[sel]){matchedHandlers.push(handleObj);}}if(matchedHandlers.length){handlerQueue.push({elem:cur,handlers:matchedHandlers});}}}}cur=this;
if(delegateCount<handlers.length){handlerQueue.push({elem:cur,handlers:handlers.slice(delegateCount)});}return handlerQueue;},addProp:function(name,hook){Object.defineProperty(jQuery.Event.prototype,name,{enumerable:true,configurable:true,get:isFunction(hook)?function(){if(this.originalEvent){return hook(this.originalEvent);}}:function(){if(this.originalEvent){return this.originalEvent[name];}},set:function(value){Object.defineProperty(this,name,{enumerable:true,configurable:true,writable:true,value:value});}});},fix:function(originalEvent){return originalEvent[jQuery.expando]?originalEvent:new jQuery.Event(originalEvent);},special:{load:{noBubble:true},click:{setup:function(data){var el=this||data;if(rcheckableType.test(el.type)&&el.click&&nodeName(el,"input")){leverageNative(el,"click",true);}return false;},trigger:function(data){var el=this||data;if(rcheckableType.test(el.type)&&el.click&&nodeName(el,"input")){leverageNative(el,"click");}return true;},_default:function(event){var target=event.target;
return rcheckableType.test(target.type)&&target.click&&nodeName(target,"input")&&dataPriv.get(target,"click")||nodeName(target,"a");}},beforeunload:{postDispatch:function(event){if(event.result!==undefined&&event.originalEvent){event.originalEvent.returnValue=event.result;}}}}};function leverageNative(el,type,isSetup){if(!isSetup){if(dataPriv.get(el,type)===undefined){jQuery.event.add(el,type,returnTrue);}return;}dataPriv.set(el,type,false);jQuery.event.add(el,type,{namespace:false,handler:function(event){var result,saved=dataPriv.get(this,type);if((event.isTrigger&1)&&this[type]){if(!saved){saved=slice.call(arguments);dataPriv.set(this,type,saved);this[type]();result=dataPriv.get(this,type);dataPriv.set(this,type,false);if(saved!==result){event.stopImmediatePropagation();event.preventDefault();return result;}}else if((jQuery.event.special[type]||{}).delegateType){event.stopPropagation();}}else if(saved){dataPriv.set(this,type,jQuery.event.trigger(saved[0],saved.slice(1),this));event.stopPropagation();
event.isImmediatePropagationStopped=returnTrue;}}});}jQuery.removeEvent=function(elem,type,handle){if(elem.removeEventListener){elem.removeEventListener(type,handle);}};jQuery.Event=function(src,props){if(!(this instanceof jQuery.Event)){return new jQuery.Event(src,props);}if(src&&src.type){this.originalEvent=src;this.type=src.type;this.isDefaultPrevented=src.defaultPrevented||src.defaultPrevented===undefined&&src.returnValue===false?returnTrue:returnFalse;this.target=(src.target&&src.target.nodeType===3)?src.target.parentNode:src.target;this.currentTarget=src.currentTarget;this.relatedTarget=src.relatedTarget;}else{this.type=src;}if(props){jQuery.extend(this,props);}this.timeStamp=src&&src.timeStamp||Date.now();this[jQuery.expando]=true;};jQuery.Event.prototype={constructor:jQuery.Event,isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse,isSimulated:false,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=returnTrue;
if(e&&!this.isSimulated){e.preventDefault();}},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=returnTrue;if(e&&!this.isSimulated){e.stopPropagation();}},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=returnTrue;if(e&&!this.isSimulated){e.stopImmediatePropagation();}this.stopPropagation();}};jQuery.each({altKey:true,bubbles:true,cancelable:true,changedTouches:true,ctrlKey:true,detail:true,eventPhase:true,metaKey:true,pageX:true,pageY:true,shiftKey:true,view:true,"char":true,code:true,charCode:true,key:true,keyCode:true,button:true,buttons:true,clientX:true,clientY:true,offsetX:true,offsetY:true,pointerId:true,pointerType:true,screenX:true,screenY:true,targetTouches:true,toElement:true,touches:true,which:true},jQuery.event.addProp);jQuery.each({focus:"focusin",blur:"focusout"},function(type,delegateType){function focusMappedHandler(nativeEvent){if(document.documentMode){var handle=dataPriv.get(this,"handle"),
event=jQuery.event.fix(nativeEvent);event.type=nativeEvent.type==="focusin"?"focus":"blur";event.isSimulated=true;handle(nativeEvent);if(event.target===event.currentTarget){handle(event);}}else{jQuery.event.simulate(delegateType,nativeEvent.target,jQuery.event.fix(nativeEvent));}}jQuery.event.special[type]={setup:function(){var attaches;leverageNative(this,type,true);if(document.documentMode){attaches=dataPriv.get(this,delegateType);if(!attaches){this.addEventListener(delegateType,focusMappedHandler);}dataPriv.set(this,delegateType,(attaches||0)+1);}else{return false;}},trigger:function(){leverageNative(this,type);return true;},teardown:function(){var attaches;if(document.documentMode){attaches=dataPriv.get(this,delegateType)-1;if(!attaches){this.removeEventListener(delegateType,focusMappedHandler);dataPriv.remove(this,delegateType);}else{dataPriv.set(this,delegateType,attaches);}}else{return false;}},_default:function(event){return dataPriv.get(event.target,type);},delegateType:delegateType
};jQuery.event.special[delegateType]={setup:function(){var doc=this.ownerDocument||this.document||this,dataHolder=document.documentMode?this:doc,attaches=dataPriv.get(dataHolder,delegateType);if(!attaches){if(document.documentMode){this.addEventListener(delegateType,focusMappedHandler);}else{doc.addEventListener(type,focusMappedHandler,true);}}dataPriv.set(dataHolder,delegateType,(attaches||0)+1);},teardown:function(){var doc=this.ownerDocument||this.document||this,dataHolder=document.documentMode?this:doc,attaches=dataPriv.get(dataHolder,delegateType)-1;if(!attaches){if(document.documentMode){this.removeEventListener(delegateType,focusMappedHandler);}else{doc.removeEventListener(type,focusMappedHandler,true);}dataPriv.remove(dataHolder,delegateType);}else{dataPriv.set(dataHolder,delegateType,attaches);}}};});jQuery.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(orig,fix){jQuery.event.special[orig]={delegateType:fix,
bindType:fix,handle:function(event){var ret,target=this,related=event.relatedTarget,handleObj=event.handleObj;if(!related||(related!==target&&!jQuery.contains(target,related))){event.type=handleObj.origType;ret=handleObj.handler.apply(this,arguments);event.type=fix;}return ret;}};});jQuery.fn.extend({on:function(types,selector,data,fn){return on(this,types,selector,data,fn);},one:function(types,selector,data,fn){return on(this,types,selector,data,fn,1);},off:function(types,selector,fn){var handleObj,type;if(types&&types.preventDefault&&types.handleObj){handleObj=types.handleObj;jQuery(types.delegateTarget).off(handleObj.namespace?handleObj.origType+"."+handleObj.namespace:handleObj.origType,handleObj.selector,handleObj.handler);return this;}if(typeof types==="object"){for(type in types){this.off(type,selector,types[type]);}return this;}if(selector===false||typeof selector==="function"){fn=selector;selector=undefined;}if(fn===false){fn=returnFalse;}return this.each(function(){jQuery.event.remove(this,types,fn,selector);
});}});var rnoInnerhtml=/<script|<style|<link/i,rchecked=/checked\s*(?:[^=]|=\s*.checked.)/i,rcleanScript=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function manipulationTarget(elem,content){if(nodeName(elem,"table")&&nodeName(content.nodeType!==11?content:content.firstChild,"tr")){return jQuery(elem).children("tbody")[0]||elem;}return elem;}function disableScript(elem){elem.type=(elem.getAttribute("type")!==null)+"/"+elem.type;return elem;}function restoreScript(elem){if((elem.type||"").slice(0,5)==="true/"){elem.type=elem.type.slice(5);}else{elem.removeAttribute("type");}return elem;}function cloneCopyEvent(src,dest){var i,l,type,pdataOld,udataOld,udataCur,events;if(dest.nodeType!==1){return;}if(dataPriv.hasData(src)){pdataOld=dataPriv.get(src);events=pdataOld.events;if(events){dataPriv.remove(dest,"handle events");for(type in events){for(i=0,l=events[type].length;i<l;i++){jQuery.event.add(dest,type,events[type][i]);}}}}if(dataUser.hasData(src)){udataOld=dataUser.access(src);udataCur=jQuery.extend({},udataOld);
dataUser.set(dest,udataCur);}}function fixInput(src,dest){var nodeName=dest.nodeName.toLowerCase();if(nodeName==="input"&&rcheckableType.test(src.type)){dest.checked=src.checked;}else if(nodeName==="input"||nodeName==="textarea"){dest.defaultValue=src.defaultValue;}}function domManip(collection,args,callback,ignored){args=flat(args);var fragment,first,scripts,hasScripts,node,doc,i=0,l=collection.length,iNoClone=l-1,value=args[0],valueIsFunction=isFunction(value);if(valueIsFunction||(l>1&&typeof value==="string"&&!support.checkClone&&rchecked.test(value))){return collection.each(function(index){var self=collection.eq(index);if(valueIsFunction){args[0]=value.call(this,index,self.html());}domManip(self,args,callback,ignored);});}if(l){fragment=buildFragment(args,collection[0].ownerDocument,false,collection,ignored);first=fragment.firstChild;if(fragment.childNodes.length===1){fragment=first;}if(first||ignored){scripts=jQuery.map(getAll(fragment,"script"),disableScript);hasScripts=scripts.length;
for(;i<l;i++){node=fragment;if(i!==iNoClone){node=jQuery.clone(node,true,true);if(hasScripts){jQuery.merge(scripts,getAll(node,"script"));}}callback.call(collection[i],node,i);}if(hasScripts){doc=scripts[scripts.length-1].ownerDocument;jQuery.map(scripts,restoreScript);for(i=0;i<hasScripts;i++){node=scripts[i];if(rscriptType.test(node.type||"")&&!dataPriv.access(node,"globalEval")&&jQuery.contains(doc,node)){if(node.src&&(node.type||"").toLowerCase()!=="module"){if(jQuery._evalUrl&&!node.noModule){jQuery._evalUrl(node.src,{nonce:node.nonce||node.getAttribute("nonce")},doc);}}else{DOMEval(node.textContent.replace(rcleanScript,""),node,doc);}}}}}}return collection;}function remove(elem,selector,keepData){var node,nodes=selector?jQuery.filter(selector,elem):elem,i=0;for(;(node=nodes[i])!=null;i++){if(!keepData&&node.nodeType===1){jQuery.cleanData(getAll(node));}if(node.parentNode){if(keepData&&isAttached(node)){setGlobalEval(getAll(node,"script"));}node.parentNode.removeChild(node);}}
return elem;}jQuery.extend({htmlPrefilter:function(html){return html;},clone:function(elem,dataAndEvents,deepDataAndEvents){var i,l,srcElements,destElements,clone=elem.cloneNode(true),inPage=isAttached(elem);if(!support.noCloneChecked&&(elem.nodeType===1||elem.nodeType===11)&&!jQuery.isXMLDoc(elem)){destElements=getAll(clone);srcElements=getAll(elem);for(i=0,l=srcElements.length;i<l;i++){fixInput(srcElements[i],destElements[i]);}}if(dataAndEvents){if(deepDataAndEvents){srcElements=srcElements||getAll(elem);destElements=destElements||getAll(clone);for(i=0,l=srcElements.length;i<l;i++){cloneCopyEvent(srcElements[i],destElements[i]);}}else{cloneCopyEvent(elem,clone);}}destElements=getAll(clone,"script");if(destElements.length>0){setGlobalEval(destElements,!inPage&&getAll(elem,"script"));}return clone;},cleanData:function(elems){var data,elem,type,special=jQuery.event.special,i=0;for(;(elem=elems[i])!==undefined;i++){if(acceptData(elem)){if((data=elem[dataPriv.expando])){if(data.events){
for(type in data.events){if(special[type]){jQuery.event.remove(elem,type);}else{jQuery.removeEvent(elem,type,data.handle);}}}elem[dataPriv.expando]=undefined;}if(elem[dataUser.expando]){elem[dataUser.expando]=undefined;}}}}});jQuery.fn.extend({detach:function(selector){return remove(this,selector,true);},remove:function(selector){return remove(this,selector);},text:function(value){return access(this,function(value){return value===undefined?jQuery.text(this):this.empty().each(function(){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){this.textContent=value;}});},null,value,arguments.length);},append:function(){return domManip(this,arguments,function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.appendChild(elem);}});},prepend:function(){return domManip(this,arguments,function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.insertBefore(elem,target.firstChild);
}});},before:function(){return domManip(this,arguments,function(elem){if(this.parentNode){this.parentNode.insertBefore(elem,this);}});},after:function(){return domManip(this,arguments,function(elem){if(this.parentNode){this.parentNode.insertBefore(elem,this.nextSibling);}});},empty:function(){var elem,i=0;for(;(elem=this[i])!=null;i++){if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));elem.textContent="";}}return this;},clone:function(dataAndEvents,deepDataAndEvents){dataAndEvents=dataAndEvents==null?false:dataAndEvents;deepDataAndEvents=deepDataAndEvents==null?dataAndEvents:deepDataAndEvents;return this.map(function(){return jQuery.clone(this,dataAndEvents,deepDataAndEvents);});},html:function(value){return access(this,function(value){var elem=this[0]||{},i=0,l=this.length;if(value===undefined&&elem.nodeType===1){return elem.innerHTML;}if(typeof value==="string"&&!rnoInnerhtml.test(value)&&!wrapMap[(rtagName.exec(value)||["",""])[1].toLowerCase()]){value=jQuery.htmlPrefilter(value);
try{for(;i<l;i++){elem=this[i]||{};if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));elem.innerHTML=value;}}elem=0;}catch(e){}}if(elem){this.empty().append(value);}},null,value,arguments.length);},replaceWith:function(){var ignored=[];return domManip(this,arguments,function(elem){var parent=this.parentNode;if(jQuery.inArray(this,ignored)<0){jQuery.cleanData(getAll(this));if(parent){parent.replaceChild(elem,this);}}},ignored);}});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){var elems,ret=[],insert=jQuery(selector),last=insert.length-1,i=0;for(;i<=last;i++){elems=i===last?this:this.clone(true);jQuery(insert[i])[original](elems);push.apply(ret,elems.get());}return this.pushStack(ret);};});var rnumnonpx=new RegExp("^("+pnum+")(?!px)[a-z%]+$","i");var rcustomProp=/^--/;var getStyles=function(elem){var view=elem.ownerDocument.defaultView;if(!view||!view.opener){
view=window;}return view.getComputedStyle(elem);};var swap=function(elem,options,callback){var ret,name,old={};for(name in options){old[name]=elem.style[name];elem.style[name]=options[name];}ret=callback.call(elem);for(name in options){elem.style[name]=old[name];}return ret;};var rboxStyle=new RegExp(cssExpand.join("|"),"i");(function(){function computeStyleTests(){if(!div){return;}container.style.cssText="position:absolute;left:-11111px;width:60px;"+"margin-top:1px;padding:0;border:0";div.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;"+"margin:auto;border:1px;padding:1px;"+"width:60%;top:1%";documentElement.appendChild(container).appendChild(div);var divStyle=window.getComputedStyle(div);pixelPositionVal=divStyle.top!=="1%";reliableMarginLeftVal=roundPixelMeasures(divStyle.marginLeft)===12;div.style.right="60%";pixelBoxStylesVal=roundPixelMeasures(divStyle.right)===36;boxSizingReliableVal=roundPixelMeasures(divStyle.width)===36;div.style.position="absolute";
scrollboxSizeVal=roundPixelMeasures(div.offsetWidth/3)===12;documentElement.removeChild(container);div=null;}function roundPixelMeasures(measure){return Math.round(parseFloat(measure));}var pixelPositionVal,boxSizingReliableVal,scrollboxSizeVal,pixelBoxStylesVal,reliableTrDimensionsVal,reliableMarginLeftVal,container=document.createElement("div"),div=document.createElement("div");if(!div.style){return;}div.style.backgroundClip="content-box";div.cloneNode(true).style.backgroundClip="";support.clearCloneStyle=div.style.backgroundClip==="content-box";jQuery.extend(support,{boxSizingReliable:function(){computeStyleTests();return boxSizingReliableVal;},pixelBoxStyles:function(){computeStyleTests();return pixelBoxStylesVal;},pixelPosition:function(){computeStyleTests();return pixelPositionVal;},reliableMarginLeft:function(){computeStyleTests();return reliableMarginLeftVal;},scrollboxSize:function(){computeStyleTests();return scrollboxSizeVal;},reliableTrDimensions:function(){var table,tr,trChild,trStyle;
if(reliableTrDimensionsVal==null){table=document.createElement("table");tr=document.createElement("tr");trChild=document.createElement("div");table.style.cssText="position:absolute;left:-11111px;border-collapse:separate";tr.style.cssText="box-sizing:content-box;border:1px solid";tr.style.height="1px";trChild.style.height="9px";trChild.style.display="block";documentElement.appendChild(table).appendChild(tr).appendChild(trChild);trStyle=window.getComputedStyle(tr);reliableTrDimensionsVal=(parseInt(trStyle.height,10)+parseInt(trStyle.borderTopWidth,10)+parseInt(trStyle.borderBottomWidth,10))===tr.offsetHeight;documentElement.removeChild(table);}return reliableTrDimensionsVal;}});})();function curCSS(elem,name,computed){var width,minWidth,maxWidth,ret,isCustomProp=rcustomProp.test(name),style=elem.style;computed=computed||getStyles(elem);if(computed){ret=computed.getPropertyValue(name)||computed[name];if(isCustomProp&&ret){ret=ret.replace(rtrimCSS,"$1")||undefined;}if(ret===""&&!isAttached(elem)){
ret=jQuery.style(elem,name);}if(!support.pixelBoxStyles()&&rnumnonpx.test(ret)&&rboxStyle.test(name)){width=style.width;minWidth=style.minWidth;maxWidth=style.maxWidth;style.minWidth=style.maxWidth=style.width=ret;ret=computed.width;style.width=width;style.minWidth=minWidth;style.maxWidth=maxWidth;}}return ret!==undefined?ret+"":ret;}function addGetHookIf(conditionFn,hookFn){return{get:function(){if(conditionFn()){delete this.get;return;}return(this.get=hookFn).apply(this,arguments);}};}var cssPrefixes=["Webkit","Moz","ms"],emptyStyle=document.createElement("div").style,vendorProps={};function vendorPropName(name){var capName=name[0].toUpperCase()+name.slice(1),i=cssPrefixes.length;while(i--){name=cssPrefixes[i]+capName;if(name in emptyStyle){return name;}}}function finalPropName(name){var final=jQuery.cssProps[name]||vendorProps[name];if(final){return final;}if(name in emptyStyle){return name;}return vendorProps[name]=vendorPropName(name)||name;}var rdisplayswap=/^(none|table(?!-c[ea]).+)/,
cssShow={position:"absolute",visibility:"hidden",display:"block"},cssNormalTransform={letterSpacing:"0",fontWeight:"400"};function setPositiveNumber(_elem,value,subtract){var matches=rcssNum.exec(value);return matches?Math.max(0,matches[2]-(subtract||0))+(matches[3]||"px"):value;}function boxModelAdjustment(elem,dimension,box,isBorderBox,styles,computedVal){var i=dimension==="width"?1:0,extra=0,delta=0,marginDelta=0;if(box===(isBorderBox?"border":"content")){return 0;}for(;i<4;i+=2){if(box==="margin"){marginDelta+=jQuery.css(elem,box+cssExpand[i],true,styles);}if(!isBorderBox){delta+=jQuery.css(elem,"padding"+cssExpand[i],true,styles);if(box!=="padding"){delta+=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles);}else{extra+=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles);}}else{if(box==="content"){delta-=jQuery.css(elem,"padding"+cssExpand[i],true,styles);}if(box!=="margin"){delta-=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles);}}}if(!isBorderBox&&computedVal>=0){
delta+=Math.max(0,Math.ceil(elem["offset"+dimension[0].toUpperCase()+dimension.slice(1)]-computedVal-delta-extra-0.5))||0;}return delta+marginDelta;}function getWidthOrHeight(elem,dimension,extra){var styles=getStyles(elem),boxSizingNeeded=!support.boxSizingReliable()||extra,isBorderBox=boxSizingNeeded&&jQuery.css(elem,"boxSizing",false,styles)==="border-box",valueIsBorderBox=isBorderBox,val=curCSS(elem,dimension,styles),offsetProp="offset"+dimension[0].toUpperCase()+dimension.slice(1);if(rnumnonpx.test(val)){if(!extra){return val;}val="auto";}if((!support.boxSizingReliable()&&isBorderBox||!support.reliableTrDimensions()&&nodeName(elem,"tr")||val==="auto"||!parseFloat(val)&&jQuery.css(elem,"display",false,styles)==="inline")&&elem.getClientRects().length){isBorderBox=jQuery.css(elem,"boxSizing",false,styles)==="border-box";valueIsBorderBox=offsetProp in elem;if(valueIsBorderBox){val=elem[offsetProp];}}val=parseFloat(val)||0;return(val+boxModelAdjustment(elem,dimension,extra||(isBorderBox?"border":"content"),
valueIsBorderBox,styles,val))+"px";}jQuery.extend({cssHooks:{opacity:{get:function(elem,computed){if(computed){var ret=curCSS(elem,"opacity");return ret===""?"1":ret;}}}},cssNumber:{animationIterationCount:true,aspectRatio:true,borderImageSlice:true,columnCount:true,flexGrow:true,flexShrink:true,fontWeight:true,gridArea:true,gridColumn:true,gridColumnEnd:true,gridColumnStart:true,gridRow:true,gridRowEnd:true,gridRowStart:true,lineHeight:true,opacity:true,order:true,orphans:true,scale:true,widows:true,zIndex:true,zoom:true,fillOpacity:true,floodOpacity:true,stopOpacity:true,strokeMiterlimit:true,strokeOpacity:true},cssProps:{},style:function(elem,name,value,extra){if(!elem||elem.nodeType===3||elem.nodeType===8||!elem.style){return;}var ret,type,hooks,origName=camelCase(name),isCustomProp=rcustomProp.test(name),style=elem.style;if(!isCustomProp){name=finalPropName(origName);}hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(value!==undefined){type=typeof value;if(type==="string"&&(ret=rcssNum.exec(value))&&ret[1]){
value=adjustCSS(elem,name,ret);type="number";}if(value==null||value!==value){return;}if(type==="number"&&!isCustomProp){value+=ret&&ret[3]||(jQuery.cssNumber[origName]?"":"px");}if(!support.clearCloneStyle&&value===""&&name.indexOf("background")===0){style[name]="inherit";}if(!hooks||!("set"in hooks)||(value=hooks.set(elem,value,extra))!==undefined){if(isCustomProp){style.setProperty(name,value);}else{style[name]=value;}}}else{if(hooks&&"get"in hooks&&(ret=hooks.get(elem,false,extra))!==undefined){return ret;}return style[name];}},css:function(elem,name,extra,styles){var val,num,hooks,origName=camelCase(name),isCustomProp=rcustomProp.test(name);if(!isCustomProp){name=finalPropName(origName);}hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(hooks&&"get"in hooks){val=hooks.get(elem,true,extra);}if(val===undefined){val=curCSS(elem,name,styles);}if(val==="normal"&&name in cssNormalTransform){val=cssNormalTransform[name];}if(extra===""||extra){num=parseFloat(val);return extra===true||isFinite(num)?num||0:val;
}return val;}});jQuery.each(["height","width"],function(_i,dimension){jQuery.cssHooks[dimension]={get:function(elem,computed,extra){if(computed){return rdisplayswap.test(jQuery.css(elem,"display"))&&(!elem.getClientRects().length||!elem.getBoundingClientRect().width)?swap(elem,cssShow,function(){return getWidthOrHeight(elem,dimension,extra);}):getWidthOrHeight(elem,dimension,extra);}},set:function(elem,value,extra){var matches,styles=getStyles(elem),scrollboxSizeBuggy=!support.scrollboxSize()&&styles.position==="absolute",boxSizingNeeded=scrollboxSizeBuggy||extra,isBorderBox=boxSizingNeeded&&jQuery.css(elem,"boxSizing",false,styles)==="border-box",subtract=extra?boxModelAdjustment(elem,dimension,extra,isBorderBox,styles):0;if(isBorderBox&&scrollboxSizeBuggy){subtract-=Math.ceil(elem["offset"+dimension[0].toUpperCase()+dimension.slice(1)]-parseFloat(styles[dimension])-boxModelAdjustment(elem,dimension,"border",false,styles)-0.5);}if(subtract&&(matches=rcssNum.exec(value))&&(matches[3]||"px")!=="px"){
elem.style[dimension]=value;value=jQuery.css(elem,dimension);}return setPositiveNumber(elem,value,subtract);}};});jQuery.cssHooks.marginLeft=addGetHookIf(support.reliableMarginLeft,function(elem,computed){if(computed){return(parseFloat(curCSS(elem,"marginLeft"))||elem.getBoundingClientRect().left-swap(elem,{marginLeft:0},function(){return elem.getBoundingClientRect().left;}))+"px";}});jQuery.each({margin:"",padding:"",border:"Width"},function(prefix,suffix){jQuery.cssHooks[prefix+suffix]={expand:function(value){var i=0,expanded={},parts=typeof value==="string"?value.split(" "):[value];for(;i<4;i++){expanded[prefix+cssExpand[i]+suffix]=parts[i]||parts[i-2]||parts[0];}return expanded;}};if(prefix!=="margin"){jQuery.cssHooks[prefix+suffix].set=setPositiveNumber;}});jQuery.fn.extend({css:function(name,value){return access(this,function(elem,name,value){var styles,len,map={},i=0;if(Array.isArray(name)){styles=getStyles(elem);len=name.length;for(;i<len;i++){map[name[i]]=jQuery.css(elem,name[i],false,styles);
}return map;}return value!==undefined?jQuery.style(elem,name,value):jQuery.css(elem,name);},name,value,arguments.length>1);}});function Tween(elem,options,prop,end,easing){return new Tween.prototype.init(elem,options,prop,end,easing);}jQuery.Tween=Tween;Tween.prototype={constructor:Tween,init:function(elem,options,prop,end,easing,unit){this.elem=elem;this.prop=prop;this.easing=easing||jQuery.easing._default;this.options=options;this.start=this.now=this.cur();this.end=end;this.unit=unit||(jQuery.cssNumber[prop]?"":"px");},cur:function(){var hooks=Tween.propHooks[this.prop];return hooks&&hooks.get?hooks.get(this):Tween.propHooks._default.get(this);},run:function(percent){var eased,hooks=Tween.propHooks[this.prop];if(this.options.duration){this.pos=eased=jQuery.easing[this.easing](percent,this.options.duration*percent,0,1,this.options.duration);}else{this.pos=eased=percent;}this.now=(this.end-this.start)*eased+this.start;if(this.options.step){this.options.step.call(this.elem,this.now,this);
}if(hooks&&hooks.set){hooks.set(this);}else{Tween.propHooks._default.set(this);}return this;}};Tween.prototype.init.prototype=Tween.prototype;Tween.propHooks={_default:{get:function(tween){var result;if(tween.elem.nodeType!==1||tween.elem[tween.prop]!=null&&tween.elem.style[tween.prop]==null){return tween.elem[tween.prop];}result=jQuery.css(tween.elem,tween.prop,"");return!result||result==="auto"?0:result;},set:function(tween){if(jQuery.fx.step[tween.prop]){jQuery.fx.step[tween.prop](tween);}else if(tween.elem.nodeType===1&&(jQuery.cssHooks[tween.prop]||tween.elem.style[finalPropName(tween.prop)]!=null)){jQuery.style(tween.elem,tween.prop,tween.now+tween.unit);}else{tween.elem[tween.prop]=tween.now;}}}};Tween.propHooks.scrollTop=Tween.propHooks.scrollLeft={set:function(tween){if(tween.elem.nodeType&&tween.elem.parentNode){tween.elem[tween.prop]=tween.now;}}};jQuery.easing={linear:function(p){return p;},swing:function(p){return 0.5-Math.cos(p*Math.PI)/2;},_default:"swing"};jQuery.fx=Tween.prototype.init;
jQuery.fx.step={};var fxNow,inProgress,rfxtypes=/^(?:toggle|show|hide)$/,rrun=/queueHooks$/;function schedule(){if(inProgress){if(document.hidden===false&&window.requestAnimationFrame){window.requestAnimationFrame(schedule);}else{window.setTimeout(schedule,jQuery.fx.interval);}jQuery.fx.tick();}}function createFxNow(){window.setTimeout(function(){fxNow=undefined;});return(fxNow=Date.now());}function genFx(type,includeWidth){var which,i=0,attrs={height:type};includeWidth=includeWidth?1:0;for(;i<4;i+=2-includeWidth){which=cssExpand[i];attrs["margin"+which]=attrs["padding"+which]=type;}if(includeWidth){attrs.opacity=attrs.width=type;}return attrs;}function createTween(value,prop,animation){var tween,collection=(Animation.tweeners[prop]||[]).concat(Animation.tweeners["*"]),index=0,length=collection.length;for(;index<length;index++){if((tween=collection[index].call(animation,prop,value))){return tween;}}}function defaultPrefilter(elem,props,opts){var prop,value,toggle,hooks,oldfire,propTween,restoreDisplay,display,
isBox="width"in props||"height"in props,anim=this,orig={},style=elem.style,hidden=elem.nodeType&&isHiddenWithinTree(elem),dataShow=dataPriv.get(elem,"fxshow");if(!opts.queue){hooks=jQuery._queueHooks(elem,"fx");if(hooks.unqueued==null){hooks.unqueued=0;oldfire=hooks.empty.fire;hooks.empty.fire=function(){if(!hooks.unqueued){oldfire();}};}hooks.unqueued++;anim.always(function(){anim.always(function(){hooks.unqueued--;if(!jQuery.queue(elem,"fx").length){hooks.empty.fire();}});});}for(prop in props){value=props[prop];if(rfxtypes.test(value)){delete props[prop];toggle=toggle||value==="toggle";if(value===(hidden?"hide":"show")){if(value==="show"&&dataShow&&dataShow[prop]!==undefined){hidden=true;}else{continue;}}orig[prop]=dataShow&&dataShow[prop]||jQuery.style(elem,prop);}}propTween=!jQuery.isEmptyObject(props);if(!propTween&&jQuery.isEmptyObject(orig)){return;}if(isBox&&elem.nodeType===1){opts.overflow=[style.overflow,style.overflowX,style.overflowY];restoreDisplay=dataShow&&dataShow.display;
if(restoreDisplay==null){restoreDisplay=dataPriv.get(elem,"display");}display=jQuery.css(elem,"display");if(display==="none"){if(restoreDisplay){display=restoreDisplay;}else{showHide([elem],true);restoreDisplay=elem.style.display||restoreDisplay;display=jQuery.css(elem,"display");showHide([elem]);}}if(display==="inline"||display==="inline-block"&&restoreDisplay!=null){if(jQuery.css(elem,"float")==="none"){if(!propTween){anim.done(function(){style.display=restoreDisplay;});if(restoreDisplay==null){display=style.display;restoreDisplay=display==="none"?"":display;}}style.display="inline-block";}}}if(opts.overflow){style.overflow="hidden";anim.always(function(){style.overflow=opts.overflow[0];style.overflowX=opts.overflow[1];style.overflowY=opts.overflow[2];});}propTween=false;for(prop in orig){if(!propTween){if(dataShow){if("hidden"in dataShow){hidden=dataShow.hidden;}}else{dataShow=dataPriv.access(elem,"fxshow",{display:restoreDisplay});}if(toggle){dataShow.hidden=!hidden;}if(hidden){
showHide([elem],true);}anim.done(function(){if(!hidden){showHide([elem]);}dataPriv.remove(elem,"fxshow");for(prop in orig){jQuery.style(elem,prop,orig[prop]);}});}propTween=createTween(hidden?dataShow[prop]:0,prop,anim);if(!(prop in dataShow)){dataShow[prop]=propTween.start;if(hidden){propTween.end=propTween.start;propTween.start=0;}}}}function propFilter(props,specialEasing){var index,name,easing,value,hooks;for(index in props){name=camelCase(index);easing=specialEasing[name];value=props[index];if(Array.isArray(value)){easing=value[1];value=props[index]=value[0];}if(index!==name){props[name]=value;delete props[index];}hooks=jQuery.cssHooks[name];if(hooks&&"expand"in hooks){value=hooks.expand(value);delete props[name];for(index in value){if(!(index in props)){props[index]=value[index];specialEasing[index]=easing;}}}else{specialEasing[name]=easing;}}}function Animation(elem,properties,options){var result,stopped,index=0,length=Animation.prefilters.length,deferred=jQuery.Deferred().always(function(){
delete tick.elem;}),tick=function(){if(stopped){return false;}var currentTime=fxNow||createFxNow(),remaining=Math.max(0,animation.startTime+animation.duration-currentTime),temp=remaining/animation.duration||0,percent=1-temp,index=0,length=animation.tweens.length;for(;index<length;index++){animation.tweens[index].run(percent);}deferred.notifyWith(elem,[animation,percent,remaining]);if(percent<1&&length){return remaining;}if(!length){deferred.notifyWith(elem,[animation,1,0]);}deferred.resolveWith(elem,[animation]);return false;},animation=deferred.promise({elem:elem,props:jQuery.extend({},properties),opts:jQuery.extend(true,{specialEasing:{},easing:jQuery.easing._default},options),originalProperties:properties,originalOptions:options,startTime:fxNow||createFxNow(),duration:options.duration,tweens:[],createTween:function(prop,end){var tween=jQuery.Tween(elem,animation.opts,prop,end,animation.opts.specialEasing[prop]||animation.opts.easing);animation.tweens.push(tween);return tween;},stop:function(gotoEnd){
var index=0,length=gotoEnd?animation.tweens.length:0;if(stopped){return this;}stopped=true;for(;index<length;index++){animation.tweens[index].run(1);}if(gotoEnd){deferred.notifyWith(elem,[animation,1,0]);deferred.resolveWith(elem,[animation,gotoEnd]);}else{deferred.rejectWith(elem,[animation,gotoEnd]);}return this;}}),props=animation.props;propFilter(props,animation.opts.specialEasing);for(;index<length;index++){result=Animation.prefilters[index].call(animation,elem,props,animation.opts);if(result){if(isFunction(result.stop)){jQuery._queueHooks(animation.elem,animation.opts.queue).stop=result.stop.bind(result);}return result;}}jQuery.map(props,createTween,animation);if(isFunction(animation.opts.start)){animation.opts.start.call(elem,animation);}animation.progress(animation.opts.progress).done(animation.opts.done,animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);jQuery.fx.timer(jQuery.extend(tick,{elem:elem,anim:animation,queue:animation.opts.queue}));
return animation;}jQuery.Animation=jQuery.extend(Animation,{tweeners:{"*":[function(prop,value){var tween=this.createTween(prop,value);adjustCSS(tween.elem,prop,rcssNum.exec(value),tween);return tween;}]},tweener:function(props,callback){if(isFunction(props)){callback=props;props=["*"];}else{props=props.match(rnothtmlwhite);}var prop,index=0,length=props.length;for(;index<length;index++){prop=props[index];Animation.tweeners[prop]=Animation.tweeners[prop]||[];Animation.tweeners[prop].unshift(callback);}},prefilters:[defaultPrefilter],prefilter:function(callback,prepend){if(prepend){Animation.prefilters.unshift(callback);}else{Animation.prefilters.push(callback);}}});jQuery.speed=function(speed,easing,fn){var opt=speed&&typeof speed==="object"?jQuery.extend({},speed):{complete:fn||!fn&&easing||isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!isFunction(easing)&&easing};if(jQuery.fx.off){opt.duration=0;}else{if(typeof opt.duration!=="number"){if(opt.duration in jQuery.fx.speeds){
opt.duration=jQuery.fx.speeds[opt.duration];}else{opt.duration=jQuery.fx.speeds._default;}}}if(opt.queue==null||opt.queue===true){opt.queue="fx";}opt.old=opt.complete;opt.complete=function(){if(isFunction(opt.old)){opt.old.call(this);}if(opt.queue){jQuery.dequeue(this,opt.queue);}};return opt;};jQuery.fn.extend({fadeTo:function(speed,to,easing,callback){return this.filter(isHiddenWithinTree).css("opacity",0).show().end().animate({opacity:to},speed,easing,callback);},animate:function(prop,speed,easing,callback){var empty=jQuery.isEmptyObject(prop),optall=jQuery.speed(speed,easing,callback),doAnimation=function(){var anim=Animation(this,jQuery.extend({},prop),optall);if(empty||dataPriv.get(this,"finish")){anim.stop(true);}};doAnimation.finish=doAnimation;return empty||optall.queue===false?this.each(doAnimation):this.queue(optall.queue,doAnimation);},stop:function(type,clearQueue,gotoEnd){var stopQueue=function(hooks){var stop=hooks.stop;delete hooks.stop;stop(gotoEnd);};if(typeof type!=="string"){
gotoEnd=clearQueue;clearQueue=type;type=undefined;}if(clearQueue){this.queue(type||"fx",[]);}return this.each(function(){var dequeue=true,index=type!=null&&type+"queueHooks",timers=jQuery.timers,data=dataPriv.get(this);if(index){if(data[index]&&data[index].stop){stopQueue(data[index]);}}else{for(index in data){if(data[index]&&data[index].stop&&rrun.test(index)){stopQueue(data[index]);}}}for(index=timers.length;index--;){if(timers[index].elem===this&&(type==null||timers[index].queue===type)){timers[index].anim.stop(gotoEnd);dequeue=false;timers.splice(index,1);}}if(dequeue||!gotoEnd){jQuery.dequeue(this,type);}});},finish:function(type){if(type!==false){type=type||"fx";}return this.each(function(){var index,data=dataPriv.get(this),queue=data[type+"queue"],hooks=data[type+"queueHooks"],timers=jQuery.timers,length=queue?queue.length:0;data.finish=true;jQuery.queue(this,type,[]);if(hooks&&hooks.stop){hooks.stop.call(this,true);}for(index=timers.length;index--;){if(timers[index].elem===this&&timers[index].queue===type){
timers[index].anim.stop(true);timers.splice(index,1);}}for(index=0;index<length;index++){if(queue[index]&&queue[index].finish){queue[index].finish.call(this);}}delete data.finish;});}});jQuery.each(["toggle","show","hide"],function(_i,name){var cssFn=jQuery.fn[name];jQuery.fn[name]=function(speed,easing,callback){return speed==null||typeof speed==="boolean"?cssFn.apply(this,arguments):this.animate(genFx(name,true),speed,easing,callback);};});jQuery.each({slideDown:genFx("show"),slideUp:genFx("hide"),slideToggle:genFx("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(name,props){jQuery.fn[name]=function(speed,easing,callback){return this.animate(props,speed,easing,callback);};});jQuery.timers=[];jQuery.fx.tick=function(){var timer,i=0,timers=jQuery.timers;fxNow=Date.now();for(;i<timers.length;i++){timer=timers[i];if(!timer()&&timers[i]===timer){timers.splice(i--,1);}}if(!timers.length){jQuery.fx.stop();}fxNow=undefined;};jQuery.fx.timer=function(timer){
jQuery.timers.push(timer);jQuery.fx.start();};jQuery.fx.interval=13;jQuery.fx.start=function(){if(inProgress){return;}inProgress=true;schedule();};jQuery.fx.stop=function(){inProgress=null;};jQuery.fx.speeds={slow:600,fast:200,_default:400};jQuery.fn.delay=function(time,type){time=jQuery.fx?jQuery.fx.speeds[time]||time:time;type=type||"fx";return this.queue(type,function(next,hooks){var timeout=window.setTimeout(next,time);hooks.stop=function(){window.clearTimeout(timeout);};});};(function(){var input=document.createElement("input"),select=document.createElement("select"),opt=select.appendChild(document.createElement("option"));input.type="checkbox";support.checkOn=input.value!=="";support.optSelected=opt.selected;input=document.createElement("input");input.value="t";input.type="radio";support.radioValue=input.value==="t";})();var boolHook,attrHandle=jQuery.expr.attrHandle;jQuery.fn.extend({attr:function(name,value){return access(this,jQuery.attr,name,value,arguments.length>1);},
removeAttr:function(name){return this.each(function(){jQuery.removeAttr(this,name);});}});jQuery.extend({attr:function(elem,name,value){var ret,hooks,nType=elem.nodeType;if(nType===3||nType===8||nType===2){return;}if(typeof elem.getAttribute==="undefined"){return jQuery.prop(elem,name,value);}if(nType!==1||!jQuery.isXMLDoc(elem)){hooks=jQuery.attrHooks[name.toLowerCase()]||(jQuery.expr.match.bool.test(name)?boolHook:undefined);}if(value!==undefined){if(value===null){jQuery.removeAttr(elem,name);return;}if(hooks&&"set"in hooks&&(ret=hooks.set(elem,value,name))!==undefined){return ret;}elem.setAttribute(name,value+"");return value;}if(hooks&&"get"in hooks&&(ret=hooks.get(elem,name))!==null){return ret;}ret=jQuery.find.attr(elem,name);return ret==null?undefined:ret;},attrHooks:{type:{set:function(elem,value){if(!support.radioValue&&value==="radio"&&nodeName(elem,"input")){var val=elem.value;elem.setAttribute("type",value);if(val){elem.value=val;}return value;}}}},removeAttr:function(elem,value){
var name,i=0,attrNames=value&&value.match(rnothtmlwhite);if(attrNames&&elem.nodeType===1){while((name=attrNames[i++])){elem.removeAttribute(name);}}}});boolHook={set:function(elem,value,name){if(value===false){jQuery.removeAttr(elem,name);}else{elem.setAttribute(name,name);}return name;}};jQuery.each(jQuery.expr.match.bool.source.match(/\w+/g),function(_i,name){var getter=attrHandle[name]||jQuery.find.attr;attrHandle[name]=function(elem,name,isXML){var ret,handle,lowercaseName=name.toLowerCase();if(!isXML){handle=attrHandle[lowercaseName];attrHandle[lowercaseName]=ret;ret=getter(elem,name,isXML)!=null?lowercaseName:null;attrHandle[lowercaseName]=handle;}return ret;};});var rfocusable=/^(?:input|select|textarea|button)$/i,rclickable=/^(?:a|area)$/i;jQuery.fn.extend({prop:function(name,value){return access(this,jQuery.prop,name,value,arguments.length>1);},removeProp:function(name){return this.each(function(){delete this[jQuery.propFix[name]||name];});}});jQuery.extend({prop:function(elem,name,value){
var ret,hooks,nType=elem.nodeType;if(nType===3||nType===8||nType===2){return;}if(nType!==1||!jQuery.isXMLDoc(elem)){name=jQuery.propFix[name]||name;hooks=jQuery.propHooks[name];}if(value!==undefined){if(hooks&&"set"in hooks&&(ret=hooks.set(elem,value,name))!==undefined){return ret;}return(elem[name]=value);}if(hooks&&"get"in hooks&&(ret=hooks.get(elem,name))!==null){return ret;}return elem[name];},propHooks:{tabIndex:{get:function(elem){var tabindex=jQuery.find.attr(elem,"tabindex");if(tabindex){return parseInt(tabindex,10);}if(rfocusable.test(elem.nodeName)||rclickable.test(elem.nodeName)&&elem.href){return 0;}return-1;}}},propFix:{"for":"htmlFor","class":"className"}});if(!support.optSelected){jQuery.propHooks.selected={get:function(elem){var parent=elem.parentNode;if(parent&&parent.parentNode){parent.parentNode.selectedIndex;}return null;},set:function(elem){var parent=elem.parentNode;if(parent){parent.selectedIndex;if(parent.parentNode){parent.parentNode.selectedIndex;}}}};}jQuery.each([
"tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){jQuery.propFix[this.toLowerCase()]=this;});function stripAndCollapse(value){var tokens=value.match(rnothtmlwhite)||[];return tokens.join(" ");}function getClass(elem){return elem.getAttribute&&elem.getAttribute("class")||"";}function classesToArray(value){if(Array.isArray(value)){return value;}if(typeof value==="string"){return value.match(rnothtmlwhite)||[];}return[];}jQuery.fn.extend({addClass:function(value){var classNames,cur,curValue,className,i,finalValue;if(isFunction(value)){return this.each(function(j){jQuery(this).addClass(value.call(this,j,getClass(this)));});}classNames=classesToArray(value);if(classNames.length){return this.each(function(){curValue=getClass(this);cur=this.nodeType===1&&(" "+stripAndCollapse(curValue)+" ");if(cur){for(i=0;i<classNames.length;i++){className=classNames[i];if(cur.indexOf(" "+className+" ")<0){cur+=className+" ";
}}finalValue=stripAndCollapse(cur);if(curValue!==finalValue){this.setAttribute("class",finalValue);}}});}return this;},removeClass:function(value){var classNames,cur,curValue,className,i,finalValue;if(isFunction(value)){return this.each(function(j){jQuery(this).removeClass(value.call(this,j,getClass(this)));});}if(!arguments.length){return this.attr("class","");}classNames=classesToArray(value);if(classNames.length){return this.each(function(){curValue=getClass(this);cur=this.nodeType===1&&(" "+stripAndCollapse(curValue)+" ");if(cur){for(i=0;i<classNames.length;i++){className=classNames[i];while(cur.indexOf(" "+className+" ")>-1){cur=cur.replace(" "+className+" "," ");}}finalValue=stripAndCollapse(cur);if(curValue!==finalValue){this.setAttribute("class",finalValue);}}});}return this;},toggleClass:function(value,stateVal){var classNames,className,i,self,type=typeof value,isValidValue=type==="string"||Array.isArray(value);if(isFunction(value)){return this.each(function(i){jQuery(this).toggleClass(
value.call(this,i,getClass(this),stateVal),stateVal);});}if(typeof stateVal==="boolean"&&isValidValue){return stateVal?this.addClass(value):this.removeClass(value);}classNames=classesToArray(value);return this.each(function(){if(isValidValue){self=jQuery(this);for(i=0;i<classNames.length;i++){className=classNames[i];if(self.hasClass(className)){self.removeClass(className);}else{self.addClass(className);}}}else if(value===undefined||type==="boolean"){className=getClass(this);if(className){dataPriv.set(this,"__className__",className);}if(this.setAttribute){this.setAttribute("class",className||value===false?"":dataPriv.get(this,"__className__")||"");}}});},hasClass:function(selector){var className,elem,i=0;className=" "+selector+" ";while((elem=this[i++])){if(elem.nodeType===1&&(" "+stripAndCollapse(getClass(elem))+" ").indexOf(className)>-1){return true;}}return false;}});var rreturn=/\r/g;jQuery.fn.extend({val:function(value){var hooks,ret,valueIsFunction,elem=this[0];if(!arguments.length){
if(elem){hooks=jQuery.valHooks[elem.type]||jQuery.valHooks[elem.nodeName.toLowerCase()];if(hooks&&"get"in hooks&&(ret=hooks.get(elem,"value"))!==undefined){return ret;}ret=elem.value;if(typeof ret==="string"){return ret.replace(rreturn,"");}return ret==null?"":ret;}return;}valueIsFunction=isFunction(value);return this.each(function(i){var val;if(this.nodeType!==1){return;}if(valueIsFunction){val=value.call(this,i,jQuery(this).val());}else{val=value;}if(val==null){val="";}else if(typeof val==="number"){val+="";}else if(Array.isArray(val)){val=jQuery.map(val,function(value){return value==null?"":value+"";});}hooks=jQuery.valHooks[this.type]||jQuery.valHooks[this.nodeName.toLowerCase()];if(!hooks||!("set"in hooks)||hooks.set(this,val,"value")===undefined){this.value=val;}});}});jQuery.extend({valHooks:{option:{get:function(elem){var val=jQuery.find.attr(elem,"value");return val!=null?val:stripAndCollapse(jQuery.text(elem));}},select:{get:function(elem){var value,option,i,options=elem.options,
index=elem.selectedIndex,one=elem.type==="select-one",values=one?null:[],max=one?index+1:options.length;if(index<0){i=max;}else{i=one?index:0;}for(;i<max;i++){option=options[i];if((option.selected||i===index)&&!option.disabled&&(!option.parentNode.disabled||!nodeName(option.parentNode,"optgroup"))){value=jQuery(option).val();if(one){return value;}values.push(value);}}return values;},set:function(elem,value){var optionSet,option,options=elem.options,values=jQuery.makeArray(value),i=options.length;while(i--){option=options[i];if(option.selected=jQuery.inArray(jQuery.valHooks.option.get(option),values)>-1){optionSet=true;}}if(!optionSet){elem.selectedIndex=-1;}return values;}}}});jQuery.each(["radio","checkbox"],function(){jQuery.valHooks[this]={set:function(elem,value){if(Array.isArray(value)){return(elem.checked=jQuery.inArray(jQuery(elem).val(),value)>-1);}}};if(!support.checkOn){jQuery.valHooks[this].get=function(elem){return elem.getAttribute("value")===null?"on":elem.value;};}});var location=window.location;
var nonce={guid:Date.now()};var rquery=(/\?/);jQuery.parseXML=function(data){var xml,parserErrorElem;if(!data||typeof data!=="string"){return null;}try{xml=(new window.DOMParser()).parseFromString(data,"text/xml");}catch(e){}parserErrorElem=xml&&xml.getElementsByTagName("parsererror")[0];if(!xml||parserErrorElem){jQuery.error("Invalid XML: "+(parserErrorElem?jQuery.map(parserErrorElem.childNodes,function(el){return el.textContent;}).join("\n"):data));}return xml;};var rfocusMorph=/^(?:focusinfocus|focusoutblur)$/,stopPropagationCallback=function(e){e.stopPropagation();};jQuery.extend(jQuery.event,{trigger:function(event,data,elem,onlyHandlers){var i,cur,tmp,bubbleType,ontype,handle,special,lastElement,eventPath=[elem||document],type=hasOwn.call(event,"type")?event.type:event,namespaces=hasOwn.call(event,"namespace")?event.namespace.split("."):[];cur=lastElement=tmp=elem=elem||document;if(elem.nodeType===3||elem.nodeType===8){return;}if(rfocusMorph.test(type+jQuery.event.triggered)){
return;}if(type.indexOf(".")>-1){namespaces=type.split(".");type=namespaces.shift();namespaces.sort();}ontype=type.indexOf(":")<0&&"on"+type;event=event[jQuery.expando]?event:new jQuery.Event(type,typeof event==="object"&&event);event.isTrigger=onlyHandlers?2:3;event.namespace=namespaces.join(".");event.rnamespace=event.namespace?new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)"):null;event.result=undefined;if(!event.target){event.target=elem;}data=data==null?[event]:jQuery.makeArray(data,[event]);special=jQuery.event.special[type]||{};if(!onlyHandlers&&special.trigger&&special.trigger.apply(elem,data)===false){return;}if(!onlyHandlers&&!special.noBubble&&!isWindow(elem)){bubbleType=special.delegateType||type;if(!rfocusMorph.test(bubbleType+type)){cur=cur.parentNode;}for(;cur;cur=cur.parentNode){eventPath.push(cur);tmp=cur;}if(tmp===(elem.ownerDocument||document)){eventPath.push(tmp.defaultView||tmp.parentWindow||window);}}i=0;while((cur=eventPath[i++])&&!event.isPropagationStopped()){
lastElement=cur;event.type=i>1?bubbleType:special.bindType||type;handle=(dataPriv.get(cur,"events")||Object.create(null))[event.type]&&dataPriv.get(cur,"handle");if(handle){handle.apply(cur,data);}handle=ontype&&cur[ontype];if(handle&&handle.apply&&acceptData(cur)){event.result=handle.apply(cur,data);if(event.result===false){event.preventDefault();}}}event.type=type;if(!onlyHandlers&&!event.isDefaultPrevented()){if((!special._default||special._default.apply(eventPath.pop(),data)===false)&&acceptData(elem)){if(ontype&&isFunction(elem[type])&&!isWindow(elem)){tmp=elem[ontype];if(tmp){elem[ontype]=null;}jQuery.event.triggered=type;if(event.isPropagationStopped()){lastElement.addEventListener(type,stopPropagationCallback);}elem[type]();if(event.isPropagationStopped()){lastElement.removeEventListener(type,stopPropagationCallback);}jQuery.event.triggered=undefined;if(tmp){elem[ontype]=tmp;}}}}return event.result;},simulate:function(type,elem,event){var e=jQuery.extend(new jQuery.Event(),
event,{type:type,isSimulated:true});jQuery.event.trigger(e,null,elem);}});jQuery.fn.extend({trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this);});},triggerHandler:function(type,data){var elem=this[0];if(elem){return jQuery.event.trigger(type,data,elem,true);}}});var rbracket=/\[\]$/,rCRLF=/\r?\n/g,rsubmitterTypes=/^(?:submit|button|image|reset|file)$/i,rsubmittable=/^(?:input|select|textarea|keygen)/i;function buildParams(prefix,obj,traditional,add){var name;if(Array.isArray(obj)){jQuery.each(obj,function(i,v){if(traditional||rbracket.test(prefix)){add(prefix,v);}else{buildParams(prefix+"["+(typeof v==="object"&&v!=null?i:"")+"]",v,traditional,add);}});}else if(!traditional&&toType(obj)==="object"){for(name in obj){buildParams(prefix+"["+name+"]",obj[name],traditional,add);}}else{add(prefix,obj);}}jQuery.param=function(a,traditional){var prefix,s=[],add=function(key,valueOrFunction){var value=isFunction(valueOrFunction)?valueOrFunction():
valueOrFunction;s[s.length]=encodeURIComponent(key)+"="+encodeURIComponent(value==null?"":value);};if(a==null){return"";}if(Array.isArray(a)||(a.jquery&&!jQuery.isPlainObject(a))){jQuery.each(a,function(){add(this.name,this.value);});}else{for(prefix in a){buildParams(prefix,a[prefix],traditional,add);}}return s.join("&");};jQuery.fn.extend({serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){var elements=jQuery.prop(this,"elements");return elements?jQuery.makeArray(elements):this;}).filter(function(){var type=this.type;return this.name&&!jQuery(this).is(":disabled")&&rsubmittable.test(this.nodeName)&&!rsubmitterTypes.test(type)&&(this.checked||!rcheckableType.test(type));}).map(function(_i,elem){var val=jQuery(this).val();if(val==null){return null;}if(Array.isArray(val)){return jQuery.map(val,function(val){return{name:elem.name,value:val.replace(rCRLF,"\r\n")};});}return{name:elem.name,value:val.replace(rCRLF,"\r\n")};
}).get();}});var r20=/%20/g,rhash=/#.*$/,rantiCache=/([?&])_=[^&]*/,rheaders=/^(.*?):[ \t]*([^\r\n]*)$/mg,rlocalProtocol=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\/\//,prefilters={},transports={},allTypes="*/".concat("*"),originAnchor=document.createElement("a");originAnchor.href=location.href;function addToPrefiltersOrTransports(structure){return function(dataTypeExpression,func){if(typeof dataTypeExpression!=="string"){func=dataTypeExpression;dataTypeExpression="*";}var dataType,i=0,dataTypes=dataTypeExpression.toLowerCase().match(rnothtmlwhite)||[];if(isFunction(func)){while((dataType=dataTypes[i++])){if(dataType[0]==="+"){dataType=dataType.slice(1)||"*";(structure[dataType]=structure[dataType]||[]).unshift(func);}else{(structure[dataType]=structure[dataType]||[]).push(func);}}}};}function inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR){var inspected={},seekingTransport=(structure===transports);
function inspect(dataType){var selected;inspected[dataType]=true;jQuery.each(structure[dataType]||[],function(_,prefilterOrFactory){var dataTypeOrTransport=prefilterOrFactory(options,originalOptions,jqXHR);if(typeof dataTypeOrTransport==="string"&&!seekingTransport&&!inspected[dataTypeOrTransport]){options.dataTypes.unshift(dataTypeOrTransport);inspect(dataTypeOrTransport);return false;}else if(seekingTransport){return!(selected=dataTypeOrTransport);}});return selected;}return inspect(options.dataTypes[0])||!inspected["*"]&&inspect("*");}function ajaxExtend(target,src){var key,deep,flatOptions=jQuery.ajaxSettings.flatOptions||{};for(key in src){if(src[key]!==undefined){(flatOptions[key]?target:(deep||(deep={})))[key]=src[key];}}if(deep){jQuery.extend(true,target,deep);}return target;}function ajaxHandleResponses(s,jqXHR,responses){var ct,type,finalDataType,firstDataType,contents=s.contents,dataTypes=s.dataTypes;while(dataTypes[0]==="*"){dataTypes.shift();if(ct===undefined){ct=s.mimeType||jqXHR.getResponseHeader("Content-Type");
}}if(ct){for(type in contents){if(contents[type]&&contents[type].test(ct)){dataTypes.unshift(type);break;}}}if(dataTypes[0]in responses){finalDataType=dataTypes[0];}else{for(type in responses){if(!dataTypes[0]||s.converters[type+" "+dataTypes[0]]){finalDataType=type;break;}if(!firstDataType){firstDataType=type;}}finalDataType=finalDataType||firstDataType;}if(finalDataType){if(finalDataType!==dataTypes[0]){dataTypes.unshift(finalDataType);}return responses[finalDataType];}}function ajaxConvert(s,response,jqXHR,isSuccess){var conv2,current,conv,tmp,prev,converters={},dataTypes=s.dataTypes.slice();if(dataTypes[1]){for(conv in s.converters){converters[conv.toLowerCase()]=s.converters[conv];}}current=dataTypes.shift();while(current){if(s.responseFields[current]){jqXHR[s.responseFields[current]]=response;}if(!prev&&isSuccess&&s.dataFilter){response=s.dataFilter(response,s.dataType);}prev=current;current=dataTypes.shift();if(current){if(current==="*"){current=prev;}else if(prev!=="*"&&prev!==current){
conv=converters[prev+" "+current]||converters["* "+current];if(!conv){for(conv2 in converters){tmp=conv2.split(" ");if(tmp[1]===current){conv=converters[prev+" "+tmp[0]]||converters["* "+tmp[0]];if(conv){if(conv===true){conv=converters[conv2];}else if(converters[conv2]!==true){current=tmp[0];dataTypes.unshift(tmp[1]);}break;}}}}if(conv!==true){if(conv&&s.throws){response=conv(response);}else{try{response=conv(response);}catch(e){return{state:"parsererror",error:conv?e:"No conversion from "+prev+" to "+current};}}}}}}return{state:"success",data:response};}jQuery.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:location.href,type:"GET",isLocal:rlocalProtocol.test(location.protocol),global:true,processData:true,async:true,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":allTypes,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},
responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":true,"text json":JSON.parse,"text xml":jQuery.parseXML},flatOptions:{url:true,context:true}},ajaxSetup:function(target,settings){return settings?ajaxExtend(ajaxExtend(target,jQuery.ajaxSettings),settings):ajaxExtend(jQuery.ajaxSettings,target);},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(url,options){if(typeof url==="object"){options=url;url=undefined;}options=options||{};var transport,cacheURL,responseHeadersString,responseHeaders,timeoutTimer,urlAnchor,completed,fireGlobals,i,uncached,s=jQuery.ajaxSetup({},options),callbackContext=s.context||s,globalEventContext=s.context&&(callbackContext.nodeType||callbackContext.jquery)?jQuery(callbackContext):jQuery.event,deferred=jQuery.Deferred(),completeDeferred=jQuery.Callbacks("once memory"),statusCode=s.statusCode||{},requestHeaders={},
requestHeadersNames={},strAbort="canceled",jqXHR={readyState:0,getResponseHeader:function(key){var match;if(completed){if(!responseHeaders){responseHeaders={};while((match=rheaders.exec(responseHeadersString))){responseHeaders[match[1].toLowerCase()+" "]=(responseHeaders[match[1].toLowerCase()+" "]||[]).concat(match[2]);}}match=responseHeaders[key.toLowerCase()+" "];}return match==null?null:match.join(", ");},getAllResponseHeaders:function(){return completed?responseHeadersString:null;},setRequestHeader:function(name,value){if(completed==null){name=requestHeadersNames[name.toLowerCase()]=requestHeadersNames[name.toLowerCase()]||name;requestHeaders[name]=value;}return this;},overrideMimeType:function(type){if(completed==null){s.mimeType=type;}return this;},statusCode:function(map){var code;if(map){if(completed){jqXHR.always(map[jqXHR.status]);}else{for(code in map){statusCode[code]=[statusCode[code],map[code]];}}}return this;},abort:function(statusText){var finalText=statusText||strAbort;
if(transport){transport.abort(finalText);}done(0,finalText);return this;}};deferred.promise(jqXHR);s.url=((url||s.url||location.href)+"").replace(rprotocol,location.protocol+"//");s.type=options.method||options.type||s.method||s.type;s.dataTypes=(s.dataType||"*").toLowerCase().match(rnothtmlwhite)||[""];if(s.crossDomain==null){urlAnchor=document.createElement("a");try{urlAnchor.href=s.url;urlAnchor.href=urlAnchor.href;s.crossDomain=originAnchor.protocol+"//"+originAnchor.host!==urlAnchor.protocol+"//"+urlAnchor.host;}catch(e){s.crossDomain=true;}}if(s.data&&s.processData&&typeof s.data!=="string"){s.data=jQuery.param(s.data,s.traditional);}inspectPrefiltersOrTransports(prefilters,s,options,jqXHR);if(completed){return jqXHR;}fireGlobals=jQuery.event&&s.global;if(fireGlobals&&jQuery.active++===0){jQuery.event.trigger("ajaxStart");}s.type=s.type.toUpperCase();s.hasContent=!rnoContent.test(s.type);cacheURL=s.url.replace(rhash,"");if(!s.hasContent){uncached=s.url.slice(cacheURL.length);if(s.data&&(s.processData||typeof s.data==="string")){
cacheURL+=(rquery.test(cacheURL)?"&":"?")+s.data;delete s.data;}if(s.cache===false){cacheURL=cacheURL.replace(rantiCache,"$1");uncached=(rquery.test(cacheURL)?"&":"?")+"_="+(nonce.guid++)+uncached;}s.url=cacheURL+uncached;}else if(s.data&&s.processData&&(s.contentType||"").indexOf("application/x-www-form-urlencoded")===0){s.data=s.data.replace(r20,"+");}if(s.ifModified){if(jQuery.lastModified[cacheURL]){jqXHR.setRequestHeader("If-Modified-Since",jQuery.lastModified[cacheURL]);}if(jQuery.etag[cacheURL]){jqXHR.setRequestHeader("If-None-Match",jQuery.etag[cacheURL]);}}if(s.data&&s.hasContent&&s.contentType!==false||options.contentType){jqXHR.setRequestHeader("Content-Type",s.contentType);}jqXHR.setRequestHeader("Accept",s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+(s.dataTypes[0]!=="*"?", "+allTypes+"; q=0.01":""):s.accepts["*"]);for(i in s.headers){jqXHR.setRequestHeader(i,s.headers[i]);}if(s.beforeSend&&(s.beforeSend.call(callbackContext,jqXHR,s)===false||completed)){
return jqXHR.abort();}strAbort="abort";completeDeferred.add(s.complete);jqXHR.done(s.success);jqXHR.fail(s.error);transport=inspectPrefiltersOrTransports(transports,s,options,jqXHR);if(!transport){done(-1,"No Transport");}else{jqXHR.readyState=1;if(fireGlobals){globalEventContext.trigger("ajaxSend",[jqXHR,s]);}if(completed){return jqXHR;}if(s.async&&s.timeout>0){timeoutTimer=window.setTimeout(function(){jqXHR.abort("timeout");},s.timeout);}try{completed=false;transport.send(requestHeaders,done);}catch(e){if(completed){throw e;}done(-1,e);}}function done(status,nativeStatusText,responses,headers){var isSuccess,success,error,response,modified,statusText=nativeStatusText;if(completed){return;}completed=true;if(timeoutTimer){window.clearTimeout(timeoutTimer);}transport=undefined;responseHeadersString=headers||"";jqXHR.readyState=status>0?4:0;isSuccess=status>=200&&status<300||status===304;if(responses){response=ajaxHandleResponses(s,jqXHR,responses);}if(!isSuccess&&jQuery.inArray("script",s.dataTypes)>-1&&
jQuery.inArray("json",s.dataTypes)<0){s.converters["text script"]=function(){};}response=ajaxConvert(s,response,jqXHR,isSuccess);if(isSuccess){if(s.ifModified){modified=jqXHR.getResponseHeader("Last-Modified");if(modified){jQuery.lastModified[cacheURL]=modified;}modified=jqXHR.getResponseHeader("etag");if(modified){jQuery.etag[cacheURL]=modified;}}if(status===204||s.type==="HEAD"){statusText="nocontent";}else if(status===304){statusText="notmodified";}else{statusText=response.state;success=response.data;error=response.error;isSuccess=!error;}}else{error=statusText;if(status||!statusText){statusText="error";if(status<0){status=0;}}}jqXHR.status=status;jqXHR.statusText=(nativeStatusText||statusText)+"";if(isSuccess){deferred.resolveWith(callbackContext,[success,statusText,jqXHR]);}else{deferred.rejectWith(callbackContext,[jqXHR,statusText,error]);}jqXHR.statusCode(statusCode);statusCode=undefined;if(fireGlobals){globalEventContext.trigger(isSuccess?"ajaxSuccess":"ajaxError",[jqXHR,s,isSuccess?success:error]);
}completeDeferred.fireWith(callbackContext,[jqXHR,statusText]);if(fireGlobals){globalEventContext.trigger("ajaxComplete",[jqXHR,s]);if(!(--jQuery.active)){jQuery.event.trigger("ajaxStop");}}}return jqXHR;},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},getScript:function(url,callback){return jQuery.get(url,undefined,callback,"script");}});jQuery.each(["get","post"],function(_i,method){jQuery[method]=function(url,data,callback,type){if(isFunction(data)){type=type||callback;callback=data;data=undefined;}return jQuery.ajax(jQuery.extend({url:url,type:method,dataType:type,data:data,success:callback},jQuery.isPlainObject(url)&&url));};});jQuery.ajaxPrefilter(function(s){var i;for(i in s.headers){if(i.toLowerCase()==="content-type"){s.contentType=s.headers[i]||"";}}});jQuery._evalUrl=function(url,options,doc){return jQuery.ajax({url:url,type:"GET",dataType:"script",cache:true,async:false,global:false,converters:{"text script":function(){}},dataFilter:function(response){
jQuery.globalEval(response,options,doc);}});};jQuery.fn.extend({wrapAll:function(html){var wrap;if(this[0]){if(isFunction(html)){html=html.call(this[0]);}wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){wrap.insertBefore(this[0]);}wrap.map(function(){var elem=this;while(elem.firstElementChild){elem=elem.firstElementChild;}return elem;}).append(this);}return this;},wrapInner:function(html){if(isFunction(html)){return this.each(function(i){jQuery(this).wrapInner(html.call(this,i));});}return this.each(function(){var self=jQuery(this),contents=self.contents();if(contents.length){contents.wrapAll(html);}else{self.append(html);}});},wrap:function(html){var htmlIsFunction=isFunction(html);return this.each(function(i){jQuery(this).wrapAll(htmlIsFunction?html.call(this,i):html);});},unwrap:function(selector){this.parent(selector).not("body").each(function(){jQuery(this).replaceWith(this.childNodes);});return this;}});jQuery.expr.pseudos.hidden=function(elem){
return!jQuery.expr.pseudos.visible(elem);};jQuery.expr.pseudos.visible=function(elem){return!!(elem.offsetWidth||elem.offsetHeight||elem.getClientRects().length);};jQuery.ajaxSettings.xhr=function(){try{return new window.XMLHttpRequest();}catch(e){}};var xhrSuccessStatus={0:200,1223:204},xhrSupported=jQuery.ajaxSettings.xhr();support.cors=!!xhrSupported&&("withCredentials"in xhrSupported);support.ajax=xhrSupported=!!xhrSupported;jQuery.ajaxTransport(function(options){var callback,errorCallback;if(support.cors||xhrSupported&&!options.crossDomain){return{send:function(headers,complete){var i,xhr=options.xhr();xhr.open(options.type,options.url,options.async,options.username,options.password);if(options.xhrFields){for(i in options.xhrFields){xhr[i]=options.xhrFields[i];}}if(options.mimeType&&xhr.overrideMimeType){xhr.overrideMimeType(options.mimeType);}if(!options.crossDomain&&!headers["X-Requested-With"]){headers["X-Requested-With"]="XMLHttpRequest";}for(i in headers){xhr.setRequestHeader(i,headers[i]);
}callback=function(type){return function(){if(callback){callback=errorCallback=xhr.onload=xhr.onerror=xhr.onabort=xhr.ontimeout=xhr.onreadystatechange=null;if(type==="abort"){xhr.abort();}else if(type==="error"){if(typeof xhr.status!=="number"){complete(0,"error");}else{complete(xhr.status,xhr.statusText);}}else{complete(xhrSuccessStatus[xhr.status]||xhr.status,xhr.statusText,(xhr.responseType||"text")!=="text"||typeof xhr.responseText!=="string"?{binary:xhr.response}:{text:xhr.responseText},xhr.getAllResponseHeaders());}}};};xhr.onload=callback();errorCallback=xhr.onerror=xhr.ontimeout=callback("error");if(xhr.onabort!==undefined){xhr.onabort=errorCallback;}else{xhr.onreadystatechange=function(){if(xhr.readyState===4){window.setTimeout(function(){if(callback){errorCallback();}});}};}callback=callback("abort");try{xhr.send(options.hasContent&&options.data||null);}catch(e){if(callback){throw e;}}},abort:function(){if(callback){callback();}}};}});jQuery.ajaxPrefilter(function(s){if(s.crossDomain){
s.contents.script=false;}});jQuery.ajaxSetup({accepts:{script:"text/javascript, application/javascript, "+"application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(text){jQuery.globalEval(text);return text;}}});jQuery.ajaxPrefilter("script",function(s){if(s.cache===undefined){s.cache=false;}if(s.crossDomain){s.type="GET";}});jQuery.ajaxTransport("script",function(s){if(s.crossDomain||s.scriptAttrs){var script,callback;return{send:function(_,complete){script=jQuery("<script>").attr(s.scriptAttrs||{}).prop({charset:s.scriptCharset,src:s.url}).on("load error",callback=function(evt){script.remove();callback=null;if(evt){complete(evt.type==="error"?404:200,evt.type);}});document.head.appendChild(script[0]);},abort:function(){if(callback){callback();}}};}});var oldCallbacks=[],rjsonp=/(=)\?(?=&|$)|\?\?/;jQuery.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var callback=oldCallbacks.pop()||(jQuery.expando+"_"+(nonce.guid++));
this[callback]=true;return callback;}});jQuery.ajaxPrefilter("json jsonp",function(s,originalSettings,jqXHR){var callbackName,overwritten,responseContainer,jsonProp=s.jsonp!==false&&(rjsonp.test(s.url)?"url":typeof s.data==="string"&&(s.contentType||"").indexOf("application/x-www-form-urlencoded")===0&&rjsonp.test(s.data)&&"data");if(jsonProp||s.dataTypes[0]==="jsonp"){callbackName=s.jsonpCallback=isFunction(s.jsonpCallback)?s.jsonpCallback():s.jsonpCallback;if(jsonProp){s[jsonProp]=s[jsonProp].replace(rjsonp,"$1"+callbackName);}else if(s.jsonp!==false){s.url+=(rquery.test(s.url)?"&":"?")+s.jsonp+"="+callbackName;}s.converters["script json"]=function(){if(!responseContainer){jQuery.error(callbackName+" was not called");}return responseContainer[0];};s.dataTypes[0]="json";overwritten=window[callbackName];window[callbackName]=function(){responseContainer=arguments;};jqXHR.always(function(){if(overwritten===undefined){jQuery(window).removeProp(callbackName);}else{window[callbackName]=overwritten;
}if(s[callbackName]){s.jsonpCallback=originalSettings.jsonpCallback;oldCallbacks.push(callbackName);}if(responseContainer&&isFunction(overwritten)){overwritten(responseContainer[0]);}responseContainer=overwritten=undefined;});return"script";}});support.createHTMLDocument=(function(){var body=document.implementation.createHTMLDocument("").body;body.innerHTML="<form></form><form></form>";return body.childNodes.length===2;})();jQuery.parseHTML=function(data,context,keepScripts){if(typeof data!=="string"){return[];}if(typeof context==="boolean"){keepScripts=context;context=false;}var base,parsed,scripts;if(!context){if(support.createHTMLDocument){context=document.implementation.createHTMLDocument("");base=context.createElement("base");base.href=document.location.href;context.head.appendChild(base);}else{context=document;}}parsed=rsingleTag.exec(data);scripts=!keepScripts&&[];if(parsed){return[context.createElement(parsed[1])];}parsed=buildFragment([data],context,scripts);if(scripts&&scripts.length){
jQuery(scripts).remove();}return jQuery.merge([],parsed.childNodes);};jQuery.fn.load=function(url,params,callback){var selector,type,response,self=this,off=url.indexOf(" ");if(off>-1){selector=stripAndCollapse(url.slice(off));url=url.slice(0,off);}if(isFunction(params)){callback=params;params=undefined;}else if(params&&typeof params==="object"){type="POST";}if(self.length>0){jQuery.ajax({url:url,type:type||"GET",dataType:"html",data:params}).done(function(responseText){response=arguments;self.html(selector?jQuery("<div>").append(jQuery.parseHTML(responseText)).find(selector):responseText);}).always(callback&&function(jqXHR,status){self.each(function(){callback.apply(this,response||[jqXHR.responseText,status,jqXHR]);});});}return this;};jQuery.expr.pseudos.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem;}).length;};jQuery.offset={setOffset:function(elem,options,i){var curPosition,curLeft,curCSSTop,curTop,curOffset,curCSSLeft,calculatePosition,
position=jQuery.css(elem,"position"),curElem=jQuery(elem),props={};if(position==="static"){elem.style.position="relative";}curOffset=curElem.offset();curCSSTop=jQuery.css(elem,"top");curCSSLeft=jQuery.css(elem,"left");calculatePosition=(position==="absolute"||position==="fixed")&&(curCSSTop+curCSSLeft).indexOf("auto")>-1;if(calculatePosition){curPosition=curElem.position();curTop=curPosition.top;curLeft=curPosition.left;}else{curTop=parseFloat(curCSSTop)||0;curLeft=parseFloat(curCSSLeft)||0;}if(isFunction(options)){options=options.call(elem,i,jQuery.extend({},curOffset));}if(options.top!=null){props.top=(options.top-curOffset.top)+curTop;}if(options.left!=null){props.left=(options.left-curOffset.left)+curLeft;}if("using"in options){options.using.call(elem,props);}else{curElem.css(props);}}};jQuery.fn.extend({offset:function(options){if(arguments.length){return options===undefined?this:this.each(function(i){jQuery.offset.setOffset(this,options,i);});}var rect,win,elem=this[0];if(!elem){
return;}if(!elem.getClientRects().length){return{top:0,left:0};}rect=elem.getBoundingClientRect();win=elem.ownerDocument.defaultView;return{top:rect.top+win.pageYOffset,left:rect.left+win.pageXOffset};},position:function(){if(!this[0]){return;}var offsetParent,offset,doc,elem=this[0],parentOffset={top:0,left:0};if(jQuery.css(elem,"position")==="fixed"){offset=elem.getBoundingClientRect();}else{offset=this.offset();doc=elem.ownerDocument;offsetParent=elem.offsetParent||doc.documentElement;while(offsetParent&&(offsetParent===doc.body||offsetParent===doc.documentElement)&&jQuery.css(offsetParent,"position")==="static"){offsetParent=offsetParent.parentNode;}if(offsetParent&&offsetParent!==elem&&offsetParent.nodeType===1){parentOffset=jQuery(offsetParent).offset();parentOffset.top+=jQuery.css(offsetParent,"borderTopWidth",true);parentOffset.left+=jQuery.css(offsetParent,"borderLeftWidth",true);}}return{top:offset.top-parentOffset.top-jQuery.css(elem,"marginTop",true),left:offset.left-parentOffset.left-jQuery.css(elem,"marginLeft",true)
};},offsetParent:function(){return this.map(function(){var offsetParent=this.offsetParent;while(offsetParent&&jQuery.css(offsetParent,"position")==="static"){offsetParent=offsetParent.offsetParent;}return offsetParent||documentElement;});}});jQuery.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(method,prop){var top="pageYOffset"===prop;jQuery.fn[method]=function(val){return access(this,function(elem,method,val){var win;if(isWindow(elem)){win=elem;}else if(elem.nodeType===9){win=elem.defaultView;}if(val===undefined){return win?win[prop]:elem[method];}if(win){win.scrollTo(!top?val:win.pageXOffset,top?val:win.pageYOffset);}else{elem[method]=val;}},method,val,arguments.length);};});jQuery.each(["top","left"],function(_i,prop){jQuery.cssHooks[prop]=addGetHookIf(support.pixelPosition,function(elem,computed){if(computed){computed=curCSS(elem,prop);return rnumnonpx.test(computed)?jQuery(elem).position()[prop]+"px":computed;}});});jQuery.each({Height:"height",Width:"width"},function(name,type){
jQuery.each({padding:"inner"+name,content:type,"":"outer"+name},function(defaultExtra,funcName){jQuery.fn[funcName]=function(margin,value){var chainable=arguments.length&&(defaultExtra||typeof margin!=="boolean"),extra=defaultExtra||(margin===true||value===true?"margin":"border");return access(this,function(elem,type,value){var doc;if(isWindow(elem)){return funcName.indexOf("outer")===0?elem["inner"+name]:elem.document.documentElement["client"+name];}if(elem.nodeType===9){doc=elem.documentElement;return Math.max(elem.body["scroll"+name],doc["scroll"+name],elem.body["offset"+name],doc["offset"+name],doc["client"+name]);}return value===undefined?jQuery.css(elem,type,extra):jQuery.style(elem,type,value,extra);},type,chainable?margin:undefined,chainable);};});});jQuery.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(_i,type){jQuery.fn[type]=function(fn){return this.on(type,fn);};});jQuery.fn.extend({bind:function(types,data,fn){return this.on(types,null,data,fn);
},unbind:function(types,fn){return this.off(types,null,fn);},delegate:function(selector,types,data,fn){return this.on(types,selector,data,fn);},undelegate:function(selector,types,fn){return arguments.length===1?this.off(selector,"**"):this.off(types,selector||"**",fn);},hover:function(fnOver,fnOut){return this.on("mouseenter",fnOver).on("mouseleave",fnOut||fnOver);}});jQuery.each(("blur focus focusin focusout resize scroll click dblclick "+"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave "+"change select submit keydown keypress keyup contextmenu").split(" "),function(_i,name){jQuery.fn[name]=function(data,fn){return arguments.length>0?this.on(name,null,data,fn):this.trigger(name);};});var rtrim=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;jQuery.proxy=function(fn,context){var tmp,args,proxy;if(typeof context==="string"){tmp=fn[context];context=fn;fn=tmp;}if(!isFunction(fn)){return undefined;}args=slice.call(arguments,2);proxy=function(){return fn.apply(context||this,args.concat(slice.call(arguments)));
};proxy.guid=fn.guid=fn.guid||jQuery.guid++;return proxy;};jQuery.holdReady=function(hold){if(hold){jQuery.readyWait++;}else{jQuery.ready(true);}};jQuery.isArray=Array.isArray;jQuery.parseJSON=JSON.parse;jQuery.nodeName=nodeName;jQuery.isFunction=isFunction;jQuery.isWindow=isWindow;jQuery.camelCase=camelCase;jQuery.type=toType;jQuery.now=Date.now;jQuery.isNumeric=function(obj){var type=jQuery.type(obj);return(type==="number"||type==="string")&&!isNaN(obj-parseFloat(obj));};jQuery.trim=function(text){return text==null?"":(text+"").replace(rtrim,"$1");};if(typeof define==="function"&&define.amd){define("jquery",[],function(){return jQuery;});}var _jQuery=window.jQuery,_$=window.$;jQuery.noConflict=function(deep){if(window.$===jQuery){window.$=_$;}if(deep&&window.jQuery===jQuery){window.jQuery=_jQuery;}return jQuery;};if(typeof noGlobal==="undefined"){window.jQuery=window.$=jQuery;}return jQuery;});
}];});
mw.loader.impl(function(){return["oojs-ui-core@sgcju",function($,jQuery,require,module){(function(OO){'use strict';OO.ui={};OO.ui.bind=$.proxy;OO.ui.Keys={UNDEFINED:0,BACKSPACE:8,DELETE:46,LEFT:37,RIGHT:39,UP:38,DOWN:40,ENTER:13,END:35,HOME:36,TAB:9,PAGEUP:33,PAGEDOWN:34,ESCAPE:27,SHIFT:16,SPACE:32};OO.ui.MouseButtons={LEFT:1,MIDDLE:2,RIGHT:3};OO.ui.elementId=0;OO.ui.generateElementId=function(){OO.ui.elementId++;return'ooui-'+OO.ui.elementId;};OO.ui.isFocusableElement=function($element){const element=$element[0];if(element.disabled){return false;}if(!($.expr.pseudos.visible(element)&&!$element.parents().addBack().filter(function(){return $.css(this,'visibility')==='hidden';}).length)){return false;}if(element.contentEditable==='true'){return true;}if($element.prop('tabIndex')>=0){return true;}const nodeName=element.nodeName.toLowerCase();if(['input','select','textarea','button','object'].includes(nodeName)){return true;}if((nodeName==='a'||nodeName==='area')&&$element.attr('href')!==undefined){return true;}return false;};OO.ui.findFocusable=function($container,backwards){
let $focusable=$([]),$focusableCandidates=$container.find('input, select, textarea, button, object, a, area, [contenteditable], [tabindex]');if(backwards){$focusableCandidates=Array.prototype.reverse.call($focusableCandidates);}$focusableCandidates.each((i,el)=>{const $el=$(el);if(OO.ui.isFocusableElement($el)){$focusable=$el;return false;}});return $focusable;};OO.ui.getUserLanguages=function(){return['en'];};OO.ui.getLocalValue=function(obj,lang,fallback){if(obj[lang]){return obj[lang];}const langs=OO.ui.getUserLanguages();for(let i=0,len=langs.length;i<len;i++){lang=langs[i];if(obj[lang]){return obj[lang];}}if(obj[fallback]){return obj[fallback];}for(lang in obj){return obj[lang];}return undefined;};OO.ui.contains=function(containers,contained,matchContainers){if(!Array.isArray(containers)){containers=[containers];}for(let i=containers.length-1;i>=0;i--){if((matchContainers&&contained===containers[i])||$.contains(containers[i],contained)){return true;}}return false;};OO.ui.debounce=function(func,wait,immediate){
let timeout;return function(){const context=this,args=arguments,later=function(){timeout=null;if(!immediate){func.apply(context,args);}};if(immediate&&!timeout){func.apply(context,args);}if(!timeout||wait){clearTimeout(timeout);timeout=setTimeout(later,wait);}};};OO.ui.warnDeprecation=function(message){if(OO.getProp(window,'console','warn')!==undefined){console.warn(message);}};OO.ui.throttle=function(func,wait){let context,args,timeout,previous=Date.now()-wait;const run=function(){timeout=null;previous=Date.now();func.apply(context,args);};return function(){const remaining=Math.max(wait-(Date.now()-previous),0);context=this;args=arguments;if(!timeout){timeout=setTimeout(run,remaining);}};};OO.ui.infuse=function(node,config){if(typeof node==='string'){OO.ui.warnDeprecation('Passing a selector to infuse is deprecated. Use an HTMLElement or jQuery collection instead.');}return OO.ui.Element.static.infuse(node,config);};OO.ui.msg=function(key,...params){const messages=OO.ui.msg.messages;
let message=messages[key];if(typeof message==='string'){message=message.replace(/\$(\d+)/g,(unused,n)=>{const i=parseInt(n,10);return params[i-1]!==undefined?params[i-1]:'$'+n;});}else{message='['+key+']';}return message;};OO.ui.deferMsg=function(){return()=>OO.ui.msg(...arguments);};OO.ui.resolveMsg=function(msg){if(typeof msg==='function'){return msg();}return msg;};OO.ui.isSafeUrl=function(url){const protocolAllowList=['bitcoin','ftp','ftps','geo','git','gopher','http','https','irc','ircs','magnet','mailto','mms','news','nntp','redis','sftp','sip','sips','sms','ssh','svn','tel','telnet','urn','worldwind','xmpp'];if(url===''){return true;}for(let i=0;i<protocolAllowList.length;i++){if(url.startsWith(protocolAllowList[i]+':')){return true;}}if(url.startsWith('/')||url.startsWith('./')){return true;}if(url.startsWith('?')||url.startsWith('#')){return true;}return false;};OO.ui.isMobile=function(){return false;};OO.ui.getViewportSpacing=function(){return{top:0,right:0,bottom:0,left:0};};
OO.ui.getTeleportTarget=function(){return document.body;};OO.ui.getDefaultOverlay=function(){if(!OO.ui.$defaultOverlay){OO.ui.$defaultOverlay=$('<div>').addClass('oo-ui-defaultOverlay');$(OO.ui.getTeleportTarget()).append(OO.ui.$defaultOverlay);}return OO.ui.$defaultOverlay;};if(window.customElements){window.customElements.define('ooui-connect-detector',class extends HTMLElement{connectedCallback(){if(this.onConnectOOUI instanceof Function){this.onConnectOOUI();}}});}OO.ui.msg.messages={"ooui-copytextlayout-copy":"Copy","ooui-outline-control-move-down":"Move item down","ooui-outline-control-move-up":"Move item up","ooui-outline-control-remove":"Remove item","ooui-toolbar-more":"More","ooui-toolgroup-expand":"More","ooui-toolgroup-collapse":"Fewer","ooui-item-remove":"Remove","ooui-dialog-message-accept":"OK","ooui-dialog-message-reject":"Cancel","ooui-dialog-process-error":"Something went wrong","ooui-dialog-process-back":"Back","ooui-dialog-process-dismiss":"Dismiss",
"ooui-dialog-process-retry":"Try again","ooui-dialog-process-continue":"Continue","ooui-combobox-button-label":"Toggle options","ooui-selectfile-button-select":"Select a file","ooui-selectfile-button-select-multiple":"Select files","ooui-selectfile-placeholder":"No file is selected","ooui-selectfile-dragdrop-placeholder":"Drop file here","ooui-selectfile-dragdrop-placeholder-multiple":"Drop files here","ooui-popup-widget-close-button-aria-label":"Close","ooui-field-help":"Help"};OO.ui.mixin={};OO.ui.Element=function OoUiElement(config){config=config||{};if(OO.ui.isDemo){this.initialConfig=config;}this.elementId=null;this.visible=true;this.data=config.data;this.$element=config.$element||$(window.document.createElement(this.getTagName()));this.elementGroup=null;const doc=OO.ui.Element.static.getDocument(this.$element);if(Array.isArray(config.classes)){this.$element.addClass(config.classes);}if(config.id){this.setElementId(config.id);}if(config.text){this.$element.text(config.text);}if(config.content){
this.$element.append(config.content.map((v)=>{if(typeof v==='string'){return v?doc.createTextNode(v):undefined;}else if(v instanceof OO.ui.HtmlSnippet){return v.toString();}else if(v instanceof OO.ui.Element){return v.$element;}return v;}));}if(config.$content){this.$element.append(config.$content);}};OO.initClass(OO.ui.Element);OO.ui.Element.static.tagName='div';OO.ui.Element.static.infuse=function(node,config){const obj=OO.ui.Element.static.unsafeInfuse(node,config,false);return obj;};OO.ui.Element.static.unsafeInfuse=function(elem,config,domPromise){let $elem=$(elem);if($elem.length>1){throw new Error('Collection contains more than one element');}if(!$elem.length){throw new Error('Widget not found');}if($elem[0].$oouiInfused){$elem=$elem[0].$oouiInfused;}const id=$elem.attr('id');const doc=this.getDocument($elem);let data=$elem.data('ooui-infused');if(data){if(data===true){throw new Error('Circular dependency! '+id);}if(domPromise){const stateCache=data.constructor.static.gatherPreInfuseState($elem,data);
domPromise.done(data.restorePreInfuseState.bind(data,stateCache));const infusedChildrenCache=$elem.data('ooui-infused-children');if(infusedChildrenCache&&infusedChildrenCache.length){infusedChildrenCache.forEach((childData)=>{const childState=childData.constructor.static.gatherPreInfuseState($elem,childData);domPromise.done(childData.restorePreInfuseState.bind(childData,childState));});}}return data;}data=$elem.attr('data-ooui');if(!data){throw new Error('No infusion data found: '+id);}try{data=JSON.parse(data);}catch(_){data=null;}if(!(data&&data._)){throw new Error('No valid infusion data found: '+id);}if(data._==='Tag'){return new OO.ui.Element(Object.assign({},config,{$element:$elem}));}const parts=data._.split('.');const cls=OO.getProp.apply(OO,[window].concat(parts));if(!(cls&&(cls===OO.ui.Element||cls.prototype instanceof OO.ui.Element))){throw new Error('Unknown widget type: id: '+id+', class: '+data._);}let top;if(!domPromise){top=$.Deferred();domPromise=top.promise();}$elem.data('ooui-infused',true);
data.id=id;const infusedChildren=[];data=OO.copy(data,null,(value)=>{let infused;if(OO.isPlainObject(value)){if(value.tag&&doc.getElementById(value.tag)){infused=OO.ui.Element.static.unsafeInfuse(doc.getElementById(value.tag),config,domPromise);infusedChildren.push(infused);infusedChildren.push.apply(infusedChildren,infused.$element.data('ooui-infused-children')||[]);infused.$element.removeData('ooui-infused-children');return infused;}if(value.html!==undefined){return new OO.ui.HtmlSnippet(value.html);}}});data=cls.static.reusePreInfuseDOM($elem[0],data);const state=cls.static.gatherPreInfuseState($elem[0],data);const obj=new cls(Object.assign({},config,data));$elem[0].$oouiInfused=obj.$element;if(top){if($elem[0]!==obj.$element[0]){$elem.replaceWith(obj.$element);}top.resolve();}obj.$element.data({'ooui-infused':obj,'ooui-infused-children':infusedChildren}).attr('data-ooui','');domPromise.done(obj.restorePreInfuseState.bind(obj,state));return obj;};OO.ui.Element.static.reusePreInfuseDOM=function(node,config){
return config;};OO.ui.Element.static.gatherPreInfuseState=function(){return{};};OO.ui.Element.static.getDocument=function(obj){return obj.ownerDocument||obj.document||(obj.nodeType===Node.DOCUMENT_NODE&&obj)||(obj[0]&&obj[0].ownerDocument)||obj.context||null;};OO.ui.Element.static.getWindow=function(obj){const doc=this.getDocument(obj);return doc.defaultView;};OO.ui.Element.static.getDir=function(obj){if(obj instanceof $){obj=obj[0];}const isDoc=obj.nodeType===Node.DOCUMENT_NODE;const isWin=obj.document!==undefined;if(isDoc||isWin){if(isWin){obj=obj.document;}obj=obj.body;}return $(obj).css('direction');};OO.ui.Element.static.getFrameOffset=function(from,to,offset){if(!to){to=window;}if(!offset){offset={top:0,left:0};}if(from.parent===from){return offset;}let frame;const frames=from.parent.document.getElementsByTagName('iframe');for(let i=0,len=frames.length;i<len;i++){if(frames[i].contentWindow===from){frame=frames[i];break;}}if(frame){const rect=frame.getBoundingClientRect();offset.left+=rect.left;
offset.top+=rect.top;if(from!==to){this.getFrameOffset(from.parent,offset);}}return offset;};OO.ui.Element.static.getRelativePosition=function($element,$anchor){const pos=$element.offset();const anchorPos=$anchor.offset();const anchorDocument=this.getDocument($anchor);let elementDocument=this.getDocument($element);while(elementDocument!==anchorDocument){const iframe=elementDocument.defaultView.frameElement;if(!iframe){throw new Error('$element frame is not contained in $anchor frame');}const iframePos=$(iframe).offset();pos.left+=iframePos.left;pos.top+=iframePos.top;elementDocument=this.getDocument(iframe);}pos.left-=anchorPos.left;pos.top-=anchorPos.top;return pos;};OO.ui.Element.static.getBorders=function(el){const doc=this.getDocument(el),win=doc.defaultView,style=win.getComputedStyle(el,null),$el=$(el),top=parseFloat(style?style.borderTopWidth:$el.css('borderTopWidth'))||0,left=parseFloat(style?style.borderLeftWidth:$el.css('borderLeftWidth'))||0,bottom=parseFloat(style?style.borderBottomWidth:$el.css('borderBottomWidth'))||0,
right=parseFloat(style?style.borderRightWidth:$el.css('borderRightWidth'))||0;return{top:top,left:left,bottom:bottom,right:right};};OO.ui.Element.static.getDimensions=function(el){const doc=this.getDocument(el),win=doc.defaultView;if(win===el||el===doc.documentElement){const $win=$(win);return{borders:{top:0,left:0,bottom:0,right:0},scroll:{top:$win.scrollTop(),left:OO.ui.Element.static.getScrollLeft(win)},scrollbar:{right:0,bottom:0},rect:{top:0,left:0,bottom:$win.innerHeight(),right:$win.innerWidth()}};}else{const $el=$(el);return{borders:this.getBorders(el),scroll:{top:$el.scrollTop(),left:OO.ui.Element.static.getScrollLeft(el)},scrollbar:{right:$el.innerWidth()-el.clientWidth,bottom:$el.innerHeight()-el.clientHeight},rect:el.getBoundingClientRect()};}};(function(){let rtlScrollType=null;function rtlScrollTypeTest(){const $definer=$('<div>').attr({dir:'rtl',style:'font-size: 14px; width: 4px; height: 1px; position: absolute; top: -1000px; overflow: scroll;'}).text('ABCD'),definer=$definer[0];
$definer.appendTo('body');if(definer.scrollLeft>0){rtlScrollType='default';}else{definer.scrollLeft=1;if(definer.scrollLeft===0){rtlScrollType='negative';}}$definer.remove();}function isRoot(el){return el===el.window||el===el.ownerDocument.body||el===el.ownerDocument.documentElement;}OO.ui.Element.static.computeNormalizedScrollLeft=function(nativeOffset,el){const direction=isRoot(el)?'ltr':$(el).css('direction');if(direction==='rtl'){if(rtlScrollType===null){rtlScrollTypeTest();}if(rtlScrollType==='reverse'){return-nativeOffset;}else if(rtlScrollType==='default'){return nativeOffset-el.scrollWidth+el.clientWidth;}}return nativeOffset;};OO.ui.Element.static.computeNativeScrollLeft=function(normalizedOffset,el){const direction=isRoot(el)?'ltr':$(el).css('direction');if(direction==='rtl'){if(rtlScrollType===null){rtlScrollTypeTest();}if(rtlScrollType==='reverse'){return-normalizedOffset;}else if(rtlScrollType==='default'){return normalizedOffset+el.scrollWidth-el.clientWidth;}}return normalizedOffset;
};OO.ui.Element.static.getScrollLeft=function(el){let scrollLeft=isRoot(el)?$(window).scrollLeft():el.scrollLeft;scrollLeft=OO.ui.Element.static.computeNormalizedScrollLeft(scrollLeft,el);return scrollLeft;};OO.ui.Element.static.setScrollLeft=function(el,scrollLeft){scrollLeft=OO.ui.Element.static.computeNativeScrollLeft(scrollLeft,el);if(isRoot(el)){$(window).scrollLeft(scrollLeft);}else{el.scrollLeft=scrollLeft;}};}());OO.ui.Element.static.getRootScrollableElement=function(el){const doc=this.getDocument(el);if(OO.ui.scrollableElement===undefined){const body=doc.body;const scrollTop=body.scrollTop;body.scrollTop=1;if(Math.round(body.scrollTop)===1){body.scrollTop=scrollTop;OO.ui.scrollableElement='body';}else{OO.ui.scrollableElement='documentElement';}}return doc[OO.ui.scrollableElement];};OO.ui.Element.static.getClosestScrollableContainer=function(el,dimension){const doc=this.getDocument(el);const rootScrollableElement=this.getRootScrollableElement(el);let props=['overflow-x','overflow-y'];
let $parent=$(el).parent();if(el===doc.documentElement){return rootScrollableElement;}if(dimension==='x'||dimension==='y'){props=['overflow-'+dimension];}while($parent.length&&$parent[0]!==doc){if($parent[0]===rootScrollableElement){return $parent[0];}let i=props.length;while(i--){const val=$parent.css(props[i]);if(val==='auto'||val==='scroll'){if($parent[0]===doc.body){return rootScrollableElement;}else{return $parent[0];}}}$parent=$parent.parent();}return rootScrollableElement;};OO.ui.Element.static.scrollIntoView=function(elOrPosition,config){const deferred=$.Deferred();config=config||{};const padding=Object.assign({top:0,bottom:0,left:0,right:0},config.padding);let animate=config.animate!==false;if(window.matchMedia('(prefers-reduced-motion: reduce)').matches){animate=false;}const animations={};const elementPosition=elOrPosition instanceof HTMLElement?this.getDimensions(elOrPosition).rect:elOrPosition;const container=config.scrollContainer||(elOrPosition instanceof HTMLElement?this.getClosestScrollableContainer(elOrPosition,config.direction):
this.getClosestScrollableContainer(window.document.body));const $container=$(container);const containerDimensions=this.getDimensions(container);const $window=$(this.getWindow(container));let position;if($container.is('html, body')){position={top:elementPosition.top,bottom:$window.innerHeight()-elementPosition.bottom,left:elementPosition.left,right:$window.innerWidth()-elementPosition.right};}else{position={top:elementPosition.top-(containerDimensions.rect.top+containerDimensions.borders.top),bottom:containerDimensions.rect.bottom-containerDimensions.borders.bottom-containerDimensions.scrollbar.bottom-elementPosition.bottom,left:elementPosition.left-(containerDimensions.rect.left+containerDimensions.borders.left),right:containerDimensions.rect.right-containerDimensions.borders.right-containerDimensions.scrollbar.right-elementPosition.right};}const hasAlignTo=(align)=>Array.isArray(config.alignTo)?config.alignTo.includes(align):config.alignTo===align||(align==='top'&&config.alignToTop);
if(!config.direction||config.direction==='y'){const alignToTop=hasAlignTo('top');const alignToBottom=hasAlignTo('bottom');if(alignToTop||(!alignToBottom&&position.top<padding.top)){animations.scrollTop=containerDimensions.scroll.top+position.top-padding.top;}else if(alignToBottom||position.bottom<padding.bottom){animations.scrollTop=containerDimensions.scroll.top+Math.min(position.top-padding.top,-position.bottom+padding.bottom);}}if(!config.direction||config.direction==='x'){const alignToLeft=hasAlignTo('left');const alignToRight=hasAlignTo('right');if(alignToLeft||(!alignToRight&&position.left<padding.left)){animations.scrollLeft=containerDimensions.scroll.left+position.left-padding.left;}else if(alignToRight||position.right<padding.right){animations.scrollLeft=containerDimensions.scroll.left+Math.min(position.left-padding.left,-position.right+padding.right);}if(animations.scrollLeft!==undefined){animations.scrollLeft=OO.ui.Element.static.computeNativeScrollLeft(animations.scrollLeft,container);
}}if(!$.isEmptyObject(animations)){if(animate){$container.stop(true).animate(animations,{duration:config.duration===undefined?'fast':config.duration,always:deferred.resolve});}else{$container.stop(true);for(const method in animations){$container[method](animations[method]);}deferred.resolve();}}else{deferred.resolve();}return deferred.promise();};OO.ui.Element.static.reconsiderScrollbars=function(el){const scrollLeft=el.scrollLeft;const scrollTop=el.scrollTop;const nodes=[];while(el.firstChild){nodes.push(el.firstChild);el.removeChild(el.firstChild);}el.offsetHeight;for(let i=0,len=nodes.length;i<len;i++){el.appendChild(nodes[i]);}el.scrollLeft=scrollLeft;el.scrollTop=scrollTop;};OO.ui.Element.prototype.toggle=function(show){show=show===undefined?!this.visible:!!show;if(show!==this.isVisible()){this.visible=show;this.$element.toggleClass('oo-ui-element-hidden',!this.visible);this.emit('toggle',show);}return this;};OO.ui.Element.prototype.isVisible=function(){return this.visible;};OO.ui.Element.prototype.getData=function(){
return this.data;};OO.ui.Element.prototype.setData=function(data){this.data=data;return this;};OO.ui.Element.prototype.setElementId=function(id){this.elementId=id;this.$element.attr('id',id);return this;};OO.ui.Element.prototype.getElementId=function(){if(this.elementId===null){this.setElementId(OO.ui.generateElementId());}return this.elementId;};OO.ui.Element.prototype.supports=function(methods){if(!Array.isArray(methods)){return typeof this[methods]==='function';}return methods.every((method)=>typeof this[method]==='function');};OO.ui.Element.prototype.updateThemeClasses=function(){OO.ui.theme.queueUpdateElementClasses(this);};OO.ui.Element.prototype.getTagName=function(){return this.constructor.static.tagName;};OO.ui.Element.prototype.isElementAttached=function(){return this.$element[0].isConnected;};OO.ui.Element.prototype.getElementDocument=function(){return OO.ui.Element.static.getDocument(this.$element);};OO.ui.Element.prototype.getElementWindow=function(){return OO.ui.Element.static.getWindow(this.$element);
};OO.ui.Element.prototype.getClosestScrollableElementContainer=function(){return OO.ui.Element.static.getClosestScrollableContainer(this.$element[0]);};OO.ui.Element.prototype.getElementGroup=function(){return this.elementGroup;};OO.ui.Element.prototype.setElementGroup=function(group){this.elementGroup=group;return this;};OO.ui.Element.prototype.scrollElementIntoView=function(config){if(!this.isElementAttached()||!this.isVisible()||(this.getElementGroup()&&!this.getElementGroup().isVisible())){return $.Deferred().resolve();}return OO.ui.Element.static.scrollIntoView(this.$element[0],config);};OO.ui.Element.prototype.restorePreInfuseState=function(){};OO.ui.HtmlSnippet=function OoUiHtmlSnippet(content){this.content=content;};OO.initClass(OO.ui.HtmlSnippet);OO.ui.HtmlSnippet.prototype.toString=function(){return this.content;};OO.ui.Layout=function OoUiLayout(config){config=config||{};OO.ui.Layout.super.call(this,config);OO.EventEmitter.call(this);this.$element.addClass('oo-ui-layout');};
OO.inheritClass(OO.ui.Layout,OO.ui.Element);OO.mixinClass(OO.ui.Layout,OO.EventEmitter);OO.ui.Layout.prototype.resetScroll=function(){this.$element[0].scrollTop=0;OO.ui.Element.static.setScrollLeft(this.$element[0],0);return this;};OO.ui.Widget=function OoUiWidget(config){OO.ui.Widget.super.call(this,config);OO.EventEmitter.call(this);this.disabled=null;this.wasDisabled=null;this.$element.addClass('oo-ui-widget');this.setDisabled(config&&config.disabled);};OO.inheritClass(OO.ui.Widget,OO.ui.Element);OO.mixinClass(OO.ui.Widget,OO.EventEmitter);OO.ui.Widget.prototype.isDisabled=function(){return this.disabled;};OO.ui.Widget.prototype.setDisabled=function(disabled){this.disabled=!!disabled;const isDisabled=this.isDisabled();if(isDisabled!==this.wasDisabled){this.$element.toggleClass('oo-ui-widget-disabled',isDisabled);this.$element.toggleClass('oo-ui-widget-enabled',!isDisabled);this.$element.attr('aria-disabled',isDisabled?'true':null);this.emit('disable',isDisabled);this.updateThemeClasses();
this.wasDisabled=isDisabled;}return this;};OO.ui.Widget.prototype.updateDisabled=function(){this.setDisabled(this.disabled);return this;};OO.ui.Widget.prototype.getInputId=function(){return null;};OO.ui.Widget.prototype.simulateLabelClick=function(){};OO.ui.Widget.prototype.setLabelledBy=function(id){if(id){this.$element.attr('aria-labelledby',id);}else{this.$element.removeAttr('aria-labelledby');}};OO.ui.Theme=function OoUiTheme(){this.elementClassesQueue=[];this.debouncedUpdateQueuedElementClasses=OO.ui.debounce(this.updateQueuedElementClasses);};OO.initClass(OO.ui.Theme);OO.ui.Theme.prototype.getElementClasses=function(){return{on:[],off:[]};};OO.ui.Theme.prototype.updateElementClasses=function(element){const domElements=[];if(element.$icon){domElements.push(element.$icon[0]);}if(element.$indicator){domElements.push(element.$indicator[0]);}if(domElements.length){const classes=this.getElementClasses(element);$(domElements).removeClass(classes.off).addClass(classes.on);}};OO.ui.Theme.prototype.updateQueuedElementClasses=function(){
for(let i=0;i<this.elementClassesQueue.length;i++){this.updateElementClasses(this.elementClassesQueue[i]);}this.elementClassesQueue=[];};OO.ui.Theme.prototype.queueUpdateElementClasses=function(element){if(this.elementClassesQueue.lastIndexOf(element)!==-1){return;}this.elementClassesQueue.push(element);this.debouncedUpdateQueuedElementClasses();};OO.ui.Theme.prototype.getDialogTransitionDuration=function(){return 0;};OO.ui.mixin.TabIndexedElement=function OoUiMixinTabIndexedElement(config){config=Object.assign({tabIndex:0},config);this.$tabIndexed=null;this.tabIndex=null;this.connect(this,{disable:'onTabIndexedElementDisable'});this.setTabIndex(config.tabIndex);this.setTabIndexedElement(config.$tabIndexed||this.$element);};OO.initClass(OO.ui.mixin.TabIndexedElement);OO.ui.mixin.TabIndexedElement.prototype.setTabIndexedElement=function($tabIndexed){const tabIndex=this.tabIndex;this.setTabIndex(null);this.$tabIndexed=$tabIndexed;this.tabIndex=tabIndex;return this.updateTabIndex();};OO.ui.mixin.TabIndexedElement.prototype.setTabIndex=function(tabIndex){
tabIndex=/^-?\d+$/.test(tabIndex)?Number(tabIndex):null;if(this.tabIndex!==tabIndex){this.tabIndex=tabIndex;this.updateTabIndex();}return this;};OO.ui.mixin.TabIndexedElement.prototype.updateTabIndex=function(){if(this.$tabIndexed){if(this.tabIndex!==null){this.$tabIndexed.attr({tabindex:this.isDisabled()?-1:this.tabIndex,'aria-disabled':this.isDisabled()?'true':null});}else{this.$tabIndexed.removeAttr('tabindex aria-disabled');}}return this;};OO.ui.mixin.TabIndexedElement.prototype.onTabIndexedElementDisable=function(){this.updateTabIndex();};OO.ui.mixin.TabIndexedElement.prototype.getTabIndex=function(){return this.tabIndex;};OO.ui.mixin.TabIndexedElement.prototype.getInputId=function(){if(!this.$tabIndexed){return null;}if(!this.isLabelableNode(this.$tabIndexed)){return null;}let id=this.$tabIndexed.attr('id');if(id===undefined){id=OO.ui.generateElementId();this.$tabIndexed.attr('id',id);}return id;};OO.ui.mixin.TabIndexedElement.prototype.setLabelledBy=function(id){if(!this.$tabIndexed){
return;}if(id){this.$tabIndexed.attr('aria-labelledby',id);}else{this.$tabIndexed.removeAttr('aria-labelledby');}};OO.ui.mixin.TabIndexedElement.prototype.isLabelableNode=function($node){const labelableTags=['button','meter','output','progress','select','textarea'],tagName=($node.prop('tagName')||'').toLowerCase();if(tagName==='input'&&$node.attr('type')!=='hidden'){return true;}if(labelableTags.includes(tagName)){return true;}return false;};OO.ui.mixin.TabIndexedElement.prototype.focus=function(){if(!this.isDisabled()){this.$tabIndexed.trigger('focus');}return this;};OO.ui.mixin.TabIndexedElement.prototype.blur=function(){this.$tabIndexed.trigger('blur');return this;};OO.ui.mixin.TabIndexedElement.prototype.simulateLabelClick=function(){this.focus();};OO.ui.mixin.ButtonElement=function OoUiMixinButtonElement(config){config=config||{};this.$button=null;this.framed=null;this.size=null;this.active=config.active!==undefined&&config.active;this.onDocumentMouseUpHandler=this.onDocumentMouseUp.bind(this);
this.onMouseDownHandler=this.onMouseDown.bind(this);this.onDocumentKeyUpHandler=this.onDocumentKeyUp.bind(this);this.onKeyDownHandler=this.onKeyDown.bind(this);this.onClickHandler=this.onClick.bind(this);this.onKeyPressHandler=this.onKeyPress.bind(this);this.$element.addClass('oo-ui-buttonElement');this.toggleFramed(config.framed===undefined||config.framed);this.setSize(config.size||'medium');this.setButtonElement(config.$button||$('<a>'));};OO.initClass(OO.ui.mixin.ButtonElement);OO.ui.mixin.ButtonElement.static.cancelButtonMouseDownEvents=true;OO.ui.mixin.ButtonElement.prototype.setButtonElement=function($button){if(this.$button){this.$button.removeClass('oo-ui-buttonElement-button').removeAttr('role accesskey').off({mousedown:this.onMouseDownHandler,keydown:this.onKeyDownHandler,click:this.onClickHandler,keypress:this.onKeyPressHandler});}this.$button=$button.addClass('oo-ui-buttonElement-button').on({mousedown:this.onMouseDownHandler,keydown:this.onKeyDownHandler,click:this.onClickHandler,
keypress:this.onKeyPressHandler});if(this.$button.prop('tagName').toUpperCase()==='A'){this.$button.attr('role','button');}};OO.ui.mixin.ButtonElement.prototype.onMouseDown=function(e){if(this.isDisabled()||e.which!==OO.ui.MouseButtons.LEFT){return;}this.$element.addClass('oo-ui-buttonElement-pressed');this.getElementDocument().addEventListener('mouseup',this.onDocumentMouseUpHandler,true);if(this.constructor.static.cancelButtonMouseDownEvents){return false;}};OO.ui.mixin.ButtonElement.prototype.onDocumentMouseUp=function(e){if(e.target===document.documentElement){return;}if(this.isDisabled()||e.which!==OO.ui.MouseButtons.LEFT){return;}this.$element.removeClass('oo-ui-buttonElement-pressed');this.getElementDocument().removeEventListener('mouseup',this.onDocumentMouseUpHandler,true);};OO.ui.mixin.ButtonElement.prototype.onClick=function(e){if(!this.isDisabled()&&e.which===OO.ui.MouseButtons.LEFT){if(this.emit('click')){return false;}}};OO.ui.mixin.ButtonElement.prototype.onKeyDown=function(e){
if(this.isDisabled()||(e.which!==OO.ui.Keys.SPACE&&e.which!==OO.ui.Keys.ENTER)){return;}this.$element.addClass('oo-ui-buttonElement-pressed');this.getElementDocument().addEventListener('keyup',this.onDocumentKeyUpHandler,true);};OO.ui.mixin.ButtonElement.prototype.onDocumentKeyUp=function(e){if(this.isDisabled()||(e.which!==OO.ui.Keys.SPACE&&e.which!==OO.ui.Keys.ENTER)){return;}this.$element.removeClass('oo-ui-buttonElement-pressed');this.getElementDocument().removeEventListener('keyup',this.onDocumentKeyUpHandler,true);};OO.ui.mixin.ButtonElement.prototype.onKeyPress=function(e){if(!this.isDisabled()&&(e.which===OO.ui.Keys.SPACE||e.which===OO.ui.Keys.ENTER)){if(this.emit('click')){return false;}}};OO.ui.mixin.ButtonElement.prototype.isFramed=function(){return this.framed;};OO.ui.mixin.ButtonElement.prototype.toggleFramed=function(framed){framed=framed===undefined?!this.framed:!!framed;if(framed!==this.framed){this.framed=framed;this.$element.toggleClass('oo-ui-buttonElement-frameless',!framed)
.toggleClass('oo-ui-buttonElement-framed',framed);this.updateThemeClasses();this.setSize(this.size||'medium');}return this;};OO.ui.mixin.ButtonElement.prototype.getSize=function(){return this.size;};OO.ui.mixin.ButtonElement.prototype.setSize=function(size){if(!this.framed){size='medium';}if(size!==this.size){this.size=size;this.$element.toggleClass('oo-ui-buttonElement-size-small',size==='small').toggleClass('oo-ui-buttonElement-size-medium',size==='medium').toggleClass('oo-ui-buttonElement-size-large',size==='large');this.updateThemeClasses();}return this;};OO.ui.mixin.ButtonElement.prototype.setActive=function(value){this.active=!!value;this.$element.toggleClass('oo-ui-buttonElement-active',this.active);this.updateThemeClasses();return this;};OO.ui.mixin.ButtonElement.prototype.isActive=function(){return this.active;};OO.ui.mixin.GroupElement=function OoUiMixinGroupElement(config){config=config||{};OO.EmitterList.call(this,config);this.$group=null;this.setGroupElement(config.$group||$('<div>'));
};OO.mixinClass(OO.ui.mixin.GroupElement,OO.EmitterList);OO.ui.mixin.GroupElement.prototype.setGroupElement=function($group){this.$group=$group;for(let i=0,len=this.items.length;i<len;i++){this.$group.append(this.items[i].$element);}};OO.ui.mixin.GroupElement.prototype.findItemFromData=function(data){const hash=OO.getHash(data);for(let i=0,len=this.items.length;i<len;i++){const item=this.items[i];if(hash===OO.getHash(item.getData())){return item;}}return null;};OO.ui.mixin.GroupElement.prototype.findItemsFromData=function(data){const hash=OO.getHash(data),items=[];for(let i=0,len=this.items.length;i<len;i++){const item=this.items[i];if(hash===OO.getHash(item.getData())){items.push(item);}}return items;};OO.ui.mixin.GroupElement.prototype.addItems=function(items,index){if(!items||items.length===0){return this;}OO.EmitterList.prototype.addItems.call(this,items,index);this.emit('change',this.getItems());return this;};OO.ui.mixin.GroupElement.prototype.moveItem=function(items,newIndex){
this.insertItemElements(items,newIndex);newIndex=OO.EmitterList.prototype.moveItem.call(this,items,newIndex);return newIndex;};OO.ui.mixin.GroupElement.prototype.insertItem=function(item,index){item.setElementGroup(this);this.insertItemElements(item,index);index=OO.EmitterList.prototype.insertItem.call(this,item,index);return index;};OO.ui.mixin.GroupElement.prototype.insertItemElements=function(item,index){if(index===undefined||index<0||index>=this.items.length){this.$group.append(item.$element);}else if(index===0){this.$group.prepend(item.$element);}else{this.items[index].$element.before(item.$element);}};OO.ui.mixin.GroupElement.prototype.removeItems=function(items){if(items.length===0){return this;}for(let i=0,len=items.length;i<len;i++){const item=items[i];const index=this.items.indexOf(item);if(index!==-1){item.setElementGroup(null);item.$element.detach();}}OO.EmitterList.prototype.removeItems.call(this,items);this.emit('change',this.getItems());return this;};OO.ui.mixin.GroupElement.prototype.clearItems=function(){
for(let i=0,len=this.items.length;i<len;i++){this.items[i].setElementGroup(null);this.items[i].$element.detach();}OO.EmitterList.prototype.clearItems.call(this);this.emit('change',this.getItems());return this;};OO.ui.mixin.LabelElement=function OoUiMixinLabelElement(config){config=config||{};this.$label=null;this.label=null;this.invisibleLabel=false;this.setLabel(config.label||this.constructor.static.label);this.setLabelElement(config.$label||$('<span>'));this.setInvisibleLabel(config.invisibleLabel);};OO.initClass(OO.ui.mixin.LabelElement);OO.ui.mixin.LabelElement.static.label=null;OO.ui.mixin.LabelElement.static.highlightQuery=function(text,query,compare,combineMarks){let offset=-1,comboLength=0,comboMarks='',comboRegex,comboMatch;const $result=$('<span>');if(compare){const tLen=text.length;const qLen=query.length;for(let i=0;offset===-1&&i<=tLen-qLen;i++){if(compare(query,text.slice(i,i+qLen))===0){offset=i;}}}else{offset=text.toLowerCase().indexOf(query.toLowerCase());}if(!query.length||offset===-1){
$result.text(text);}else{if(combineMarks){comboMarks='[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]';
comboRegex=new RegExp('(^)'+comboMarks+'*');comboMatch=text.slice(offset+query.length).match(comboRegex);if(comboMatch&&comboMatch.length){comboLength=comboMatch[0].length;}}$result.append(document.createTextNode(text.slice(0,offset)),$('<span>').addClass('oo-ui-labelElement-label-highlight').text(text.slice(offset,offset+query.length+comboLength)),document.createTextNode(text.slice(offset+query.length+comboLength)));}return $result.contents();};OO.ui.mixin.LabelElement.prototype.setLabelElement=function($label){if(this.$label){this.$label.removeClass('oo-ui-labelElement-label').empty();}this.$label=$label.addClass('oo-ui-labelElement-label');this.setLabelContent(this.label);return this;};OO.ui.mixin.LabelElement.prototype.setLabelId=function(id){this.$label.attr('id',id);return this;};OO.ui.mixin.LabelElement.prototype.setLabel=function(label){label=OO.ui.resolveMsg(label);label=((typeof label==='string'||label instanceof $)&&label.length)||(label instanceof OO.ui.HtmlSnippet&&label.toString().length)?label:null;
if(this.label!==label){if(this.$label){this.setLabelContent(label);}this.label=label;this.$element.toggleClass('oo-ui-labelElement',!!this.label&&!this.invisibleLabel);this.emit('labelChange');}return this;};OO.ui.mixin.LabelElement.prototype.setInvisibleLabel=function(invisibleLabel){invisibleLabel=!!invisibleLabel;if(this.invisibleLabel!==invisibleLabel){this.invisibleLabel=invisibleLabel;this.$label.toggleClass('oo-ui-labelElement-invisible',this.invisibleLabel);this.$element.toggleClass('oo-ui-labelElement',!!this.label&&!this.invisibleLabel);this.emit('labelChange');}return this;};OO.ui.mixin.LabelElement.prototype.setHighlightedQuery=function(text,query,compare,combineMarks){return this.setLabel(this.constructor.static.highlightQuery(text,query,compare,combineMarks));};OO.ui.mixin.LabelElement.prototype.getLabel=function(){return this.label;};OO.ui.mixin.LabelElement.prototype.setLabelContent=function(label){if(typeof label==='string'){if(label.match(/^\s*$/)){this.$label.html('&nbsp;');
}else{this.$label.text(label);}}else if(label instanceof OO.ui.HtmlSnippet){this.$label.html(label.toString());}else if(label instanceof $){this.$label.empty().append(label);}else{this.$label.empty();}};OO.ui.mixin.IconElement=function OoUiMixinIconElement(config){config=config||{};this.$icon=null;this.icon=null;this.setIcon(config.icon||this.constructor.static.icon);this.setIconElement(config.$icon||$('<span>'));};OO.initClass(OO.ui.mixin.IconElement);OO.ui.mixin.IconElement.static.icon=null;OO.ui.mixin.IconElement.static.iconTitle=null;OO.ui.mixin.IconElement.prototype.setIconElement=function($icon){if(this.$icon){this.$icon.removeClass('oo-ui-iconElement-icon oo-ui-icon-'+this.icon).removeAttr('title');}this.$icon=$icon.addClass('oo-ui-iconElement-icon').toggleClass('oo-ui-iconElement-noIcon',!this.icon).toggleClass('oo-ui-icon-'+this.icon,!!this.icon);if(this.iconTitle!==null){this.$icon.attr('title',this.iconTitle);}this.updateThemeClasses();};OO.ui.mixin.IconElement.prototype.setIcon=function(icon){
if(icon&&typeof icon!=='string'){icon=OO.ui.getLocalValue(icon,null,'default');}if(this.icon===icon){return this;}this.$element.toggleClass('oo-ui-iconElement',!!icon);if(this.$icon){if(this.icon){this.$icon.removeClass('oo-ui-icon-'+this.icon);}if(icon){this.$icon.addClass('oo-ui-icon-'+icon);}this.$icon.toggleClass('oo-ui-iconElement-noIcon',!icon);}this.icon=icon;this.updateThemeClasses();return this;};OO.ui.mixin.IconElement.prototype.getIcon=function(){return this.icon;};OO.ui.mixin.IndicatorElement=function OoUiMixinIndicatorElement(config){config=config||{};this.$indicator=null;this.indicator=null;this.setIndicator(config.indicator||this.constructor.static.indicator);this.setIndicatorElement(config.$indicator||$('<span>'));};OO.initClass(OO.ui.mixin.IndicatorElement);OO.ui.mixin.IndicatorElement.static.indicator=null;OO.ui.mixin.IndicatorElement.static.indicatorTitle=null;OO.ui.mixin.IndicatorElement.prototype.setIndicatorElement=function($indicator){if(this.$indicator){this.$indicator
.removeClass('oo-ui-indicatorElement-indicator oo-ui-indicator-'+this.indicator).removeAttr('title');}this.$indicator=$indicator.addClass('oo-ui-indicatorElement-indicator').toggleClass('oo-ui-indicatorElement-noIndicator',!this.indicator).toggleClass('oo-ui-indicator-'+this.indicator,!!this.indicator);if(this.indicatorTitle!==null){this.$indicator.attr('title',this.indicatorTitle);}this.updateThemeClasses();};OO.ui.mixin.IndicatorElement.prototype.setIndicator=function(indicator){indicator=typeof indicator==='string'&&indicator.length?indicator.trim():null;if(this.indicator!==indicator){if(this.$indicator){if(this.indicator!==null){this.$indicator.removeClass('oo-ui-indicator-'+this.indicator);}if(indicator!==null){this.$indicator.addClass('oo-ui-indicator-'+indicator);}}this.indicator=indicator;}this.$element.toggleClass('oo-ui-indicatorElement',!!this.indicator);if(this.$indicator){this.$indicator.toggleClass('oo-ui-indicatorElement-noIndicator',!this.indicator);}this.updateThemeClasses();
return this;};OO.ui.mixin.IndicatorElement.prototype.getIndicator=function(){return this.indicator;};OO.ui.mixin.FlaggedElement=function OoUiMixinFlaggedElement(config){config=config||{};this.flags={};this.$flagged=null;this.setFlags(config.flags||this.constructor.static.flags);this.setFlaggedElement(config.$flagged||this.$element);};OO.initClass(OO.ui.mixin.FlaggedElement);OO.ui.mixin.FlaggedElement.static.flags=null;OO.ui.mixin.FlaggedElement.prototype.setFlaggedElement=function($flagged){const classNames=Object.keys(this.flags).map((flag)=>'oo-ui-flaggedElement-'+flag);if(this.$flagged){this.$flagged.removeClass(classNames);}this.$flagged=$flagged.addClass(classNames);};OO.ui.mixin.FlaggedElement.prototype.hasFlag=function(flag){return this.flags&&(flag in this.flags);};OO.ui.mixin.FlaggedElement.prototype.getFlags=function(){return Object.keys(this.flags||{});};OO.ui.mixin.FlaggedElement.prototype.clearFlags=function(){const changes={},remove=[],classPrefix='oo-ui-flaggedElement-';
for(const flag in this.flags){const className=classPrefix+flag;changes[flag]=false;delete this.flags[flag];remove.push(className);}if(this.$flagged){this.$flagged.removeClass(remove);}this.updateThemeClasses();this.emit('flag',changes);return this;};OO.ui.mixin.FlaggedElement.prototype.setFlags=function(flags){const changes={},add=[],remove=[],classPrefix='oo-ui-flaggedElement-';let className,flag;if(typeof flags==='string'){className=classPrefix+flags;if(!this.flags[flags]){this.flags[flags]=true;add.push(className);}}else if(Array.isArray(flags)){for(let i=0,len=flags.length;i<len;i++){flag=flags[i];className=classPrefix+flag;if(!this.flags[flag]){changes[flag]=true;this.flags[flag]=true;add.push(className);}}}else if(OO.isPlainObject(flags)){for(flag in flags){className=classPrefix+flag;if(flags[flag]){if(!this.flags[flag]){changes[flag]=true;this.flags[flag]=true;add.push(className);}}else{if(this.flags[flag]){changes[flag]=false;delete this.flags[flag];remove.push(className);}}}}
if(this.$flagged){this.$flagged.addClass(add).removeClass(remove);}this.updateThemeClasses();this.emit('flag',changes);return this;};OO.ui.mixin.TitledElement=function OoUiMixinTitledElement(config){config=config||{};this.$titled=null;this.title=null;let title=config.title!==undefined?config.title:this.constructor.static.title;if(title===null&&config.invisibleLabel&&typeof config.label==='string'){title=config.label;}this.setTitle(title);this.setTitledElement(config.$titled||this.$element);};OO.initClass(OO.ui.mixin.TitledElement);OO.ui.mixin.TitledElement.static.title=null;OO.ui.mixin.TitledElement.prototype.setTitledElement=function($titled){if(this.$titled){this.$titled.removeAttr('title');}this.$titled=$titled;this.updateTitle();};OO.ui.mixin.TitledElement.prototype.setTitle=function(title){title=OO.ui.resolveMsg(title);title=typeof title==='string'?title:null;if(this.title!==title){this.title=title;this.updateTitle();}return this;};OO.ui.mixin.TitledElement.prototype.updateTitle=function(){
let title=this.getTitle();if(this.$titled){if(title!==null){if(this.formatTitleWithAccessKey){title=this.formatTitleWithAccessKey(title);}this.$titled.attr('title',title);}else{this.$titled.removeAttr('title');}}return this;};OO.ui.mixin.TitledElement.prototype.getTitle=function(){return this.title;};OO.ui.mixin.AccessKeyedElement=function OoUiMixinAccessKeyedElement(config){config=config||{};this.$accessKeyed=null;this.accessKey=null;this.setAccessKey(config.accessKey||null);this.setAccessKeyedElement(config.$accessKeyed||this.$element);if(this.updateTitle){this.updateTitle();}};OO.initClass(OO.ui.mixin.AccessKeyedElement);OO.ui.mixin.AccessKeyedElement.static.accessKey=null;OO.ui.mixin.AccessKeyedElement.prototype.setAccessKeyedElement=function($accessKeyed){if(this.$accessKeyed){this.$accessKeyed.removeAttr('accesskey');}this.$accessKeyed=$accessKeyed;if(this.accessKey){this.$accessKeyed.attr('accesskey',this.accessKey);}};OO.ui.mixin.AccessKeyedElement.prototype.setAccessKey=function(accessKey){
accessKey=OO.ui.resolveMsg(accessKey);accessKey=typeof accessKey==='string'?accessKey:null;if(this.accessKey!==accessKey){if(this.$accessKeyed){if(accessKey!==null){this.$accessKeyed.attr('accesskey',accessKey);}else{this.$accessKeyed.removeAttr('accesskey');}}this.accessKey=accessKey;if(this.updateTitle){this.updateTitle();}}return this;};OO.ui.mixin.AccessKeyedElement.prototype.getAccessKey=function(){return this.accessKey;};OO.ui.mixin.AccessKeyedElement.prototype.formatTitleWithAccessKey=function(title){if(!this.$accessKeyed){return title;}let accessKey;if($.fn.updateTooltipAccessKeys&&$.fn.updateTooltipAccessKeys.getAccessKeyLabel){accessKey=$.fn.updateTooltipAccessKeys.getAccessKeyLabel(this.$accessKeyed[0]);}else{accessKey=this.getAccessKey();}if(accessKey){title+=' ['+accessKey+']';}return title;};OO.ui.mixin.RequiredElement=function OoUiMixinRequiredElement(config){config=config||{};this.$required=config.$required||this.$input||this.$element;this.required=false;this.indicatorElement=config.indicatorElement!==undefined?config.indicatorElement:this;
if(this.indicatorElement&&!this.indicatorElement.getIndicator){throw new Error('config.indicatorElement must mixin OO.ui.mixin.IndicatorElement.');}this.setRequired(!!config.required);};OO.initClass(OO.ui.mixin.RequiredElement);OO.ui.mixin.RequiredElement.prototype.setRequiredElement=function($required){if(this.$required===$required){return;}if(this.$required&&this.required){this.updateRequiredElement(false);}this.$required=$required;this.updateRequiredElement();};OO.ui.mixin.RequiredElement.prototype.updateRequiredElement=function(state){if(state===undefined){state=this.required;}this.$required.prop('required',state);};OO.ui.mixin.RequiredElement.prototype.isRequired=function(){return this.required;};OO.ui.mixin.RequiredElement.prototype.setRequired=function(state){if(this.required===state){return this;}this.required=!!state;this.updateRequiredElement();if(this.indicatorElement){const expected=state?null:'required';if(this.indicatorElement.getIndicator()===expected){this.indicatorElement.setIndicator(state?'required':null);
}}return this;};OO.ui.ButtonWidget=function OoUiButtonWidget(config){config=config||{};OO.ui.ButtonWidget.super.call(this,config);OO.ui.mixin.ButtonElement.call(this,config);OO.ui.mixin.IconElement.call(this,config);OO.ui.mixin.IndicatorElement.call(this,config);OO.ui.mixin.LabelElement.call(this,config);OO.ui.mixin.TitledElement.call(this,Object.assign({$titled:this.$button},config));OO.ui.mixin.FlaggedElement.call(this,config);OO.ui.mixin.TabIndexedElement.call(this,Object.assign({$tabIndexed:this.$button},config));OO.ui.mixin.AccessKeyedElement.call(this,Object.assign({$accessKeyed:this.$button},config));this.href=null;this.target=null;this.noFollow=false;this.rel=[];this.connect(this,{disable:'onDisable'});this.$button.append(this.$icon,this.$label,this.$indicator);this.$element.addClass('oo-ui-buttonWidget').append(this.$button);this.setActive(config.active);this.setHref(config.href);this.setTarget(config.target);if(config.rel!==undefined){this.setRel(config.rel);}else{this.setNoFollow(config.noFollow);
}};OO.inheritClass(OO.ui.ButtonWidget,OO.ui.Widget);OO.mixinClass(OO.ui.ButtonWidget,OO.ui.mixin.ButtonElement);OO.mixinClass(OO.ui.ButtonWidget,OO.ui.mixin.IconElement);OO.mixinClass(OO.ui.ButtonWidget,OO.ui.mixin.IndicatorElement);OO.mixinClass(OO.ui.ButtonWidget,OO.ui.mixin.LabelElement);OO.mixinClass(OO.ui.ButtonWidget,OO.ui.mixin.TitledElement);OO.mixinClass(OO.ui.ButtonWidget,OO.ui.mixin.FlaggedElement);OO.mixinClass(OO.ui.ButtonWidget,OO.ui.mixin.TabIndexedElement);OO.mixinClass(OO.ui.ButtonWidget,OO.ui.mixin.AccessKeyedElement);OO.ui.ButtonWidget.static.cancelButtonMouseDownEvents=false;OO.ui.ButtonWidget.static.tagName='span';OO.ui.ButtonWidget.prototype.getHref=function(){return this.href;};OO.ui.ButtonWidget.prototype.getTarget=function(){return this.target;};OO.ui.ButtonWidget.prototype.getNoFollow=function(){return this.noFollow;};OO.ui.ButtonWidget.prototype.getRel=function(){return this.rel;};OO.ui.ButtonWidget.prototype.setHref=function(href){href=typeof href==='string'?href:null;
if(href!==null&&!OO.ui.isSafeUrl(href)){href='./'+href;}if(href!==this.href){this.href=href;this.updateHref();}return this;};OO.ui.ButtonWidget.prototype.updateHref=function(){if(this.href!==null&&!this.isDisabled()){this.$button.attr('href',this.href);}else{this.$button.removeAttr('href');}return this;};OO.ui.ButtonWidget.prototype.onDisable=function(){this.updateHref();};OO.ui.ButtonWidget.prototype.setTarget=function(target){target=typeof target==='string'?target:null;if(target!==this.target){this.target=target;if(target!==null){this.$button.attr('target',target);}else{this.$button.removeAttr('target');}}return this;};OO.ui.ButtonWidget.prototype.setNoFollow=function(noFollow){noFollow=typeof noFollow==='boolean'?noFollow:true;if(noFollow!==this.noFollow){let rel;if(noFollow){rel=this.rel.concat(['nofollow']);}else{rel=this.rel.filter((value)=>value!=='nofollow');}this.setRel(rel);}return this;};OO.ui.ButtonWidget.prototype.setRel=function(rel){if(!Array.isArray(rel)){rel=rel?[rel]:[];
}this.rel=rel;this.noFollow=rel.includes('nofollow');this.$button.attr('rel',rel.join(' ')||null);return this;};OO.ui.ButtonGroupWidget=function OoUiButtonGroupWidget(config){config=config||{};OO.ui.ButtonGroupWidget.super.call(this,config);OO.ui.mixin.GroupElement.call(this,Object.assign({$group:this.$element},config));OO.ui.mixin.TitledElement.call(this,config);this.$element.addClass('oo-ui-buttonGroupWidget');this.addItems(config.items||[]);};OO.inheritClass(OO.ui.ButtonGroupWidget,OO.ui.Widget);OO.mixinClass(OO.ui.ButtonGroupWidget,OO.ui.mixin.GroupElement);OO.mixinClass(OO.ui.ButtonGroupWidget,OO.ui.mixin.TitledElement);OO.ui.ButtonGroupWidget.static.tagName='span';OO.ui.ButtonGroupWidget.prototype.focus=function(){if(!this.isDisabled()){if(this.items[0]){this.items[0].focus();}}return this;};OO.ui.ButtonGroupWidget.prototype.simulateLabelClick=function(){this.focus();};OO.ui.IconWidget=function OoUiIconWidget(config){config=config||{};OO.ui.IconWidget.super.call(this,config);OO.ui.mixin.IconElement.call(this,Object.assign({
$icon:this.$element},config));OO.ui.mixin.TitledElement.call(this,Object.assign({$titled:this.$element},config));OO.ui.mixin.LabelElement.call(this,Object.assign({$label:this.$element,invisibleLabel:true},config));OO.ui.mixin.FlaggedElement.call(this,Object.assign({$flagged:this.$element},config));this.$element.addClass('oo-ui-iconWidget');this.$element.removeClass('oo-ui-labelElement-label');};OO.inheritClass(OO.ui.IconWidget,OO.ui.Widget);OO.mixinClass(OO.ui.IconWidget,OO.ui.mixin.IconElement);OO.mixinClass(OO.ui.IconWidget,OO.ui.mixin.TitledElement);OO.mixinClass(OO.ui.IconWidget,OO.ui.mixin.LabelElement);OO.mixinClass(OO.ui.IconWidget,OO.ui.mixin.FlaggedElement);OO.ui.IconWidget.static.tagName='span';OO.ui.IndicatorWidget=function OoUiIndicatorWidget(config){config=config||{};OO.ui.IndicatorWidget.super.call(this,config);OO.ui.mixin.IndicatorElement.call(this,Object.assign({$indicator:this.$element},config));OO.ui.mixin.TitledElement.call(this,Object.assign({$titled:this.$element},config));
OO.ui.mixin.LabelElement.call(this,Object.assign({$label:this.$element,invisibleLabel:true},config));this.$element.addClass('oo-ui-indicatorWidget');this.$element.removeClass('oo-ui-labelElement-label');};OO.inheritClass(OO.ui.IndicatorWidget,OO.ui.Widget);OO.mixinClass(OO.ui.IndicatorWidget,OO.ui.mixin.IndicatorElement);OO.mixinClass(OO.ui.IndicatorWidget,OO.ui.mixin.TitledElement);OO.mixinClass(OO.ui.IndicatorWidget,OO.ui.mixin.LabelElement);OO.ui.IndicatorWidget.static.tagName='span';OO.ui.LabelWidget=function OoUiLabelWidget(config){config=config||{};OO.ui.LabelWidget.super.call(this,config);OO.ui.mixin.LabelElement.call(this,Object.assign({$label:this.$element},config));OO.ui.mixin.TitledElement.call(this,config);this.input=config.input;if(this.input){if(this.input.getInputId()){this.$element.attr('for',this.input.getInputId());}else{this.$label.on('click',()=>{this.input.simulateLabelClick();});}}this.$element.addClass('oo-ui-labelWidget');};OO.inheritClass(OO.ui.LabelWidget,OO.ui.Widget);
OO.mixinClass(OO.ui.LabelWidget,OO.ui.mixin.LabelElement);OO.mixinClass(OO.ui.LabelWidget,OO.ui.mixin.TitledElement);OO.ui.LabelWidget.static.tagName='label';OO.ui.MessageWidget=function OoUiMessageWidget(config){config=config||{};OO.ui.MessageWidget.super.call(this,config);OO.ui.mixin.IconElement.call(this,config);OO.ui.mixin.LabelElement.call(this,config);OO.ui.mixin.TitledElement.call(this,config);OO.ui.mixin.FlaggedElement.call(this,config);this.setType(config.type);this.setInline(config.inline);if(config.icon){this.setIcon(config.icon);}if(!this.inline&&config.showClose){this.closeButton=new OO.ui.ButtonWidget({classes:['oo-ui-messageWidget-close'],framed:false,icon:'close',label:OO.ui.msg('ooui-popup-widget-close-button-aria-label'),invisibleLabel:true});this.closeButton.connect(this,{click:'onCloseButtonClick'});this.$element.addClass('oo-ui-messageWidget-showClose');}this.$element.append(this.$icon,this.$label,this.closeButton&&this.closeButton.$element).addClass('oo-ui-messageWidget');
};OO.inheritClass(OO.ui.MessageWidget,OO.ui.Widget);OO.mixinClass(OO.ui.MessageWidget,OO.ui.mixin.IconElement);OO.mixinClass(OO.ui.MessageWidget,OO.ui.mixin.LabelElement);OO.mixinClass(OO.ui.MessageWidget,OO.ui.mixin.TitledElement);OO.mixinClass(OO.ui.MessageWidget,OO.ui.mixin.FlaggedElement);OO.ui.MessageWidget.static.iconMap={notice:'infoFilled',error:'error',warning:'alert',success:'success'};OO.ui.MessageWidget.prototype.setInline=function(inline){inline=!!inline;if(this.inline!==inline){this.inline=inline;this.$element.toggleClass('oo-ui-messageWidget-block',!this.inline);}};OO.ui.MessageWidget.prototype.setType=function(type){if(!this.constructor.static.iconMap[type]){type='notice';}if(this.type!==type){this.clearFlags();this.setFlags(type);this.setIcon(this.constructor.static.iconMap[type]);this.$icon.removeClass('oo-ui-image-'+this.type);this.$icon.addClass('oo-ui-image-'+type);if(type==='error'){this.$element.attr('role','alert');this.$element.removeAttr('aria-live');}else{
this.$element.removeAttr('role');this.$element.attr('aria-live','polite');}this.type=type;}};OO.ui.MessageWidget.prototype.onCloseButtonClick=function(){this.toggle(false);this.emit('close');};OO.ui.ToggleWidget=function OoUiToggleWidget(config){config=config||{};OO.ui.ToggleWidget.super.call(this,config);OO.ui.mixin.TitledElement.call(this,config);this.value=null;this.$element.addClass('oo-ui-toggleWidget');this.setValue(!!config.value);};OO.inheritClass(OO.ui.ToggleWidget,OO.ui.Widget);OO.mixinClass(OO.ui.ToggleWidget,OO.ui.mixin.TitledElement);OO.ui.ToggleWidget.prototype.getValue=function(){return this.value;};OO.ui.ToggleWidget.prototype.setValue=function(value){value=!!value;if(this.value!==value){this.value=value;this.emit('change',value);this.$element.toggleClass('oo-ui-toggleWidget-on',value);this.$element.toggleClass('oo-ui-toggleWidget-off',!value);}return this;};OO.ui.ToggleSwitchWidget=function OoUiToggleSwitchWidget(config){OO.ui.ToggleSwitchWidget.super.call(this,config);
OO.ui.mixin.TabIndexedElement.call(this,config);this.dragging=false;this.dragStart=null;this.sliding=false;this.$glow=$('<span>');this.$grip=$('<span>');this.$element.on({click:this.onClick.bind(this),keypress:this.onKeyPress.bind(this)});this.$glow.addClass('oo-ui-toggleSwitchWidget-glow');this.$grip.addClass('oo-ui-toggleSwitchWidget-grip');this.$element.addClass('oo-ui-toggleSwitchWidget').attr('role','switch').append(this.$glow,this.$grip);};OO.inheritClass(OO.ui.ToggleSwitchWidget,OO.ui.ToggleWidget);OO.mixinClass(OO.ui.ToggleSwitchWidget,OO.ui.mixin.TabIndexedElement);OO.ui.ToggleSwitchWidget.prototype.onClick=function(e){if(!this.isDisabled()&&e.which===OO.ui.MouseButtons.LEFT){this.setValue(!this.value);}return false;};OO.ui.ToggleSwitchWidget.prototype.onKeyPress=function(e){if(!this.isDisabled()&&(e.which===OO.ui.Keys.SPACE||e.which===OO.ui.Keys.ENTER)){this.setValue(!this.value);return false;}};OO.ui.ToggleSwitchWidget.prototype.setValue=function(value){OO.ui.ToggleSwitchWidget.super.prototype.setValue.call(this,value);
this.$element.attr('aria-checked',this.value.toString());return this;};OO.ui.ToggleSwitchWidget.prototype.simulateLabelClick=function(){if(!this.isDisabled()){this.setValue(!this.value);}this.focus();};OO.ui.mixin.PendingElement=function OoUiMixinPendingElement(config){config=config||{};this.pending=0;this.$pending=null;this.setPendingElement(config.$pending||this.$element);};OO.initClass(OO.ui.mixin.PendingElement);OO.ui.mixin.PendingElement.prototype.setPendingElement=function($pending){if(this.$pending){this.$pending.removeClass('oo-ui-pendingElement-pending');}this.$pending=$pending;if(this.pending>0){this.$pending.addClass('oo-ui-pendingElement-pending');}};OO.ui.mixin.PendingElement.prototype.isPending=function(){return!!this.pending;};OO.ui.mixin.PendingElement.prototype.pushPending=function(){if(this.pending===0){this.$pending.addClass('oo-ui-pendingElement-pending');this.updateThemeClasses();}this.pending++;return this;};OO.ui.mixin.PendingElement.prototype.popPending=function(){
if(this.pending===1){this.$pending.removeClass('oo-ui-pendingElement-pending');this.updateThemeClasses();}this.pending=Math.max(0,this.pending-1);return this;};OO.ui.mixin.FloatableElement=function OoUiMixinFloatableElement(config){config=config||{};this.$floatable=null;this.$floatableContainer=null;this.$floatableWindow=null;this.$floatableClosestScrollable=null;this.floatableOutOfView=false;this.onFloatableScrollHandler=this.position.bind(this);this.onFloatableWindowResizeHandler=this.position.bind(this);this.setFloatableContainer(config.$floatableContainer);this.setFloatableElement(config.$floatable||this.$element);this.setVerticalPosition(config.verticalPosition||'below');this.setHorizontalPosition(config.horizontalPosition||'start');this.spacing=config.spacing||0;this.hideWhenOutOfView=config.hideWhenOutOfView===undefined?true:!!config.hideWhenOutOfView;};OO.ui.mixin.FloatableElement.prototype.setFloatableElement=function($floatable){if(this.$floatable){this.$floatable.removeClass('oo-ui-floatableElement-floatable');
this.$floatable.css({top:'',left:'',bottom:'',right:''});}this.$floatable=$floatable.addClass('oo-ui-floatableElement-floatable');this.position();};OO.ui.mixin.FloatableElement.prototype.setFloatableContainer=function($floatableContainer){this.$floatableContainer=$floatableContainer;if(this.$floatable){this.position();}};OO.ui.mixin.FloatableElement.prototype.setVerticalPosition=function(position){if(!['below','above','top','bottom','center'].includes(position)){throw new Error('Invalid value for vertical position: '+position);}if(this.verticalPosition!==position){this.verticalPosition=position;if(this.$floatable){this.position();}}};OO.ui.mixin.FloatableElement.prototype.setHorizontalPosition=function(position){if(!['before','after','start','end','center'].includes(position)){throw new Error('Invalid value for horizontal position: '+position);}if(this.horizontalPosition!==position){this.horizontalPosition=position;if(this.$floatable){this.position();}}};OO.ui.mixin.FloatableElement.prototype.togglePositioning=function(positioning){
if(!this.$floatable||!this.$floatableContainer){return this;}positioning=positioning===undefined?!this.positioning:!!positioning;if(positioning&&!this.warnedUnattached&&!this.isElementAttached()){OO.ui.warnDeprecation('FloatableElement#togglePositioning: Before calling this method, the element must be attached to the DOM.');this.warnedUnattached=true;}if(this.positioning!==positioning){this.positioning=positioning;let closestScrollableOfContainer=OO.ui.Element.static.getClosestScrollableContainer(this.$floatableContainer[0]);if($(closestScrollableOfContainer).is('html, body')){closestScrollableOfContainer=OO.ui.Element.static.getWindow(closestScrollableOfContainer);}if(positioning){this.$floatableWindow=$(this.getElementWindow());this.$floatableWindow.on('resize',this.onFloatableWindowResizeHandler);this.$floatableClosestScrollable=$(closestScrollableOfContainer);this.$floatableClosestScrollable.on('scroll',this.onFloatableScrollHandler);this.position();}else{if(this.$floatableWindow){
this.$floatableWindow.off('resize',this.onFloatableWindowResizeHandler);this.$floatableWindow=null;}if(this.$floatableClosestScrollable){this.$floatableClosestScrollable.off('scroll',this.onFloatableScrollHandler);this.$floatableClosestScrollable=null;}this.$floatable.css({top:'',left:'',bottom:'',right:''});}}return this;};OO.ui.mixin.FloatableElement.prototype.isElementInViewport=function($element,$container){const direction=$element.css('direction');const elemRect=$element[0].getBoundingClientRect();let contRect;if($container[0]===window){const viewportSpacing=OO.ui.getViewportSpacing();contRect={top:0,left:0,right:document.documentElement.clientWidth,bottom:document.documentElement.clientHeight};contRect.top+=viewportSpacing.top;contRect.left+=viewportSpacing.left;contRect.right-=viewportSpacing.right;contRect.bottom-=viewportSpacing.bottom;}else{contRect=$container[0].getBoundingClientRect();}const topEdgeInBounds=elemRect.top>=contRect.top&&elemRect.top<=contRect.bottom;const bottomEdgeInBounds=elemRect.bottom>=contRect.top&&elemRect.bottom<=contRect.bottom;
const leftEdgeInBounds=elemRect.left>=contRect.left&&elemRect.left<=contRect.right;const rightEdgeInBounds=elemRect.right>=contRect.left&&elemRect.right<=contRect.right;let startEdgeInBounds,endEdgeInBounds;if(direction==='rtl'){startEdgeInBounds=rightEdgeInBounds;endEdgeInBounds=leftEdgeInBounds;}else{startEdgeInBounds=leftEdgeInBounds;endEdgeInBounds=rightEdgeInBounds;}if(this.verticalPosition==='below'&&!bottomEdgeInBounds){return false;}if(this.verticalPosition==='above'&&!topEdgeInBounds){return false;}if(this.horizontalPosition==='before'&&!startEdgeInBounds){return false;}if(this.horizontalPosition==='after'&&!endEdgeInBounds){return false;}return elemRect.top<=contRect.bottom&&elemRect.bottom>=contRect.top&&elemRect.left<=contRect.right&&elemRect.right>=contRect.left;};OO.ui.mixin.FloatableElement.prototype.isFloatableOutOfView=function(){return this.floatableOutOfView;};OO.ui.mixin.FloatableElement.prototype.position=function(){if(!this.positioning){return this;}if(!(this.isElementAttached()&&(
this.$floatableClosestScrollable[0]===this.getElementWindow()||$.contains(this.getElementDocument(),this.$floatableClosestScrollable[0])))){return this;}this.floatableOutOfView=this.hideWhenOutOfView&&!this.isElementInViewport(this.$floatableContainer,this.$floatableClosestScrollable);this.$floatable.toggleClass('oo-ui-element-hidden',this.floatableOutOfView);if(this.floatableOutOfView){return this;}this.$floatable.css(this.computePosition());if(this.clip){this.clip();}return this;};OO.ui.mixin.FloatableElement.prototype.computePosition=function(){const newPos={top:'',left:'',bottom:'',right:''};const direction=this.$floatableContainer.css('direction');const viewportSpacing=OO.ui.getViewportSpacing();let $offsetParent=this.$floatable.offsetParent();if($offsetParent.is('html')){$offsetParent=$($offsetParent[0].ownerDocument.body);}const isBody=$offsetParent.is('body');const scrollableX=$offsetParent.css('overflow-x')==='scroll'||$offsetParent.css('overflow-x')==='auto';const scrollableY=$offsetParent.css('overflow-y')==='scroll'||
$offsetParent.css('overflow-y')==='auto';const vertScrollbarWidth=$offsetParent.innerWidth()-$offsetParent.prop('clientWidth');const horizScrollbarHeight=$offsetParent.innerHeight()-$offsetParent.prop('clientHeight');const scrollTop=scrollableY&&!isBody?$offsetParent.scrollTop():0;const scrollLeft=scrollableX&&!isBody?OO.ui.Element.static.getScrollLeft($offsetParent[0]):0;const containerPos=isBody?this.$floatableContainer.offset():OO.ui.Element.static.getRelativePosition(this.$floatableContainer,$offsetParent);containerPos.bottom=containerPos.top+this.$floatableContainer.outerHeight();containerPos.right=containerPos.left+this.$floatableContainer.outerWidth();containerPos.start=direction==='rtl'?containerPos.right:containerPos.left;containerPos.end=direction==='rtl'?containerPos.left:containerPos.right;if(this.verticalPosition==='below'){newPos.top=containerPos.bottom+this.spacing;if(isBody){newPos.top+=viewportSpacing.top;}}else if(this.verticalPosition==='above'){newPos.bottom=$offsetParent.outerHeight()-containerPos.top+this.spacing;
if(isBody){newPos.bottom+=viewportSpacing.bottom;}}else if(this.verticalPosition==='top'){newPos.top=containerPos.top;if(isBody){newPos.top+=viewportSpacing.top;}}else if(this.verticalPosition==='bottom'){newPos.bottom=$offsetParent.outerHeight()-containerPos.bottom;if(isBody){newPos.bottom+=viewportSpacing.bottom;}}else if(this.verticalPosition==='center'){newPos.top=containerPos.top+(this.$floatableContainer.height()-this.$floatable.height())/2;if(isBody){newPos.top+=viewportSpacing.top;}}if(this.horizontalPosition==='before'){newPos.end=containerPos.start-this.spacing;}else if(this.horizontalPosition==='after'){newPos.start=containerPos.end+this.spacing;}else if(this.horizontalPosition==='start'){newPos.start=containerPos.start;}else if(this.horizontalPosition==='end'){newPos.end=containerPos.end;}else if(this.horizontalPosition==='center'){newPos.left=containerPos.left+(this.$floatableContainer.width()-this.$floatable.width())/2;}if(newPos.start!==undefined){if(direction==='rtl'){
newPos.right=(isBody?$($offsetParent[0].ownerDocument.documentElement):$offsetParent).outerWidth()-newPos.start;}else{newPos.left=newPos.start;}delete newPos.start;}if(newPos.end!==undefined){if(direction==='rtl'){newPos.left=newPos.end;}else{newPos.right=(isBody?$($offsetParent[0].ownerDocument.documentElement):$offsetParent).outerWidth()-newPos.end;}delete newPos.end;}if(newPos.top!==''){newPos.top+=scrollTop;}if(newPos.bottom!==''){newPos.bottom-=scrollTop;}if(newPos.left!==''){newPos.left+=scrollLeft;}if(newPos.right!==''){newPos.right-=scrollLeft;}if(newPos.bottom!==''){newPos.bottom-=horizScrollbarHeight;}if(direction==='rtl'){if(newPos.left!==''){newPos.left-=vertScrollbarWidth;}}else{if(newPos.right!==''){newPos.right-=vertScrollbarWidth;}}return newPos;};OO.ui.mixin.ClippableElement=function OoUiMixinClippableElement(config){config=config||{};this.$clippable=null;this.$clippableContainer=null;this.clipping=false;this.clippedHorizontally=false;this.clippedVertically=false;this.$clippableScrollableContainer=null;
this.$clippableScroller=null;this.$clippableWindow=null;this.idealWidth=null;this.idealHeight=null;this.onClippableScrollHandler=this.clip.bind(this);this.onClippableWindowResizeHandler=this.clip.bind(this);if(config.$clippableContainer){this.setClippableContainer(config.$clippableContainer);}this.setClippableElement(config.$clippable||this.$element);};OO.ui.mixin.ClippableElement.prototype.setClippableElement=function($clippable){if(this.$clippable){this.$clippable.removeClass('oo-ui-clippableElement-clippable');this.$clippable.css({width:'',height:'',overflowX:'',overflowY:''});OO.ui.Element.static.reconsiderScrollbars(this.$clippable[0]);}this.$clippable=$clippable.addClass('oo-ui-clippableElement-clippable');this.clip();};OO.ui.mixin.ClippableElement.prototype.setClippableContainer=function($clippableContainer){this.$clippableContainer=$clippableContainer;if(this.$clippable){this.clip();}};OO.ui.mixin.ClippableElement.prototype.toggleClipping=function(clipping){clipping=clipping===undefined?!this.clipping:!!clipping;
if(clipping&&!this.warnedUnattached&&!this.isElementAttached()){OO.ui.warnDeprecation('ClippableElement#toggleClipping: Before calling this method, the element must be attached to the DOM.');this.warnedUnattached=true;}if(this.clipping!==clipping){this.clipping=clipping;if(clipping){this.$clippableScrollableContainer=$(this.getClosestScrollableElementContainer());this.$clippableScroller=this.$clippableScrollableContainer.is('html, body')?$(OO.ui.Element.static.getWindow(this.$clippableScrollableContainer)):this.$clippableScrollableContainer;this.$clippableScroller.on('scroll',this.onClippableScrollHandler);this.$clippableWindow=$(this.getElementWindow()).on('resize',this.onClippableWindowResizeHandler);this.clip();}else{this.$clippable.css({width:'',height:'',maxWidth:'',maxHeight:'',overflowX:'',overflowY:''});OO.ui.Element.static.reconsiderScrollbars(this.$clippable[0]);this.$clippableScrollableContainer=null;this.$clippableScroller.off('scroll',this.onClippableScrollHandler);this.$clippableScroller=null;
this.$clippableWindow.off('resize',this.onClippableWindowResizeHandler);this.$clippableWindow=null;}}return this;};OO.ui.mixin.ClippableElement.prototype.isClipping=function(){return this.clipping;};OO.ui.mixin.ClippableElement.prototype.isClipped=function(){return this.clippedHorizontally||this.clippedVertically;};OO.ui.mixin.ClippableElement.prototype.isClippedHorizontally=function(){return this.clippedHorizontally;};OO.ui.mixin.ClippableElement.prototype.isClippedVertically=function(){return this.clippedVertically;};OO.ui.mixin.ClippableElement.prototype.setIdealSize=function(width,height){this.idealWidth=width;this.idealHeight=height;if(!this.clipping){this.$clippable.css({width:width,height:height});}};OO.ui.mixin.ClippableElement.prototype.getHorizontalAnchorEdge=function(){if(this.computePosition&&this.positioning&&this.computePosition().right!==''){return'right';}return'left';};OO.ui.mixin.ClippableElement.prototype.getVerticalAnchorEdge=function(){if(this.computePosition&&this.positioning&&this.computePosition().bottom!==''){
return'bottom';}return'top';};OO.ui.mixin.ClippableElement.prototype.clip=function(){if(!this.clipping){return this;}function rectCopy(rect){return{left:rect.left,top:rect.top,right:rect.right,bottom:rect.bottom,x:rect.x,y:rect.y,width:rect.width,height:rect.height};}function rectIntersection(a,b){const out={};out.top=Math.max(a.top,b.top);out.left=Math.max(a.left,b.left);out.bottom=Math.min(a.bottom,b.bottom);out.right=Math.min(a.right,b.right);return out;}const viewportSpacing=OO.ui.getViewportSpacing();let $viewport,viewportRect;if(this.$clippableScrollableContainer.is('html, body')){$viewport=$(this.$clippableScrollableContainer[0].ownerDocument.body);viewportRect={top:0,left:0,right:document.documentElement.clientWidth,bottom:document.documentElement.clientHeight};viewportRect.top+=viewportSpacing.top;viewportRect.left+=viewportSpacing.left;viewportRect.right-=viewportSpacing.right;viewportRect.bottom-=viewportSpacing.bottom;}else{$viewport=this.$clippableScrollableContainer;
viewportRect=$viewport[0].getBoundingClientRect();viewportRect=rectCopy(viewportRect);}const direction=$viewport.css('direction');const vertScrollbarWidth=$viewport.innerWidth()-$viewport.prop('clientWidth');const horizScrollbarHeight=$viewport.innerHeight()-$viewport.prop('clientHeight');viewportRect.bottom-=horizScrollbarHeight;if(direction==='rtl'){viewportRect.left+=vertScrollbarWidth;}else{viewportRect.right-=vertScrollbarWidth;}const buffer=7;viewportRect.top+=buffer;viewportRect.left+=buffer;viewportRect.right-=buffer;viewportRect.bottom-=buffer;const $item=this.$clippableContainer||this.$clippable;const extraHeight=$item.outerHeight()-this.$clippable.outerHeight();const extraWidth=$item.outerWidth()-this.$clippable.outerWidth();let itemRect=$item[0].getBoundingClientRect();itemRect=rectCopy(itemRect);if(this.getHorizontalAnchorEdge()==='right'){itemRect.left=viewportRect.left;}else{itemRect.right=viewportRect.right;}if(this.getVerticalAnchorEdge()==='bottom'){itemRect.top=viewportRect.top;
}else{itemRect.bottom=viewportRect.bottom;}const availableRect=rectIntersection(viewportRect,itemRect);let desiredWidth=Math.max(0,availableRect.right-availableRect.left);let desiredHeight=Math.max(0,availableRect.bottom-availableRect.top);desiredWidth=Math.min(desiredWidth,document.documentElement.clientWidth-viewportSpacing.left-viewportSpacing.right);desiredHeight=Math.min(desiredHeight,document.documentElement.clientHeight-viewportSpacing.top-viewportSpacing.right);const allotedWidth=Math.ceil(desiredWidth-extraWidth);const allotedHeight=Math.ceil(desiredHeight-extraHeight);const naturalWidth=this.$clippable.prop('scrollWidth');const naturalHeight=this.$clippable.prop('scrollHeight');const clipWidth=allotedWidth<naturalWidth;const clipHeight=allotedHeight<naturalHeight;if(clipWidth){this.$clippable.css('overflowX','scroll');this.$clippable[0].offsetHeight;this.$clippable.css('overflowX','auto');this.$clippable[0].offsetHeight;this.$clippable.css({width:Math.max(0,allotedWidth),
maxWidth:''});}else{this.$clippable.css({overflowX:'',width:this.idealWidth||'',maxWidth:Math.max(0,allotedWidth)});}if(clipHeight){this.$clippable.css('overflowY','scroll');this.$clippable[0].offsetHeight;this.$clippable.css('overflowY','auto');this.$clippable[0].offsetHeight;this.$clippable.css({height:Math.max(0,allotedHeight),maxHeight:''});}else{this.$clippable.css({overflowY:'',height:this.idealHeight||'',maxHeight:Math.max(0,allotedHeight)});}if((this.clippedHorizontally&&!clipWidth)||(this.clippedVertically&&!clipHeight)){OO.ui.Element.static.reconsiderScrollbars(this.$clippable[0]);}this.clippedHorizontally=clipWidth;this.clippedVertically=clipHeight;return this;};OO.ui.PopupWidget=function OoUiPopupWidget(config){config=config||{};OO.ui.PopupWidget.super.call(this,config);this.$body=$('<div>');this.$popup=$('<div>');OO.ui.mixin.IconElement.call(this,config);OO.ui.mixin.LabelElement.call(this,config);OO.ui.mixin.ClippableElement.call(this,Object.assign({$clippable:this.$body,
$clippableContainer:this.$popup},config));OO.ui.mixin.FloatableElement.call(this,config);this.$anchor=$('<div>');this.$container=config.$container;this.containerPadding=config.containerPadding!==undefined?config.containerPadding:10;this.autoClose=!!config.autoClose;this.transitionTimeout=null;this.anchored=false;this.onDocumentMouseDownHandler=this.onDocumentMouseDown.bind(this);this.onDocumentKeyDownHandler=this.onDocumentKeyDown.bind(this);this.onTabKeyDownHandler=this.onTabKeyDown.bind(this);this.onShiftTabKeyDownHandler=this.onShiftTabKeyDown.bind(this);this.setSize(config.width,config.height);this.toggleAnchor(config.anchor===undefined||config.anchor);this.setAlignment(config.align||'center');this.setPosition(config.position||'below');this.setAutoFlip(config.autoFlip===undefined||config.autoFlip);this.setAutoCloseIgnore(config.$autoCloseIgnore);this.$body.addClass('oo-ui-popupWidget-body');this.$anchor.addClass('oo-ui-popupWidget-anchor');this.$popup.addClass('oo-ui-popupWidget-popup')
.append(this.$body);this.$element.addClass('oo-ui-popupWidget').append(this.$popup,this.$anchor);if(config.$content instanceof $){this.$body.append(config.$content);}this.padded=!!config.padded;if(config.padded){this.$body.addClass('oo-ui-popupWidget-body-padded');}if(config.head){if(!config.hideCloseButton){this.closeButton=new OO.ui.ButtonWidget({framed:false,icon:'close',label:OO.ui.msg('ooui-popup-widget-close-button-aria-label'),invisibleLabel:true});this.closeButton.connect(this,{click:'onCloseButtonClick'});}this.$head=$('<div>').addClass('oo-ui-popupWidget-head').append(this.$icon,this.$label,this.closeButton&&this.closeButton.$element);this.$popup.prepend(this.$head);}if(config.$footer){this.$footer=$('<div>').addClass('oo-ui-popupWidget-footer').append(config.$footer);this.$popup.append(this.$footer);}this.visible=false;this.$element.addClass('oo-ui-element-hidden');};OO.inheritClass(OO.ui.PopupWidget,OO.ui.Widget);OO.mixinClass(OO.ui.PopupWidget,OO.ui.mixin.IconElement);OO.mixinClass(OO.ui.PopupWidget,OO.ui.mixin.LabelElement);
OO.mixinClass(OO.ui.PopupWidget,OO.ui.mixin.ClippableElement);OO.mixinClass(OO.ui.PopupWidget,OO.ui.mixin.FloatableElement);OO.ui.PopupWidget.prototype.onDocumentMouseDown=function(e){if(e.target===document.documentElement){return;}if(this.isVisible()&&!OO.ui.contains(this.$element.add(this.$autoCloseIgnore).get(),e.target,true)){this.toggle(false);}};OO.ui.PopupWidget.prototype.bindDocumentMouseDownListener=function(){this.getElementDocument().addEventListener('mousedown',this.onDocumentMouseDownHandler,true);this.getElementDocument().addEventListener('click',this.onDocumentMouseDownHandler,true);};OO.ui.PopupWidget.prototype.onCloseButtonClick=function(){if(this.isVisible()){this.toggle(false);}};OO.ui.PopupWidget.prototype.unbindDocumentMouseDownListener=function(){this.getElementDocument().removeEventListener('mousedown',this.onDocumentMouseDownHandler,true);this.getElementDocument().removeEventListener('click',this.onDocumentMouseDownHandler,true);};OO.ui.PopupWidget.prototype.onDocumentKeyDown=function(e){
if(e.which===OO.ui.Keys.ESCAPE&&this.isVisible()){this.toggle(false);e.preventDefault();e.stopPropagation();}};OO.ui.PopupWidget.prototype.bindDocumentKeyDownListener=function(){this.getElementDocument().addEventListener('keydown',this.onDocumentKeyDownHandler,true);};OO.ui.PopupWidget.prototype.unbindDocumentKeyDownListener=function(){this.getElementDocument().removeEventListener('keydown',this.onDocumentKeyDownHandler,true);};OO.ui.PopupWidget.prototype.onTabKeyDown=function(e){if(!e.shiftKey&&e.which===OO.ui.Keys.TAB){e.preventDefault();this.toggle(false);}};OO.ui.PopupWidget.prototype.onShiftTabKeyDown=function(e){if(e.shiftKey&&e.which===OO.ui.Keys.TAB){e.preventDefault();this.toggle(false);}};OO.ui.PopupWidget.prototype.toggleAnchor=function(show){show=show===undefined?!this.anchored:!!show;if(this.anchored!==show){this.$element.toggleClass('oo-ui-popupWidget-anchored oo-ui-popupWidget-anchored-'+this.anchorEdge,show);this.anchored=show;}};OO.ui.PopupWidget.prototype.setAnchorEdge=function(edge){
if(!['top','bottom','start','end'].includes(edge)){throw new Error('Invalid value for edge: '+edge);}if(this.anchorEdge!==null){this.$element.removeClass('oo-ui-popupWidget-anchored-'+this.anchorEdge);}this.anchorEdge=edge;if(this.anchored){this.$element.addClass('oo-ui-popupWidget-anchored-'+edge);}};OO.ui.PopupWidget.prototype.hasAnchor=function(){return this.anchored;};OO.ui.PopupWidget.prototype.toggle=function(show){show=show===undefined?!this.isVisible():!!show;const change=show!==this.isVisible();if(show&&!this.warnedUnattached&&!this.isElementAttached()){OO.ui.warnDeprecation('PopupWidget#toggle: Before calling this method, the popup must be attached to the DOM.');this.warnedUnattached=true;}if(show&&!this.$floatableContainer&&this.isElementAttached()){this.setFloatableContainer(this.$element.parent());}if(change&&show&&this.autoFlip){this.isAutoFlipped=false;}OO.ui.PopupWidget.super.prototype.toggle.call(this,show);if(change){this.togglePositioning(show&&!!this.$floatableContainer);
const $lastFocusableElement=OO.ui.findFocusable(this.$element,true);const $firstFocusableElement=OO.ui.findFocusable(this.$element,false);if(show){if(this.autoClose){this.bindDocumentMouseDownListener();this.bindDocumentKeyDownListener();$lastFocusableElement.on('keydown',this.onTabKeyDownHandler);$firstFocusableElement.on('keydown',this.onShiftTabKeyDownHandler);}this.updateDimensions();this.toggleClipping(true);if(this.autoFlip){if(this.popupPosition==='above'||this.popupPosition==='below'){if(this.isClippedVertically()||this.isFloatableOutOfView()){const normalHeight=this.$element.height();this.isAutoFlipped=!this.isAutoFlipped;this.position();if(this.isClippedVertically()||this.isFloatableOutOfView()){const oppositeHeight=this.$element.height();if(oppositeHeight<=normalHeight){this.isAutoFlipped=!this.isAutoFlipped;this.position();}}}}if(this.popupPosition==='before'||this.popupPosition==='after'){if(this.isClippedHorizontally()||this.isFloatableOutOfView()){const normalWidth=this.$element.width();
this.isAutoFlipped=!this.isAutoFlipped;this.toggleClipping(false);this.position();this.toggleClipping(true);if(this.isClippedHorizontally()||this.isFloatableOutOfView()){const oppositeWidth=this.$element.width();if(oppositeWidth<=normalWidth){this.isAutoFlipped=!this.isAutoFlipped;this.toggleClipping(false);this.position();this.toggleClipping(true);}}}}}this.emit('ready');}else{this.toggleClipping(false);if(this.autoClose){$lastFocusableElement.off('keydown',this.onTabKeyDownHandler);$firstFocusableElement.off('keydown',this.onShiftTabKeyDownHandler);this.unbindDocumentMouseDownListener();this.unbindDocumentKeyDownListener();}this.emit('closing');}}return this;};OO.ui.PopupWidget.prototype.setSize=function(width,height,transition){this.width=width!==undefined?width:320;this.height=height!==undefined?height:null;if(this.isVisible()){this.updateDimensions(transition);}};OO.ui.PopupWidget.prototype.updateDimensions=function(transition){clearTimeout(this.transitionTimeout);if(transition){
this.$element.addClass('oo-ui-popupWidget-transitioning');}this.position();if(transition){this.transitionTimeout=setTimeout(()=>{this.$element.removeClass('oo-ui-popupWidget-transitioning');},200);}else{this.$element.removeClass('oo-ui-popupWidget-transitioning');}};OO.ui.PopupWidget.prototype.computePosition=function(){const popupPos={},anchorCss={left:'',right:'',top:'',bottom:''},popupPositionOppositeMap={above:'below',below:'above',before:'after',after:'before'},alignMap={ltr:{'force-left':'backwards','force-right':'forwards'},rtl:{'force-left':'forwards','force-right':'backwards'}},anchorEdgeMap={above:'bottom',below:'top',before:'end',after:'start'},hPosMap={forwards:'start',center:'center',backwards:this.anchored?'before':'end'},vPosMap={forwards:'top',center:'center',backwards:'bottom'};if(!this.$container){this.$container=$(this.getClosestScrollableElementContainer());}const direction=this.$container.css('direction');this.setIdealSize(this.width!==null?this.width-(this.padded?24:0):'auto',
this.height!==null?this.height-(this.padded?10:0):'auto');const align=alignMap[direction][this.align]||this.align;let popupPosition=this.popupPosition;if(this.isAutoFlipped){popupPosition=popupPositionOppositeMap[popupPosition];}const vertical=popupPosition==='before'||popupPosition==='after';const start=vertical?'top':(direction==='rtl'?'right':'left');const end=vertical?'bottom':(direction==='rtl'?'left':'right');const near=vertical?'top':'left';const far=vertical?'bottom':'right';const sizeProp=vertical?'Height':'Width';const popupSize=vertical?this.$popup.height():this.$popup.width();this.setAnchorEdge(anchorEdgeMap[popupPosition]);this.horizontalPosition=vertical?popupPosition:hPosMap[align];this.verticalPosition=vertical?vPosMap[align]:popupPosition;const parentPosition=OO.ui.mixin.FloatableElement.prototype.computePosition.call(this);const positionProp=vertical?(parentPosition.top!==''?'top':'bottom'):(parentPosition.left!==''?'left':'right');const floatablePos=this.$floatableContainer.offset();
floatablePos[far]=floatablePos[near]+this.$floatableContainer['outer'+sizeProp]();const offsetParentPos=this.$element.offsetParent()[0]===document.documentElement?{top:0,left:0}:this.$element.offsetParent().offset();if(positionProp===near){popupPos[near]=offsetParentPos[near]+parentPosition[near];popupPos[far]=popupPos[near]+popupSize;}else{popupPos[far]=offsetParentPos[near]+this.$element.offsetParent()['inner'+sizeProp]()-parentPosition[far];popupPos[near]=popupPos[far]-popupSize;}let anchorOffset,positionAdjustment;if(this.anchored){const anchorPos=(floatablePos[start]+floatablePos[end])/2;anchorOffset=(start===far?-1:1)*(anchorPos-popupPos[start]);const anchorSize=this.$anchor[0]['scroll'+sizeProp];const anchorMargin=parseFloat(this.$anchor.css('margin-'+start));if(anchorOffset+anchorMargin<2*anchorSize){positionAdjustment=(positionProp===start?-1:1)*(2*anchorSize-(anchorOffset+anchorMargin));}else if(anchorOffset+anchorMargin>popupSize-2*anchorSize){positionAdjustment=(positionProp===end?-1:1)*
(anchorOffset+anchorMargin-(popupSize-2*anchorSize));}else{positionAdjustment=0;}}else{positionAdjustment=0;}const containerPos=this.$container[0]===document.documentElement?{top:0,left:0}:this.$container.offset();containerPos[far]=containerPos[near]+this.$container['inner'+sizeProp]();if(this.$container[0]===document.documentElement){const viewportSpacing=OO.ui.getViewportSpacing();containerPos[near]+=viewportSpacing[near];containerPos[far]-=viewportSpacing[far];}popupPos[near]+=(positionProp===near?1:-1)*positionAdjustment;popupPos[far]+=(positionProp===near?1:-1)*positionAdjustment;if(containerPos[near]+this.containerPadding>popupPos[near]){positionAdjustment+=(positionProp===near?1:-1)*(containerPos[near]+this.containerPadding-popupPos[near]);}else if(containerPos[far]-this.containerPadding<popupPos[far]){positionAdjustment+=(positionProp===far?1:-1)*(popupPos[far]-(containerPos[far]-this.containerPadding));}if(this.anchored){anchorOffset+=(positionProp===start?-1:1)*positionAdjustment;
anchorCss[start]=anchorOffset;this.$anchor.css(anchorCss);}parentPosition[positionProp]+=positionAdjustment;return parentPosition;};OO.ui.PopupWidget.prototype.setAlignment=function(align){if(['force-left','force-right','backwards','forwards','center'].includes(align)){this.align=align;}else{this.align='center';}this.position();};OO.ui.PopupWidget.prototype.getAlignment=function(){return this.align;};OO.ui.PopupWidget.prototype.setPosition=function(position){if(!['above','below','before','after'].includes(position)){position='below';}this.popupPosition=position;this.position();};OO.ui.PopupWidget.prototype.getPosition=function(){return this.popupPosition;};OO.ui.PopupWidget.prototype.setAutoFlip=function(autoFlip){autoFlip=!!autoFlip;if(this.autoFlip!==autoFlip){this.autoFlip=autoFlip;}};OO.ui.PopupWidget.prototype.setAutoCloseIgnore=function($autoCloseIgnore){this.$autoCloseIgnore=$autoCloseIgnore;};OO.ui.PopupWidget.prototype.getBodyId=function(){let id=this.$body.attr('id');if(id===undefined){
id=OO.ui.generateElementId();this.$body.attr('id',id);}return id;};OO.ui.mixin.PopupElement=function OoUiMixinPopupElement(config){config=config||{};this.popup=new OO.ui.PopupWidget(Object.assign({autoClose:true,$floatableContainer:this.$element},config.popup,{$autoCloseIgnore:this.$element.add(config.popup&&config.popup.$autoCloseIgnore)}));};OO.ui.mixin.PopupElement.prototype.getPopup=function(){return this.popup;};OO.ui.PopupButtonWidget=function OoUiPopupButtonWidget(config){config=config||{};OO.ui.PopupButtonWidget.super.call(this,config);OO.ui.mixin.PopupElement.call(this,config);this.$overlay=(config.$overlay===true?OO.ui.getDefaultOverlay():config.$overlay)||this.$element;this.connect(this,{click:'onAction'});this.$element.addClass('oo-ui-popupButtonWidget');this.$button.attr({'aria-haspopup':'dialog','aria-owns':this.popup.getElementId()});this.popup.$element.addClass('oo-ui-popupButtonWidget-popup').attr({role:'dialog','aria-describedby':this.getElementId()}).toggleClass('oo-ui-popupButtonWidget-framed-popup',this.isFramed())
.toggleClass('oo-ui-popupButtonWidget-frameless-popup',!this.isFramed());this.$overlay.append(this.popup.$element);};OO.inheritClass(OO.ui.PopupButtonWidget,OO.ui.ButtonWidget);OO.mixinClass(OO.ui.PopupButtonWidget,OO.ui.mixin.PopupElement);OO.ui.PopupButtonWidget.prototype.onAction=function(){this.popup.toggle();};OO.ui.mixin.GroupWidget=function OoUiMixinGroupWidget(config){OO.ui.mixin.GroupElement.call(this,config);};OO.mixinClass(OO.ui.mixin.GroupWidget,OO.ui.mixin.GroupElement);OO.ui.mixin.GroupWidget.prototype.setDisabled=function(disabled){OO.ui.Widget.prototype.setDisabled.call(this,disabled);if(this.items){for(let i=0,len=this.items.length;i<len;i++){this.items[i].updateDisabled();}}return this;};OO.ui.mixin.ItemWidget=function OoUiMixinItemWidget(){};OO.ui.mixin.ItemWidget.prototype.isDisabled=function(){return this.disabled||(this.elementGroup instanceof OO.ui.Widget&&this.elementGroup.isDisabled());};OO.ui.mixin.ItemWidget.prototype.setElementGroup=function(group){OO.ui.Element.prototype.setElementGroup.call(this,group);
this.updateDisabled();return this;};OO.ui.OptionWidget=function OoUiOptionWidget(config){config=config||{};OO.ui.OptionWidget.super.call(this,config);OO.ui.mixin.ItemWidget.call(this);OO.ui.mixin.LabelElement.call(this,config);OO.ui.mixin.FlaggedElement.call(this,config);OO.ui.mixin.AccessKeyedElement.call(this,config);OO.ui.mixin.TitledElement.call(this,config);this.highlighted=false;this.pressed=false;this.setSelected(!!config.selected);this.$element.data('oo-ui-optionWidget',this).attr({tabindex:'-1',role:'option'}).addClass('oo-ui-optionWidget').append(this.$label);};OO.inheritClass(OO.ui.OptionWidget,OO.ui.Widget);OO.mixinClass(OO.ui.OptionWidget,OO.ui.mixin.ItemWidget);OO.mixinClass(OO.ui.OptionWidget,OO.ui.mixin.LabelElement);OO.mixinClass(OO.ui.OptionWidget,OO.ui.mixin.FlaggedElement);OO.mixinClass(OO.ui.OptionWidget,OO.ui.mixin.AccessKeyedElement);OO.mixinClass(OO.ui.OptionWidget,OO.ui.mixin.TitledElement);OO.ui.OptionWidget.static.selectable=true;OO.ui.OptionWidget.static.highlightable=true;
OO.ui.OptionWidget.static.pressable=true;OO.ui.OptionWidget.static.scrollIntoViewOnSelect=false;OO.ui.OptionWidget.prototype.isSelectable=function(){return this.constructor.static.selectable&&!this.disabled&&this.isVisible();};OO.ui.OptionWidget.prototype.isHighlightable=function(){return this.constructor.static.highlightable&&!this.disabled&&this.isVisible();};OO.ui.OptionWidget.prototype.isPressable=function(){return this.constructor.static.pressable&&!this.disabled&&this.isVisible();};OO.ui.OptionWidget.prototype.isSelected=function(){return this.selected;};OO.ui.OptionWidget.prototype.isHighlighted=function(){return this.highlighted;};OO.ui.OptionWidget.prototype.isPressed=function(){return this.pressed;};OO.ui.OptionWidget.prototype.setSelected=function(state){if(this.constructor.static.selectable){this.selected=!!state;this.$element.toggleClass('oo-ui-optionWidget-selected',state).attr('aria-selected',this.selected.toString());if(state&&this.constructor.static.scrollIntoViewOnSelect){
this.scrollElementIntoView();}this.updateThemeClasses();}return this;};OO.ui.OptionWidget.prototype.setHighlighted=function(state){if(this.constructor.static.highlightable){this.highlighted=!!state;this.$element.toggleClass('oo-ui-optionWidget-highlighted',state);this.updateThemeClasses();}return this;};OO.ui.OptionWidget.prototype.setPressed=function(state){if(this.constructor.static.pressable){this.pressed=!!state;this.$element.toggleClass('oo-ui-optionWidget-pressed',state);this.updateThemeClasses();}return this;};OO.ui.OptionWidget.prototype.getMatchText=function(){const label=this.getLabel();return typeof label==='string'?label:this.$label.text();};OO.ui.SelectWidget=function OoUiSelectWidget(config){config=config||{};OO.ui.SelectWidget.super.call(this,config);OO.ui.mixin.GroupWidget.call(this,Object.assign({$group:this.$element},config));this.pressed=false;this.selecting=null;this.multiselect=!!config.multiselect;this.onDocumentMouseUpHandler=this.onDocumentMouseUp.bind(this);
this.onDocumentMouseMoveHandler=this.onDocumentMouseMove.bind(this);this.onDocumentKeyDownHandler=this.onDocumentKeyDown.bind(this);this.onDocumentKeyPressHandler=this.onDocumentKeyPress.bind(this);this.keyPressBuffer='';this.keyPressBufferTimer=null;this.blockMouseOverEvents=0;this.connect(this,{toggle:'onToggle'});this.$element.on({focusin:this.onFocus.bind(this),mousedown:this.onMouseDown.bind(this),mouseover:this.onMouseOver.bind(this),mouseleave:this.onMouseLeave.bind(this)});this.$element.addClass('oo-ui-selectWidget oo-ui-selectWidget-unpressed').attr({role:'listbox','aria-multiselectable':this.multiselect.toString()});this.setFocusOwner(this.$element);this.addItems(config.items||[]);};OO.inheritClass(OO.ui.SelectWidget,OO.ui.Widget);OO.mixinClass(OO.ui.SelectWidget,OO.ui.mixin.GroupWidget);OO.ui.SelectWidget.static.handleNavigationKeys=false;OO.ui.SelectWidget.static.listWrapsAround=true;OO.ui.SelectWidget.static.normalizeForMatching=function(text){let normalized=text.trim().replace(/\s+/,' ').toLowerCase();
normalized=normalized.normalize();return normalized;};OO.ui.SelectWidget.prototype.onFocus=function(event){let item;if(event.target===this.$element[0]){if(!this.findFirstSelectedItem()){item=this.findFirstSelectableItem();}}else{if(event.target.tabIndex===-1){item=this.findTargetItem(event);if(item&&!(item.isHighlightable()||item.isSelectable())){return;}}else{return;}}if(item){if(item.constructor.static.highlightable){this.highlightItem(item);}else{this.selectItem(item);}}if(event.target!==this.$element[0]){this.$focusOwner.trigger('focus');}};OO.ui.SelectWidget.prototype.onMouseDown=function(e){if(!this.isDisabled()&&e.which===OO.ui.MouseButtons.LEFT){this.togglePressed(true);const item=this.findTargetItem(e);if(item&&item.isSelectable()){this.pressItem(item);this.selecting=item;this.getElementDocument().addEventListener('mouseup',this.onDocumentMouseUpHandler,true);this.getElementDocument().addEventListener('mousemove',this.onDocumentMouseMoveHandler,true);}}return false;};OO.ui.SelectWidget.prototype.onDocumentMouseUp=function(e){
if(e.target===document.documentElement){return;}this.togglePressed(false);if(!this.selecting){const item=this.findTargetItem(e);if(item&&item.isSelectable()){this.selecting=item;}}if(!this.isDisabled()&&e.which===OO.ui.MouseButtons.LEFT&&this.selecting){this.pressItem(null);this.chooseItem(this.selecting);this.selecting=null;}this.getElementDocument().removeEventListener('mouseup',this.onDocumentMouseUpHandler,true);this.getElementDocument().removeEventListener('mousemove',this.onDocumentMouseMoveHandler,true);return false;};OO.ui.SelectWidget.prototype.onDocumentMouseMove=function(e){if(!this.isDisabled()&&this.pressed){const item=this.findTargetItem(e);if(item&&item!==this.selecting&&item.isSelectable()){this.pressItem(item);this.selecting=item;}}};OO.ui.SelectWidget.prototype.onMouseOver=function(e){if(this.blockMouseOverEvents){return;}if(!this.isDisabled()){const item=this.findTargetItem(e);this.highlightItem(item&&item.isHighlightable()?item:null);}return false;};OO.ui.SelectWidget.prototype.onMouseLeave=function(){
if(!this.isDisabled()){this.highlightItem(null);}return false;};OO.ui.SelectWidget.prototype.onDocumentKeyDown=function(e){let handled=false;const currentItem=(this.isVisible()&&this.findHighlightedItem())||(!this.multiselect&&this.findSelectedItem());let nextItem;if(!this.isDisabled()){switch(e.keyCode){case OO.ui.Keys.ENTER:if(currentItem){this.chooseItem(currentItem);handled=true;}break;case OO.ui.Keys.UP:case OO.ui.Keys.LEFT:case OO.ui.Keys.DOWN:case OO.ui.Keys.RIGHT:this.clearKeyPressBuffer();nextItem=this.findRelativeSelectableItem(currentItem,e.keyCode===OO.ui.Keys.UP||e.keyCode===OO.ui.Keys.LEFT?-1:1,null,this.constructor.static.listWrapsAround);handled=true;break;case OO.ui.Keys.HOME:case OO.ui.Keys.END:if(this.constructor.static.handleNavigationKeys){this.clearKeyPressBuffer();nextItem=this.findRelativeSelectableItem(null,e.keyCode===OO.ui.Keys.HOME?1:-1,null,this.constructor.static.listWrapsAround);handled=true;}break;case OO.ui.Keys.PAGEUP:case OO.ui.Keys.PAGEDOWN:if(this.constructor.static.handleNavigationKeys){
this.clearKeyPressBuffer();nextItem=this.findRelativeSelectableItem(currentItem,e.keyCode===OO.ui.Keys.PAGEUP?-10:10,null,this.constructor.static.listWrapsAround);handled=true;}break;case OO.ui.Keys.TAB:if(currentItem){currentItem.setHighlighted(false);}this.unbindDocumentKeyDownListener();this.unbindDocumentKeyPressListener();handled=false;break;}if(nextItem){if(this.isVisible()&&nextItem.constructor.static.highlightable){this.highlightItem(nextItem);}else{if(this.screenReaderMode){this.highlightItem(nextItem);}this.chooseItem(nextItem);}this.scrollItemIntoView(nextItem);}if(handled){e.preventDefault();e.stopPropagation();}}};OO.ui.SelectWidget.prototype.bindDocumentKeyDownListener=function(){this.getElementDocument().addEventListener('keydown',this.onDocumentKeyDownHandler,true);};OO.ui.SelectWidget.prototype.unbindDocumentKeyDownListener=function(){this.getElementDocument().removeEventListener('keydown',this.onDocumentKeyDownHandler,true);};OO.ui.SelectWidget.prototype.attachDocumentKeyDownListenerOnFocus=function($element){
$element=$element||this.$element;$element[0].addEventListener('focusin',this.bindDocumentKeyDownListener.bind(this));$element[0].addEventListener('focusout',this.unbindDocumentKeyDownListener.bind(this));};OO.ui.SelectWidget.prototype.scrollItemIntoView=function(item){this.blockMouseOverEvents++;item.scrollElementIntoView().done(()=>{setTimeout(()=>{this.blockMouseOverEvents--;},200);});};OO.ui.SelectWidget.prototype.clearKeyPressBuffer=function(){if(this.keyPressBufferTimer){clearTimeout(this.keyPressBufferTimer);this.keyPressBufferTimer=null;}this.keyPressBuffer='';};OO.ui.SelectWidget.prototype.onDocumentKeyPress=function(e){if(!e.charCode){if(e.keyCode===OO.ui.Keys.BACKSPACE&&this.keyPressBuffer!==''){this.keyPressBuffer=this.keyPressBuffer.slice(0,this.keyPressBuffer.length-1);return false;}return;}const c=String.fromCodePoint(e.charCode);if(this.keyPressBufferTimer){clearTimeout(this.keyPressBufferTimer);}this.keyPressBufferTimer=setTimeout(this.clearKeyPressBuffer.bind(this),1500);
let item=(this.isVisible()&&this.findHighlightedItem())||(!this.multiselect&&this.findSelectedItem());if(this.keyPressBuffer===c){if(item){item=this.findRelativeSelectableItem(item,1);}}else{this.keyPressBuffer+=c;}const filter=this.getItemMatcher(this.keyPressBuffer,false);if(!item||!filter(item)){item=this.findRelativeSelectableItem(item,1,filter);}if(item){if(this.isVisible()&&item.constructor.static.highlightable){this.highlightItem(item);}else{if(this.screenReaderMode){this.highlightItem(item);}this.chooseItem(item);}this.scrollItemIntoView(item);}e.preventDefault();e.stopPropagation();};OO.ui.SelectWidget.prototype.getItemMatcher=function(query,mode){const normalizeForMatching=this.constructor.static.normalizeForMatching,normalizedQuery=normalizeForMatching(query);if(!normalizedQuery){return function(){return mode!=='exact';};}return function(item){const matchText=normalizeForMatching(item.getMatchText());switch(mode){case'exact':return matchText===normalizedQuery;case'substring':
return matchText.includes(normalizedQuery);default:return matchText.indexOf(normalizedQuery)===0;}};};OO.ui.SelectWidget.prototype.bindDocumentKeyPressListener=function(){this.getElementDocument().addEventListener('keypress',this.onDocumentKeyPressHandler,true);};OO.ui.SelectWidget.prototype.unbindDocumentKeyPressListener=function(){this.getElementDocument().removeEventListener('keypress',this.onDocumentKeyPressHandler,true);this.clearKeyPressBuffer();};OO.ui.SelectWidget.prototype.onToggle=function(visible){if(!visible){this.clearKeyPressBuffer();}};OO.ui.SelectWidget.prototype.findTargetItem=function(e){const $option=$(e.target).closest('.oo-ui-optionWidget');if(!$option.closest('.oo-ui-selectWidget').is(this.$element)){return null;}return $option.data('oo-ui-optionWidget')||null;};OO.ui.SelectWidget.prototype.findFirstSelectedItem=function(){for(let i=0;i<this.items.length;i++){if(this.items[i].isSelected()){return this.items[i];}}return null;};OO.ui.SelectWidget.prototype.findSelectedItems=function(){
if(!this.multiselect){return this.findFirstSelectedItem();}return this.items.filter((item)=>item.isSelected());};OO.ui.SelectWidget.prototype.findSelectedItem=function(){return this.findSelectedItems();};OO.ui.SelectWidget.prototype.findHighlightedItem=function(){for(let i=0;i<this.items.length;i++){if(this.items[i].isHighlighted()){return this.items[i];}}return null;};OO.ui.SelectWidget.prototype.togglePressed=function(pressed){if(pressed===undefined){pressed=!this.pressed;}if(pressed!==this.pressed){this.$element.toggleClass('oo-ui-selectWidget-pressed',pressed).toggleClass('oo-ui-selectWidget-unpressed',!pressed);this.pressed=pressed;}};OO.ui.SelectWidget.prototype.highlightItem=function(item){if(item&&item.isHighlighted()){return this;}let changed=false;for(let i=0;i<this.items.length;i++){const highlighted=this.items[i]===item;if(this.items[i].isHighlighted()!==highlighted){this.items[i].setHighlighted(highlighted);if(changed){break;}changed=!highlighted||this.items[i].isHighlighted();
}}if(changed){if(item){this.$focusOwner.attr('aria-activedescendant',item.getElementId());}else{this.$focusOwner.removeAttr('aria-activedescendant');}this.emit('highlight',item);}return this;};OO.ui.SelectWidget.prototype.getItemFromLabel=function(label,prefix){const len=this.items.length;let filter=this.getItemMatcher(label,'exact');let i,item;for(i=0;i<len;i++){item=this.items[i];if(item instanceof OO.ui.OptionWidget&&item.isSelectable()&&filter(item)){return item;}}if(prefix){let found=null;filter=this.getItemMatcher(label,'prefix');for(i=0;i<len;i++){item=this.items[i];if(item instanceof OO.ui.OptionWidget&&item.isSelectable()&&filter(item)){if(found){return null;}found=item;}}if(found){return found;}}return null;};OO.ui.SelectWidget.prototype.selectItemByLabel=function(label,prefix){const itemFromLabel=this.getItemFromLabel(label,!!prefix);if(label===undefined||!itemFromLabel){return this.selectItem();}return this.selectItem(itemFromLabel);};OO.ui.SelectWidget.prototype.selectItemByData=function(data){
const itemFromData=this.findItemFromData(data);if(data===undefined||!itemFromData){return this.selectItem();}return this.selectItem(itemFromData);};OO.ui.SelectWidget.prototype.unselectItem=function(unselectedItem){if(!unselectedItem){this.selectItem();}else if(unselectedItem.isSelected()){unselectedItem.setSelected(false);this.emit('select',this.findSelectedItems());}return this;};OO.ui.SelectWidget.prototype.selectItem=function(item){if(item){if(item.isSelected()){return this;}else if(this.multiselect){item.setSelected(true);this.emit('select',this.findSelectedItems());return this;}}let changed=false;for(let i=0;i<this.items.length;i++){const selected=this.items[i]===item;if(this.items[i].isSelected()!==selected){this.items[i].setSelected(selected);if(changed&&!this.multiselect){break;}changed=!selected||this.items[i].isSelected();}}if(changed){if(!this.multiselect&&item&&!item.constructor.static.highlightable){this.$focusOwner.attr('aria-activedescendant',item.getElementId());}this.emit('select',this.findSelectedItems());
}return this;};OO.ui.SelectWidget.prototype.pressItem=function(item){if(item&&item.isPressed()){return this;}let changed=false;for(let i=0;i<this.items.length;i++){const pressed=this.items[i]===item;if(this.items[i].isPressed()!==pressed){this.items[i].setPressed(pressed);if(changed){break;}changed=!pressed||this.items[i].isPressed();}}if(changed){this.emit('press',item);}return this;};OO.ui.SelectWidget.prototype.chooseItem=function(item){if(item){if(this.multiselect&&item.isSelected()){this.unselectItem(item);}else{this.selectItem(item);}this.emit('choose',item,item.isSelected());}return this;};OO.ui.SelectWidget.prototype.findRelativeSelectableItem=function(item,offset,filter,wrap){const step=offset>0?1:-1,len=this.items.length;if(wrap===undefined){wrap=true;}let nextIndex;if(item instanceof OO.ui.OptionWidget){nextIndex=this.items.indexOf(item);}else{nextIndex=offset>0?0:len-1;offset-=step;}const previousItem=item;let nextItem=null;for(let i=0;i<len;i++){item=this.items[nextIndex];
if(item instanceof OO.ui.OptionWidget&&item.isSelectable()&&(!filter||filter(item))){nextItem=item;}if(offset===0&&nextItem&&nextItem!==previousItem){break;}nextIndex+=step;if(nextIndex<0||nextIndex>=len){if(wrap){nextIndex=(nextIndex+len)%len;}else{break;}}if(offset!==0){offset-=step;}}return nextItem;};OO.ui.SelectWidget.prototype.findFirstSelectableItem=function(){return this.findRelativeSelectableItem(null,1);};OO.ui.SelectWidget.prototype.addItems=function(items,index){if(!items||items.length===0){return this;}OO.ui.mixin.GroupWidget.prototype.addItems.call(this,items,index);this.emit('add',items,index===undefined?this.items.length-items.length-1:index);return this;};OO.ui.SelectWidget.prototype.removeItems=function(items){for(let i=0;i<items.length;i++){this.unselectItem(items[i]);}OO.ui.mixin.GroupWidget.prototype.removeItems.call(this,items);this.emit('remove',items);return this;};OO.ui.SelectWidget.prototype.clearItems=function(){const items=this.items.slice();OO.ui.mixin.GroupWidget.prototype.clearItems.call(this);
this.selectItem(null);this.emit('remove',items);return this;};OO.ui.SelectWidget.prototype.setFocusOwner=function($focusOwner){this.$focusOwner=$focusOwner;};OO.ui.DecoratedOptionWidget=function OoUiDecoratedOptionWidget(config){OO.ui.DecoratedOptionWidget.super.call(this,config);OO.ui.mixin.IconElement.call(this,config);OO.ui.mixin.IndicatorElement.call(this,config);this.$element.addClass('oo-ui-decoratedOptionWidget').prepend(this.$icon).append(this.$indicator);};OO.inheritClass(OO.ui.DecoratedOptionWidget,OO.ui.OptionWidget);OO.mixinClass(OO.ui.DecoratedOptionWidget,OO.ui.mixin.IconElement);OO.mixinClass(OO.ui.DecoratedOptionWidget,OO.ui.mixin.IndicatorElement);OO.ui.MenuOptionWidget=function OoUiMenuOptionWidget(config){OO.ui.MenuOptionWidget.super.call(this,config);this.checkIcon=new OO.ui.IconWidget({icon:'check',classes:['oo-ui-menuOptionWidget-checkIcon']});this.$element.prepend(this.checkIcon.$element).addClass('oo-ui-menuOptionWidget');};OO.inheritClass(OO.ui.MenuOptionWidget,OO.ui.DecoratedOptionWidget);
OO.ui.MenuOptionWidget.static.scrollIntoViewOnSelect=true;OO.ui.MenuSectionOptionWidget=function OoUiMenuSectionOptionWidget(config){OO.ui.MenuSectionOptionWidget.super.call(this,config);this.$element.addClass('oo-ui-menuSectionOptionWidget').removeAttr('role aria-selected');this.selected=false;};OO.inheritClass(OO.ui.MenuSectionOptionWidget,OO.ui.DecoratedOptionWidget);OO.ui.MenuSectionOptionWidget.static.selectable=false;OO.ui.MenuSectionOptionWidget.static.highlightable=false;OO.ui.MenuSelectWidget=function OoUiMenuSelectWidget(config){config=config||{};OO.ui.MenuSelectWidget.super.call(this,config);OO.ui.mixin.ClippableElement.call(this,Object.assign({$clippable:this.$group},config));OO.ui.mixin.FloatableElement.call(this,config);this.originalVerticalPosition=this.verticalPosition;this.autoHide=config.autoHide===undefined||!!config.autoHide;this.hideOnChoose=config.hideOnChoose===undefined||!!config.hideOnChoose;this.filterFromInput=!!config.filterFromInput;this.previouslySelectedValue=null;
this.$input=config.$input?config.$input:config.input?config.input.$input:null;this.$widget=config.widget?config.widget.$element:null;this.$autoCloseIgnore=config.$autoCloseIgnore||$([]);this.onDocumentMouseDownHandler=this.onDocumentMouseDown.bind(this);this.onInputEditHandler=OO.ui.debounce(this.updateItemVisibility.bind(this),100);this.highlightOnFilter=!!config.highlightOnFilter;this.lastHighlightedItem=null;this.width=config.width;this.filterMode=config.filterMode;this.screenReaderMode=false;this.$element.addClass('oo-ui-menuSelectWidget');if(config.widget){this.setFocusOwner(config.widget.$tabIndexed);}this.visible=false;this.$element.addClass('oo-ui-element-hidden');this.$focusOwner.attr('aria-expanded','false');};OO.inheritClass(OO.ui.MenuSelectWidget,OO.ui.SelectWidget);OO.mixinClass(OO.ui.MenuSelectWidget,OO.ui.mixin.ClippableElement);OO.mixinClass(OO.ui.MenuSelectWidget,OO.ui.mixin.FloatableElement);OO.ui.MenuSelectWidget.static.handleNavigationKeys=true;OO.ui.MenuSelectWidget.static.listWrapsAround=false;
OO.ui.MenuSelectWidget.static.flippedPositions={below:'above',above:'below',top:'bottom',bottom:'top'};OO.ui.MenuSelectWidget.prototype.onDocumentMouseDown=function(e){if(e.target===document.documentElement){return;}if(this.isVisible()&&!OO.ui.contains(this.$element.add(this.$widget).add(this.$autoCloseIgnore).get(),e.target,true)){this.toggle(false);}};OO.ui.MenuSelectWidget.prototype.onDocumentKeyDown=function(e){let handled=false;const currentItem=this.findHighlightedItem()||this.findFirstSelectedItem();if(!this.isDisabled()&&this.getVisibleItems().length){switch(e.keyCode){case OO.ui.Keys.ENTER:if(this.isVisible()){OO.ui.MenuSelectWidget.super.prototype.onDocumentKeyDown.call(this,e);}break;case OO.ui.Keys.TAB:if(this.isVisible()){if(currentItem&&!currentItem.isSelected()){this.chooseItem(currentItem);handled=true;}this.toggle(false);}break;case OO.ui.Keys.LEFT:case OO.ui.Keys.RIGHT:case OO.ui.Keys.HOME:case OO.ui.Keys.END:if(!this.$input){OO.ui.MenuSelectWidget.super.prototype.onDocumentKeyDown.call(this,e);
}break;case OO.ui.Keys.ESCAPE:if(this.isVisible()){if(currentItem&&!this.multiselect){currentItem.setHighlighted(false);}this.toggle(false);handled=true;}break;default:return OO.ui.MenuSelectWidget.super.prototype.onDocumentKeyDown.call(this,e);}if(handled){e.preventDefault();e.stopPropagation();}}};OO.ui.MenuSelectWidget.prototype.getVisibleItems=function(){return this.getItems().filter((item)=>item.isVisible());};OO.ui.MenuSelectWidget.prototype.updateItemVisibility=function(){if(!this.filterFromInput||!this.$input){this.clip();return;}let anyVisible=false;const showAll=!this.isVisible()||this.previouslySelectedValue===this.$input.val(),filter=showAll?null:this.getItemMatcher(this.$input.val(),this.filterMode);let item;let section,sectionEmpty;for(let i=0;i<this.items.length;i++){item=this.items[i];if(item instanceof OO.ui.MenuSectionOptionWidget){if(section){section.toggle(showAll||!sectionEmpty);}section=item;sectionEmpty=true;}else if(item instanceof OO.ui.OptionWidget){const visible=!filter||filter(item);
anyVisible=anyVisible||visible;sectionEmpty=sectionEmpty&&!visible;item.toggle(visible);}}if(section){section.toggle(showAll||!sectionEmpty);}if(!anyVisible){this.highlightItem(null);}this.$element.toggleClass('oo-ui-menuSelectWidget-invisible',!anyVisible);if(this.highlightOnFilter&&!(this.lastHighlightedItem&&this.lastHighlightedItem.isSelectable())&&this.isVisible()){item=this.findFirstSelectableItem();this.highlightItem(item);this.lastHighlightedItem=item;}this.clip();};OO.ui.MenuSelectWidget.prototype.bindDocumentKeyDownListener=function(){if(this.$input){this.$input.on('keydown',this.onDocumentKeyDownHandler);}else{OO.ui.MenuSelectWidget.super.prototype.bindDocumentKeyDownListener.call(this);}};OO.ui.MenuSelectWidget.prototype.unbindDocumentKeyDownListener=function(){if(this.$input){this.$input.off('keydown',this.onDocumentKeyDownHandler);}else{OO.ui.MenuSelectWidget.super.prototype.unbindDocumentKeyDownListener.call(this);}};OO.ui.MenuSelectWidget.prototype.bindDocumentKeyPressListener=function(){
if(this.$input){if(this.filterFromInput){this.$input.on('keydown mouseup cut paste change input select',this.onInputEditHandler);this.$input.one('keypress',()=>{this.previouslySelectedValue=null;});this.previouslySelectedValue=this.$input.val();this.updateItemVisibility();}}else{OO.ui.MenuSelectWidget.super.prototype.bindDocumentKeyPressListener.call(this);}};OO.ui.MenuSelectWidget.prototype.unbindDocumentKeyPressListener=function(){if(this.$input){if(this.filterFromInput){this.$input.off('keydown mouseup cut paste change input select',this.onInputEditHandler);this.updateItemVisibility();}}else{OO.ui.MenuSelectWidget.super.prototype.unbindDocumentKeyPressListener.call(this);}};OO.ui.MenuSelectWidget.prototype.chooseItem=function(item){OO.ui.MenuSelectWidget.super.prototype.chooseItem.call(this,item);if(this.hideOnChoose){this.toggle(false);}return this;};OO.ui.MenuSelectWidget.prototype.addItems=function(items,index){if(!items||items.length===0){return this;}OO.ui.MenuSelectWidget.super.prototype.addItems.call(this,items,index);
this.updateItemVisibility();return this;};OO.ui.MenuSelectWidget.prototype.removeItems=function(items){OO.ui.MenuSelectWidget.super.prototype.removeItems.call(this,items);this.updateItemVisibility();return this;};OO.ui.MenuSelectWidget.prototype.clearItems=function(){OO.ui.MenuSelectWidget.super.prototype.clearItems.call(this);this.updateItemVisibility();return this;};OO.ui.MenuSelectWidget.prototype.toggleScreenReaderMode=function(screenReaderMode){screenReaderMode=!!screenReaderMode;this.screenReaderMode=screenReaderMode;this.$element.toggleClass('oo-ui-menuSelectWidget-screenReaderMode',this.screenReaderMode);if(screenReaderMode){this.bindDocumentKeyDownListener();this.bindDocumentKeyPressListener();}else{this.$focusOwner.removeAttr('aria-activedescendant');this.unbindDocumentKeyDownListener();this.unbindDocumentKeyPressListener();}};OO.ui.MenuSelectWidget.prototype.toggle=function(visible){visible=(visible===undefined?!this.visible:!!visible)&&!!this.items.length;const change=visible!==this.isVisible();
if(visible&&!this.warnedUnattached&&!this.isElementAttached()){OO.ui.warnDeprecation('MenuSelectWidget#toggle: Before calling this method, the menu must be attached to the DOM.');this.warnedUnattached=true;}if(change&&visible){this.setVerticalPosition(this.originalVerticalPosition);}OO.ui.MenuSelectWidget.super.prototype.toggle.call(this,visible);if(change){if(visible){if(this.width){this.setIdealSize(this.width);}else if(this.$floatableContainer){this.$clippable.css('width','auto');this.setIdealSize(this.$floatableContainer[0].offsetWidth>this.$clippable[0].offsetWidth?this.$floatableContainer[0].offsetWidth:'auto');this.$clippable.css('width','');}this.togglePositioning(!!this.$floatableContainer);this.toggleClipping(true);if(!this.screenReaderMode){this.bindDocumentKeyDownListener();this.bindDocumentKeyPressListener();}if((this.isClippedVertically()||this.isFloatableOutOfView())&&this.originalVerticalPosition!=='center'){const originalHeight=this.$element.height();this.setVerticalPosition(
this.constructor.static.flippedPositions[this.originalVerticalPosition]);if(this.isClippedVertically()||this.isFloatableOutOfView()){const flippedHeight=this.$element.height();if(originalHeight>=flippedHeight){this.setVerticalPosition(this.originalVerticalPosition);}}}this.$focusOwner.attr('aria-expanded','true');this.$focusOwner.attr('aria-owns',this.getElementId());const selectedItem=!this.multiselect&&this.findSelectedItem();if(selectedItem){this.$focusOwner.attr('aria-activedescendant',selectedItem.getElementId());selectedItem.scrollElementIntoView({duration:0});}if(this.autoHide){this.getElementDocument().addEventListener('mousedown',this.onDocumentMouseDownHandler,true);}this.emit('ready');}else{this.$focusOwner.removeAttr('aria-activedescendant');if(!this.screenReaderMode){this.unbindDocumentKeyDownListener();this.unbindDocumentKeyPressListener();}this.$focusOwner.attr('aria-expanded','false');this.$focusOwner.removeAttr('aria-owns');this.getElementDocument().removeEventListener('mousedown',this.onDocumentMouseDownHandler,true);
this.togglePositioning(false);this.toggleClipping(false);this.lastHighlightedItem=null;}}return this;};OO.ui.MenuSelectWidget.prototype.scrollToTop=function(){this.$element.scrollTop(0);};OO.ui.DropdownWidget=function OoUiDropdownWidget(config){config=Object.assign({indicator:'down'},config);OO.ui.DropdownWidget.super.call(this,config);this.$handle=$('<span>');this.$overlay=(config.$overlay===true?OO.ui.getDefaultOverlay():config.$overlay)||this.$element;OO.ui.mixin.IconElement.call(this,config);OO.ui.mixin.IndicatorElement.call(this,config);OO.ui.mixin.LabelElement.call(this,config);OO.ui.mixin.TitledElement.call(this,Object.assign({$titled:this.$label},config));OO.ui.mixin.TabIndexedElement.call(this,Object.assign({$tabIndexed:this.$handle},config));this.menu=new OO.ui.MenuSelectWidget(Object.assign({widget:this,$floatableContainer:this.$element},config.menu));this.$handle.on({click:this.onClick.bind(this),keydown:this.onKeyDown.bind(this),focus:this.onFocus.bind(this),blur:this.onBlur.bind(this)
});this.menu.connect(this,{select:'onMenuSelect',toggle:'onMenuToggle'});const labelId=OO.ui.generateElementId();this.setLabelId(labelId);this.$label.attr({role:'textbox','aria-readonly':'true'});this.$handle.addClass('oo-ui-dropdownWidget-handle').append(this.$icon,this.$label,this.$indicator).attr({role:'combobox','aria-autocomplete':'list','aria-expanded':'false','aria-haspopup':'true','aria-labelledby':labelId});this.$element.addClass('oo-ui-dropdownWidget').append(this.$handle);this.$overlay.append(this.menu.$element);};OO.inheritClass(OO.ui.DropdownWidget,OO.ui.Widget);OO.mixinClass(OO.ui.DropdownWidget,OO.ui.mixin.IconElement);OO.mixinClass(OO.ui.DropdownWidget,OO.ui.mixin.IndicatorElement);OO.mixinClass(OO.ui.DropdownWidget,OO.ui.mixin.LabelElement);OO.mixinClass(OO.ui.DropdownWidget,OO.ui.mixin.TitledElement);OO.mixinClass(OO.ui.DropdownWidget,OO.ui.mixin.TabIndexedElement);OO.ui.DropdownWidget.prototype.getMenu=function(){return this.menu;};OO.ui.DropdownWidget.prototype.onMenuSelect=function(item){
let selectedLabel;if(!item){this.setLabel(null);return;}selectedLabel=item.getLabel();if(selectedLabel instanceof $){selectedLabel=selectedLabel.clone();}this.setLabel(selectedLabel);};OO.ui.DropdownWidget.prototype.onMenuToggle=function(isVisible){this.$element.toggleClass('oo-ui-dropdownWidget-open',isVisible);};OO.ui.DropdownWidget.prototype.onClick=function(e){if(!this.isDisabled()&&e.which===OO.ui.MouseButtons.LEFT){this.menu.toggle();}return false;};OO.ui.DropdownWidget.prototype.onKeyDown=function(e){if(!this.isDisabled()){switch(e.keyCode){case OO.ui.Keys.ENTER:this.menu.toggle();return false;case OO.ui.Keys.SPACE:if(this.menu.keyPressBuffer===''){this.menu.toggle();return false;}break;}}};OO.ui.DropdownWidget.prototype.onFocus=function(){this.menu.toggleScreenReaderMode(true);};OO.ui.DropdownWidget.prototype.onBlur=function(){this.menu.toggleScreenReaderMode(false);};OO.ui.DropdownWidget.prototype.setLabelledBy=function(id){const labelId=this.$label.attr('id');if(id){this.$handle.attr('aria-labelledby',id+' '+labelId);
}else{this.$handle.attr('aria-labelledby',labelId);}};OO.ui.RadioOptionWidget=function OoUiRadioOptionWidget(config){config=config||{};this.radio=new OO.ui.RadioInputWidget({value:config.data,tabIndex:-1});OO.ui.RadioOptionWidget.super.call(this,config);this.radio.$input.attr('role','presentation');this.$element.addClass('oo-ui-radioOptionWidget').attr({role:'radio','aria-checked':'false'}).removeAttr('aria-selected').prepend(this.radio.$element);};OO.inheritClass(OO.ui.RadioOptionWidget,OO.ui.OptionWidget);OO.ui.RadioOptionWidget.static.highlightable=false;OO.ui.RadioOptionWidget.static.pressable=false;OO.ui.RadioOptionWidget.static.tagName='label';OO.ui.RadioOptionWidget.prototype.setSelected=function(state){OO.ui.RadioOptionWidget.super.prototype.setSelected.call(this,state);this.radio.setSelected(state);this.$element.attr('aria-checked',this.selected.toString()).removeAttr('aria-selected');return this;};OO.ui.RadioOptionWidget.prototype.setDisabled=function(disabled){OO.ui.RadioOptionWidget.super.prototype.setDisabled.call(this,disabled);
this.radio.setDisabled(this.isDisabled());return this;};OO.ui.RadioSelectWidget=function OoUiRadioSelectWidget(config){OO.ui.RadioSelectWidget.super.call(this,config);OO.ui.mixin.TabIndexedElement.call(this,config);this.attachDocumentKeyDownListenerOnFocus();this.$element.addClass('oo-ui-radioSelectWidget').attr('role','radiogroup').removeAttr('aria-multiselectable');};OO.inheritClass(OO.ui.RadioSelectWidget,OO.ui.SelectWidget);OO.mixinClass(OO.ui.RadioSelectWidget,OO.ui.mixin.TabIndexedElement);OO.ui.MultioptionWidget=function OoUiMultioptionWidget(config){config=config||{};OO.ui.MultioptionWidget.super.call(this,config);OO.ui.mixin.ItemWidget.call(this);OO.ui.mixin.LabelElement.call(this,config);OO.ui.mixin.TitledElement.call(this,config);this.selected=null;this.$element.addClass('oo-ui-multioptionWidget').append(this.$label);this.setSelected(config.selected);};OO.inheritClass(OO.ui.MultioptionWidget,OO.ui.Widget);OO.mixinClass(OO.ui.MultioptionWidget,OO.ui.mixin.ItemWidget);OO.mixinClass(OO.ui.MultioptionWidget,OO.ui.mixin.LabelElement);
OO.mixinClass(OO.ui.MultioptionWidget,OO.ui.mixin.TitledElement);OO.ui.MultioptionWidget.prototype.isSelected=function(){return this.selected;};OO.ui.MultioptionWidget.prototype.setSelected=function(state){state=!!state;if(this.selected!==state){this.selected=state;this.emit('change',state);this.$element.toggleClass('oo-ui-multioptionWidget-selected',state);}return this;};OO.ui.MultiselectWidget=function OoUiMultiselectWidget(config){OO.ui.MultiselectWidget.super.call(this,config);config=config||{};OO.ui.mixin.GroupWidget.call(this,config);OO.ui.mixin.TitledElement.call(this,config);this.aggregate({change:'select'});this.connect(this,{select:['emit','change']});this.addItems(config.items||[]);this.$group.addClass('oo-ui-multiselectWidget-group');this.$element.addClass('oo-ui-multiselectWidget').append(this.$group);};OO.inheritClass(OO.ui.MultiselectWidget,OO.ui.Widget);OO.mixinClass(OO.ui.MultiselectWidget,OO.ui.mixin.GroupWidget);OO.mixinClass(OO.ui.MultiselectWidget,OO.ui.mixin.TitledElement);
OO.ui.MultiselectWidget.prototype.findSelectedItems=function(){return this.items.filter((item)=>item.isSelected());};OO.ui.MultiselectWidget.prototype.findSelectedItemsData=function(){return this.findSelectedItems().map((item)=>item.data);};OO.ui.MultiselectWidget.prototype.selectItems=function(items){const itemsSet=new Set(items);this.items.forEach((item)=>{const selected=itemsSet.has(item);item.setSelected(selected);});return this;};OO.ui.MultiselectWidget.prototype.selectItemsByData=function(datas){const dataHashSet=new Set(datas.map((data)=>OO.getHash(data)));this.items.forEach((item)=>{const selected=dataHashSet.has(OO.getHash(item.getData()));item.setSelected(selected);});return this;};OO.ui.CheckboxMultioptionWidget=function OoUiCheckboxMultioptionWidget(config){config=config||{};this.checkbox=new OO.ui.CheckboxInputWidget();OO.ui.CheckboxMultioptionWidget.super.call(this,config);this.checkbox.on('change',this.onCheckboxChange.bind(this));this.$element.on('keydown',this.onKeyDown.bind(this));
this.$element.addClass('oo-ui-checkboxMultioptionWidget').prepend(this.checkbox.$element);};OO.inheritClass(OO.ui.CheckboxMultioptionWidget,OO.ui.MultioptionWidget);OO.ui.CheckboxMultioptionWidget.static.tagName='label';OO.ui.CheckboxMultioptionWidget.prototype.onCheckboxChange=function(){this.setSelected(this.checkbox.isSelected());};OO.ui.CheckboxMultioptionWidget.prototype.setSelected=function(state){OO.ui.CheckboxMultioptionWidget.super.prototype.setSelected.call(this,state);this.checkbox.setSelected(state);return this;};OO.ui.CheckboxMultioptionWidget.prototype.setDisabled=function(disabled){OO.ui.CheckboxMultioptionWidget.super.prototype.setDisabled.call(this,disabled);this.checkbox.setDisabled(this.isDisabled());return this;};OO.ui.CheckboxMultioptionWidget.prototype.focus=function(){this.checkbox.focus();};OO.ui.CheckboxMultioptionWidget.prototype.onKeyDown=function(e){const element=this.getElementGroup();let nextItem;if(e.keyCode===OO.ui.Keys.LEFT||e.keyCode===OO.ui.Keys.UP){
nextItem=element.getRelativeFocusableItem(this,-1);}else if(e.keyCode===OO.ui.Keys.RIGHT||e.keyCode===OO.ui.Keys.DOWN){nextItem=element.getRelativeFocusableItem(this,1);}if(nextItem){e.preventDefault();nextItem.focus();}};OO.ui.CheckboxMultiselectWidget=function OoUiCheckboxMultiselectWidget(config){OO.ui.CheckboxMultiselectWidget.super.call(this,config);this.$lastClicked=null;this.$group.on('click',this.onClick.bind(this));this.$element.addClass('oo-ui-checkboxMultiselectWidget');};OO.inheritClass(OO.ui.CheckboxMultiselectWidget,OO.ui.MultiselectWidget);OO.ui.CheckboxMultiselectWidget.prototype.getRelativeFocusableItem=function(item,direction){const increase=direction>0?1:-1,len=this.items.length;let nextIndex;if(item){const currentIndex=this.items.indexOf(item);nextIndex=(currentIndex+increase+len)%len;}else{nextIndex=direction>0?0:len-1;}for(let i=0;i<len;i++){item=this.items[nextIndex];if(item&&!item.isDisabled()){return item;}nextIndex=(nextIndex+increase+len)%len;}return null;};
OO.ui.CheckboxMultiselectWidget.prototype.onClick=function(e){const $lastClicked=this.$lastClicked,$nowClicked=$(e.target).closest('.oo-ui-checkboxMultioptionWidget').not('.oo-ui-widget-disabled');if($lastClicked&&$nowClicked.length&&e.shiftKey){const $options=this.$group.find('.oo-ui-checkboxMultioptionWidget');const lastClickedIndex=$options.index($lastClicked);const nowClickedIndex=$options.index($nowClicked);if(nowClickedIndex!==lastClickedIndex){const items=this.items;const wasSelected=items[nowClickedIndex].isSelected();const direction=nowClickedIndex>lastClickedIndex?1:-1;for(let i=lastClickedIndex;i!==nowClickedIndex;i+=direction){if(!items[i].isDisabled()){items[i].setSelected(!wasSelected);}}e.preventDefault();setTimeout(()=>{if(!items[nowClickedIndex].isDisabled()){items[nowClickedIndex].setSelected(!wasSelected);}});}}if($nowClicked.length){this.$lastClicked=$nowClicked;}};OO.ui.CheckboxMultiselectWidget.prototype.focus=function(){if(!this.isDisabled()){const item=this.getRelativeFocusableItem(null,1);
if(item){item.focus();}}return this;};OO.ui.CheckboxMultiselectWidget.prototype.simulateLabelClick=function(){this.focus();};OO.ui.ProgressBarWidget=function OoUiProgressBarWidget(config){config=config||{};OO.ui.ProgressBarWidget.super.call(this,config);OO.ui.mixin.PendingElement.call(this,config);this.$bar=$('<div>');this.progress=null;this.setProgress(config.progress!==undefined?config.progress:false);this.$bar.addClass('oo-ui-progressBarWidget-bar');this.$element.attr({role:'progressbar','aria-valuemin':0,'aria-valuemax':100}).addClass('oo-ui-progressBarWidget').append(this.$bar);if(config.inline){this.$element.addClass('oo-ui-progressBarWidget-inline');}};OO.inheritClass(OO.ui.ProgressBarWidget,OO.ui.Widget);OO.mixinClass(OO.ui.ProgressBarWidget,OO.ui.mixin.PendingElement);OO.ui.ProgressBarWidget.static.tagName='div';OO.ui.ProgressBarWidget.prototype.getProgress=function(){return this.progress;};OO.ui.ProgressBarWidget.prototype.setProgress=function(progress){this.progress=progress;
if(progress!==false){this.$bar.css('width',this.progress+'%');this.$element.attr('aria-valuenow',this.progress);}else{this.$bar.css('width','');this.$element.removeAttr('aria-valuenow');}this.$element.toggleClass('oo-ui-progressBarWidget-indeterminate',progress===false);};OO.ui.InputWidget=function OoUiInputWidget(config){config=config||{};OO.ui.InputWidget.super.call(this,config);this.$input=config.$input||this.getInputElement(config);this.value='';this.inputFilter=config.inputFilter;OO.ui.mixin.TabIndexedElement.call(this,Object.assign({$tabIndexed:this.$input},config));OO.ui.mixin.TitledElement.call(this,Object.assign({$titled:this.$input},config));OO.ui.mixin.AccessKeyedElement.call(this,Object.assign({$accessKeyed:this.$input},config));this.$input.on('keydown mouseup cut paste change input select',this.onEdit.bind(this));this.$input.addClass('oo-ui-inputWidget-input').attr('name',config.name).prop('disabled',this.isDisabled());this.$element.addClass('oo-ui-inputWidget').append(this.$input);
this.setValue(config.value);if(config.dir){this.setDir(config.dir);}if(config.inputId!==undefined){this.setInputId(config.inputId);}};OO.inheritClass(OO.ui.InputWidget,OO.ui.Widget);OO.mixinClass(OO.ui.InputWidget,OO.ui.mixin.TabIndexedElement);OO.mixinClass(OO.ui.InputWidget,OO.ui.mixin.TitledElement);OO.mixinClass(OO.ui.InputWidget,OO.ui.mixin.AccessKeyedElement);OO.ui.InputWidget.static.reusePreInfuseDOM=function(node,config){const $input=$(node).find('.oo-ui-inputWidget-input');config=OO.ui.InputWidget.super.static.reusePreInfuseDOM(node,config);if($input.length){config.$input=$input;}return config;};OO.ui.InputWidget.static.gatherPreInfuseState=function(node,config){const state=OO.ui.InputWidget.super.static.gatherPreInfuseState(node,config);if(config.$input){state.value=config.$input.val();state.focus=config.$input.is(':focus');}return state;};OO.ui.InputWidget.prototype.getInputElement=function(){return $('<input>');};OO.ui.InputWidget.prototype.onEdit=function(){if(!this.isDisabled()){
this.setValue(this.$input.val());setTimeout(()=>{this.setValue(this.$input.val());});}};OO.ui.InputWidget.prototype.getValue=function(){const value=this.$input.val();if(this.value!==value){this.setValue(value);}return this.value;};OO.ui.InputWidget.prototype.setDir=function(dir){this.$input.prop('dir',dir);return this;};OO.ui.InputWidget.prototype.setValue=function(value){value=this.cleanUpValue(value);if(this.$input.val()!==value){this.$input.val(value);}if(this.value!==value){this.value=value;this.emit('change',this.value);}if(this.defaultValue===undefined){this.defaultValue=this.value;this.$input[0].defaultValue=this.defaultValue;}return this;};OO.ui.InputWidget.prototype.cleanUpValue=function(value){if(value===undefined||value===null){return'';}else if(this.inputFilter){return this.inputFilter(String(value));}else{return String(value);}};OO.ui.InputWidget.prototype.setDisabled=function(state){OO.ui.InputWidget.super.prototype.setDisabled.call(this,state);if(this.$input){this.$input.prop('disabled',this.isDisabled());
}return this;};OO.ui.InputWidget.prototype.setInputId=function(id){this.$input.attr('id',id);return this;};OO.ui.InputWidget.prototype.restorePreInfuseState=function(state){OO.ui.InputWidget.super.prototype.restorePreInfuseState.call(this,state);if(state.value!==undefined&&state.value!==this.getValue()){this.setValue(state.value);}if(state.focus){this.focus();}};OO.ui.HiddenInputWidget=function OoUiHiddenInputWidget(config){config=Object.assign({value:'',name:''},config);OO.ui.HiddenInputWidget.super.call(this,config);this.$element.attr({type:'hidden',value:config.value,name:config.name});this.$element.removeAttr('aria-disabled');};OO.inheritClass(OO.ui.HiddenInputWidget,OO.ui.Widget);OO.ui.HiddenInputWidget.static.tagName='input';OO.ui.ButtonInputWidget=function OoUiButtonInputWidget(config){config=Object.assign({type:'button',useInputTag:false,formNoValidate:false},config);if(config.$input){config.$input.empty();}this.useInputTag=config.useInputTag;OO.ui.ButtonInputWidget.super.call(this,config);
OO.ui.mixin.ButtonElement.call(this,Object.assign({$button:this.$input},config));OO.ui.mixin.IconElement.call(this,config);OO.ui.mixin.IndicatorElement.call(this,config);OO.ui.mixin.LabelElement.call(this,config);OO.ui.mixin.FlaggedElement.call(this,config);if(!config.useInputTag){this.$input.append(this.$icon,this.$label,this.$indicator);}if(config.formNoValidate){this.$input.attr('formnovalidate','formnovalidate');}this.$element.addClass('oo-ui-buttonInputWidget');};OO.inheritClass(OO.ui.ButtonInputWidget,OO.ui.InputWidget);OO.mixinClass(OO.ui.ButtonInputWidget,OO.ui.mixin.ButtonElement);OO.mixinClass(OO.ui.ButtonInputWidget,OO.ui.mixin.IconElement);OO.mixinClass(OO.ui.ButtonInputWidget,OO.ui.mixin.IndicatorElement);OO.mixinClass(OO.ui.ButtonInputWidget,OO.ui.mixin.LabelElement);OO.mixinClass(OO.ui.ButtonInputWidget,OO.ui.mixin.FlaggedElement);OO.ui.ButtonInputWidget.static.tagName='span';OO.ui.ButtonInputWidget.prototype.getInputElement=function(config){const type=config.type==='submit'||config.type==='reset'?config.type:'button';
return $('<'+(config.useInputTag?'input':'button')+' type="'+type+'">');};OO.ui.ButtonInputWidget.prototype.setLabel=function(label){label=OO.ui.resolveMsg(label);if(this.useInputTag){if(typeof label!=='string'){label='';}this.$input.val(label);}return OO.ui.mixin.LabelElement.prototype.setLabel.call(this,label);};OO.ui.ButtonInputWidget.prototype.setValue=function(value){if(!this.useInputTag){OO.ui.ButtonInputWidget.super.prototype.setValue.call(this,value);}return this;};OO.ui.ButtonInputWidget.prototype.getInputId=function(){return null;};OO.ui.CheckboxInputWidget=function OoUiCheckboxInputWidget(config){config=config||{};OO.ui.CheckboxInputWidget.super.call(this,config);OO.ui.mixin.RequiredElement.call(this,Object.assign({},{indicatorElement:null},config));this.checkIcon=new OO.ui.IconWidget({icon:'check',classes:['oo-ui-checkboxInputWidget-checkIcon']});this.$element.addClass('oo-ui-checkboxInputWidget').append(this.checkIcon.$element);this.setSelected(config.selected!==undefined?config.selected:false);
this.setIndeterminate(config.indeterminate!==undefined?config.indeterminate:false);};OO.inheritClass(OO.ui.CheckboxInputWidget,OO.ui.InputWidget);OO.mixinClass(OO.ui.CheckboxInputWidget,OO.ui.mixin.RequiredElement);OO.ui.CheckboxInputWidget.static.tagName='span';OO.ui.CheckboxInputWidget.static.gatherPreInfuseState=function(node,config){const state=OO.ui.CheckboxInputWidget.super.static.gatherPreInfuseState(node,config);if(config.$input){state.checked=config.$input.prop('checked');}return state;};OO.ui.CheckboxInputWidget.prototype.getInputElement=function(){return $('<input>').attr('type','checkbox');};OO.ui.CheckboxInputWidget.prototype.onEdit=function(){if(!this.isDisabled()){setTimeout(()=>{this.setSelected(this.$input.prop('checked'));this.setIndeterminate(this.$input.prop('indeterminate'));});}};OO.ui.CheckboxInputWidget.prototype.setSelected=function(state,internal){state=!!state;if(this.selected!==state){this.selected=state;this.$input.prop('checked',this.selected);if(!internal){
this.setIndeterminate(false,true);this.emit('change',this.selected,this.indeterminate);}}if(this.defaultSelected===undefined){this.defaultSelected=this.selected;this.$input[0].defaultChecked=this.defaultSelected;}return this;};OO.ui.CheckboxInputWidget.prototype.isSelected=function(){const selected=this.$input.prop('checked');if(this.selected!==selected){this.setSelected(selected);}return this.selected;};OO.ui.CheckboxInputWidget.prototype.setIndeterminate=function(state,internal){state=!!state;if(this.indeterminate!==state){this.indeterminate=state;this.$input.prop('indeterminate',this.indeterminate);if(!internal){this.setSelected(false,true);this.emit('change',this.selected,this.indeterminate);}}return this;};OO.ui.CheckboxInputWidget.prototype.isIndeterminate=function(){const indeterminate=this.$input.prop('indeterminate');if(this.indeterminate!==indeterminate){this.setIndeterminate(indeterminate);}return this.indeterminate;};OO.ui.CheckboxInputWidget.prototype.simulateLabelClick=function(){
if(!this.isDisabled()){this.$handle.trigger('click');}this.focus();};OO.ui.CheckboxInputWidget.prototype.restorePreInfuseState=function(state){OO.ui.CheckboxInputWidget.super.prototype.restorePreInfuseState.call(this,state);if(state.checked!==undefined&&state.checked!==this.isSelected()){this.setSelected(state.checked);}};OO.ui.DropdownInputWidget=function OoUiDropdownInputWidget(config){config=config||{};this.dropdownWidget=new OO.ui.DropdownWidget(Object.assign({$overlay:config.$overlay},config.dropdown));this.setOptionsData(config.options||[]);OO.ui.DropdownInputWidget.super.call(this,config);OO.ui.mixin.RequiredElement.call(this,Object.assign({},{indicatorElement:null},config));this.dropdownWidget.getMenu().connect(this,{select:'onMenuSelect'});const downIndicator=new OO.ui.IndicatorWidget({indicator:'down'});this.$element.addClass('oo-ui-dropdownInputWidget').append(this.dropdownWidget.$element,downIndicator.$element);if(OO.ui.isMobile()){this.$element.addClass('oo-ui-isMobile');}else{
this.setTabIndexedElement(this.dropdownWidget.$tabIndexed);}this.setTitledElement(this.dropdownWidget.$handle);};OO.inheritClass(OO.ui.DropdownInputWidget,OO.ui.InputWidget);OO.mixinClass(OO.ui.DropdownInputWidget,OO.ui.mixin.RequiredElement);OO.ui.DropdownInputWidget.prototype.getInputElement=function(){return $('<select>');};OO.ui.DropdownInputWidget.prototype.onMenuSelect=function(item){this.setValue(item?item.getData():'');};OO.ui.DropdownInputWidget.prototype.setValue=function(value){value=this.cleanUpValue(value);const selected=this.dropdownWidget.getMenu().findItemFromData(value)||this.dropdownWidget.getMenu().findFirstSelectableItem();this.dropdownWidget.getMenu().selectItem(selected);value=selected?selected.getData():'';OO.ui.DropdownInputWidget.super.prototype.setValue.call(this,value);if(this.optionsDirty){this.updateOptionsInterface();}return this;};OO.ui.DropdownInputWidget.prototype.setDisabled=function(state){this.dropdownWidget.setDisabled(state);OO.ui.DropdownInputWidget.super.prototype.setDisabled.call(this,state);
return this;};OO.ui.DropdownInputWidget.prototype.setOptions=function(options){const value=this.getValue();this.setOptionsData(options);this.setValue(value);return this;};OO.ui.DropdownInputWidget.prototype.setOptionsData=function(options){this.optionsDirty=true;const optionWidgets=[];let previousOptgroup;for(let optIndex=0;optIndex<options.length;optIndex++){const opt=options[optIndex];let optionWidget;if(opt.optgroup!==undefined){optionWidget=this.createMenuSectionOptionWidget(opt.optgroup);previousOptgroup=optionWidget;}else{const optValue=this.cleanUpValue(opt.data);optionWidget=this.createMenuOptionWidget(optValue,opt.label!==undefined?opt.label:optValue);}if(opt.disabled!==undefined||previousOptgroup instanceof OO.ui.MenuSectionOptionWidget&&previousOptgroup.isDisabled()){optionWidget.setDisabled(true);}optionWidgets.push(optionWidget);}this.dropdownWidget.getMenu().clearItems().addItems(optionWidgets);};OO.ui.DropdownInputWidget.prototype.createMenuOptionWidget=function(data,label){
return new OO.ui.MenuOptionWidget({data:data,label:label});};OO.ui.DropdownInputWidget.prototype.createMenuSectionOptionWidget=function(label){return new OO.ui.MenuSectionOptionWidget({label:label});};OO.ui.DropdownInputWidget.prototype.updateOptionsInterface=function(){let $optionsContainer=this.$input;const defaultValue=this.defaultValue;this.$input.empty();this.dropdownWidget.getMenu().getItems().forEach((optionWidget)=>{let $optionNode;if(!(optionWidget instanceof OO.ui.MenuSectionOptionWidget)){$optionNode=$('<option>').attr('value',optionWidget.getData()).text(optionWidget.getLabel());$optionNode[0].defaultSelected=(optionWidget.getData()===defaultValue);$optionsContainer.append($optionNode);}else{$optionNode=$('<optgroup>').attr('label',optionWidget.getLabel());this.$input.append($optionNode);$optionsContainer=$optionNode;}if(optionWidget.isDisabled()){$optionNode.prop('disabled',true);}});this.optionsDirty=false;};OO.ui.DropdownInputWidget.prototype.focus=function(){this.dropdownWidget.focus();
return this;};OO.ui.DropdownInputWidget.prototype.blur=function(){this.dropdownWidget.blur();return this;};OO.ui.DropdownInputWidget.prototype.setLabelledBy=function(id){this.dropdownWidget.setLabelledBy(id);};OO.ui.RadioInputWidget=function OoUiRadioInputWidget(config){config=config||{};OO.ui.RadioInputWidget.super.call(this,config);OO.ui.mixin.RequiredElement.call(this,Object.assign({},{indicatorElement:null},config));this.$element.addClass('oo-ui-radioInputWidget').append($('<span>'));this.setSelected(config.selected!==undefined?config.selected:false);};OO.inheritClass(OO.ui.RadioInputWidget,OO.ui.InputWidget);OO.mixinClass(OO.ui.RadioInputWidget,OO.ui.mixin.RequiredElement);OO.ui.RadioInputWidget.static.tagName='span';OO.ui.RadioInputWidget.static.gatherPreInfuseState=function(node,config){const state=OO.ui.RadioInputWidget.super.static.gatherPreInfuseState(node,config);if(config.$input){state.checked=config.$input.prop('checked');}return state;};OO.ui.RadioInputWidget.prototype.getInputElement=function(){
return $('<input>').attr('type','radio');};OO.ui.RadioInputWidget.prototype.onEdit=function(){};OO.ui.RadioInputWidget.prototype.setSelected=function(state){this.$input.prop('checked',state);if(this.defaultSelected===undefined){this.defaultSelected=state;this.$input[0].defaultChecked=this.defaultSelected;}return this;};OO.ui.RadioInputWidget.prototype.isSelected=function(){return this.$input.prop('checked');};OO.ui.RadioInputWidget.prototype.simulateLabelClick=function(){if(!this.isDisabled()){this.$input.trigger('click');}this.focus();};OO.ui.RadioInputWidget.prototype.restorePreInfuseState=function(state){OO.ui.RadioInputWidget.super.prototype.restorePreInfuseState.call(this,state);if(state.checked!==undefined&&state.checked!==this.isSelected()){this.setSelected(state.checked);}};OO.ui.RadioSelectInputWidget=function OoUiRadioSelectInputWidget(config){config=config||{};this.radioSelectWidget=new OO.ui.RadioSelectWidget();this.setOptionsData(config.options||[]);OO.ui.RadioSelectInputWidget.super.call(this,config);
this.radioSelectWidget.connect(this,{select:'onMenuSelect'});this.$element.addClass('oo-ui-radioSelectInputWidget').append(this.radioSelectWidget.$element);this.setTabIndexedElement(this.radioSelectWidget.$tabIndexed);};OO.inheritClass(OO.ui.RadioSelectInputWidget,OO.ui.InputWidget);OO.ui.RadioSelectInputWidget.static.gatherPreInfuseState=function(node,config){const state=OO.ui.RadioSelectInputWidget.super.static.gatherPreInfuseState(node,config);state.value=$(node).find('.oo-ui-radioInputWidget .oo-ui-inputWidget-input:checked').val();return state;};OO.ui.RadioSelectInputWidget.static.reusePreInfuseDOM=function(node,config){config=OO.ui.RadioSelectInputWidget.super.static.reusePreInfuseDOM(node,config);delete config.$input;return config;};OO.ui.RadioSelectInputWidget.prototype.getInputElement=function(){return $('<input>').addClass('oo-ui-element-hidden');};OO.ui.RadioSelectInputWidget.prototype.onMenuSelect=function(item){this.setValue(item.getData());};OO.ui.RadioSelectInputWidget.prototype.setValue=function(value){
value=this.cleanUpValue(value);const selected=this.radioSelectWidget.findItemFromData(value)||this.radioSelectWidget.findFirstSelectableItem();this.radioSelectWidget.selectItem(selected);value=selected?selected.getData():'';OO.ui.RadioSelectInputWidget.super.prototype.setValue.call(this,value);return this;};OO.ui.RadioSelectInputWidget.prototype.setDisabled=function(state){this.radioSelectWidget.setDisabled(state);OO.ui.RadioSelectInputWidget.super.prototype.setDisabled.call(this,state);return this;};OO.ui.RadioSelectInputWidget.prototype.setOptions=function(options){const value=this.getValue();this.setOptionsData(options);this.setValue(value);return this;};OO.ui.RadioSelectInputWidget.prototype.setOptionsData=function(options){this.radioSelectWidget.clearItems().addItems(options.map((opt)=>{const optValue=this.cleanUpValue(opt.data);return new OO.ui.RadioOptionWidget({data:optValue,label:opt.label!==undefined?opt.label:optValue});}));};OO.ui.RadioSelectInputWidget.prototype.focus=function(){
this.radioSelectWidget.focus();return this;};OO.ui.RadioSelectInputWidget.prototype.blur=function(){this.radioSelectWidget.blur();return this;};OO.ui.CheckboxMultiselectInputWidget=function OoUiCheckboxMultiselectInputWidget(config){config=config||{};this.checkboxMultiselectWidget=new OO.ui.CheckboxMultiselectWidget();this.inputName=config.name;this.setOptionsData(config.options||[]);OO.ui.CheckboxMultiselectInputWidget.super.call(this,config);this.onCheckboxesSelectHandler=OO.ui.debounce(this.onCheckboxesSelect);this.checkboxMultiselectWidget.connect(this,{select:'onCheckboxesSelectHandler'});this.$element.addClass('oo-ui-checkboxMultiselectInputWidget').append(this.checkboxMultiselectWidget.$element);this.$input.detach();};OO.inheritClass(OO.ui.CheckboxMultiselectInputWidget,OO.ui.InputWidget);OO.ui.CheckboxMultiselectInputWidget.static.gatherPreInfuseState=function(node,config){const state=OO.ui.CheckboxMultiselectInputWidget.super.static.gatherPreInfuseState(node,config);state.value=$(node).find('.oo-ui-checkboxInputWidget .oo-ui-inputWidget-input:checked')
.toArray().map((el)=>el.value);return state;};OO.ui.CheckboxMultiselectInputWidget.static.reusePreInfuseDOM=function(node,config){config=OO.ui.CheckboxMultiselectInputWidget.super.static.reusePreInfuseDOM(node,config);delete config.$input;return config;};OO.ui.CheckboxMultiselectInputWidget.prototype.getInputElement=function(){return $('<unused>');};OO.ui.CheckboxMultiselectInputWidget.prototype.onCheckboxesSelect=function(){this.setValue(this.checkboxMultiselectWidget.findSelectedItemsData());};OO.ui.CheckboxMultiselectInputWidget.prototype.getValue=function(){const value=this.$element.find('.oo-ui-checkboxInputWidget .oo-ui-inputWidget-input:checked').toArray().map((el)=>el.value);if(!OO.compare(this.value,value)){this.setValue(value);}return this.value;};OO.ui.CheckboxMultiselectInputWidget.prototype.setValue=function(value){value=this.cleanUpValue(value);this.checkboxMultiselectWidget.selectItemsByData(value);OO.ui.CheckboxMultiselectInputWidget.super.prototype.setValue.call(this,value);
if(this.optionsDirty){this.updateOptionsInterface();}return this;};OO.ui.CheckboxMultiselectInputWidget.prototype.cleanUpValue=function(value){const cleanValue=[];if(!Array.isArray(value)){return cleanValue;}const dataHashSet=new Set(this.checkboxMultiselectWidget.getItems().map((item)=>OO.getHash(item.getData())));for(let i=0;i<value.length;i++){const singleValue=OO.ui.CheckboxMultiselectInputWidget.super.prototype.cleanUpValue.call(this,value[i]);if(!dataHashSet.has(OO.getHash(singleValue))){continue;}cleanValue.push(singleValue);}return cleanValue;};OO.ui.CheckboxMultiselectInputWidget.prototype.setDisabled=function(state){this.checkboxMultiselectWidget.setDisabled(state);OO.ui.CheckboxMultiselectInputWidget.super.prototype.setDisabled.call(this,state);return this;};OO.ui.CheckboxMultiselectInputWidget.prototype.setOptions=function(options){const value=this.getValue();this.setOptionsData(options);this.setValue(value);return this;};OO.ui.CheckboxMultiselectInputWidget.prototype.setOptionsData=function(options){
this.optionsDirty=true;this.checkboxMultiselectWidget.clearItems().addItems(options.map((opt)=>{const optValue=OO.ui.CheckboxMultiselectInputWidget.super.prototype.cleanUpValue.call(this,opt.data);const optDisabled=opt.disabled!==undefined?opt.disabled:false;const item=new OO.ui.CheckboxMultioptionWidget({data:optValue,label:opt.label!==undefined?opt.label:optValue,disabled:optDisabled});item.checkbox.$input.attr('name',this.inputName);item.checkbox.setValue(optValue);return item;}));};OO.ui.CheckboxMultiselectInputWidget.prototype.updateOptionsInterface=function(){const defaultValueSet=new Set(this.defaultValue);this.checkboxMultiselectWidget.getItems().forEach((item)=>{const isDefault=defaultValueSet.has(item.getData());item.checkbox.defaultSelected=isDefault;item.checkbox.$input[0].defaultChecked=isDefault;});this.optionsDirty=false;};OO.ui.CheckboxMultiselectInputWidget.prototype.focus=function(){this.checkboxMultiselectWidget.focus();return this;};OO.ui.TextInputWidget=function OoUiTextInputWidget(config){
config=Object.assign({labelPosition:'after'},config);config.type=this.getValidType(config);if(config.autocomplete===false){config.autocomplete='off';}else if(config.autocomplete===true){config.autocomplete='on';}OO.ui.TextInputWidget.super.call(this,config);OO.ui.mixin.IconElement.call(this,config);OO.ui.mixin.IndicatorElement.call(this,config);OO.ui.mixin.PendingElement.call(this,Object.assign({$pending:this.$input},config));OO.ui.mixin.LabelElement.call(this,config);OO.ui.mixin.FlaggedElement.call(this,config);OO.ui.mixin.RequiredElement.call(this,config);this.type=config.type;this.readOnly=false;this.validate=null;this.scrollWidth=null;this.setValidation(config.validate);this.setLabelPosition(config.labelPosition);this.$input.on({keypress:this.onKeyPress.bind(this),blur:this.onBlur.bind(this),focus:this.onFocus.bind(this)});this.$icon.on('mousedown',this.onIconMouseDown.bind(this));this.$indicator.on('mousedown',this.onIndicatorMouseDown.bind(this));this.on('labelChange',this.updatePosition.bind(this));
this.on('change',OO.ui.debounce(this.onDebouncedChange.bind(this),250));this.$element.addClass('oo-ui-textInputWidget oo-ui-textInputWidget-type-'+config.type).append(this.$icon,this.$indicator);this.setReadOnly(!!config.readOnly);if(config.placeholder!==undefined){this.$input.attr('placeholder',config.placeholder);}if(config.maxLength!==undefined){this.$input.attr('maxlength',config.maxLength);}if(config.minLength!==undefined){this.$input.attr('minlength',config.minLength);}if(config.autofocus){this.$input.attr('autofocus','autofocus');}if(config.autocomplete!==null&&config.autocomplete!==undefined){this.$input.attr('autocomplete',config.autocomplete);if(config.autocomplete==='off'){$(window).on({beforeunload:function(){this.$input.removeAttr('autocomplete');}.bind(this),pageshow:function(){this.$input.attr('autocomplete','off');}.bind(this)});}}if(config.spellcheck!==undefined){this.$input.attr('spellcheck',config.spellcheck?'true':'false');}if(this.label){this.isWaitingToBeAttached=true;
this.installParentChangeDetector();}};OO.inheritClass(OO.ui.TextInputWidget,OO.ui.InputWidget);OO.mixinClass(OO.ui.TextInputWidget,OO.ui.mixin.IconElement);OO.mixinClass(OO.ui.TextInputWidget,OO.ui.mixin.IndicatorElement);OO.mixinClass(OO.ui.TextInputWidget,OO.ui.mixin.PendingElement);OO.mixinClass(OO.ui.TextInputWidget,OO.ui.mixin.LabelElement);OO.mixinClass(OO.ui.TextInputWidget,OO.ui.mixin.FlaggedElement);OO.mixinClass(OO.ui.TextInputWidget,OO.ui.mixin.RequiredElement);OO.ui.TextInputWidget.static.validationPatterns={'non-empty':/^./,integer:/^\d+$/};OO.ui.TextInputWidget.prototype.onIconMouseDown=function(e){if(e.which===OO.ui.MouseButtons.LEFT){this.focus();return false;}};OO.ui.TextInputWidget.prototype.onIndicatorMouseDown=function(e){if(e.which===OO.ui.MouseButtons.LEFT){this.focus();return false;}};OO.ui.TextInputWidget.prototype.onKeyPress=function(e){if(e.which===OO.ui.Keys.ENTER){this.emit('enter',e);}};OO.ui.TextInputWidget.prototype.onBlur=function(){this.setValidityFlag();
};OO.ui.TextInputWidget.prototype.onFocus=function(){if(this.isWaitingToBeAttached){this.onElementAttach();}this.setValidityFlag(true);};OO.ui.TextInputWidget.prototype.onElementAttach=function(){this.isWaitingToBeAttached=false;this.valCache=null;this.positionLabel();};OO.ui.TextInputWidget.prototype.onDebouncedChange=function(){this.setValidityFlag();};OO.ui.TextInputWidget.prototype.isReadOnly=function(){return this.readOnly;};OO.ui.TextInputWidget.prototype.setReadOnly=function(state){this.readOnly=!!state;this.$input.prop('readOnly',this.readOnly);return this;};OO.ui.TextInputWidget.prototype.installParentChangeDetector=function(){this.connectDetectorNode=document.createElement('ooui-connect-detector');this.connectDetectorNode.onConnectOOUI=()=>{if(this.isElementAttached()){this.onElementAttach();}};this.$element.append(this.connectDetectorNode);};OO.ui.TextInputWidget.prototype.getInputElement=function(config){const $input=$('<input>').attr('type',config.type);if(config.type==='number'){
$input.attr('step','any');}return $input;};OO.ui.TextInputWidget.prototype.getValidType=function(config){const allowedTypes=['text','password','email','url','number'];return allowedTypes.includes(config.type)?config.type:'text';};OO.ui.TextInputWidget.prototype.selectRange=function(from,to){const input=this.$input[0];to=to||from;const isBackwards=to<from,start=isBackwards?to:from,end=isBackwards?from:to;this.focus();try{input.setSelectionRange(start,end,isBackwards?'backward':'forward');}catch(e){if(this.getElementDocument().body.contains(input)){throw e;}}return this;};OO.ui.TextInputWidget.prototype.getRange=function(){const input=this.$input[0],start=input.selectionStart,end=input.selectionEnd,isBackwards=input.selectionDirection==='backward';return{from:isBackwards?end:start,to:isBackwards?start:end};};OO.ui.TextInputWidget.prototype.getInputLength=function(){return this.$input[0].value.length;};OO.ui.TextInputWidget.prototype.select=function(){return this.selectRange(0,this.getInputLength());
};OO.ui.TextInputWidget.prototype.moveCursorToStart=function(){return this.selectRange(0);};OO.ui.TextInputWidget.prototype.moveCursorToEnd=function(){return this.selectRange(this.getInputLength());};OO.ui.TextInputWidget.prototype.insertContent=function(content){const value=this.getValue(),range=this.getRange(),start=Math.min(range.from,range.to),end=Math.max(range.from,range.to);this.setValue(value.slice(0,start)+content+value.slice(end));this.selectRange(start+content.length);return this;};OO.ui.TextInputWidget.prototype.encapsulateContent=function(pre,post){const offset=pre.length,range=this.getRange(),start=Math.min(range.from,range.to),end=Math.max(range.from,range.to);this.selectRange(start).insertContent(pre);this.selectRange(offset+end).insertContent(post);this.selectRange(offset+start,offset+end);return this;};OO.ui.TextInputWidget.prototype.setValidation=function(validate){this.validate=validate instanceof RegExp||validate instanceof Function?validate:this.constructor.static.validationPatterns[validate];
};OO.ui.TextInputWidget.prototype.setValidityFlag=function(isValid){const setFlag=(valid)=>{if(!valid){this.$input.attr('aria-invalid','true');}else{this.$input.removeAttr('aria-invalid');}this.setFlags({invalid:!valid});};if(isValid!==undefined){setFlag(isValid);}else{this.getValidity().then(()=>{setFlag(true);},()=>{setFlag(false);});}};OO.ui.TextInputWidget.prototype.getValidity=function(){function rejectOrResolve(valid){const deferred=$.Deferred(),promise=valid?deferred.resolve():deferred.reject();return promise.promise();}if(this.$input[0].checkValidity&&this.$input[0].checkValidity()===false){return rejectOrResolve(false);}if(!this.validate){return rejectOrResolve(true);}let result;if(this.validate instanceof Function){result=this.validate(this.getValue());if(result&&typeof result.promise==='function'){return result.promise().then((valid)=>rejectOrResolve(valid));}}else{result=this.validate.test(this.getValue());}return rejectOrResolve(result);};OO.ui.TextInputWidget.prototype.setLabelPosition=function(labelPosition){
this.labelPosition=labelPosition;if(this.label){this.updatePosition();}return this;};OO.ui.TextInputWidget.prototype.updatePosition=function(){const after=this.labelPosition==='after';this.$element.toggleClass('oo-ui-textInputWidget-labelPosition-after',!!this.label&&after).toggleClass('oo-ui-textInputWidget-labelPosition-before',!!this.label&&!after);this.valCache=null;this.scrollWidth=null;this.positionLabel();return this;};OO.ui.TextInputWidget.prototype.positionLabel=function(){if(this.isWaitingToBeAttached){return this;}const newCss={'padding-right':'','padding-left':''};if(this.label){this.$element.append(this.$label);}else{this.$label.detach();this.$input.css(newCss);return;}const after=this.labelPosition==='after',rtl=this.$element.css('direction')==='rtl',property=after===rtl?'padding-left':'padding-right';newCss[property]=this.$label.outerWidth(true)+(after?this.scrollWidth:0);this.$input.css(newCss);return this;};OO.ui.SearchInputWidget=function OoUiSearchInputWidget(config){
config=Object.assign({icon:'search'},config);OO.ui.SearchInputWidget.super.call(this,config);this.connect(this,{change:'onChange'});this.$indicator.on('click',this.onIndicatorClick.bind(this));this.$indicator.on('keydown',this.onIndicatorKeyDown.bind(this));this.updateSearchIndicator();this.connect(this,{disable:'onDisable'});this.$indicator.attr({tabindex:-1,role:'button'});};OO.inheritClass(OO.ui.SearchInputWidget,OO.ui.TextInputWidget);OO.ui.SearchInputWidget.prototype.getValidType=function(){return'search';};OO.ui.SearchInputWidget.prototype.onIndicatorKeyDown=function(e){if(e.keyCode===OO.ui.Keys.ENTER){this.setValue('');this.focus();return false;}};OO.ui.SearchInputWidget.prototype.onIndicatorClick=function(e){if(e.which===OO.ui.MouseButtons.LEFT){this.setValue('');this.focus();return false;}};OO.ui.SearchInputWidget.prototype.updateSearchIndicator=function(){if(this.getValue()===''||this.isDisabled()||this.isReadOnly()){this.setIndicator(null);}else{this.setIndicator('clear');
this.$indicator.attr('aria-label',OO.ui.msg('ooui-item-remove'));}};OO.ui.SearchInputWidget.prototype.onChange=function(){this.updateSearchIndicator();};OO.ui.SearchInputWidget.prototype.onDisable=function(){this.updateSearchIndicator();};OO.ui.SearchInputWidget.prototype.setReadOnly=function(state){OO.ui.SearchInputWidget.super.prototype.setReadOnly.call(this,state);this.updateSearchIndicator();return this;};OO.ui.MultilineTextInputWidget=function OoUiMultilineTextInputWidget(config){config=Object.assign({type:'text'},config);this.allowLinebreaks=config.allowLinebreaks!==undefined?config.allowLinebreaks:true;OO.ui.MultilineTextInputWidget.super.call(this,config);this.autosize=!!config.autosize;this.styleHeight=null;this.minRows=config.rows!==undefined?config.rows:'';this.maxRows=config.maxRows||Math.max(2*(this.minRows||0),10);if(this.autosize){this.$clone=this.$input.clone().removeAttr('id').removeAttr('name').insertAfter(this.$input).attr('aria-hidden','true').css('overflow','hidden')
.addClass('oo-ui-element-hidden');}this.connect(this,{change:'onChange'});if(config.rows){this.$input.attr('rows',config.rows);}if(this.autosize){this.$input.addClass('oo-ui-textInputWidget-autosized');this.isWaitingToBeAttached=true;this.installParentChangeDetector();}};OO.inheritClass(OO.ui.MultilineTextInputWidget,OO.ui.TextInputWidget);OO.ui.MultilineTextInputWidget.static.gatherPreInfuseState=function(node,config){const state=OO.ui.MultilineTextInputWidget.super.static.gatherPreInfuseState(node,config);if(config.$input){state.scrollTop=config.$input.scrollTop();}return state;};OO.ui.MultilineTextInputWidget.prototype.onElementAttach=function(){OO.ui.MultilineTextInputWidget.super.prototype.onElementAttach.call(this);this.adjustSize();};OO.ui.MultilineTextInputWidget.prototype.onChange=function(){this.adjustSize();};OO.ui.MultilineTextInputWidget.prototype.updatePosition=function(){OO.ui.MultilineTextInputWidget.super.prototype.updatePosition.call(this);this.adjustSize();};OO.ui.MultilineTextInputWidget.prototype.onKeyPress=function(e){
if(!this.allowLinebreaks){if(e.which===OO.ui.Keys.ENTER){e.preventDefault();}return OO.ui.TextInputWidget.prototype.onKeyPress.call(this,e);}if((e.which===OO.ui.Keys.ENTER&&(e.ctrlKey||e.metaKey))||e.which===10){this.emit('enter',e);}};OO.ui.MultilineTextInputWidget.prototype.cleanUpValue=function(value){value=OO.ui.MultilineTextInputWidget.super.prototype.cleanUpValue(value);if(!this.allowLinebreaks){value=value.replace(/\r?\n/g,' ');}return value;};OO.ui.MultilineTextInputWidget.prototype.adjustSize=function(force){if(force||this.$input.val()!==this.valCache){if(this.autosize){this.$clone.val(this.$input.val()).attr('rows',this.minRows).css('height',0).removeClass('oo-ui-element-hidden');this.valCache=this.$input.val();this.$clone[0].scrollHeight;const scrollHeight=this.$clone[0].scrollHeight;this.$clone.css('height','');const innerHeight=this.$clone.innerHeight();const outerHeight=this.$clone.outerHeight();this.$clone.attr('rows',this.maxRows).css('height','auto').val('');const maxInnerHeight=this.$clone.innerHeight();
const measurementError=maxInnerHeight-this.$clone[0].scrollHeight;const idealHeight=Math.min(maxInnerHeight,scrollHeight+measurementError);this.$clone.addClass('oo-ui-element-hidden');const newHeight=idealHeight>innerHeight?idealHeight+(outerHeight-innerHeight):'';if(newHeight!==this.styleHeight){this.$input.css('height',newHeight);this.styleHeight=newHeight;this.emit('resize');}}const scrollWidth=this.$input[0].offsetWidth-this.$input[0].clientWidth;if(scrollWidth!==this.scrollWidth){const property=this.$element.css('direction')==='rtl'?'left':'right';this.$label.css({right:'',left:''});this.$indicator.css({right:'',left:''});if(scrollWidth){this.$indicator.css(property,scrollWidth);if(this.labelPosition==='after'){this.$label.css(property,scrollWidth);}}this.scrollWidth=scrollWidth;this.positionLabel();}}return this;};OO.ui.MultilineTextInputWidget.prototype.getInputElement=function(){return $('<textarea>');};OO.ui.MultilineTextInputWidget.prototype.isAutosizing=function(){return!!this.autosize;
};OO.ui.MultilineTextInputWidget.prototype.restorePreInfuseState=function(state){OO.ui.MultilineTextInputWidget.super.prototype.restorePreInfuseState.call(this,state);if(state.scrollTop!==undefined){this.$input.scrollTop(state.scrollTop);}};OO.ui.ComboBoxInputWidget=function OoUiComboBoxInputWidget(config){config=Object.assign({autocomplete:false},config);if(config.$input){config.$input.removeAttr('list');}OO.ui.ComboBoxInputWidget.super.call(this,config);this.$overlay=(config.$overlay===true?OO.ui.getDefaultOverlay():config.$overlay)||this.$element;this.dropdownButton=new OO.ui.ButtonWidget({classes:['oo-ui-comboBoxInputWidget-dropdownButton'],label:OO.ui.msg('ooui-combobox-button-label'),indicator:'down',invisibleLabel:true,disabled:this.disabled});this.menu=new OO.ui.MenuSelectWidget(Object.assign({widget:this,input:this,$floatableContainer:this.$element,disabled:this.isDisabled()},config.menu));this.connect(this,{change:'onInputChange',enter:'onInputEnter'});this.dropdownButton.connect(this,{
click:'onDropdownButtonClick'});this.menu.connect(this,{choose:'onMenuChoose',add:'onMenuItemsChange',remove:'onMenuItemsChange',toggle:'onMenuToggle'});this.$input.attr({role:'combobox','aria-owns':this.menu.getElementId(),'aria-autocomplete':'list'});this.dropdownButton.$button.attr({'aria-controls':this.menu.getElementId()});if(config.options!==undefined){this.setOptions(config.options);}this.$field=$('<div>').addClass('oo-ui-comboBoxInputWidget-field').append(this.$input,this.dropdownButton.$element);this.$element.addClass('oo-ui-comboBoxInputWidget').append(this.$field);this.$overlay.append(this.menu.$element);this.onMenuItemsChange();};OO.inheritClass(OO.ui.ComboBoxInputWidget,OO.ui.TextInputWidget);OO.ui.ComboBoxInputWidget.prototype.getMenu=function(){return this.menu;};OO.ui.ComboBoxInputWidget.prototype.getInput=function(){return this;};OO.ui.ComboBoxInputWidget.prototype.onEdit=function(event){OO.ui.ComboBoxInputWidget.super.prototype.onEdit.apply(this,arguments);if(this.menu.isVisible()||this.isDisabled()||!this.isVisible()){
return;}if(event.type==='input'||event.type==='mouseup'||(event.type==='keydown'&&(event.keyCode===OO.ui.Keys.ENTER||event.keyCode===OO.ui.Keys.UP||event.keyCode===OO.ui.Keys.DOWN))){this.menu.toggle(true);}};OO.ui.ComboBoxInputWidget.prototype.onInputChange=function(value){const match=this.menu.findItemFromData(value);this.menu.selectItem(match);if(this.menu.findHighlightedItem()){this.menu.highlightItem(match);}};OO.ui.ComboBoxInputWidget.prototype.onInputEnter=function(){if(!this.isDisabled()){this.menu.toggle(false);}};OO.ui.ComboBoxInputWidget.prototype.onDropdownButtonClick=function(){this.menu.toggle();this.focus();};OO.ui.ComboBoxInputWidget.prototype.onMenuChoose=function(item){this.setValue(item.getData());};OO.ui.ComboBoxInputWidget.prototype.onMenuItemsChange=function(){const match=this.menu.findItemFromData(this.getValue());this.menu.selectItem(match);if(this.menu.findHighlightedItem()){this.menu.highlightItem(match);}this.$element.toggleClass('oo-ui-comboBoxInputWidget-empty',this.menu.isEmpty());
};OO.ui.ComboBoxInputWidget.prototype.onMenuToggle=function(isVisible){this.$element.toggleClass('oo-ui-comboBoxInputWidget-open',isVisible);};OO.ui.ComboBoxInputWidget.prototype.updateControlsDisabled=function(){const disabled=this.isDisabled()||this.isReadOnly();if(this.dropdownButton){this.dropdownButton.setDisabled(disabled);}if(this.menu){this.menu.setDisabled(disabled);}return this;};OO.ui.ComboBoxInputWidget.prototype.setDisabled=function(){OO.ui.ComboBoxInputWidget.super.prototype.setDisabled.apply(this,arguments);this.updateControlsDisabled();return this;};OO.ui.ComboBoxInputWidget.prototype.setReadOnly=function(){OO.ui.ComboBoxInputWidget.super.prototype.setReadOnly.apply(this,arguments);this.updateControlsDisabled();return this;};OO.ui.ComboBoxInputWidget.prototype.setOptions=function(options){this.getMenu().clearItems().addItems(options.map((opt)=>new OO.ui.MenuOptionWidget({data:opt.data,label:opt.label!==undefined?opt.label:opt.data})));return this;};OO.ui.FieldLayout=function OoUiFieldLayout(fieldWidget,config){
if(OO.isPlainObject(fieldWidget)&&config===undefined){config=fieldWidget;fieldWidget=config.fieldWidget;}if(fieldWidget===undefined){throw new Error('Widget not found');}config=Object.assign({align:'left',helpInline:false},config);if(config.help&&!config.label){config.label=' ';}OO.ui.FieldLayout.super.call(this,config);OO.ui.mixin.LabelElement.call(this,Object.assign({$label:$('<label>')},config));OO.ui.mixin.TitledElement.call(this,Object.assign({$titled:this.$label},config));this.fieldWidget=fieldWidget;this.errors=[];this.warnings=[];this.successMessages=[];this.notices=[];this.$field=this.isFieldInline()?$('<span>'):$('<div>');this.$messages=$('<div>');this.$header=$('<span>');this.$body=$('<div>');this.align=null;this.helpInline=config.helpInline;this.fieldWidget.connect(this,{disable:'onFieldDisable'});this.$help=config.help?this.createHelpElement(config.help,config.$overlay):$([]);if(this.fieldWidget.getInputId()){this.$label.attr('for',this.fieldWidget.getInputId());if(this.helpInline){
this.$help.attr('for',this.fieldWidget.getInputId());}}else{const id=OO.ui.generateElementId();this.$label.attr('id',id);this.fieldWidget.setLabelledBy(id);this.$label.on('click',this.onLabelClick.bind(this));if(this.helpInline){this.$help.on('click',this.onLabelClick.bind(this));}}this.$element.addClass('oo-ui-fieldLayout').toggleClass('oo-ui-fieldLayout-disabled',this.fieldWidget.isDisabled()).append(this.$body);this.$body.addClass('oo-ui-fieldLayout-body');this.$header.addClass('oo-ui-fieldLayout-header');this.$messages.addClass('oo-ui-fieldLayout-messages');this.$field.addClass('oo-ui-fieldLayout-field').append(this.fieldWidget.$element);this.setErrors(config.errors||[]);this.setWarnings(config.warnings||[]);this.setSuccess(config.successMessages||[]);this.setNotices(config.notices||[]);this.setAlignment(config.align);this.updateTitle();};OO.inheritClass(OO.ui.FieldLayout,OO.ui.Layout);OO.mixinClass(OO.ui.FieldLayout,OO.ui.mixin.LabelElement);OO.mixinClass(OO.ui.FieldLayout,OO.ui.mixin.TitledElement);
OO.ui.FieldLayout.prototype.onFieldDisable=function(value){this.$element.toggleClass('oo-ui-fieldLayout-disabled',value);};OO.ui.FieldLayout.prototype.onLabelClick=function(){this.fieldWidget.simulateLabelClick();};OO.ui.FieldLayout.prototype.getField=function(){return this.fieldWidget;};OO.ui.FieldLayout.prototype.isFieldInline=function(){return this.getField().$element.prop('tagName').toLowerCase()==='span';};OO.ui.FieldLayout.prototype.makeMessage=function(kind,text){return new OO.ui.MessageWidget({type:kind,inline:true,label:text}).$element;};OO.ui.FieldLayout.prototype.setAlignment=function(value){if(value!==this.align){if(!['left','right','top','inline'].includes(value)){value='left';}if(value==='inline'&&!this.isFieldInline()){value='top';}if(this.helpInline){if(value==='top'){this.$header.append(this.$label);this.$body.append(this.$header,this.$field,this.$help);}else if(value==='inline'){this.$header.append(this.$label,this.$help);this.$body.append(this.$field,this.$header);}else{
this.$header.append(this.$label,this.$help);this.$body.append(this.$header,this.$field);}}else{if(value==='top'){this.$header.append(this.$help,this.$label);this.$body.append(this.$header,this.$field);}else if(value==='inline'){this.$header.append(this.$help,this.$label);this.$body.append(this.$field,this.$header);}else{this.$header.append(this.$label);this.$body.append(this.$header,this.$help,this.$field);}}if(this.align){this.$element.removeClass('oo-ui-fieldLayout-align-'+this.align);}this.$element.addClass('oo-ui-fieldLayout-align-'+value);this.align=value;}return this;};OO.ui.FieldLayout.prototype.setErrors=function(errors){this.errors=errors.slice();this.updateMessages();return this;};OO.ui.FieldLayout.prototype.setWarnings=function(warnings){this.warnings=warnings.slice();this.updateMessages();return this;};OO.ui.FieldLayout.prototype.setSuccess=function(successMessages){this.successMessages=successMessages.slice();this.updateMessages();return this;};OO.ui.FieldLayout.prototype.setNotices=function(notices){
this.notices=notices.slice();this.updateMessages();return this;};OO.ui.FieldLayout.prototype.updateMessages=function(){this.$messages.empty();if(this.errors.length||this.warnings.length||this.successMessages.length||this.notices.length){this.$body.after(this.$messages);}else{this.$messages.remove();return;}let i;for(i=0;i<this.errors.length;i++){this.$messages.append(this.makeMessage('error',this.errors[i]));}for(i=0;i<this.warnings.length;i++){this.$messages.append(this.makeMessage('warning',this.warnings[i]));}for(i=0;i<this.successMessages.length;i++){this.$messages.append(this.makeMessage('success',this.successMessages[i]));}for(i=0;i<this.notices.length;i++){this.$messages.append(this.makeMessage('notice',this.notices[i]));}};OO.ui.FieldLayout.prototype.formatTitleWithAccessKey=function(title){if(this.fieldWidget&&this.fieldWidget.formatTitleWithAccessKey){return this.fieldWidget.formatTitleWithAccessKey(title);}return title;};OO.ui.FieldLayout.prototype.createHelpElement=function(help,$overlay){
let helpId,helpWidget;if(this.helpInline){helpWidget=new OO.ui.LabelWidget({label:help,classes:['oo-ui-inline-help']});helpId=helpWidget.getElementId();}else{helpWidget=new OO.ui.PopupButtonWidget({$overlay:$overlay,popup:{padded:true},classes:['oo-ui-fieldLayout-help'],framed:false,icon:'info',label:OO.ui.msg('ooui-field-help'),invisibleLabel:true});helpWidget.popup.on('ready',()=>{const $popupElement=helpWidget.popup.$element;$popupElement.attr('tabindex',0);$popupElement.trigger('focus');});helpWidget.popup.on('closing',()=>{helpWidget.$button.trigger('focus');});if(help instanceof OO.ui.HtmlSnippet){helpWidget.getPopup().$body.html(help.toString());}else{helpWidget.getPopup().$body.text(help);}helpId=helpWidget.getPopup().getBodyId();}(this.fieldWidget.$input||(this.fieldWidget.input&&this.fieldWidget.input.$input)||this.fieldWidget.$button||this.fieldWidget.$element).attr('aria-describedby',helpId);return helpWidget.$element;};OO.ui.ActionFieldLayout=function OoUiActionFieldLayout(fieldWidget,buttonWidget,config){
if(OO.isPlainObject(fieldWidget)&&config===undefined){config=fieldWidget;fieldWidget=config.fieldWidget;buttonWidget=config.buttonWidget;}OO.ui.ActionFieldLayout.super.call(this,fieldWidget,config);this.buttonWidget=buttonWidget;this.$button=$('<span>');this.$input=this.isFieldInline()?$('<span>'):$('<div>');this.$element.addClass('oo-ui-actionFieldLayout');this.$button.addClass('oo-ui-actionFieldLayout-button').append(this.buttonWidget.$element);this.$input.addClass('oo-ui-actionFieldLayout-input').append(this.fieldWidget.$element);this.$field.append(this.$input,this.$button);};OO.inheritClass(OO.ui.ActionFieldLayout,OO.ui.FieldLayout);OO.ui.FieldsetLayout=function OoUiFieldsetLayout(config){config=config||{};OO.ui.FieldsetLayout.super.call(this,config);OO.ui.mixin.IconElement.call(this,config);OO.ui.mixin.LabelElement.call(this,config);OO.ui.mixin.GroupElement.call(this,config);this.$header=$('<legend>');this.$header.addClass('oo-ui-fieldsetLayout-header').append(this.$icon,this.$label);
this.$group.addClass('oo-ui-fieldsetLayout-group');this.$element.addClass('oo-ui-fieldsetLayout').prepend(this.$header,this.$group);if(config.help){if(config.helpInline){const inlineHelpWidget=new OO.ui.LabelWidget({label:config.help,classes:['oo-ui-inline-help']});this.$element.prepend(this.$header,inlineHelpWidget.$element,this.$group);}else{const helpWidget=new OO.ui.PopupButtonWidget({$overlay:config.$overlay,popup:{padded:true},classes:['oo-ui-fieldsetLayout-help'],framed:false,icon:'info',label:OO.ui.msg('ooui-field-help'),invisibleLabel:true});if(config.help instanceof OO.ui.HtmlSnippet){helpWidget.getPopup().$body.html(config.help.toString());}else{helpWidget.getPopup().$body.text(config.help);}this.$header.append(helpWidget.$element);}}this.addItems(config.items||[]);};OO.inheritClass(OO.ui.FieldsetLayout,OO.ui.Layout);OO.mixinClass(OO.ui.FieldsetLayout,OO.ui.mixin.IconElement);OO.mixinClass(OO.ui.FieldsetLayout,OO.ui.mixin.LabelElement);OO.mixinClass(OO.ui.FieldsetLayout,OO.ui.mixin.GroupElement);
OO.ui.FieldsetLayout.static.tagName='fieldset';OO.ui.FormLayout=function OoUiFormLayout(config){config=config||{};OO.ui.FormLayout.super.call(this,config);OO.ui.mixin.GroupElement.call(this,Object.assign({$group:this.$element},config));this.$element.on('submit',this.onFormSubmit.bind(this));let action=config.action;if(action!==undefined&&!OO.ui.isSafeUrl(action)){action='./'+action;}this.$element.addClass('oo-ui-formLayout').attr({method:config.method,action:action,enctype:config.enctype});this.addItems(config.items||[]);};OO.inheritClass(OO.ui.FormLayout,OO.ui.Layout);OO.mixinClass(OO.ui.FormLayout,OO.ui.mixin.GroupElement);OO.ui.FormLayout.static.tagName='form';OO.ui.FormLayout.prototype.onFormSubmit=function(){if(this.emit('submit')){return false;}};OO.ui.PanelLayout=function OoUiPanelLayout(config){config=Object.assign({scrollable:false,padded:false,expanded:true,framed:false},config);OO.ui.PanelLayout.super.call(this,config);this.$element.addClass('oo-ui-panelLayout');if(config.scrollable){
this.$element.addClass('oo-ui-panelLayout-scrollable');}if(config.padded){this.$element.addClass('oo-ui-panelLayout-padded');}if(config.expanded){this.$element.addClass('oo-ui-panelLayout-expanded');}if(config.framed){this.$element.addClass('oo-ui-panelLayout-framed');}};OO.inheritClass(OO.ui.PanelLayout,OO.ui.Layout);OO.ui.PanelLayout.static.reusePreInfuseDOM=function(node,config){config=OO.ui.PanelLayout.super.static.reusePreInfuseDOM(node,config);if(config.preserveContent!==false){config.$content=$(node).contents();}return config;};OO.ui.PanelLayout.prototype.focus=function(){OO.ui.findFocusable(this.$element).focus();};OO.ui.HorizontalLayout=function OoUiHorizontalLayout(config){config=config||{};OO.ui.HorizontalLayout.super.call(this,config);OO.ui.mixin.GroupElement.call(this,Object.assign({$group:this.$element},config));this.$element.addClass('oo-ui-horizontalLayout');this.addItems(config.items||[]);};OO.inheritClass(OO.ui.HorizontalLayout,OO.ui.Layout);OO.mixinClass(OO.ui.HorizontalLayout,OO.ui.mixin.GroupElement);
OO.ui.NumberInputWidget=function OoUiNumberInputWidget(config){const $field=$('<div>').addClass('oo-ui-numberInputWidget-field');config=Object.assign({min:-Infinity,max:Infinity,showButtons:true},config);Object.assign(config,config.input);this.input=this;OO.ui.NumberInputWidget.super.call(this,Object.assign(config,{type:'number'}));if(config.showButtons){this.minusButton=new OO.ui.ButtonWidget(Object.assign({disabled:this.isDisabled(),tabIndex:-1,classes:['oo-ui-numberInputWidget-minusButton'],icon:'subtract'},config.minusButton));this.minusButton.$element.attr('aria-hidden','true');this.plusButton=new OO.ui.ButtonWidget(Object.assign({disabled:this.isDisabled(),tabIndex:-1,classes:['oo-ui-numberInputWidget-plusButton'],icon:'add'},config.plusButton));this.plusButton.$element.attr('aria-hidden','true');}this.$input.on({keydown:this.onKeyDown.bind(this),'wheel mousewheel DOMMouseScroll':this.onWheel.bind(this)});if(config.showButtons){this.plusButton.connect(this,{click:['onButtonClick',+1]
});this.minusButton.connect(this,{click:['onButtonClick',-1]});}$field.append(this.$input);if(config.showButtons){$field.prepend(this.minusButton.$element).append(this.plusButton.$element);}if(config.allowInteger||config.isInteger){config.step=1;}this.setRange(config.min,config.max);this.setStep(config.buttonStep,config.pageStep,config.step);this.setValidation(this.validateNumber.bind(this));this.$element.addClass('oo-ui-numberInputWidget').toggleClass('oo-ui-numberInputWidget-buttoned',config.showButtons).append($field);};OO.inheritClass(OO.ui.NumberInputWidget,OO.ui.TextInputWidget);OO.ui.NumberInputWidget.prototype.setAllowInteger=function(flag){this.setStep(flag?1:null);};OO.ui.NumberInputWidget.prototype.setIsInteger=OO.ui.NumberInputWidget.prototype.setAllowInteger;OO.ui.NumberInputWidget.prototype.getAllowInteger=function(){return this.step===1;};OO.ui.NumberInputWidget.prototype.getIsInteger=OO.ui.NumberInputWidget.prototype.getAllowInteger;OO.ui.NumberInputWidget.prototype.setRange=function(min,max){
if(min>max){throw new Error('Minimum ('+min+') must not be greater than maximum ('+max+')');}this.min=min;this.max=max;this.$input.attr({min:this.min,max:this.max});this.setValidityFlag();};OO.ui.NumberInputWidget.prototype.getRange=function(){return[this.min,this.max];};OO.ui.NumberInputWidget.prototype.setStep=function(buttonStep,pageStep,step){if(buttonStep===undefined){buttonStep=step||1;}if(pageStep===undefined){pageStep=10*buttonStep;}if(step!==null&&step<=0){throw new Error('Step value, if given, must be positive');}if(buttonStep<=0){throw new Error('Button step value must be positive');}if(pageStep<=0){throw new Error('Page step value must be positive');}this.step=step;this.buttonStep=buttonStep;this.pageStep=pageStep;this.$input.attr('step',this.step||'any');this.setValidityFlag();};OO.ui.NumberInputWidget.prototype.setValue=function(value){if(value===''){this.$input.val('');}return OO.ui.NumberInputWidget.super.prototype.setValue.call(this,value);};OO.ui.NumberInputWidget.prototype.getStep=function(){
return[this.buttonStep,this.pageStep,this.step];};OO.ui.NumberInputWidget.prototype.getNumericValue=function(){return+this.getValue();};OO.ui.NumberInputWidget.prototype.adjustValue=function(delta){const v=this.getNumericValue();delta=+delta;if(isNaN(delta)||!isFinite(delta)){throw new Error('Delta must be a finite number');}let n;if(isNaN(v)){n=0;}else{n=v+delta;n=Math.max(Math.min(n,this.max),this.min);if(this.step){n=Math.round(n/this.step)*this.step;}}if(n!==v){this.setValue(n);}};OO.ui.NumberInputWidget.prototype.validateNumber=function(value){const n=+value;if(value===''){return!this.isRequired();}if(isNaN(n)||!isFinite(n)){return false;}if(this.step&&Math.floor(n/this.step)!==n/this.step){return false;}if(n<this.min||n>this.max){return false;}return true;};OO.ui.NumberInputWidget.prototype.onButtonClick=function(dir){this.adjustValue(dir*this.buttonStep);};OO.ui.NumberInputWidget.prototype.onWheel=function(event){let delta=0;if(this.isDisabled()||this.isReadOnly()){return;}if(this.$input.is(':focus')){
if(event.originalEvent.deltaMode!==undefined){this.sawWheelEvent=true;}if(event.originalEvent.deltaY){delta=-event.originalEvent.deltaY;}else if(event.originalEvent.deltaX){delta=event.originalEvent.deltaX;}if(!this.sawWheelEvent){if(event.originalEvent.wheelDeltaX){delta=-event.originalEvent.wheelDeltaX;}else if(event.originalEvent.wheelDeltaY){delta=event.originalEvent.wheelDeltaY;}else if(event.originalEvent.wheelDelta){delta=event.originalEvent.wheelDelta;}else if(event.originalEvent.detail){delta=-event.originalEvent.detail;}}if(delta){delta=delta<0?-1:1;this.adjustValue(delta*this.buttonStep);}return false;}};OO.ui.NumberInputWidget.prototype.onKeyDown=function(e){if(this.isDisabled()||this.isReadOnly()){return;}switch(e.which){case OO.ui.Keys.UP:this.adjustValue(this.buttonStep);return false;case OO.ui.Keys.DOWN:this.adjustValue(-this.buttonStep);return false;case OO.ui.Keys.PAGEUP:this.adjustValue(this.pageStep);return false;case OO.ui.Keys.PAGEDOWN:this.adjustValue(-this.pageStep);
return false;}};OO.ui.NumberInputWidget.prototype.updateControlsDisabled=function(){const disabled=this.isDisabled()||this.isReadOnly();if(this.minusButton){this.minusButton.setDisabled(disabled);}if(this.plusButton){this.plusButton.setDisabled(disabled);}return this;};OO.ui.NumberInputWidget.prototype.setDisabled=function(disabled){OO.ui.NumberInputWidget.super.prototype.setDisabled.call(this,disabled);this.updateControlsDisabled();return this;};OO.ui.NumberInputWidget.prototype.setReadOnly=function(){OO.ui.NumberInputWidget.super.prototype.setReadOnly.apply(this,arguments);this.updateControlsDisabled();return this;};OO.ui.SelectFileInputWidget=function OoUiSelectFileInputWidget(config){config=config||{};this.selectButton=new OO.ui.ButtonWidget(Object.assign({$element:$('<label>'),classes:['oo-ui-selectFileInputWidget-selectButton'],label:OO.ui.msg(config.multiple?'ooui-selectfile-button-select-multiple':'ooui-selectfile-button-select')},config.button));config=Object.assign({accept:null,
placeholder:OO.ui.msg('ooui-selectfile-placeholder'),$tabIndexed:this.selectButton.$tabIndexed,droppable:true,buttonOnly:false,showDropTarget:false,thumbnailSizeLimit:20},config);this.canSetFiles=true;try{new DataTransfer();}catch(e){this.canSetFiles=false;config.droppable=false;}this.info=new OO.ui.SearchInputWidget({classes:['oo-ui-selectFileInputWidget-info'],placeholder:config.placeholder,$tabIndexed:$([])}).setIcon(config.icon);this.info.$input.attr('tabindex',-1);this.info.$indicator.attr('tabindex',0);OO.ui.SelectFileInputWidget.super.call(this,config);OO.ui.mixin.RequiredElement.call(this,Object.assign({},{indicatorElement:null},config));OO.ui.mixin.PendingElement.call(this);this.currentFiles=this.filterFiles(this.$input[0].files||[]);if(Array.isArray(config.accept)){this.accept=config.accept;}else{this.accept=null;}this.multiple=!!config.multiple;this.showDropTarget=config.droppable&&config.showDropTarget;this.thumbnailSizeLimit=config.thumbnailSizeLimit;this.fieldLayout=new OO.ui.ActionFieldLayout(this.info,this.selectButton,{align:'top'});
this.$input.attr({type:'file',tabindex:-1,'aria-disabled':null});if(this.accept){this.$input.attr('accept',this.accept.join(', '));}if(this.multiple){this.$input.attr('multiple','');}this.selectButton.$button.append(this.$input);this.$element.addClass('oo-ui-selectFileInputWidget oo-ui-selectFileWidget').append(this.fieldLayout.$element);if(this.showDropTarget){this.selectButton.setIcon('upload');this.$element.addClass('oo-ui-selectFileInputWidget-dropTarget oo-ui-selectFileWidget-dropTarget').on({click:this.onDropTargetClick.bind(this)}).append(this.info.$element,this.selectButton.$element,$('<span>').addClass('oo-ui-selectFileInputWidget-dropLabel oo-ui-selectFileWidget-dropLabel').text(OO.ui.msg(this.multiple?'ooui-selectfile-dragdrop-placeholder-multiple':'ooui-selectfile-dragdrop-placeholder')));if(!this.multiple){this.$thumbnail=$('<div>').addClass('oo-ui-selectFileInputWidget-thumbnail oo-ui-selectFileWidget-thumbnail');this.setPendingElement(this.$thumbnail);this.$element.addClass('oo-ui-selectFileInputWidget-withThumbnail oo-ui-selectFileWidget-withThumbnail')
.prepend(this.$thumbnail);}this.fieldLayout.$element.remove();}else if(config.buttonOnly){this.selectButton.$element.addClass(this.$element.attr('class')).addClass('oo-ui-selectFileInputWidget-buttonOnly oo-ui-selectFileWidget-buttonOnly');this.$element=this.selectButton.$element;}this.info.connect(this,{change:'onInfoChange'});this.selectButton.$button.on({keypress:this.onKeyPress.bind(this)});this.$input.on({change:this.onFileSelected.bind(this),click:function(e){e.stopPropagation();}});this.connect(this,{change:'updateUI'});if(config.droppable){const dragHandler=this.onDragEnterOrOver.bind(this);this.$element.on({dragenter:dragHandler,dragover:dragHandler,dragleave:this.onDragLeave.bind(this),drop:this.onDrop.bind(this)});}this.updateUI();};OO.inheritClass(OO.ui.SelectFileInputWidget,OO.ui.InputWidget);OO.mixinClass(OO.ui.SelectFileInputWidget,OO.ui.mixin.RequiredElement);OO.mixinClass(OO.ui.SelectFileInputWidget,OO.ui.mixin.PendingElement);OO.ui.SelectFileInputWidget.static.title='';
OO.ui.SelectFileInputWidget.prototype.getValue=function(){return this.multiple?this.currentFiles:this.currentFiles[0];};OO.ui.SelectFileInputWidget.prototype.setValue=function(files){if(files===undefined||typeof files==='string'){return this;}if(files&&!this.multiple){files=files.slice(0,1);}function comparableFile(file){return{size:file.size,type:file.type,lastModified:file.lastModified,name:file.name};}if(!OO.compare(files&&files.map(comparableFile),this.currentFiles&&this.currentFiles.map(comparableFile))){this.currentFiles=files||[];this.emit('change',this.currentFiles);}if(this.canSetFiles){const dataTransfer=new DataTransfer();Array.prototype.forEach.call(this.currentFiles||[],(file)=>{dataTransfer.items.add(file);});this.$input[0].files=dataTransfer.files;}else{if(!files||!files.length){OO.ui.SelectFileInputWidget.super.prototype.setValue.call(this,'');}}return this;};OO.ui.SelectFileInputWidget.prototype.getFilename=function(){return this.currentFiles.map((file)=>file.name).join(', ');
};OO.ui.SelectFileInputWidget.prototype.onFileSelected=function(e){const files=this.filterFiles(e.target.files||[]);this.setValue(files);};OO.ui.SelectFileInputWidget.prototype.onEdit=function(){};OO.ui.SelectFileInputWidget.prototype.updateUI=function(){if(!this.selectButton){return;}this.info.setValue(this.getFilename());if(this.currentFiles.length){this.$element.removeClass('oo-ui-selectFileInputWidget-empty');if(this.showDropTarget){if(!this.multiple){this.pushPending();this.loadAndGetImageUrl(this.currentFiles[0]).done((url)=>{this.$thumbnail.css('background-image','url( '+url+' )');}).fail(()=>{this.$thumbnail.append(new OO.ui.IconWidget({icon:'attachment',classes:['oo-ui-selectFileInputWidget-noThumbnail-icon oo-ui-selectFileWidget-noThumbnail-icon']}).$element);}).always(()=>{this.popPending();});}this.$element.off('click');}}else{if(this.showDropTarget){this.$element.off('click');this.$element.on({click:this.onDropTargetClick.bind(this)});if(!this.multiple){this.$thumbnail.empty()
.css('background-image','');}}this.$element.addClass('oo-ui-selectFileInputWidget-empty');}};OO.ui.SelectFileInputWidget.prototype.loadAndGetImageUrl=function(file){const deferred=$.Deferred(),reader=new FileReader();if((OO.getProp(file,'type')||'').indexOf('image/')===0&&file.size<this.thumbnailSizeLimit*1024*1024){reader.onload=function(event){const img=document.createElement('img');img.addEventListener('load',()=>{if(img.naturalWidth===0||img.naturalHeight===0||img.complete===false){deferred.reject();}else{deferred.resolve(event.target.result);}});img.src=event.target.result;};reader.readAsDataURL(file);}else{deferred.reject();}return deferred.promise();};OO.ui.SelectFileInputWidget.prototype.filterFiles=function(files){const accept=this.accept;function mimeAllowed(file){const mimeType=file.type;if(!accept||!mimeType){return true;}return accept.some((acceptedType)=>{if(acceptedType===mimeType){return true;}else if(acceptedType.slice(-2)==='/*'){if(mimeType.startsWith(acceptedType.slice(0,-1))){
return true;}}return false;});}return Array.prototype.filter.call(files,mimeAllowed);};OO.ui.SelectFileInputWidget.prototype.onInfoChange=function(value){if(value===''){this.setValue(null);}};OO.ui.SelectFileInputWidget.prototype.onKeyPress=function(e){if(!this.isDisabled()&&this.$input&&(e.which===OO.ui.Keys.SPACE||e.which===OO.ui.Keys.ENTER)){this.$input.trigger('click');this.selectButton.onDocumentKeyUp(e);return false;}};OO.ui.SelectFileInputWidget.prototype.setDisabled=function(disabled){OO.ui.SelectFileInputWidget.super.prototype.setDisabled.call(this,disabled);this.selectButton.setDisabled(disabled);this.info.setDisabled(disabled);this.info.$input.attr('disabled',true);return this;};OO.ui.SelectFileInputWidget.prototype.onDropTargetClick=function(){if(!this.isDisabled()&&this.$input){this.$input.trigger('click');return false;}};OO.ui.SelectFileInputWidget.prototype.onDragEnterOrOver=function(e){let hasDroppableFile=false;const dt=e.originalEvent.dataTransfer;e.preventDefault();e.stopPropagation();
if(this.isDisabled()){this.$element.removeClass(['oo-ui-selectFileInputWidget-canDrop','oo-ui-selectFileWidget-canDrop','oo-ui-selectFileInputWidget-cantDrop']);dt.dropEffect='none';return false;}const itemsOrFiles=dt.items||dt.files;const hasFiles=!!itemsOrFiles&&Array.prototype.some.call(itemsOrFiles,(item)=>item.kind==='file');if(hasFiles){if(this.filterFiles(itemsOrFiles).length){hasDroppableFile=true;}}else if(Array.prototype.includes.call(OO.getProp(dt,'types')||[],'Files')){hasDroppableFile=true;}this.$element.toggleClass('oo-ui-selectFileInputWidget-canDrop oo-ui-selectFileWidget-canDrop',hasDroppableFile);this.$element.toggleClass('oo-ui-selectFileInputWidget-cantDrop',!hasDroppableFile&&hasFiles);if(!hasDroppableFile){dt.dropEffect='none';}return false;};OO.ui.SelectFileInputWidget.prototype.onDragLeave=function(){this.$element.removeClass(['oo-ui-selectFileInputWidget-canDrop','oo-ui-selectFileWidget-canDrop','oo-ui-selectFileInputWidget-cantDrop']);};OO.ui.SelectFileInputWidget.prototype.onDrop=function(e){
const dt=e.originalEvent.dataTransfer;e.preventDefault();e.stopPropagation();this.$element.removeClass(['oo-ui-selectFileInputWidget-canDrop','oo-ui-selectFileWidget-canDrop','oo-ui-selectFileInputWidget-cantDrop']);if(this.isDisabled()){return false;}const files=this.filterFiles(dt.files||[]);this.setValue(files);return false;};}(OO));
(function(){let isMobile;OO.ui.getUserLanguages=mw.language.getFallbackLanguageChain;OO.ui.msg=mw.msg;OO.ui.warnDeprecation=function(message){mw.track('mw.deprecate','oojs-ui');mw.log.warn(message);};OO.ui.isMobile=function(){if(isMobile===undefined){isMobile=!!mw.config.get('wgMFMode');}return isMobile;};OO.ui.getTeleportTarget=function(){return require('mediawiki.page.ready').teleportTarget;};}());
(function(OO){'use strict';OO.ui.WikimediaUITheme=function OoUiWikimediaUITheme(){OO.ui.WikimediaUITheme.super.call(this);};OO.inheritClass(OO.ui.WikimediaUITheme,OO.ui.Theme);OO.ui.WikimediaUITheme.prototype.getElementClasses=function(element){const variants={invert:false,progressive:false,destructive:false,error:false,warning:false,success:false},classes=OO.ui.WikimediaUITheme.super.prototype.getElementClasses.call(this,element);if(element instanceof OO.ui.IconWidget&&element.$element.hasClass('oo-ui-checkboxInputWidget-checkIcon')){variants.invert=true;}else if(element.supports('hasFlag')){const isFramed=element.supports('isFramed')&&element.isFramed();const isActive=element.supports('isActive')&&element.isActive();const isToolOrGroup=(OO.ui.Tool&&element instanceof OO.ui.Tool)||(OO.ui.ToolGroup&&element instanceof OO.ui.ToolGroup);if(isFramed&&(isActive||element.isDisabled()||element.hasFlag('primary'))||isToolOrGroup&&element.hasFlag('primary')){variants.invert=true;}else if(!isFramed&&element.isDisabled()&&!element.hasFlag('invert')){
variants.invert=false;}else if(!element.isDisabled()){variants.progressive=element.hasFlag('progressive')||(isToolOrGroup&&isActive)||((element instanceof OO.ui.MenuOptionWidget||(OO.ui.OutlineOptionWidget&&element instanceof OO.ui.OutlineOptionWidget))&&(element.isPressed()||element.isSelected()));variants.destructive=element.hasFlag('destructive');variants.invert=element.hasFlag('invert');variants.error=element.hasFlag('error');variants.warning=element.hasFlag('warning');variants.success=element.hasFlag('success');}}for(const variant in variants){classes[variants[variant]?'on':'off'].push('oo-ui-image-'+variant);}return classes;};OO.ui.WikimediaUITheme.prototype.getDialogTransitionDuration=function(){return 250;};OO.ui.theme=new OO.ui.WikimediaUITheme();}(OO));
},{},{"ooui-combobox-button-label":"Comuta\u021bi op\u021biunile","ooui-field-help":"Ajutor","ooui-popup-widget-close-button-aria-label":"\u00cenchide","ooui-selectfile-button-select":"Alege un fi\u0219ier","ooui-selectfile-button-select-multiple":"Alege fi\u0219ierele","ooui-selectfile-dragdrop-placeholder":"Trage\u021bi fi\u0219ierul aici","ooui-selectfile-dragdrop-placeholder-multiple":"Trage\u021bi fi\u0219ierele aici","ooui-selectfile-placeholder":"Niciun fi\u0219ier selectat"}];});
mw.loader.impl(function(){return["oojs-ui-widgets@qod23",function($,jQuery,require,module){(function(OO){'use strict';OO.ui.mixin.DraggableElement=function OoUiMixinDraggableElement(config){config=config||{};this.index=null;this.$handle=config.$handle||this.$element;this.wasHandleUsed=null;this.$element.addClass('oo-ui-draggableElement').on({mousedown:this.onDragMouseDown.bind(this),dragstart:this.onDragStart.bind(this),dragover:this.onDragOver.bind(this),dragend:this.onDragEnd.bind(this),drop:this.onDrop.bind(this)});this.$handle.addClass('oo-ui-draggableElement-handle');this.toggleDraggable(config.draggable===undefined?true:!!config.draggable);};OO.initClass(OO.ui.mixin.DraggableElement);OO.ui.mixin.DraggableElement.static.cancelButtonMouseDownEvents=false;OO.ui.mixin.DraggableElement.prototype.toggleDraggable=function(isDraggable){isDraggable=isDraggable!==undefined?!!isDraggable:!this.draggable;if(this.draggable!==isDraggable){this.draggable=isDraggable;this.$handle.toggleClass('oo-ui-draggableElement-undraggable',!this.draggable);this.$element.prop('draggable',this.draggable);
}};OO.ui.mixin.DraggableElement.prototype.isDraggable=function(){return this.draggable;};OO.ui.mixin.DraggableElement.prototype.onDragMouseDown=function(e){if(!this.isDraggable()){return;}this.wasHandleUsed=this.$handle[0]===this.$element[0]||OO.ui.contains(this.$handle[0],e.target,true);};OO.ui.mixin.DraggableElement.prototype.onDragStart=function(e){if(!this.wasHandleUsed||!this.isDraggable()){return false;}const dataTransfer=e.originalEvent.dataTransfer;dataTransfer.dropEffect='none';dataTransfer.effectAllowed='move';try{dataTransfer.setData('application-x/OOUI-draggable',this.getIndex());}catch(err){}if(!dataTransfer.getData('text')){try{dataTransfer.setData('text',' ');}catch(err){}}this.$element.addClass('oo-ui-draggableElement-clone');setTimeout(()=>{this.$element.removeClass('oo-ui-draggableElement-clone').addClass('oo-ui-draggableElement-placeholder');});this.emit('dragstart',this);return true;};OO.ui.mixin.DraggableElement.prototype.onDragEnd=function(){this.$element.removeClass('oo-ui-draggableElement-placeholder');
this.emit('dragend');};OO.ui.mixin.DraggableElement.prototype.onDrop=function(e){e.preventDefault();this.emit('drop',e);};OO.ui.mixin.DraggableElement.prototype.onDragOver=function(e){e.preventDefault();};OO.ui.mixin.DraggableElement.prototype.setIndex=function(index){if(this.index!==index){this.index=index;this.$element.data('index',index);}};OO.ui.mixin.DraggableElement.prototype.getIndex=function(){return this.index;};OO.ui.mixin.DraggableGroupElement=function OoUiMixinDraggableGroupElement(config){config=config||{};OO.ui.mixin.GroupElement.call(this,config);this.orientation=config.orientation||'vertical';this.dragItem=null;this.itemKeys={};this.dir=null;this.itemsOrder=null;this.draggable=config.draggable===undefined?true:!!config.draggable;this.aggregate({dragstart:'itemDragStart',dragend:'itemDragEnd',drop:'itemDrop'});this.connect(this,{itemDragStart:'onItemDragStart',itemDrop:'onItemDropOrDragEnd',itemDragEnd:'onItemDropOrDragEnd'});this.addItems(config.items||[]);this.$element
.addClass('oo-ui-draggableGroupElement').toggleClass('oo-ui-draggableGroupElement-horizontal',this.orientation==='horizontal');};OO.mixinClass(OO.ui.mixin.DraggableGroupElement,OO.ui.mixin.GroupElement);OO.ui.mixin.DraggableGroupElement.prototype.toggleDraggable=function(isDraggable){isDraggable=isDraggable!==undefined?!!isDraggable:!this.draggable;if(this.draggable!==isDraggable){this.draggable=isDraggable;this.getItems().forEach((item)=>{item.toggleDraggable(this.draggable);});this.emit('draggable',this.draggable);}};OO.ui.mixin.DraggableGroupElement.prototype.isDraggable=function(){return this.draggable;};OO.ui.mixin.DraggableGroupElement.prototype.onItemDragStart=function(item){if(!this.isDraggable()){return;}this.itemsOrder=this.items.slice();this.updateIndexes();if(this.orientation==='horizontal'){this.dir=this.$element.css('direction');}this.setDragItem(item);};OO.ui.mixin.DraggableGroupElement.prototype.updateIndexes=function(){for(let i=0,len=this.itemsOrder.length;i<len;i++){
this.itemsOrder[i].setIndex(i);}};OO.ui.mixin.DraggableGroupElement.prototype.onItemDropOrDragEnd=function(){const item=this.getDragItem();if(item){const originalIndex=this.items.indexOf(item);const targetIndex=item.getIndex()+(item.getIndex()>originalIndex?1:0);if(targetIndex!==originalIndex){this.reorder(this.getDragItem(),targetIndex);this.emit('reorder',this.getDragItem(),targetIndex);}this.updateIndexes();}this.unsetDragItem();return false;};OO.ui.mixin.DraggableGroupElement.prototype.onDragOver=function(e){const item=this.getDragItem(),dragItemIndex=item.getIndex();const overIndex=$(e.target).closest('.oo-ui-draggableElement').data('index');if(overIndex!==undefined&&overIndex!==dragItemIndex){const targetIndex=overIndex+(overIndex>dragItemIndex?1:0);if(targetIndex>0){this.$group.children().eq(targetIndex-1).after(item.$element);}else{this.$group.prepend(item.$element);}this.itemsOrder.splice(overIndex,0,this.itemsOrder.splice(dragItemIndex,1)[0]);this.updateIndexes();this.emit('drag',item,targetIndex);
}e.preventDefault();};OO.ui.mixin.DraggableGroupElement.prototype.reorder=function(item,newIndex){this.addItems([item],newIndex);};OO.ui.mixin.DraggableGroupElement.prototype.setDragItem=function(item){if(this.dragItem!==item){this.dragItem=item;this.$element.on('dragover',this.onDragOver.bind(this));this.$element.addClass('oo-ui-draggableGroupElement-dragging');}};OO.ui.mixin.DraggableGroupElement.prototype.unsetDragItem=function(){if(this.dragItem){this.dragItem=null;this.$element.off('dragover');this.$element.removeClass('oo-ui-draggableGroupElement-dragging');}};OO.ui.mixin.DraggableGroupElement.prototype.getDragItem=function(){return this.dragItem;};OO.ui.mixin.RequestManager=function OoUiMixinRequestManager(config){this.requestCache={};this.requestQuery=null;this.requestRequest=null;this.showPendingRequest=!!this.pushPending&&config.showPendingRequest!==false;};OO.initClass(OO.ui.mixin.RequestManager);OO.ui.mixin.RequestManager.prototype.getRequestData=function(){const value=this.getRequestQuery(),
deferred=$.Deferred();this.abortRequest();if(Object.prototype.hasOwnProperty.call(this.requestCache,value)){deferred.resolve(this.requestCache[value]);}else{if(this.showPendingRequest){this.pushPending();}this.requestQuery=value;const ourRequest=this.requestRequest=this.getRequest();ourRequest.always(()=>{if(this.showPendingRequest){this.popPending();}}).done((response)=>{if(ourRequest===this.requestRequest){this.requestQuery=null;this.requestRequest=null;this.requestCache[value]=this.getRequestCacheDataFromResponse(response);deferred.resolve(this.requestCache[value]);}}).fail(()=>{if(ourRequest===this.requestRequest){this.requestQuery=null;this.requestRequest=null;deferred.reject();}});}return deferred.promise();};OO.ui.mixin.RequestManager.prototype.abortRequest=function(){const oldRequest=this.requestRequest;if(oldRequest){this.requestRequest=null;this.requestQuery=null;oldRequest.abort();}};OO.ui.mixin.RequestManager.prototype.getRequestQuery=null;OO.ui.mixin.RequestManager.prototype.getRequest=null;
OO.ui.mixin.RequestManager.prototype.getRequestCacheDataFromResponse=null;OO.ui.mixin.LookupElement=function OoUiMixinLookupElement(config){config=Object.assign({highlightFirst:true},config);OO.ui.mixin.RequestManager.call(this,config);this.$overlay=(config.$overlay===true?OO.ui.getDefaultOverlay():config.$overlay)||this.$element;this.lookupMenu=new OO.ui.MenuSelectWidget(Object.assign({widget:this,input:this,$floatableContainer:config.$container||this.$element},config.menu));this.allowSuggestionsWhenEmpty=config.allowSuggestionsWhenEmpty||false;this.lookupsDisabled=false;this.lookupInputFocused=false;this.lookupHighlightFirstItem=config.highlightFirst;this.showSuggestionsOnFocus=config.showSuggestionsOnFocus!==false;this.$input.on({focus:this.onLookupInputFocus.bind(this),blur:this.onLookupInputBlur.bind(this),mousedown:this.onLookupInputMouseDown.bind(this)});this.connect(this,{change:'onLookupInputChange'});this.lookupMenu.connect(this,{toggle:'onLookupMenuToggle',choose:'onLookupMenuChoose'
});this.$input.attr({role:'combobox','aria-owns':this.lookupMenu.getElementId(),'aria-autocomplete':'list'});this.$element.addClass('oo-ui-lookupElement');this.lookupMenu.$element.addClass('oo-ui-lookupElement-menu');this.$overlay.append(this.lookupMenu.$element);};OO.mixinClass(OO.ui.mixin.LookupElement,OO.ui.mixin.RequestManager);OO.ui.mixin.LookupElement.prototype.onLookupInputFocus=function(){this.lookupInputFocused=true;if(this.showSuggestionsOnFocus){this.populateLookupMenu();}};OO.ui.mixin.LookupElement.prototype.onLookupInputBlur=function(){this.closeLookupMenu();this.lookupInputFocused=false;};OO.ui.mixin.LookupElement.prototype.onLookupInputMouseDown=function(){if(!this.lookupMenu.isVisible()&&(this.lookupInputFocused||!this.showSuggestionsOnFocus)){this.populateLookupMenu();}};OO.ui.mixin.LookupElement.prototype.onLookupInputChange=function(){if(this.lookupInputFocused){this.populateLookupMenu();}};OO.ui.mixin.LookupElement.prototype.onLookupMenuToggle=function(visible){if(!visible){
this.abortLookupRequest();this.lookupMenu.clearItems();}};OO.ui.mixin.LookupElement.prototype.onLookupMenuChoose=function(item){this.setValue(item.getData());};OO.ui.mixin.LookupElement.prototype.getLookupMenu=function(){return this.lookupMenu;};OO.ui.mixin.LookupElement.prototype.setLookupsDisabled=function(disabled){this.lookupsDisabled=!!disabled;};OO.ui.mixin.LookupElement.prototype.openLookupMenu=function(){if(!this.lookupMenu.isEmpty()){this.lookupMenu.toggle(true);}return this;};OO.ui.mixin.LookupElement.prototype.closeLookupMenu=function(){this.lookupMenu.toggle(false);this.abortLookupRequest();this.lookupMenu.clearItems();return this;};OO.ui.mixin.LookupElement.prototype.populateLookupMenu=function(){const value=this.getValue();if(this.lookupsDisabled||this.isReadOnly()){return;}if(!this.allowSuggestionsWhenEmpty&&value===''){this.closeLookupMenu();}else if(value!==this.lookupQuery){this.getLookupMenuItems().done((items)=>{this.lookupMenu.clearItems();if(items.length){this.lookupMenu
.addItems(items).toggle(true);this.initializeLookupMenuSelection();}else{this.lookupMenu.toggle(false);}}).fail(()=>{this.lookupMenu.clearItems();this.lookupMenu.toggle(false);});}return this;};OO.ui.mixin.LookupElement.prototype.initializeLookupMenuSelection=function(){if(this.lookupHighlightFirstItem&&!this.lookupMenu.findSelectedItem()){this.lookupMenu.highlightItem(this.lookupMenu.findFirstSelectableItem());}};OO.ui.mixin.LookupElement.prototype.getLookupMenuItems=function(){return this.getRequestData().then((data)=>this.getLookupMenuOptionsFromData(data));};OO.ui.mixin.LookupElement.prototype.abortLookupRequest=function(){this.abortRequest();};OO.ui.mixin.LookupElement.prototype.getLookupRequest=null;OO.ui.mixin.LookupElement.prototype.getLookupCacheDataFromResponse=null;OO.ui.mixin.LookupElement.prototype.getLookupMenuOptionsFromData=null;OO.ui.mixin.LookupElement.prototype.setReadOnly=function(readOnly){OO.ui.TextInputWidget.prototype.setReadOnly.call(this,readOnly);if(this.isReadOnly()&&this.lookupMenu){
this.closeLookupMenu();}return this;};OO.ui.mixin.LookupElement.prototype.getRequestQuery=function(){return this.getValue();};OO.ui.mixin.LookupElement.prototype.getRequest=function(){return this.getLookupRequest();};OO.ui.mixin.LookupElement.prototype.getRequestCacheDataFromResponse=function(response){return this.getLookupCacheDataFromResponse(response);};OO.ui.TabPanelLayout=function OoUiTabPanelLayout(name,config){if(OO.isPlainObject(name)&&config===undefined){config=name;name=config.name;}config=Object.assign({scrollable:true},config);OO.ui.TabPanelLayout.super.call(this,config);this.name=name;this.label=config.label;this.tabItemConfig=config.tabItemConfig||{};this.tabItem=null;this.active=false;this.$element.addClass('oo-ui-tabPanelLayout').attr('role','tabpanel');};OO.inheritClass(OO.ui.TabPanelLayout,OO.ui.PanelLayout);OO.ui.TabPanelLayout.prototype.getName=function(){return this.name;};OO.ui.TabPanelLayout.prototype.isActive=function(){return this.active;};OO.ui.TabPanelLayout.prototype.getTabItem=function(){
return this.tabItem;};OO.ui.TabPanelLayout.prototype.getTabItemConfig=function(){return this.tabItemConfig;};OO.ui.TabPanelLayout.prototype.setTabItem=function(tabItem){this.tabItem=tabItem||null;if(tabItem){this.setupTabItem();}return this;};OO.ui.TabPanelLayout.prototype.setupTabItem=function(){this.$element.attr('aria-labelledby',this.tabItem.getElementId());this.tabItem.$element.attr('aria-controls',this.getElementId());if(this.label){this.tabItem.setLabel(this.label);}return this;};OO.ui.TabPanelLayout.prototype.setActive=function(active){active=!!active;if(active!==this.active){this.active=active;this.$element.toggleClass('oo-ui-tabPanelLayout-active',this.active);this.emit('active',this.active);}};OO.ui.PageLayout=function OoUiPageLayout(name,config){if(OO.isPlainObject(name)&&config===undefined){config=name;name=config.name;}config=Object.assign({scrollable:true},config);OO.ui.PageLayout.super.call(this,config);this.name=name;this.outlineItem=null;this.active=false;this.$element.addClass('oo-ui-pageLayout');
};OO.inheritClass(OO.ui.PageLayout,OO.ui.PanelLayout);OO.ui.PageLayout.prototype.getName=function(){return this.name;};OO.ui.PageLayout.prototype.isActive=function(){return this.active;};OO.ui.PageLayout.prototype.getOutlineItem=function(){return this.outlineItem;};OO.ui.PageLayout.prototype.setOutlineItem=function(outlineItem){this.outlineItem=outlineItem||null;if(outlineItem){this.setupOutlineItem();}return this;};OO.ui.PageLayout.prototype.setupOutlineItem=function(){};OO.ui.PageLayout.prototype.setActive=function(active){active=!!active;if(active!==this.active){this.active=active;this.$element.toggleClass('oo-ui-pageLayout-active',active);this.emit('active',this.active);}};OO.ui.StackLayout=function OoUiStackLayout(config){config=Object.assign({scrollable:!!(config&&config.continuous)},config);OO.ui.StackLayout.super.call(this,config);OO.ui.mixin.GroupElement.call(this,Object.assign({$group:this.$element},config));this.currentItem=null;this.setContinuous(!!config.continuous);this.hideUntilFound=!!config.hideUntilFound;
this.$element.addClass('oo-ui-stackLayout');this.addItems(config.items||[]);};OO.inheritClass(OO.ui.StackLayout,OO.ui.PanelLayout);OO.mixinClass(OO.ui.StackLayout,OO.ui.mixin.GroupElement);OO.ui.StackLayout.prototype.setContinuous=function(continuous){this.continuous=continuous;this.$element.toggleClass('oo-ui-stackLayout-continuous',!!continuous);this.updateHiddenState(this.items,this.currentItem);};OO.ui.StackLayout.prototype.isContinuous=function(){return this.continuous;};OO.ui.StackLayout.prototype.getCurrentItem=function(){return this.currentItem;};OO.ui.StackLayout.prototype.unsetCurrentItem=function(){const prevItem=this.currentItem;if(prevItem===null){return;}this.currentItem=null;this.emit('set',null);};OO.ui.StackLayout.prototype.setHideUntilFound=function(hideUntilFound){this.hideUntilFound=hideUntilFound;this.updateHiddenState(this.items,this.currentItem);};OO.ui.StackLayout.prototype.addItems=function(items,index){if(!items||items.length===0){return this;}this.updateHiddenState(items,this.currentItem);
OO.ui.mixin.GroupElement.prototype.addItems.call(this,items,index);if(!this.currentItem){this.setItem(items[0]);}return this;};OO.ui.StackLayout.prototype.removeItems=function(itemsToRemove){const isCurrentItemRemoved=itemsToRemove.includes(this.currentItem);let nextItem;if(isCurrentItemRemoved){let i=this.items.indexOf(this.currentItem);do{nextItem=this.items[++i];}while(nextItem&&itemsToRemove.includes(nextItem));}OO.ui.mixin.GroupElement.prototype.removeItems.call(this,itemsToRemove);if(isCurrentItemRemoved){if(this.items.length){this.setItem(nextItem||this.items[this.items.length-1]);}else{this.unsetCurrentItem();}}return this;};OO.ui.StackLayout.prototype.clearItems=function(){this.unsetCurrentItem();OO.ui.mixin.GroupElement.prototype.clearItems.call(this);return this;};OO.ui.StackLayout.prototype.setItem=function(item){if(item!==this.currentItem){this.updateHiddenState(this.items,item);if(this.items.includes(item)){this.currentItem=item;this.emit('set',item);}else{this.unsetCurrentItem();
}}return this;};OO.ui.StackLayout.prototype.resetScroll=function(){if(this.isContinuous()){return OO.ui.StackLayout.super.prototype.resetScroll.call(this);}this.getItems().forEach((panel)=>{const hidden=panel.$element.hasClass('oo-ui-element-hidden');panel.$element.removeClass('oo-ui-element-hidden');panel.resetScroll();if(hidden){panel.$element.addClass('oo-ui-element-hidden');}});return this;};OO.ui.StackLayout.prototype.updateHiddenState=function(items,selectedItem){if(!this.isContinuous()){items.forEach((item)=>{if(!selectedItem||selectedItem!==item){const isDisabled=item instanceof OO.ui.TabPanelLayout&&item.getTabItem()&&item.getTabItem().isDisabled();const hideUntilFound=!isDisabled&&this.hideUntilFound;item.$element[0].setAttribute('hidden',hideUntilFound?'until-found':'hidden');item.$element.attr('aria-hidden','true');}});if(selectedItem){selectedItem.$element[0].removeAttribute('hidden');selectedItem.$element.removeAttr('aria-hidden');}}else{items.forEach((item)=>{item.$element[0].removeAttribute('hidden');
item.$element.removeAttr('aria-hidden');});}};OO.ui.MenuLayout=function OoUiMenuLayout(config){config=Object.assign({expanded:true,showMenu:true,menuPosition:'before'},config);OO.ui.MenuLayout.super.call(this,config);this.menuPanel=null;this.contentPanel=null;this.expanded=!!config.expanded;this.$menu=$('<div>');this.$content=$('<div>');this.$menu.addClass('oo-ui-menuLayout-menu');this.$content.addClass('oo-ui-menuLayout-content');this.$element.addClass('oo-ui-menuLayout');if(config.expanded){this.$element.addClass('oo-ui-menuLayout-expanded');}else{this.$element.addClass('oo-ui-menuLayout-static');}if(config.menuPanel){this.setMenuPanel(config.menuPanel);}if(config.contentPanel){this.setContentPanel(config.contentPanel);}this.setMenuPosition(config.menuPosition);this.toggleMenu(config.showMenu);};OO.inheritClass(OO.ui.MenuLayout,OO.ui.Layout);OO.ui.MenuLayout.prototype.toggleMenu=function(showMenu){showMenu=showMenu===undefined?!this.showMenu:!!showMenu;if(this.showMenu!==showMenu){
this.showMenu=showMenu;this.$element.toggleClass('oo-ui-menuLayout-showMenu',this.showMenu).toggleClass('oo-ui-menuLayout-hideMenu',!this.showMenu);this.$menu.attr('aria-hidden',this.showMenu?'false':'true');}return this;};OO.ui.MenuLayout.prototype.isMenuVisible=function(){return this.showMenu;};OO.ui.MenuLayout.prototype.setMenuPosition=function(position){if(!['top','bottom','before','after'].includes(position)){position='before';}this.$element.removeClass('oo-ui-menuLayout-'+this.menuPosition);this.menuPosition=position;if(this.menuPosition==='top'||this.menuPosition==='before'){this.$element.append(this.$menu,this.$content);}else{this.$element.append(this.$content,this.$menu);}this.$element.addClass('oo-ui-menuLayout-'+position);return this;};OO.ui.MenuLayout.prototype.getMenuPosition=function(){return this.menuPosition;};OO.ui.MenuLayout.prototype.setMenuPanel=function(menuPanel){this.menuPanel=menuPanel;this.$menu.append(this.menuPanel.$element);};OO.ui.MenuLayout.prototype.setContentPanel=function(contentPanel){
this.contentPanel=contentPanel;this.$content.append(this.contentPanel.$element);};OO.ui.MenuLayout.prototype.clearMenuPanel=function(){this.menuPanel=null;this.$menu.empty();};OO.ui.MenuLayout.prototype.clearContentPanel=function(){this.contentPanel=null;this.$content.empty();};OO.ui.MenuLayout.prototype.resetScroll=function(){if(this.menuPanel){this.menuPanel.resetScroll();}if(this.contentPanel){this.contentPanel.resetScroll();}return this;};OO.ui.BookletLayout=function OoUiBookletLayout(config){config=config||{};OO.ui.BookletLayout.super.call(this,config);this.currentPageName=null;this.pages={};this.ignoreFocus=false;this.stackLayout=new OO.ui.StackLayout({continuous:!!config.continuous,expanded:this.expanded});this.setContentPanel(this.stackLayout);this.autoFocus=config.autoFocus===undefined||!!config.autoFocus;this.outlineVisible=false;this.outlined=!!config.outlined;if(this.outlined){this.editable=!!config.editable;this.outlineControlsWidget=null;this.outlineSelectWidget=new OO.ui.OutlineSelectWidget();
this.outlinePanel=new OO.ui.PanelLayout({expanded:this.expanded,scrollable:true});this.setMenuPanel(this.outlinePanel);this.outlineVisible=true;if(this.editable){this.outlineControlsWidget=new OO.ui.OutlineControlsWidget(this.outlineSelectWidget);}}this.toggleMenu(this.outlined);this.stackLayout.connect(this,{set:'onStackLayoutSet'});if(this.outlined){this.outlineSelectWidget.connect(this,{select:'onOutlineSelectWidgetSelect'});}if(this.autoFocus){this.stackLayout.$element.on('focusin',this.onStackLayoutFocus.bind(this));}this.$element.addClass('oo-ui-bookletLayout');this.stackLayout.$element.addClass('oo-ui-bookletLayout-stackLayout');if(this.outlined){this.outlinePanel.$element.addClass('oo-ui-bookletLayout-outlinePanel').append(this.outlineSelectWidget.$element);if(this.editable){this.outlinePanel.$element.addClass('oo-ui-bookletLayout-outlinePanel-editable').append(this.outlineControlsWidget.$element);}}};OO.inheritClass(OO.ui.BookletLayout,OO.ui.MenuLayout);OO.ui.BookletLayout.prototype.onStackLayoutFocus=function(e){
const $target=$(e.target).closest('.oo-ui-pageLayout');for(const name in this.pages){if(this.pages[name].$element[0]===$target[0]&&name!==this.currentPageName){this.setPage(name);break;}}};OO.ui.BookletLayout.prototype.onStackLayoutSet=function(page){if(!page){return;}let promise;if(this.stackLayout.isContinuous()&&!this.scrolling){promise=page.scrollElementIntoView();}else{promise=$.Deferred().resolve();}if(this.autoFocus&&!OO.ui.isMobile()&&!this.scrolling){promise.done(()=>{this.focus();});}};OO.ui.BookletLayout.prototype.focus=function(itemIndex){const items=this.stackLayout.getItems();let page;if(itemIndex!==undefined&&items[itemIndex]){page=items[itemIndex];}else{page=this.stackLayout.getCurrentItem();}if(!page&&this.outlined){this.selectFirstSelectablePage();page=this.stackLayout.getCurrentItem();}if(!page){return;}if(!OO.ui.contains(page.$element[0],this.getElementDocument().activeElement,true)){page.focus();}};OO.ui.BookletLayout.prototype.focusFirstFocusable=function(){OO.ui.findFocusable(this.stackLayout.$element).focus();
};OO.ui.BookletLayout.prototype.onOutlineSelectWidgetSelect=function(item){if(item){this.setPage(item.getData());}};OO.ui.BookletLayout.prototype.isOutlined=function(){return this.outlined;};OO.ui.BookletLayout.prototype.isEditable=function(){return this.editable;};OO.ui.BookletLayout.prototype.isOutlineVisible=function(){return this.outlined&&this.outlineVisible;};OO.ui.BookletLayout.prototype.toggleOutline=function(show){if(this.outlined){show=show===undefined?!this.outlineVisible:!!show;this.outlineVisible=show;this.toggleMenu(show);if(show&&this.editable){setTimeout(()=>{OO.ui.Element.static.reconsiderScrollbars(this.outlinePanel.$element[0]);},OO.ui.theme.getDialogTransitionDuration());}}return this;};OO.ui.BookletLayout.prototype.findClosestPage=function(page){const pages=this.stackLayout.getItems(),index=pages.indexOf(page);if(index===-1){return null;}const next=pages[index+1];const prev=pages[index-1];if(this.outlined){const level=this.outlineSelectWidget.findItemFromData(page.getName()).getLevel();
if(prev&&level===this.outlineSelectWidget.findItemFromData(prev.getName()).getLevel()){return prev;}if(next&&level===this.outlineSelectWidget.findItemFromData(next.getName()).getLevel()){return next;}}return prev||next||null;};OO.ui.BookletLayout.prototype.getOutline=function(){return this.outlineSelectWidget;};OO.ui.BookletLayout.prototype.getOutlineControls=function(){return this.outlineControlsWidget;};OO.ui.BookletLayout.prototype.getPage=function(name){return this.pages[name];};OO.ui.BookletLayout.prototype.getCurrentPage=function(){const name=this.getCurrentPageName();return name?this.getPage(name):undefined;};OO.ui.BookletLayout.prototype.getCurrentPageName=function(){return this.currentPageName;};OO.ui.BookletLayout.prototype.addPages=function(pages,index){const stackLayoutPages=this.stackLayout.getItems(),remove=[],items=[];let i,len;let page,name;for(i=0,len=pages.length;i<len;i++){page=pages[i];name=page.getName();if(Object.prototype.hasOwnProperty.call(this.pages,name)){
const currentIndex=stackLayoutPages.indexOf(this.pages[name]);if(currentIndex!==-1&&currentIndex+1<index){index--;}remove.push(this.pages[name]);}}if(remove.length){this.removePages(remove);}for(i=0,len=pages.length;i<len;i++){page=pages[i];name=page.getName();this.pages[page.getName()]=page;if(this.outlined){const item=new OO.ui.OutlineOptionWidget({data:name});page.setOutlineItem(item);items.push(item);}}if(this.outlined){this.outlineSelectWidget.addItems(items,index);}this.stackLayout.addItems(pages,index);this.emit('add',pages,index);return this;};OO.ui.BookletLayout.prototype.removePages=function(pages){const itemsToRemove=[];for(let i=0,len=pages.length;i<len;i++){const page=pages[i];const name=page.getName();delete this.pages[name];if(this.outlined){itemsToRemove.push(this.outlineSelectWidget.findItemFromData(name));page.setOutlineItem(null);}if(this.currentPageName===name){this.currentPageName=null;}}if(itemsToRemove.length){this.outlineSelectWidget.removeItems(itemsToRemove);}
this.stackLayout.removeItems(pages);this.emit('remove',pages);return this;};OO.ui.BookletLayout.prototype.clearPages=function(){const pages=this.stackLayout.getItems();this.pages={};this.currentPageName=null;if(this.outlined){this.outlineSelectWidget.clearItems();for(let i=0,len=pages.length;i<len;i++){pages[i].setOutlineItem(null);}}this.stackLayout.clearItems();this.emit('remove',pages);return this;};OO.ui.BookletLayout.prototype.setPage=function(name){const page=this.pages[name];if(!page||name===this.currentPageName){return;}const previousPage=this.currentPageName?this.pages[this.currentPageName]:null;this.currentPageName=name;if(this.outlined){const selectedItem=this.outlineSelectWidget.findSelectedItem();if(!selectedItem||selectedItem.getData()!==name){this.outlineSelectWidget.selectItemByData(name);}}let $focused;if(previousPage){previousPage.setActive(false);if(this.autoFocus&&!OO.ui.isMobile()&&this.stackLayout.isContinuous()&&OO.ui.findFocusable(page.$element).length!==0){
$focused=previousPage.$element.find(':focus');if($focused.length){$focused[0].blur();}}}page.setActive(true);this.stackLayout.setItem(page);if(!this.stackLayout.isContinuous()&&previousPage){$focused=previousPage.$element.find(':focus');if($focused.length){$focused[0].blur();}}this.emit('set',page);};OO.ui.BookletLayout.prototype.resetScroll=function(){OO.ui.BookletLayout.super.prototype.resetScroll.call(this);if(this.outlined&&this.stackLayout.isContinuous()&&this.outlineSelectWidget.findFirstSelectableItem()){this.scrolling=true;this.outlineSelectWidget.selectItem(this.outlineSelectWidget.findFirstSelectableItem());this.scrolling=false;}return this;};OO.ui.BookletLayout.prototype.selectFirstSelectablePage=function(){if(!this.outlineSelectWidget.findSelectedItem()){this.outlineSelectWidget.selectItem(this.outlineSelectWidget.findFirstSelectableItem());}return this;};OO.ui.IndexLayout=function OoUiIndexLayout(config){config=Object.assign({},config,{menuPosition:'top'});OO.ui.IndexLayout.super.call(this,config);
this.currentTabPanelName=null;this.tabPanels=config.tabPanels||{};this.openMatchedPanels=config.openMatchedPanels===undefined||!!config.openMatchedPanels;this.ignoreFocus=false;if(this.contentPanel){this.contentPanel.setHideUntilFound(this.openMatchedPanels);}this.stackLayout=this.contentPanel||new OO.ui.StackLayout({continuous:!!config.continuous,expanded:this.expanded,hideUntilFound:this.openMatchedPanels});this.setContentPanel(this.stackLayout);this.autoFocus=config.autoFocus===undefined||!!config.autoFocus;if(config.tabSelectWidget){this.stackLayout.getItems().forEach((tabPanel,i)=>{if(!tabPanel.getTabItem()){tabPanel.setTabItem(config.tabSelectWidget.items[i]||null);}});}this.tabSelectWidget=config.tabSelectWidget||new OO.ui.TabSelectWidget({framed:config.framed===undefined||config.framed});this.tabPanel=this.menuPanel||new OO.ui.PanelLayout({expanded:this.expanded});this.setMenuPanel(this.tabPanel);this.toggleMenu(true);this.stackLayout.connect(this,{set:'onStackLayoutSet'});if(this.openMatchedPanels){
this.stackLayout.$element.on('beforematch',this.onStackLayoutBeforeMatch.bind(this));}this.tabSelectWidget.connect(this,{select:'onTabSelectWidgetSelect'});if(this.autoFocus){this.stackLayout.$element.on('focusin',this.onStackLayoutFocus.bind(this));}this.$element.addClass('oo-ui-indexLayout');this.stackLayout.$element.addClass('oo-ui-indexLayout-stackLayout');this.tabPanel.$element.addClass('oo-ui-indexLayout-tabPanel').append(this.tabSelectWidget.$element);this.selectFirstSelectableTabPanel();};OO.inheritClass(OO.ui.IndexLayout,OO.ui.MenuLayout);OO.ui.IndexLayout.prototype.onStackLayoutFocus=function(e){const $target=$(e.target).closest('.oo-ui-tabPanelLayout');for(const name in this.tabPanels){if(this.tabPanels[name].$element[0]===$target[0]&&name!==this.currentTabPanelName){this.setTabPanel(name);break;}}};OO.ui.IndexLayout.prototype.onStackLayoutSet=function(tabPanel){if(!tabPanel){return;}if(this.autoFocus&&!OO.ui.isMobile()){this.focus();}};OO.ui.IndexLayout.prototype.onStackLayoutBeforeMatch=function(event){
let tabPanel;this.stackLayout.getItems().some((item)=>{if(item.$element[0]===event.target){tabPanel=item;return true;}return false;});if(tabPanel){const tabItem=tabPanel.getTabItem();if(tabItem){this.tabSelectWidget.selectItem(tabItem);}}};OO.ui.IndexLayout.prototype.focus=function(itemIndex){const items=this.stackLayout.getItems();let tabPanel;if(itemIndex!==undefined&&items[itemIndex]){tabPanel=items[itemIndex];}else{tabPanel=this.stackLayout.getCurrentItem();}if(!tabPanel){this.selectFirstSelectableTabPanel();tabPanel=this.stackLayout.getCurrentItem();}if(!tabPanel){return;}if(!OO.ui.contains(tabPanel.$element[0],this.getElementDocument().activeElement,true)){tabPanel.focus();}};OO.ui.IndexLayout.prototype.focusFirstFocusable=function(){OO.ui.findFocusable(this.stackLayout.$element).focus();};OO.ui.IndexLayout.prototype.onTabSelectWidgetSelect=function(item){if(item){this.setTabPanel(item.getData());}};OO.ui.IndexLayout.prototype.getClosestTabPanel=function(tabPanel){const tabPanels=this.stackLayout.getItems(),
index=tabPanels.indexOf(tabPanel);if(index===-1){return null;}const next=tabPanels[index+1];const prev=tabPanels[index-1];const level=this.tabSelectWidget.findItemFromData(tabPanel.getName()).getLevel();if(prev&&level===this.tabSelectWidget.findItemFromData(prev.getName()).getLevel()){return prev;}if(next&&level===this.tabSelectWidget.findItemFromData(next.getName()).getLevel()){return next;}return prev||next||null;};OO.ui.IndexLayout.prototype.getTabs=function(){return this.tabSelectWidget;};OO.ui.IndexLayout.prototype.getTabPanel=function(name){return this.tabPanels[name];};OO.ui.IndexLayout.prototype.getCurrentTabPanel=function(){const name=this.getCurrentTabPanelName();return name?this.getTabPanel(name):undefined;};OO.ui.IndexLayout.prototype.getCurrentTabPanelName=function(){return this.currentTabPanelName;};OO.ui.IndexLayout.prototype.addTabPanels=function(tabPanels,index){let i,len,name,tabPanel,tabItem,currentIndex;const stackLayoutTabPanels=this.stackLayout.getItems(),remove=[],
tabItems=[];for(i=0,len=tabPanels.length;i<len;i++){tabPanel=tabPanels[i];name=tabPanel.getName();if(Object.prototype.hasOwnProperty.call(this.tabPanels,name)){currentIndex=stackLayoutTabPanels.indexOf(this.tabPanels[name]);if(currentIndex!==-1&&currentIndex+1<index){index--;}remove.push(this.tabPanels[name]);}}if(remove.length){this.removeTabPanels(remove);}for(i=0,len=tabPanels.length;i<len;i++){tabPanel=tabPanels[i];name=tabPanel.getName();this.tabPanels[name]=tabPanel;tabItem=new OO.ui.TabOptionWidget(Object.assign({data:name},tabPanel.getTabItemConfig()));tabPanel.setTabItem(tabItem);tabItems.push(tabItem);}if(tabItems.length){this.tabSelectWidget.addItems(tabItems,index);this.selectFirstSelectableTabPanel();}this.stackLayout.addItems(tabPanels,index);this.emit('add',tabPanels,index);return this;};OO.ui.IndexLayout.prototype.removeTabPanels=function(tabPanels){let i,len,name,tabPanel;const items=[];for(i=0,len=tabPanels.length;i<len;i++){tabPanel=tabPanels[i];name=tabPanel.getName();
delete this.tabPanels[name];items.push(this.tabSelectWidget.findItemFromData(name));tabPanel.setTabItem(null);}if(items.length){this.tabSelectWidget.removeItems(items);this.selectFirstSelectableTabPanel();}this.stackLayout.removeItems(tabPanels);this.emit('remove',tabPanels);return this;};OO.ui.IndexLayout.prototype.clearTabPanels=function(){let i,len;const tabPanels=this.stackLayout.getItems();this.tabPanels={};this.currentTabPanelName=null;this.tabSelectWidget.clearItems();for(i=0,len=tabPanels.length;i<len;i++){tabPanels[i].setTabItem(null);}this.stackLayout.clearItems();this.emit('remove',tabPanels);return this;};OO.ui.IndexLayout.prototype.setTabPanel=function(name){let selectedItem,$focused,previousTabPanel,tabPanel;if(name!==this.currentTabPanelName){tabPanel=this.getTabPanel(name);previousTabPanel=this.getCurrentTabPanel();selectedItem=this.tabSelectWidget.findSelectedItem();if(!selectedItem||selectedItem.getData()!==name){this.tabSelectWidget.selectItemByData(name);}if(tabPanel){
if(previousTabPanel){previousTabPanel.setActive(false);if(this.autoFocus&&!OO.ui.isMobile()&&this.stackLayout.isContinuous()&&OO.ui.findFocusable(tabPanel.$element).length!==0){$focused=previousTabPanel.$element.find(':focus');if($focused.length){$focused[0].blur();}}}this.currentTabPanelName=name;tabPanel.setActive(true);this.stackLayout.setItem(tabPanel);if(!this.stackLayout.isContinuous()&&previousTabPanel){$focused=previousTabPanel.$element.find(':focus');if($focused.length){$focused[0].blur();}}this.emit('set',tabPanel);}}};OO.ui.IndexLayout.prototype.selectFirstSelectableTabPanel=function(){if(!this.tabSelectWidget.findSelectedItem()){this.tabSelectWidget.selectItem(this.tabSelectWidget.findFirstSelectableItem());}return this;};OO.ui.CopyTextLayout=function OoUiCopyTextLayout(config){config=config||{};const TextClass=config.multiline?OO.ui.MultilineTextInputWidget:OO.ui.TextInputWidget;this.textInput=new TextClass(Object.assign({value:config.copyText,readOnly:true},config.textInput));
this.button=new OO.ui.ButtonWidget(Object.assign({label:OO.ui.msg('ooui-copytextlayout-copy'),icon:'copy'},config.button));OO.ui.CopyTextLayout.super.call(this,this.textInput,this.button,config);if(config.multiline){this.$input.removeClass('oo-ui-actionFieldLayout-input');this.$button.removeClass('oo-ui-actionFieldLayout-button').addClass('oo-ui-copyTextLayout-multiline-button');}this.button.connect(this,{click:'onButtonClick'});this.textInput.$input.on('focus',this.onInputFocus.bind(this));this.$element.addClass('oo-ui-copyTextLayout');};OO.inheritClass(OO.ui.CopyTextLayout,OO.ui.ActionFieldLayout);OO.ui.CopyTextLayout.prototype.onButtonClick=function(){let copied;this.selectText();try{copied=document.execCommand('copy');}catch(e){copied=false;}this.emit('copy',copied);};OO.ui.CopyTextLayout.prototype.onInputFocus=function(){if(!this.selecting){this.selectText();}};OO.ui.CopyTextLayout.prototype.selectText=function(){const input=this.textInput.$input[0],scrollTop=input.scrollTop,
scrollLeft=input.scrollLeft;this.selecting=true;this.textInput.select();this.selecting=false;input.scrollTop=scrollTop;input.scrollLeft=scrollLeft;};OO.ui.ToggleButtonWidget=function OoUiToggleButtonWidget(config){config=config||{};OO.ui.ToggleButtonWidget.super.call(this,config);OO.ui.mixin.ButtonElement.call(this,Object.assign({active:this.active},config));OO.ui.mixin.IconElement.call(this,config);OO.ui.mixin.IndicatorElement.call(this,config);OO.ui.mixin.LabelElement.call(this,config);OO.ui.mixin.FlaggedElement.call(this,config);OO.ui.mixin.TabIndexedElement.call(this,Object.assign({$tabIndexed:this.$button},config));this.connect(this,{click:'onAction'});this.$button.append(this.$icon,this.$label,this.$indicator);this.$element.addClass('oo-ui-toggleButtonWidget').append(this.$button);this.setTitledElement(this.$button);};OO.inheritClass(OO.ui.ToggleButtonWidget,OO.ui.ToggleWidget);OO.mixinClass(OO.ui.ToggleButtonWidget,OO.ui.mixin.ButtonElement);OO.mixinClass(OO.ui.ToggleButtonWidget,OO.ui.mixin.IconElement);
OO.mixinClass(OO.ui.ToggleButtonWidget,OO.ui.mixin.IndicatorElement);OO.mixinClass(OO.ui.ToggleButtonWidget,OO.ui.mixin.LabelElement);OO.mixinClass(OO.ui.ToggleButtonWidget,OO.ui.mixin.FlaggedElement);OO.mixinClass(OO.ui.ToggleButtonWidget,OO.ui.mixin.TabIndexedElement);OO.ui.ToggleButtonWidget.static.tagName='span';OO.ui.ToggleButtonWidget.prototype.onAction=function(){this.setValue(!this.value);};OO.ui.ToggleButtonWidget.prototype.setValue=function(value){value=!!value;if(value!==this.value){if(this.$button){this.$button.attr('aria-pressed',value.toString());}this.setActive(value);}OO.ui.ToggleButtonWidget.super.prototype.setValue.call(this,value);return this;};OO.ui.ToggleButtonWidget.prototype.setButtonElement=function($button){if(this.$button){this.$button.removeAttr('aria-pressed');}OO.ui.mixin.ButtonElement.prototype.setButtonElement.call(this,$button);this.$button.attr('aria-pressed',this.value.toString());};OO.ui.OutlineControlsWidget=function OoUiOutlineControlsWidget(outline,config){
if(OO.isPlainObject(outline)&&config===undefined){config=outline;outline=config.outline;}config=config||{};OO.ui.OutlineControlsWidget.super.call(this,config);OO.ui.mixin.GroupElement.call(this,config);this.outline=outline;this.$movers=$('<div>');this.upButton=new OO.ui.ButtonWidget({framed:false,icon:'upTriangle',title:OO.ui.msg('ooui-outline-control-move-up')});this.downButton=new OO.ui.ButtonWidget({framed:false,icon:'downTriangle',title:OO.ui.msg('ooui-outline-control-move-down')});this.removeButton=new OO.ui.ButtonWidget({framed:false,icon:'trash',title:OO.ui.msg('ooui-outline-control-remove')});this.abilities={move:true,remove:true};outline.connect(this,{select:'onOutlineChange',add:'onOutlineChange',remove:'onOutlineChange'});this.upButton.connect(this,{click:['emit','move',-1]});this.downButton.connect(this,{click:['emit','move',1]});this.removeButton.connect(this,{click:['emit','remove']});this.$element.addClass('oo-ui-outlineControlsWidget');this.$group.addClass('oo-ui-outlineControlsWidget-items');
this.$movers.addClass('oo-ui-outlineControlsWidget-movers').append(this.upButton.$element,this.downButton.$element,this.removeButton.$element);this.$element.append(this.$icon,this.$group,this.$movers);this.setAbilities(config.abilities||{});};OO.inheritClass(OO.ui.OutlineControlsWidget,OO.ui.Widget);OO.mixinClass(OO.ui.OutlineControlsWidget,OO.ui.mixin.GroupElement);OO.ui.OutlineControlsWidget.prototype.setAbilities=function(abilities){for(const ability in this.abilities){if(abilities[ability]!==undefined){this.abilities[ability]=!!abilities[ability];}}this.onOutlineChange();};OO.ui.OutlineControlsWidget.prototype.onOutlineChange=function(){const items=this.outline.getItems(),selectedItem=this.outline.findSelectedItem(),movable=this.abilities.move&&selectedItem&&selectedItem.isMovable(),removable=this.abilities.remove&&selectedItem&&selectedItem.isRemovable();let firstMovable,lastMovable;if(movable){let i=-1;const len=items.length;while(++i<len){if(items[i].isMovable()){firstMovable=items[i];
break;}}i=len;while(i--){if(items[i].isMovable()){lastMovable=items[i];break;}}}this.upButton.setDisabled(!movable||selectedItem===firstMovable);this.downButton.setDisabled(!movable||selectedItem===lastMovable);this.removeButton.setDisabled(!removable);};OO.ui.OutlineOptionWidget=function OoUiOutlineOptionWidget(config){config=config||{};OO.ui.OutlineOptionWidget.super.call(this,config);this.movable=!!config.movable;this.removable=!!config.removable;this.$element.addClass('oo-ui-outlineOptionWidget');this.setLevel(config.level);};OO.inheritClass(OO.ui.OutlineOptionWidget,OO.ui.DecoratedOptionWidget);OO.ui.OutlineOptionWidget.static.highlightable=true;OO.ui.OutlineOptionWidget.static.scrollIntoViewOnSelect=true;OO.ui.OutlineOptionWidget.static.levelClass='oo-ui-outlineOptionWidget-level-';OO.ui.OutlineOptionWidget.static.levels=3;OO.ui.OutlineOptionWidget.prototype.isMovable=function(){return this.movable;};OO.ui.OutlineOptionWidget.prototype.isRemovable=function(){return this.removable;
};OO.ui.OutlineOptionWidget.prototype.getLevel=function(){return this.level;};OO.ui.OutlineOptionWidget.prototype.setMovable=function(movable){this.movable=!!movable;this.updateThemeClasses();return this;};OO.ui.OutlineOptionWidget.prototype.setRemovable=function(removable){this.removable=!!removable;this.updateThemeClasses();return this;};OO.ui.OutlineOptionWidget.prototype.setLevel=function(level){level=level||0;if(this.level===level){return this;}const levels=this.constructor.static.levels,levelClass=this.constructor.static.levelClass;if(this.level!==undefined){this.$element.removeClass(levelClass+this.level);}this.level=level>0?Math.min(level,levels-1):0;this.$element.addClass(levelClass+this.level);this.updateThemeClasses();return this;};OO.ui.OutlineSelectWidget=function OoUiOutlineSelectWidget(config){OO.ui.OutlineSelectWidget.super.call(this,config);OO.ui.mixin.TabIndexedElement.call(this,config);this.attachDocumentKeyDownListenerOnFocus();this.$element.addClass('oo-ui-outlineSelectWidget');
};OO.inheritClass(OO.ui.OutlineSelectWidget,OO.ui.SelectWidget);OO.mixinClass(OO.ui.OutlineSelectWidget,OO.ui.mixin.TabIndexedElement);OO.ui.ButtonOptionWidget=function OoUiButtonOptionWidget(config){config=config||{};OO.ui.ButtonOptionWidget.super.call(this,config);OO.ui.mixin.ButtonElement.call(this,config);OO.ui.mixin.IconElement.call(this,config);OO.ui.mixin.IndicatorElement.call(this,config);this.$element.addClass('oo-ui-buttonOptionWidget');this.$button.append(this.$icon,this.$label,this.$indicator);this.$element.append(this.$button);this.setTitledElement(this.$button);};OO.inheritClass(OO.ui.ButtonOptionWidget,OO.ui.OptionWidget);OO.mixinClass(OO.ui.ButtonOptionWidget,OO.ui.mixin.ButtonElement);OO.mixinClass(OO.ui.ButtonOptionWidget,OO.ui.mixin.IconElement);OO.mixinClass(OO.ui.ButtonOptionWidget,OO.ui.mixin.IndicatorElement);OO.ui.ButtonOptionWidget.static.cancelButtonMouseDownEvents=false;OO.ui.ButtonOptionWidget.static.highlightable=false;OO.ui.ButtonOptionWidget.prototype.setSelected=function(state){
OO.ui.ButtonOptionWidget.super.prototype.setSelected.call(this,state);if(this.constructor.static.selectable){this.setActive(state);}return this;};OO.ui.ButtonSelectWidget=function OoUiButtonSelectWidget(config){OO.ui.ButtonSelectWidget.super.call(this,config);OO.ui.mixin.TabIndexedElement.call(this,config);this.attachDocumentKeyDownListenerOnFocus();this.$element.addClass('oo-ui-buttonSelectWidget');};OO.inheritClass(OO.ui.ButtonSelectWidget,OO.ui.SelectWidget);OO.mixinClass(OO.ui.ButtonSelectWidget,OO.ui.mixin.TabIndexedElement);OO.ui.TabOptionWidget=function OoUiTabOptionWidget(config){config=config||{};if(config.href){config=Object.assign({$label:$('<a>').attr('href',config.href)},config);}OO.ui.TabOptionWidget.super.call(this,config);this.$element.addClass('oo-ui-tabOptionWidget').attr('role','tab');};OO.inheritClass(OO.ui.TabOptionWidget,OO.ui.OptionWidget);OO.ui.TabOptionWidget.static.highlightable=false;OO.ui.TabOptionWidget.static.scrollIntoViewOnSelect=true;OO.ui.TabOptionWidget.prototype.scrollElementIntoView=function(config){
if(!OO.ui.isMobile()||!this.getElementGroup()){return OO.ui.TabOptionWidget.super.prototype.scrollElementIntoView.call(this);}else{const padding=Math.max((this.getElementGroup().$element[0].clientWidth-this.$element[0].clientWidth)/2,0);return OO.ui.TabOptionWidget.super.prototype.scrollElementIntoView.call(this,Object.assign({padding:{left:padding,right:padding}},config));}};OO.ui.TabSelectWidget=function OoUiTabSelectWidget(config){OO.ui.TabSelectWidget.super.call(this,config);OO.ui.mixin.TabIndexedElement.call(this,config);this.attachDocumentKeyDownListenerOnFocus();this.$element.addClass('oo-ui-tabSelectWidget').attr('role','tablist');this.toggleFramed(config.framed===undefined||config.framed);if(OO.ui.isMobile()){this.$element.addClass('oo-ui-tabSelectWidget-mobile');}};OO.inheritClass(OO.ui.TabSelectWidget,OO.ui.SelectWidget);OO.mixinClass(OO.ui.TabSelectWidget,OO.ui.mixin.TabIndexedElement);OO.ui.TabSelectWidget.prototype.isFramed=function(){return this.framed;};OO.ui.TabSelectWidget.prototype.toggleFramed=function(framed){
framed=framed===undefined?!this.framed:!!framed;if(framed!==this.framed){this.framed=framed;this.$element.toggleClass('oo-ui-tabSelectWidget-frameless',!framed).toggleClass('oo-ui-tabSelectWidget-framed',framed);}return this;};OO.ui.ButtonMenuSelectWidget=function OoUiButtonMenuSelectWidget(config){config=config||{};OO.ui.ButtonMenuSelectWidget.super.call(this,config);this.$overlay=(config.$overlay===true?OO.ui.getDefaultOverlay():config.$overlay)||this.$element;const MenuClass=config.menuClass||OO.ui.MenuSelectWidget;this.clearOnSelect=config.clearOnSelect!==false;this.menu=new MenuClass(Object.assign({widget:this,$floatableContainer:this.$element,spacing:4},config.menu));this.connect(this,{click:'onButtonMenuClick'});this.getMenu().connect(this,{select:'onMenuSelect',toggle:'onMenuToggle'});this.$button.attr({'aria-expanded':'false','aria-haspopup':'true','aria-owns':this.menu.getElementId()});this.$element.addClass('oo-ui-buttonMenuSelectWidget');this.$overlay.append(this.menu.$element);
};OO.inheritClass(OO.ui.ButtonMenuSelectWidget,OO.ui.ButtonWidget);OO.ui.ButtonMenuSelectWidget.prototype.getMenu=function(){return this.menu;};OO.ui.ButtonMenuSelectWidget.prototype.onMenuSelect=function(item){if(this.clearOnSelect&&item){this.getMenu().selectItem();}};OO.ui.ButtonMenuSelectWidget.prototype.onMenuToggle=function(isVisible){this.$element.toggleClass('oo-ui-buttonElement-pressed',isVisible);};OO.ui.ButtonMenuSelectWidget.prototype.onButtonMenuClick=function(){this.menu.toggle();};OO.ui.TagItemWidget=function OoUiTagItemWidget(config){config=config||{};OO.ui.TagItemWidget.super.call(this,config);OO.ui.mixin.ItemWidget.call(this);OO.ui.mixin.LabelElement.call(this,config);OO.ui.mixin.FlaggedElement.call(this,config);OO.ui.mixin.TabIndexedElement.call(this,config);OO.ui.mixin.DraggableElement.call(this,config);this.valid=config.valid===undefined?true:!!config.valid;this.fixed=!!config.fixed;this.closeButton=new OO.ui.ButtonWidget({framed:false,icon:'close',tabIndex:-1,
title:OO.ui.msg('ooui-item-remove')});this.closeButton.setDisabled(this.isDisabled());this.closeButton.connect(this,{click:'remove'});this.$element.on('click',this.select.bind(this)).on('keydown',this.onKeyDown.bind(this)).on('mousedown',(e)=>{e.stopPropagation();});this.$element.addClass('oo-ui-tagItemWidget').append(this.$label,this.closeButton.$element);};OO.inheritClass(OO.ui.TagItemWidget,OO.ui.Widget);OO.mixinClass(OO.ui.TagItemWidget,OO.ui.mixin.ItemWidget);OO.mixinClass(OO.ui.TagItemWidget,OO.ui.mixin.LabelElement);OO.mixinClass(OO.ui.TagItemWidget,OO.ui.mixin.FlaggedElement);OO.mixinClass(OO.ui.TagItemWidget,OO.ui.mixin.TabIndexedElement);OO.mixinClass(OO.ui.TagItemWidget,OO.ui.mixin.DraggableElement);OO.ui.TagItemWidget.prototype.setFixed=function(state){state=state===undefined?!this.fixed:!!state;if(this.fixed!==state){this.fixed=state;if(this.closeButton){this.closeButton.toggle(!this.fixed);}if(!this.fixed&&this.elementGroup&&!this.elementGroup.isDraggable()){this.toggleDraggable(!this.fixed);
}this.$element.toggleClass('oo-ui-tagItemWidget-fixed',this.fixed);this.emit('fixed',this.isFixed());}return this;};OO.ui.TagItemWidget.prototype.isFixed=function(){return this.fixed;};OO.ui.TagItemWidget.prototype.remove=function(){if(!this.isDisabled()&&!this.isFixed()){this.emit('remove');}};OO.ui.TagItemWidget.prototype.onKeyDown=function(e){if(!this.isDisabled()&&!this.isFixed()&&(e.keyCode===OO.ui.Keys.BACKSPACE||e.keyCode===OO.ui.Keys.DELETE)){this.remove();return false;}else if(e.keyCode===OO.ui.Keys.ENTER){this.select();return false;}else if(e.keyCode===OO.ui.Keys.LEFT||e.keyCode===OO.ui.Keys.RIGHT){let movement;if(OO.ui.Element.static.getDir(this.$element)==='rtl'){movement={left:'forwards',right:'backwards'};}else{movement={left:'backwards',right:'forwards'};}this.emit('navigate',e.keyCode===OO.ui.Keys.LEFT?movement.left:movement.right);return false;}};OO.ui.TagItemWidget.prototype.select=function(){if(!this.isDisabled()){this.emit('select');}};OO.ui.TagItemWidget.prototype.toggleValid=function(valid){
valid=valid===undefined?!this.valid:!!valid;if(this.valid!==valid){this.valid=valid;this.setFlags({invalid:!this.valid});this.emit('valid',this.valid);}};OO.ui.TagItemWidget.prototype.isValid=function(){return this.valid;};OO.ui.TagMultiselectWidget=function OoUiTagMultiselectWidget(config){const rAF=window.requestAnimationFrame||setTimeout,$tabFocus=$('<span>').addClass('oo-ui-tagMultiselectWidget-focusTrap');config=config||{};OO.ui.TagMultiselectWidget.super.call(this,config);OO.ui.mixin.GroupWidget.call(this,config);OO.ui.mixin.IndicatorElement.call(this,config);OO.ui.mixin.IconElement.call(this,config);OO.ui.mixin.TabIndexedElement.call(this,config);OO.ui.mixin.FlaggedElement.call(this,config);OO.ui.mixin.DraggableGroupElement.call(this,config);OO.ui.mixin.TitledElement.call(this,config);this.inputPosition=this.constructor.static.allowedInputPositions.includes(config.inputPosition)?config.inputPosition:'inline';this.allowEditTags=config.allowEditTags===undefined?true:!!config.allowEditTags;
this.allowArbitrary=!!config.allowArbitrary;this.allowDuplicates=!!config.allowDuplicates;this.allowedValues=config.allowedValues||[];this.allowDisplayInvalidTags=config.allowDisplayInvalidTags;this.hasInput=this.inputPosition!=='none';this.tagLimit=config.tagLimit;this.allowReordering=config.allowReordering===undefined?true:!!config.allowReordering;this.height=null;this.valid=true;this.toggleDraggable(this.allowReordering);this.$content=$('<div>').addClass('oo-ui-tagMultiselectWidget-content');this.$handle=$('<div>').addClass('oo-ui-tagMultiselectWidget-handle').append(this.$indicator,this.$icon,this.$content.append(this.$group.addClass('oo-ui-tagMultiselectWidget-group')));this.aggregate({remove:'itemRemove',navigate:'itemNavigate',select:'itemSelect',fixed:'itemFixed'});this.connect(this,{itemRemove:'onTagRemove',itemSelect:'onTagSelect',itemFixed:'onTagFixed',itemNavigate:'onTagNavigate',change:'onChangeTags'});this.$handle.on({mousedown:this.onMouseDown.bind(this)});this.$element.addClass('oo-ui-tagMultiselectWidget')
.append(this.$handle);if(this.hasInput){if(config.inputWidget){this.input=config.inputWidget;}else{this.input=new OO.ui.TextInputWidget(Object.assign({placeholder:config.placeholder,classes:['oo-ui-tagMultiselectWidget-input']},config.input));}this.input.setDisabled(this.isDisabled());const inputEvents={focus:this.onInputFocus.bind(this),blur:this.onInputBlur.bind(this),'propertychange change click mouseup keydown keyup input cut paste select focus':OO.ui.debounce(this.updateInputSize.bind(this)),keydown:this.onInputKeyDown.bind(this),keypress:this.onInputKeyPress.bind(this)};this.input.$input.on(inputEvents);this.inputPlaceholder=this.input.$input.attr('placeholder');if(this.inputPosition==='outline'){this.input.$element.css('max-width','inherit');this.$element.addClass('oo-ui-tagMultiselectWidget-outlined').append(this.input.$element);}else{this.$element.addClass('oo-ui-tagMultiselectWidget-inlined');this.$group.append(this.input.$input);}}else{this.$content.append($tabFocus);}this.setTabIndexedElement(
this.hasInput?this.input.$input:$tabFocus);if(config.selected){this.setValue(config.selected);}rAF(()=>{if(this.hasInput){this.updateInputSize();}});};OO.inheritClass(OO.ui.TagMultiselectWidget,OO.ui.Widget);OO.mixinClass(OO.ui.TagMultiselectWidget,OO.ui.mixin.GroupWidget);OO.mixinClass(OO.ui.TagMultiselectWidget,OO.ui.mixin.DraggableGroupElement);OO.mixinClass(OO.ui.TagMultiselectWidget,OO.ui.mixin.IndicatorElement);OO.mixinClass(OO.ui.TagMultiselectWidget,OO.ui.mixin.IconElement);OO.mixinClass(OO.ui.TagMultiselectWidget,OO.ui.mixin.TabIndexedElement);OO.mixinClass(OO.ui.TagMultiselectWidget,OO.ui.mixin.FlaggedElement);OO.mixinClass(OO.ui.TagMultiselectWidget,OO.ui.mixin.TitledElement);OO.ui.TagMultiselectWidget.static.allowedInputPositions=['inline','outline','none'];OO.ui.TagMultiselectWidget.prototype.onMouseDown=function(e){if(!this.isDisabled()&&(!this.hasInput||e.target!==this.input.$input[0])&&e.which===OO.ui.MouseButtons.LEFT){this.focus();return false;}};OO.ui.TagMultiselectWidget.prototype.onInputKeyPress=function(e){
const withMetaKey=e.metaKey||e.ctrlKey;if(!this.isDisabled()){let stopOrContinue;if(e.which===OO.ui.Keys.ENTER){stopOrContinue=this.doInputEnter(e,withMetaKey);}this.updateInputSize();return stopOrContinue;}};OO.ui.TagMultiselectWidget.prototype.onInputKeyDown=function(e){const withMetaKey=e.metaKey||e.ctrlKey;const isMovementInsideInput=(dir)=>{const inputRange=this.input.getRange(),inputValue=this.hasInput&&this.input.getValue();if(dir==='forwards'&&inputRange.to>inputValue.length-1){return false;}if(dir==='backwards'&&inputRange.from<=0){return false;}return true;};if(!this.isDisabled()){if(e.keyCode===OO.ui.Keys.BACKSPACE){return this.doInputBackspace(e,withMetaKey);}else if(e.keyCode===OO.ui.Keys.ESCAPE){return this.doInputEscape(e);}else if(e.keyCode===OO.ui.Keys.LEFT||e.keyCode===OO.ui.Keys.RIGHT){let movement;if(OO.ui.Element.static.getDir(this.$element)==='rtl'){movement={left:'forwards',right:'backwards'};}else{movement={left:'backwards',right:'forwards'};}const direction=e.keyCode===OO.ui.Keys.LEFT?
movement.left:movement.right;if(!this.hasInput||!isMovementInsideInput(direction)){return this.doInputArrow(e,direction,withMetaKey);}}}};OO.ui.TagMultiselectWidget.prototype.onInputFocus=function(){this.$element.addClass('oo-ui-tagMultiselectWidget-focus');this.toggleValid(true);};OO.ui.TagMultiselectWidget.prototype.onInputBlur=function(){if(this.changing){return;}this.$element.removeClass('oo-ui-tagMultiselectWidget-focus');this.addTagFromInput();this.toggleValid(this.checkValidity()&&(!this.hasInput||!this.input.getValue()));};OO.ui.TagMultiselectWidget.prototype.doInputEnter=function(){this.addTagFromInput();return false;};OO.ui.TagMultiselectWidget.prototype.doInputBackspace=function(e,withMetaKey){if(this.inputPosition==='inline'&&this.input.getValue()===''&&!this.isEmpty()){const items=this.getItems();const item=items[items.length-1];if(!item.isDisabled()&&!item.isFixed()){this.removeItems([item]);if(!withMetaKey){let itemLabel;if(typeof item.getLabel()==='string'){itemLabel=item.getLabel();
}else if(item.getLabel()instanceof $){itemLabel=item.getLabel().text();}this.input.setValue(itemLabel);}}return false;}};OO.ui.TagMultiselectWidget.prototype.doInputEscape=function(){this.clearInput();};OO.ui.TagMultiselectWidget.prototype.doInputArrow=function(e,direction){if(this.inputPosition==='inline'&&!this.isEmpty()&&direction==='backwards'){this.getPreviousItem().focus();}};OO.ui.TagMultiselectWidget.prototype.onTagSelect=function(item){if(this.hasInput&&this.allowEditTags&&!item.isFixed()){if(this.input.getValue()){this.addTagFromInput();}this.input.setValue(item.getLabel());this.removeItems([item]);this.focus();}};OO.ui.TagMultiselectWidget.prototype.onTagFixed=function(item){const items=this.getItems();let i;for(i=0;i<items.length;i++){if(items[i]!==item&&!items[i].isFixed()){break;}}this.addItems([item],i);};OO.ui.TagMultiselectWidget.prototype.onChangeTags=function(){const isUnderLimit=this.isUnderLimit();this.changing=true;this.toggleValid(this.checkValidity());if(this.hasInput){
this.updateInputSize();if(!isUnderLimit){this.input.setValue('');}if(this.inputPosition==='outline'){this.input.$input.attr('placeholder',isUnderLimit?this.inputPlaceholder:'');this.input.setDisabled(this.isDisabled()||!isUnderLimit);}else{const hadFocus=document.activeElement===this.input.$input[0];this.$group.append(this.input.$input);this.input.$input.toggleClass('oo-ui-element-hidden',!isUnderLimit);if(hadFocus&&isUnderLimit){this.input.focus();}}}this.updateIfHeightChanged();this.changing=false;};OO.ui.TagMultiselectWidget.prototype.setDisabled=function(isDisabled){OO.ui.TagMultiselectWidget.super.prototype.setDisabled.call(this,isDisabled);if(this.hasInput&&this.input){if(!isDisabled){this.updateInputSize();}this.input.setDisabled(!!isDisabled||!this.isUnderLimit());}if(this.items){this.getItems().forEach((item)=>{item.setDisabled(!!isDisabled);});}};OO.ui.TagMultiselectWidget.prototype.onTagRemove=function(item){this.removeTagByData(item.getData());};OO.ui.TagMultiselectWidget.prototype.onTagNavigate=function(item,direction){
const firstItem=this.getItems()[0];if(direction==='forwards'){this.getNextItem(item).focus();}else if(!this.inputPosition==='inline'||item!==firstItem){this.getPreviousItem(item).focus();}};OO.ui.TagMultiselectWidget.prototype.getTagInfoFromInput=function(){const val=this.input.getValue();return{data:val,label:val};};OO.ui.TagMultiselectWidget.prototype.addTagFromInput=function(){const tagInfo=this.getTagInfoFromInput();if(!tagInfo.data){return;}if(this.addTag(tagInfo.data,tagInfo.label)){this.clearInput();}};OO.ui.TagMultiselectWidget.prototype.clearInput=function(){this.input.setValue('');};OO.ui.TagMultiselectWidget.prototype.isDuplicateData=function(data){return!!this.findItemFromData(data);};OO.ui.TagMultiselectWidget.prototype.isAllowedData=function(data){if(!this.allowDuplicates&&this.isDuplicateData(data)){return false;}if(this.allowArbitrary){return true;}if(this.getAllowedValues().includes(data)){return true;}return false;};OO.ui.TagMultiselectWidget.prototype.getAllowedValues=function(){
return this.allowedValues;};OO.ui.TagMultiselectWidget.prototype.addAllowedValue=function(value){if(!this.allowedValues.includes(value)){this.allowedValues.push(value);}};OO.ui.TagMultiselectWidget.prototype.getValue=function(){return this.getItems().filter((item)=>item.isValid()).map((item)=>item.getData());};OO.ui.TagMultiselectWidget.prototype.setValue=function(valueObject){valueObject=Array.isArray(valueObject)?valueObject:[valueObject];this.clearItems();valueObject.forEach((obj)=>{if(typeof obj==='object'){this.addTag(obj.data,obj.label);}else{this.addTag(String(obj));}});};OO.ui.TagMultiselectWidget.prototype.addTag=function(data,label){const isValid=this.isAllowedData(data);if(this.isUnderLimit()&&(isValid||this.allowDisplayInvalidTags)){const newItemWidget=this.createTagItemWidget(data,label);newItemWidget.toggleValid(isValid);newItemWidget.toggleDraggable(this.allowReordering);let insertIndex=this.getItems().length;if(!this.allowReordering){const allowedIndex=this.getAllowedValues().indexOf(data);
if(allowedIndex!==-1){insertIndex=0;for(const[itemIndex,item]of this.getItems().entries()){const itemAllowedIndex=this.getAllowedValues().indexOf(item.getData());if(itemAllowedIndex!==-1&&itemAllowedIndex<=allowedIndex){insertIndex=itemIndex+1;}else{break;}}}}this.addItems([newItemWidget],insertIndex);return true;}return false;};OO.ui.TagMultiselectWidget.prototype.isUnderLimit=function(){return!this.tagLimit||this.getItemCount()<this.tagLimit;};OO.ui.TagMultiselectWidget.prototype.removeTagByData=function(data){const item=this.findItemFromData(data);this.removeItems([item]);};OO.ui.TagMultiselectWidget.prototype.createTagItemWidget=function(data,label){return new OO.ui.TagItemWidget({data:data,label:label||data});};OO.ui.TagMultiselectWidget.prototype.getNextItem=function(item){const itemIndex=this.items.indexOf(item);if(item===undefined||itemIndex===-1){return this.items[0];}if(itemIndex===this.items.length-1){if(this.hasInput){return this.input;}else{return this.items[0];}}else{
return this.items[itemIndex+1];}};OO.ui.TagMultiselectWidget.prototype.getPreviousItem=function(item){const itemIndex=this.items.indexOf(item);if(item===undefined||itemIndex===-1){return this.items[this.items.length-1];}if(itemIndex===0){if(this.hasInput){return this.input;}else{return this.items[this.items.length-1];}}else{return this.items[itemIndex-1];}};OO.ui.TagMultiselectWidget.prototype.updateInputSize=function(){if(this.inputPosition==='inline'&&!this.isDisabled()){if(this.input.$input[0].scrollWidth===0){return;}this.input.$input.css('width','1em');const $lastItem=this.$group.children().last();const direction=OO.ui.Element.static.getDir(this.$handle);const placeholder=this.input.$input.attr('placeholder');if(this.contentWidthWithPlaceholder===undefined&&this.input.getValue()===''&&placeholder!==undefined){this.input.$input.val(placeholder);this.contentWidthWithPlaceholder=this.input.$input[0].scrollWidth;this.input.$input.val('');}const contentWidth=Math.max(this.input.$input[0].scrollWidth,
(this.contentWidthWithPlaceholder===undefined)?0:this.contentWidthWithPlaceholder);const currentWidth=this.input.$input.width();if(contentWidth<currentWidth){this.updateIfHeightChanged();return;}let bestWidth;if($lastItem.length===0){bestWidth=this.$content.innerWidth();}else{bestWidth=direction==='ltr'?this.$content.innerWidth()-$lastItem.position().left-$lastItem.outerWidth():$lastItem.position().left;}bestWidth-=13;if(contentWidth>bestWidth){bestWidth=this.$content.innerWidth()-13;}this.input.$input.width(Math.floor(bestWidth));this.updateIfHeightChanged();}else{this.updateIfHeightChanged();}};OO.ui.TagMultiselectWidget.prototype.updateIfHeightChanged=function(){const height=this.$element.height();if(height!==this.height){this.height=height;this.emit('resize');}};OO.ui.TagMultiselectWidget.prototype.checkValidity=function(){return this.getItems().every((item)=>item.isValid());};OO.ui.TagMultiselectWidget.prototype.toggleValid=function(valid){valid=valid===undefined?!this.valid:!!valid;
if(this.valid!==valid){this.valid=valid;this.setFlags({invalid:!this.valid});this.emit('valid',this.valid);}};OO.ui.TagMultiselectWidget.prototype.isValid=function(){return this.valid;};OO.ui.PopupTagMultiselectWidget=function OoUiPopupTagMultiselectWidget(config){const defaultConfig={popup:{}};config=config||{};OO.ui.PopupTagMultiselectWidget.super.call(this,Object.assign({inputPosition:'none'},config));this.$overlay=(config.$overlay===true?OO.ui.getDefaultOverlay():config.$overlay)||this.$element;if(!config.popup){const defaultInput=new OO.ui.TextInputWidget();defaultConfig.popupInput=defaultInput;defaultConfig.popup.$content=defaultInput.$element;defaultConfig.popup.padded=true;this.$element.addClass('oo-ui-popupTagMultiselectWidget-defaultPopup');}defaultConfig.popup.$overlay=this.$overlay;defaultConfig.popup.$autoCloseIgnore=this.hasInput?this.input.$element.add(this.$overlay):this.$overlay;config=Object.assign(defaultConfig,config);OO.ui.mixin.PopupElement.call(this,config);if(this.hasInput){
this.input.$input.on('focus',this.popup.toggle.bind(this.popup,true));}this.popupInput=config.popupInput;if(this.popupInput){this.popupInput.connect(this,{enter:'onPopupInputEnter'});}this.on('resize',this.popup.updateDimensions.bind(this.popup));this.popup.connect(this,{toggle:'onPopupToggle'});this.$tabIndexed.on('focus',this.onFocus.bind(this));this.$element.append(this.popup.$element).addClass('oo-ui-popupTagMultiselectWidget');OO.ui.warnDeprecation('PopupTagMultiselectWidget: Deprecated widget. Use MenuTagMultiselectWidget instead. See T208821.');};OO.inheritClass(OO.ui.PopupTagMultiselectWidget,OO.ui.TagMultiselectWidget);OO.mixinClass(OO.ui.PopupTagMultiselectWidget,OO.ui.mixin.PopupElement);OO.ui.PopupTagMultiselectWidget.prototype.onFocus=function(){this.popup.toggle(true);};OO.ui.PopupTagMultiselectWidget.prototype.onPopupToggle=function(isVisible){if(isVisible&&this.popupInput){this.popupInput.focus();}};OO.ui.PopupTagMultiselectWidget.prototype.onPopupInputEnter=function(){
if(this.popupInput){this.addTagByPopupValue(this.popupInput.getValue());this.popupInput.setValue('');}};OO.ui.PopupTagMultiselectWidget.prototype.onTagSelect=function(item){if(this.popupInput&&this.allowEditTags){this.popupInput.setValue(item.getData());this.removeItems([item]);this.popup.toggle(true);this.popupInput.focus();}else{OO.ui.PopupTagMultiselectWidget.super.prototype.onTagSelect.call(this,item);}};OO.ui.PopupTagMultiselectWidget.prototype.addTagByPopupValue=function(data,label){this.addTag(data,label);};OO.ui.MenuTagMultiselectWidget=function OoUiMenuTagMultiselectWidget(config){let $autoCloseIgnore=$([]);config=config||{};let options=config.options||[];const selected=config.selected||[];options=options.concat(selected.map((option)=>{if(typeof option==='string'){return{data:option,label:option};}return option;}));const configCopy=OO.copy(config);configCopy.options=options;configCopy.selected=selected;OO.ui.MenuTagMultiselectWidget.super.call(this,configCopy);$autoCloseIgnore=$autoCloseIgnore.add(this.$group);
if(this.hasInput){$autoCloseIgnore=$autoCloseIgnore.add(this.input.$element);}this.$overlay=(config.$overlay===true?OO.ui.getDefaultOverlay():config.$overlay)||this.$element;this.clearInputOnChoose=config.clearInputOnChoose===undefined||!!config.clearInputOnChoose;this.menu=this.createMenuWidget(Object.assign({widget:this,hideOnChoose:false,input:this.hasInput?this.input:null,$input:this.hasInput?this.input.$input:null,filterFromInput:!!this.hasInput,highlightOnFilter:!this.allowArbitrary,multiselect:true,$autoCloseIgnore:$autoCloseIgnore,$floatableContainer:this.hasInput&&this.inputPosition==='outline'?this.input.$element:this.$element,$overlay:this.$overlay,disabled:this.isDisabled()},config.menu));this.addOptions(options);this.menu.connect(this,{choose:'onMenuChoose',toggle:'onMenuToggle'});if(this.hasInput){this.input.connect(this,{change:'onInputChange'});}this.connect(this,{resize:'onResize'});this.$overlay.append(this.menu.$element);this.$element.addClass('oo-ui-menuTagMultiselectWidget');
this.menu.$focusOwner.removeAttr('aria-expanded');if(selected.length>0){this.setValue(selected);}};OO.inheritClass(OO.ui.MenuTagMultiselectWidget,OO.ui.TagMultiselectWidget);OO.ui.MenuTagMultiselectWidget.prototype.onResize=function(){this.menu.position();};OO.ui.MenuTagMultiselectWidget.prototype.onInputFocus=function(){const valid=this.isValid();OO.ui.MenuTagMultiselectWidget.super.prototype.onInputFocus.call(this);if(this.isUnderLimit()){this.menu.toggle(true);if(!valid){this.menu.highlightItem();}}};OO.ui.MenuTagMultiselectWidget.prototype.onInputChange=function(){this.menu.toggle(true);};OO.ui.MenuTagMultiselectWidget.prototype.onMenuChoose=function(menuItem,selected){if(selected&&!this.findItemFromData(menuItem.getData())){this.addTag(menuItem.getData(),menuItem.getLabel());}else{this.removeTagByData(menuItem.getData());}if(this.hasInput&&this.clearInputOnChoose){this.input.setValue('');}};OO.ui.MenuTagMultiselectWidget.prototype.onMenuToggle=function(isVisible){if(!isVisible){
this.menu.highlightItem(null);this.menu.scrollToTop();}setTimeout(()=>{this.menu.$focusOwner.removeAttr('aria-expanded');});};OO.ui.MenuTagMultiselectWidget.prototype.onTagSelect=function(tagItem){const menuItem=this.menu.findItemFromData(tagItem.getData());if(!this.allowArbitrary){if(this.hasInput&&this.menu.filterFromInput){this.input.setValue('');}this.focus();this.menu.highlightItem(menuItem);this.menu.scrollItemIntoView(menuItem);}else{OO.ui.MenuTagMultiselectWidget.super.prototype.onTagSelect.call(this,tagItem);}};OO.ui.MenuTagMultiselectWidget.prototype.removeItems=function(items){OO.ui.MenuTagMultiselectWidget.super.prototype.removeItems.call(this,items);items.forEach((tagItem)=>{const menuItem=this.menu.findItemFromData(tagItem.getData());if(menuItem){this.menu.unselectItem(menuItem);}});};OO.ui.MenuTagMultiselectWidget.prototype.setValue=function(valueObject){valueObject=Array.isArray(valueObject)?valueObject:[valueObject];if(!this.menu){return;}this.clearItems();valueObject.forEach((obj)=>{
let data,label;if(typeof obj==='string'){data=label=obj;}else{data=obj.data;label=obj.label;}const menuItem=this.menu.getItemFromLabel(label)||this.menu.findItemFromData(data);if(menuItem){this.addTag(menuItem.getData(),menuItem.getLabel());this.menu.selectItem(menuItem);}else if(this.allowArbitrary){this.addTag(data,label);}});};OO.ui.MenuTagMultiselectWidget.prototype.onChangeTags=function(){OO.ui.MenuTagMultiselectWidget.super.prototype.onChangeTags.call(this);if(this.menu&&!this.isUnderLimit()){this.menu.toggle(false);}};OO.ui.MenuTagMultiselectWidget.prototype.setDisabled=function(isDisabled){OO.ui.MenuTagMultiselectWidget.super.prototype.setDisabled.call(this,isDisabled);if(this.menu){this.menu.setDisabled(isDisabled);}};OO.ui.MenuTagMultiselectWidget.prototype.initializeMenuSelection=function(){this.menu.highlightItem(this.allowArbitrary?null:this.menu.findFirstSelectableItem());const highlightedItem=this.menu.findHighlightedItem();if(highlightedItem){this.menu.scrollItemIntoView(highlightedItem);
}};OO.ui.MenuTagMultiselectWidget.prototype.getTagInfoFromInput=function(){const val=this.input.getValue(),item=this.menu.findHighlightedItem()||this.menu.findItemFromData(val),data=item?item.getData():val,label=item?item.getLabel():val;return{data:data,label:label};};OO.ui.MenuTagMultiselectWidget.prototype.createMenuWidget=function(menuConfig){return new OO.ui.MenuSelectWidget(menuConfig);};OO.ui.MenuTagMultiselectWidget.prototype.addOptions=function(menuOptions){const optionsData=[],items=[];menuOptions.forEach((obj)=>{if(!optionsData.includes(obj.data)){optionsData.push(obj.data);items.push(this.createMenuOptionWidget(obj.data,obj.label,obj.icon));}});this.menu.addItems(items);};OO.ui.MenuTagMultiselectWidget.prototype.createMenuOptionWidget=function(data,label,icon){return new OO.ui.MenuOptionWidget({data:data,label:label||data,icon:icon});};OO.ui.MenuTagMultiselectWidget.prototype.getMenu=function(){return this.menu;};OO.ui.MenuTagMultiselectWidget.prototype.getAllowedValues=function(){
let menuDatas=[];if(this.menu){menuDatas=this.menu.getItems().map((menuItem)=>menuItem.getData());}return this.allowedValues.concat(menuDatas);};OO.ui.SearchWidget=function OoUiSearchWidget(config){config=config||{};OO.ui.SearchWidget.super.call(this,config);this.query=config.input||new OO.ui.SearchInputWidget({placeholder:config.placeholder,value:config.value});this.results=new OO.ui.SelectWidget();this.results.setFocusOwner(this.query.$input);this.$query=$('<div>');this.$results=$('<div>');this.query.connect(this,{change:'onQueryChange',enter:'onQueryEnter'});this.query.$input.on('keydown',this.onQueryKeydown.bind(this));this.$query.addClass('oo-ui-searchWidget-query').append(this.query.$element);this.$results.addClass('oo-ui-searchWidget-results').append(this.results.$element);this.$element.addClass('oo-ui-searchWidget').append(this.$results,this.$query);};OO.inheritClass(OO.ui.SearchWidget,OO.ui.Widget);OO.ui.SearchWidget.prototype.onQueryKeydown=function(e){const dir=e.which===OO.ui.Keys.DOWN?1:(e.which===OO.ui.Keys.UP?-1:0);
if(dir){const highlightedItem=this.results.findHighlightedItem()||this.results.findSelectedItem();const nextItem=this.results.findRelativeSelectableItem(highlightedItem,dir);this.results.highlightItem(nextItem);if(nextItem){nextItem.scrollElementIntoView();}e.preventDefault();}};OO.ui.SearchWidget.prototype.onQueryChange=function(){this.results.clearItems();};OO.ui.SearchWidget.prototype.onQueryEnter=function(){const highlightedItem=this.results.findHighlightedItem();if(highlightedItem){this.results.chooseItem(highlightedItem);}};OO.ui.SearchWidget.prototype.getQuery=function(){return this.query;};OO.ui.SearchWidget.prototype.getResults=function(){return this.results;};}(OO));
},{"css":[".oo-ui-draggableElement-handle:not(.oo-ui-draggableElement-undraggable),.oo-ui-draggableElement-handle:not(.oo-ui-draggableElement-undraggable).oo-ui-widget{cursor:move; cursor:grab; }.oo-ui-draggableElement-handle:not(.oo-ui-draggableElement-undraggable):active{ cursor:grabbing; }.oo-ui-draggableElement-handle.oo-ui-widget-disabled,.oo-ui-widget-disabled .oo-ui-draggableElement-handle{cursor:default}.oo-ui-draggableElement-placeholder{opacity:0.2}.oo-ui-draggableGroupElement-horizontal .oo-ui-draggableElement{display:inline-block}   .oo-ui-bookletLayout-stackLayout.oo-ui-stackLayout-continuous \u003E .oo-ui-panelLayout-scrollable{overflow:hidden}.oo-ui-bookletLayout-stackLayout \u003E .oo-ui-panelLayout{width:100%;box-sizing:border-box}.oo-ui-bookletLayout-outlinePanel-editable \u003E .oo-ui-outlineSelectWidget{height:auto;position:absolute;top:0;left:0;right:0;bottom:2.5em;overflow:auto;-webkit-overflow-scrolling:touch}.oo-ui-bookletLayout-outlinePanel \u003E .oo-ui-outlineControlsWidget{position:absolute;bottom:0;left:0;right:0;height:2.5em}.oo-ui-bookletLayout-stackLayout \u003E .oo-ui-panelLayout{padding:20px}.oo-ui-bookletLayout-outlinePanel \u003E .oo-ui-outlineControlsWidget{border-top:1px solid var(--border-color-subtle,#c8ccd1)}.oo-ui-bookletLayout \u003E .oo-ui-menuLayout-menu{border-right:1px solid var(--border-color-subtle,#c8ccd1)} .oo-ui-indexLayout{ }.oo-ui-indexLayout.oo-ui-menuLayout \u003E .oo-ui-menuLayout-menu{height:auto}.oo-ui-indexLayout.oo-ui-menuLayout.oo-ui-menuLayout-expanded \u003E .oo-ui-menuLayout-menu{height:3em;white-space:nowrap}.oo-ui-indexLayout.oo-ui-menuLayout.oo-ui-menuLayout-expanded \u003E .oo-ui-menuLayout-content{top:3em}.oo-ui-indexLayout-stackLayout \u003E .oo-ui-panelLayout[hidden]{ width:0 !important;height:0 !important;padding:0 !important;overflow:hidden !important; }.oo-ui-indexLayout-stackLayout \u003E .oo-ui-panelLayout{padding:20px}.oo-ui-indexLayout.oo-ui-menuLayout.oo-ui-menuLayout-expanded \u003E .oo-ui-menuLayout-menu{height:2.64285714em}.oo-ui-indexLayout.oo-ui-menuLayout.oo-ui-menuLayout-expanded \u003E .oo-ui-menuLayout-content{top:2.64285714em} .oo-ui-copyTextLayout \u003E .oo-ui-fieldLayout-body \u003E .oo-ui-fieldLayout-field{max-width:50em}.oo-ui-copyTextLayout-multiline-button{display:block;max-width:50em;margin-top:0.5em; float:right} .oo-ui-menuLayout{top:0;left:0;right:0;bottom:0}.oo-ui-menuLayout-expanded,.oo-ui-menuLayout-expanded \u003E .oo-ui-menuLayout-menu,.oo-ui-menuLayout-expanded \u003E .oo-ui-menuLayout-content{position:absolute}.oo-ui-menuLayout-expanded \u003E .oo-ui-menuLayout-menu{z-index:1}.oo-ui-menuLayout-static.oo-ui-menuLayout-after,.oo-ui-menuLayout-static.oo-ui-menuLayout-before{display:table;width:100%}.oo-ui-menuLayout-static.oo-ui-menuLayout-after \u003E .oo-ui-menuLayout-menu,.oo-ui-menuLayout-static.oo-ui-menuLayout-before \u003E .oo-ui-menuLayout-menu,.oo-ui-menuLayout-static.oo-ui-menuLayout-after \u003E .oo-ui-menuLayout-content,.oo-ui-menuLayout-static.oo-ui-menuLayout-before \u003E .oo-ui-menuLayout-content{display:table-cell;vertical-align:top}.oo-ui-menuLayout \u003E .oo-ui-menuLayout-menu,.oo-ui-menuLayout \u003E .oo-ui-menuLayout-content{transition-property:height,width,top,left,right,bottom;transition-duration:250ms}.oo-ui-menuLayout \u003E .oo-ui-menuLayout-menu{height:14.28571429em;width:14.28571429em}.oo-ui-menuLayout \u003E .oo-ui-menuLayout-content{top:14.28571429em;left:14.28571429em;right:14.28571429em;bottom:14.28571429em}.oo-ui-menuLayout.oo-ui-menuLayout-hideMenu \u003E .oo-ui-menuLayout-menu{width:0 !important;height:0 !important;overflow:hidden}.oo-ui-menuLayout.oo-ui-menuLayout-hideMenu \u003E .oo-ui-menuLayout-content{top:0 !important;left:0 !important;right:0 !important;bottom:0 !important}.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-top \u003E .oo-ui-menuLayout-menu{width:auto !important;left:0;top:0;right:0}.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-top \u003E .oo-ui-menuLayout-content{right:0 !important;bottom:0 !important;left:0 !important}.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-after \u003E .oo-ui-menuLayout-menu{height:auto !important;top:0;right:0;bottom:0}.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-after \u003E .oo-ui-menuLayout-content{bottom:0 !important;left:0 !important;top:0 !important}.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-bottom \u003E .oo-ui-menuLayout-menu{width:auto !important;right:0;bottom:0;left:0}.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-bottom \u003E .oo-ui-menuLayout-content{left:0 !important;top:0 !important;right:0 !important}.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-before \u003E .oo-ui-menuLayout-menu{height:auto !important;bottom:0;left:0;top:0}.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-before \u003E .oo-ui-menuLayout-content{top:0 !important;right:0 !important;bottom:0 !important}   .oo-ui-stackLayout-continuous \u003E .oo-ui-panelLayout{display:block;position:relative} .oo-ui-buttonSelectWidget{display:inline-block;border-radius:2px;margin-right:8px;z-index:0;position:relative;padding-bottom:1px}.oo-ui-buttonSelectWidget:last-child{margin-right:0}.oo-ui-buttonSelectWidget:focus{outline:0}.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button{margin-right:-1px;margin-bottom:-1px;border-radius:0}.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:first-child .oo-ui-buttonElement-button{border-bottom-left-radius:2px;border-top-left-radius:2px}.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:last-child .oo-ui-buttonElement-button{margin-right:0;border-bottom-right-radius:2px;border-top-right-radius:2px}.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget.oo-ui-widget-disabled + .oo-ui-widget-disabled \u003E .oo-ui-buttonElement-button{border-left-color:var(--border-color-inverted,#fff)}.oo-ui-buttonSelectWidget.oo-ui-widget-enabled:focus .oo-ui-buttonOptionWidget.oo-ui-optionWidget-selected .oo-ui-buttonElement-button{border-color:var(--border-color-progressive--focus,#36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus,#36c),inset 0 0 0 2px var(--box-shadow-color-inverted,#fff);outline:1px solid transparent}.oo-ui-buttonSelectWidget.oo-ui-widget-enabled .oo-ui-buttonElement.oo-ui-widget-enabled \u003E .oo-ui-buttonElement-button:hover,.oo-ui-buttonSelectWidget.oo-ui-widget-enabled .oo-ui-buttonElement.oo-ui-widget-enabled \u003E .oo-ui-buttonElement-button:active{z-index:1}.oo-ui-buttonSelectWidget.oo-ui-widget-enabled .oo-ui-buttonElement.oo-ui-buttonElement-active \u003E .oo-ui-buttonElement-button{z-index:3}.oo-ui-buttonSelectWidget.oo-ui-widget-enabled .oo-ui-buttonElement.oo-ui-widget-disabled \u003E .oo-ui-buttonElement-button{z-index:-1} .oo-ui-buttonOptionWidget{display:inline-block}.oo-ui-buttonOptionWidget.oo-ui-buttonElement-active .oo-ui-buttonElement-button{cursor:default} .oo-ui-toggleButtonWidget{margin-right:8px}.oo-ui-toggleButtonWidget:last-child{margin-right:0}.oo-ui-toggleButtonWidget.oo-ui-widget-enabled.oo-ui-buttonElement-frameless.oo-ui-toggleWidget-on .oo-ui-buttonElement-button{background-color:var(--background-color-button-quiet--active,rgba(0,24,73,0.082));color:var(--color-emphasized,#000)}.oo-ui-toggleButtonWidget.oo-ui-widget-enabled.oo-ui-buttonElement-frameless.oo-ui-toggleWidget-on .oo-ui-buttonElement-button \u003E .oo-ui-iconElement-icon:not(.oo-ui-image-invert){opacity:1} .oo-ui-outlineSelectWidget{height:100%}.oo-ui-outlineSelectWidget:focus{box-shadow:inset 0 0 0 2px var(--box-shadow-color-progressive--focus,#36c)} .oo-ui-outlineOptionWidget{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:11px 12px;transition-property:background-color,color;transition-duration:100ms}.oo-ui-outlineOptionWidget.oo-ui-optionWidget-highlighted{background-color:var(--background-color-interactive,#eaecf0);color:var(--color-emphasized,#000)}.oo-ui-outlineOptionWidget.oo-ui-optionWidget-selected,.oo-ui-outlineOptionWidget.oo-ui-optionWidget-pressed{background-color:var(--background-color-progressive-subtle,#eaf3ff);color:var(--color-progressive,#36c)}.oo-ui-outlineOptionWidget.oo-ui-indicatorElement .oo-ui-labelElement-label{padding-right:1.5em}.oo-ui-outlineOptionWidget-level-1{padding-left:2.571em}.oo-ui-outlineOptionWidget-level-1.oo-ui-iconElement{padding-left:4.429em}.oo-ui-outlineOptionWidget-level-1.oo-ui-iconElement .oo-ui-iconElement-icon{left:2.571em}.oo-ui-outlineOptionWidget-level-2{padding-left:5.142em}.oo-ui-outlineOptionWidget-level-2.oo-ui-iconElement{padding-left:6.857em}.oo-ui-outlineOptionWidget-level-2.oo-ui-iconElement .oo-ui-iconElement-icon{left:4.429em} .oo-ui-outlineControlsWidget{background-color:var(--background-color-base,#fff)}.oo-ui-outlineControlsWidget-items,.oo-ui-outlineControlsWidget-movers{float:left;box-sizing:border-box}.oo-ui-outlineControlsWidget-items{float:left}.oo-ui-outlineControlsWidget-items .oo-ui-buttonWidget{float:left}.oo-ui-outlineControlsWidget-movers{float:right}.oo-ui-outlineControlsWidget-items \u003E .oo-ui-buttonWidget,.oo-ui-outlineControlsWidget-movers \u003E .oo-ui-buttonWidget{height:2.2857143em;width:2.2857143em;margin:0 !important} .oo-ui-tabSelectWidget{text-align:left;overflow:auto hidden;-webkit-overflow-scrolling:auto}.oo-ui-tabSelectWidget-mobile{white-space:nowrap}.oo-ui-tabSelectWidget-framed{background-color:var(--background-color-interactive,#eaecf0)}.oo-ui-tabSelectWidget-frameless{box-shadow:inset 0 -1px 0 0 var(--border-color-base,#a2a9b1)}.oo-ui-tabSelectWidget-mobile::after{content:'';position:absolute;right:0;margin-top:6px;width:18px;height:2.07142859em;pointer-events:none}.oo-ui-tabSelectWidget-mobile.oo-ui-tabSelectWidget-framed::after{background-image:linear-gradient(to right,transparent,var(--background-color-interactive,#eaecf0))}.oo-ui-tabSelectWidget-mobile.oo-ui-tabSelectWidget-frameless::after{background-image:linear-gradient(to right,transparent,var(--background-color-base,#fff))}.oo-ui-tabSelectWidget.oo-ui-widget-enabled:focus{outline:0} .oo-ui-tabOptionWidget{display:inline-block;box-sizing:border-box;vertical-align:bottom;color:var(--color-base,#202122);margin:6px 0 0 6px;padding:0 8px;border-color:transparent;border-style:solid;font-weight:700;line-height:1;transition-property:background-color,color,border-color;transition-duration:100ms}.oo-ui-tabOptionWidget.oo-ui-optionWidget-selected{cursor:default}.oo-ui-tabOptionWidget \u003E .oo-ui-labelElement-label{color:inherit;padding:5px 5px;line-height:1.42857143em;text-decoration:inherit}.oo-ui-tabSelectWidget-mobile .oo-ui-tabOptionWidget:last-child{margin-right:18px}.oo-ui-tabSelectWidget-framed .oo-ui-tabOptionWidget{border-width:1px 1px 0 1px;border-top-left-radius:2px;border-top-right-radius:2px}.oo-ui-tabSelectWidget-framed .oo-ui-tabOptionWidget .oo-ui-labelElement-label{border-bottom:2px solid transparent;padding:5px 5px 3px;transition-property:border-color;transition-duration:100ms}.oo-ui-tabSelectWidget-framed .oo-ui-tabOptionWidget.oo-ui-optionWidget-selected{background-color:var(--background-color-base,#fff);color:var(--color-emphasized,#000)}.oo-ui-tabSelectWidget-framed .oo-ui-tabOptionWidget.oo-ui-optionWidget-selected .oo-ui-labelElement-label{border-bottom-color:var(--background-color-base,#fff)}.oo-ui-tabSelectWidget-framed .oo-ui-tabOptionWidget.oo-ui-widget-enabled:hover{background-color:rgba(255,255,255,0.3);color:var(--color-base,#202122)}.oo-ui-tabSelectWidget-framed .oo-ui-tabOptionWidget.oo-ui-widget-enabled:active{background-color:rgba(255,255,255,0.8);color:var(--color-emphasized,#000)}.oo-ui-tabSelectWidget-framed .oo-ui-tabOptionWidget.oo-ui-widget-enabled.oo-ui-optionWidget-selected:hover{background-color:var(--background-color-base,#fff)}.oo-ui-tabSelectWidget-framed.oo-ui-widget-enabled:focus .oo-ui-tabOptionWidget.oo-ui-optionWidget-selected .oo-ui-labelElement-label{border-bottom-color:var(--border-color-progressive--focus,#36c)}.oo-ui-tabSelectWidget-frameless .oo-ui-tabOptionWidget{margin:6px 6px -1px 0;border-width:1px 0;box-shadow:inset 0 0 0 0 var(--color-progressive,#36c);transition-property:color,box-shadow;transition-duration:100ms}.oo-ui-tabSelectWidget-frameless .oo-ui-tabOptionWidget.oo-ui-optionWidget-selected{color:var(--color-progressive,#36c);box-shadow:inset 0 -2px 0 0 var(--color-progressive,#36c)}.oo-ui-tabSelectWidget-frameless .oo-ui-tabOptionWidget.oo-ui-widget-enabled:not(.oo-ui-optionWidget-selected):hover{color:var(--color-progressive--hover,#4b77d6);box-shadow:inset 0 -2px 0 0 var(--color-progressive--hover,#4b77d6)}.oo-ui-tabSelectWidget-frameless .oo-ui-tabOptionWidget.oo-ui-widget-enabled:not(.oo-ui-optionWidget-selected):active{color:var(--color-progressive--active,#233566);box-shadow:inset 0 -2px 0 0 var(--color-progressive--active,#233566)}.oo-ui-tabSelectWidget-frameless.oo-ui-widget-enabled:focus .oo-ui-tabOptionWidget.oo-ui-optionWidget-selected{border-radius:2px;box-shadow:inset 0 0 0 2px var(--color-progressive,#36c)}  .oo-ui-tagMultiselectWidget{display:inline-block;position:relative;width:100%;max-width:50em;vertical-align:top}.oo-ui-tagMultiselectWidget-handle{width:100%;display:block;position:relative}.oo-ui-tagMultiselectWidget-handle \u003E .oo-ui-iconElement-icon,.oo-ui-tagMultiselectWidget-handle \u003E .oo-ui-indicatorElement-indicator{position:absolute;top:0;height:100%}.oo-ui-tagMultiselectWidget-content{position:relative}.oo-ui-tagMultiselectWidget-group{display:inline}.oo-ui-tagMultiselectWidget-outlined{width:100%}.oo-ui-tagMultiselectWidget.oo-ui-widget-disabled .oo-ui-tagMultiselectWidget-group \u003E input{display:none}.oo-ui-tagMultiselectWidget-focusTrap{display:inline-block;height:1px;width:1px}.oo-ui-tagMultiselectWidget-focusTrap:focus{outline:0}.oo-ui-tagMultiselectWidget-handle{box-sizing:border-box;min-height:32px;margin-right:8px;border:1px solid var(--border-color-base,#a2a9b1);border-radius:2px;padding:0 8px;line-height:1}.oo-ui-tagMultiselectWidget-handle:last-child{margin-right:0}.oo-ui-tagMultiselectWidget-handle .oo-ui-tagMultiselectWidget-group{display:inline-block;max-width:100%;margin-top:4px;margin-left:-0.14285714em}.oo-ui-tagMultiselectWidget-handle .oo-ui-tagMultiselectWidget-group \u003E input{background-color:transparent;color:var(--color-emphasized,#000);box-sizing:border-box;height:2.14285716em;border:0;padding:5px 0 5px 0.57142857em;margin-top:-4px;font-family:inherit;font-size:inherit;line-height:1.42857143em;vertical-align:top;  }.oo-ui-tagMultiselectWidget-handle .oo-ui-tagMultiselectWidget-group \u003E input::-webkit-input-placeholder{color:var(--color-placeholder,#72777d);opacity:1}.oo-ui-tagMultiselectWidget-handle .oo-ui-tagMultiselectWidget-group \u003E input::placeholder{color:var(--color-placeholder,#72777d);opacity:1}.oo-ui-tagMultiselectWidget-handle .oo-ui-tagMultiselectWidget-group \u003E input:focus{outline:1px solid transparent}.oo-ui-tagMultiselectWidget-handle .oo-ui-tagMultiselectWidget-group \u003E input:first-child{margin-left:0.14285714em;padding-left:0}.oo-ui-tagMultiselectWidget.oo-ui-iconElement .oo-ui-tagMultiselectWidget-handle{padding-left:2.0285714em}.oo-ui-tagMultiselectWidget.oo-ui-iconElement .oo-ui-tagMultiselectWidget-handle \u003E .oo-ui-iconElement-icon{left:0;margin:0 0.3em}.oo-ui-tagMultiselectWidget.oo-ui-indicatorElement .oo-ui-tagMultiselectWidget-handle{padding-right:2.4071429em}.oo-ui-tagMultiselectWidget.oo-ui-indicatorElement .oo-ui-tagMultiselectWidget-handle \u003E .oo-ui-indicatorElement-indicator{right:0;margin:0 0.775em}.oo-ui-tagMultiselectWidget.oo-ui-tagMultiselectWidget-outlined .oo-ui-tagMultiselectWidget-handle{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.oo-ui-tagMultiselectWidget.oo-ui-tagMultiselectWidget-outlined .oo-ui-inputWidget-input{border-top-left-radius:0;border-top-right-radius:0}.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled{background-color:var(--background-color-base,#fff)}.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled .oo-ui-tagMultiselectWidget-handle{transition-property:border-color,box-shadow;transition-duration:250ms}.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-inlined:hover .oo-ui-tagMultiselectWidget-handle{border-color:var(--border-color-input--hover,#72777d)}.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-inlined.oo-ui-tagMultiselectWidget-focus .oo-ui-tagMultiselectWidget-handle{border-color:var(--border-color-progressive--focus,#36c);outline:1px solid transparent;box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus,#36c)}.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-inlined.oo-ui-flaggedElement-invalid .oo-ui-tagMultiselectWidget-handle,.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-inlined.oo-ui-flaggedElement-invalid:hover .oo-ui-tagMultiselectWidget-handle{border-color:var(--border-color-error,#9f3526)}.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-outlined{background-color:var(--background-color-neutral-subtle,#f8f9fa)}.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-outlined .oo-ui-tagItemWidget.oo-ui-widget-enabled{background-color:var(--background-color-base,#fff)}.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-tagMultiselectWidget-outlined.oo-ui-flaggedElement-invalid .oo-ui-inputWidget-input{border-color:var(--border-color-error,#9f3526)}.oo-ui-tagMultiselectWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid .oo-ui-inputWidget-input{color:var(--color-error,#d73333)}.oo-ui-tagMultiselectWidget.oo-ui-widget-disabled .oo-ui-tagMultiselectWidget-handle{background-color:var(--background-color-disabled-subtle,#eaecf0);color:var(--color-disabled,#72777d);text-shadow:0 1px 1px var(--color-inverted,#fff);border-color:var(--border-color-disabled,#c8ccd1)}.oo-ui-tagMultiselectWidget.oo-ui-widget-disabled .oo-ui-tagMultiselectWidget-handle \u003E .oo-ui-iconElement-icon,.oo-ui-tagMultiselectWidget.oo-ui-widget-disabled .oo-ui-tagMultiselectWidget-handle \u003E .oo-ui-indicatorElement-indicator{opacity:0.51}  .oo-ui-tagItemWidget{position:relative;display:inline-block;cursor:default;white-space:nowrap;box-sizing:border-box;width:auto;max-width:100%;height:1.57142857em;margin:0 4px 4px 0;border:1px solid var(--border-color-base,#a2a9b1);border-radius:1.57142857em;padding:0 8px;line-height:1.42857143em;vertical-align:middle}.oo-ui-tagItemWidget.oo-ui-labelElement .oo-ui-labelElement-label{display:inline-block;max-width:100%;text-overflow:ellipsis;overflow:hidden}.oo-ui-tagItemWidget.oo-ui-labelElement:not(.oo-ui-tagItemWidget-fixed) .oo-ui-labelElement-label{cursor:text}.oo-ui-tagItemWidget.oo-ui-labelElement .oo-ui-labelElement-label{font-size:0.92857143em;line-height:1.61538462em}.oo-ui-tagItemWidget.oo-ui-widget-enabled{color:var(--color-base,#202122);transition-property:background-color,color,border-color,box-shadow;transition-duration:100ms}.oo-ui-tagItemWidget.oo-ui-widget-enabled:hover{background-color:var(--background-color-base,#fff);color:var(--color-base--hover,#404244);border-color:var(--border-color-base,#a2a9b1)}.oo-ui-tagItemWidget.oo-ui-widget-enabled:focus{border-color:var(--border-color-progressive--focus,#36c);box-shadow:inset 0 0 0 1px var(--box-shadow-color-progressive--focus,#36c);outline:1px solid transparent}.oo-ui-tagItemWidget.oo-ui-widget-enabled:not(.oo-ui-tagItemWidget-fixed){background-color:var(--background-color-interactive-subtle,#f8f9fa);padding-right:23px}.oo-ui-tagItemWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid{border-color:var(--border-color-error,#9f3526)}.oo-ui-tagItemWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid:hover{border-color:var(--border-color-error,#9f3526)}.oo-ui-tagItemWidget.oo-ui-widget-enabled.oo-ui-flaggedElement-invalid:focus{border-color:var(--border-color-error,#9f3526);box-shadow:inset 0 0 0 1px var(--box-shadow-color-destructive--focus,#36c)}.oo-ui-tagItemWidget.oo-ui-widget-enabled \u003E .oo-ui-buttonElement{display:block;position:absolute;top:0;right:0}.oo-ui-tagItemWidget.oo-ui-widget-enabled .oo-ui-buttonElement-button{display:block;min-width:20px;min-height:20px;border:0;border-radius:1.57142857em;padding-top:1.42857143em;padding-left:1.42857143em;transition-property:background-color;transition-duration:100ms}.oo-ui-tagItemWidget.oo-ui-widget-enabled .oo-ui-buttonElement-button:hover{background-color:var(--background-color-base,#fff)}.oo-ui-tagItemWidget.oo-ui-widget-enabled .oo-ui-buttonElement-button:active{background-color:var(--background-color-interactive,#eaecf0)}.oo-ui-tagItemWidget.oo-ui-widget-enabled .oo-ui-buttonElement-button .oo-ui-icon-close{left:3px;min-width:14px;width:1em}.oo-ui-tagItemWidget.oo-ui-widget-enabled .oo-ui-buttonElement-button .oo-ui-labelElement-label,.oo-ui-tagItemWidget.oo-ui-widget-enabled .oo-ui-buttonElement-button .oo-ui-indicatorElement-indicator{display:none}.oo-ui-tagItemWidget.oo-ui-widget-disabled{background-color:var(--background-color-disabled-subtle,#eaecf0);color:var(--color-disabled,#72777d);border-color:var(--border-color-disabled,#c8ccd1);text-shadow:0 1px 1px var(--color-inverted,#fff)}.oo-ui-tagItemWidget.oo-ui-widget-disabled:focus{outline:0}.oo-ui-tagItemWidget.oo-ui-widget-disabled \u003E .oo-ui-buttonElement{display:none} .oo-ui-searchWidget-query{position:absolute;top:0;left:0;right:0}.oo-ui-searchWidget-query .oo-ui-textInputWidget{width:100%}.oo-ui-searchWidget-results{position:absolute;bottom:0;left:0;right:0;overflow:hidden auto;-webkit-overflow-scrolling:touch}.oo-ui-searchWidget-query{height:4em;padding:0 16px;border-bottom:1px solid var(--border-color-subtle,#c8ccd1);box-shadow:0 1px 1px rgba(0,0,0,0.2)}.oo-ui-searchWidget-query .oo-ui-textInputWidget{margin:12px 0}.oo-ui-searchWidget-results{top:4em;padding:12px 16px 16px;line-height:0}"]},{"ooui-copytextlayout-copy":"Copiaz\u0103","ooui-item-remove":"Elimin\u0103","ooui-outline-control-move-down":"Mut\u0103 elementul mai jos","ooui-outline-control-move-up":"Mut\u0103 elementul mai sus","ooui-outline-control-remove":"Elimin\u0103 elementul"}];});
