MediaWiki:DiffTool.js

From Heroes of Might and Magic: Olden Era Official Wiki

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
//Source:https://github.com/Aurelain/oe-wiki/tree/main/src/diff
(()=>{var Q,g,xe,ft,L,ve,De,Ae,oe,V,W,Se,se,re,ie,ut,K={},J=[],dt=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,X=Array.isArray;function S(t,e){for(var n in e)t[n]=e[n];return t}function le(t){t&&t.parentNode&&t.parentNode.removeChild(t)}function pt(t,e,n){var r,i,o,s={};for(o in e)o=="key"?r=e[o]:o=="ref"?i=e[o]:s[o]=e[o];if(arguments.length>2&&(s.children=arguments.length>3?Q.call(arguments,2):n),typeof t=="function"&&t.defaultProps!=null)for(o in t.defaultProps)s[o]===void 0&&(s[o]=t.defaultProps[o]);return z(t,s,r,i,null)}function z(t,e,n,r,i){var o={type:t,props:e,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++xe,__i:-1,__u:0};return i==null&&g.vnode!=null&&g.vnode(o),o}function Le(){return{current:null}}function N(t){return t.children}function T(t,e){this.props=t,this.context=e}function R(t,e){if(e==null)return t.__?R(t.__,t.__i+1):null;for(var n;e<t.__k.length;e++)if((n=t.__k[e])!=null&&n.__e!=null)return n.__e;return typeof t.type=="function"?R(t):null}function _t(t){if(t.__P&&t.__d){var e=t.__v,n=e.__e,r=[],i=[],o=S({},e);o.__v=e.__v+1,g.vnode&&g.vnode(o),ae(t.__P,o,e,t.__n,t.__P.namespaceURI,32&e.__u?[n]:null,r,n??R(e),!!(32&e.__u),i),o.__v=e.__v,o.__.__k[o.__i]=o,Fe(r,o,i),e.__e=e.__=null,o.__e!=n&&Ee(o)}}function Ee(t){if((t=t.__)!=null&&t.__c!=null)return t.__e=t.__c.base=null,t.__k.some(function(e){if(e!=null&&e.__e!=null)return t.__e=t.__c.base=e.__e}),Ee(t)}function we(t){(!t.__d&&(t.__d=!0)&&L.push(t)&&!Z.__r++||ve!=g.debounceRendering)&&((ve=g.debounceRendering)||De)(Z)}function Z(){try{for(var t,e=1;L.length;)L.length>e&&L.sort(Ae),t=L.shift(),e=L.length,_t(t)}finally{L.length=Z.__r=0}}function Ce(t,e,n,r,i,o,s,a,f,c,u){var _,l,d,y,w,p,h=r&&r.__k||J,m=e.length;for(f=ht(n,e,h,f,m),_=0;_<m;_++)(d=n.__k[_])!=null&&(l=d.__i!=-1&&h[d.__i]||K,d.__i=_,p=ae(t,d,l,i,o,s,a,f,c,u),y=d.__e,d.ref&&l.ref!=d.ref&&(l.ref&&ce(l.ref,null,d),u.push(d.ref,d.__c||y,d)),w==null&&y!=null&&(w=y),4&d.__u?(f=Pe(d,f,t),l.__e&&(l.__e=null)):typeof d.type=="function"&&p!==void 0?f=p:y&&(f=y.nextSibling),d.__u&=-7);return n.__e=w,f}function ht(t,e,n,r,i){var o,s,a,f,c,u=n.length,_=u,l=0;for(t.__k=new Array(i),o=0;o<i;o++)(s=e[o])!=null&&typeof s!="boolean"&&typeof s!="function"?(typeof s=="string"||typeof s=="number"||typeof s=="bigint"||s.constructor==String?s=t.__k[o]=z(null,s,null,null,null):X(s)?s=t.__k[o]=z(N,{children:s},null,null,null):s.constructor===void 0&&s.__b>0?s=t.__k[o]=z(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):t.__k[o]=s,f=o+l,s.__=t,s.__b=t.__b+1,a=null,(c=s.__i=mt(s,n,f,_))!=-1&&(_--,(a=n[c])&&(a.__u|=2)),a==null||a.__v==null?(c==-1&&(i>u?l--:i<u&&l++),typeof s.type!="function"&&(s.__u|=4)):c!=f&&(c==f-1?l--:c==f+1?l++:(c>f?l--:l++,s.__u|=4))):t.__k[o]=null;if(_)for(o=0;o<u;o++)(a=n[o])!=null&&(2&a.__u)==0&&(a.__e==r&&(r=R(a)),Te(a,a));return r}function Pe(t,e,n){var r,i;if(typeof t.type=="function"){for(r=t.__k,i=0;r&&i<r.length;i++)r[i]&&(r[i].__=t,e=Pe(r[i],e,n));return e}t.__e!=e&&(e&&t.type&&!e.parentNode&&(e=R(t)),e=n.insertBefore(t.__e,e||null));do e=e&&e.nextSibling;while(e!=null&&e.nodeType==8);return e}function mt(t,e,n,r){var i,o,s,a=t.key,f=t.type,c=e[n],u=c!=null&&(2&c.__u)==0;if(c===null&&a==null||u&&a==c.key&&f==c.type)return n;if(r>(u?1:0)){for(i=n-1,o=n+1;i>=0||o<e.length;)if((c=e[s=i>=0?i--:o++])!=null&&(2&c.__u)==0&&a==c.key&&f==c.type)return s}return-1}function be(t,e,n){e[0]=="-"?t.setProperty(e,n??""):t[e]=n==null?"":typeof n!="number"||dt.test(e)?n:n+"px"}function q(t,e,n,r,i){var o,s;e:if(e=="style")if(typeof n=="string")t.style.cssText=n;else{if(typeof r=="string"&&(t.style.cssText=r=""),r)for(e in r)n&&e in n||be(t.style,e,"");if(n)for(e in n)r&&n[e]==r[e]||be(t.style,e,n[e])}else if(e[0]=="o"&&e[1]=="n")o=e!=(e=e.replace(Se,"$1")),s=e.toLowerCase(),e=s in t||e=="onFocusOut"||e=="onFocusIn"?s.slice(2):e.slice(2),t.l||(t.l={}),t.l[e+o]=n,n?r?n[W]=r[W]:(n[W]=se,t.addEventListener(e,o?ie:re,o)):t.removeEventListener(e,o?ie:re,o);else{if(i=="http://www.w3.org/2000/svg")e=e.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(e!="width"&&e!="height"&&e!="href"&&e!="list"&&e!="form"&&e!="tabIndex"&&e!="download"&&e!="rowSpan"&&e!="colSpan"&&e!="role"&&e!="popover"&&e in t)try{t[e]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&e[4]!="-"?t.removeAttribute(e):t.setAttribute(e,e=="popover"&&n==1?"":n))}}function ke(t){return function(e){if(this.l){var n=this.l[e.type+t];if(e[V]==null)e[V]=se++;else if(e[V]<n[W])return;return n(g.event?g.event(e):e)}}}function ae(t,e,n,r,i,o,s,a,f,c){var u,_,l,d,y,w,p,h,m,D,O,P,H,ye,G,ne,A=e.type;if(e.constructor!==void 0)return null;128&n.__u&&(f=!!(32&n.__u),o=[a=e.__e=n.__e]),(u=g.__b)&&u(e);e:if(typeof A=="function"){_=s.length;try{if(m=e.props,D=A.prototype&&A.prototype.render,O=(u=A.contextType)&&r[u.__c],P=u?O?O.props.value:u.__:r,n.__c?h=(l=e.__c=n.__c).__=l.__E:(D?e.__c=l=new A(m,P):(e.__c=l=new T(m,P),l.constructor=A,l.render=yt),O&&O.sub(l),l.state||(l.state={}),l.__n=r,d=l.__d=!0,l.__h=[],l._sb=[]),D&&l.__s==null&&(l.__s=l.state),D&&A.getDerivedStateFromProps!=null&&(l.__s==l.state&&(l.__s=S({},l.__s)),S(l.__s,A.getDerivedStateFromProps(m,l.__s))),y=l.props,w=l.state,l.__v=e,d)D&&A.getDerivedStateFromProps==null&&l.componentWillMount!=null&&l.componentWillMount(),D&&l.componentDidMount!=null&&l.__h.push(l.componentDidMount);else{if(D&&A.getDerivedStateFromProps==null&&m!==y&&l.componentWillReceiveProps!=null&&l.componentWillReceiveProps(m,P),e.__v==n.__v||!l.__e&&l.shouldComponentUpdate!=null&&l.shouldComponentUpdate(m,l.__s,P)===!1){e.__v!=n.__v&&(l.props=m,l.state=l.__s,l.__d=!1),e.__e=n.__e,e.__k=n.__k,e.__k.some(function(j){j&&(j.__=e)}),J.push.apply(l.__h,l._sb),l._sb=[],l.__h.length&&s.push(l),a=R(n);break e}l.componentWillUpdate!=null&&l.componentWillUpdate(m,l.__s,P),D&&l.componentDidUpdate!=null&&l.__h.push(function(){l.componentDidUpdate(y,w,p)})}if(l.context=P,l.props=m,l.__P=t,l.__e=!1,H=g.__r,ye=0,D)l.state=l.__s,l.__d=!1,H&&H(e),u=l.render(l.props,l.state,l.context),J.push.apply(l.__h,l._sb),l._sb=[];else do l.__d=!1,H&&H(e),u=l.render(l.props,l.state,l.context),l.state=l.__s;while(l.__d&&++ye<25);l.state=l.__s,l.getChildContext!=null&&(r=S(S({},r),l.getChildContext())),D&&!d&&l.getSnapshotBeforeUpdate!=null&&(p=l.getSnapshotBeforeUpdate(y,w)),G=u!=null&&u.type===N&&u.key==null?je(u.props.children):u,a=Ce(t,X(G)?G:[G],e,n,r,i,o,s,a,f,c),l.base=e.__e,e.__u&=-161,l.__h.length&&s.push(l),h&&(l.__E=l.__=null)}catch(j){if(s.length=_,e.__v=null,f||o!=null){if(j.then){for(e.__u|=f?160:128;a&&a.nodeType==8&&a.nextSibling;)a=a.nextSibling;o!=null&&(o[o.indexOf(a)]=null),e.__e=a}else if(o!=null)for(ne=o.length;ne--;)le(o[ne])}else e.__e=n.__e;e.__k==null&&(e.__k=n.__k||[]),j.then||Re(e),g.__e(j,e,n)}}else o==null&&e.__v==n.__v?(e.__k=n.__k,e.__e=n.__e):a=e.__e=gt(n.__e,e,n,r,i,o,s,f,c);return(u=g.diffed)&&u(e),128&e.__u?void 0:a}function Re(t){t&&(t.__c&&(t.__c.__e=!0),t.__k&&t.__k.some(Re))}function Fe(t,e,n){for(var r=0;r<n.length;r++)ce(n[r],n[++r],n[++r]);g.__c&&g.__c(e,t),t.some(function(i){try{t=i.__h,i.__h=[],t.some(function(o){o.call(i)})}catch(o){g.__e(o,i.__v)}})}function je(t){return typeof t!="object"||t==null||t.__b>0?t:X(t)?t.map(je):t.constructor!==void 0?null:S({},t)}function gt(t,e,n,r,i,o,s,a,f){var c,u,_,l,d,y,w,p=n.props||K,h=e.props,m=e.type;if(m=="svg"?i="http://www.w3.org/2000/svg":m=="math"?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),o!=null){for(c=0;c<o.length;c++)if((d=o[c])&&"setAttribute"in d==!!m&&(m?d.localName==m:d.nodeType==3)){t=d,o[c]=null;break}}if(t==null){if(m==null)return document.createTextNode(h);t=document.createElementNS(i,m,h.is&&h),a&&(g.__m&&g.__m(e,o),a=!1),o=null}if(m==null)p===h||a&&t.data==h||(t.data=h);else{if(o=m=="textarea"&&h.defaultValue!=null?null:o&&Q.call(t.childNodes),!a&&o!=null)for(p={},c=0;c<t.attributes.length;c++)p[(d=t.attributes[c]).name]=d.value;for(c in p)d=p[c],c=="dangerouslySetInnerHTML"?_=d:c=="children"||c in h||c=="value"&&"defaultValue"in h||c=="checked"&&"defaultChecked"in h||q(t,c,null,d,i);for(c in h)d=h[c],c=="children"?l=d:c=="dangerouslySetInnerHTML"?u=d:c=="value"?y=d:c=="checked"?w=d:a&&typeof d!="function"||p[c]===d||q(t,c,d,p[c],i);if(u)a||_&&(u.__html==_.__html||u.__html==t.innerHTML)||(t.innerHTML=u.__html),e.__k=[];else if(_&&(t.innerHTML=""),Ce(e.type=="template"?t.content:t,X(l)?l:[l],e,n,r,m=="foreignObject"?"http://www.w3.org/1999/xhtml":i,o,s,o?o[0]:n.__k&&R(n,0),a,f),o!=null)for(c=o.length;c--;)le(o[c]);a&&m!="textarea"||(c="value",m=="progress"&&y==null?t.removeAttribute("value"):y!=null&&(y!==t[c]||m=="progress"&&!y||m=="option"&&y!=p[c])&&q(t,c,y,p[c],i),c="checked",w!=null&&w!=t[c]&&q(t,c,w,p[c],i))}return t}function ce(t,e,n){try{if(typeof t=="function"){var r=typeof t.__u=="function";r&&t.__u(),r&&e==null||(t.__u=t(e))}else t.current=e}catch(i){g.__e(i,n)}}function Te(t,e,n){var r,i;if(g.unmount&&g.unmount(t),(r=t.ref)&&(r.current&&r.current!=t.__e||ce(r,null,e)),(r=t.__c)!=null){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(o){g.__e(o,e)}r.base=r.__P=r.__n=null}if(r=t.__k)for(i=0;i<r.length;i++)r[i]&&Te(r[i],e,n||typeof t.type!="function");n||le(t.__e),t.__c=t.__=t.__e=void 0}function yt(t,e,n){return this.constructor(t,n)}function Ne(t,e,n){var r,i,o,s;e==document&&(e=document.documentElement),g.__&&g.__(t,e),i=(r=typeof n=="function")?null:n&&n.__k||e.__k,o=[],s=[],ae(e,t=(!r&&n||e).__k=pt(N,null,[t]),i||K,K,e.namespaceURI,!r&&n?[n]:i?null:e.firstChild?Q.call(e.childNodes):null,o,!r&&n?n:i?i.__e:e.firstChild,r,s),Fe(o,t,s),t.props.children=null}Q=J.slice,g={__e:function(t,e,n,r){for(var i,o,s;e=e.__;)if((i=e.__c)&&!i.__)try{if((o=i.constructor)&&o.getDerivedStateFromError!=null&&(i.setState(o.getDerivedStateFromError(t)),s=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(t,r||{}),s=i.__d),s)return i.__E=i}catch(a){t=a}throw t}},xe=0,ft=function(t){return t!=null&&t.constructor===void 0},T.prototype.setState=function(t,e){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=S({},this.state),typeof t=="function"&&(t=t(S({},n),this.props)),t&&S(n,t),t!=null&&this.__v&&(e&&this._sb.push(e),we(this))},T.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),we(this))},T.prototype.render=N,L=[],De=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Ae=function(t,e){return t.__v.__b-e.__v.__b},Z.__r=0,oe=Math.random().toString(8),V="__d"+oe,W="__a"+oe,Se=/(PointerCapture)$|Capture$/i,se=0,re=ke(!1),ie=ke(!0),ut=0;var vt=0;function v(t,e,n,r,i,o){e||(e={});var s,a,f=e;if("ref"in f)for(a in f={},e)a=="ref"?s=e[a]:f[a]=e[a];var c={type:t,props:f,key:n,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--vt,__i:-1,__u:0,__source:i,__self:o};if(typeof t=="function"&&(s=t.defaultProps))for(a in s)f[a]===void 0&&(f[a]=s[a]);return g.vnode&&g.vnode(c),c}var Me;function wt(t,e,n=0,r={}){Me={App:t,selector:e,importance:n,props:r},Ie()===!1&&window.addEventListener("load",Ue)}function Ue(){window.removeEventListener("load",Ue),Ie()}function Ie(){let{App:t,selector:e,importance:n,props:r}=Me,i=document.querySelector(e);if(!i)return!1;let o=i.dataset.importance;if(o&&(Number(o)||0)>=n){console.warn("Refused to mount, not important enough!");return}return i.dataset.importance=n,i.innerHTML="",Ne(v(t,{...r}),i),!0}var Oe=wt;var bt={data:""},kt=t=>{if(typeof window=="object"){let e=(t?t.querySelector("#_goober"):window._goober)||Object.assign(document.createElement("style"),{innerHTML:" ",id:"_goober"});return e.nonce=window.__nonce__,e.parentNode||(t||document.head).appendChild(e),e.firstChild}return t||bt};var xt=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g,Dt=/\/\*[^]*?\*\/|  +/g,He=/\n+/g,F=(t,e)=>{let n="",r="",i="";for(let o in t){let s=t[o];o[0]=="@"?o[1]=="i"?n=o+" "+s+";":r+=o[1]=="f"?F(s,o):o+"{"+F(s,o[1]=="k"?"":e)+"}":typeof s=="object"?r+=F(s,e?e.replace(/([^,])+/g,a=>o.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g,f=>/&/.test(f)?f.replace(/&/g,a):a?a+" "+f:f)):o):s!=null&&(o=o[1]=="-"?o:o.replace(/[A-Z]/g,"-$&").toLowerCase(),i+=F.p?F.p(o,s):o+":"+s+";")}return n+(e&&i?e+"{"+i+"}":i)+r},E={},We=t=>{if(typeof t=="object"){let e="";for(let n in t)e+=n+We(t[n]);return e}return t},At=(t,e,n,r,i)=>{let o=We(t),s=E[o]||(E[o]=(f=>{let c=0,u=11;for(;c<f.length;)u=101*u+f.charCodeAt(c++)>>>0;return"go"+u})(o));if(!E[s]){let f=o!==t?t:(c=>{let u,_,l=[{}];for(;u=xt.exec(c.replace(Dt,""));)u[4]?l.shift():u[3]?(_=u[3].replace(He," ").trim(),l.unshift(l[0][_]=l[0][_]||{})):l[0][u[1]]=u[2].replace(He," ").trim();return l[0]})(t);E[s]=F(i?{["@keyframes "+s]:f}:f,n?"":"."+s)}let a=n&&E.g;return n&&(E.g=E[s]),((f,c,u,_)=>{_?c.data=c.data.replace(_,f):c.data.indexOf(f)===-1&&(c.data=u?f+c.data:c.data+f)})(E[s],e,r,a),s},St=(t,e,n)=>t.reduce((r,i,o)=>{let s=e[o];if(s&&s.call){let a=s(n),f=a&&a.props&&a.props.className||/^go/.test(a)&&a;s=f?"."+f:a&&typeof a=="object"?a.props?"":F(a,""):a===!1?"":a}return r+i+(s??"")},"");function M(t){let e=this||{},n=t.call?t(e.p):t;return At(n.unshift?n.raw?St(n,[].slice.call(arguments,1),e.p):n.reduce((r,i)=>Object.assign(r,i&&i.call?i(e.p):i),{}):n,kt(e.target),e.g,e.o,e.k)}var On=M.bind({g:1}),Hn=M.bind({k:1});function Lt(t,...e){let n=[],{length:r}=t;for(let o=0;o<r;o++)n.push(t[o],e[o]);n.pop();let i=n.join("");return i=i.replaceAll(/\/\*[\s\S]*?\*\//g,""),i=i.replaceAll(/\s\/\/.*/g,""),i}var $e=Lt;var U,Be,Et={info:"\u2139\uFE0F",warning:"\u26A0\uFE0F",error:"\u26D4"},b="tool-log",Ct=$e`
    .${b} {
        overflow-y: scroll;
        height: 200px;
        flex-shrink: 0;
    }

    .${b} table {
        width: 100%;
        border-collapse: collapse;
        margin: 0;
    }

    .${b} th {
        text-align: left;
    }

    .${b} th,
    .${b} td {
        border: solid 1px rgba(255, 255, 255, 0.1);
        border-left: none;
        border-right: none;
        vertical-align: top;
        padding: 4px;
    }

    .${b} th {
        border-top: none;
    }

    .${b} table {
        border: solid 1px rgba(255, 255, 255, 0.1);
    }

    .${b} th {
        background: rgba(255, 255, 255, 0.1);
    }

    .${b} td:nth-child(1) {
        width: 90px;
    }

    .${b} td:nth-child(2),
    .${b} th:nth-child(2) {
        width: 20px;
        text-align: center;
    }

    .${b} td > div > div {
        cursor: pointer;
        color: yellow;
    }

    .${b} textarea {
        width: calc(100% - 8px);
        height: 200px;
    }
`;function Pt(t,...e){let n=t.endsWith("!")?t.startsWith("!")?"error":"warning":"info";Rt(n,t,e)}function Ge(t){U=t,U.classList.add(b),U.innerHTML=`
        <style>${Ct}</style>
        <table class='wikitable'>
            <tr>
                <th>Timestamp</th>
                <th>\u{1F197}</th>
                <th>Message</th>
            </tr>
        </table>`,Be=U.querySelector("table")}function Rt(t,e,n){let i=new Date().toLocaleTimeString("en-GB",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3}),o=document.createElement("tr");fe(o,i),fe(o,Et[t]),fe(o,Ft(e,n)),Be.appendChild(o),U.scrollTo({top:U.scrollHeight,behavior:"smooth"})}function fe(t,e){let n=document.createElement("td");e=e instanceof Node?e:document.createTextNode(e),n.appendChild(e),t.appendChild(n)}function Ft(t,e){if(t=t.replace(/^!/,""),console.log(t,...e),!e.length)return document.createTextNode(t);let n=document.createElement("div"),r=document.createElement("div");r.innerHTML=t,r.onclick=function(){let o=this.nextElementSibling.style.display!=="none";this.nextElementSibling.style.display=o?"none":"block"},n.appendChild(r);let i=document.createElement("textarea");return i.style.display="none",i.innerHTML=jt(e),n.appendChild(i),n}function jt(t){let e=[];for(let n of t)typeof n=="object"&&n?n instanceof Error?e.push(n.stack):e.push(JSON.stringify(n,null,4)):e.push(n);return e.join(`
`)}var $=Pt;var qn=window.location.host||"localhost";var ue=new Proxy(()=>{},{get:()=>ue,apply:()=>ue}),qe=ue;function Tt(t,...e){if(typeof t=="function")try{let n=t(...e);return n&&typeof n.then=="function"?n.then(r=>[r,null]).catch(r=>[null,r]):[n,null]}catch(n){return[null,n]}return t&&typeof t.then=="function"?t.then(n=>[n,null]).catch(n=>[null,n]):[t,null]}var Y=Tt;var Ve=new Map;async function Nt(t,e){let n=await Mt(t,e);return Ve.set(n,e),n.on("message",Ut.bind(null,n)),{run:async()=>await It(n,"run")}}async function Mt(t,e){let n=new qe.Worker(t);return n.on("error",()=>e.log("!Worker error!")),new Promise(r=>{let i=o=>{o?.type==="ready"&&(n.off("message",i),r(n))};n.on("message",i)})}async function Ut(t,e){let n=Ve.get(t),{type:r,payload:i}=e;if(typeof n[r]!="function")return;let[o,s]=await Y(n[r],...i);s||t.postMessage({type:r,payload:o})}async function It(t,e,n){return new Promise(r=>{let i=o=>{o.type===e&&(t.off("message",i),r(o.payload))};t.on("message",i),t.postMessage({type:e,payload:n})})}var ze=Nt;var Ke=new Map;async function Ot(t,e){let n=await Ht(t,e);return Ke.set(n,e),n.addEventListener("message",Wt.bind(null,n)),{run:async()=>await $t(n,"run")}}async function Ht(t,e){let n;return window.mw?n=await Bt(t,e):n=new Worker(`data:application/javascript,importScripts('${t}?${Math.random()}');`),n&&n.addEventListener("error",()=>e.log("!Worker error!")),new Promise(r=>{let i=o=>{(o.data&&typeof o.data=="object"?o.data:{}).type==="ready"&&(n.removeEventListener("message",i),r(n))};n.addEventListener("message",i)})}async function Wt(t,e){let n=Ke.get(t),{type:r,payload:i}=e.data;if(typeof n[r]!="function")return;let[o,s]=await Y(n[r],...i);s||t.postMessage({type:r,payload:o})}async function $t(t,e,n){return new Promise(r=>{let i=o=>{let s=o.data&&typeof o.data=="object"?o.data:{};s.type===e&&(t.removeEventListener("message",i),r(s.payload))};t.addEventListener("message",i),t.postMessage({type:e,payload:n})})}async function Bt(t,e){let n=mw.util.getUrl(t,{action:"raw",ctype:"text/javascript",v:Date.now()}),r=await fetch(n,{cache:"no-cache"});if(!r.ok){e.log("!Failed to load wiki worker!",r.statusText);return}let i=await r.text(),o=new Blob([i],{type:"application/javascript"}),s=URL.createObjectURL(o),a=new Worker(s);return URL.revokeObjectURL(s),a}var Je=Ot;async function Gt(t,e){if(typeof t=="string"){let n=t;return typeof process<"u"&&process.versions?.node!==null?await ze(n,e):await Je(n,e)}else return await qt(t,e)}async function qt(t,e){return{run:()=>t(e)}}var Ze=Gt;var Qe=console.log,Vt=!1,zt=[];function Kt(...t){if(Vt){let e=[];for(let n of t)e.push(typeof n=="object"?JSON.stringify(n,null,4):n);zt.push(e.join(`
`))}Qe(...t)}function Xe(t){Qe=t}var x=Kt;function Jt(t,e){return e.global?[...t.matchAll(e)]:t.match(e)||[]}var de=Jt;var Zt=/campaign|arena|tutorial/,Qt={TranslationDef:tn,BonusDef:nn,SkillLevelDef:on,EntryDef:null,AttackPassiveDef:null,LawTreePositionDef:rn,FactionLawTierDef:null,HeroStartSquadDef:sn,LawLevelDef:ln,SkillRollReplacementDef:null,SpellRankDef:an,SkillRollWeightDef:cn,StatBonusRollDef:fn,UnitAbilityActiveDef:B,UnitAttackDef:un,UnitAbilityPassiveDef:B,UnitAbilityConditionalDef:B,UnitAbilityGlobalDef:B,UnitAbilityAuraDef:B};function Xt(t){let e=[];for(let r in t){let i=Yt(t[r]);e.push(...i)}let n={};for(let r of e){let{meta:i,id:o,...s}=r;if(!o){x("Definition lacks id!",i.raw);continue}if(o.match(Zt))continue;let a=n[o]||{};for(let f in s){if(f in a){x(`Field "${f}" already exists!`,i.raw,a);continue}a[f]=s[f]}n[o]=a}return n}function Yt(t){let e=[],n=de(t,/\{\{(.*?Def)([\s\S]*?)}}/g);for(let r of n){let i=r[0],o=r[1],s=r[2],a=de(s,/\|(.*?)=([^|]*)/g),f={name:o,raw:i},c={};for(let _ of a){let[,l,d]=_;c[l.trim()]=d.trim()}let u=en(c,f);u&&e.push(u)}return e}function en(t,e){let n=Qt[e.name];if(n===null)return;let r=n?n(t):{...t};if(r)return r.meta=e,r}function tn(t){let{target_id:e,type:n,subtype:r,variant:i,language:o,...s}=t,a="$"+C(o,n,r,i),f={id:e.replace("_specialization","")};for(let c in s)f[a+"_"+c]=s[c];return f}function nn(t){let{parent_id:e,parent_type:n,ordinal:r,type:i,...o}=t,s=C(n,r,i),a={id:e};for(let f in o)a[s+"_"+f]=o[f];return a}function on(t){let{skill_id:e,level:n,...r}=t,i=C("level",n),o={id:e};for(let s in r)o[i+"_"+s]=r[s];return o}function rn(t){let{law_id:e,...n}=t,r="tree",i={id:e};for(let o in n)i[r+"_"+o]=n[o];return i}function sn(t){let{hero_id:e,variant:n,slot:r,...i}=t,o=C("squad",n,r),s={id:e};for(let a in i)s[o+"_"+a]=i[a];return s}function ln(t){let{law_id:e,level:n,...r}=t,i=C("level",n),o={id:e};for(let s in r)o[i+"_"+s]=r[s];return o}function an(t){let{spell_id:e,level:n,...r}=t,i=C("level",n),o={id:e};for(let s in r)o[i+"_"+s]=r[s];return o}function cn(t){let{skill_id:e,table_id:n,band_kind:r,...i}=t,o=C("roll",n,r),s={id:e};for(let a in i)s[o+"_"+a]=i[a];return s}function fn(t){let{name_sid:e,desc_sid:n,...r}=t;return r}function B(t){let{unit_id:e,ordinal:n,ability_type:r,...i}=t;if(!e)return;let o=C("ability",r,n),s={id:e};for(let a in i)s[o+"_"+a]=i[a];return s}function un(t){let{unit_id:e,...n}=t;return{id:e,...n}}function C(...t){return t.filter(n=>!!n).join("_")}var pe=Xt;function dn(t,e,n,r){n!=null&&(Array.isArray(n)&&!n.length||r!==void 0&&String(n)===String(r)||(e.includes("_mult")&&typeof n=="number"&&!String(n).includes(".")&&(n+=".0"),t[e]=n))}var I=dn;var Ye="GENERAL",pn=new Set([Ye,"en","pt_br","cs","fr ","de","hu","it","ja","ko","pl","ru","es","tr","uk","zh-hans","zh-hant"]);function _n(t,e,n){let r=[];r.push("{{PatchDef"),r.push(`    | id = ${t}`),r.push(`    | date = ${e}`),r.push("}}");let i=hn(n);for(let o of pn){let s=i[o];if(s?.length){r.push(`== ${o} ==<!-- ========================================================= -->`);for(let a of s){let f={};I(f,"patch",t),I(f,"id",a.id),I(f,"field",a.field),I(f,"summary",a.summary),I(f,"lang",a.lang),r.push("{{PatchNoteDef");for(let c in f)r.push(`    | ${c} = ${f[c]}`);r.push("}}")}}}return r.join(`
`)}function hn(t){let e={};for(let n of t){let{field:r}=n,i=Ye;if(r.startsWith("$")){r=r.substring("$".length);let o=r.split("_");i=o.shift(),r=o.join("_"),n={...n,field:r,lang:i}}e[i]=e[i]||[],e[i].push(n)}return e}var et=_n;var mn=["zh","ja","ko","en"];function gn(t,e){if(t===void 0&&e===void 0)return"";if(t===void 0)return _e("",e);if(e===void 0)return _e(t,"");let n=new Intl.Segmenter(mn,{granularity:"word"}),r=Array.from(n.segment(t),p=>p.segment),i=Array.from(n.segment(e),p=>p.segment),o=r.length,s=i.length,a=new Int32Array((o+1)*(s+1)),f=(p,h)=>p*(s+1)+h;for(let p=1;p<=o;p++)for(let h=1;h<=s;h++)a[f(p,h)]=r[p-1]===i[h-1]?a[f(p-1,h-1)]+1:Math.max(a[f(p-1,h)],a[f(p,h-1)]);let c=o,u=s,_=[];for(;c>0||u>0;)c>0&&u>0&&r[c-1]===i[u-1]?(_.push({type:"eq",val:r[c-1]}),c--,u--):u>0&&(c===0||a[f(c,u-1)]>=a[f(c-1,u)])?(_.push({type:"add",val:i[u-1]}),u--):(_.push({type:"del",val:r[c-1]}),c--);_.reverse();let l="",d="",y="",w=()=>{(d||y)&&(l+=_e(d,y),d="",y="")};for(let p of _)p.type==="eq"?(w(),l+=p.val):p.type==="del"?d+=p.val:p.type==="add"&&(y+=p.val);return w(),l}function _e(t,e){return"\u276E"+t+"\u25B8"+e+"\u276F"}var tt=gn;function yn(t={},e={}){let n=[],r=new Set([...Object.keys(t),...Object.keys(e)]);for(let i of r){let o=tt(t[i],e[i]);o!==String(t[i])&&n.push({field:i,summary:o})}return n}var nt=yn;function vn(t={},e={}){let n=[],r=new Set([...Object.keys(t),...Object.keys(e)]);for(let i of r){let o=nt(t[i],e[i]);for(let s of o)n.push({id:i,...s})}return n}var ot=vn;var he,me;async function wn(t,e,n,r,i){me=n,Xe(me.log);let o=Date.now();x("Beginning comparison...");let s=await Ze(r,bn);he=t;let a=Date.now();x("Parsing the first archive...");let f=await s.run();x(`Finished parsing the first archive in ${Date.now()-a} ms.`),he=e;let c=Date.now();x("Parsing the second archive...");let u=await s.run();x(`Finished parsing the second archive in ${Date.now()-c} ms.`),x("Starting comparison...");let _=Date.now(),l=pe(f),d=pe(u),y=ot(l,d),w=et(i.id,i.date,y);return x(`Finished comparison in ${Date.now()-_} ms.`),x(`Finished all processes in ${Date.now()-o} ms.`),w}var bn={find:()=>he,log:(...t)=>{me.log(...t)}},rt=wn;async function kn(t,e,n,r){return it(t,"",e,n,r)}async function it(t,e,n,r,i){e+=e?"/":"";let o={},s=await xn(t);for(let[a,f]of s){let c=e+a;if(!(r&&c.match(r))){if(f.kind==="directory"){let u=await it(f,c,n,r,i);if(u instanceof File)return u;Object.assign(o,u)}else if(c.match(n)){let u=await f.getFile();if(i)return u;o[c]=u}}}return o}async function xn(t){let e=[];try{for await(let n of t.entries())e.push(n)}catch{}return e}var st=kn;var lt;async function Dn(...t){let[e,n,r]=t;return await st(lt,e,n,r)}function An(...t){$(...t)}function Sn(t){lt=t}var Ln={find:Dn,log:An,setDirHandle:Sn},at=Ln;var En=M`
    color: #fff;
    & input {
        margin-left: 4px;
    }
`,te=M`
    margin-top: 2px;
`,Cn=M`
    height: 200px;
`,Pn="MediaWiki:ParseCore.js",ge=class extends T{vars={logRef:Le()};state={version:"0.00.00",date:new Date().toISOString().substring(0,10),archiveA:null,archiveB:null,comparisonResult:"",isWorking:!1};render(){let{logRef:e}=this.vars,{version:n,date:r,archiveA:i,archiveB:o,comparisonResult:s,isWorking:a}=this.state;return v("div",{class:En,children:[v("div",{class:te,children:["Patch version:",v("input",{disabled:a,value:n,onChange:this.onVersionChange})]}),v("div",{class:te,children:["Patch date:",v("input",{disabled:a,value:r,onChange:this.onDateChange})]}),v("div",{class:te,children:["Archive A (older):",v("input",{disabled:a,type:"file",value:i?void 0:"",onChange:this.onArchiveAChange})]}),v("div",{class:te,children:["Archive B (newer):",v("input",{disabled:a,type:"file",value:o?void 0:"",onChange:this.onArchiveBChange})]}),v("button",{disabled:!n||!r||!i||!o||a,onClick:this.onCompareClick,children:["Compare ",a&&v("progress",{})]}),v("br",{}),v("br",{}),"Log:",v("div",{ref:e}),"Output:",v("textarea",{class:Cn,value:s})]})}async componentDidMount(){let{logRef:e}=this.vars;Ge(e.current),$("Initialized.")}onVersionChange=e=>{this.setState({version:e.value})};onDateChange=e=>{this.setState({date:e.value})};onArchiveAChange=e=>{this.setState({archiveA:e.target.files[0]})};onArchiveBChange=e=>{this.setState({archiveB:e.target.files[0]})};onCompareClick=async()=>{let{version:e,date:n,archiveA:r,archiveB:i}=this.state,o={id:e,date:n};this.setState({isWorking:!0});let s=await rt(r,i,at,Pn,o);this.setState({isWorking:!1,comparisonResult:s})}},ct=ge;function Rn(){Oe(ct,".diff-root",0)}Rn();})();