@mideind/netskrafl-react 3.0.1 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/esm/index.js CHANGED
@@ -3024,5 +3024,5 @@ const eh={};let th,nh,ih,rh,sh=!1;function ah(e,t,n,i,r){let s=i||e.options.data
3024
3024
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3025
3025
  * See the License for the specific language governing permissions and
3026
3026
  * limitations under the License.
3027
- */(n,...e)}return n}ao.prototype.simpleListen=function(e,t){this.sendRequest("q",{p:e},t)},ao.prototype.echo=function(e,t){this.sendRequest("echo",{d:e},t)},function(e){!function(e){Us=e}(bt),ft(new ae("database",((e,{instanceIdentifier:t})=>ah(e.getProvider("app").getImmediate(),e.getProvider("auth-internal"),e.getProvider("app-check-internal"),t)),"PUBLIC").setMultipleInstances(!0)),Ct(Fs,zs,e),Ct(Fs,zs,"esm2020")}();let ch=[];function uh(e){const t=[...ch];ch=[],t.forEach((e=>{e()})),e.onFirebaseReady?.()}function hh(e){try{const{projectId:t,firebaseApiKey:n,databaseUrl:i,firebaseSenderId:r,firebaseAppId:s,measurementId:a}=e;if(th=_t({projectId:t,apiKey:n,authDomain:`${t}.firebaseapp.com`,databaseURL:i,storageBucket:`${t}.firebasestorage.app`,messagingSenderId:r,appId:s,measurementId:a},t),!th)return console.error("Failed to initialize Firebase"),!1}catch(e){return console.error("Failed to initialize Firebase",e),!1}return!0}async function dh(e,t,n){if(!th&&!hh(e))return;const{netskraflUserId:i,locale:r,projectId:s,loginMethod:a}=e;nh=Ms(th),nh?function(e,t,n,i){se(e).onAuthStateChanged(t,n,i)}(nh,(t=>{null!==t&&(e.newUser&&fh("sign_up",{locale:r,method:a,userid:i}),fh("login",{locale:r,method:a,userid:i}))})):console.error("Failed to initialize Firebase Auth"),await Tr(nh,t),ih=lh(th),ih?uh(e):console.error("Failed to initialize Firebase Database"),rh=Wn(th),rh||console.error("Failed to initialize Firebase Analytics"),function(e,t,n){if(!ih)return;const i=Ku(ih,".info/connected"),r="netskrafl"===e?`connection/${t}`:`connection/${n}/${t}`,s=function(e,t){e=se(e),ou("push",e._path),iu("push",t,e._path,!0);const n=vu(e._repo),i=Uu(n),r=Yu(e,i),s=Yu(e,i);let a;return a=Promise.resolve(s),r.then=a.then.bind(a),r.catch=a.then.bind(a,void 0),r}(Ku(ih,r));Qu(i,(e=>{e.val()?(function(e){return e=se(e),new Vu(e._repo,e._path)}(s).remove(),Ju(s,!0)):function(e){ou("remove",e._path),Ju(e,null)}(s)}))}(s,i,r)}function ph(e,t){if(!ih)return void ch.push((()=>ph(e,t)));let n=0;Qu(Ku(ih,e),(e=>{n++;const i=e.val();i&&t(i,1===n)}))}function gh(e){if(!ih)return;const t=Ku(ih,e);var n;Tu((n=t)._repo,n,null)}function fh(e,t){rh&&Kn(rh,e,t)}function mh(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var vh,yh,wh,bh,_h,kh,Ch,Sh,Th,Ih,Eh,Ph,xh,Rh,Lh,Nh,Dh,Ah,Mh,Oh,jh,Fh,zh,Uh,$h,qh,Bh,Vh,Hh,Wh,Gh,Kh,Yh,Jh,Zh,Xh,Qh,ed,td,nd,id,rd,sd,ad,od,ld,cd,ud,hd,dd,pd,gd,fd,md;function vd(){if(yh)return vh;function e(e,t,n,i,r,s){return{tag:e,key:t,attrs:n,children:i,text:r,dom:s,is:void 0,domSize:void 0,state:void 0,events:void 0,instance:void 0}}return yh=1,e.normalize=function(t){return Array.isArray(t)?e("[",void 0,void 0,e.normalizeChildren(t),void 0,void 0):null==t||"boolean"==typeof t?null:"object"==typeof t?t:e("#",void 0,void 0,String(t),void 0,void 0)},e.normalizeChildren=function(t){for(var n=new Array(t.length),i=0,r=0;r<t.length;r++)n[r]=e.normalize(t[r]),null!==n[r]&&null!=n[r].key&&i++;if(0!==i&&i!==t.length)throw new TypeError(n.includes(null)?"In fragments, vnodes must either all have keys or none have keys. You may wish to consider using an explicit keyed empty fragment, m.fragment({key: ...}), instead of a hole.":"In fragments, vnodes must either all have keys or none have keys.");return n},vh=e}function yd(){if(bh)return wh;bh=1;var e=vd();return wh=function(t,n){return null==t||"object"==typeof t&&null==t.tag&&!Array.isArray(t)?1===n.length&&Array.isArray(n[0])&&(n=n[0]):(n=0===n.length&&Array.isArray(t)?t:[t,...n],t=void 0),e("",t&&t.key,t,n)}}function wd(){return kh?_h:(kh=1,_h={}.hasOwnProperty)}function bd(){return Sh?Ch:(Sh=1,Ch={})}function _d(){if(Ih)return Th;Ih=1;var e=bd();return Th=new Map([[e,!0]])}function kd(){if(Ph)return Eh;Ph=1;var e=vd(),t=yd(),n=wd(),i=bd(),r=_d(),s=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g,a=Object.create(null);function o(e){for(var t,o,l="div",c=[],u={},h=!0;t=s.exec(e);){var d=t[1],p=t[2];if(""===d&&""!==p)l=p;else if("#"===d)u.id=p;else if("."===d)c.push(p);else if("["===t[3][0]){var g=t[6];g&&(g=g.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")),"class"===t[4]?c.push(g):(u[t[4]]=""===g?g:g||!0,("value"===(o=t[4])||"checked"===o||"selectedIndex"===o||"selected"===o)&&(h=!1))}}return c.length>0&&(u.className=c.join(" ")),!function(e){for(var t in e)if(n.call(e,t))return!1;return!0}(u)?r.set(u,h):u=i,a[e]={tag:l,attrs:u,is:u.is}}return Eh=function(r,s,...l){if(null==r||"string"!=typeof r&&"function"!=typeof r&&"function"!=typeof r.view)throw Error("The selector must be either a string or a component.");var c=t(s,l);return"string"==typeof r&&(c.children=e.normalizeChildren(c.children),"["!==r)?function(e,t){t.tag=e.tag;var r=t.attrs;if(null==r)return t.attrs=e.attrs,t.is=e.is,t;if(n.call(r,"class")&&(null!=r.class&&(r.className=r.class),r.class=null),e.attrs!==i){var s=r.className;r=Object.assign({},e.attrs,r),null!=e.attrs.className&&(r.className=null!=s?String(e.attrs.className)+" "+String(s):e.attrs.className)}return"input"===e.tag&&n.call(r,"type")&&(r=Object.assign({type:r.type},r)),t.is=r.is,t.attrs=r,t}(a[r]||o(r),c):(null==c.attrs&&(c.attrs={}),c.tag=r,c)},Eh}function Cd(){if(Ah)return Dh;Ah=1;var e=kd();return e.trust=function(){if(Rh)return xh;Rh=1;var e=vd();return xh=function(t){return null==t&&(t=""),e("<",void 0,void 0,t,void 0,void 0)}}(),e.fragment=function(){if(Nh)return Lh;Nh=1;var e=vd(),t=yd();return Lh=function(n,...i){var r=t(n,i);return null==r.attrs&&(r.attrs={}),r.tag="[",r.children=e.normalizeChildren(r.children),r},Lh}(),Dh=e}function Sd(){return Oh?Mh:(Oh=1,Mh=new WeakMap)}function Td(){if(Fh)return jh;Fh=1;var e=Sd();return jh=function*(t){var n=t.dom,i=t.domSize,r=e.get(n);if(null!=n)do{var s=n.nextSibling;e.get(n)===r&&(yield n,i--),n=s}while(i)},jh}function Id(){if(Uh)return zh;Uh=1;var e=vd(),t=Sd(),n=Td(),i=_d();return zh=function(){var r,s,a={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"};function o(e){return e.ownerDocument}function l(e){return e.attrs&&e.attrs.xmlns||a[e.tag]}function c(e,t){if(e.state!==t)throw new Error("'vnode.state' must not be modified.")}function u(e){var t=e.state;try{return this.apply(t,arguments)}finally{c(e,t)}}function h(e){try{return o(e).activeElement}catch(e){return null}}function d(e,t,n,i,r,s,a){for(var o=n;o<i;o++){var l=t[o];null!=l&&p(e,l,r,a,s)}}function p(t,n,i,r,s){var a=n.tag;if("string"==typeof a)switch(n.state={},null!=n.attrs&&F(n.attrs,n,i),a){case"#":!function(e,t,n){t.dom=o(e).createTextNode(t.children),C(e,t.dom,n)}(t,n,s);break;case"<":f(t,n,r,s);break;case"[":!function(e,t,n,i,r){var s=o(e).createDocumentFragment();if(null!=t.children){var a=t.children;d(s,a,0,a.length,n,null,i)}t.dom=s.firstChild,t.domSize=s.childNodes.length,C(e,s,r)}(t,n,i,r,s);break;default:!function(e,t,n,i,r){var s=t.tag,a=t.attrs,c=t.is;i=l(t)||i;var u=i?c?o(e).createElementNS(i,s,{is:c}):o(e).createElementNS(i,s):c?o(e).createElement(s,{is:c}):o(e).createElement(s);t.dom=u,null!=a&&function(e,t,n){for(var i in t)L(e,i,null,t[i],n)}(t,a,i);if(C(e,u,r),!S(t)&&null!=t.children){var h=t.children;d(u,h,0,h.length,n,null,i),"select"===t.tag&&null!=a&&function(e,t){if("value"in t)if(null===t.value)-1!==e.dom.selectedIndex&&(e.dom.value=null);else{var n=""+t.value;e.dom.value===n&&-1!==e.dom.selectedIndex||(e.dom.value=n)}"selectedIndex"in t&&L(e,"selectedIndex",null,t.selectedIndex,void 0)}(t,a)}}(t,n,i,r,s)}else!function(t,n,i,r,s){(function(t,n){var i;if("function"==typeof t.tag.view){if(t.state=Object.create(t.tag),null!=(i=t.state.view).$$reentrantLock$$)return;i.$$reentrantLock$$=!0}else{if(t.state=void 0,null!=(i=t.tag).$$reentrantLock$$)return;i.$$reentrantLock$$=!0,t.state=null!=t.tag.prototype&&"function"==typeof t.tag.prototype.view?new t.tag(t):t.tag(t)}F(t.state,t,n),null!=t.attrs&&F(t.attrs,t,n);if(t.instance=e.normalize(u.call(t.state.view,t)),t.instance===t)throw Error("A view cannot return the vnode it received as argument");i.$$reentrantLock$$=null})(n,i),null!=n.instance?(p(t,n.instance,i,r,s),n.dom=n.instance.dom,n.domSize=n.instance.domSize):n.domSize=0}(t,n,i,r,s)}var g={caption:"table",thead:"table",tbody:"table",tfoot:"table",tr:"tbody",th:"tr",td:"tr",colgroup:"table",col:"colgroup"};function f(e,t,n,i){var r=t.children.match(/^\s*?<(\w+)/im)||[],s=o(e).createElement(g[r[1]]||"div");"http://www.w3.org/2000/svg"===n?(s.innerHTML='<svg xmlns="http://www.w3.org/2000/svg">'+t.children+"</svg>",s=s.firstChild):s.innerHTML=t.children,t.dom=s.firstChild,t.domSize=s.childNodes.length;for(var a,l=o(e).createDocumentFragment();a=s.firstChild;)l.appendChild(a);C(e,l,i)}function m(e,t,n,i,r,s){if(t!==n&&(null!=t||null!=n))if(null==t||0===t.length)d(e,n,0,n.length,i,r,s);else if(null==n||0===n.length)T(e,t,0,t.length);else{var a=null!=t[0]&&null!=t[0].key,o=null!=n[0]&&null!=n[0].key,l=0,c=0;if(!a)for(;c<t.length&&null==t[c];)c++;if(!o)for(;l<n.length&&null==n[l];)l++;if(a!==o)T(e,t,c,t.length),d(e,n,l,n.length,i,r,s);else if(o){for(var u,h,g,f,m,w=t.length-1,C=n.length-1;w>=c&&C>=l&&(g=t[w],f=n[C],g.key===f.key);)g!==f&&v(e,g,f,i,r,s),null!=f.dom&&(r=f.dom),w--,C--;for(;w>=c&&C>=l&&(u=t[c],h=n[l],u.key===h.key);)c++,l++,u!==h&&v(e,u,h,i,_(t,c,r),s);for(;w>=c&&C>=l&&l!==C&&u.key===f.key&&g.key===h.key;)k(e,g,m=_(t,c,r)),g!==h&&v(e,g,h,i,m,s),++l<=--C&&k(e,u,r),u!==f&&v(e,u,f,i,r,s),null!=f.dom&&(r=f.dom),c++,g=t[--w],f=n[C],u=t[c],h=n[l];for(;w>=c&&C>=l&&g.key===f.key;)g!==f&&v(e,g,f,i,r,s),null!=f.dom&&(r=f.dom),C--,g=t[--w],f=n[C];if(l>C)T(e,t,c,w+1);else if(c>w)d(e,n,l,C+1,i,r,s);else{var S,I,E=r,x=C-l+1,R=new Array(x),L=0,N=0,D=2147483647,A=0;for(N=0;N<x;N++)R[N]=-1;for(N=C;N>=l;N--){null==S&&(S=y(t,c,w+1));var M=S[(f=n[N]).key];null!=M&&(D=M<D?M:-1,R[N-l]=M,g=t[M],t[M]=null,g!==f&&v(e,g,f,i,r,s),null!=f.dom&&(r=f.dom),A++)}if(r=E,A!==w-c+1&&T(e,t,c,w+1),0===A)d(e,n,l,C+1,i,r,s);else if(-1===D)for(I=function(e){var t=[0],n=0,i=0,r=0,s=b.length=e.length;for(r=0;r<s;r++)b[r]=e[r];for(r=0;r<s;++r)if(-1!==e[r]){var a=t[t.length-1];if(e[a]<e[r])b[r]=a,t.push(r);else{for(n=0,i=t.length-1;n<i;){var o=(n>>>1)+(i>>>1)+(n&i&1);e[t[o]]<e[r]?n=o+1:i=o}e[r]<e[t[n]]&&(n>0&&(b[r]=t[n-1]),t[n]=r)}}n=t.length,i=t[n-1];for(;n-- >0;)t[n]=i,i=b[i];return b.length=0,t}(R),L=I.length-1,N=C;N>=l;N--)h=n[N],-1===R[N-l]?p(e,h,i,s,r):I[L]===N-l?L--:k(e,h,r),null!=h.dom&&(r=n[N].dom);else for(N=C;N>=l;N--)h=n[N],-1===R[N-l]&&p(e,h,i,s,r),null!=h.dom&&(r=n[N].dom)}}else{var O=t.length<n.length?t.length:n.length;for(l=l<c?l:c;l<O;l++)(u=t[l])===(h=n[l])||null==u&&null==h||(null==u?p(e,h,i,s,_(t,l+1,r)):null==h?P(e,u):v(e,u,h,i,_(t,l+1,r),s));t.length>O&&T(e,t,l,t.length),n.length>O&&d(e,n,l,n.length,i,r,s)}}}function v(t,n,r,s,a,o){var c=n.tag;if(c===r.tag&&n.is===r.is){if(r.state=n.state,r.events=n.events,function(e,t){do{var n;if(null!=e.attrs&&"function"==typeof e.attrs.onbeforeupdate)if(void 0!==(n=u.call(e.attrs.onbeforeupdate,e,t))&&!n)break;if("string"!=typeof e.tag&&"function"==typeof e.state.onbeforeupdate)if(void 0!==(n=u.call(e.state.onbeforeupdate,e,t))&&!n)break;return!1}while(0);return e.dom=t.dom,e.domSize=t.domSize,e.instance=t.instance,e.attrs=t.attrs,e.children=t.children,e.text=t.text,!0}(r,n))return;if("string"==typeof c)switch(null!=r.attrs&&z(r.attrs,r,s),c){case"#":!function(e,t){e.children.toString()!==t.children.toString()&&(e.dom.nodeValue=t.children);t.dom=e.dom}(n,r);break;case"<":!function(e,t,n,i,r){t.children!==n.children?(x(e,t),f(e,n,i,r)):(n.dom=t.dom,n.domSize=t.domSize)}(t,n,r,o,a);break;case"[":!function(e,t,n,i,r,s){m(e,t.children,n.children,i,r,s);var a=0,o=n.children;if(n.dom=null,null!=o)for(var l=0;l<o.length;l++){var c=o[l];null!=c&&null!=c.dom&&(null==n.dom&&(n.dom=c.dom),a+=c.domSize||1)}n.domSize=a}(t,n,r,s,a,o);break;default:!function(e,t,n,r){var s=t.dom=e.dom;r=l(t)||r,(e.attrs!=t.attrs||null!=t.attrs&&!i.get(t.attrs))&&function(e,t,n,r){var s;if(null!=t)for(var a in t!==n||i.has(n)||console.warn("Don't reuse attrs object, use new object for every redraw, this will throw in next major"),t)null==(s=t[a])||null!=n&&null!=n[a]||N(e,a,s,r);if(null!=n)for(var a in n)L(e,a,t&&t[a],n[a],r)}(t,e.attrs,t.attrs,r);S(t)||m(s,e.children,t.children,n,null,r)}(n,r,s,o)}else!function(t,n,i,r,s,a){if(i.instance=e.normalize(u.call(i.state.view,i)),i.instance===i)throw Error("A view cannot return the vnode it received as argument");z(i.state,i,r),null!=i.attrs&&z(i.attrs,i,r);null!=i.instance?(null==n.instance?p(t,i.instance,r,a,s):v(t,n.instance,i.instance,r,s,a),i.dom=i.instance.dom,i.domSize=i.instance.domSize):(null!=n.instance&&P(t,n.instance),i.domSize=0)}(t,n,r,s,a,o)}else P(t,n),p(t,r,s,o,a)}function y(e,t,n){for(var i=Object.create(null);t<n;t++){var r=e[t];if(null!=r){var s=r.key;null!=s&&(i[s]=t)}}return i}var w,b=[];function _(e,t,n){for(;t<e.length;t++)if(null!=e[t]&&null!=e[t].dom)return e[t].dom;return n}function k(e,t,i){if(null!=t.dom){var r;if(null==t.domSize||1===t.domSize)r=t.dom;else for(var s of(r=o(e).createDocumentFragment(),n(t)))r.appendChild(s);C(e,r,i)}}function C(e,t,n){null!=n?e.insertBefore(t,n):e.appendChild(t)}function S(e){if(null==e.attrs||null==e.attrs.contenteditable&&null==e.attrs.contentEditable)return!1;var t=e.children;if(null!=t&&1===t.length&&"<"===t[0].tag){var n=t[0].children;e.dom.innerHTML!==n&&(e.dom.innerHTML=n)}else if(null!=t&&0!==t.length)throw new Error("Child node of a contenteditable must be trusted.");return!0}function T(e,t,n,i){for(var r=n;r<i;r++){var s=t[r];null!=s&&P(e,s)}}function I(e,i,r,a){var o=i.state,l=u.call(r.onbeforeremove,i);if(null!=l){var h=s;for(var d of n(i))t.set(d,h);a.v++,Promise.resolve(l).finally((function(){c(i,o),E(e,i,a)}))}}function E(e,t,n){0==--n.v&&(R(t),x(e,t))}function P(e,t){var n={v:1};"string"!=typeof t.tag&&"function"==typeof t.state.onbeforeremove&&I(e,t,t.state,n),t.attrs&&"function"==typeof t.attrs.onbeforeremove&&I(e,t,t.attrs,n),E(e,t,n)}function x(e,t){if(null!=t.dom)if(null==t.domSize||1===t.domSize)e.removeChild(t.dom);else for(var i of n(t))e.removeChild(i)}function R(e){if("string"!=typeof e.tag&&"function"==typeof e.state.onremove&&u.call(e.state.onremove,e),e.attrs&&"function"==typeof e.attrs.onremove&&u.call(e.attrs.onremove,e),"string"!=typeof e.tag)null!=e.instance&&R(e.instance);else{null!=e.events&&(e.events._=null);var t=e.children;if(Array.isArray(t))for(var n=0;n<t.length;n++){var i=t[n];null!=i&&R(i)}}}function L(e,t,n,i,r){if("key"!==t&&null!=i&&!D(t)&&(n!==i||function(e,t){return"value"===t||"checked"===t||"selectedIndex"===t||"selected"===t&&(e.dom===h(e.dom)||"option"===e.tag&&e.dom.parentNode===h(e.dom))}(e,t)||"object"==typeof i)){if("o"===t[0]&&"n"===t[1])return j(e,t,i);if("xlink:"===t.slice(0,6))e.dom.setAttributeNS("http://www.w3.org/1999/xlink",t.slice(6),i);else if("style"===t)M(e.dom,n,i);else if(A(e,t,r)){if("value"===t){if(("input"===e.tag||"textarea"===e.tag)&&e.dom.value===""+i)return;if("select"===e.tag&&null!==n&&e.dom.value===""+i)return;if("option"===e.tag&&null!==n&&e.dom.value===""+i)return;if("input"===e.tag&&"file"===e.attrs.type&&""+i!="")return void console.error("`value` is read-only on file inputs!")}"input"===e.tag&&"type"===t?e.dom.setAttribute(t,i):e.dom[t]=i}else"boolean"==typeof i?i?e.dom.setAttribute(t,""):e.dom.removeAttribute(t):e.dom.setAttribute("className"===t?"class":t,i)}}function N(e,t,n,i){if("key"!==t&&null!=n&&!D(t))if("o"===t[0]&&"n"===t[1])j(e,t,void 0);else if("style"===t)M(e.dom,n,null);else if(!A(e,t,i)||"className"===t||"title"===t||"value"===t&&("option"===e.tag||"select"===e.tag&&-1===e.dom.selectedIndex&&e.dom===h(e.dom))||"input"===e.tag&&"type"===t){var r=t.indexOf(":");-1!==r&&(t=t.slice(r+1)),!1!==n&&e.dom.removeAttribute("className"===t?"class":t)}else e.dom[t]=null}function D(e){return"oninit"===e||"oncreate"===e||"onupdate"===e||"onremove"===e||"onbeforeremove"===e||"onbeforeupdate"===e}function A(e,t,n){return void 0===n&&(e.tag.indexOf("-")>-1||e.is||"href"!==t&&"list"!==t&&"form"!==t&&"width"!==t&&"height"!==t)&&t in e.dom}function M(e,t,n){if(t===n);else if(null==n)e.style="";else if("object"!=typeof n)e.style=n;else if(null==t||"object"!=typeof t)for(var i in e.style="",n){null!=(r=n[i])&&(i.includes("-")?e.style.setProperty(i,String(r)):e.style[i]=String(r))}else{for(var i in t)null!=t[i]&&null==n[i]&&(i.includes("-")?e.style.removeProperty(i):e.style[i]="");for(var i in n){var r;null!=(r=n[i])&&(r=String(r))!==String(t[i])&&(i.includes("-")?e.style.setProperty(i,r):e.style[i]=r)}}}function O(){this._=r}function j(e,t,n){if(null!=e.events){if(e.events._=r,e.events[t]===n)return;null==n||"function"!=typeof n&&"object"!=typeof n?(null!=e.events[t]&&e.dom.removeEventListener(t.slice(2),e.events,!1),e.events[t]=void 0):(null==e.events[t]&&e.dom.addEventListener(t.slice(2),e.events,!1),e.events[t]=n)}else null==n||"function"!=typeof n&&"object"!=typeof n||(e.events=new O,e.dom.addEventListener(t.slice(2),e.events,!1),e.events[t]=n)}function F(e,t,n){"function"==typeof e.oninit&&u.call(e.oninit,t),"function"==typeof e.oncreate&&n.push(u.bind(e.oncreate,t))}function z(e,t,n){"function"==typeof e.onupdate&&n.push(u.bind(e.onupdate,t))}return O.prototype=Object.create(null),O.prototype.handleEvent=function(e){var t,n=this["on"+e.type];"function"==typeof n?t=n.call(e.currentTarget,e):"function"==typeof n.handleEvent&&n.handleEvent(e);var i=this;null!=i._&&(!1!==e.redraw&&(0,i._)(),null!=t&&"function"==typeof t.then&&Promise.resolve(t).then((function(){null!=i._&&!1!==e.redraw&&(0,i._)()}))),!1===t&&(e.preventDefault(),e.stopPropagation())},function(t,n,i){if(!t)throw new TypeError("DOM element being rendered to does not exist.");if(null!=w&&t.contains(w))throw new TypeError("Node is currently being rendered to and thus is locked.");var a=r,o=w,l=[],c=h(t),u=t.namespaceURI;w=t,r="function"==typeof i?i:void 0,s={};try{null==t.vnodes&&(t.textContent=""),n=e.normalizeChildren(Array.isArray(n)?n:[n]),m(t,t.vnodes,n,l,null,"http://www.w3.org/1999/xhtml"===u?void 0:u),t.vnodes=n,null!=c&&h(t)!==c&&"function"==typeof c.focus&&c.focus();for(var d=0;d<l.length;d++)l[d]()}finally{r=a,w=o}}},zh}function Ed(){return qh?$h:(qh=1,$h=Id()())}function Pd(){if(Wh)return Hh;Wh=1;var e=Ed();return Hh=function(){if(Vh)return Bh;Vh=1;var e=vd();return Bh=function(t,n,i){var r=[],s=!1,a=-1;function o(){for(a=0;a<r.length;a+=2)try{t(r[a],e(r[a+1]),l)}catch(e){i.error(e)}a=-1}function l(){s||(s=!0,n((function(){s=!1,o()})))}return l.sync=o,{mount:function(n,i){if(null!=i&&null==i.view&&"function"!=typeof i)throw new TypeError("m.mount expects a component, not a vnode.");var s=r.indexOf(n);s>=0&&(r.splice(s,2),s<=a&&(a-=2),t(n,[])),null!=i&&(r.push(n,i),t(n,e(i),l))},redraw:l}},Bh}()(e,"undefined"!=typeof requestAnimationFrame?requestAnimationFrame:null,"undefined"!=typeof console?console:null),Hh}function xd(){return Kh?Gh:(Kh=1,Gh=function(e){if("[object Object]"!==Object.prototype.toString.call(e))return"";var t=[];for(var n in e)i(n,e[n]);return t.join("&");function i(e,n){if(Array.isArray(n))for(var r=0;r<n.length;r++)i(e+"["+r+"]",n[r]);else if("[object Object]"===Object.prototype.toString.call(n))for(var r in n)i(e+"["+r+"]",n[r]);else t.push(encodeURIComponent(e)+(null!=n&&""!==n?"="+encodeURIComponent(n):""))}})}function Rd(){if(Jh)return Yh;Jh=1;var e=xd();return Yh=function(t,n){if(/:([^\/\.-]+)(\.{3})?:/.test(t))throw new SyntaxError("Template parameter names must be separated by either a '/', '-', or '.'.");if(null==n)return t;var i=t.indexOf("?"),r=t.indexOf("#"),s=r<0?t.length:r,a=i<0?s:i,o=t.slice(0,a),l={};Object.assign(l,n);var c=o.replace(/:([^\/\.-]+)(\.{3})?/g,(function(e,t,i){return delete l[t],null==n[t]?e:i?n[t]:encodeURIComponent(String(n[t]))})),u=c.indexOf("?"),h=c.indexOf("#"),d=h<0?c.length:h,p=u<0?d:u,g=c.slice(0,p);i>=0&&(g+=t.slice(i,s)),u>=0&&(g+=(i<0?"?":"&")+c.slice(u,d));var f=e(l);return f&&(g+=(i<0&&u<0?"?":"&")+f),r>=0&&(g+=t.slice(r)),h>=0&&(g+=(r<0?"":"&")+c.slice(h)),g},Yh}function Ld(){if(Xh)return Zh;Xh=1;var e=Rd(),t=wd();return Zh=function(n,i){function r(e){return new Promise(e)}function s(e,n){for(var i in e.headers)if(t.call(e.headers,i)&&i.toLowerCase()===n)return!0;return!1}return r.prototype=Promise.prototype,r.__proto__=Promise,{request:function(a,o){"string"!=typeof a?(o=a,a=a.url):null==o&&(o={});var l=function(i,r){return new Promise((function(a,o){i=e(i,r.params);var l,c=null!=r.method?r.method.toUpperCase():"GET",u=r.body,h=(null==r.serialize||r.serialize===JSON.serialize)&&!(u instanceof n.FormData||u instanceof n.URLSearchParams),d=r.responseType||("function"==typeof r.extract?"":"json"),p=new n.XMLHttpRequest,g=!1,f=!1,m=p,v=p.abort;for(var y in p.abort=function(){g=!0,v.call(this)},p.open(c,i,!1!==r.async,"string"==typeof r.user?r.user:void 0,"string"==typeof r.password?r.password:void 0),h&&null!=u&&!s(r,"content-type")&&p.setRequestHeader("Content-Type","application/json; charset=utf-8"),"function"==typeof r.deserialize||s(r,"accept")||p.setRequestHeader("Accept","application/json, text/*"),r.withCredentials&&(p.withCredentials=r.withCredentials),r.timeout&&(p.timeout=r.timeout),p.responseType=d,r.headers)t.call(r.headers,y)&&p.setRequestHeader(y,r.headers[y]);p.onreadystatechange=function(e){if(!g&&4===e.target.readyState)try{var t,n=e.target.status>=200&&e.target.status<300||304===e.target.status||/^file:\/\//i.test(i),s=e.target.response;if("json"===d){if(!e.target.responseType&&"function"!=typeof r.extract)try{s=JSON.parse(e.target.responseText)}catch(e){s=null}}else d&&"text"!==d||null==s&&(s=e.target.responseText);if("function"==typeof r.extract?(s=r.extract(e.target,r),n=!0):"function"==typeof r.deserialize&&(s=r.deserialize(s)),n){if("function"==typeof r.type)if(Array.isArray(s))for(var l=0;l<s.length;l++)s[l]=new r.type(s[l]);else s=new r.type(s);a(s)}else{var c=function(){try{t=e.target.responseText}catch(e){t=s}var n=new Error(t);n.code=e.target.status,n.response=s,o(n)};0===p.status?setTimeout((function(){f||c()})):c()}}catch(e){o(e)}},p.ontimeout=function(e){f=!0;var t=new Error("Request timed out");t.code=e.target.status,o(t)},"function"==typeof r.config&&(p=r.config(p,r,i)||p)!==m&&(l=p.abort,p.abort=function(){g=!0,l.call(this)}),null==u?p.send():"function"==typeof r.serialize?p.send(r.serialize(u)):u instanceof n.FormData||u instanceof n.URLSearchParams?p.send(u):p.send(JSON.stringify(u))}))}(a,o);if(!0===o.background)return l;var c=0;function u(){0==--c&&"function"==typeof i&&i()}return function e(t){var n=t.then;return t.constructor=r,t.then=function(){c++;var i=n.apply(t,arguments);return i.then(u,(function(e){if(u(),0===c)throw e})),e(i)},t}(l)}}},Zh}function Nd(){if(nd)return td;nd=1;var e=/%(?:[0-7]|(?!c[01]|e0%[89]|ed%[ab]|f0%8|f4%[9ab])(?:c|d|(?:e|f[0-4]%[89ab])[\da-f]%[89ab])[\da-f]%[89ab])[\da-f]/gi;return td=function(t){return String(t).replace(e,decodeURIComponent)}}function Dd(){if(rd)return id;rd=1;var e=Nd();return id=function(t){if(""===t||null==t)return{};"?"===t.charAt(0)&&(t=t.slice(1));for(var n=t.split("&"),i={},r={},s=0;s<n.length;s++){var a=n[s].split("="),o=e(a[0]),l=2===a.length?e(a[1]):"";"true"===l?l=!0:"false"===l&&(l=!1);var c=o.split(/\]\[?|\[/),u=r;o.indexOf("[")>-1&&c.pop();for(var h=0;h<c.length;h++){var d=c[h],p=c[h+1],g=""==p||!isNaN(parseInt(p,10));if(""===d)null==i[o=c.slice(0,h).join()]&&(i[o]=Array.isArray(u)?u.length:0),d=i[o]++;else if("__proto__"===d)break;if(h===c.length-1)u[d]=l;else{var f=Object.getOwnPropertyDescriptor(u,d);null!=f&&(f=f.value),null==f&&(u[d]=f=g?[]:{}),u=f}}}return r}}function Ad(){if(ad)return sd;ad=1;var e=Dd();return sd=function(t){var n=t.indexOf("?"),i=t.indexOf("#"),r=i<0?t.length:i,s=n<0?r:n,a=t.slice(0,s).replace(/\/{2,}/g,"/");return a?"/"!==a[0]&&(a="/"+a):a="/",{path:a,params:n<0?{}:e(t.slice(n+1,r))}}}function Md(){if(ld)return od;ld=1;var e=Ad();return od=function(t){var n=e(t),i=Object.keys(n.params),r=[],s=new RegExp("^"+n.path.replace(/:([^\/.-]+)(\.{3}|\.(?!\.)|-)?|[\\^$*+.()|\[\]{}]/g,(function(e,t,n){return null==t?"\\"+e:(r.push({k:t,r:"..."===n}),"..."===n?"(.*)":"."===n?"([^/]+)\\.":"([^/]+)"+(n||""))}))+"\\/?$");return function(e){for(var t=0;t<i.length;t++)if(n.params[i[t]]!==e.params[i[t]])return!1;if(!r.length)return s.test(e.path);var a=s.exec(e.path);if(null==a)return!1;for(t=0;t<r.length;t++)e.params[r[t].k]=r[t].r?a[t+1]:decodeURIComponent(a[t+1]);return!0}},od}function Od(){if(ud)return cd;ud=1;var e=wd(),t=/^(?:key|oninit|oncreate|onbeforeupdate|onupdate|onbeforeremove|onremove)$/;return cd=function(n,i){var r={};if(null!=i)for(var s in n)e.call(n,s)&&!t.test(s)&&i.indexOf(s)<0&&(r[s]=n[s]);else for(var s in n)e.call(n,s)&&!t.test(s)&&(r[s]=n[s]);return r}}function jd(){if(gd)return pd;gd=1;var e=Pd();return pd=function(){if(dd)return hd;dd=1;var e=vd(),t=kd(),n=Nd(),i=Rd(),r=Ad(),s=Md(),a=Od();return hd=function(o,l){var c,u,h,d,p,g,f,m,v=Promise.resolve(),y=!1,w=!1,b=!1,_={onremove:function(){w=b=!1,o.removeEventListener("popstate",S,!1)},view:function(){var t=e(p,g.key,g);return d?d.render(t):[t]}},k=T.SKIP={};function C(){y=!1;var e=o.location.hash;"#"!==T.prefix[0]&&(e=o.location.search+e,"?"!==T.prefix[0]&&"/"!==(e=o.location.pathname+e)[0]&&(e="/"+e));var t=n(e).slice(T.prefix.length),i=r(t);function s(e){console.error(e),T.set(h,null,{replace:!0})}Object.assign(i.params,o.history.state),function e(n){for(;n<u.length;n++)if(u[n].check(i)){var r=u[n].component,a=u[n].route,o=r,y=m=function(s){if(y===m){if(s===k)return e(n+1);p=null==s||"function"!=typeof s.view&&"function"!=typeof s?"div":s,g=i.params,f=t,m=null,d=r.render?r:null,b?l.redraw():(b=!0,l.mount(c,_))}};return void(r.view||"function"==typeof r?(r={},y(o)):r.onmatch?v.then((function(){return r.onmatch(i.params,t,a)})).then(y,t===h?null:s):y())}if(t===h)throw new Error("Could not resolve default route "+h+".");T.set(h,null,{replace:!0})}(0)}function S(){y||(y=!0,setTimeout(C))}function T(e,t,n){if(!e)throw new TypeError("DOM element being rendered to does not exist.");if(u=Object.keys(n).map((function(e){if("/"!==e[0])throw new SyntaxError("Routes must start with a '/'.");if(/:([^\/\.-]+)(\.{3})?:/.test(e))throw new SyntaxError("Route parameter names must be separated with either '/', '.', or '-'.");return{route:e,component:n[e],check:s(e)}})),h=t,null!=t){var i=r(t);if(!u.some((function(e){return e.check(i)})))throw new ReferenceError("Default route doesn't match any known routes.")}c=e,o.addEventListener("popstate",S,!1),w=!0,C()}return T.set=function(e,t,n){if(null!=m&&((n=n||{}).replace=!0),m=null,e=i(e,t),w){S();var r=n?n.state:null,s=n?n.title:null;n&&n.replace?o.history.replaceState(r,s,T.prefix+e):o.history.pushState(r,s,T.prefix+e)}else o.location.href=T.prefix+e},T.get=function(){return f},T.prefix="#!",T.Link={view:function(e){var n,r,s,o=t(e.attrs.selector||"a",a(e.attrs,["options","params","selector","onclick"]),e.children);return(o.attrs.disabled=Boolean(o.attrs.disabled))?(o.attrs.href=null,o.attrs["aria-disabled"]="true"):(n=e.attrs.options,r=e.attrs.onclick,s=i(o.attrs.href,e.attrs.params),o.attrs.href=T.prefix+s,o.attrs.onclick=function(e){var t;"function"==typeof r?t=r.call(e.currentTarget,e):null==r||"object"!=typeof r||"function"==typeof r.handleEvent&&r.handleEvent(e),!1===t||e.defaultPrevented||0!==e.button&&0!==e.which&&1!==e.which||e.currentTarget.target&&"_self"!==e.currentTarget.target||e.ctrlKey||e.metaKey||e.shiftKey||e.altKey||(e.preventDefault(),e.redraw=!1,T.set(s,null,n))}),o}},T.param=function(e){return g&&null!=e?g[e]:g},T},hd}()("undefined"!=typeof window?window:null,e),pd}var Fd=function(){if(md)return fd;md=1;var e=Cd(),t=Pd(),n=function(){if(ed)return Qh;ed=1;var e=Pd();return Qh=Ld()("undefined"!=typeof window?window:null,e.redraw)}(),i=jd(),r=function(){return e.apply(this,arguments)};return r.m=e,r.trust=e.trust,r.fragment=e.fragment,r.Fragment="[",r.mount=t.mount,r.route=i,r.render=Ed(),r.redraw=t.redraw,r.request=n.request,r.parseQueryString=Dd(),r.buildQueryString=xd(),r.parsePathname=Ad(),r.buildPathname=Rd(),r.vnode=vd(),r.censor=Od(),r.domFor=Td(),fd=r}(),zd=mh(Fd);const Ud=(e,t)=>`${e.serverUrl}${t}`,$d=async e=>{const{userEmail:t,userNick:n,userFullname:i,token:r}=e;return((e,t)=>zd.request({withCredentials:!1,...t,url:Ud(e,t.url)}))(e,{method:"POST",url:"/login_malstadur",body:{email:t,nickname:n,fullname:i,token:r,bearer_auth:!0}})},qd=12e4;let Bd=null,Vd=null,Hd=0,Wd=0,Gd=!1,Kd=0;class Yd extends Error{constructor(){super("Authentication required"),this.name="AuthenticationError"}}class Jd extends Error{constructor(e){super(e),this.name="LoginThrottledError"}}const Zd=e=>new Promise((t=>setTimeout(t,e))),Xd=e=>{const t=500*2**(e-1);return Math.min(t,5e3)},Qd=()=>{Hd=0,Gd=!1,Kd=0},ep=()=>{Gd=!0,Kd=Date.now()+qd,Hd=0,console.error(`Circuit breaker opened. Login attempts blocked until ${new Date(Kd).toLocaleTimeString()}`)},tp=e=>Bd||(Bd=np(e).finally((()=>{Bd=null})),Bd),np=async e=>{if(Gd&&Date.now()>=Kd&&Qd(),Gd){const e=Math.ceil((Kd-Date.now())/6e4);throw new Jd(`Too many failed login attempts. Please wait ${e} minute(s) before trying again.`)}if(Date.now()-Wd<500&&Hd>0)throw new Jd("Please wait a moment before trying again.");let t=!0;for(;t&&Hd<3;){if(t=!1,Hd++,Wd=Date.now(),Hd>=2){const e=Xd(Hd-1);await Zd(e)}try{const n=await $d(e);if("expired"===n.status){if(e.tokenExpired)try{const n=await e.tokenExpired();"string"==typeof n&&n&&(e.token=n),Hd=0,t=!0;continue}catch(e){throw Hd=0,l(),new Error(`Failed to refresh authentication token: ${e instanceof Error?e.message:String(e)}`)}throw Hd=0,l(),new Error("Authentication token has expired. Please log in again.")}if("success"!==n.status)throw l(),new Error(`Authentication failed: ${n.message||n.status}`);e.netskraflUserId=n.user_id||e.netskraflUserId,e.account=n.account||e.netskraflUserId,e.userNick=n.nickname||e.userNick,e.firebaseApiKey=n.firebase_api_key||e.firebaseApiKey,e.beginner=n.prefs?.beginner??!0,e.fairPlay=n.prefs?.fairplay??!1,e.ready=n.prefs?.ready??!0,e.readyTimed=n.prefs?.ready_timed??!0,e.audio=n.prefs?.audio??!1,e.fanfare=n.prefs?.fanfare??!1,e.hasPaid=n.prefs?.haspaid??!1;const i=n.token||"";return e.netskraflToken=i,Vd={token:i,userEmail:e.userEmail},o({userEmail:e.userEmail,netskraflUserId:e.netskraflUserId,userNick:e.userNick,firebaseApiKey:e.firebaseApiKey,netskraflToken:e.netskraflToken,beginner:e.beginner,fairPlay:e.fairPlay,ready:e.ready,readyTimed:e.readyTimed,audio:e.audio,fanfare:e.fanfare}),zd.redraw(),await dh(e,n.firebase_token),void Qd()}catch(e){if(Hd>=3)throw ep(),new Error(`Login failed after 3 attempts. Please wait ${Math.ceil(2)} minutes before trying again.`);if(!t)throw e}}if(Hd>=3)throw ep(),new Error("Maximum login attempts exceeded. Please try again later.")},ip=async(e,t,n=0)=>{if(Bd)try{await Bd}catch(e){}Vd&&Vd.userEmail===e.userEmail&&e.netskraflToken!==Vd.token?e.netskraflToken=Vd.token:!e.netskraflToken||Vd&&Vd.userEmail===e.userEmail||(Vd={token:e.netskraflToken,userEmail:e.userEmail}),n||function(e){if(nh||(th||hh(e),th&&(nh=Ms(th))),!nh||null===nh.currentUser)return!1;if(!ih&&th){if(ih=lh(th),!ih)return console.error("Failed to initialize Firebase Database"),!1;uh(e),rh||(rh=Wn(th),rh||console.error("Failed to initialize Firebase Analytics"))}return!0}(e)&&e.netskraflToken||await tp(e);try{let n=!0,{headers:i}=t;const r=e.netskraflToken;return r&&"*"!==r&&(i={...i,Authorization:`Bearer ${r}`},n=!1),await zd.request({withCredentials:n,...t,url:Ud(e,t.url),headers:i,extract:e=>{if(401===e.status)throw new Yd;if(!e.responseText)return null;try{return JSON.parse(e.responseText)}catch(t){return e.responseText}}})}catch(i){if(i instanceof Yd&&!n)return await tp(e),ip(e,t,n+1);throw i}},rp=(e,t)=>ip(e,t),sp=(e,t)=>{const n=`${e.movesUrl}${t.url}`,i={"Content-Type":"application/json; charset=UTF-8",Authorization:`Bearer ${e.movesAccessKey}`,...t?.headers};return zd.request({withCredentials:!1,method:"POST",...t,url:n,headers:i})},ap="ABCDEFGHIJKLMNO",op=15,lp=1.5,cp="2025-11-01",up={1:"Enginn stafur lagður niður",2:"Fyrsta orð verður að liggja um byrjunarreitinn",3:"Orð verður að vera samfellt á borðinu",4:"Orð verður að tengjast orði sem fyrir er",5:"Reitur þegar upptekinn",6:"Ekki má vera eyða í orði",7:"word_not_found",8:"word_not_found",9:"Of margir stafir lagðir niður",10:"Stafur er ekki í rekkanum",11:"Of fáir stafir eftir, skipting ekki leyfð",12:"Of mörgum stöfum skipt",13:"Leik vantar á borðið - notið F5/Refresh",14:"Notandi ekki innskráður - notið F5/Refresh",15:"Rangur eða óþekktur notandi",16:"Viðureign finnst ekki",17:"Viðureign er ekki utan tímamarka",18:"Netþjónn gat ekki tekið við leiknum - reyndu aftur",19:"Véfenging er ekki möguleg í þessari viðureign",20:"Síðasti leikur er ekki véfengjanlegur",21:"Aðeins véfenging eða pass leyfileg",server:"Netþjónn gat ekki tekið við leiknum - reyndu aftur"};class hp{constructor(e,t){this.sounds=new Map,this.initialized=!1;const n=Ud(e,"/static"),i={"your-turn":`${n}/your-turn.mp3`,"you-win":`${n}/you-win.mp3`,"new-msg":`${n}/new-msg.mp3`};this.soundUrls={...i,...t||{}}}initialize(){this.initialized||(Object.entries(this.soundUrls).forEach((([e,t])=>{const n=new Audio(t);n.preload="auto",n.addEventListener("error",(()=>{console.warn(`Failed to load audio: ${e} from ${t}`)})),this.sounds.set(e,n)})),this.initialized=!0)}play(e){this.initialized||this.initialize();const t=this.sounds.get(e);t?(t.currentTime=0,t.play().catch((t=>{"NotAllowedError"!==t.name&&console.warn(`Failed to play audio ${e}:`,t)}))):console.warn(`Audio not found: ${e}`)}updateSoundUrl(e,t){if(this.soundUrls[e]=t,this.initialized){const n=new Audio(t);n.preload="auto",n.addEventListener("error",(()=>{console.warn(`Failed to load audio: ${e} from ${t}`)})),this.sounds.set(e,n)}}dispose(){this.sounds.forEach((e=>{e.pause(),e.src=""})),this.sounds.clear(),this.initialized=!1}}let dp=null;function pp(e,t){return dp||(dp=new hp(e,t)),dp}var gp={Leikir:{en:"Moves",nb:"Trekk",nn:"Trekk",pl:"Ruchy",ga:"Bogann"},submit_move:{is:"Leika",en:"Move",nb:"Trekk",nn:"Trekk",pl:"Wykonaj ruch",ga:"Bog"},"Viðureignir":{en:"Games",nb:"Spill",nn:"Spel",pl:"Gry",ga:"Cluichí"},"Borðið":{en:"Board",nb:"Brett",nn:"Brett",pl:"Plansza",ga:"Bord"},"Tveggja stafa orð":{en:"Two letter words",nb:"Tobokstavsord",nn:"Tobokstavsord",pl:"Dwuliterowe słowa",ga:"Focail dhá litir"},Spjall:{en:"Chat",nb:"Chat",nn:"Chat",pl:"Czat",ga:"Comhrá"},"Þessi vefslóð er ekki rétt":{en:"Unknown URL",nb:"Ukjent URL",nn:"Ukjend URL",pl:"Nieznany URL",ga:"URL Anaithnid"},player_info:{is:"Upplýsingar um leikmann",en:"Player information",nb:"Spillerinformasjon",nn:"Spelarinformasjon",pl:"Informacje o graczu",ga:"Eolas Imreoir"},"Einkenni:":{en:"Nickname:",nb:"Kallenavn:",nn:"Kallenamn:",pl:"Pseudonim:",ga:"Leasainm:"},"Verður að vera útfyllt":{en:"Required field",nb:"Obligatorisk felt",nn:"Obligatorisk felt",pl:"Pole wymagane",ga:"Réimse Riachtanach"},"Fullt nafn:":{en:"Full name:",nb:"Fullt navn:",nn:"Fullt namn:",pl:"Pełne imię i nazwisko:",ga:"Ainm Iomlán:"},"Valfrjálst - sýnt í notendalistum Netskrafls":{en:"Optional - shown in user lists",nb:"Valgfritt - vist i brukerlister",nn:"Valfritt - vist i brukarlister",pl:"Opcjonalne - pokazane na listach użytkowników",ga:"Roghnach - le feiceáil i liostaí úsáideoirí"},"Tölvupóstfang:":{en:"E-mail:",nb:"E-post:",nn:"E-post:",pl:"E-mail:",ga:"Ríomhphost:"},explain_email:{is:"Ef póstfang er gefið upp mun Netskrafl geta sent tölvupóst þegar þú átt leik",en:"If given, Explo can send e-mail to the address when it's your turn in a game",nb:"Hvis oppgitt, kan Explo sende e-post til adressen når det er din tur i et spill",nn:"Viss oppgjeve, kan Explo sende e-post til adressa når det er din tur i eit spel",pl:"Jeśli podano, Explo może wysłać e-mail na ten adres, gdy nadejdzie Twoja kolej w grze",ga:"Más tugadh é, is féidir le Explo ríomhphost a sheoladh chuig an seoladh nuair atá sé do sheal sa chluiche"},"Hljóðmerki:":{en:"Sounds:",nb:"Lyder:",nn:"Lydar:",pl:"Dźwięki:",ga:"Fuaimeanna:"},"Hljóð á/af":{en:"Sound on/off",nb:"Lyd på/av",nn:"Lyd på/av",pl:"Dźwięki włącz/wyłącz",ga:"Fuaimeanna ar/amuigh"},"Lúðraþytur eftir sigur:":{en:"Fanfare after a win:",nb:"Trompeter etter seier:",nn:"Trompeter etter siger:",pl:"Trąbki po zwycięstwie:",ga:"Trumpaí tar éis bua:"},"Lúðraþytur á/af":{en:"Fanfare on/off",nb:"Trompeter på/av",nn:"Trompeter på/av",pl:"Trąbki włącz/wyłącz",ga:"Trumpaí ar/amuigh"},explain_sound:{is:"Stillir hvort hljóðmerki heyrast t.d. þegar andstæðingur leikur og þegar sigur vinnst",en:"Controls whether sounds are played, e.g. when an opponent makes a move or when you win",nb:"Kontrollerer om lyder spilles, f.eks. når en motstander gjør et trekk eller når du vinner",nn:"Kontrollerer om lydar blir spelte, t.d. når ein motstandar gjer eit trekk eller når du vinn",pl:"Kontroluje, czy dźwięki są odtwarzane, np. gdy przeciwnik wykonuje ruch lub gdy wygrywasz",ga:"Rialaíonn sé an seinntear fuaimeanna, m.sh. nuair a bhogann freasúra nó nuair a bhuaigh tú"},"Sýna reitagildi:":{en:"Show multipliers:",nb:"Vis multiplikatorer:",nn:"Vis multiplikatorar:",pl:"Pokaż mnożniki:",ga:"Taispeáin iolraitheoirí:"},"Nýi skraflpokinn:":{en:"Use the new bag:",nb:"Bruk den nye posen:",nn:"Bruk den nye posen:",pl:"Użyj nowego worka:",ga:"Bain úsáid as an mála nua:"},"Án hjálpartækja:":{en:"Without helpers:",nb:"Uten hjelpemidler:",nn:"Utan hjelpemiddel:",pl:"Bez pomocy:",ga:"Gan chúntóirí:"},Vista:{en:"Save",nb:"Lagre",nn:"Lagre",pl:"Zapisz",ga:"Sábháil"},"Hætta við":{en:"Cancel",nb:"Avbryt",nn:"Bryt av",pl:"Anuluj",ga:"Cealaigh"},"Skrá mig út":{en:"Log out",nb:"Logg ut",nn:"Logg ut",pl:"Wyloguj się",ga:"Logáil Amach"},"Þú ert áskrifandi!":{en:"You're a subscriber!",nb:"Du er en abonnent!",nn:"Du er ein abonnent!",pl:"Jesteś subskrybentem!",ga:"Is síntiúsóir tú!"},"Gerast áskrifandi":{en:"Subscribe",nb:"Abonner",nn:"Abonner",pl:"Subskrybuj",ga:"Liostáil"},"Tek við áskorunum!":{en:"Accepting challenges!",nb:"Aksepterer utfordringer!",nn:"Tek imot utfordringar!",pl:"Akceptuje wyzwania!",ga:"Ag glacadh le dúshláin!"},"Til í viðureign með klukku!":{en:"Ready for timed games!",nb:"Klar for tidsbegrensede spill!",nn:"Klar for tidsavgrensa spel!",pl:"Gotowy na gry z czasem!",ga:"Réidh do chluichí ama!"},"Stillir hvort ":{en:"Controls whether ",nb:"Kontrollerer om ",nn:"Styrer om ",pl:"Kontroluje czy ",ga:"Rialaíonn sé an "},"minnismiði":{en:"a memo sticker",nb:"en huskelapp",nn:"ein hugselapp",pl:"naklejka memo",ga:"nóta meabhrúcháin"}," um margföldunargildi reita er sýndur við borðið":{en:" with square multipliers is shown beside the board",nb:" med rute-multiplikatorer vises ved siden av brettet",nn:" med rute-multiplikatorar blir vist ved sida av brettet",pl:" z mnożnikami kwadratów jest pokazany obok planszy",ga:" le hiolraitheoirí cearnóg le feiceáil in aice leis an mbord"},"Gefur til kynna hvort þú sért reiðubúin(n) að\nskrafla með ":{en:"Indicates whether you are ready to play with\n",nb:"Indikerer om du er klar til å spille med\n",nn:"Indikerer om du er klar til å spele med\n",pl:"Wskazuje czy jesteś gotowy do gry z\n",ga:"Léiríonn sé an bhfuil tú ullamh chun imeartha le\n"},"nýja íslenska skraflpokanum":{en:"the new tile bag",nb:"den nye brikkeposen",nn:"den nye brikkeposen",pl:"nowym workiem z kafelkami",ga:"an mála tíleanna nua"},no_helpers:{is:"Með því að velja þessa merkingu lýsir þú því yfir að þú\nskraflir við aðra leikmenn ",en:"By selecting this option, you declare that you play\nagainst other humans ",nb:"Ved å velge dette alternativet, erklærer du at du spiller\nmot andre mennesker ",nn:"Ved å velje dette, stadfester du at du spelar\nmot andre menneske ",pl:"Wybierając tę opcję, deklarujesz, że grasz\nprzeciwko innym ludziom ",ga:"Trí an rogha seo a roghnú, dearbhaíonn tú go n-imríonn tú\ni gcoinne daoine eile "},"án stafrænna hjálpartækja":{en:"without helpers or tools",nb:"uten hjelpemidler eller verktøy",nn:"utan hjelpemiddel eller verktøy",pl:"bez pomocy lub narzędzi",ga:"gan chúntóirí ná uirlisí"}," af nokkru tagi":{en:" of any kind",nb:" av noe slag",nn:" av noko slag",pl:" jakiegokolwiek rodzaju",ga:" de chineál ar bith"},"Áskoranir":{en:"Challenges",nb:"Utfordringer",nn:"Utfordringar",pl:"Wyzwania",ga:"Dúshláin"},"Andstæðingar":{en:"Opponents",nb:"Motstandere",nn:"Motstandarar",pl:"Przeciwnicy",ga:"Freasúra"},Ferill:{en:"History",nb:"Historikk",nn:"Historikk",pl:"Historia",ga:"Stair"},"Þú átt leik":{en:"Your turn",nb:"Din tur",nn:"Din tur",pl:"Twoja kolej",ga:"Do sheal"},"Viðureign lokið":{en:"Game over",nb:"Spillet er over",nn:"Spelet er over",pl:"Koniec gry",ga:"Cluiche thart"},opp_move:{is:"{opponent} á leik",en:"{opponent}'s turn",nb:"{opponent}s tur",nn:"{opponent} sin tur",pl:"Tura {opponent}",ga:"Seal {opponent}"},"Átt þú leik?":{en:"Your turn?",nb:"Din tur?",nn:"Din tur?",pl:"Twoja kolej?",ga:"Do sheal?"},"Langt frá síðasta leik?":{en:"Long time elapsed since last move?",nb:"Lang tid siden siste trekk?",nn:"Lang tid sidan siste trekk?",pl:"Dużo czasu minęło od ostatniego ruchu?",ga:"An bhfuil am fada caite ón mbogadh deireanach?"},"Síðasti leikur":{en:"Last move",nb:"Siste trekk",nn:"Siste trekk",pl:"Ostatni ruch",ga:"Bogadh deireanach"},"Andstæðingur":{en:"Opponent",nb:"Motstander",nn:"Motstandar",pl:"Przeciwnik",ga:"Iomaitheoir"},"Staða":{en:"Score",nb:"Poeng",nn:"Poeng",pl:"Wynik",ga:"Scór"},Framvinda:{en:"Progress",nb:"Fremgang",nn:"Framgang",pl:"Postęp",ga:"Dul chun cinn"},Keppnishamur:{en:"Pro mode",nb:"Pro-modus",nn:"Pro-modus",pl:"Tryb Pro",ga:"Modh Pro"},"Venjuleg ótímabundin viðureign":{en:"Standard Mode without time limit",nb:"Standardmodus uten tidsbegrensning",nn:"Standardmodus utan tidsbegrensing",pl:"Tryb standardowy bez limitu czasu",ga:"Gnáthchluiche gan teorainn ama"},with_clock:{is:"Með klukku, 2 x {duration} mínútur",en:"With clock, 2 x {duration} minutes",nb:"Med klokke, 2 x {duration} minutter",nn:"Med klokke, 2 x {duration} minutt",pl:"Z zegarem, 2 x {duration} minut",ga:"Le clog, 2 x {duration} nóiméad"},Hafna:{en:"Decline",nb:"Avslå",nn:"Avslå",pl:"Odrzuć",ga:"Diúltaigh"},Afturkalla:{en:"Retract",nb:"Trekk tilbake",nn:"Trekk tilbake",pl:"Wycofaj",ga:"Tarraing siar"},"Án hjálpartækja":{en:"Without helpers",nb:"Uten hjelpemidler",nn:"Utan hjelpemiddel",pl:"Bez pomocy",ga:"Gan chúntóirí"},"Skoða feril":{en:"View history",nb:"Vis historikk",nn:"Vis historikk",pl:"Zobacz historię",ga:"Féach ar stair"},"Gamli pokinn":{en:"Old tile bag",nb:"Gammel brikkepose",nn:"Gammal brikkepose",pl:"Stary worek z kafelkami",ga:"Mála tíleanna sean"},"Hvenær":{en:"When",nb:"Når",nn:"Når",pl:"Kiedy",ga:"Cathain"},"Áskorandi":{en:"Challenger",nb:"Utfordrer",nn:"Utfordrar",pl:"Wyzwający",ga:"Dúshlánóir"},Hvernig:{en:"How",nb:"Hvordan",nn:"Korleis",pl:"Jak",ga:"Conas"},Sigur:{en:"Win",nb:"Seier",nn:"Siger",pl:"Zwycięstwo",ga:"Bua"},Jafntefli:{en:"Draw",nb:"Uavgjort",nn:"Uavgjort",pl:"Remis",ga:"Tarraingt"},Tap:{en:"Loss",nb:"Tap",nn:"Tap",pl:"Porażka",ga:"Caill"},"Úrslit":{en:"Result",nb:"Resultat",nn:"Resultat",pl:"Wynik",ga:"Toradh"},"Viðureign lauk":{en:"Game finished",nb:"Spill avsluttet",nn:"Spel avslutta",pl:"Gra zakończona",ga:"Cluiche críochnaithe"},"Mennskir andstæðingar":{en:"Human opponents",nb:"Menneskelige motstandere",nn:"Menneskelege motstandarar",pl:"Ludzcy przeciwnicy",ga:"Freasúra daonna"},"Allir andstæðingar":{en:"All opponents",nb:"Alle motstandere",nn:"Alle motstandarar",pl:"Wszyscy przeciwnicy",ga:"Gach freasúra"},Elo:{is:"Elo",en:"Elo",nb:"Elo",nn:"Elo",pl:"Elo",ga:"Elo"},Lengd:{en:"Duration",nb:"Varighet",nn:"Varigheit",pl:"Czas trwania",ga:"Fad"},"Uppáhald":{en_US:"Favorite",en:"Favourite",nb:"Favoritt",nn:"Favoritt",pl:"Ulubione",ga:"Is fearr leat"},"Uppáhalds":{en_US:"Favorites",en:"Favourites",nb:"Favoritter",nn:"Favorittar",pl:"Ulubione",ga:"Roghanna"},"Skora á":{en:"Challenge",nb:"Utfordre",nn:"Utfordre",pl:"Wyzwanie",ga:"Dúshlán"},Einkenni:{en:"Nickname",nb:"Kallenavn",nn:"Kallenamn",pl:"Pseudonim",ga:"Leasainm"},"Nafn og merki":{en:"Full name and badges",nb:"Fullt navn og merker",nn:"Fullt namn og merke",pl:"Pełna nazwa i odznaki",ga:"Ainm iomlán agus suaitheantais"}," finnst ekki":{en:" not found",nb:" ikke funnet",nn:" ikkje funne",pl:" nie znaleziono",ga:" gan aimsiú"},"Þjarkar":{en:"Robots",nb:"Roboter",nn:"Robotar",pl:"Roboty",ga:"Róbónna"},"Álínis":{en:"Online",nb:"Pålogget",nn:"Pålogga",pl:"Online",ga:"Ar líne"},"Svipaðir":{en:"Similar",nb:"Lignende",nn:"Liknande",pl:"Podobne",ga:"Cosúil"},"Topp 100":{en:"Top 100",nb:"Topp 100",nn:"Topp 100",pl:"Top 100",ga:"Barr 100"},"orð":{en:"word",nb:"ord",nn:"ord",pl:"słowo",ga:"focal"},stafur:{en:"letter",nb:"bokstav",nn:"bokstav",pl:"litera",ga:"litir"},Senda:{en:"Send",nb:"Send",nn:"Send",pl:"Wyślij",ga:"Seol"},Pass:{en:"Pass",nb:"Pass",nn:"Pass",pl:"Pas",ga:"Pas"},letter:{is:"staf",en:"letter",nb:"bokstav",nn:"bokstav",pl:"litera",ga:"litir"},letters:{is:"stafi",en:"letters",nb:"bokstaver",nn:"bokstavar",pl:"litery",ga:"litreacha"},exchanged:{is:"Skipti um {numtiles} {letters}",en:"Exchanged {numtiles} {letters}",nb:"Byttet ut {numtiles} {letters}",nn:"Bytte ut {numtiles} {letters}",pl:"Wymieniono {numtiles} {letters}",ga:"Mhalartaithe {numtiles} {letters}"},"Gaf viðureign":{en:"Resigned",nb:"Ga opp",nn:"Gav opp",pl:"Zrezygnował",ga:"D'éirigh as"},"Véfengdi lögn":{en:"Challenged move",nb:"Utfordret trekk",nn:"Utfordra trekk",pl:"Ruch zakwestionowany",ga:"Bogadh dúshlánach"},"Óleyfileg lögn":{en:"Invalid move",nb:"Ugyldig trekk",nn:"Ugyldig trekk",pl:"Nieprawidłowy ruch",ga:"Bogadh neamhbhailí"},"Röng véfenging":{en:"Unsuccessful challenge",nb:"Mislykket utfordring",nn:"Mislukka utfordring",pl:"Nieudane wyzwanie",ga:"Dúshlán gan rath"},"Umframtími":{en:"Extra time",nb:"Ekstra tid",nn:"Ekstra tid",pl:"Dodatkowy czas",ga:"Am breise"},"Stafaleif: engin":{en:"Rack leave: none",nb:"Rack forlater: ingen",nn:"Stativ forlèt: ingen",pl:"Pozostawienie na stojaku: brak",ga:"Fágáil raca: dada"},"Stafaleif: ":{en:"Rack leave: ",nb:"Rack forlater: ",nn:"Stativ forlèt: ",pl:"Pozostawienie na stojaku: ",ga:"Fágáil raca: "},"Ný áskorun":{en:"New challenge",nb:"Ny utfordring",nn:"Ny utfordring",pl:"Nowe wyzwanie",ga:"Dúshlán nua"},"Viðureign án klukku":{en:"Game with no time limit",nb:"Spill uten tidsbegrensning",nn:"Spel utan tidsbegrensing",pl:"Gra bez limitu czasu",ga:"Cluiche gan teorainn ama"},"Nota ":{en:"Enable ",nb:"Aktiver ",nn:"Aktiver ",pl:"Włącz ",ga:"Cumasaigh "},"handvirka véfengingu":{en:"manual challenges",nb:"manuelle utfordringer",nn:"manuelle utfordringar",pl:"ręczne wyzwania",ga:"dúshláin láimhe"},'("keppnishamur")':{en:'("Pro mode")',nb:'("Pro-modus")',nn:'("Pro-modus")',pl:'("Tryb Pro")',ga:'("Modh Pro")'},"Viðureignir sem standa yfir":{en:"Games in progress",nb:"Pågående spill",nn:"Pågåande spel",pl:"Trwające gry",ga:"Cluichí ar siúl"},click_on_game:{is:" - smelltu á viðureign til að skoða stöðuna og leika ef ",en:" - click on a game to view it and make a move if ",nb:" - klikk på et spill for å åpne det og gjøre et trekk hvis ",nn:" - klikk på eit spel for å opne det og gjere eit trekk viss ",pl:" - kliknij na grę, aby ją zobaczyć i wykonać ruch, jeśli ",ga:" - cliceáil ar chluiche chun é a fheiceáil agus bogadh má "}," þú átt leik":{en:" it's your turn",nb:" det er din tur",nn:" det er din tur",pl:" to twoja kolej",ga:" tá sé do sheal"},"Skorað á þig":{en:"Other players have challenged you",nb:"Andre spillere har utfordret deg",nn:"Andre spelarar har utfordra deg",pl:"Inni gracze wyzwali cię",ga:"Tá dúshláin curtha ort ag imreoirí eile"},click_on_challenge:{is:" - smelltu á áskorun til að taka henni og hefja viðureign, eða á ",en:" - click on a challenge to accept it and start a game, or on ",nb:" - klikk på en utfordring for å akseptere den og starte et spill, eller på ",nn:" - klikk på ei utfordring for å akseptere ho og starte eit spel, eller på ",pl:" - kliknij na wyzwanie, aby je zaakceptować i rozpocząć grę, lub na ",ga:" - cliceáil ar dhúshlán chun glacadh leis agus cluiche a thosú, nó ar "}," til að hafna henni":{en:" to decline it",nb:" for å avslå det",nn:" for å avslå det",pl:" aby je odrzucić",ga:" chun é a dhiúltú"},"Þú skorar á aðra":{en:"You challenge other players",nb:"Du utfordrer andre spillere",nn:"Du utfordrar andre spelarar",pl:"Wyzwasz innych graczy",ga:"Dúshlánaíonn tú imreoirí eile"}," - smelltu á ":{en:" - click on ",nb:" - klikk på ",nn:" - klikk på ",pl:" - kliknij na ",ga:" - cliceáil ar "}," til að afturkalla áskorun":{en:" to retract an issued challenge",nb:" for å trekke tilbake en utfordring",nn:" for å trekkje tilbake ei utfordring",pl:" aby wycofać wydane wyzwanie",ga:" chun dúshlán eisithe a tharraingt siar"},"Nýlegar viðureignir þínar":{en:"Your recent games",nb:"Dine nylige spill",nn:"Dine nylege spel",pl:"Twoje ostatnie gry",ga:"Do chluichí le déanaí"},click_to_review:{is:" - smelltu á viðureign til að skoða hana og rifja upp",en:" - click on a game to review it",nb:" - klikk på et spill for å åpne det og gå gjennom det",nn:" - klikk på eit spel for å opne det og gå gjennom det",pl:" - kliknij na grę, aby ją przejrzeć",ga:" - cliceáil ar chluiche chun athbhreithniú a dhéanamh air"},"Einkenni eða nafn":{en:"Nickname or name",nb:"Kallenavn eller navn",nn:"Kallenamn eller namn",pl:"Pseudonim lub nazwa",ga:"Leasainm nó ainm"},"Upplýsingar og hjálp":{en:"Information and help",nb:"Informasjon og hjelp",nn:"Informasjon og hjelp",pl:"Informacje i pomoc",ga:"Eolas agus cabhair"},"1 dagur":{en:"1 day",nb:"1 dag",nn:"1 dag",pl:"1 dzień",ga:"1 lá"}," dagar":{en:" days",nb:" dager",nn:" dagar",pl:" dni",ga:" laethanta"}," og ":{en:" and ",nb:" og ",nn:" og ",pl:" i ",ga:" agus "},"1 klst":{en:"1 hour",nb:"1 time",nn:"1 time",pl:"1 godzina",ga:"1 uair"}," klst":{en:" hours",nb:" timer",nn:" timar",pl:" godzin",ga:" uair an chloig"},"1 mínúta":{en:"1 minute",nb:"1 minutt",nn:"1 minutt",pl:"1 minuta",ga:"1 nóiméad"}," mínútur":{en:" minutes",nb:" minutter",nn:" minutt",pl:" minuty",ga:" nóiméad"},"Viðureign með klukku":{en:"Timed game",nb:"Tidsbegrenset spill",nn:"Tidsbegrensa spel",pl:"Gra zegarowa",ga:"Cluiche ama"},"Áskrifandi":{en:"Subscriber",nb:"Abonnent",nn:"Abonnent",pl:"Subskrybent",ga:"Síntiúsóir"},"Nýjustu viðureignir":{en:"Recent games",nb:"Nylige spill",nn:"Nylege spel",pl:"Najnowsze gry",ga:"Cluichí is déanaí"},Loka:{en:"Close",nb:"Lukk",nn:"Lukk",pl:"Zamknij",ga:"Dún"},"Besta orð ":{en:"Best word ",nb:"Beste ord ",nn:"Beste ord ",pl:"Najlepsze słowo ",ga:"An focal is fearr "},"Hæsta skor ":{en:"Highest score ",nb:"Høyeste poengsum ",nn:"Høgaste poengsum ",pl:"Najwyższy wynik ",ga:"An scór is airde "}," stig":{en:" points",nb:" poeng",nn:" poeng",pl:" punkty",ga:" pointí"},"Til hamingju með sigurinn!":{en:"You won - congratulations!",nb:"Du vant - gratulerer!",nn:"Du vann - gratulerer!",pl:"Wygrałeś - gratulacje!",ga:"Bhuaigh tú - comhghairdeas!"},"Viðureigninni er lokið":{en:"Game over",nb:"Spillet er over",nn:"Spelet er over",pl:"Gra zakończona",ga:"Cluiche thart"},opponent_emptied_rack:{is:"Andstæðingur tæmdi rekkann - þú getur véfengt eða sagt pass",en:"Your opponent emptied the rack - you can challenge or pass",nb:"Motstanderen tømte stativet - du kan utfordre eller passere",nn:"Motstandaren tømde stativet - du kan utfordre eller passere",pl:"Twój przeciwnik opróżnił stojak - możesz rzucić wyzwanie lub spasować",ga:"D'fholmhaigh do chéile comhraic an raca - is féidir leat dúshlán a thabhairt nó pas a fháil"},"Viltu gefa leikinn?":{en:"Do you want to resign the game?",nb:"Ønsker du å gi opp spillet?",nn:"Ønskjer du å gje opp spelet?",pl:"Czy chcesz zrezygnować z gry?",ga:"Ar mhaith leat éirí as an gcluiche?"}," Já":{en:" Yes",nb:" Ja",nn:" Ja",pl:" Tak",ga:" Tá"}," Nei":{en:" No",nb:" Nei",nn:" Nei",pl:" Nie",ga:" Níl"},"Segja pass?":{en:"Pass the turn?",nb:"Passere turen?",nn:"Passere turen?",pl:"Spasować kolej?",ga:"Pas an tsealaíocht?"},"2x3 pöss í röð ljúka viðureign":{en:"2x3 passes in a row end the game",nb:"2x3 pasninger på rad avslutter spillet",nn:"2x3 pasningar på rad avsluttar spelet",pl:"2x3 pasy z rzędu kończą grę",ga:"Críochnaíonn 2x3 pasanna as a chéile an cluiche"},"Viðureign lýkur þar með":{en:"This finishes the game",nb:"Dette avslutter spillet",nn:"Dette avsluttar spelet",pl:"To kończy grę",ga:"Críochnaíonn sé seo an cluiche"},Skipta:{en:"Exchange",nb:"Bytte",nn:"Byte",pl:"Wymiana",ga:"Malartú"},"Smelltu á flísarnar sem þú vilt skipta":{en:"Click on the tiles that you wish to exchange",nb:"Klikk på brikkene du ønsker å bytte",nn:"Klikk på brikkene du ønskjer å byte",pl:"Kliknij na kafelki, które chcesz wymienić",ga:"Cliceáil ar na tíleanna ar mhaith leat a mhalartú"},"Véfengja lögn?":{en:"Challenge move?",nb:"Utfordre trekk?",nn:"Utfordre trekk?",pl:"Wyzwanie ruchu?",ga:"Dúshlán bogadh?"},"Röng véfenging kostar 10 stig":{en:"Wrong challenge costs 10 points",nb:"Feil utfordring koster 10 poeng",nn:"Feil utfordring kostar 10 poeng",pl:"Błędne wyzwanie kosztuje 10 punktów",ga:"Cosnaíonn dúshlán mícheart 10 bpointe"},"Er álínis":{en:"Is online",nb:"Er pålogget",nn:"Er pålogga",pl:"Jest online",ga:"Ar líne"},"Álínis?":{en:"Online?",nb:"Pålogget?",nn:"Pålogga?",pl:"Online?",ga:"Ar líne?"},"Röð":{en:"Rank",nb:"Rang",nn:"Rang",pl:"Ranking",ga:"Áit"},"Röð í gær":{en:"Rank yesterday",nb:"Rang i går",nn:"Rang i går",pl:"Ranking wczoraj",ga:"Áit inné"},"Röð fyrir viku":{en:"Rank a week ago",nb:"Rang for en uke siden",nn:"Rang for ei veke sidan",pl:"Ranking tydzień temu",ga:"Áit seachtain ó shin"},"1d":{en:"1d",nb:"1d",nn:"1d",pl:"1d",ga:"1l"},"7d":{en:"7d",nb:"7d",nn:"7d",pl:"7d",ga:"7l"},"30d":{en:"30d",nb:"30d",nn:"30d",pl:"30d",ga:"30l"},"Elo-stig":{en:"Elo points",nb:"Elo-poeng",nn:"Elo-poeng",pl:"Punkty Elo",ga:"Pointí Elo"},"Elo-stig í gær":{en:"Elo points yesterday",nb:"Elo-poeng i går",nn:"Elo-poeng i går",pl:"Punkty Elo wczoraj",ga:"Pointí Elo inné"},"Elo-stig fyrir viku":{en:"Elo points a week ago",nb:"Elo-poeng for en uke siden",nn:"Elo-poeng for ei veke sidan",pl:"Punkty Elo tydzień temu",ga:"Pointí Elo seachtain ó shin"},"Elo-stig fyrir mánuði":{en:"Elo points a month ago",nb:"Elo-poeng for en måned siden",nn:"Elo-poeng for ein månad sidan",pl:"Punkty Elo miesiąc temu",ga:"Pointí Elo mí ó shin"},elo_list_choice:{is:"Fólk | Allar | Keppnishamur",en:"Humans | All | Pro mode",nb:"Mennesker | Alle | Pro modus",nn:"Menneske | Alle | Pro-modus",pl:"Ludzie | Wszyscy | Tryb Pro",ga:"Daoine | Gach | Modh Pro"},stats_choice:{is:"Með þjörkum eða án",en:"With or without robot games",nb:"Med eller uten robotspill",nn:"Med eller utan robotspel",pl:"Z grami robotów lub bez",ga:"Le cluichí róbón nó gan iad"},"Fjöldi viðureigna":{en:"Number of games",nb:"Antall spill",nn:"Tal på spel",pl:"Liczba gier",ga:"Líon cluichí"},"Leikmenn sem hafa leyst gátuna":{en:"Players who solved the riddle",nb:"Spillere som har løst gåten",nn:"Spelarar som har løyst gåta",pl:"Gracze, którzy rozwiązali zagadkę",ga:"Imreoirí a réitigh an tomhas"},Vinningshlutfall:{en:"Winning ratio",nb:"Vinningsforhold",nn:"Vinningsforhold",pl:"Stosunek wygranych",ga:"Cóimheas bua"},"Meðalstigafjöldi":{en:"Average score",nb:"Gjennomsnittlig poengsum",nn:"Gjennomsnittleg poengsum",pl:"Średni wynik",ga:"Scór meánach"}," gegn öllum ":{en:" against all ",nb:" mot alle ",nn:" mot alle ",pl:" przeciwko wszystkim ",ga:" in aghaidh gach "}," gegn þér ":{en:" against you ",nb:" mot deg ",nn:" mot deg ",pl:" przeciwko tobie ",ga:" in aghaidh tú "}," - veldu lengd viðureignar:":{en:" - choose game duration:",nb:" - velg spillvarighet:",nn:" - vel spelvarigheit:",pl:" - wybierz czas trwania gry:",ga:" - roghnaigh fad an chluiche:"},"2 x 10 mínútur":{en:"2 x 10 minutes",nb:"2 x 10 minutter",nn:"2 x 10 minutt",pl:"2 x 10 minut",ga:"2 x 10 nóiméad"},"2 x 15 mínútur":{en:"2 x 15 minutes",nb:"2 x 15 minutter",nn:"2 x 15 minutt",pl:"2 x 15 minut",ga:"2 x 15 nóiméad"},"2 x 20 mínútur":{en:"2 x 20 minutes",nb:"2 x 20 minutter",nn:"2 x 20 minutt",pl:"2 x 20 minut",ga:"2 x 20 nóiméad"},"2 x 25 mínútur":{en:"2 x 25 minutes",nb:"2 x 25 minutter",nn:"2 x 25 minutt",pl:"2 x 25 minut",ga:"2 x 25 nóiméad"},"2 x 30 mínútur":{en:"2 x 30 minutes",nb:"2 x 30 minutter",nn:"2 x 30 minutt",pl:"2 x 30 minut",ga:"2 x 30 nóiméad"},"Báðir leikmenn lýsa því yfir að þeir skrafla ":{en:"Both players declare that they play ",nb:"Begge spillere erklærer at de spiller ",nn:"Begge spelarar erklærer at dei spelar ",pl:"Obaj gracze deklarują, że grają ",ga:"Dearbhaíonn an bheirt imreoirí go n-imríonn siad "},"Flísar sem eftir eru":{en:"Tiles remaining",nb:"Fliser igjen",nn:"Fliser igjen",pl:"Pozostałe kafelki",ga:"Tíleanna fágtha"},"Hvaða staf táknar auða flísin?":{en:"Which letter does the blank tile represent?",nb:"Hvilken bokstav representerer den blanke flisen?",nn:"Kva bokstav representerer den blanke flisa?",pl:"Jaką literę reprezentuje pusty kafelek?",ga:"Cén litir a léiríonn an tíl bán?"},"Þvinga til uppgjafar":{en:"Force to resign",nb:"Tving til å gi opp",nn:"Tving til å gje opp",pl:"Zmusić do rezygnacji",ga:"Éignigh le héirí as"},"14 dagar liðnir án leiks":{en:"14 days elapsed without a move",nb:"14 dager gått uten trekk",nn:"14 dagar gått utan trekk",pl:"Upłynęło 14 dni bez ruchu",ga:"14 lá caite gan bogadh"},"Gefa viðureign":{en:"Resign from game",nb:"Gi opp spillet",nn:"Gje opp spelet",pl:"Zrezygnować z gry",ga:"Éirigh as an gcluiche"},"Skipta stöfum":{en:"Exchange tiles",nb:"Bytt fliser",nn:"Byt fliser",pl:"Wymień kafelki",ga:"Malartú tíleanna"},word_not_found:{en:"'{word}' is not in the dictionary",is:"'{word}' finnst ekki í orðasafni",nb:"'{word}' finnes ikke i ordboken",nn:"'{word}' finst ikkje i ordboka",pl:"'{word}' nie znajduje się w słowniku",ga:"Níl '{word}' sa fhoclóir"},"Smelltu til að fletta upp":{en:"Click to look up",nb:"Klikk for å slå opp",nn:"Klikk for å slå opp",pl:"Kliknij, aby wyszukać",ga:"Cliceáil chun cuardach"},"Skoða yfirlit":{en:"Review game",nb:"Gjennomgå spill",nn:"Gjennomgå spel",pl:"Przejrzyj grę",ga:"Athbhreithniú cluiche"},"Skraflað án hjálpartækja":{en:"Game without helpers or tools",nb:"Spill uten hjelpemidler eller verktøy",nn:"Spel utan hjelpemiddel eller verktøy",pl:"Gra bez pomocy lub narzędzi",ga:"Cluiche gan chúntóirí nó uirlisí"},"Skraflar án hjálpartækja":{en:"Plays without helpers or tools",nb:"Spiller uten hjelpemidler eller verktøy",nn:"Spelar utan hjelpemiddel eller verktøy",pl:"Gra bez pomocy lub narzędzi",ga:"Imríonn gan chúntóirí nó uirlisí"},"Til í viðureign með klukku":{en:"Willing to play timed games",nb:"Villig til å spille tidsbegrensede spill",nn:"Villig til å spele tidsbegrensa spel",pl:"Chętny do gry w gry zegarowe",ga:"Toilteanach cluichí ama a imirt"},"Álínis og tekur við áskorunum":{en:"Online and accepting challenges",nb:"Pålogget og aksepterer utfordringer",nn:"Pålogga og aksepterer utfordringar",pl:"Online i akceptuje wyzwania",ga:"Ar líne agus ag glacadh le dúshláin"},"Enginn stafur lagður niður":{en:"No tile played",nb:"Ingen flis spilt",nn:"Inga flis spelt",pl:"Żaden kafelek nie został położony",ga:"Níor imríodh aon tíl"},"Fyrsta orð verður að liggja um byrjunarreitinn":{en:"First word must cover the start square",nb:"Første ord må dekke startfeltet",nn:"Første ord må dekkje startfeltet",pl:"Pierwsze słowo musi pokryć pole startowe",ga:"Caithfidh an chéad fhocal an cearnóg tosaigh a chlúdach"},"Orð verður að vera samfellt á borðinu":{en:"Word must be placed consecutively on the board",nb:"Ord må plasseres etter hverandre på brettet",nn:"Ord må plasserast etter kvarandre på brettet",pl:"Słowo musi być umieszczone kolejno na planszy",ga:"Caithfear an focal a chur go leanúnach ar an mbord"},"Orð verður að tengjast orði sem fyrir er":{en:"Word must be connected to another word on the board",nb:"Ord må være koblet til et annet ord på brettet",nn:"Ord må vere kopla til eit anna ord på brettet",pl:"Słowo musi być połączone z innym słowem na planszy",ga:"Caithfidh an focal a bheith ceangailte le focal eile ar an mbord"},"Reitur þegar upptekinn":{en:"Square is already occupied",nb:"Feltet er allerede opptatt",nn:"Feltet er allereie oppteke",pl:"Pole jest już zajęte",ga:"Tá an cearnóg áitithe cheana"},"Ekki má vera eyða í orði":{en:"Word cannot contain a space",nb:"Ord kan ikke inneholde et mellomrom",nn:"Ord kan ikkje innehalde eit mellomrom",pl:"Słowo nie może zawierać spacji",ga:"Ní féidir spás a bheith i bhfocal"},"Of margir stafir lagðir niður":{en:"Too many tiles laid down",nb:"For mange fliser lagt ned",nn:"For mange fliser lagde ned",pl:"Położono zbyt wiele kafelków",ga:"Leagadh síos an iomarca tíleanna"},"Stafur er ekki í rekkanum":{en:"Tile is not present in the player's rack",nb:"Flisen er ikke til stede i spillerens stativ",nn:"Flisa er ikkje til stades i spelaren sitt stativ",pl:"Kafelek nie znajduje się na stojaku gracza",ga:"Níl an tíl i raca an imreora"},"Of fáir stafir eftir, skipting ekki leyfð":{en:"Too few tiles left in bag; exchange not permitted",nb:"For få fliser igjen i posen; bytte ikke tillatt",nn:"For få fliser igjen i posen; byte ikkje tillate",pl:"Zbyt mało kafelków w worku; wymiana niedozwolona",ga:"Ró-bheag tíleanna fágtha sa mhála; malartú toirmiscthe"},"Of mörgum stöfum skipt":{en:"Too many tiles exchanged",nb:"For mange fliser byttet",nn:"For mange fliser bytte",pl:"Wymieniono zbyt wiele kafelków",ga:"Malartaíodh an iomarca tíleanna"},"Leik vantar á borðið - endurglæðið vefráparann":{en:"Move missing from board - refresh browser",nb:"Trekk mangler på brettet - oppdater nettleseren",nn:"Trekk manglar på brettet - oppdater nettlesaren",pl:"Ruch nieobecny na planszy - odśwież przeglądarkę",ga:"Bogadh in easnamh ón mbord - athnuaigh an brabhsálaí"},"Notandi ekki innskráður - endurglæðið vefráparann":{en:"User not logged in - refresh browser",nb:"Bruker ikke logget inn - oppdater nettleseren",nn:"Brukar ikkje logga inn - oppdater nettlesaren",pl:"Użytkownik nie jest zalogowany - odśwież przeglądarkę",ga:"Úsáideoir gan logáil isteach - athnuaigh an brabhsálaí"},"Rangur eða óþekktur notandi":{en:"Wrong or unknown user",nb:"Feil eller ukjent bruker",nn:"Feil eller ukjend brukar",pl:"Błędny lub nieznany użytkownik",ga:"Úsáideoir mícheart nó anaithnid"},"Viðureign finnst ekki":{en:"Game not found",nb:"Spill ikke funnet",nn:"Spel ikkje funne",pl:"Gra nie znaleziona",ga:"Cluiche gan aimsiú"},"Viðureign er ekki utan tímamarka":{en:"Game has not exceeded time limit",nb:"Spillet har ikke overskredet tidsbegrensningen",nn:"Spelet har ikkje overskride tidsbegrensinga",pl:"Gra nie przekroczyła limitu czasu",ga:"Níor sháraigh an cluiche an teorainn ama"},"Netþjónn gat ekki tekið við leiknum - reyndu aftur":{en:"Server is unable to process move - try again",nb:"Serveren kan ikke behandle trekket - prøv igjen",nn:"Tenaren kan ikkje behandle trekket - prøv igjen",pl:"Serwer nie może przetworzyć ruchu - spróbuj ponownie",ga:"Ní féidir leis an bhfreastalaí an gluaiseacht a phróiseáil - bain triail eile as"},"Véfenging er ekki möguleg í þessari viðureign":{en:"A challenge is not possible in this game",nb:"En utfordring er ikke mulig i dette spillet",nn:"Ei utfordring er ikkje mogleg i dette spelet",pl:"Wyzwanie nie jest możliwe w tej grze",ga:"Ní féidir dúshlán a thabhairt sa chluiche seo"},"Síðasti leikur er ekki véfengjanlegur":{en:"The last move cannot be challenged",nb:"Siste trekk kan ikke utfordres",nn:"Siste trekk kan ikkje utfordrast",pl:"Ostatniego ruchu nie można zakwestionować",ga:"Ní féidir an gluaiseacht deireanach a dhúshlánú"},"Aðeins véfenging eða pass leyfileg":{en:"Only a challenge or a pass are possible",nb:"Bare en utfordring eller pass er mulig",nn:"Berre ei utfordring eller pass er mogleg",pl:"Możliwe jest tylko wyzwanie lub pas",ga:"Níl ach dúshlán nó pas indéanta"},welcome_2:{is:["Til auðkenningar tengir Netskrafl tölvupóstfang og nafn við hvern notanda. ","Að öðru leyti eru ekki geymdar aðrar upplýsingar um notendur ","en þær sem þeir skrá sjálfir. Annáll er haldinn um umferð um vefinn og um ","aðgerðir notenda, í því skyni að endurbæta Netskrafl."],en:["For identification, Explo associates an e-mail address and a name with each user. ","Apart from this, Explo only stores information which is voluntarily ","entered by users themselves. A log is kept of web traffic and events within Explo, ","for the purpose of improving the service."],nb:["For identifikasjon knytter Explo en e-postadresse og et navn til hver bruker. ","Utover dette lagrer Explo kun informasjon som frivillig ","legges inn av brukerne selv. En logg føres over webtrafikk og hendelser innen Explo, ","i hensikt å forbedre tjenesten."],nn:["For identifikasjon knyter Explo ei e-postadresse og eit namn til kvar brukar. ","Utover dette lagrar Explo berre informasjon som frivillig ","blir lagt inn av brukarane sjølve. Ein logg blir ført over webtrafikk og hendingar innan Explo, ","i føremål å forbetre tenesta."],pl:["W celu identyfikacji Explo przypisuje każdemu użytkownikowi adres e-mail i nazwę. ","Poza tym Explo przechowuje tylko te informacje, które dobrowolnie wprowadzają sami ","użytkownicy. Prowadzony jest rejestr ruchu internetowego i zdarzeń w Explo w celu ","ulepszenia usługi."],ga:["Chun aitheantais, ceanglaíonn Explo seoladh ríomhphoist agus ainm le gach úsáideoir. ","Seachas sin, ní stóráiltear ag Explo ach an fhaisnéis a chuirtear isteach go deonach ","ag na húsáideoirí iad féin. Coinnítear logáil ar thrácht gréasáin agus imeachtaí laistigh de Explo, ","leis an gcuspóir an tseirbhís a fheabhsú."]},welcome_1:{is:["Netskrafl notar Google Accounts innskráningu, þá sömu og er notuð m.a. í Gmail. ","Til að auðkenna þig sem notanda og halda innskráningunni virkri ","er óhjákvæmilegt að geyma þar til gerða smáköku (<i>cookie</i>) ","í vafranum þínum."],en:["Explo uses Google Accounts for user authentication, similarly to e.g. Gmail. ","To remember your login and maintain your session, it is necessary to store a ","cookie within your browser."],nb:["Explo bruker Google-kontoer for brukerautentisering, likt som f.eks. Gmail. ","For å huske din innlogging og opprettholde din økt, er det nødvendig å lagre en ","informasjonskapsel i nettleseren din."],nn:["Explo brukar Google-kontoar for brukarautentisering, likt som t.d. Gmail. ","For å hugse innlogginga di og halde ved like økta di, er det naudsynt å lagre ein ","informasjonskapsel i nettlesaren din."],pl:["Explo używa kont Google do uwierzytelniania użytkownika, podobnie jak np. Gmail. ","Aby zapamiętać twoje logowanie i utrzymać sesję, konieczne jest przechowanie ","ciasteczka w twojej przeglądarce."],ga:["Úsáideann Explo Cuntais Google le haghaidh fíordheimhniú úsáideora, cosúil le Gmail, mar shampla. ","Chun do logáil isteach a mheabhrú agus do sheisiún a chothabháil, tá sé riachtanach fianán a stóráil ","i do bhrabhsálaí."]},welcome_0:{is:["Netskrafl er vettvangur ","<b>yfir 40.000 íslenskra skraflara</b>"," á netinu."],en:["Explo is a venue for ","<b>tens of thousands of crossword game enthusiasts</b> ","on the Internet."],nb:["Explo er et møtested for ","<b>tusenvis av kryssordspillentusiaster</b>"," på internett."],nn:["Explo er ein møtestad for ","<b>tusenvis av kryssordspelentusiastar</b>"," på internett."],pl:["Explo to miejsce dla ","<b>dziesiątek tysięcy entuzjastów gier krzyżówkowych</b>"," w Internecie."],ga:["Is ionad é Explo do ","<b>na deich mílte díograiseoirí cluiche crosfhocal</b>"," ar an Idirlíon."]},"Skrái þig inn...":{en:"Logging you in...",nb:"Logger deg inn...",nn:"Loggar deg inn...",pl:"Logowanie...",ga:"Ag logáil isteach tú..."},"Innskrá":{en:"Log in",nb:"Logg inn",nn:"Logg inn",pl:"Zaloguj się",ga:"Logáil isteach"},"Smelltu til að raða eftir seinni staf":{en:"Click to sort by last letter",nb:"Klikk for å sortere etter siste bokstav",nn:"Klikk for å sortere etter siste bokstav",pl:"Kliknij, aby posortować według ostatniej litery",ga:"Cliceáil chun sórtáil de réir an litir deireanaigh"},"Smelltu til að raða eftir fyrri staf":{en:"Click to sort by first letter",nb:"Klikk for å sortere etter første bokstav",nn:"Klikk for å sortere etter første bokstav",pl:"Kliknij, aby posortować według pierwszej litery",ga:"Cliceáil chun sórtáil de réir an chéad litir"},"Hvernig reitirnir margfalda stigin":{en:"How squares multiply points",nb:"Hvordan ruter multipliserer poeng",nn:"Korleis ruter multipliserer poeng",pl:"Jak kwadraty mnożą punkty",ga:"Conas a iolraíonn cearnóga pointí"},"Loka þessari hjálp":{en:"Close this help",nb:"Lukk denne hjelpen",nn:"Lukk denne hjelpa",pl:"Zamknij tę pomoc",ga:"Dún an chabhair seo"},"Stokka upp rekka":{en:"Shuffle rack",nb:"Stokk stativet",nn:"Stokk stativet",pl:"Przetasuj stojak",ga:"Measc raca"},"Færa stafi aftur í rekka":{en:"Recall tiles into rack",nb:"Hent fliser tilbake til stativet",nn:"Hent fliser tilbake til stativet",pl:"Przywróć kafelki do stojaka",ga:"Cuimhnigh tíleanna isteach sa raca"},"Besta mögulega lögn":{en:"Best possible move",nb:"Beste mulige trekk",nn:"Beste mogelege trekk",pl:"Najlepszy możliwy ruch",ga:"An bogadh is fearr is féidir"},"Nei, takk":{en:"No, thanks",nb:"Nei, takk",nn:"Nei, takk",pl:"Nie, dziękuję",ga:"Ní hea"},"Fyrri dagur":{en:"Previous day",nb:"Forrige dag",nn:"Førre dag",pl:"Poprzedni dzień",ga:"An lá roimhe"},"Næsti dagur":{en:"Next day",nb:"Neste dag",nn:"Neste dag",pl:"Następny dzień",ga:"An lá dar gcionn"},"Frammistaða":{en:"Performance",nb:"Ytelse",nn:"Yting",pl:"Wyniki",ga:"Feidhmíocht"},"Tölfræði":{en:"Statistics",nb:"Statistikk",nn:"Statistikk",pl:"Statystyki",ga:"Staitisticí"},Stigatafla:{en:"Leaderboard",nb:"Toppliste",nn:"Toppliste",pl:"Tabela wyników",ga:"Clár ceannairí"},"Tölfræði og stigatafla":{en:"Stats and leaderboard",nb:"Statistikk og toppliste",nn:"Statistikk og toppliste",pl:"Statystyki i tabela",ga:"Staitisticí agus clár"},"Þín besta":{en:"Your best",nb:"Din beste",nn:"Di beste",pl:"Twój najlepszy",ga:"Do cheann is fearr"},"Þú leiðir!":{en:"You lead!",nb:"Du leder!",nn:"Du leier!",pl:"Prowadzisz!",ga:"Tá tú chun tosaigh!"},"Best til þessa":{en:"Best so far",nb:"Beste hittil",nn:"Beste hittil",pl:"Najlepszy dotąd",ga:"Is fearr go dtí seo"},"Sýna besta leik":{en:"Show best move",nb:"Vis beste trekk",nn:"Vis beste trekk",pl:"Pokaż najlepszy ruch",ga:"Taispeáin an bogadh is fearr"},"Sýna leik":{en:"Show move",nb:"Vis trekk",nn:"Vis trekk",pl:"Pokaż ruch",ga:"Taispeáin bogadh"},"Smelltu til að sjá lausn":{en:"Click to see solution",nb:"Klikk for å se løsning",nn:"Klikk for å sjå løysing",pl:"Kliknij, aby zobaczyć rozwiązanie",ga:"Cliceáil chun an réiteach a fheiceáil"},"Þú":{en:"You",nb:"Du",nn:"Du",pl:"Ty",ga:"Tú"},"Sæki tölfræði...":{en:"Loading stats...",nb:"Laster statistikk...",nn:"Lastar statistikk...",pl:"Ładowanie statystyk...",ga:"Ag lódáil staitisticí..."},"Engin tölfræði til að sýna":{en:"No statistics to show",nb:"Ingen statistikk å vise",nn:"Ingen statistikk å vise",pl:"Brak statystyk do wyświetlenia",ga:"Níl aon staitisticí le taispeáint"},"Núverandi striklota":{en:"Current streak",nb:"Nåværende rekke",nn:"Noverande rekkje",pl:"Bieżąca seria",ga:"Sraith reatha"},"Lengsta striklota":{en:"Longest streak",nb:"Lengste rekke",nn:"Lengste rekkje",pl:"Najdłuższa seria",ga:"An tsraith is faide"},"Hæsta skori náð":{en:"Best score achieved",nb:"Beste oppnådde poengsum",nn:"Beste oppnådde poengsum",pl:"Najwyższy wynik",ga:"An scór is fearr"},"Striklota hæsta skors":{en:"Best score streak",nb:"Rekke med beste poengsum",nn:"Rekkje med beste poengsum",pl:"Seria najwyższych wyników",ga:"Sraith scór is fearr"},"Heildarfjöldi daga":{en:"Total days played",nb:"Totalt antall dager",nn:"Totalt tal på dagar",pl:"Łączna liczba dni",ga:"Iomlán laethanta"},"Hleð stigatöflu...":{en:"Loading leaderboard...",nb:"Laster toppliste...",nn:"Lastar toppliste...",pl:"Ładowanie tabeli...",ga:"Ag lódáil an chláir..."},"Engin stig skráð enn":{en:"No scores yet",nb:"Ingen poeng ennå",nn:"Ingen poeng enno",pl:"Brak wyników",ga:"Gan scóir fós"},"Reyna síðar":{en:"Try later",nb:"Prøv senere",nn:"Prøv seinare",pl:"Spróbuj później",ga:"Bain triail níos déanaí"}," mínútur.":{en:" minutes.",nb:" minutter.",nn:" minutt.",pl:" minut.",ga:" nóiméad."},date_format:{is:"{day}. {month}",en:"{month} {day}",nb:"{day}. {month}",nn:"{day}. {month}",pl:"{day} {month}",ga:"{day} {month}"},january:{is:"janúar",en:"January",nb:"januar",nn:"januar",pl:"styczeń",ga:"Eanáir"},february:{is:"febrúar",en:"February",nb:"februar",nn:"februar",pl:"luty",ga:"Feabhra"},march:{is:"mars",en:"March",nb:"mars",nn:"mars",pl:"marzec",ga:"Márta"},april:{is:"apríl",en:"April",nb:"april",nn:"april",pl:"kwiecień",ga:"Aibreán"},may:{is:"maí",en:"May",nb:"mai",nn:"mai",pl:"maj",ga:"Bealtaine"},june:{is:"júní",en:"June",nb:"juni",nn:"juni",pl:"czerwiec",ga:"Meitheamh"},july:{is:"júlí",en:"July",nb:"juli",nn:"juli",pl:"lipiec",ga:"Iúil"},august:{is:"ágúst",en:"August",nb:"august",nn:"august",pl:"sierpień",ga:"Lúnasa"},september:{is:"september",en:"September",nb:"september",nn:"september",pl:"wrzesień",ga:"Meán Fómhair"},october:{is:"október",en:"October",nb:"oktober",nn:"oktober",pl:"październik",ga:"Deireadh Fómhair"},november:{is:"nóvember",en:"November",nb:"november",nn:"november",pl:"listopad",ga:"Samhain"},december:{is:"desember",en:"December",nb:"desember",nn:"desember",pl:"grudzień",ga:"Nollaig"},share_popup_title:{is:"Til hamingju!",en:"Congratulations!",nb:"Gratulerer!",nn:"Gratulerer!",pl:"Gratulacje!",ga:"Comhghairdeas!"},share_popup_subtitle:{is:"Þú náðir besta mögulega skori!",en:"You achieved the best possible score!",nb:"Du oppnådde best mulig poengsum!",nn:"Du oppnådde best mogeleg poengsum!",pl:"Osiągnąłeś najlepszy możliwy wynik!",ga:"Bhain tú an scór is fearr is féidir amach!"},share_button_copy:{is:"Afrita texta",en:"Copy to clipboard",nb:"Kopier til utklippstavle",nn:"Kopier til utklippstavle",pl:"Skopiuj do schowka",ga:"Cóipeáil chuig gearrthaisce"},share_button_share:{is:"Deila",en:"Share",nb:"Del",nn:"Del",pl:"Udostępnij",ga:"Roinn"},share_copied_confirmation:{is:"Afritað!",en:"Copied!",nb:"Kopiert!",nn:"Kopiert!",pl:"Skopiowano!",ga:"Cóipeáilte!"},share_text_template:{is:"🎯 Ég leysti Gátu dagsins (#{position} í dag!) 🏆 https://gatadagsins.is",en:"🎯 I solved Gáta dagsins (#{position} today!) 🏆 https://gatadagsins.is",nb:"🎯 Jeg løste dagens gåte (#{position} i dag!) 🏆 https://gatadagsins.is",nn:"🎯 Eg løyste dagens gåte (#{position} i dag!) 🏆 https://gatadagsins.is",pl:"🎯 Rozwiązałem zagadkę dnia (#{position} dzisiaj!) 🏆 https://gatadagsins.is",ga:"🎯 Réitigh mé tomhas an lae (#{position} inniu!) 🏆 https://gatadagsins.is"},Stillingar:{en:"Settings",nb:"Innstillinger",nn:"Innstillingar",pl:"Ustawienia",ga:"Socruithe"},"Tækisstillingar":{en:"Device settings",nb:"Enhetsinnstillinger",nn:"Einingsinnstillingar",pl:"Ustawienia urządzenia",ga:"Socruithe gléis"},"Þysja sjálfkrafa":{en:"Auto-zoom",nb:"Automatisk zoom",nn:"Automatisk zoom",pl:"Automatyczne powiększenie",ga:"Uathzúmáil"},autozoom_explain:{is:"Þysja sjálfkrafa inn þegar fyrsta flís er lögð á borðið",en:"Zoom in when first tile is placed on the board",nb:"Zoom inn når første brikke legges på brettet",nn:"Zoom inn når første brikke vert lagt på brettet",pl:"Powiększ, gdy pierwsza płytka zostanie położona na planszy",ga:"Zúmáil isteach nuair a leagtar an chéad tíl ar an gclár"},"á":{en:"on",nb:"på",nn:"på",pl:"wł.",ga:"air"},af:{en:"off",nb:"av",nn:"av",pl:"wył.",ga:"as"},"Eldri litasamsetning:":{en:"Legacy colors:",nb:"Eldre farger:",nn:"Eldre fargar:",pl:"Starsze kolory:",ga:"Dathanna oidhreachta:"},"Eldri litasamsetning":{en:"Legacy colors",nb:"Eldre farger",nn:"Eldre fargar",pl:"Starsze kolory",ga:"Dathanna oidhreachta"},legacy_colors_explain:{is:"Nota upprunalegu litina frá eldri útgáfu Netskrafls",en:"Use the original colors from the classic version of Netskrafl",nb:"Bruk de originale fargene fra den klassiske versjonen av Netskrafl",nn:"Bruk dei originale fargane frå den klassiske versjonen av Netskrafl",pl:"Użyj oryginalnych kolorów z klasycznej wersji Netskrafl",ga:"Úsáid na dathanna bunaidh ón leagan clasaiceach de Netskrafl"},use_original:{is:"Nota ",en:"Use ",nb:"Bruke ",nn:"Bruka ",pl:"Używa ",ga:"Úsáideann "},upprunalegu:{en:"the original",nb:"de originale",nn:"dei originale",pl:"oryginalne",ga:"na bunaidh"}," litina frá eldri útgáfu Netskrafls":{en:" colors from the classic version of Netskrafl",nb:" fargene fra den klassiske versjonen av Netskrafl",nn:" fargane frå den klassiske versjonen av Netskrafl",pl:" kolory z klasycznej wersji Netskrafl",ga:" dathanna ón leagan clasaiceach de Netskrafl"},"[sentinel]":{}};let fp="is_IS",mp="is";const vp=/{\s*(\w+)\s*}/g;let yp={},wp=!1;function bp(e,t){for(const n in e)if(void 0!==e[n][t])return!0;return!1}function _p(e){!function(e,t){fp=e,mp=e.split("_")[0],bp(t,fp)||bp(t,mp)||(fp="en_US",mp="en"),yp={};for(const e in t)for(const n in t[e]){let i=t[e][n];if(Array.isArray(i)&&(i=i.join("")),void 0===yp[e]&&(yp[e]={}),i.match(/<[a-z]+>/)){const e=[];let t=0,n=null;for(;t<i.length&&(n=i.slice(t).match(/<[a-z]+>/))&&void 0!==n.index;){const r=n[0],s=t+n.index+r.length,a=i.indexOf(`</${r.slice(1)}`,s);a<0?t=s:(n.index>0&&e.push(i.slice(t,t+n.index)),e.push(zd(r.slice(1,-1),i.slice(s,a))),t=a+r.length+1)}t<i.length&&e.push(i.slice(t)),i=e}yp[e][n]=i}wp=!0}(function(){const e=new URLSearchParams(window.location.search).get("lang");return e?e.replace("-","_"):null}()||e,gp)}function kp(e,t={}){const n=yp[e];if(void 0===n)return wp?e:"";const i=n[fp]||n[mp]||e;return Object.keys(t).length?Tp(i,t):i}function Cp(e,t={}){const n=yp[e];if(void 0===n)return wp?e:"";const i=n[fp]||n[mp]||e;return"string"!=typeof i?"":Object.keys(t).length?function(e,t){return e.replace(vp,((e,n)=>t[n]||e))}(i,t):i}function Sp(e,t){return"string"==typeof t?zd(e,kp(t)):Array.isArray(t)?zd(e,t.map((e=>"string"==typeof e?kp(e):e))):zd(e,t)}function Tp(e,t){return"string"==typeof e?e.replace(vp,((e,n)=>t[n]||e)):Array.isArray(e)?e.map((e=>Tp(e,t))):e}const Ip=new WeakMap;const Ep="/board?game=",Pp=["january","february","march","april","may","june","july","august","september","october","november","december"];function xp(e){const t=e.currentTarget.classList;void 0===t||t.contains("disabled")||t.add("over"),e.redraw=!1}function Rp(e){const t=e.currentTarget.classList;void 0!==t&&t.remove("over"),e.redraw=!1}function Lp(e,t,n){return zd(`span.glyphicon.glyphicon-${e}${n?".grayed":""}`,t??{})}function Np(e,t){return zd(`span.glyphicon.glyphicon-${e}.grayed`,t??{})}function Dp(e){return zd.trust("&nbsp;")}function Ap(e){const t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};return String(e).replace(/[&<>"'/]/g,(e=>t[e]??""))}function Mp(e){return document.getElementById(e).value}function Op(e,t){pp(e).play(t)}function jp(e){e.slice(0,12)===Ep&&(e=e.slice(12));const t=e.slice(0,36);let n=e.slice(36);return n.length>0&&"&"===n.charAt(0)&&(n=`?${n.slice(1)}`),`/game/${t}${n}`}function Fp(){const e=document.querySelectorAll("div.movelist .move");if(!e||!e.length)return;const t=e[e.length-1],n=t.parentNode,i=n.getAttribute("data-len"),r=i?parseInt(i,10):0;e.length>r&&(n.scrollTop=t.offsetTop),n.setAttribute("data-len",e.length.toString())}function zp(e,t,n=!1){return e<0||e>=op||t<0||t>=op?null:n?`${t+1}${ap[e]}`:`${ap[e]}${t+1}`}function Up(e){var t=0,n=0,i=0,r=ap.indexOf(e[0]);return r>=0?(i=parseInt(e.slice(1),10)-1,t=1):(r=ap.indexOf(e.slice(-1)),i=parseInt(e,10)-1,n=1),{col:i,row:r,dx:t,dy:n}}function $p(e){const t=new Date(`${e}T00:00:00Z`),n=t.getUTCDate().toString(),i=Cp(Pp[t.getUTCMonth()]);return Cp("date_format",{day:n,month:i})}function qp(e=0){const t=()=>{const e=document.querySelector(".netskrafl-container");e?.focus()};e>0?setTimeout(t,e):setTimeout(t)}function Bp(e,t,n=100){setTimeout((()=>{const n=document.querySelector(".netskrafl-container");n&&(n.tabIndex=0,n.addEventListener("keydown",e),n.addEventListener("compositionend",t),n.focus())}),n)}function Vp(e){const t=document.querySelector(".netskrafl-container");t&&t.classList.toggle("legacy-colors",e)}class Hp{constructor(e){this.riddleLoading=!1,this.midnightTimer=null,this.visibilityHandler=null,this.model=e}cleanup(){this.clearMidnightTimer(),this.clearVisibilityHandler()}isViewingToday(){return!new URLSearchParams(window.location.search).has("date")}msUntilMidnightUTC(){const e=new Date;return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+1,0,0,0,0)).getTime()-e.getTime()}clearMidnightTimer(){null!==this.midnightTimer&&(clearTimeout(this.midnightTimer),this.midnightTimer=null)}setupMidnightTimer(){this.clearMidnightTimer();const e=this.msUntilMidnightUTC();this.midnightTimer=setTimeout((()=>{if(this.midnightTimer=null,!this.isViewingToday())return;const e=this.model.state?.locale||"is_IS",t=(new Date).toISOString().split("T")[0];this.loadRiddle(t,e)}),e+5e3)}clearVisibilityHandler(){null!==this.visibilityHandler&&(document.removeEventListener("visibilitychange",this.visibilityHandler),this.visibilityHandler=null)}setupVisibilityHandler(){this.clearVisibilityHandler(),this.visibilityHandler=()=>{if("visible"!==document.visibilityState)return;if(!this.isViewingToday())return;const e=this.model.riddle;if(!e)return;const t=(new Date).toISOString().split("T")[0];if(e.date<t){const e=this.model.state?.locale||"is_IS";this.loadRiddle(t,e)}},document.addEventListener("visibilitychange",this.visibilityHandler)}get isRiddleLoading(){return this.riddleLoading}onNavigateTo(e,t,n){const i=this.model;i.routeName=e,i.params=t;const r=t.uuid??"";if("game"===e){null!==i.game&&this.detachListenerFromGame(i.game.uuid);const e="1"===t.zombie;i.loadGame(r,(()=>{this.attachListenerToGame(r,n),setTimeout(Fp),n.isMobile()&&n.setSelectedTab("board"),qp(100)}),e),null!==i.game&&void 0!==i.game&&fh("game_open",{locale:i.game.locale,uuid:t.uuid})}else if("review"===e){null!==i.game&&this.detachListenerFromGame(i.game.uuid);const e=t.move||"0";let s=parseInt(e,10);(Number.isNaN(s)||!s||s<0)&&(s=0),i.loadGame(r,(()=>{i.loadBestMoves(s),setTimeout(Fp),n.isMobile()&&n.setSelectedTab("board")}))}else{null!==i.game&&(this.detachListenerFromGame(i.game.uuid),i.game.cleanup(),i.game=null);const t=i.state?.locale||"is_IS";"help"===e?(i.loadHelp(),fh("help",{locale:t})):"main"===e&&(n.actions.withSpinner((()=>i.loadAllLists())),i.userListCriteria=null,i.userList=null)}}onMoveMessage(e,t){this.model.handleMoveMessage(e,t)}onUserChallengeMessage(e,t){this.model.handleUserChallengeMessage(e,t)}onUserMoveMessage(e,t){this.model.handleUserMoveMessage(e,t)}onChatMessage(e,t,n){if(t);else if(this.model.addChatMessage(e.game,e.from_userid,e.msg,e.ts)){n.notifyChatMessage();const{state:t}=this.model,i=t.netskraflUserId??"";t.audio&&e.from_userid!==i&&Op(t,"new-msg")}}onFullScreen(e){const t=this.model.state;t&&!t.uiFullscreen&&(t.uiFullscreen=!0,e&&(e.resetScale(),e.notifyMediaChange()),zd.redraw())}onMobileScreen(e){const t=this.model.state;t&&!1!==t.uiFullscreen&&(t.uiFullscreen=!1,e&&e.notifyMediaChange(),zd.redraw())}onLandscapeScreen(e){const t=this.model.state;t&&!t.uiLandscape&&(t.uiLandscape=!0,e&&e.notifyMediaChange(),zd.redraw())}onPortraitScreen(e){const t=this.model.state;t&&!1!==t.uiLandscape&&(t.uiLandscape=!1,e&&e.notifyMediaChange(),zd.redraw())}mediaMinWidth667(e,t){e.matches?this.onLandscapeScreen(t):this.onPortraitScreen(t)}mediaMinWidth1024(e,t){e.matches?this.onFullScreen(t):this.onMobileScreen(t)}initMediaListener(e){function t(e,t){try{e.addEventListener("change",t,{passive:!0})}catch(n){try{e.addListener(t)}catch(e){console.error(e)}}}let n=window.matchMedia("(min-width: 667px) and (max-width: 1023px) and (orientation: landscape)");n&&(this.mediaMinWidth667(n,e),t(n,(()=>this.mediaMinWidth667(n,e)))),n=window.matchMedia("(min-width: 1024px)"),n&&(this.mediaMinWidth1024(n,e),t(n,(()=>this.mediaMinWidth1024(n,e))))}attachListenerToUser(){const e=this.model.state;e&&e.netskraflUserId&&(ph(`user/${e.netskraflUserId}/challenge`,((e,t)=>this.onUserChallengeMessage(e,t))),ph(`user/${e.netskraflUserId}/move`,((e,t)=>this.onUserMoveMessage(e,t))))}detachListenerFromUser(){const e=this.model.state;e?.netskraflUserId&&gh(`user/${e.netskraflUserId}`)}attachListenerToGame(e,t){const n=this.model.state;if(!e||!n)return;const i=`game/${e}/${n.netskraflUserId}/`;ph(`${i}move`,((e,t)=>this.onMoveMessage(e,t))),ph(`${i}chat`,((e,n)=>this.onChatMessage(e,n,t)))}detachListenerFromGame(e){const t=this.model.state;if(!e||!t)return;const n=`game/${e}/${t.netskraflUserId}/`;gh(`${n}move`),gh(`${n}chat`)}async markFavorite(e,t){if(this.model.state)try{await rp(this.model.state,{method:"POST",url:"/favorite",body:{destuser:e,action:t?"add":"delete"}})}catch(e){}}async toggleFavorite(e,t){await this.markFavorite(e,!t)}async handleChallenge(e){if(this.model.state)try{const t=await rp(this.model.state,{method:"POST",url:"/challenge",body:e});if(0===t?.result){const t={locale:this.model.state?.locale||"is_IS"};void 0!==e.duration&&(t.duration=e.duration),void 0!==e.fairplay&&(t.fairplay=e.fairplay),void 0!==e.manual&&(t.manual=e.manual),fh(`challenge_${e.action}`,t),this.model.loadChallengeList(),this.model.userListCriteria&&this.model.loadUserList(this.model.userListCriteria)}}catch(e){}}async acceptChallenge(e,t){await this.handleChallenge({action:"accept",destuser:e,key:t})}async declineChallenge(e,t){await this.handleChallenge({action:"decline",destuser:e,key:t})}async retractChallenge(e,t){await this.handleChallenge({action:"retract",destuser:e,key:t})}async startNewGame(e,t=!1){if(this.model.state)try{const n={opp:e,rev:t};this.model.isExplo&&(n.board_type="explo");const i={method:"POST",url:"/initgame",body:n},r=await rp(this.model.state,i);if(r?.ok){const e=this.model.state?.locale||"is_IS";fh("new_game",{uuid:r.uuid,timed:t,locale:e}),zd.route.set(`/game/${r.uuid}`)}}catch(e){}}async startRobotGame(e){await this.startNewGame(e,!1)}async loadUsers(e,t=!0){t?await this.withSpinner((()=>this.model.loadUserList(e))):await this.model.loadUserList(e)}async searchUsers(e,t=!0){await this.loadUsers({query:"search",spec:e},t)}async loadUsersByType(e,t=!0){await this.loadUsers({query:e,spec:""},t)}showSpinner(){this.model.spinners++,zd.redraw()}hideSpinner(){this.model.spinners>0&&(this.model.spinners--,zd.redraw())}async withSpinner(e){this.showSpinner();try{return await e()}finally{this.hideSpinner()}}async setUserPref(e){if(this.model.state)try{await rp(this.model.state,{method:"POST",url:"/setuserpref",body:e}),o(this.model.state)}catch(e){}}async cancelFriendship(){const e=this.model.user,t=this.model.state;if(!e||!t)return!1;try{const n=await rp(t,{method:"POST",url:"/cancelplan",body:{}});if(n?.ok)return e.friend=!1,t.hasPaid=!1,t.plan="",fh("cancel_plan",{userid:t.netskraflUserId,locale:t.locale,plan:"friend"}),!0}catch(e){}return!1}attachListenerToRiddle(e,t){const{state:n}=this.model,i=`gatadagsins/${e}/${t}/`;ph(`${i}count`,((e,t)=>this.onSolverCountUpdate(e,t))),ph(`${i}best`,((e,t)=>this.onRiddleGlobalScoreUpdate(e,t))),n?.userGroupId&&ph(`${i}group/${n.userGroupId}/best`,((e,t)=>this.onRiddleGroupScoreUpdate(e,t))),ph(`${i}leaders`,((e,t)=>this.onLeaderboardUpdate(e,t))),n?.netskraflUserId&&(ph(`gatadagsins/users/${t}/${n.netskraflUserId}/stats`,((e,t)=>this.onUserStatsUpdate(e,t))),ph(`${i}achievements/${n.netskraflUserId}`,((e,t)=>this.onPersonalBestScoreUpdate(e,t))))}detachListenerFromRiddle(e,t){const{state:n}=this.model,i=`gatadagsins/${e}/${t}/`;gh(`${i}count`),gh(`${i}best`),n?.userGroupId&&gh(`${i}group/${n.userGroupId}/best`),gh(`${i}leaders`),n?.netskraflUserId&&(gh(`gatadagsins/users/${t}/${n.netskraflUserId}/stats`),gh(`${i}achievements/${n.netskraflUserId}`))}onSolverCountUpdate(e,t){this.model.solverCount=e??0,zd.redraw()}onRiddleGlobalScoreUpdate(e,t){const{riddle:n}=this.model,{score:i}=e;!n||!i||i<=0||(n.updateGlobalBestScore(e),zd.redraw())}onRiddleGroupScoreUpdate(e,t){const{riddle:n}=this.model,{score:i}=e;!n||!i||i<=0||(n.updateGroupBestScore(e),zd.redraw())}onLeaderboardUpdate(e,t){if(e&&"object"==typeof e){const{riddle:t}=this.model,n=t?.bestPossibleScore??Number.POSITIVE_INFINITY,i=Object.keys(e).map((t=>({userId:e[t].userId||t,displayName:e[t].displayName||"",score:e[t].score||0,timestamp:e[t].timestamp||""}))).filter((e=>e.score<=n));i.sort(((e,t)=>t.score!==e.score?t.score-e.score:e.timestamp.localeCompare(t.timestamp))),this.model.leaderboard=i}else this.model.leaderboard=[];zd.redraw()}onUserStatsUpdate(e,t){this.model.userStats=e||null,zd.redraw()}onPersonalBestScoreUpdate(e,t){const{riddle:n}=this.model;if(!n||!e||"object"!=typeof e)return;const i=e.score||0,r=e.word||"",s=e.coord||"",a=e.timestamp||(new Date).toISOString();if(i<=n.personalBestScore||!r||!s)return;n.personalBestScore=i;const o=n.playerMoves.some((e=>e.word===r&&e.coord===s&&e.score===i));o||n.playerMoves.push({word:r,score:i,coord:s,timestamp:a}),zd.redraw()}async fetchRiddle(e,t){if(!this.model)throw new Error("Model is not initialized");await this.model.initRiddle(e,t),this.attachListenerToRiddle(e,t)}async loadRiddle(e,t){if(!this.riddleLoading){this.riddleLoading=!0,this.clearMidnightTimer();try{const n=this.model.riddle,i=(new Date).toISOString().split("T")[0];let r=e;(r<cp||r>i)&&(r=i);const s=new URL(window.location.href);r===i?s.searchParams.delete("date"):s.searchParams.set("date",r),window.history.pushState({},"",s.toString()),n&&this.detachListenerFromRiddle(n.date,n.locale),this.model.solverCount=0,await this.fetchRiddle(r,t),r===i?(this.setupMidnightTimer(),this.setupVisibilityHandler()):this.clearVisibilityHandler(),zd.redraw()}finally{this.riddleLoading=!1}}}}const Wp=e=>{const{view:t,showClose:n}=e.attrs,{model:i,actions:r}=t,s=i.state;return{view:()=>zd(".board-help",{title:Cp("Hvernig reitirnir margfalda stigin")},[n?zd(".board-help-close",{title:Cp("Loka þessari hjálp"),onclick:e=>{s&&(s.beginner=!1,r.setUserPref({beginner:!1})),e.preventDefault()}},Lp("remove")):null,zd(".board-colors",[zd(".board-color[id='triple-word']",["3 x",zd("br"),kp("orð")]),zd(".board-color[id='double-word']",["2 x",zd("br"),kp("orð")]),zd(".board-color[id='triple-letter']",["3 x",zd("br"),kp("stafur")]),zd(".board-color[id='double-letter']",["2 x",zd("br"),kp("stafur")]),zd(".board-color[id='single-letter']",["1 x",zd("br"),kp("stafur")])])])}},Gp=182,Kp=210,Yp=['<path d="M50.0335 81.1768V58.6393C50.0335 56.9025 48.7821 54.7618 47.2876 53.8732L27.7859 42.6044C26.2932 41.7158 23.7887 41.7158 22.296 42.6044L2.75319 53.8732C1.2587 54.7618 0.00732422 56.9025 0.00732422 58.6393V81.1768C0.00732422 82.9136 1.2587 85.0543 2.75319 85.9428L16.3591 93.7785C18.6617 95.0306 20.2366 97.4944 20.2366 100.322V115.145C20.2366 117.972 18.6617 120.436 16.3591 121.688L7.35643 126.898L2.79251 129.524C1.29981 130.412 0.0484453 132.553 0.0484453 134.29V156.827C0.0484453 158.564 1.29981 160.705 2.79251 161.593L22.296 172.862C23.7887 173.751 26.2932 173.751 27.7859 172.862L47.2876 161.593C48.7821 160.705 50.0335 158.564 50.0335 156.827V134.29C50.0335 132.553 48.7821 130.412 47.2876 129.524L33.6817 121.688C31.3791 120.436 29.806 117.972 29.806 115.145V100.322C29.806 97.4944 31.3791 95.0306 33.6817 93.7785L47.2876 85.9428C48.8232 85.0543 50.0335 82.9136 50.0335 81.1768Z" fill="#F17736"/>','<path d="M25.0401 73.1002C25.0401 71.3633 23.7887 69.2227 22.296 68.3341L2.75319 57.0653C1.2587 56.1767 0.00732422 56.9037 0.00732422 58.6404V81.1782C0.00732422 82.9149 1.2587 85.0556 2.75319 85.9441L22.2549 97.2129C23.7494 98.1015 25.0007 97.3745 25.0007 95.6377L25.0401 73.1002Z" fill="#FFAA88"/>','<path d="M73.9793 88.4472L68.2856 91.7188C66.9126 92.5267 65.7417 94.3846 65.5397 96.0405V96.0809V96.2021V96.4848V103.028C65.4986 100.524 64.1668 98.0601 61.7838 96.6868L48.9859 89.2954C46.5225 87.8818 43.6157 88.003 41.3543 89.3762L27.7466 97.2118C26.2539 98.0601 25.0007 97.3734 25.0007 95.6367V73.0989C25.0007 71.3622 26.2539 69.2217 27.7466 68.333L47.2483 57.0642C47.6934 56.8219 48.0974 56.7007 48.4603 56.7007C49.3488 56.7007 49.9941 57.4277 49.9941 58.6393V74.351C49.9137 76.9764 51.2866 79.6018 53.7089 81.0155L66.5086 88.4068C68.972 89.7801 71.7572 89.6993 73.9793 88.4472Z" fill="#C94314"/>','<path d="M25.0401 148.791C25.0401 147.054 23.7887 144.913 22.296 144.024L2.75319 132.756C1.2587 131.867 0.00732422 132.594 0.00732422 134.331V156.869C0.00732422 158.605 1.2587 160.746 2.75319 161.634L22.2549 172.903C23.7494 173.792 25.0007 173.065 25.0007 171.328L25.0401 148.791Z" fill="#FFAA88"/>','<path d="M50.035 156.869C50.035 158.605 48.7837 160.746 47.2892 161.634L27.7875 172.903C26.293 173.792 25.0416 173.065 25.0416 171.328V148.791C25.0416 147.054 26.293 144.913 27.7875 144.024L47.2892 132.756C48.7837 131.867 50.035 132.594 50.035 134.331V156.869Z" fill="#C94314"/>','<path d="M115.566 96.4844V119.022C115.566 120.759 114.313 122.899 112.821 123.788L93.3189 135.057C91.9853 135.824 89.9258 135.905 88.392 135.34C88.3116 135.299 88.2311 135.299 88.1507 135.259C88.1096 135.218 88.0685 135.218 87.988 135.178C87.9487 135.138 87.8665 135.138 87.8271 135.097L68.3254 123.828C68.1234 123.707 67.9608 123.586 67.7587 123.424C67.5979 123.263 67.3959 123.101 67.235 122.94C66.266 121.89 65.5385 120.355 65.5385 119.062V103.351C65.5385 103.229 65.5385 103.149 65.5385 103.028V96.4844C65.5385 96.4036 65.5385 96.3228 65.5385 96.2018C65.5385 96.1614 65.5385 96.121 65.5385 96.0806V96.0402C65.7011 94.3843 66.872 92.5261 68.2843 91.7185L73.9781 88.4468L87.786 80.4497C89.3198 79.561 91.7832 79.561 93.2777 80.4497L112.779 91.7185C114.354 92.6069 115.566 94.7477 115.566 96.4844Z" fill="#F17736"/>','<path d="M90.573 133.482C90.573 135.097 89.5218 135.824 88.1489 135.259C88.1096 135.219 88.0684 135.219 87.988 135.178C87.9487 135.138 87.8664 135.138 87.8271 135.097L68.3254 123.829C68.1234 123.707 67.9608 123.586 67.7587 123.425C67.5979 123.263 67.3958 123.102 67.235 122.94C66.266 121.89 65.5385 120.355 65.5385 119.063V103.351C65.5385 103.23 65.5385 103.149 65.5385 103.028V96.4847C65.5385 96.4039 65.5385 96.3231 65.5385 96.2019C65.5385 96.1615 65.5385 96.1211 65.5385 96.0807V96.0403C65.7405 94.6268 66.872 94.1016 68.2843 94.9094L76.6828 99.7561L87.8271 106.178C89.3609 107.067 90.573 109.207 90.573 110.944V133.482Z" fill="#FFAA88"/>','<path d="M115.566 16.7012V39.2388C115.566 40.9757 114.313 43.1162 112.821 44.0049L93.3189 55.2737C91.9853 56.0411 89.9258 56.1219 88.392 55.5563C88.3116 55.5159 88.2311 55.5159 88.1507 55.4757C88.1096 55.4353 88.0685 55.4353 87.988 55.3949C87.9487 55.3545 87.8665 55.3545 87.8271 55.3141L68.3254 44.0453C68.1234 43.9241 67.9608 43.8029 67.7587 43.6413C67.5979 43.4798 67.3959 43.3182 67.235 43.1566C66.266 42.1066 65.5385 40.5717 65.5385 39.2792V23.5675C65.5385 23.4463 65.5385 23.3657 65.5385 23.2444V16.7012C65.5385 16.6204 65.5385 16.5396 65.5385 16.4186C65.5385 16.3782 65.5385 16.3378 65.5385 16.2974V16.257C65.7011 14.601 66.872 12.7429 68.2843 11.9353L73.9781 8.66365L87.786 0.666489C89.3198 -0.222163 91.7832 -0.222163 93.2777 0.666489L112.779 11.9353C114.354 12.8237 115.566 14.9645 115.566 16.7012Z" fill="#F17736"/>','<path d="M89.6624 31.5736C89.6624 29.9159 88.4316 27.8729 86.9616 27.0247L67.7803 16.2696C66.3104 15.4216 65.0796 16.1154 65.0796 17.773V39.2833C65.0796 40.9409 66.3104 42.9841 67.7803 43.832L86.9616 54.5871C88.4316 55.4353 89.6624 54.7414 89.6624 53.0838V31.5736Z" fill="#FFAA88"/>','<path d="M115.691 38.9886C115.691 40.7689 114.388 42.9634 112.831 43.8742L92.5219 55.426C90.9673 56.3369 89.6622 55.5916 89.6622 53.8113V30.7077C89.6622 28.9272 90.9673 26.7329 92.5219 25.8219L112.831 14.2702C114.388 13.3593 115.691 14.1045 115.691 15.8848V38.9886Z" fill="#C94314"/>','<path d="M115.566 169.984V192.521C115.566 194.258 114.313 196.399 112.821 197.288L93.3189 208.556C91.9853 209.324 89.9258 209.405 88.392 208.839C88.3116 208.799 88.2311 208.799 88.1507 208.758C88.1096 208.718 88.0685 208.718 87.988 208.678C87.9487 208.637 87.8665 208.637 87.8271 208.597L68.3254 197.328C68.1234 197.207 67.9608 197.086 67.7587 196.924C67.5979 196.763 67.3959 196.601 67.235 196.439C66.266 195.389 65.5385 193.854 65.5385 192.562V176.85C65.5385 176.729 65.5385 176.648 65.5385 176.527V169.984C65.5385 169.903 65.5385 169.822 65.5385 169.701C65.5385 169.661 65.5385 169.62 65.5385 169.58V169.54C65.7011 167.884 66.872 166.026 68.2843 165.218L73.9781 161.946L87.786 153.949C89.3198 153.061 91.7832 153.061 93.2777 153.949L112.779 165.218C114.354 166.106 115.566 168.247 115.566 169.984Z" fill="#F17736"/>','<path d="M90.573 206.981C90.573 208.596 89.5218 209.323 88.1489 208.758C88.1096 208.718 88.0684 208.718 87.988 208.677C87.9487 208.637 87.8664 208.637 87.8271 208.596L68.3254 197.328C68.1234 197.206 67.9608 197.085 67.7587 196.924C67.5979 196.762 67.3958 196.601 67.235 196.439C66.266 195.389 65.5385 193.854 65.5385 192.562V176.85C65.5385 176.729 65.5385 176.648 65.5385 176.527V169.984C65.5385 169.903 65.5385 169.822 65.5385 169.701C65.5385 169.661 65.5385 169.62 65.5385 169.58V169.539C65.7405 168.126 66.872 167.601 68.2843 168.408L76.6828 173.255L87.8271 179.677C89.3609 180.566 90.573 182.706 90.573 184.443V206.981Z" fill="#FFAA88"/>','<path d="M116.102 192.239C116.102 193.975 114.851 196.116 113.356 197.005L93.8544 208.273C92.3617 209.162 91.1085 208.435 91.1085 206.698V184.161C91.1085 182.424 92.3617 180.283 93.8544 179.395L113.356 168.126C114.851 167.237 116.102 167.964 116.102 169.701V192.239Z" fill="#C94314"/>','<path d="M139.467 126.291L138.418 126.896L133.855 129.522C132.482 130.33 131.312 132.188 131.11 133.844V134.005V134.248V140.791C131.068 138.286 129.737 135.823 127.354 134.449L114.554 127.058C112.092 125.644 109.184 125.766 106.924 127.139L93.3164 134.974C91.7826 135.823 90.5706 135.136 90.5706 133.359V110.821C90.5706 109.084 91.8219 106.944 93.3164 106.055L112.818 94.7864C114.313 93.898 115.564 94.6248 115.564 96.3617V112.073C115.484 114.699 116.856 117.324 119.279 118.738L132.078 126.129C134.46 127.583 137.247 127.543 139.467 126.291Z" fill="#C94314"/>','<path d="M160.869 100.362V115.145C160.869 117.972 162.444 120.436 164.745 121.688L178.353 129.524C179.845 130.412 181.099 132.553 181.099 134.29V156.827C181.099 158.564 179.845 160.705 178.353 161.593L158.851 172.862C157.478 173.629 155.338 173.71 153.844 173.104C153.763 173.064 153.722 173.064 153.642 173.024C153.561 172.983 153.44 172.943 153.359 172.862L133.858 161.593C133.493 161.391 133.13 161.068 132.808 160.745C131.837 159.695 131.112 158.16 131.112 156.827V141.156C131.112 141.035 131.112 140.954 131.112 140.833V134.29C131.112 134.209 131.112 134.128 131.112 134.047C131.112 134.007 131.112 133.926 131.112 133.886C131.273 132.23 132.444 130.331 133.858 129.564L138.42 126.939L139.469 126.333L140.803 125.565L147.424 121.728C147.585 121.647 147.707 121.567 147.868 121.486C149.927 120.153 151.3 117.851 151.3 115.185V100.402C151.3 97.5752 149.725 95.1114 147.424 93.8593L133.858 86.0236C132.363 85.135 131.112 82.9944 131.112 81.2577V58.6393C131.112 56.9025 132.363 54.7618 133.858 53.8732L153.359 42.6044C154.893 41.7158 157.356 41.7158 158.851 42.6044L178.353 53.8732C179.886 54.7618 181.099 56.9025 181.099 58.6393V81.1769C181.099 82.0653 180.775 83.0348 180.291 83.8829C179.806 84.7311 179.12 85.4986 178.353 85.9428L164.745 93.7785C162.444 95.071 160.869 97.5348 160.869 100.362Z" fill="#F17736"/>','<path d="M156.105 73.1002C156.105 71.3633 154.854 69.2227 153.359 68.3341L133.858 57.0653C132.363 56.1767 131.112 56.9037 131.112 58.6404V81.1782C131.112 82.9149 132.363 85.0556 133.858 85.9441L153.359 97.2129C154.854 98.1015 156.105 97.3745 156.105 95.6377V73.1002Z" fill="#FFAA88"/>','<path d="M181.096 81.1782C181.096 82.9149 179.845 85.0556 178.35 85.9441L158.849 97.2129C157.356 98.1015 156.103 97.3745 156.103 95.6377V73.1002C156.103 71.3633 157.356 69.2227 158.849 68.3341L178.35 57.0653C179.845 56.1767 181.096 56.9037 181.096 58.6404V81.1782Z" fill="#C94314"/>','<path d="M156.105 171.328C156.105 172.903 155.136 173.63 153.844 173.145C153.763 173.105 153.722 173.105 153.642 173.064C153.561 173.024 153.44 172.984 153.359 172.903L133.857 161.634C133.493 161.432 133.13 161.109 132.808 160.786C131.837 159.736 131.112 158.201 131.112 156.868V141.197C131.112 141.076 131.112 140.995 131.112 140.874V134.331C131.112 134.25 131.112 134.169 131.112 134.088C131.112 134.048 131.112 133.967 131.112 133.927C131.314 132.513 132.443 131.988 133.857 132.796L142.215 137.642L153.359 144.064C154.893 144.953 156.105 147.094 156.105 148.83V171.328Z" fill="#FFAA88"/>','<path d="M181.096 156.869C181.096 158.605 179.845 160.746 178.35 161.634L158.849 172.903C157.356 173.792 156.103 173.065 156.103 171.328V148.791C156.103 147.054 157.356 144.913 158.849 144.024L178.35 132.756C179.845 131.867 181.096 132.594 181.096 134.331V156.869Z" fill="#C94314"/>'],Jp=`\n<svg preserveAspectRatio="xMidYMid meet" width="100%" height="100%" viewBox="0 0 182 210" fill="none" xmlns="http://www.w3.org/2000/svg">\n${Yp.join("\n")}\n</svg>`,Zp=zd.trust(Jp),Xp=Math.max(Gp,Kp)+40,Qp=`\n<svg preserveAspectRatio="xMidYMid meet" width="100%" height="100%" viewBox="0 0 ${Xp} ${Xp}" fill="none" xmlns="http://www.w3.org/2000/svg">\n ${`<circle cx="${Xp/2}" cy="${Xp/2}" r="${Xp/2-5}" fill="#ffffff"/>`}\n <svg x="${(Xp-Gp)/2}" y="${(Xp-Kp)/2}" width="182" height="210" viewBox="0 0 182 210">\n ${Yp.join("\n")}\n </svg>\n</svg>`,eg=zd.trust(Qp),tg=e=>{const{attrs:t}=e,{width:n,withCircle:i}=t;return{view:()=>{const e={};return void 0!==n&&(e.width=`${n}px`),zd(".animated-netskrafl-logo",{style:e},i?eg:Zp)}}},ng="netskrafl_settings",ig={autoZoom:!0,legacyColors:!1};let rg=null;function sg(){if(rg)return rg;try{const e=localStorage.getItem(ng);if(e){const t={...ig,...JSON.parse(e)};return rg=t,t}}catch(e){console.error("Failed to load settings:",e)}const e={...ig};return rg=e,e}function ag(e){try{localStorage.setItem(ng,JSON.stringify(e)),rg=e}catch(e){console.error("Failed to save settings:",e)}}function og(){return sg().autoZoom}function lg(e){const t=sg();t.autoZoom=e,ag(t)}function cg(){return sg().legacyColors}function ug(e){const t=sg();t.legacyColors=e,ag(t),Vp(e)}const hg={oninit:e=>{e.state.show=!1,e.state.ival=setTimeout((()=>{e.state.show=!0,e.state.ival=0,zd.redraw()}),800)},onremove:e=>{e.state.ival&&clearTimeout(e.state.ival),e.state.ival=0},view:e=>{if(e.state.show)return zd(".modal-dialog",{id:"spinner-dialog",style:{visibility:"visible"}},zd(".animated-spinner",zd(tg,{withCircle:!0})))}},dg=()=>{let e="",t="";return{oninit:n=>{e=`${n.attrs.initialValue}`,t=n.attrs.class,t=t?`.${t.split(" ").join(".")}`:""},view:n=>{const{id:i,maxlength:r,tabindex:s,autocomplete:a}=n.attrs;return zd(`input.text${t}`,{id:i,name:i,maxlength:r,tabindex:s,autocomplete:a,value:e,oninput:t=>{e=`${t.target.value}`}})}}},pg={view:e=>{const t={onmouseout:Rp,onmouseover:xp};return Object.assign(t,e.attrs),zd(".modal-close",t,e.children)}},gg={view:e=>{const t=e.attrs.item,n=e.attrs.view,i=n.actions,r=0===t.userid.indexOf("robot-");return zd("span.list-ch",{title:Cp("Skora á"),onclick:e=>{t.chall?(t.chall=!1,i.retractChallenge(t.userid,"")):r?i.startRobotGame(t.userid):n.pushDialog("challenge",t),e.preventDefault()}},Lp("hand-right",void 0,!t.chall))}},fg={view:e=>{const t=e.attrs.item,n=e.attrs.view,i=!t.userid||0===t.userid.indexOf("robot-");return zd("span.list-info",{title:Cp("Skoða feril"),onclick:e=>{i||n.showUserInfo(t.userid,t.nick,t.fullname),e.preventDefault()}},i?"":zd("span.usr-info"))}},mg={oninit:e=>{const{state:t}=e;t.online=!1},oncreate:e=>{const{attrs:t,state:n}=e;if(n.online=!!t.online,void 0===t.online){(async()=>{try{const e=await rp(t.state,{method:"POST",url:"/onlinecheck",body:{user:t.userId}});n.online=e?.online}catch(e){n.online=!1}})()}},view:e=>{const{attrs:t,state:n}=e,i=n.online||!!t.online;return zd("span",{id:t.id,title:Cp(i?"Er álínis":"Álínis?"),class:i?"online":""})}},vg={view:e=>{const t=e.attrs.view,n=t.model;return n.state?.netskraflUserId?zd(".userid",{title:Cp("player_info"),onclick:e=>{t.pushDialog("userprefs",{}),e.preventDefault()}},[Lp("address-book"),Dp(),n.state.userNick]):""}},yg={view:e=>{const{manual:t,header:n}=e.attrs,i=Cp("Keppnishamur"),r=!0===t&&!n;return zd("span.list-manual",r||n?{title:i}:{},Lp("lightbulb",void 0,!r))}},wg=e=>{let t=e.attrs.initialSelection??0;const n=e.attrs.defaultClass??"",i=e.attrs.selectedClass||"selected";return{view:e=>{const r=e.children;if(Array.isArray(r))return zd("div",{onclick:e=>{const n=r.map((e=>e.dom));for(let i=0;i<n.length;i++)n[i].contains(e.target)&&(t=i);e.stopPropagation()}},r.map(((e,r)=>{const s=e;return s.attrs.className=r===t?`${n} ${i}`:n,e})))}}},bg={view:()=>zd(".info",{title:Cp("Upplýsingar og hjálp")},zd(zd.route.Link,{href:"/help",class:"iconlink"},Lp("info-sign")))},_g={view:e=>zd(".logo"+(e.attrs.hidden?".hidden":""),zd(zd.route.Link,{href:"/main",class:"nodecorate"},Lp("home")))},kg={view:e=>zd(".header-logo"+(e.attrs.hidden?".hidden":""),zd(zd.route.Link,{href:"/main",class:"backlink"},Lp("home")))},Cg=()=>{function e(e,t){const n=document.querySelector(`#${e} #opt1`)?.classList,i=document.querySelector(`#${e} #opt2`)?.classList;n?.toggle("selected"),i?.toggle("selected"),void 0!==t&&i&&t(i.contains("selected"))}return{view:({attrs:{id:t,small:n,funcToggle:i,state:r,tabindex:s,title:a,opt1:o,opt2:l}})=>{const c=`${t}-toggler`,u=".option"+(n?".small":"");return zd.fragment({},[zd(`input.checkbox.${t}`,{type:"checkbox",id:t,name:t,checked:r,value:"True"}),zd(".toggler",{id:c,tabindex:s,title:a,onclick:t=>{e(c,i),t.preventDefault()},onkeypress:t=>{" "===t.key&&(e(c,i),t.preventDefault())}},[zd(u+(r?"":".selected"),{id:"opt1"},o),zd(u+(r?".selected":""),{id:"opt2"},l)])])}}},Sg=e=>{const t=e.attrs.view,n=t.model;function i(e){n.state&&(n.state.ready=e,t.actions.setUserPref({ready:e}))}return{view:()=>zd(Cg,{id:"ready",state:n.state?.ready??!1,tabindex:2,opt1:Dp(),opt2:Lp("thumbs-up"),funcToggle:i,small:!0,title:Cp("Tek við áskorunum!")})}},Tg=e=>{const t=e.attrs.view,n=t.model;function i(e){n.state&&(n.state.readyTimed=e,t.actions.setUserPref({ready_timed:e}))}return{view:()=>zd(Cg,{id:"timed",state:n.state?.readyTimed??!1,tabindex:3,opt1:Dp(),opt2:Lp("time"),funcToggle:i,small:!0,title:Cp("Til í viðureign með klukku!")})}},Ig=e=>{const{model:t}=e.attrs.view;function n(e){e&&null!==t.state&&Op(t.state,"your-turn")}return{view:({attrs:{state:e,tabindex:t}})=>zd(Cg,{id:"audio",state:e,tabindex:t,opt1:Lp("volume-off"),opt2:Lp("volume-up"),funcToggle:n,small:!0,title:Cp("Hljóð á/af")})}},Eg=e=>{const{model:t}=e.attrs.view;function n(e){e&&null!==t.state&&Op(t.state,"you-win")}return{view:({attrs:{state:e,tabindex:t}})=>zd(Cg,{id:"fanfare",state:e,tabindex:t,opt1:Lp("volume-off"),opt2:Lp("volume-up"),funcToggle:n,small:!0,title:Cp("Lúðraþytur á/af")})}},Pg=()=>({view:({attrs:{state:e,tabindex:t}})=>zd(Cg,{id:"beginner",state:e,tabindex:t,opt1:Dp(),opt2:Lp("ok"),small:!0})}),xg=()=>({view:({attrs:{state:e,tabindex:t}})=>zd(Cg,{id:"fairplay",state:e,tabindex:t,opt1:Dp(),opt2:Lp("edit"),small:!0})}),Rg=()=>{let e=cg();function t(t){e=t,ug(t)}return{view:({attrs:{tabindex:n}})=>zd(Cg,{id:"legacy-colors",state:e,tabindex:n,opt1:Dp(),opt2:Lp("brush"),funcToggle:t,small:!0})}},Lg=()=>{function e(e){e.cancelBlankDialog(),qp()}function t(e,t){e.placeBlank(t),qp()}function n(e){const n=e.alphabet;let i=n.length,r=0;const s=[];for(;i>0;){const a=[];for(let s=0;s<6&&i>0;s++){const s=n[r++];a.push(zd("td",{onclick:n=>{n.preventDefault(),t(e,s)},onmouseover:xp,onmouseout:Rp},zd(".blank-choice.netskrafl-tile.netskrafl-racktile",s))),i--}s.push(zd("tr",a))}return s}return{view:i=>{const{game:r}=i.attrs;if(r)return zd(".modal-dialog",{id:"blank-dialog",style:{visibility:"visible"},tabindex:-1,onkeydown:n=>function(n,i){const{key:r}=i;if("Escape"===r)return i.preventDefault(),i.stopPropagation(),void e(n);if(i.isComposing)return;const s=r.normalize("NFC");if(1===s.length){const e=s.toLowerCase();n.alphabet.includes(e)&&(i.preventDefault(),i.stopPropagation(),t(n,e))}}(r,n),oncompositionend:e=>function(e,n){const{data:i}=n,r=i?.normalize("NFC");if(r&&1===r.length){const i=r.toLowerCase();e.alphabet.includes(i)&&(n.preventDefault(),n.stopPropagation(),t(e,i))}}(r,e),oncreate:e=>e.dom.focus()},zd(".ui-widget.ui-widget-content.ui-corner-all",{id:"blank-form"},[Sp("p","Hvaða staf táknar auða flísin?"),zd(".rack.blank-rack",zd("table.board",{id:"blank-meaning"},n(r))),zd(pg,{id:"blank-close",title:Cp("Hætta við"),onclick:t=>{t.preventDefault(),e(r)}},Lp("remove"))]))}}};function Ng(e,t,n,i,r,s,a){const o={onmouseout:Rp,onmouseover:xp,style:{visibility:!1===s?"hidden":"visible"}};return i&&(o.title=i),a&&(o.id=a),o.onclick=t?e=>e.preventDefault():e=>{n?.(),e.preventDefault()},zd(`.${e}${t?".disabled":""}`,o,r)}const Dg={view:e=>{const{game:t}=e.attrs,n=[".score"];t.manual?n.push("manual"):t.wordGood&&(n.push("word-good"),void 0!==t.currentScore&&t.currentScore>=50&&n.push("word-great"));const i=void 0===t.currentScore?"?":t.currentScore.toString();return zd(n.join("."),{title:i},i)}},Ag={view:e=>{const{view:t,game:n,disabled:i,visible:r=!0}=e.attrs;if(n)return Ng("recallbtn",!!i,(()=>{n.resetRack(),t.updateScale()}),Cp("Færa stafi aftur í rekka"),Lp("down-arrow"),r)}},Mg={view:e=>{const{game:t,disabled:n,visible:i=!0}=e.attrs;if(t)return Ng("scramblebtn",!!n,(()=>t.rescrambleRack()),Cp("Stokka upp rekka"),Lp("random"),i)}},Og={view:e=>{const{view:t,game:n}=e.attrs;if(!n)return;const i=n.buttonState();if(i.showRecall&&!i.showingDialog)return zd(Ag,{view:t,game:n});const r=i.showScramble&&!i.tilesPlaced,s=i.showingDialog;return zd(Mg,{view:t,game:n,visible:r,disabled:s})}},jg={view:e=>{const{view:t}=e.attrs,{game:n}=t.model,i=[];if(!n)return i;const r=n.buttonState();if(i.push(zd(".word-check"+(r.wordGood?".word-good":"")+(r.wordBad?".word-bad":""))),r.showChallenge){const e=(r.tilesPlaced||r.showingDialog)&&!r.lastChallenge;i.push(Ng("challenge",e,(()=>n.submitChallenge()),"Véfenging (röng kostar 10 stig)",Lp("ban-circle")))}if(r.showRecall&&i.push(zd(Ag,{view:t,game:n,disabled:r.showingDialog})),r.showScramble&&i.push(zd(Mg,{view:t,game:n,disabled:r.showingDialog})),r.showMove){const e=Cp("submit_move"),s=!r.tilesPlaced||r.showingDialog;i.push(Ng("submitmove",s,(()=>{n.submitMove(),t.updateScale()}),e,[e,Lp("play")]))}if(r.showMoveMobile){const e=["submitmove"];let s=void 0!==n.currentScore;n.manual?e.push("manual"):r.wordGood?(e.push("word-good"),void 0!==n.currentScore&&n.currentScore>=50&&e.push("word-great")):r.wordBad&&(e.push("word-bad"),s=!1);const a=void 0===n.currentScore?"?":n.currentScore.toString(),o=[zd("span.score-mobile",a)];let l;r.canPlay&&s?o.push(Lp("play")):o.push(Lp("remove")),l=r.canPlay?s?()=>{n.submitMove(),t.updateScale()}:()=>{}:()=>{const e=document.querySelector("div.opp-turn");e&&(e.classList.toggle("flashing",!0),setTimeout((()=>e.classList.toggle("flashing",!1)),1200))},i.push(Ng(e.join("."),r.showingDialog,l,a,o,!0,"move-mobile"))}if(r.showForceResignMobile){const e=Cp("Þvinga til uppgjafar");i.push(Ng("force-resign",r.showingDialog,(()=>n.forceResign()),e,e))}if(r.showPass){const e=(r.tilesPlaced||r.showingDialog)&&!r.lastChallenge;i.push(Ng("submitpass",e,(()=>n.submitPass()),Cp("Pass"),Lp("forward")))}if(r.showExchange){const e=!r.exchangeAllowed||r.tilesPlaced||r.showingDialog;i.push(Ng("submitexchange",e,(()=>n.submitExchange()),Cp("Skipta stöfum"),Lp("refresh")))}if(r.showResign&&i.push(Ng("submitresign",r.showingDialog,(()=>n.submitResign()),Cp("Gefa viðureign"),Lp("fire"))),!r.gameOver&&!r.localTurn&&!n.moveInProgress&&null!==n.player){const e=n.nickname[1-n.player];i.push(zd(".opp-turn",{style:{visibility:"visible"}},[zd("span.move-indicator"),Dp(),zd("strong",Cp("opp_move",{opponent:e})),Dp(),r.tardyOpponent?zd("span.yesnobutton",{id:"force-resign",onclick:e=>{e.preventDefault(),n.forceResign()},onmouseout:Rp,onmouseover:xp,title:Cp("14 dagar liðnir án leiks")},Cp("Þvinga til uppgjafar")):""]))}if(r.tilesPlaced){const e=zd(Dg,{game:n});e&&i.push(e)}return n?.moveInProgress&&i.push(zd(".waitmove",zd(".animated-waitmove",zd(tg,{withCircle:!1})))),zd(".buttons",i)}};class Fg{getEventCoordinates(e){if(e instanceof MouseEvent)return{x:e.clientX,y:e.clientY};if(e instanceof TouchEvent){const t=e.touches[0];return t?{x:t.clientX,y:t.clientY}:{x:this.lastX,y:this.lastY}}return{x:0,y:0}}static rectContains(e,t){return t.x>=e.left&&t.x<e.right&&t.y>=e.top&&t.y<e.bottom}constructor(e,t,n){this.parentElement=null,this.parentRect=null,this.offsetX=0,this.offsetY=0,this.centerX=0,this.centerY=0,this.startX=0,this.startY=0,this.lastX=0,this.lastY=0,this.currentDropTarget=null,this.dragStarted=!1;const i=e.currentTarget;i.addEventListener("click",(e=>e.stopPropagation()),{once:!0});const r=this.getEventCoordinates(e);this.startX=r.x,this.startY=r.y,this.lastX=r.x,this.lastY=r.y,this.draggedElement=i,this.dropHandler=t,this.clickHandler=n,this.parentElement=i.parentElement,this.parentRect=this.parentElement?.getBoundingClientRect()??null,this.boundEventHandlers={drag:this.drag.bind(this),endDrag:this.endDrag.bind(this),cancelDrag:this.cancelDrag.bind(this)};const{drag:s,endDrag:a,cancelDrag:o}=this.boundEventHandlers;e instanceof MouseEvent?(document.addEventListener("mousemove",s),document.addEventListener("mouseup",a),document.addEventListener("mouseleave",o)):e instanceof TouchEvent&&(document.addEventListener("touchmove",s,{passive:!1}),document.addEventListener("touchend",a),document.addEventListener("touchcancel",a)),document.addEventListener("visibilitychange",o),window.addEventListener("blur",o)}initiateDrag(e){e.preventDefault(),this.dragStarted=!0;const t=this.draggedElement,n=t.getBoundingClientRect(),{offsetWidth:i,offsetHeight:r}=t,s=t.closest(".netskrafl-container"),a=s?.classList.contains("legacy-colors");t.classList.add("dragging"),a&&t.classList.add("legacy-colors"),document.body.appendChild(t);const{offsetWidth:o,offsetHeight:l}=t;this.offsetX=this.startX-n.left+(o-i)/2,this.offsetY=this.startY-n.top+(l-r)/2,this.centerX=o/2,this.centerY=l/2,this.updatePosition(this.lastX,this.lastY)}removeDragListeners(){const{drag:e,endDrag:t,cancelDrag:n}=this.boundEventHandlers;document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",t),document.removeEventListener("mouseleave",n),document.removeEventListener("touchmove",e),document.removeEventListener("touchend",t),document.removeEventListener("touchcancel",t),document.removeEventListener("visibilitychange",n),window.removeEventListener("blur",n)}elementCenter(e,t){return{x:e-this.offsetX+this.centerX,y:t-this.offsetY+this.centerY}}findDropTargetAtPoint(e,t){const{x:n,y:i}=this.elementCenter(e,t);for(const e of document.elementsFromPoint(n,i)){if(e.classList.contains("drop-target"))return e;if(e.classList.contains("not-target"))return null}return null}updatePosition(e,t){this.lastX=e,this.lastY=t,this.draggedElement.style.left=e-this.offsetX+"px",this.draggedElement.style.top=t-this.offsetY+"px"}updateDropTarget(e,t){const n=this.findDropTargetAtPoint(e,t);n!==this.currentDropTarget&&(this.currentDropTarget&&this.currentDropTarget.classList.remove("over"),n&&n.classList.add("over"),this.currentDropTarget=n)}drag(e){e.stopPropagation();const t=this.getEventCoordinates(e);if(this.lastX=t.x,this.lastY=t.y,!this.dragStarted){return void(Math.sqrt((t.x-this.startX)**2+(t.y-this.startY)**2)>=10&&this.initiateDrag(e))}e.preventDefault(),this.updatePosition(t.x,t.y),this.updateDropTarget(t.x,t.y);const n=null!==this.currentDropTarget||this.parentRect&&Fg.rectContains(this.parentRect,t);this.draggedElement.classList.toggle("no-drop",!n)}resetPosition(){this.draggedElement.style.left="",this.draggedElement.style.top="",this.draggedElement.classList.remove("dragging","no-drop","legacy-colors"),this.parentElement&&this.parentElement.appendChild(this.draggedElement)}cancelDrag(){this.removeDragListeners(),this.currentDropTarget&&this.currentDropTarget.classList.remove("over"),this.dragStarted&&this.resetPosition()}endDrag(e){if(e.stopPropagation(),this.removeDragListeners(),!this.dragStarted)return void(this.clickHandler&&this.clickHandler(this.draggedElement));e.preventDefault();const t=this.getEventCoordinates(e),n=this.findDropTargetAtPoint(t.x,t.y);this.currentDropTarget&&this.currentDropTarget.classList.remove("over"),this.draggedElement.style.visibility="hidden",this.resetPosition(),n&&this.dropHandler(this.draggedElement,n),setTimeout((()=>{this.draggedElement.style.visibility="visible"}))}}const zg=(e,t,n)=>i=>{var r,s,a;return s=(i,r)=>{if(!t)return;const s=r.id;if(!s)return;let a="";if("board-background"===s?a="R1":s.startsWith("sq_")&&(a=s.slice(3)),a)try{t.attemptMove(n,a),e.updateScale(),zd.redraw()}catch(e){console.error(e)}},a=()=>{t&&(n===t.selectedSq?t.selectedSq=null:t.selectedSq=n,zd.redraw())},(r=i).stopPropagation(),new Fg(r,s,a),i.redraw=!1,!1},Ug=()=>({view:e=>{const{view:t,game:n,coord:i,opponent:r}=e.attrs;if(!n)return;const s="R"===i[0],a=n.tiles[i],o=[".netskrafl-tile"],l={};if("?"===a.tile&&o.push("netskrafl-blanktile"),"q".includes(a.letter)?o.push("netskrafl-extra-wide"):"zxmæ".includes(a.letter)&&o.push("netskrafl-wide"),s||a.draggable?(o.push(r?"netskrafl-freshtile":"netskrafl-racktile"),s&&"exchange"===n.showingDialog&&(a.xchg&&o.push("netskrafl-xchgsel"),l.onclick=e=>{a.xchg=!a.xchg,e.preventDefault()})):a.freshtile&&o.push("netskrafl-freshtile"),a.index){const e=150,t=`${(a.index*e).toString()}ms`;l.style=`animation-delay: ${t}`}if(i===n.selectedSq&&o.push("sel"),void 0!==a.highlight&&o.push(`highlight${a.highlight}`),a.draggable&&n.allowDragDrop()){const e=zg(t,n,i);l.onmousedown=e,l.ontouchstart=e}return zd(o.join("."),l,[" "===a.letter?Dp():a.letter,zd(".letterscore",a.score)])}}),$g={view:e=>{const{view:t,game:n,coord:i}=e.attrs;if(n)return zd("td.not-target",{id:`sq_${i}`,class:n.squareClass(i)},zd(Ug,{view:t,game:n,coord:i,opponent:!1}))}},qg={view:e=>{const{game:t,coord:n}=e.attrs;if(!t)return;let i=t.squareClass(n)||"";return i&&(i=`.${i}`),i+=e.attrs.opponent?".opp":".local",zd(`td${i}`,{id:`sq_${n}`},e.children)}},Bg={view:e=>{const{view:t,game:n,coord:i,isKeyboardTarget:r,keyboardDirection:s}=e.attrs;if(!n)return;let a=n.squareClass(i)||"";return a&&(a=`.${a}`),null!==n.askingForBlank&&n.askingForBlank.to===i&&(a+=".blinking"),i===n.startSquare&&n.localturn&&(a+=".center"),r&&(a+=".keyboard-target","V"===s&&(a+=".vertical")),zd(`td.drop-target${a}`,{id:`sq_${i}`,onclick:e=>{if(null!==n.selectedSq)return e.stopPropagation(),n.attemptMove(n.selectedSq,i),n.selectedSq=null,e.currentTarget.classList.remove("sel"),t.updateScale(),!1},onmouseover:e=>{null!==n.selectedSq&&e.currentTarget.classList.add("sel")},onmouseout:e=>{e.currentTarget.classList.remove("sel")}},e.children)}},Vg={view:e=>{const{view:t,game:n,review:i}=e.attrs;if(!n)return;const{model:r}=t,s=[],a=r.reviewMove??0,o=i&&0===a,l=i&&a>0&&a%2===n.player;for(let e=1;e<=7;e++){const r=`R${e}`;!o&&n&&r in n.tiles?i?s.push(zd(qg,{key:r,view:t,game:n,coord:r,opponent:l},zd(Ug,{view:t,game:n,coord:r,opponent:l}))):s.push(zd(Bg,{key:r,view:t,game:n,coord:r},zd(Ug,{view:t,game:n,coord:r,opponent:!1}))):i?s.push(zd(qg,{key:r,view:t,game:n,coord:r,opponent:!1})):s.push(zd(Bg,{key:r,view:t,game:n,coord:r}))}return zd("table.board",zd("tbody",zd("tr",s)))}},Hg={view:e=>{const{view:t,game:n,review:i}=e.attrs;return zd(".rack-row",[zd(".rack-left",zd(Og,{view:t,game:n})),zd(".rack",zd(Vg,{view:t,game:n,review:i}))])}},Wg={view:e=>{const{game:t}=e.attrs;return t.congratulate?zd("div",{id:"congrats"},[Lp("bookmark")," ",Sp("strong","Til hamingju með sigurinn!")]):t.over?zd("div",{id:"gameover"},[Lp("info-sign")," ",Sp("strong","Viðureigninni er lokið")]):void 0}},Gg={view:e=>{const{game:t}=e.attrs,n=t.currentError||"";if(n&&n in up){const e=t.currentMessage||"",i=Cp(up[n]),r=i.indexOf("{word}");let s;return s=r>=0?[i.slice(0,r),zd("span.errword",e),i.slice(r+6)]:[i],zd(".error",{style:{visibility:"visible"},onclick:e=>{t.resetError(),e.preventDefault()}},[Lp("exclamation-sign"),...s])}}},Kg={view:e=>{const{view:t,game:n}=e.attrs;let i=[];return n&&(i=[zd(Yg,{view:t,game:n,review:!1}),zd(Hg,{view:t,game:n,review:!1}),zd(jg,{view:t}),zd(Gg,{game:n}),zd(Wg,{game:n})],i=i.concat(t.vwDialogs())),zd(".board-area",i)}};const Yg={oninit:e=>{e.state.columnIdentifiers=function(){const e=[];e.push(zd("td"));for(let t=1;t<=15;t++)e.push(zd("td",t.toString()));return zd("tr.colid",e)}()},view:e=>{const{view:t,game:n,review:i}=e.attrs,r=t.isMobile(),s=i||r?null:n.getNextKeyboardSquare();function a(e){const r=[];r.push(zd("td.rowid",{key:`R${e}`},e));for(let a=1;a<=15;a++){const o=e+a.toString();n&&o in n.tiles?r.push(zd($g,{view:t,game:n,key:o,coord:o,opponent:!1})):i?r.push(zd(qg,{view:t,game:n,key:o,coord:o,opponent:!1})):r.push(zd(Bg,{view:t,game:n,key:o,coord:o,isKeyboardTarget:o===s,keyboardDirection:n?.getEffectiveKeyboardDirection()}))}return zd("tr",r)}const o=zd("tbody",function(){const t=[];t.push(e.state.columnIdentifiers);for(const e of"ABCDEFGHIJKLMNO")t.push(a(e));return t}()),l=zd("table.board",{},o);return zd(".board",{id:"board-parent",onclick:e=>{r&&t.boardScale>1&&function(e){const t=e.currentTarget;if(!t)return!1;const n=Date.now(),i=Ip.get(t)||0;return Ip.set(t,n),n-i<300}(e)&&(e.stopPropagation(),t.zoomOut())}},l)}},Jg={view:e=>{const{riddle:t,mode:n="desktop"}=e.attrs;if(!t)return zd("div");const i=t.currentScore,r=void 0!==i,s=["mobile"===n?".mobile-score":".gata-dagsins-score"];let a="0";t.tilesPlaced().length>0?r?t.wordGood?(a=i.toString(),i<t.warmBoundary?s.push(".cold"):i<t.hotBoundary?s.push(".warm"):s.push(".hot"),i>=t.bestPossibleScore&&s.push(".celebrate")):(s.push(".word-bad"),a=i.toString()):(s.push(".illegal"),a="?"):(s.push(".disabled"),a="0");const o="mobile"===n?".mobile-score-legend":".gata-dagsins-legend";return zd(`div${s.join("")}`,zd(`span${o}`,a))}},Zg={view:e=>{const{view:t}=e.attrs,{riddle:n}=t.model;if(!n)return zd(".gatadagsins-board-rack-wrapper","");const i=n.wordGood&&(n.currentScore||0)>=n.bestPossibleScore;return zd(".gatadagsins-board-rack-wrapper",[zd(".gatadagsins-board-area"+(i?".celebrate":""),[n?zd(Yg,{view:t,game:n,review:!1}):""]),zd(".gatadagsins-rack-area",[zd(".rack-left",zd(Og,{view:t,game:n})),zd(".rack",zd(Vg,{view:t,game:n,review:!1})),zd(Jg,{riddle:n})])])}},Xg={view:e=>{const t=e.attrs.onClose;return[zd(".modal-backdrop-netskrafl",{onclick:e=>{e.preventDefault()},onwheel:e=>{e.preventDefault(),e.stopPropagation()},ontouchmove:e=>{e.preventDefault(),e.stopPropagation()}}),zd(".modal-dialog.gatadagsins-help",zd(".modal-content",[zd("button.close",{onclick:t,"aria-label":"Loka"},Lp("remove")),zd(".modal-header",zd("h2","Um Gátu dagsins")),zd(".modal-body",[zd("p","Gáta dagsins er dagleg krossgátuþraut, svipuð skrafli, þar sem þú reynir að finna stigahæsta orðið sem hægt er að mynda með gefnum stöfum."),zd("h3","Hvernig á að spila"),zd("ul",[zd("li","Þú færð borð með allmörgum stöfum sem þegar hafa verið lagðir."),zd("li","Neðst á skjánum eru stafaflísar sem þú getur notað til að mynda orð."),zd("li","Dragðu flísar á borðið til að mynda orð, annaðhvort lárétt eða lóðrétt."),zd("li","Orðin verða að tengjast við stafi sem fyrir eru á borðinu."),zd("li","Þú sérð jafnóðum hvort lögnin á borðinu er gild og hversu mörg stig hún gefur."),zd("li","Þú getur prófað eins mörg orð og þú vilt - besta skorið þitt er vistað.")]),zd("h3","Stigagjöf"),zd("p","Þú færð stig fyrir hvern staf í orðinu, auk bónusstiga fyrir lengri orð:"),zd("ul",[zd("li","Hver stafur gefur 1-10 stig eftir gildi hans"),zd("li","Orð sem nota allar 7 stafaflísarnar gefa 50 stiga bónus"),zd("li",["Sumir reitir á borðinu ",zd("span.help-bonus-square.double-letter"),"tvöfalda eða ",zd("span.help-bonus-square.triple-letter"),"þrefalda stafgildið"]),zd("li",["Sumir reitir ",zd("span.help-bonus-square.double-word"),"tvöfalda eða ",zd("span.help-bonus-square.triple-word"),"þrefalda heildarorðgildið"])]),zd("h3","Hitamælir"),zd("p","Hitamælirinn hægra megin við borðið (sést ekki á farsímum) sýnir:"),zd("ul",[zd("li",zd("strong","Besta mögulega lögn:")," Hæstu stig sem hægt er að ná á þessu borði."),zd("li",zd("strong","Besta skor dagsins:")," Hæstu stig sem einhver leikmaður hefur náð í dag."),zd("li",zd("strong","Þín bestu orð:")," Orðin sem þú hefur lagt og stigin fyrir þau."),zd("li","Þú getur smellt á orð á hitamælinum til að fá þá lögn aftur á borðið.")]),zd("h3","Ábendingar"),zd("ul",[zd("li","Reyndu að nota dýra stafi (eins og X, Ý, Þ) á tvöföldunar- eða þreföldunarreitum."),zd("li","Lengri orð gefa mun fleiri stig vegna bónussins."),zd("li","Þú getur dregið allar flísar til baka með bláa endurkalls-hnappnum."),zd("li","Ný gáta birtist á hverjum nýjum degi - klukkan 00:00!")]),zd("h3","Um leikinn"),zd("p",["Gáta dagsins er systkini ",zd("a",{href:"https://netskrafl.is",target:"_blank"},"Netskrafls"),", hins sívinsæla íslenska krossgátuleiks á netinu. ","Leikurinn er þróaður af Miðeind ehf."])]),zd(".modal-footer",zd("button.btn.btn-primary",{onclick:t},"Loka"))]))]}},Qg={view:e=>{const{view:t}=e.attrs,{model:n}=t.actions,{solverCount:i}=n;return i<=0?null:zd(".solver-count-pill",{title:Cp("Leikmenn sem hafa leyst gátuna")},i)}},ef={view:e=>{const{view:t,date:n,locale:i}=e.attrs,{actions:r}=t,s=(e,t)=>{const n=new Date(`${e}T00:00:00Z`);return n.setUTCDate(n.getUTCDate()+t),n.toISOString().split("T")[0]},a=(new Date).toISOString().split("T")[0],o=s(n,-1),l=s(n,1),c=r.isRiddleLoading,u=!c&&o>=cp,h=!c&&l<=a,d=e=>{const t=new URL(window.location.href);e===a?t.searchParams.delete("date"):t.searchParams.set("date",e),window.history.pushState({},"",t.toString()),r.loadRiddle(e,i)},p=(e,t)=>{if(e)return e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),t())}},g=Cp("Fyrri dagur"),f=Cp("Næsti dagur"),m=n>="2025-12-05";return zd(".date-navigator",[zd(".nav-arrow.prev"+(u?"":".disabled"),{role:"button",tabindex:u?0:-1,"aria-disabled":!u,"aria-label":g,onclick:u?()=>d(o):void 0,onkeydown:p(u,(()=>d(o))),title:u?g:""},Lp("chevron-left")),zd(".nav-date",$p(n)),m?zd(Qg,{view:t}):null,zd(".nav-arrow.next"+(h?"":".disabled"),{role:"button",tabindex:h?0:-1,"aria-disabled":!h,"aria-label":f,onclick:h?()=>d(l):void 0,onkeydown:p(h,(()=>d(l))),title:h?f:""},Lp("chevron-right"))])}},tf={view:e=>{const{animate:t=!1,size:n=80}=e.attrs,i=n/2,r=n/3;return zd("div.sun-corona"+(t?".rotating":""),[zd.trust(`\n <svg width="${n}" height="${n}" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">\n <g transform="translate(50,50)">\n \x3c!-- Ray at 0° (12 o'clock) --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f1c40f" opacity="0.8" transform="rotate(0)"/>\n \x3c!-- Ray at 30° --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f39c12" opacity="0.7" transform="rotate(30)"/>\n \x3c!-- Ray at 60° --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f1c40f" opacity="0.8" transform="rotate(60)"/>\n \x3c!-- Ray at 90° (3 o'clock) --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f39c12" opacity="0.7" transform="rotate(90)"/>\n \x3c!-- Ray at 120° --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f1c40f" opacity="0.8" transform="rotate(120)"/>\n \x3c!-- Ray at 150° --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f39c12" opacity="0.7" transform="rotate(150)"/>\n \x3c!-- Ray at 180° (6 o'clock) --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f1c40f" opacity="0.8" transform="rotate(180)"/>\n \x3c!-- Ray at 210° --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f39c12" opacity="0.7" transform="rotate(210)"/>\n \x3c!-- Ray at 240° --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f1c40f" opacity="0.8" transform="rotate(240)"/>\n \x3c!-- Ray at 270° (9 o'clock) --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f39c12" opacity="0.7" transform="rotate(270)"/>\n \x3c!-- Ray at 300° --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f1c40f" opacity="0.8" transform="rotate(300)"/>\n \x3c!-- Ray at 330° --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f39c12" opacity="0.7" transform="rotate(330)"/>\n </g>\n </svg>\n `)])}},nf=()=>{const e=e=>t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),e())};return{view:t=>{const{view:n,bestMove:i,onMoveClick:r,onStatsClick:s}=t.attrs,{riddle:a}=n.model;if(!a)return null;const{bestPossibleScore:o,globalBestScore:l,personalBestScore:c}=a,u=i&&""!==i.word,h=(new Date).toISOString().split("T")[0],d=a.date<h,p=d?a.solution||l:null;let g=0,f=!1;l&&l.score>0?(g=l.score,f=!d&&c>=l.score):(g=c,f=!d&&c>0);const m=!(!p&&!u),v=()=>{p?(n.zoomOut(),r(p.word,p.coord)):u&&r(i.word,i.coord)},y=Cp("Tölfræði og stigatafla");return zd(".mobile-status-container",[zd(".mobile-status-item.left",zd(Jg,{riddle:a,mode:"mobile"})),zd(".mobile-status-card",{role:"button",tabindex:0,"aria-label":y,onclick:s,onkeydown:e(s),title:y},[zd(".mobile-status-card-item.player-best",[zd(".mobile-status-label",Cp("Þín besta")),zd(".mobile-status-score",c.toString())]),zd(".mobile-status-card-item.leader"+(f?".is-player":""),[zd(".mobile-status-label",Cp(f?"Þú leiðir!":"Best til þessa")),zd(".mobile-status-score",g.toString())]),zd(".mobile-status-card-icon",Lp("chevron-down"))]),zd(".mobile-status-item.right.best-possible"+(u?".celebrate":""),{role:m?"button":void 0,tabindex:m?0:void 0,"aria-label":m?Cp("Sýna besta leik"):void 0,onclick:v,onkeydown:m?e(v):void 0},[zd(".mobile-best-score-wrapper",[u?zd(tf,{animate:!0,size:100}):null,zd(".mobile-status-score",o.toString())])])])}}};const rf={view:e=>{const{leaderboard:t,currentUserId:n,loading:i=!1}=e.attrs;return i?zd(".leaderboard-view.loading",zd(".loading-message",Cp("Hleð stigatöflu..."))):t&&0!==t.length?zd(".leaderboard-view",[zd(".leaderboard-list",{ontouchmove:e=>{e.stopPropagation()}},t.map(((e,t)=>{const i=t+1,r=e.userId===n,s=function(e){switch(e){case 1:return"🥇";case 2:return"🥈";case 3:return"🥉";default:return null}}(i);return zd(".leaderboard-entry"+(r?".current-user":""),{key:e.userId},[zd(".entry-rank",[s?zd("span.medal",s):zd("span.rank-number",i.toString())]),zd(".entry-name",r?[zd("span.entry-star",Lp("star")),Cp("Þú")]:e.displayName),zd(".entry-score",e.score.toString())])})))]):zd(".leaderboard-view.empty",zd(".empty-message",Cp("Engin stig skráð enn")))}},sf=()=>({view:({attrs:e})=>{const{state:t,onToggle:n,id:i,tabindex:r=0,title:s,disabled:a=!1,size:o="medium"}=e;return zd(`.sliding-toggle${"medium"!==o?`.toggle-${o}`:""}${t?".on":""}${a?".disabled":""}`,{id:i,tabindex:a?-1:r,title:s,role:"switch","aria-checked":t?"true":"false","aria-disabled":a?"true":void 0,onclick:()=>{a||n(!t)},onkeydown:e=>{a||" "!==e.key&&"Enter"!==e.key||(e.preventDefault(),n(!t))}},zd(".sliding-toggle-thumb"))}}),af=e=>{let t=og(),n=cg();const{view:i}=e.attrs;function r(e){t=e,lg(e),e||i.zoomOut()}function s(e){n=e,ug(e)}return{view:e=>{const{stats:i,loading:a=!1}=e.attrs;if(a)return zd(".stats-view.loading",zd(".loading-message",Cp("Sæki tölfræði...")));if(!i)return zd(".stats-view.empty",zd(".empty-message",Cp("Engin tölfræði til að sýna")));const o=[{iconGlyph:"fire",label:Cp("Núverandi striklota"),value:i.currentStreak,highlight:i.currentStreak>0},{iconGlyph:"star",label:Cp("Lengsta striklota"),value:i.longestStreak},{iconGlyph:"tower",label:Cp("Hæsta skori náð"),value:i.totalTopScores},{iconGlyph:"certificate",label:Cp("Striklota hæsta skors"),value:i.topScoreStreak,highlight:i.topScoreStreak>0},{iconGlyph:"calendar",label:Cp("Heildarfjöldi daga"),value:i.totalDaysPlayed}];return zd(".stats-view",[zd(".stats-grid",o.map(((e,t)=>zd(".stat-item"+(e.highlight?".highlight":""),{key:t},[zd(".stat-icon",Lp(e.iconGlyph)),zd(".stat-info",[zd(".stat-label",e.label),zd(".stat-value",e.value.toString())])])))),zd(".stats-settings",[zd(".settings-row",[zd("span.settings-label",Cp("Þysja sjálfkrafa")),zd(sf,{state:t,onToggle:r,id:"autozoom-gata",title:Cp("Þysja sjálfkrafa"),size:"small"})]),zd(".settings-explain",Cp("autozoom_explain"))]),zd(".stats-settings",[zd(".settings-row",[zd("span.settings-label",Cp("Eldri litasamsetning")),zd(sf,{state:n,onToggle:s,id:"legacycolors-gata",title:Cp("Eldri litasamsetning"),size:"small"})]),zd(".settings-explain",Cp("legacy_colors_explain"))])])}}},of={view:e=>{const{tabs:t,activeTab:n,onTabChange:i}=e.attrs;return zd(".tab-bar[role=tablist]",t.map((e=>{const t=n===e.id;return zd(".tab-item"+(t?".active":""),{key:e.id,role:"tab",tabindex:t?0:-1,"aria-selected":t,"aria-label":e.label,onclick:()=>i(e.id),onkeydown:(r=e.id,e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),i(r))})},[zd("span.tab-icon-wrapper",[e.iconGlyph?zd("span.tab-icon",Lp(e.iconGlyph)):e.icon?zd("span.tab-icon",e.icon):null,e.badgeGlyph?zd("span.tab-badge",Lp(e.badgeGlyph)):null]),zd("span.tab-label",e.label)]);var r})))}};function lf(e){return e.replace(/\?/g,"")}const cf={view:e=>{const{score:t,bestMove:n,onMoveClick:i,solution:r}=e.attrs;let s;const a=n&&""!==n.word;s=a?lf(n.word):Cp("Besta mögulega lögn");const o=r&&!a?Cp("Smelltu til að sjá lausn"):"",l=!(!r&&!a),c=()=>{r?i(r.word,r.coord):a&&i(n.word,n.coord)},u=l?e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),c())}:void 0;return zd(".thermometer-best-score"+(a?".celebrate":""),zd(".thermometer-best-score-container",{role:l?"button":void 0,tabindex:l?0:void 0,"aria-label":l?Cp("Sýna besta leik"):void 0,onclick:c,onkeydown:u,title:o},[a?zd(tf,{animate:!0}):null,zd(".thermometer-best-circle",t.toString()),zd(".thermometer-best-label",s)]))}},uf={view:e=>{const{score:t,thisPlayer:n}=e.attrs;return zd(".thermometer-current-score"+(n?".this-player":""),[zd(".thermometer-current-circle",t.toString())])}},hf={view:e=>{const{zoneHeights:t,zoneAllocation:n,onMoveClick:i}=e.attrs,r=t.cold,s=r+t.warm,a=[];function o(e,t,n,r){const s=e.length,o=r/(s+1);e.forEach(((e,r)=>{const l=n+o*(s-r),c=!(!e.word||!e.coord),u=()=>{c&&i(e.word,e.coord)},h=c?e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),u())}:void 0;a.push(zd(`.thermometer-move-overlay .${t}`,{key:`${t}-${r}`,style:`--move-position: ${l.toFixed(2)}%`,role:c?"button":void 0,tabindex:c?0:void 0,"aria-label":c?`${Cp("Sýna leik")}: ${lf(e.word)}`:void 0,onclick:u,onkeydown:h},function(e){return e.isGlobalBestScore?""===e.word?[zd(uf,{thisPlayer:!1,score:e.score})]:[zd(uf,{thisPlayer:!0,score:e.score}),zd(".thermometer-move-word",lf(e.word)),zd(".thermometer-move-coord",`(${e.coord})`)]:[zd(".thermometer-move-score",e.score.toString()),zd(".thermometer-move-word",lf(e.word)),zd(".thermometer-move-coord",`(${e.coord})`)]}(e)))}))}return o(n.cold,"cold",0,t.cold),o(n.warm,"warm",r,t.warm),o(n.hot,"hot",s,t.hot),zd(".thermometer-moves-overlay-wrapper",a)}},df={view:e=>{const{riddle:t,selectedMoves:n,bestMove:i,onMoveClick:r}=e.attrs,{warmBoundary:s,hotBoundary:a,bestPossibleScore:o,globalBestScore:l}=t,c=function(e,t,n){const i={hot:[],warm:[],cold:[]};return n.forEach((n=>{n.score>=t?i.hot.push(n):n.score>=e?i.warm.push(n):i.cold.push(n)})),i}(s,a,n),u=function(e){const t=e.hot.length,n=e.warm.length,i=e.cold.length,r=Math.max(15,8*t),s=Math.max(15,8*n),a=Math.max(15,8*i),o=r+s+a;if(o>100){const e=100/o;return{hot:r*e,warm:s*e,cold:a*e}}const l=100-o,c=t+n+i,u=c>0?l/c:0,h=0===c?l/3:0;return{hot:r+t*u+h,warm:s+n*u+h,cold:a+i*u+h}}(c),h=(new Date).toISOString().split("T")[0],d=t.date<h?t.solution||l:null;return zd(".thermometer-container",[zd(".thermometer-body",[zd(".thermometer-zones",[zd(".thermometer-zone.hot",{style:`--zone-size: ${u.hot+u.warm+u.cold}%`}),zd(".thermometer-zone.warm",{style:`--zone-size: ${u.warm+u.cold}%`}),zd(".thermometer-zone.cold",{style:`--zone-size: ${u.cold}%`})]),zd(hf,{moves:n,maxScore:o,zoneHeights:u,zoneAllocation:c,onMoveClick:r})]),zd(cf,{score:o,bestMove:i,onMoveClick:r,solution:d})])}},pf=()=>{let e="performance";return{view:t=>{const{view:n,selectedMoves:i,bestMove:r,onMoveClick:s}=t.attrs,{riddle:a,state:o,leaderboard:l}=n.model;if(!a)return zd(".gatadagsins-right-side-tabs","");const c=o?.netskraflUserId||"",u=l?.some((e=>e.userId===c)),h=[{id:"performance",label:Cp("Frammistaða"),iconGlyph:"dashboard"},{id:"stats",label:Cp("Tölfræði"),iconGlyph:"stats"},{id:"leaderboard",label:Cp("Stigatafla"),iconGlyph:"tower",badgeGlyph:u?"star":void 0}];return zd(".gatadagsins-right-side-tabs",[zd(of,{tabs:h,activeTab:e,onTabChange:t=>{e=t}}),zd(".tab-content",["performance"===e?zd(df,{riddle:a,selectedMoves:i,bestMove:r,onMoveClick:s}):null,"stats"===e?zd(af,{view:n,stats:n.model.userStats||null,loading:!1}):null,"leaderboard"===e?zd(rf,{leaderboard:n.model.leaderboard||[],currentUserId:o?.netskraflUserId||"",loading:!1}):null])])}}},gf={view:e=>{const{view:t,selectedMoves:n,bestMove:i,onStatsClick:r}=e.attrs,{riddle:s}=t.model,a=(e,t)=>{s&&e&&t&&s.recreateWordOnBoard(e,t)};return zd(".gatadagsins-right-side-wrapper",s?[zd(".gatadagsins-mobile-wrapper",[zd(".mobile-date-nav-container",zd(ef,{view:t,date:s.date,locale:s.locale})),zd(".gatadagsins-mobile-status",zd(nf,{view:t,selectedMoves:n,bestMove:i,onMoveClick:a,onStatsClick:r}))]),zd(".gatadagsins-thermometer-column",[zd(".desktop-date-nav-container",zd(ef,{view:t,date:s.date,locale:s.locale})),zd(pf,{view:t,selectedMoves:n,bestMove:i,onMoveClick:a})])]:null)}};const ff=()=>{let e=!1,t=null;return{onremove:()=>{t&&(clearTimeout(t),t=null)},view:n=>{const{score:i,position:r,word:s,onClose:a}=n.attrs,o=s.replace(/\?/g,"").toUpperCase(),l=Cp("share_text_template",{position:String(r)});return[zd(".modal-backdrop-netskrafl",{onclick:e=>(e.preventDefault(),a(),!1),onwheel:e=>(e.preventDefault(),e.stopPropagation(),!1),ontouchmove:e=>(e.preventDefault(),e.stopPropagation(),!1)}),zd(".modal-dialog.share-popup",{role:"dialog","aria-modal":"true","aria-labelledby":"share-popup-title",tabindex:0,oncreate:e=>{const t=e.dom.querySelector("button");t&&t.focus()},onkeydown:e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),a())},onwheel:e=>(e.stopPropagation(),!1),ontouchmove:e=>(e.stopPropagation(),!1)},[zd(".modal-content",[zd("button.close",{onclick:a,"aria-label":Cp("Loka")},Lp("remove")),zd(".share-popup-celebration",[zd(tf,{animate:!0,size:84}),zd(".share-popup-score-circle",[zd(".share-popup-score",String(i))])]),zd(".share-popup-title",{id:"share-popup-title"},Cp("share_popup_title")),zd(".share-popup-subtitle",Cp("share_popup_subtitle")),zd(".share-popup-word",o),zd(".share-popup-text-preview",l),zd(".share-popup-buttons",[zd("button.share-popup-btn",{class:e?"success":"primary",onclick:async()=>{await async function(e){try{if(navigator.clipboard?.writeText)return await navigator.clipboard.writeText(e),!0;const t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.left="-999999px",t.style.top="-999999px",document.body.appendChild(t),t.focus(),t.select();const n=document.execCommand("copy");return document.body.removeChild(t),n}catch(e){return console.error("Failed to copy to clipboard:",e),!1}}(l)&&(e=!0,zd.redraw(),t=setTimeout((()=>{e=!1,t=null,zd.redraw()}),2e3))}},[Lp(e?"ok":"copy")," ",Cp(e?"share_copied_confirmation":"share_button_copy")]),"undefined"!=typeof navigator&&"function"==typeof navigator.share?zd("button.share-popup-btn.secondary",{onclick:async()=>{await async function(e){try{return await navigator.share({text:e}),!0}catch(e){return e instanceof Error&&"AbortError"!==e.name&&console.error("Share failed:",e),!1}}(l)}},[Lp("share")," ",Cp("share_button_share")]):null])])])]}}},mf=()=>{let e="stats";return{view:t=>{const{view:n,onClose:i}=t.attrs,{riddle:r,state:s,leaderboard:a}=n.model;if(!r)return null;const o=s?.netskraflUserId||"",l=a?.some((e=>e.userId===o)),c=[{id:"stats",label:Cp("Tölfræði"),iconGlyph:"stats"},{id:"leaderboard",label:Cp("Stigatafla"),iconGlyph:"tower",badgeGlyph:l?"star":void 0}];return[zd(".modal-backdrop-netskrafl",{onclick:e=>(e.preventDefault(),!1),onwheel:e=>(e.preventDefault(),e.stopPropagation(),!1),ontouchmove:e=>(e.preventDefault(),e.stopPropagation(),!1)}),zd(".modal-dialog.stats-modal",{onwheel:e=>(e.stopPropagation(),!1),ontouchmove:e=>(e.stopPropagation(),!1)},[zd(".modal-content",[zd("button.close",{onclick:i,"aria-label":"Loka"},Lp("remove")),zd(of,{tabs:c,activeTab:e,onTabChange:t=>{e=t}}),zd(".modal-body",["stats"===e?zd(af,{view:n,stats:n.model.userStats||null,loading:!1}):null,"leaderboard"===e?zd(rf,{leaderboard:n.model.leaderboard||[],currentUserId:s?.netskraflUserId||"",loading:!1}):null])])])]}}},vf={oninit:async e=>{const{attrs:t,state:n}=e;n.showHelp=!1,n.showStatsModal=!1;const{model:i,actions:r}=t.view,{riddle:s}=i;if(!s){const{date:e,locale:n}=t;await r.fetchRiddle(e,n)}},view:e=>{const{attrs:t,state:n}=e,{view:i}=t,{model:r}=i,{riddle:s}=r,{selectedMoves:a,bestMove:o}=s?yf(s):{selectedMoves:[],bestMove:void 0},l=()=>{n.showHelp=!n.showHelp,zd.redraw()},c=()=>{n.showStatsModal=!n.showStatsModal,zd.redraw()};return zd("div.drop-target",{id:"gatadagsins-background"},[zd(".gatadagsins-container",[s?zd(".gatadagsins-main",[zd(Zg,{view:i}),zd(gf,{view:i,selectedMoves:a,bestMove:o,onStatsClick:c}),s.askingForBlank?zd(Lg,{game:s}):""]):"",r.state?.beginner?zd(Wp,{view:i,showClose:!1}):"",zd(".info",{title:Cp("Upplýsingar og hjálp")},zd("a.iconlink",{href:"#",onclick:e=>{e.preventDefault(),l()}},Lp("info-sign"))),n.showHelp?zd(Xg,{onClose:l}):""]),n.showStatsModal?zd(mf,{view:i,onClose:c}):"",s?.justAchievedBestScore&&o?zd(ff,{score:o.score,position:r.solverCount,word:o.word,onClose:()=>{s&&(s.justAchievedBestScore=!1),zd.redraw()}}):""])}},yf=e=>{const t=e.model.state?.netskraflUserId||"",{bestPossibleScore:n,globalBestScore:i,playerMoves:r}=e;let s;const a=r.sort(((e,t)=>t.score-e.score)).slice(0,10).map((e=>({score:e.score,word:e.word,coord:e.coord})));if(i&&i.score>0){const{score:e,word:n,coord:r}=i;(a[0]?.score??0)>=e?a[0].isGlobalBestScore=!0:i.player===t?a.unshift({score:e,isGlobalBestScore:!0,word:n,coord:r}):a.unshift({score:e,isGlobalBestScore:!0,word:"",coord:""})}return a.length>0&&a[0].score===n&&(s=a.shift()),{selectedMoves:a,bestMove:s}};function wf(e,t,n){const i=n.target;return!("INPUT"!==i.tagName&&"TEXTAREA"!==i.tagName&&"SELECT"!==i.tagName&&!i.isContentEditable)||(!!t.isMobile()||(!!e.showingDialog||null!==e.askingForBlank))}function bf(e,t,n){if(wf(e,t,n))return;const{key:i}=n;if("ArrowRight"===i)return n.preventDefault(),e.setKeyboardDirection("H"),void zd.redraw();if("ArrowDown"===i)return n.preventDefault(),e.setKeyboardDirection("V"),void zd.redraw();if("Backspace"===i)return n.preventDefault(),void(e.undoLastKeyboardTile()&&zd.redraw());if("Escape"===i)return n.preventDefault(),e.resetRack(),void zd.redraw();if(n.isComposing)return;const r=i.normalize("NFC");if(1===r.length){const t=r.toLowerCase();if(e.alphabet.includes(t))return n.preventDefault(),void(e.placeKeyboardTile(t)&&zd.redraw())}}function _f(e,t,n){if(wf(e,t,n))return;const{data:i}=n,r=i?.normalize("NFC");if(r&&1===r.length){const t=r.toLowerCase();e.alphabet.includes(t)&&(n.preventDefault(),e.placeKeyboardTile(t)&&zd.redraw())}}let kf=null;class Cf{constructor(e){this._prefix=`game.${e}`}getLocalTile(e){return window.localStorage[`${this._prefix}.tile.${e}.t`]}getLocalTileSq(e){return window.localStorage[`${this._prefix}.tile.${e}.sq`]}setLocalTile(e,t){window.localStorage[`${this._prefix}.tile.${e}.t`]=t}setLocalTileSq(e,t){window.localStorage[`${this._prefix}.tile.${e}.sq`]=t}clearTiles(){try{const e=window.localStorage;for(let t=1;t<=7;t++)e.removeItem(`${this._prefix}.tile.${t}.sq`),e.removeItem(`${this._prefix}.tile.${t}.t`)}catch(e){}}saveTiles(e){let t;for(t=0;t<e.length;t++){const n=e[t].sq,i=e[t].tile;this.setLocalTileSq(t+1,n),this.setLocalTile(t+1,i)}for(;t<7;t++)this.setLocalTileSq(t+1,""),this.setLocalTile(t+1,"")}loadTiles(){let e,t;const n=[];for(let i=0;i<7;i++)e=this.getLocalTileSq(i+1),t=this.getLocalTile(i+1),e&&t&&n.push({sq:e,tile:t});return n}}class Sf{getLocalTile(e){return""}getLocalTileSq(e){return""}setLocalTile(e,t){}setLocalTileSq(e,t){}clearTiles(){}saveTiles(e){}loadTiles(){return[]}}const Tf=e=>function(){if(null===kf)try{kf="localStorage"in window&&null!==window.localStorage&&void 0!==window.localStorage}catch(e){kf=!1}return kf}()?new Cf(e):new Sf;const If=new class{constructor(){this.wordCheckCache={}}ingestTwoLetterWords(e,t){let n=this.wordCheckCache[e];void 0===n&&(n=this.wordCheckCache[e]={});for(const[,e]of t)for(const t of e)n[t]=!0}async checkWords(e,t,n){let i=this.wordCheckCache[t];if(i){let e=!0;for(const t of n){if(void 0===i[t]){if(2===t.length)return!1;e=!1;break}if(!1===i[t])return!1}if(e)return!0}try{const r=await sp(e,{url:"/wordcheck",body:{locale:t,word:n[0],words:n}});if(r?.word===n[0]&&r?.valid){i||(i=this.wordCheckCache[t]={});for(const[e,t]of r.valid)i[e]=t}return!!r.ok}catch(e){}return!1}},Ef={standard:"H8",explo:"D4"},Pf={standard:[7,7],explo:[3,3]},xf={standard:{WORDSCORE:["3 3 3"," 2 2 "," 2 2 "," 2 2 "," 2 2 "," "," ","3 2 3"," "," "," 2 2 "," 2 2 "," 2 2 "," 2 2 ","3 3 3"],LETTERSCORE:[" 2 2 "," 3 3 "," 2 2 ","2 2 2"," "," 3 3 3 3 "," 2 2 2 2 "," 2 2 "," 2 2 2 2 "," 3 3 3 3 "," ","2 2 2"," 2 2 "," 3 3 "," 2 2 "]},explo:{WORDSCORE:["3 3 3"," 2 "," 2 "," 2 "," 2 "," 2 2 "," 2 2 ","3 2 3"," 2 2 "," 2 2 "," 2 "," 2 "," 2 "," 2 ","3 3 3"],LETTERSCORE:[" 2 2 "," 3 2 3 "," 2 3 2 "," 2 3 2","2 3 "," 2 2 "," 3 2 "," 2 2 "," 2 3 "," 2 2 "," 3 2","2 3 2 "," 2 3 2 "," 3 2 3 "," 2 2 "]}};class Rf{constructor(e,t,n="standard"){this.locale="is_IS",this.alphabet="",this.tile_scores={},this.board_type="standard",this.two_letter_words=[[],[]],this.startSquare="H8",this.startCoord=[7,7],this.manual=!1,this.tiles={},this.over=!1,this.currentScore=void 0,this.currentWord="",this.currentWordWithBlanks="",this.currentCoord="",this.wordGood=!1,this.wordBad=!1,this.currentError=null,this.currentMessage=null,this.localturn=!0,this.moveInProgress=!1,this.showingDialog=null,this.selectedSq=null,this.sel="movelist",this.askingForBlank=null,this.keyboardDirection="H",this.keyboardPlacedTiles=[],this.localStorage=null,this.uuid=e,this.localStorage=Tf(e),this.board_type=n,this.startSquare=Ef[n],this.startCoord=Pf[n],this.state=t}init(){}tilescore(e){return this.tile_scores[e]}twoLetterWords(){return this.two_letter_words}squareClass(e){if(!e||"R"===e[0])return;const{row:t,col:n}=Up(e);return this.squareType(t,n)||void 0}squareType(e,t){const n=this.wordScore(e,t);if(2===n)return"dw";if(3===n)return"tw";const i=this.letterScore(e,t);return 2===i?"dl":3===i?"tl":""}wordScore(e,t){const n=xf[this.board_type].WORDSCORE;return parseInt(n[e].charAt(t),10)||1}letterScore(e,t){const n=xf[this.board_type].LETTERSCORE;return parseInt(n[e].charAt(t),10)||1}attemptMove(e,t){if(t===e)return;if(t in this.tiles&&"R"!==t[0])throw`Square ${t} occupied`;if(!(e in this.tiles))throw`No tile at ${e}`;const n=this.tiles[e];"R"===t[0]||"?"!==n.tile||" "!==n.letter?this.moveTile(e,t):this.askingForBlank={from:e,to:t}}_moveTile(e,t){if(e===t)return;const n=this.tiles[e];if(void 0===n)throw"Moving from an empty square";if(delete this.tiles[e],t in this.tiles){if("R"!==t.charAt(0))throw"Dropping to an occupied square";const e=parseInt(t.slice(1),10);let n=e+1;for(;`R${n}`in this.tiles;)n++;if(n<=7)for(let t=n;t>e;t--)this.tiles[`R${t}`]=this.tiles["R"+(t-1)];else{for(n=e-1;`R${n}`in this.tiles;)n--;if(n<1)throw"No place in rack to drop tile";for(let t=n;t<e;t++)this.tiles[`R${t}`]=this.tiles[`R${t+1}`]}}"R"===t[0]&&"?"===n.tile&&(n.letter=" "),this.tiles[t]=n}moveTile(e,t){if(this._moveTile(e,t),this.currentError=this.currentMessage=null,"R"===e[0]&&"R"!==t[0]){1===this.tilesPlaced().length&&this.setDefaultDirection(t)}this.updateScore(),this.saveTiles()}cancelBlankDialog(){this.askingForBlank=null}placeBlank(e){if(null===this.askingForBlank)return;const{from:t,to:n}=this.askingForBlank;this.tiles[t].letter=e,this.moveTile(t,n),this.askingForBlank=null}draggableTiles(){return Object.keys(this.tiles).filter((e=>this.tiles[e].draggable))}tilesPlaced(){return this.draggableTiles().filter((e=>"R"!==e[0]))}resetRack(){this.selectedSq=null,this._resetRack(),this.saveTiles()}_moveBoardTileToRack(e,t=1){if(!(e in this.tiles))return t;let n=t;for(;`R${n}`in this.tiles;)n++;const i=`R${n}`;return this.tiles[i]=this.tiles[e],delete this.tiles[e],"?"===this.tiles[i].tile&&(this.tiles[i].letter=" "),n+1}_resetRack(){const e=this.tilesPlaced();if(e.length>0){let t=1;for(const n of e)t=this._moveBoardTileToRack(n,t);this.updateScore()}this.currentError=null,this.resetKeyboardState()}rescrambleRack(){if(this.selectedSq=null,null!==this.showingDialog)return;this._resetRack();const e=[];for(let t=1;t<=7;t++){const n=`R${t}`;n in this.tiles?e.push(this.tiles[n]):e.push(null)}let t=e.length;for(;0!==t;){const n=Math.floor(Math.random()*t);t-=1;const i=e[t];e[t]=e[n],e[n]=i}let n=0;for(let t=1;t<=7;t++){const i=e[t-1];null!==i?this.tiles["R"+(t-n)]=i:(delete this.tiles["R"+(7-n)],n++)}this.saveTiles()}resetError(){this.currentError=this.currentMessage=null}placeTiles(e,t,n){this.tiles={}}populateRackTiles(){}async updateScore(){this.wordGood=!1,this.wordBad=!1;const e=this.calcScore();if(void 0!==e&&e.word){if(this.currentScore=e.score,this.currentWord=e.word,this.currentWordWithBlanks=e.wordWithBlanks,this.currentCoord=e.coord,!this.manual){const t=await If.checkWords(this.state,this.locale,e.words);this.currentWord===e.word&&(this.wordGood=t,this.wordBad=!t)}}else this.currentScore=void 0,this.currentWord="",this.currentWordWithBlanks="",this.currentCoord=""}calcScore(){let e=0,t=0,n=1,i=op,r=op,s=0,a=0,o=0,l=0,c="",u="";const h=[],d=Object.values(this.tiles).filter((e=>!e.draggable)).length;if(this.tilesPlaced().forEach((t=>{const l=ap.indexOf(t.charAt(0)),c=parseInt(t.slice(1),10)-1,u=this.tiles[t];e+=u.score*this.letterScore(l,c),o++,n*=this.wordScore(l,c),l<i&&(i=l),c<r&&(r=c),l>s&&(s=l),c>a&&(a=c)})),!o)return;if(i!==s&&r!==a)return;let p=r,g=i,f=0,m=0;for(i!==s?m=1:r!==a||null===this.tileAt(i-1,r)&&null===this.tileAt(i+1,r)?f=1:m=1;null!==this.tileAt(g-m,p-f);)p-=f,g-=m;const v=zp(g,p,1===m)||"";let y;for(;null!==(y=this.tileAt(g,p));){if(y.draggable){const e=this.calcCrossScore(g,p,1-m,1-f);e.score>=0&&(t+=e.score,l++,h.push(e.word))}else e+=y.score,l++;c+=y.letter,y.draggable&&"?"===y.tile?u+=`?${y.letter}`:u+=y.letter,p+=f,g+=m}if(0===d){const e=this.startCoord;if(null===this.tileAt(e[0],e[1]))return}else if(!l)return;return f&&p<=a||m&&g<=s?void 0:(h.push(c),{word:c,wordWithBlanks:u,words:h,score:e*n+t+(7===o?50:0),coord:v})}calcCrossScore(e,t,n,i){let r,s=0,a=!1,o=t,l=e,c="";for(;null!==this.tileAt(l-n,o-i);)o-=i,l-=n;for(;null!==(r=this.tileAt(l,o));){let u=r.score;o===t&&l===e?u*=this.letterScore(l,o):a=!0,c+=r.letter,s+=u,o+=i,l+=n}return a?{score:s*this.wordScore(e,t),word:c}:{score:-1,word:""}}tileAt(e,t){const n=zp(e,t);return n&&this.tiles[n]||null}saveTiles(){const e=[],t=this.tilesPlaced();for(const n of t){const{tile:t,letter:i}=this.tiles[n];e.push({sq:n,tile:"?"===t?t+i:t})}for(let t=1;t<=7;t++){const n=`R${t}`;n in this.tiles&&e.push({sq:n,tile:this.tiles[n].tile})}this.localStorage?.saveTiles(e)}restoreTiles(e){if(!e.length)return;const t=[],n=[],i={};for(let n=0;n<e.length;n++)t.push(e[n].tile.charAt(0));for(let e=1;e<=7;e++)`R${e}`in this.tiles&&n.push(this.tiles[`R${e}`].tile.charAt(0));if(t.sort(),n.sort(),!function(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}(t,n))return;for(let e=1;e<=7;e++)`R${e}`in this.tiles&&(i[`R${e}`]=this.tiles[`R${e}`],delete this.tiles[`R${e}`]);for(let t=0;t<e.length;t++){const n=e[t].sq;if(!(n in this.tiles)){const r=e[t].tile;for(const e of Object.keys(i))if(i[e].tile===r.charAt(0)){"?"===r.charAt(0)&&("R"===n.charAt(0)?i[e].letter=" ":i[e].letter=r.charAt(1)),this.tiles[n]=i[e],delete i[e];break}}}let r=1;for(const e of Object.keys(i)){for(;`R${r}`in this.tiles;)r++;r<=7&&(this.tiles[`R${r}`]=i[e])}this.saveTiles(),this.updateScore()}cleanup(){}getLockedDirection(){const e=this.tilesPlaced();if(e.length<2)return null;const t=new Set,n=new Set;for(const i of e)t.add(i.charAt(0)),n.add(parseInt(i.slice(1),10));return 1===t.size&&n.size>1?"H":1===n.size&&t.size>1?"V":null}setKeyboardDirection(e){null===this.getLockedDirection()&&(this.keyboardDirection=e)}getEffectiveKeyboardDirection(){return this.getLockedDirection()??this.keyboardDirection}findNextEmptySquare(e,t,n){const i="H"===n?1:0,r="V"===n?1:0;let s=e,a=t;for(;s>=0&&s<op&&a>=0&&a<op;){const e=zp(s,a);if(e&&!(e in this.tiles))return e;s+=r,a+=i}return null}canContinueInDirection(e,t){const n=Up(e),i="H"===t?1:0,r="V"===t?1:0;return null!==this.findNextEmptySquare(n.row+r,n.col+i,t)}setDefaultDirection(e){this.canContinueInDirection(e,"H")?this.keyboardDirection="H":this.keyboardDirection="V"}getNextKeyboardSquare(){const e=this.tilesPlaced();if(0===e.length)return null;let t=!0;for(let e=1;e<=7;e++)if(`R${e}`in this.tiles){t=!1;break}if(t)return null;const n=this.getLockedDirection()??this.keyboardDirection;let i=-1,r=-1;for(const t of e){const e=ap.indexOf(t.charAt(0)),s=parseInt(t.slice(1),10)-1;"H"===n?(s>r||s===r&&e>i)&&(r=s,i=e):(e>i||e===i&&s>r)&&(i=e,r=s)}const s="H"===n?1:0,a="V"===n?1:0;return this.findNextEmptySquare(i+a,r+s,n)}findRackTileForLetter(e){let t=null;for(let n=1;n<=7;n++){const i=`R${n}`;if(i in this.tiles){const n=this.tiles[i];if(n.tile===e)return i;"?"===n.tile&&null===t&&(t=i)}}return t}placeKeyboardTile(e){const t=this.getNextKeyboardSquare();if(!t)return!1;const n=this.findRackTileForLetter(e);if(!n)return!1;const i=this.tiles[n];return"?"===i.tile&&(i.letter=e),this.moveTile(n,t),this.keyboardPlacedTiles.push(t),!0}undoLastKeyboardTile(){if(0===this.keyboardPlacedTiles.length)return!1;const e=this.keyboardPlacedTiles.pop();if(!e||!(e in this.tiles))return!1;let t=null;for(let e=1;e<=7;e++){const n=`R${e}`;if(!(n in this.tiles)){t=n;break}}return!!t&&(this.moveTile(e,t),!0)}resetKeyboardState(){this.keyboardDirection="H",this.keyboardPlacedTiles=[]}}class Lf extends Rf{constructor(e,t,n,i,r){if(super(e,i),this.userid=["",""],this.nickname=["",""],this.fullname=["",""],this.autoplayer=[!1,!1],this.maxOvertime=600,this.scores=[0,0],this.moves=[],this.newmoves=[],this.lastmove=void 0,this.rack=[],this.racks=[],this.num_moves=0,this.bag="",this.newbag=!0,this.localturn=!1,this.player=null,this.stats=null,this.manual=!1,this.fairplay=!1,this.zombie=!1,this.overdue=!1,this.messages=null,this.chatLoading=!1,this.chatSeen=!0,this.congratulate=!1,this.xchg=!1,this.chall=!1,this.last_chall=!1,this.succ_chall=!1,this.moveInProgress=!1,this.isFresh=!1,this.numTileMoves=0,this.interval=null,this.time_info=null,this.penalty0=0,this.penalty1=0,this.timeBase=null,this.runningOut0=!1,this.runningOut1=!1,this.blinking0=!1,this.blinking1=!1,this.clockText0="",this.clockText1="",this.moveListener=n,void 0!==r&&(this.maxOvertime=r),null===t)return void this.initMockupGame();const s=this.localStorage?.loadTiles()||[];this.init(t),this.restoreTiles(s),!this.over&&this.isTimed()&&this.startClock(),this.isRobotGame()||this.loadMessages()}applyServerState(e){return this.over=99===e.result,this.over||0===e.result?(this.currentError=this.currentMessage=null,Object.assign(this,e),e.newmoves&&(this.moves=this.moves.concat(e.newmoves)),this.newmoves=[],this.localturn=!this.over&&this.moves.length%2===this.player,this.isFresh=!0,this.startSquare=Ef[this.board_type],this.startCoord=Pf[this.board_type],this.congratulate=this.over&&null!==this.player&&this.scores[this.player]>this.scores[1-this.player],!0):(this.currentError=e.result||"server",this.currentMessage=e.msg||"",!1)}init(e){e?this.applyServerState(e)&&(this.placeTiles(),If.ingestTwoLetterWords(this.locale,this.two_letter_words[0])):super.init()}applyOpponentMove(e){const t=this.localturn,n=this.savePlayerTiles();this.applyServerState(e)&&(this.placeTiles(void 0,void 0,!0),!t&&this.localturn?this.restorePlayerTiles(n):this.populateRackTiles())}initMockupGame(){this.tiles={},this.startSquare=Ef[this.board_type],this.startCoord=Pf[this.board_type],this.alphabet="aábdðeéfghiíjklmnoóprstuúvxyýþæö",this.localturn=!0,this.player=0,this.tile_scores={"?":0,a:1,b:5,d:5,e:3,f:3,g:3,h:4,i:1,j:6,k:2,l:2,m:2,n:1,o:5,p:5,r:1,s:1,t:2,u:2,v:5,x:10,y:6,"á":3,"æ":4,"é":7,"í":4,"ð":2,"ó":3,"ö":6,"ú":4,"ý":5,"þ":7},this.two_letter_words=[[["a",["að","af","ak","al","an","ar","as","at","ax"]],["á",["áa","áð","ái","ál","ám","án","ár","ás","át"]],["b",["bí","bú","bý","bæ"]],["d",["dá","do","dó","dý"]],["e",["eð","ef","eg","ei","ek","el","em","en","er","es","et","ex","ey"]],["é",["ég","él","ét"]],["f",["fa","fá","fé","fæ"]],["g",["gá"]],["h",["ha","há","hí","hó","hý","hæ"]],["i",["ið","il","im"]],["í",["íð","íl","ím","ís"]],["j",["já","je","jó","jú"]],["k",["ká","ku","kú"]],["l",["la","lá","lé","ló","lú","lý","læ"]],["m",["má","mi","mó","mý"]],["n",["ná","né","nó","nú","ný","næ"]],["o",["of","og","oj","ok","op","or"]],["ó",["óa","óð","óf","ói","ók","ól","óm","ón","óp","ós","óx"]],["p",["pí","pu","pú","pæ"]],["r",["rá","re","ré","rí","ró","rú","rý","ræ"]],["s",["sá","sé","sí","so","sú","sý","sæ"]],["t",["tá","te","té","ti","tí","tó","tý"]],["u",["um","un"]],["ú",["úa","úð","úf","úi","úr","út"]],["v",["vá","vé","ví","vó"]],["y",["yl","ym","yr","ys"]],["ý",["ýf","ýg","ýi","ýk","ýl","ýr","ýs","ýt"]],["þ",["þá","þó","þú","þý"]],["æ",["æð","æf","æg","æi","æl","æp","ær","æs","æt"]],["ö",["öl","ör","ös","öt","öx"]]],[["a",["áa","fa","ha","la","óa","úa"]],["á",["dá","fá","gá","há","já","ká","lá","má","ná","rá","sá","tá","vá","þá"]],["ð",["að","áð","eð","ið","íð","óð","úð","æð"]],["e",["je","re","te"]],["é",["fé","lé","né","ré","sé","té","vé"]],["f",["af","ef","of","óf","úf","ýf","æf"]],["g",["eg","ég","og","ýg","æg"]],["i",["ái","ei","mi","ói","ti","úi","ýi","æi"]],["í",["bí","hí","pí","rí","sí","tí","ví"]],["j",["oj"]],["k",["ak","ek","ok","ók","ýk"]],["l",["al","ál","el","él","il","íl","ól","yl","ýl","æl","öl"]],["m",["ám","em","im","ím","óm","um","ym"]],["n",["an","án","en","ón","un"]],["o",["do","so"]],["ó",["dó","hó","jó","ló","mó","nó","ró","tó","vó","þó"]],["p",["op","óp","æp"]],["r",["ar","ár","er","or","úr","yr","ýr","ær","ör"]],["s",["as","ás","es","ís","ós","ys","ýs","æs","ös"]],["t",["at","át","et","ét","út","ýt","æt","öt"]],["u",["ku","pu"]],["ú",["bú","jú","kú","lú","nú","pú","rú","sú","þú"]],["x",["ax","ex","óx","öx"]],["y",["ey"]],["ý",["bý","dý","hý","lý","mý","ný","rý","sý","tý","þý"]],["æ",["bæ","fæ","hæ","læ","næ","pæ","ræ","sæ"]]]];const e=[["t",1],["e",1],["s",1],["t",1],["i",1],["n",1],["g",2]];this.rack=e;for(let t=0;t<e.length;t++){const[n,i]=e[t];this.tiles[`R${t+1}`]={player:0,tile:n,letter:n,score:i,freshtile:!0,draggable:!0,index:t,xchg:!1}}If.ingestTwoLetterWords(this.locale,this.two_letter_words[0])}update(e){const t=this.congratulate;for(const e of Object.keys(this.tiles))this.tiles[e].freshtile=!1;this.applyOpponentMove(e),null===this.currentError&&(this.succ_chall?this.resetRack():this.updateScore()),this.saveTiles(),this.isTimed()&&this.resetClock(),!t&&this.congratulate&&this.moveListener&&this.moveListener.notifyGameWon()}async refresh(){try{if(!this.uuid)return;const e=await rp(this.state,{method:"POST",url:"/gamestate",body:{game:this.uuid}});e?.ok&&this.update(e.game)}catch(e){}finally{this.moveInProgress=!1}}notifyUserChange(e){null!==this.player&&(this.nickname[this.player]=e)}buttonState(){const e={};return e.tilesPlaced=this.tilesPlaced().length>0,e.gameOver=this.over,e.congratulate=this.congratulate,e.localTurn=this.localturn,e.gameIsManual=this.manual,e.challengeAllowed=this.chall,e.lastChallenge=this.last_chall,e.showingDialog=null!==this.showingDialog,e.exchangeAllowed=this.xchg,e.wordGood=this.wordGood,e.wordBad=this.wordBad,e.canPlay=!1,e.tardyOpponent=!e.localTurn&&!e.gameOver&&this.overdue,e.showResign=!1,e.showExchange=!1,e.showPass=!1,e.showRecall=!1,e.showScramble=!1,e.showMove=!1,e.showMoveMobile=!1,e.showForceResignMobile=!1,e.showChallenge=!1,e.showChallengeInfo=!1,this.moveInProgress||(e.localTurn&&!e.gameOver&&(e.lastChallenge?(e.showChallenge=!0,e.showPass=!0,e.showChallengeInfo=!0):(e.showMove=e.tilesPlaced,e.showExchange=!e.tilesPlaced,e.showPass=!e.tilesPlaced,e.showResign=!e.tilesPlaced,e.showChallenge=!e.tilesPlaced&&e.gameIsManual&&e.challengeAllowed)),e.showMove&&(e.wordGood||e.gameIsManual)&&(e.canPlay=!0),e.gameOver||(e.tilesPlaced?(e.showRecall=!0,e.showMoveMobile=!0):(e.showScramble=!0,e.tardyOpponent&&(e.showForceResignMobile=!0)))),e}isTimed(){return null!==this.time_info&&this.time_info.duration>=1}showClock(){return!!this.isTimed()&&(!this.over||(!!this.clockText0||!!this.clockText1))}updateClock(){var e=this.calcTimeToGo(0),t=this.calcTimeToGo(1);this.clockText0=e,this.clockText1=t,this.runningOut0="-"===e[0]||e<="02:00",this.runningOut1="-"===t[0]||t<="02:00",this.blinking0=this.runningOut0&&e>="00:00"&&e<="00:30"&&0===this.player,this.blinking1=this.runningOut1&&t>="00:00"&&t<="00:30"&&1===this.player,zd.redraw()}resetClock(){this.timeBase=new Date,this.updateClock(),this.over&&(this.interval&&(window.clearInterval(this.interval),this.interval=null),this.blinking0=!1,this.blinking1=!1,this.runningOut0=!1,this.runningOut1=!1)}startClock(){this.resetClock(),this.interval||(this.interval=window.setInterval((()=>{this.updateClock()}),500))}cleanup(){this.interval&&(window.clearInterval(this.interval),this.interval=null)}calcTimeToGo(e){const t=this.time_info;if(null===t||null===this.timeBase)return"";let n=t.elapsed[e];const i=this.over;if(!i&&this.moves.length%2===e){n+=((new Date).getTime()-this.timeBase.getTime())/1e3,n-60*t.duration>this.maxOvertime&&(this.moveInProgress||(this.moveInProgress=!0,window.setTimeout((()=>{this.refresh()}),500)))}const r=Math.max(60*t.duration-n,-this.maxOvertime),s=Math.abs(r),a=Math.floor(s/60),o=Math.floor(s-60*a);return i?(this.penalty0=0,this.penalty1=0):r<0&&(0===e?this.penalty0=-10*Math.floor((60*a+o+59)/60):this.penalty1=-10*Math.floor((60*a+o+59)/60)),(r<0?"-":"")+`0${a.toString()}`.slice(-2)+":"+`0${o.toString()}`.slice(-2)}displayScore(e){return Math.max(this.scores[e]+(0===e?this.penalty0:this.penalty1),0)}isRobotGame(){return this.autoplayer[0]||this.autoplayer[1]}async loadMessages(){if(!this.chatLoading){this.chatLoading=!0,this.messages=[];try{const e=await rp(this.state,{method:"POST",url:"/chatload",body:{channel:`game:${this.uuid}`}});e.ok?this.messages=e.messages||[]:this.messages=[],void 0===e.seen?this.chatSeen=!0:this.chatSeen=e.seen}catch(e){}finally{this.chatLoading=!1}}}async loadStats(){this.stats=void 0;try{const e=await rp(this.state,{method:"POST",url:"/gamestats",body:{game:this.uuid}});if(!e||void 0===e.result)return;if(0!==e.result&&99!==e.result)return;this.stats=e}catch(e){}}async sendMessage(e){try{await rp(this.state,{method:"POST",url:"/chatmsg",body:{channel:`game:${this.uuid}`,msg:e}})}catch(e){}}sendChatSeenMarker(){this.sendMessage(""),this.chatSeen=!0}addChatMessage(e,t,n,i){this.chatLoading||""===t||(null===this.messages&&(this.messages=[]),this.messages.push({from_userid:e,msg:t,ts:n}),"chat"===this.sel?this.sendChatSeenMarker():i||(this.chatSeen=!1))}markChatShown(){return!this.chatSeen&&(this.sendChatSeenMarker(),!0)}placeMove(e,t,n,i){const r=Up(t);let s=r.col,a=r.row,o=!1,l=0;for(let t=0;t<n.length;t++){let c=n[t];if("?"===c){o=!0;continue}const u=zp(a,s);if(null===u)continue;const h=c;o&&(c="?");const d=this.tilescore(c);u in this.tiles||(this.tiles[u]={player:e,tile:c,letter:h,score:d,draggable:!1,freshtile:!1,index:l,xchg:!1},i&&(null!==this.player?this.tiles[u].highlight=e===this.player?0:1:this.tiles[u].highlight=e,l++)),s+=r.dx,a+=r.dy,o=!1}}setRack(e){this.rack=e}rackAtMove(e){const t=this.racks?.length||0;return t?this.racks[e>=t?t-1:e]:""}isFinalMove(e){return e>=this.num_moves}boardAsStrings(){const e=[];for(const t of ap){let n="";for(let e=0;e<op;e++){const i=`${t}${e+1}`;if(i in this.tiles){const{tile:e,letter:t}=this.tiles[i];n+="?"===e?t.toLocaleUpperCase():t}else n+="."}e.push(n)}return e}placeTiles(e,t,n){this.tiles={},this.numTileMoves=0;const i=this.moves,r=void 0!==e,s=!r&&!this.lastmove&&this.localturn,a=!t&&(s||r),o=void 0!==e?e:i.length;function l(e){if(e+2>=o)return!1;const[t,[n,r,s]]=i[e+2];return""===n&&("RESP"===r&&s<0)}for(let e=0;e<o;e++){const[t,[n,r]]=i[e];""===n||l(e)||(this.placeMove(t,n,r,e===o-1&&a),this.numTileMoves++)}const c=this.lastmove;if(c&&this.localturn&&!this.succ_chall)for(let e=0;e<c.length;e++){const t=c[e][0];if(!(t in this.tiles))throw`Tile from lastmove not in square ${t}`;this.tiles[t].freshtile=!0,this.tiles[t].index=e}n||this.populateRackTiles()}populateRackTiles(){for(let e=0;e<this.rack.length;e++){const t=`R${e+1}`,[n,i]=this.rack[e],r="?"===n?" ":n;this.tiles[t]={player:this.player?1:0,tile:n,letter:r,score:i,draggable:!0,freshtile:!1,index:0,xchg:!1}}}savePlayerTiles(){const e={};for(const t of this.draggableTiles())e[t]={...this.tiles[t]};return e}restorePlayerTiles(e){const t=[];for(const n of Object.keys(e))n in this.tiles?t.push(n):this.tiles[n]=e[n];let n=1;for(const i of t){for(;`R${n}`in this.tiles;)n++;const t=`R${n}`;this.tiles[t]=e[i],"?"===this.tiles[t].tile&&(this.tiles[t].letter=" ")}}allowDragDrop(){return!this.over&&!this.showingDialog&&!this.moveInProgress}async sendMove(e){this.moveInProgress=!0;try{const t=await rp(this.state,{method:"POST",url:"/submitmove",body:{moves:e,mcount:this.moves.length,uuid:this.uuid}});this.update(t),this.moveListener&&this.moveListener.notifyMove()}catch(e){this.currentError="server",e instanceof Error?this.currentMessage=e.message:this.currentMessage=String(e)}finally{this.moveInProgress=!1}}async forceResign(){this.moveInProgress=!0;try{const e=await rp(this.state,{method:"POST",url:"/forceresign",body:{mcount:this.moves.length,game:this.uuid}});this.update(e)}catch(e){this.currentError="server",e instanceof Error?this.currentMessage=e.message:this.currentMessage=String(e)}finally{this.moveInProgress=!1}}submitMove(){const e=this.tilesPlaced(),t=[];this.selectedSq=null,this.resetKeyboardState();for(let n=0;n<e.length;n++){const i=e[n],{tile:r,letter:s}=this.tiles[i];t.push(`${i}=${r}${"?"===r?s:""}`)}t.length>0&&this.sendMove(t)}submitPass(){this.showingDialog="pass",this.selectedSq=null}submitChallenge(){this.showingDialog="chall",this.selectedSq=null}submitExchange(){this.showingDialog="exchange",this.selectedSq=null;for(let e=1;e<=7;e++){const t=`R${e}`;t in this.tiles&&(this.tiles[t].xchg=!1)}}submitResign(){this.showingDialog="resign",this.selectedSq=null}confirmPass(e){this.showingDialog=null,e&&this.sendMove(["pass"])}confirmChallenge(e){this.showingDialog=null,e&&this.sendMove(["chall"])}confirmExchange(e){let t="";this.showingDialog=null;for(let e=1;e<=7;e++){const n=`R${e}`;n in this.tiles&&this.tiles[n].xchg&&(t+=this.tiles[n].tile,this.tiles[n].xchg=!1)}e&&t.length>0&&this.sendMove([`exch=${t}`])}confirmResign(e){this.showingDialog=null,e&&this.sendMove(["rsgn"])}}const Nf="gata_";function Df(e,t){return`${Nf}${t}_${e}`}function Af(e,t,n){if(!e||!t)return;const i={date:t,moves:n,timestamp:(new Date).toISOString(),userId:e};try{const n=Df(e,t);localStorage.setItem(n,JSON.stringify(i)),function(){try{const e=new Date,t=new Date(e);t.setDate(t.getDate()-30);const n=[];for(let e=0;e<localStorage.length;e++){const i=localStorage.key(e);if(i?.startsWith(Nf)){const e=i.split("_");if(e.length>=2){const r=e[1],s=new Date(r);!Number.isNaN(s.getTime())&&s<t&&n.push(i)}}}for(const e of n)localStorage.removeItem(e)}catch(e){console.error("Failed to cleanup old entries:",e)}}()}catch(e){console.error("Failed to save moves to localStorage:",e)}}class Mf extends Rf{constructor(e,t,n){if(!n.state)throw new Error("No global state in Riddle constructor");super(e,n.state),this.bestPossibleScore=0,this.warmBoundary=0,this.hotBoundary=0,this.globalBestScore=null,this.groupBestScore=null,this.personalBestScore=0,this.playerMoves=[],this.solution=null,this.justAchievedBestScore=!1,this.date=t,this.model=n}buttonState(){const e={};return e.tilesPlaced=this.tilesPlaced().length>0,e.gameOver=!1,e.localTurn=!0,e.showingDialog=null!==this.showingDialog,e.wordGood=this.wordGood,e.wordBad=this.wordBad,e.canPlay=this.wordGood&&e.tilesPlaced,e.showRecall=e.tilesPlaced,e.showScramble=!e.tilesPlaced,e.showMove=!1,e.showMoveMobile=!1,e.showPass=!1,e.showExchange=!1,e.showResign=!1,e.showChallenge=!1,e.showChallengeInfo=!1,e.showForceResignMobile=!1,e}allowDragDrop(){return!this.showingDialog}async load(e,t){const{state:n}=this;try{if(!n)throw new Error("No global state in Riddle.load");const i=await rp(n,{method:"POST",url:"/gatadagsins/riddle",body:{date:e,locale:t}});if(i.ok&&(this.date=e,this.locale=t,this.board_type=i.riddle.board_type||"standard",this.alphabet=i.riddle.alphabet||"",this.tile_scores=i.riddle.tile_scores||{},this.two_letter_words=i.riddle.two_letter_words||[],this.initBoard(i.riddle.board||[]),this.initRack(i.riddle.rack||[]),this.bestPossibleScore=i.riddle.max_score||0,this.globalBestScore=null,this.groupBestScore=null,this.personalBestScore=0,this.solution=i.riddle.solution||null,this.warmBoundary=.25*this.bestPossibleScore,this.hotBoundary=.5*this.bestPossibleScore,If.ingestTwoLetterWords(this.locale,this.two_letter_words[0]),n.netskraflUserId)){const t=function(e,t){if(!e||!t)return[];try{const n=Df(e,t),i=localStorage.getItem(n);if(!i)return[];const r=JSON.parse(i);return r.userId&&r.userId===e&&r.moves||[]}catch(e){return console.error("Failed to load moves from localStorage:",e),[]}}(n.netskraflUserId,e);if(t.length>0){const e=t.filter((e=>e.score<=this.bestPossibleScore));if(e.length>0){this.playerMoves=e.map((e=>({word:e.word,score:e.score,coord:e.coord,timestamp:e.timestamp||(new Date).toISOString()})));const t=e.reduce(((e,t)=>t.score>e.score?t:e));this.personalBestScore=t.score}}}}catch(e){console.error("Failed to load daily riddle:",e),this.currentError="Gat ekki lesið gátu dagsins. Reyndu aftur síðar."}}async submitRiddleWord(e){const{state:t}=this;if(t&&t.netskraflUserId)try{await rp(t,{method:"POST",url:"/gatadagsins/submit",body:{date:this.date,locale:this.locale,userId:t.netskraflUserId,groupId:t.userGroupId||null,userDisplayName:t.userFullname||t.userNick||"",move:e}})}catch(e){console.error("Failed to submit move:",e),this.currentError="Netþjónn gat ekki tekið á móti lögninni."}}addToPlayerMoves(e){if(!(this.wordGood&&this.currentScore&&this.currentWordWithBlanks&&this.currentCoord))return;if(this.currentScore>this.bestPossibleScore)return;const t={score:this.currentScore,word:this.currentWordWithBlanks,coord:this.currentCoord,timestamp:e},n=this.playerMoves.find((e=>e.word===t.word&&e.coord===t.coord&&e.score===t.score));return n?void 0:(this.playerMoves.push(t),t)}async updateScore(){await super.updateScore();const e=(new Date).toISOString(),t=this.addToPlayerMoves(e);if(!t)return;const{state:n,date:i,playerMoves:r}=this;if(!n||!n.netskraflUserId)return;const s=r.map((e=>({score:e.score,word:e.word,coord:e.coord,timestamp:e.timestamp})));if(Af(n.netskraflUserId,i,s),t.score<=this.personalBestScore)return;this.personalBestScore=t.score;i===e.split("T")[0]&&(t.score>=this.bestPossibleScore&&(this.justAchievedBestScore=!0),this.submitRiddleWord(t))}updateGlobalBestScore(e){e.score>this.bestPossibleScore||(this.globalBestScore=e)}updateGroupBestScore(e){e.score>this.bestPossibleScore||(this.groupBestScore=e)}recreateWordOnBoard(e,t){this._resetRack();const{row:n,col:i,dx:r,dy:s}=Up(t),a=[];for(let e=1;e<=7;e++){const t=`R${e}`;t in this.tiles&&a.push(t)}let o=n,l=i,c=0;for(;c<e.length;){let t,n=!1;"?"===e[c]?(n=!0,c++,t=e[c]):t=e[c];const i=zp(o,l);if(!i)return;const u=this.tileAt(o,l);if(u&&!u.draggable){if(u.letter!==t)return}else{if(0===a.length)return;let e=!1;for(let r=0;r<a.length;r++){const s=a[r],o=this.tiles[s];if(o){const l="?"===o.tile?" ":o.tile;if(n){if("?"===o.tile){o.letter=t,this.tiles[i]=o,delete this.tiles[s],a.splice(r,1),e=!0;break}}else if(l===t){this.tiles[i]=o,delete this.tiles[s],a.splice(r,1),e=!0;break}}}if(!e)return}o+=s,l+=r,c++}this.updateScore(),this.saveTiles()}initRack(e){for(let e=1;e<=7;e++)delete this.tiles[`R${e}`];for(let t=0;t<e.length&&t<7;t++){const[n,i]=e[t];this.tiles[`R${t+1}`]={player:0,tile:n,letter:"?"===n?" ":n,score:i,freshtile:!0,draggable:!0,index:t,xchg:!1}}}initBoard(e){this.tiles={};for(let t=0;t<15;t++){const n=e[t]||"";for(let e=0;e<15;e++){const i=n[e]||"",r=zp(t,e);if(!i||!r)continue;const s=i.toLowerCase(),a=s!==i;if(this.alphabet.includes(s)){const e=a?0:this.tile_scores[s]||1;this.tiles[r]={player:0,tile:a?"?":s,letter:s,score:e,freshtile:!1,draggable:!1,index:-1,xchg:!1}}}}}cleanup(){super.cleanup()}}function Of(){const e=[{name:"main",route:"/main",mustLogin:!0},{name:"help",route:"/help",mustLogin:!1},{name:"game",route:"/game/:uuid",mustLogin:!0},{name:"review",route:"/review/:uuid",mustLogin:!0}];return{paths:e,defaultRoute:e[0].route}}class jf{constructor(e,t){this.paths=[],this.routeName=void 0,this.params=void 0,this.game=null,this.riddle=null,this.userStats=null,this.leaderboard=[],this.solverCount=0,this.gameList=null,this.numGames=0,this.loadingAllLists=!1,this.loadingGameList=!1,this.challengeList=null,this.numChallenges=0,this.loadingChallengeList=!1,this.oppReady=0,this.recentList=null,this.loadingRecentList=!1,this.userListCriteria=null,this.userList=null,this.loadingUserList=!1,this.eloRatingList=null,this.eloRatingSpec=null,this.ownStats=null,this.user=null,this.userErrors=null,this.userLoadError=!1,this.helpHTML=null,this.spinners=0,this.reviewMove=null,this.bestMoves=null,this.highlightedMove=null,this.maxFreeGames=0,this.isExplo=!1,this.paths=e.paths.slice(),this.state=t,this.isExplo=t.isExplo,this.maxFreeGames=t.isExplo?3:8,_p(t.locale)}async post(e,t){if(!this.state)throw new Error("Model state is not initialized");return rp(this.state,{method:"POST",url:e,body:t})}async getText(e){if(!this.state)throw new Error("Model state is not initialized");return rp(this.state,{method:"GET",url:e,responseType:"text",deserialize:e=>e})}async postText(e,t){if(!this.state)throw new Error("Model state is not initialized");return rp(this.state,{method:"POST",url:e,body:t,responseType:"text",deserialize:e=>e})}async postMoves(e){if(!this.state)throw new Error("Model state is not initialized");return sp(this.state,{method:"POST",url:"/moves",body:e})}async loadGame(e,t,n=!1){try{if(null!==this.game&&(this.game.cleanup(),this.game=null),this.reviewMove=null,this.bestMoves=null,this.highlightedMove=null,!e)return;const i=await this.post("/gamestate",{game:e,delete_zombie:n});i?.ok&&(this.game=new Lf(e,i.game,this,this.state,this.state?.runningLocal?60:600),t?.())}catch(e){}}async loadAllLists(e=!0){if(!this.loadingAllLists){this.loadingAllLists=!0,this.gameList=[],this.challengeList=[],this.recentList=[],this.numGames=0,this.numChallenges=0,this.oppReady=0;try{const t=await this.post("/allgamelists",{zombie:e,count:40});if(!t||0!==t.result)return this.gameList=[],this.challengeList=[],void(this.recentList=[]);this.gameList=t.gamelist||[],this.challengeList=t.challengelist||[],this.recentList=t.recentlist||[],this.numGames=this.gameList.reduce(((e,t)=>e+(t.my_turn||t.zombie?1:0)),0);for(const e of this.challengeList)e.opp_ready&&this.oppReady++;this.numChallenges=this.oppReady,this.numChallenges+=this.challengeList.reduce(((e,t)=>e+(t.received?1:0)),0)}catch(e){this.gameList=[],this.challengeList=[],this.recentList=[]}finally{this.loadingAllLists=!1}}}async loadGameList(e=!0){if(!this.loadingGameList){this.loadingGameList=!0,this.gameList=[],this.numGames=0,this.spinners++;try{const t=await this.post("/gamelist",{zombie:e});if(!t||0!==t.result)return void(this.gameList=[]);this.gameList=t.gamelist||[],this.gameList&&(this.numGames=this.gameList.reduce(((e,t)=>e+(t.my_turn||t.zombie?1:0)),0))}catch(e){this.gameList=[]}finally{this.loadingGameList=!1,this.spinners&&this.spinners--}}}async loadChallengeList(){if(!this.loadingChallengeList){this.loadingChallengeList=!0,this.challengeList=[],this.numChallenges=0,this.oppReady=0,this.spinners++;try{const e=await this.post("/challengelist");if(!e||0!==e.result)return void(this.challengeList=[]);this.challengeList=e.challengelist||[];for(const e of this.challengeList)e.opp_ready&&this.oppReady++;this.numChallenges=this.oppReady,this.numChallenges+=this.challengeList.reduce(((e,t)=>e+(t.received?1:0)),0)}catch(e){this.challengeList=[]}finally{this.loadingChallengeList=!1,this.spinners&&this.spinners--}}}async loadRecentList(){if(!this.loadingRecentList){this.loadingRecentList=!0,this.recentList=[],this.spinners++;try{const e=await this.post("/recentlist",{versus:null,count:40});if(!e||0!==e.result)return void(this.recentList=[]);this.recentList=e.recentlist||[]}catch(e){this.recentList=[]}finally{this.loadingRecentList=!1,this.spinners&&this.spinners--}}}async loadUserRecentList(e,t,n){n(await this.post("/recentlist",{user:e,versus:t,count:40}))}async loadUserList(e){if("search"===e.query&&""===e.spec)return this.userList=[],this.userListCriteria=e,void zd.redraw();this.userList=void 0,this.userListCriteria=void 0;const t=e;try{const n=await this.post("/userlist",t);if(!n||0!==n.result)return this.userList=[],void(this.userListCriteria=e);this.userList=n.userlist,this.userListCriteria=e}catch(t){this.userList=[],this.userListCriteria=e}}async loadEloRatingList(e){this.eloRatingList=void 0,this.eloRatingSpec=void 0;const t={kind:e};try{const n=await this.post("/rating",t);if(!n||0!==n.result)return this.eloRatingList=[],void(this.eloRatingSpec=e);this.eloRatingList=n.rating,this.eloRatingSpec=e}catch(t){this.eloRatingList=[],this.eloRatingSpec=e}}async loadOwnStats(){this.ownStats={};try{const e=await this.post("/userstats",{});if(!e||0!==e.result)return;this.ownStats=e}catch(e){}}async loadUserStats(e,t){try{t(await this.post("/userstats",{user:e}))}catch(e){}}async loadPromoContent(e,t){try{t(await this.postText("/promo",{key:e}))}catch(e){}}async loadBestMoves(e){if(!this.game||!this.game.uuid)return;if(!e)return this.reviewMove=0,this.bestMoves=null,this.highlightedMove=null,this.game.setRack([]),void this.game.placeTiles(0);const t=this.game.tile_scores,n=this.game.rackAtMove(e-1);if(!n||this.game.isFinalMove(e-1))return this.reviewMove=e,this.bestMoves=[],this.highlightedMove=null,n?this.game.setRack(n.split("").map((e=>[e,t[e]]))):this.game.setRack([]),void this.game.placeTiles(e);this.reviewMove=null,this.spinners++,this.game.placeTiles(e-1,!0,!0);try{const i={locale:this.game.locale,board_type:this.isExplo?"explo":"standard",board:this.game.boardAsStrings(),rack:n,limit:19},r=await this.postMoves(i);if(this.highlightedMove=null,!r||void 0===r.moves)return this.reviewMove=null,void(this.bestMoves=null);this.reviewMove=e,this.bestMoves=r.moves.map((t=>[(e-1)%2,[t.co,t.w,t.sc],!1])),this.game.setRack(n.split("").map((e=>[e,t[e]]))),this.game.placeTiles(e)}catch(e){this.highlightedMove=null,this.reviewMove=null,this.bestMoves=null}finally{this.spinners&&this.spinners--}}async loadHelp(){if(null===this.helpHTML)try{const e=this.state?.locale||"is_IS",t=await this.getText(`/rawhelp?version=malstadur&locale=${e}`);this.helpHTML=t}catch(e){this.helpHTML=""}}async loadUser(e){this.user=void 0,e&&this.spinners++;try{const e=await this.post("/loaduserprefs");e&&e.ok?(this.user=e.userprefs,this.userErrors=null,Vp(cg())):(this.user=null,this.userErrors=null,this.userLoadError=!0)}catch(e){this.user=null,this.userErrors=null,this.userLoadError=!0}finally{e&&this.spinners&&this.spinners--}}async saveUser(e){const t=this.user;if(t)try{const n=await this.post("/saveuserprefs",t);if(n?.ok){const n=this.state;null!==n&&(n.userNick=t.nickname,n.beginner=t.beginner,n.fairPlay=t.fairplay,o(n)),Vp(cg()),null!==this.game&&this.game.notifyUserChange(t.nickname),void 0!==e&&e(),this.userErrors=null,this.user=null}else this.userErrors=n.err||null}catch(e){this.userErrors=null}}addChatMessage(e,t,n,i){if(this.game&&this.game.uuid===e){const e=this.state?.netskraflUserId??"";return this.game.addChatMessage(t,n,i,t===e),!0}return!1}handleUserChallengeMessage(e,t){!t&&this.state&&e&&(this.loadChallengeList(),this.userListCriteria&&this.loadUserList(this.userListCriteria),this.loadingGameList||(this.gameList=null),zd.redraw())}handleUserMoveMessage(e,t){!t&&this.state&&e&&(this.loadingGameList||(this.gameList=null,zd.redraw()))}handleMoveMessage(e,t){!t&&this.game&&(this.game.update(e),this.state.audio&&null!==this.game.player&&!this.game.isRobotGame()&&Op(this.state,"your-turn"),zd.redraw())}notifyMove(){this.loadingGameList||(this.gameList=null)}notifyGameWon(){this.user?.fanfare&&Op(this.state,"you-win")}moreGamesAllowed(){if(!this.state)return!1;if(this.loadingGameList)return!1;if(!this.gameList)return!0;return!(this.gameList.length>=50)&&(!!this.state.hasPaid||this.gameList.length<this.maxFreeGames)}async initRiddle(e,t){this.riddle=new Mf(`gatadagsins-${e}`,e,this),await this.riddle.load(e,t)}}const Ff=()=>{let e=!1;return{view:t=>{const{view:n,item:i}=t.attrs,r=n.model.state;if(!r)return;const s=""!==r.plan,a=i.fairplay&&r.fairPlay;return zd(".modal-dialog",{id:"chall-dialog",style:{visibility:"visible"}},zd(".ui-widget.ui-widget-content.ui-corner-all",{id:"chall-form"},[zd(".chall-hdr",zd("table",zd("tbody",zd("tr",[zd("td",zd("h1.chall-icon",Lp("hand-right"))),zd("td.l-border",[zd(mg,{id:"chall-online",userId:i.userid,state:r}),zd("h1",i.nick),zd("h2",i.fullname)])])))),zd("div",{style:{"text-align":"center"}},[zd(".promo-fullscreen",[Sp("p",[Sp("strong","Ný áskorun")," - veldu lengd viðureignar:"]),zd(wg,{initialSelection:0,defaultClass:"chall-time"},[zd("div",{id:"chall-none",tabindex:1},kp("Viðureign án klukku")),zd("div",{id:"chall-10",tabindex:2},[Lp("time"),kp("2 x 10 mínútur")]),zd("div",{id:"chall-15",tabindex:3},[Lp("time"),kp("2 x 15 mínútur")]),zd("div",{id:"chall-20",tabindex:4},[Lp("time"),kp("2 x 20 mínútur")]),zd("div",{id:"chall-25",tabindex:5},[Lp("time"),kp("2 x 25 mínútur")]),r?.runningLocal?zd("div",{id:"chall-3",tabindex:6},[Lp("time"),kp("2 x 3 mínútur")]):zd("div",{id:"chall-30",tabindex:6},[Lp("time"),kp("2 x 30 mínútur")])])]),zd(".promo-mobile",[zd("p",Sp("strong","Ný áskorun")),zd(".chall-time.selected",{id:"extra-none",tabindex:1},kp("Viðureign án klukku"))])]),s?zd("div",{id:"chall-manual"},[Sp("span.caption.wide",["Nota ",Sp("strong","handvirka véfengingu"),zd("br"),'("keppnishamur")']),zd(".toggler[id='manual-toggler'][tabindex='7']",{onclick:t=>{e=!e,t.preventDefault()}},[zd(".option"+(e?"":".selected"),zd("span",Dp())),zd(".option"+(e?".selected":""),Lp("lightbulb"))])]):"",a?zd("div",{id:"chall-fairplay"},[kp("Báðir leikmenn lýsa því yfir að þeir skrafla "),zd("br"),Sp("strong","án stafrænna hjálpartækja"),kp(" af nokkru tagi"),"."]):"",zd(pg,{id:"chall-cancel",title:Cp("Hætta við"),tabindex:8,onclick:e=>{n.popDialog(),e.preventDefault()}},Lp("remove")),zd(pg,{id:"chall-ok",title:Cp("Skora á"),tabindex:9,onclick:t=>{let r=document.querySelector("div.chall-time.selected")?.id.slice(6)??"0";r="none"===r?0:parseInt(r,10),i.chall=!0,n.actions.handleChallenge({destuser:i.userid,action:"issue",duration:r,fairplay:a,manual:e}),n.popDialog(),t.preventDefault()}},Lp("ok"))]))}}},zf=e=>{const{view:t}=e.attrs,{model:n}=t;return{view:()=>{if(!n.state)return;const e=n.state;return zd(".modal-dialog",{id:"promo-dialog",style:{visibility:"visible"}},zd(".ui-widget.ui-widget-content.ui-corner-all",{id:"promo-form"},[zd(".promo-content",[zd("h2",[Lp("coffee-cup"),Dp(),"Komdu í áskrift að Netskrafli!"]),zd("p","Með áskrift að Netskrafli færðu aðgang að öllu því sem leikurinn hefur að bjóða:"),zd("ul",[zd("li",["Sem áskrifandi getur þú haft ",zd("b","ótakmarkaðan fjölda viðureigna")," í gangi samtímis (í stað ",zd("b",8..toString())," að hámarki)."]),zd("li",["Sem áskrifandi hefur þú aðgang að ",zd("b","yfirliti")," í lok hverrar viðureignar þar sem hún er rakin leik fyrir leik ","og bestu möguleikar í hverri stöðu sýndir."]),zd("li",["Sem áskrifandi getur þú skorað á aðra leikmenn í ",zd("b","keppnisham"),". Þá má leggja niður hvaða orð sem er, en andstæðingur getur véfengt þau — alveg eins ","og í borðskrafli og í keppni á skraflmótum. (BÍN er þó áfram endanlegur dómari um ","gild orð.)"]),zd("li",["Þú getur líka gerst áskrifandi að ",zd("b","Málstað"),", máltæknivettvangi Miðeindar — og þá er Netskraflið innifalið! ","Á Málstað geturðu látið lesa yfir texta, þýtt á milli tungumála, ","breytt tali í texta, búið til skjátexta, fundargerðir og fleira."])]),zd("p",Sp("strong","Komdu með — og styrktu íslenska máltækni í leiðinni!"))]),zd(".btn-promo-yes",{id:"friend-yes",title:Cp("Gerast áskrifandi"),tabindex:1,onclick:t=>{t.preventDefault(),fh("click_friend",{userid:e.netskraflUserId,locale:e.locale}),window.location.href=e.subscriptionUrl}},[Lp("ok"),Dp(),Cp("Gerast áskrifandi")]),zd(".btn-promo-no",{id:"friend-no",title:Cp("Hætta við"),tabindex:2,onclick:e=>{t.popDialog(),e.preventDefault()}},[Lp("remove"),Dp(),Cp("Nei, takk")])]))}}},Uf=e=>{const{view:t}=e.attrs,{model:n}=t;return{view:()=>{const{game:e}=n,t=[];return!e||null===e.showingDialog&&!e.last_chall||(e.last_chall&&e.localturn&&t.push(zd(".chall-info",[Lp("info-sign"),Dp(),Sp("span.pass-explain","opponent_emptied_rack")])),"resign"===e.showingDialog&&t.push(zd(".resign",[Lp("exclamation-sign"),Dp(),Cp("Viltu gefa leikinn?"),Dp(),zd("span.mobile-break",zd("br")),zd("span.yesnobutton",{onclick:()=>e.confirmResign(!0)},[Lp("ok"),Cp(" Já")]),zd("span.mobile-space"),zd("span.yesnobutton",{onclick:()=>e.confirmResign(!1)},[Lp("remove"),Cp(" Nei")])])),"pass"===e.showingDialog&&(e.last_chall?t.push(zd(".pass-last",[Lp("forward"),Dp(),Cp("Segja pass?"),Sp("span.pass-explain","Viðureign lýkur þar með"),Dp(),zd("span.mobile-break",zd("br")),zd("span.yesnobutton",{onclick:()=>e.confirmPass(!0)},[Lp("ok"),Cp(" Já")]),zd("span.mobile-space"),zd("span.yesnobutton",{onclick:()=>e.confirmPass(!1)},[Lp("remove"),Cp(" Nei")])])):t.push(zd(".pass",[Lp("forward"),Dp(),Cp("Segja pass?"),Sp("span.pass-explain","2x3 pöss í röð ljúka viðureign"),Dp(),zd("span.mobile-break",zd("br")),zd("span.yesnobutton",{onclick:()=>e.confirmPass(!0)},[Lp("ok"),Cp(" Já")]),zd("span.mobile-space"),zd("span.yesnobutton",{onclick:()=>e.confirmPass(!1)},[Lp("remove"),Cp(" Nei")])]))),"exchange"===e.showingDialog&&t.push(zd(".exchange",[Lp("refresh"),Dp(),Cp("Smelltu á flísarnar sem þú vilt skipta"),Dp(),zd("span.mobile-break",zd("br")),zd("span.yesnobutton",{title:Cp("Skipta"),onclick:()=>e.confirmExchange(!0)},Lp("ok")),zd("span.mobile-space"),zd("span.yesnobutton",{title:Cp("Hætta við"),onclick:()=>e.confirmExchange(!1)},Lp("remove"))])),"chall"===e.showingDialog&&t.push(zd(".chall",[Lp("ban-circle"),Dp(),Cp("Véfengja lögn?"),Sp("span.pass-explain","Röng véfenging kostar 10 stig"),Dp(),zd("span.mobile-break",zd("br")),zd("span.yesnobutton",{onclick:()=>e.confirmChallenge(!0)},[Lp("ok"),Cp(" Já")]),zd("span.mobile-space"),zd("span.yesnobutton",{onclick:()=>e.confirmChallenge(!1)},[Lp("remove"),Cp(" Nei")])]))),t}}},$f=()=>({view:e=>{const{bag:t,newbag:n}=e.attrs;let i="";return t.length<=7?i+=".empty":n&&(i+=".new"),zd(".bag",{title:Cp("Flísar sem eftir eru")},zd(`table.bag-content${i}`,function(e){const t=[];let n=0,i=e.length;for(;i>0;){const r=[];for(let t=0;t<19&&i>0;t++){let t=e[n++];"?"===t&&(t="&nbsp;"),r.push(zd("td",zd.trust(t))),i--}t.push(zd("tr",r))}return t}(t)))}}),qf=[{icon:":-)",image:"/static/icontexto_emoticons_03.png"},{icon:":-D",image:"/static/icontexto_emoticons_02.png"},{icon:";-)",image:"/static/icontexto_emoticons_04.png"},{icon:":-(",image:"/static/icontexto_emoticons_12.png"},{icon:":-o",image:"/static/icontexto_emoticons_10.png"},{icon:":-O",image:"/static/icontexto_emoticons_10.png"},{icon:":-p",image:"/static/icontexto_emoticons_14.png"},{icon:":-P",image:"/static/icontexto_emoticons_14.png"},{icon:"B-)",image:"/static/icontexto_emoticons_16.png"},{icon:":)",image:"/static/icontexto_emoticons_03.png"},{icon:":D",image:"/static/icontexto_emoticons_02.png"},{icon:";)",image:"/static/icontexto_emoticons_04.png"},{icon:":(",image:"/static/icontexto_emoticons_12.png"},{icon:":o",image:"/static/icontexto_emoticons_10.png"},{icon:":O",image:"/static/icontexto_emoticons_10.png"},{icon:":p",image:"/static/icontexto_emoticons_14.png"},{icon:":P",image:"/static/icontexto_emoticons_14.png"},{icon:"(y)",image:"/static/thumb-up.png"}],Bf=e=>{const{view:t}=e.attrs,n=t.model,i=n.game,r=n.state;function s(e){var t=function(e){return{year:parseInt(e.slice(0,4),10),month:parseInt(e.slice(5,7),10),day:parseInt(e.slice(8,10),10),hour:parseInt(e.slice(11,13),10),minute:parseInt(e.slice(14,16),10),second:parseInt(e.slice(17,19),10)}}(e);return Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second)}let a=null;function o(e,t){const n=s(e);let i=null;if(null===a||(r=a,o=n,Math.round((o-r)/1e3)>=300)){const r=864e5,s=Date.now(),a=s-s%r;let o;o=n<a-r?e.slice(0,-3):n<a?`Í gær ${e.slice(11,16)}`:e.slice(11,16),i=zd(".chat-ts",{key:t},o)}var r,o;return a=n,i}const l=i?i.player:null;function c(e){if(!r)return e;for(const t of qf)if(e.indexOf(t.icon)>=0){const n=`<img src='${Ud(r,t.image)}' height='32' width='32'>`;e=e.split(t.icon).join(n)}return e}function u(){const e=[];if(i?.chatLoading||!i?.messages)return e;var t=0;const r=n.state?.netskraflUserId??"";for(const n of i.messages){let i=l??0;n.from_userid!==r&&(i=1-i);const s=o(n.ts,t);null!==s&&(e.push(s),t++);let a=Ap(n.msg);a=c(a),e.push(zd(".chat-msg"+(0===i?".left":".right")+(i===l?".local":".remote"),{key:t++},zd.trust(a)))}return e}function h(){const e=document.querySelectorAll("#chat-area .chat-msg");if(!e.length)return;const t=e[e.length-1];t.parentNode.scrollTop=t.offsetTop}function d(e){t.isDialogShown()||e.dom.focus()}function p(){const e=Mp("msg").trim();i&&e.length>0&&(i.sendMessage(e),function(e,t){document.getElementById(e).value=t}("msg",""))}const g=i?.messages?i.messages.length:0;return{view:()=>zd(".chat-container",{style:"z-index: 6"},[zd(".chat-area"+(i?.showClock()?".with-clock":""),{id:"chat-area",oncreate:h,onupdate:h},u()),zd(".chat-input",[zd("input.chat-txt",{type:"text",id:"msg",name:"msg",maxlength:254,disabled:g>=250,oncreate:e=>{d(e)},onupdate:e=>{d(e)},onkeypress:e=>{"Enter"===e.key&&(p(),e.preventDefault())}}),zd(pg,{id:"chat-send",title:Cp("Senda"),onclick:e=>{p(),e.preventDefault()}},Lp("chat"))])])}},Vf=()=>{function e(e,t,n,i,r){const s=Up(t);let a=s.col,o=s.row;for(const t of n){if("?"===t)continue;const n=zp(o,a);n&&n in e.tiles&&(e.tiles[n].highlight=r?i:void 0),a+=s.dx,o+=s.dy}}function t(t,n,i){const{game:r,state:s}=t.model;if(!r||!s)return null;const{leftTotal:a,rightTotal:o,player:l}=i;let{co:c,tiles:u}=i,h=i.score,d="wordmove";const p=c;let g=0;if(""===c)if(d="othermove","PASS"===u)u=` ${Cp("Pass")} `,h="";else if(0===u.indexOf("EXCH")){const e=u.slice(5).length,t=Cp(1===e?"letter":"letters");u=" "+Cp("exchanged",{numtiles:e.toString(),letters:t})+" ",h=""}else"RSGN"===u?u=` ${Cp("Gaf viðureign")} `:"CHALL"===u?(u=` ${Cp("Véfengdi lögn")} `,h=""):"RESP"===u?h<0?(u=` ${Cp("Óleyfileg lögn")} `,g=-1):u=` ${Cp("Röng véfenging")} `:"TIME"===u?u=` ${Cp("Umframtími")} `:"OVER"===u?(u=Cp("Viðureign lokið"),d="gameover"):d="wordmove";else c=`(${c})`,u=u.split("?").join(""),g=1;if("gameover"===d)return function(e,t,n,i){return zd(".move.gameover",[zd("span.gameovermsg",i),zd("span.statsbutton",{onclick:i=>{i.preventDefault(),n.hasPaid?(zd.route.set(`/review/${t.uuid}`),null!=t&&fh("game_review",{locale:t.locale,uuid:t.uuid})):(fh("click_review",{userid:n.netskraflUserId,locale:n.locale}),e.showFriendPromo())}},kp("Skoða yfirlit"))])}(t,r,s,u);const f=g>0&&!r.manual?Cp("Smelltu til að fletta upp"):"";let m=0;const v=r.player;let y;l===v||null===v&&0===l?y="humangrad"+(0===l?"_left":"_right"):(y="autoplayergrad"+(0===l?"_left":"_right"),m=1);const w={};return s.uiFullscreen&&g>0&&(r.manual||"is_IS"===r.locale&&(w.onclick=()=>{window.open(`https://malid.is/leit/${u}`,"malid")},w.title=f),w.onmouseout=()=>{n[2]=!1,e(r,p,u,m,!1)},w.onmouseover=()=>{n[2]=!0,e(r,p,u,m,!0)}),0===l?zd(`.move.leftmove.${y}`,w,[zd("span.total"+(l===v?".human":".autoplayer"),a),zd("span.score"+(n[2]?".highlight":""),h),zd(`span.${d}`,[zd("i",u),Dp(),c])]):zd(`.move.rightmove.${y}`,w,[zd(`span.${d}`,[c,Dp(),zd("i",u)]),zd("span.score"+(n[2]?".highlight":""),h),zd("span.total"+(l===v?".human":".autoplayer"),o)])}return{view:e=>{const{view:n,move:i,info:r}=e.attrs;return t(n,i,r)}}},Hf=e=>{const{view:t}=e.attrs,n=t.model;function i(e,n,i,r){t.isMobile()||(i===r?t.pushDialog("userprefs",{}):e.autoplayer[r]||t.showUserInfo(e.userid[r],e.nickname[r],e.fullname[r]),n.stopPropagation(),n.preventDefault())}return{view:e=>{const t=n.game;if(!t)return;const r=t.autoplayer[0],s=t.autoplayer[1],a=t.nickname[0],o=t.nickname[1],l=t.player,c=t.localturn,u=t.over;if("left"===e.attrs.side){if(r)return zd(".robot-btn.left",[Lp("cog"),Dp(),a]);return zd(`.player-btn.left${u||c!==(0===l)?"":".tomove"}`,{id:"player-0",onclick:e=>i(t,e,l,0)},[zd("span.left-to-move"),a])}if(s)return zd(".robot-btn.right",[Lp("cog"),Dp(),o]);return zd(`.player-btn.right${u||c!==(1===l)?"":".tomove"}`,{id:"player-1",onclick:e=>i(t,e,l,1)},[zd("span.right-to-move"),o])}}},Wf=e=>{const t=e.attrs.view.model;let n=0;return{view:()=>{if(!t.game)return;const e=t.game,i=e.twoLetterWords()[n],r=[];for(const e of i){const t=e[1],i=[];for(let e=0;e<t.length;e++)i.push((s=0===e,a=t[e],zd(".twoletter-word",s?0===n?[zd("b",a[0]),a[1]]:[a[0],zd("b",a[1])]:a)));r.push(zd(".twoletter-group",i))}var s,a;return zd(".twoletter",{onclick:()=>{n=1-n},style:"z-index: 6"},zd(".twoletter-area"+(e.showClock()?".with-clock":""),{title:Cp(0===n?"Smelltu til að raða eftir seinni staf":"Smelltu til að raða eftir fyrri staf")},r))}}},Gf=e=>{const t=e.attrs.view,n=t.model,i=n.game,r=n.state;function s(){const e=i?i.moves:[],n=[];let r=0,s=0;for(let i=0;i<e.length;i++){const a=e[i],[o,[l,c,u]]=a;0===o?r=Math.max(r+u,0):s=Math.max(s+u,0);const h=zd(Vf,{view:t,move:a,info:{leftTotal:r,rightTotal:s,player:o,co:l,tiles:c,score:u}});n.push(h)}return n}const a=i?i.bag:"",o=!i||i.newbag;return{view:()=>zd(".movelist-container",[zd(".movelist",{onupdate:()=>{setTimeout(Fp)}},s()),r?.uiFullscreen?"":zd($f,{bag:a,newbag:o})])}},Kf=e=>{const t=e.attrs.view.model;return{view:()=>zd(".games",{style:"z-index: 6"},function(){const e=[];if(t.loadingGameList||t.loadingAllLists)return e;const n=t.gameList;if(null===n)return t.loadGameList(),e;const i=t.game,r=i?i.uuid:"";for(const t of n){if(t.uuid===r)continue;if(!t.my_turn&&!t.zombie)continue;let n;n=null===t.oppid?[Lp("cog"),Dp(),t.opp]:[t.opp];const i=t.sc0<t.sc1?".losing":"",s=`Staðan er ${t.sc0}:${t.sc1}`;e.push(zd(".games-item"+(t.timed?".game-timed":""),{key:t.uuid,title:s},zd(zd.route.Link,{href:jp(t.url)},[zd(".at-top-left",zd(".tilecount",zd(".oc",n))),zd(".at-top-left",zd(".tilecount.trans",zd(`.tc${i}`,{style:{width:`${t.tile_count.toString()}%`}},n)))])))}return e}())}},Yf={view:e=>{const{view:t,tabid:n,title:i,icon:r,alert:s,funcSel:a}=e.attrs,o=t.selectedTab||"movelist",l=t.model.game;return zd(".right-tab"+(o===n?".selected":""),{id:`tab-${n}`,className:s?"chat-alert":"",title:i,onclick:e=>{l&&null===l.showingDialog&&t.setSelectedTab(n)&&(a?.(),"movelist"===n&&setTimeout(Fp)),e.preventDefault()}},Lp(r))}},Jf={view:e=>{const{view:t}=e.attrs,{game:n}=t.model,i=n&&!n.isRobotGame()&&null!==n.player,r=[zd(Yf,{view:t,tabid:"board",title:Cp("Borðið"),icon:"grid"}),zd(Yf,{view:t,tabid:"movelist",title:Cp("Leikir"),icon:"show-lines"}),zd(Yf,{view:t,tabid:"twoletter",title:Cp("Tveggja stafa orð"),icon:"life-preserver"}),zd(Yf,{view:t,tabid:"games",title:Cp("Viðureignir"),icon:"flag"})];return i&&r.push(zd(Yf,{view:t,tabid:"chat",title:Cp("Spjall"),icon:"conversation",funcSel:()=>{n.markChatShown()&&zd.redraw()},alert:!n.chatSeen&&"chat"!==t.selectedTab})),zd.fragment({},r)}},Zf=e=>{const{view:t}=e.attrs,{model:n}=t,{game:i}=n;function r(){if(!i||!i.showClock())return zd.fragment({},[]);function e(e,t,n,i){return zd("h3."+e+(n?".running-out":"")+(i?".blink":""),t)}return zd.fragment({},[e("clockleft",i.clockText0,i.runningOut0,i.blinking0),e("clockright",i.clockText1,i.runningOut1,i.blinking1),zd(".clockface",Lp("time"))])}function s(){const e=!!i&&i.fairplay,n=i?i.player:null,s=i?i.displayScore(0).toString():"",a=i?i.displayScore(1).toString():"";return zd(".heading",[zd(".logowrapper",zd(kg)),zd(".playerwrapper",[zd(".leftplayer"+(1===n?".autoplayercolor":".humancolor"),[zd(".player",zd(Hf,{view:t,side:"left"})),zd(".scorewrapper",zd(".scoreleft",s))]),zd(".rightplayer"+(1===n?".humancolor":".autoplayercolor"),[zd(".player",zd(Hf,{view:t,side:"right"})),zd(".scorewrapper",zd(".scoreright",a))]),zd(".fairplay",{style:{visibility:e?"visible":"hidden"}},zd("span.fairplay-btn.large",{title:Cp("Skraflað án hjálpartækja")}))]),r()])}function a(){if(!i)return;let e;switch(t.selectedTab||"movelist"){case"movelist":e=zd(Gf,{view:t});break;case"twoletter":e=zd(Wf,{view:t});break;case"chat":e=zd(Bf,{view:t});break;case"games":e=zd(Kf,{view:t})}const n=zd(Jf,{view:t});return zd(".right-area"+(i?.showClock()?".with-clock":""),e?[n,e]:[n])}return{view:()=>zd(".rightcol",[s(),a()])}},Xf={view:e=>{const{view:t}=e.attrs,{model:n}=t,{game:i,state:r}=n;if(!i)return zd("div",[zd(".game-container"),zd(_g)]);const{bag:s,newbag:a}=i;return zd("div.drop-target",{id:"board-background"},[zd(".game-container",[zd(Zf,{view:t}),zd(Kg,{view:t,game:i}),r?.uiFullscreen?zd($f,{bag:s,newbag:a}):"",i.askingForBlank?zd(Lg,{game:i}):""]),zd(_g),r?.beginner?zd(Wp,{view:t,showClose:!0}):"",zd(bg)])}},Qf=()=>({view:e=>{const t=e.attrs.ownStats||{},n=[];if(t.highest_score&&(n.push(Cp("Hæsta skor ")),n.push(zd("b",zd(zd.route.Link,{href:`/game/${t.highest_score_game}`},t.highest_score)))),t.best_word){n.length&&(e.attrs.myself?n.push(zd("br")):n.push(" | "));const i=t.best_word,r=[];for(let e=0;e<i.length;e++)"?"===i[e]?(r.push(zd("span.netskrafl-blanktile",i[e+1])),e+=1):r.push(i[e]);n.push(Cp("Besta orð ")),n.push(zd("span.best-word",r)),n.push(", "),n.push(zd("b",zd(zd.route.Link,{href:`/game/${t.best_word_game}`},t.best_word_score))),n.push(Cp(" stig"))}return zd("p",{id:e.attrs.id},n)}}),em=e=>{const{view:t,item:n,i:i}=e.attrs,{model:r}=t;function s(e){e.preventDefault(),n.received?t.actions.declineChallenge(n.userid,n.key):t.actions.retractChallenge(n.userid,n.key)}function a(e){if(e.preventDefault(),!r.moreGamesAllowed()){const e=r.state;return e&&fh("hit_game_limit",{userid:e.netskraflUserId,locale:e.locale,limit:r.maxFreeGames}),void t.showFriendPromo()}n.received?n.prefs&&void 0!==n.prefs.duration&&n.prefs.duration>0?t.pushDialog("wait",{oppId:n.userid,oppNick:n.opp,oppName:n.fullname,duration:n.prefs.duration,challengeKey:n.key}):t.actions.startNewGame(n.userid,!1):t.showAcceptDialog(n.userid,n.opp,n.key)}return{view:()=>{const e=!n.received&&n.opp_ready&&n.prefs&&void 0!==n.prefs.duration&&n.prefs.duration>0,r=n.received||e,o=(l=n.prefs)&&void 0!==l.duration&&0!==l.duration?kp("with_clock",{duration:l.duration.toString()}):kp("Venjuleg ótímabundin viðureign");var l;return zd(".listitem"+(i%2==0?".oddlist":".evenlist"),[zd("span.list-ch",{onclick:s},n.received?Lp("thumbs-down",{title:Cp("Hafna")}):Lp("hand-right",{title:Cp("Afturkalla")})),zd(r?"a.flex":"span.flex",r?{href:"#",onclick:a,class:e?"opp-ready":""}:{},[zd("span.list-ts",n.ts),zd("span.list-nick",{title:n.fullname},n.opp),zd("span.list-chall",[n.prefs.fairplay?zd("span.fairplay-btn",{title:Cp("Án hjálpartækja")}):"",n.prefs.manual?zd("span.manual-btn",{title:Cp("Keppnishamur")}):"",o])]),zd(fg,{view:t,item:{userid:n.userid,nick:n.opp,fullname:n.fullname}})])}}},tm={view:e=>{const{view:t,showReceived:n}=e.attrs,{model:i}=t;if(!i.state)return[];null===i.challengeList&&i.loadChallengeList();let r=[];i.challengeList&&(r=n?i.challengeList.filter((e=>e.received)):i.challengeList.filter((e=>!e.received)));const s=zd("div",{id:n?"chall-received":"chall-sent"},r.map(((e,n)=>zd(em,{view:t,item:e,i:n}))));return n?[zd(".listitem.listheader",[zd("span.list-icon",Np("thumbs-down",{title:Cp("Hafna")})),Sp("span.list-ts","Hvenær"),Sp("span.list-nick","Áskorandi"),Sp("span.list-chall","Hvernig"),Sp("span.list-info-hdr","Ferill")]),s]:[zd(".listitem.listheader",[zd("span.list-icon",Np("hand-right",{title:Cp("Afturkalla")})),Sp("span.list-ts","Hvenær"),Sp("span.list-nick","Andstæðingur"),Sp("span.list-chall","Hvernig"),Sp("span.list-info-hdr","Ferill")]),s]}},nm={view:e=>{const{loadingGameList:t,loadingAllLists:n,gameList:i}=e.attrs;return t||n||null!==i&&i.length>0?"":zd(".hint",{style:{display:"block"}},[zd("p",["Ef þig vantar einhvern til að skrafla við, veldu flipann ",zd(zd.route.Link,{href:"/main?tab=2"},[Lp("user"),Dp(),"Andstæðingar"])," og skoraðu á tölvuþjarka - ",Lp("cog"),Dp(),zd("b","Amlóða"),", ",Lp("cog"),Dp(),zd("b","Miðlung")," eða ",Lp("cog"),Dp(),zd("b","Fullsterkan")," - eða veldu þér annan leikmann úr stafrófs­listunum sem þar er að finna til að skora á."]),zd("p",["Þú stofnar áskorun með því að smella á bendi-teiknið ",Lp("hand-right",{style:{"margin-left":"6px","margin-right":"6px"}})," vinstra megin við nafn andstæðingsins."]),zd("p","Tölvuþjarkarnir eru ætíð reiðubúnir að skrafla og viðureign við þá hefst strax. Aðrir leikmenn þurfa að samþykkja áskorun áður en viðureign hefst."),zd("p.no-mobile-block",[zd(zd.route.Link,{href:"/help"},"Hjálp")," má fá með því að smella á bláa ",Lp("info-sign"),Dp(),"-",Dp(),"teiknið hér til vinstri."]),zd("p.no-mobile-block","Þú kemst alltaf aftur í þessa aðalsíðu með því að smella á örvarmerkið efst vinstra megin við skraflborðið.")])}},im=()=>{function e(e){const t=null===e.oppid?[Lp("cog"),Dp(),e.opp]:e.opp;return zd("span.list-opp",{title:e.fullname},t)}function t(e){let t="",n="";return e.my_turn?t=Cp("Þú átt leik"):e.zombie?(t=Cp("Viðureign lokið"),n=".zombie"):(t=Cp("opp_move",{opponent:e.opp}),n=".grayed"),zd("span.list-myturn",zd(`span.glyphicon.glyphicon-flag${n}`,{title:t}))}function n(e){return e.overdue?Lp("hourglass",{title:e.my_turn?"Er að renna út á tíma":"Getur þvingað fram uppgjöf"}):Np("hourglass")}function i(e){const t=e.sc0<e.sc1?".losing":"";return zd(".tilecount",zd(`.tc${t}`,{style:{width:`${e.tile_count.toString()}%`}}))}return{view:r=>{const{view:s,item:a,i:o}=r.attrs;return zd(".listitem"+(o%2==0?".oddlist":".evenlist"),[zd(zd.route.Link,{href:jp(a.url)},[t(a),zd("span.list-overdue",n(a)),zd("span.list-ts-short",a.ts),e(a)]),zd(fg,{view:s,item:{userid:a.oppid,nick:a.opp,fullname:a.fullname}}),zd("span.list-s0",a.sc0),zd("span.list-colon",":"),zd("span.list-s1",a.sc1),zd("span.list-tc",i(a)),zd(yg,{manual:a.prefs?.manual})])}}},rm=()=>({view:e=>{const{view:t,id:n}=e.attrs,{model:i}=t,{gameList:r,loadingGameList:s,loadingAllLists:a}=i;return null===r&&i.loadGameList(),[zd(".listitem.listheader",[zd("span.list-myturn",Np("flag",{title:Cp("Átt þú leik?")})),zd("span.list-overdue",Np("hourglass",{title:Cp("Langt frá síðasta leik?")})),Sp("span.list-ts-short","Síðasti leikur"),Sp("span.list-opp","Andstæðingur"),Sp("span.list-info-hdr","Ferill"),Sp("span.list-scorehdr","Staða"),Sp("span.list-tc","Framvinda"),zd(yg,{header:!0})]),zd("div",{id:n},r?r.map(((e,n)=>zd(im,{view:t,item:e,i:n}))):""),zd(nm,{loadingGameList:s,loadingAllLists:a,gameList:r})]}}),sm=()=>{function e(e,t){let n=e.elo_adj?e.elo_adj.toString():"",i=e.human_elo_adj?e.human_elo_adj.toString():"",r="",s="";return null!==e.elo_adj&&(e.elo_adj>0?(n=`+${n}`,r="elo-win"):e.elo_adj<0?r="elo-loss":(r="elo-neutral",n=Lp("stroller",{title:"Byrjandi"})),null!==e.human_elo_adj&&(e.human_elo_adj>0?(i=`+${i}`,s="elo-win"):e.human_elo_adj<0?s="elo-loss":(s="elo-neutral",i=Lp("stroller",{title:"Byrjandi"})))),n=zd("span",{class:`elo-btn right ${r}${""===n?" invisible":""}`},n),i=zd("span",{class:"elo-btn left "+s+(""===i?" invisible":"")},i),zd(".listitem"+(t%2==0?".oddlist":".evenlist"),zd(zd.route.Link,{href:jp(e.url)},[zd("span.list-win",e.sc0>=e.sc1?Lp("bookmark",{title:e.sc0===e.sc1?Cp("Jafntefli"):Cp("Sigur")}):Np("bookmark",{title:Cp("Tap")})),zd("span.list-ts-short",e.ts_last_move),zd("span.list-nick",e.opp_is_robot?[Lp("cog"),Dp(),e.opp]:e.opp),zd("span.list-s0",e.sc0),zd("span.list-colon",":"),zd("span.list-s1",e.sc1),zd("div.list-elo-adj",i),zd("div.list-elo-adj",n),zd("span.list-duration",function(){let t="";return e.prefs?.duration?t=[zd("span.timed-btn",{title:Cp("Viðureign með klukku")}),` 2 x ${e.prefs.duration}${Cp(" mínútur")}`]:(e.days||e.hours||e.minutes)&&(e.days>1?t=e.days.toString()+Cp(" dagar"):1===e.days&&(t=Cp("1 dagur")),e.hours>0&&(t.length&&(t+=Cp(" og ")),1===e.hours?t+=Cp("1 klst"):t+=e.hours.toString()+Cp(" klst")),0===e.days&&(t.length&&(t+=Cp(" og ")),1===e.minutes?t+=Cp("1 mínúta"):t+=e.minutes.toString()+Cp(" mínútur"))),t}()),zd(yg,{manual:e.prefs?.manual})]))}return{view:t=>{const n=t.attrs.recentList;return zd("div",{id:t.attrs.id},n?n.map(e):"")}}},am=e=>{const t=e.attrs.view,n=t.model;let i,r="";function s(){void 0!==i&&(i.result=!1,i=void 0);if("search"!==(n.userListCriteria?.query||"robots"))return void t.actions.searchUsers(r,!0);if(r===n.userListCriteria?.spec)return;const e={result:!0,p:new Promise((t=>{setTimeout((()=>{t(e.result)}),800)}))};i=e,i.p.then((e=>{e&&(t.actions.searchUsers(r,!0),i=void 0)}))}return{view:()=>{const e=n.userListCriteria?.query||"robots";return zd(".user-cat[id='user-search']",[Lp("search",{id:"search",className:"search"===e?"shown":"",onclick:()=>{r="",s(),document.getElementById("search-id")?.focus()}}),Dp(),zd("input.text.userid",{type:"text",id:"search-id",name:"search-id",maxlength:16,placeholder:Cp("Einkenni eða nafn"),value:r,onfocus:()=>s(),oninput:e=>{r=`${e.target.value}`,s()}})])}}};function om(e,t,n){return[zd(".settings-row",[zd("span.settings-label",e),t]),n?zd(".settings-explain",n):null]}const lm=()=>{let e=og(),t=cg();function n(t){e=t,lg(t)}function i(e){t=e,ug(e)}return{view:()=>zd(".settings-tab",[zd(".settings-section",[zd(".settings-section-title",Cp("Tækisstillingar")),om(Cp("Þysja sjálfkrafa"),zd(sf,{state:e,onToggle:n,id:"autozoom",title:Cp("Þysja sjálfkrafa"),size:"small"}),Cp("autozoom_explain")),om(Cp("Eldri litasamsetning"),zd(sf,{state:t,onToggle:i,id:"legacycolors",title:Cp("Eldri litasamsetning"),size:"small"}),Cp("legacy_colors_explain"))])])}},cm=()=>{let e=1;function t(e,t,n){var i=void 0===e?"":function(e,t=1e4){const n=e<0?"-":"";return(e=Math.abs(e))<t?`${n}${e}`:`${n}${e=Math.round(e/1e3)}K`}(e);return void 0!==n&&(i+=n),t?[Lp(t),Dp(),i]:i}return{view:n=>{var i=n.attrs.ownStats,r=0,s=0,a=0,o=0;return void 0!==i&&void 0!==i.games&&void 0!==i.human_games&&(i.games>0&&(r=Math.round(100*(i.wins??0)/i.games),a=Math.round((i.score??0)/i.games)),i.human_games>0&&(s=Math.round(100*(i.human_wins??0)/i.human_games),o=Math.round((i.human_score??0)/i.human_games))),zd("div",{id:n.attrs.id},[zd(".toggler",{id:"own-toggler",title:Cp("stats_choice"),onclick:t=>{e=3-e,t.preventDefault()}},[zd(".option.small"+(1===e?".selected":""),{id:"opt1"},Lp("user")),zd(".option.small"+(2===e?".selected":""),{id:"opt2"},Lp("cog"))]),1===e?zd("div",{id:"own-stats-human",className:"stats-box",style:{display:"inline-block"}},[zd(".stats-fig",{title:Cp("Elo-stig")},i?t(i.locale_elo?.human_elo,"crown"):""),zd(".stats-fig.stats-games",{title:Cp("Fjöldi viðureigna")},i?t(i.human_games,"th"):""),zd(".stats-fig.stats-win-ratio",{title:Cp("Vinningshlutfall")},t(s,"bookmark","%")),zd(".stats-fig.stats-avg-score",{title:Cp("Meðalstigafjöldi")},t(o,"dashboard"))]):"",2===e?zd("div",{id:"own-stats-all",className:"stats-box",style:{display:"inline-block"}},[zd(".stats-fig",{title:Cp("Elo-stig")},i?t(i.locale_elo?.elo,"crown"):""),zd(".stats-fig.stats-games",{title:Cp("Fjöldi viðureigna")},i?t(i.games,"th"):""),zd(".stats-fig.stats-win-ratio",{title:Cp("Vinningshlutfall")},t(r,"bookmark","%")),zd(".stats-fig.stats-avg-score",{title:Cp("Meðalstigafjöldi")},t(a,"dashboard"))]):""])}}},um="/page#!";function hm(e,t,n,i,r){const s=document.getElementById(t);if(!s)return;s.setAttribute("class","ui-tabs ui-widget ui-widget-content ui-corner-all");const a=document.querySelector(`#${t} > ul`);a&&(a.setAttribute("class","ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),a.setAttribute("role","tablist"));const o=document.querySelectorAll(`#${t} > ul > li > a`),l=document.querySelectorAll(`#${t} > ul > li`),c=[],u=[];for(let e=0;e<o.length;e++){const t=o[e].getAttribute("href");if(!t)continue;c.push(t.slice(1)),o[e].onclick=t=>{pm(r,e),t.preventDefault()},o[e].removeAttribute("href"),o[e].classList.add("ui-tabs-anchor","sp"),o[e].setAttribute("role","presentation"),u.push(l[e]),l[e].classList.add("ui-state-default","ui-corner-top"),l[e].setAttribute("role","tab"),l[e].onmouseover=e=>{e.currentTarget.classList.toggle("ui-state-hover",!0)},l[e].onmouseout=e=>{e.currentTarget.classList.toggle("ui-state-hover",!1)};const n=document.getElementById(c[e]);n&&(n.setAttribute("class","ui-tabs-panel ui-widget-content ui-corner-bottom"),n.setAttribute("role","tabpanel"))}if(r.state.ids=c,r.state.lis=u,r.state.selected=0,i){const t=e.model,n=(e,t)=>{const n=t.slice(7),i=n.indexOf("?"),r=i>=0?n.slice(0,i):n,s=n.slice(r.length+1),a=s.length?function(e){const t=e.split("&"),n={};for(let e=0;e<t.length;e++){const i=t[e].split("=");2===i.length&&(n[i[0]]=decodeURIComponent(i[1]))}return n}(s):{};zd.route.set(r,a),window.history&&window.history.pushState({},"",t),e.preventDefault()},i=n=>{t?.state?.netskraflUserId&&e.pushDialog("userprefs",{}),n.preventDefault()},a=e=>{pm(r,2),e.preventDefault()},o=e=>{pm(r,3),e.preventDefault()},l=s.querySelectorAll("a");for(let e=0;e<l.length;e++){const t=l[e],r=t.getAttribute("href");r&&r.slice(0,7)===um?t.onclick=e=>n(e,r):r&&"$$userprefs$$"===r?t.onclick=i:r&&"$$twoletter$$"===r?t.onclick=a:r&&"$$newbag$$"===r&&(t.onclick=o)}}n&&n(r),dm(r)}function dm(e){const t=e.state.selected,n=e.state.lis;for(let i=0;i<e.state.ids.length;i++){const r=e.state.ids[i];document.getElementById(r)?.setAttribute("style","display: "+(i===t?"block":"none")),n[i].classList.toggle("ui-tabs-active",i===t),n[i].classList.toggle("ui-state-active",i===t)}}function pm(e,t){e.state.selected=t,dm(e)}function gm(e){var t=zd.route.param("tab");void 0!==t&&pm(e,parseInt(t,10)||0)}const fm={oninit:e=>{e.state.sel=e.attrs.sel},view:e=>zd(".toggler[id='elo-toggler']",{title:Cp("elo_list_choice")},[zd(".option.x-small",{className:"human"===e.state.sel?"selected":"",onclick:t=>{e.state.sel="human",e.attrs.onchange(e.state.sel),t.preventDefault()}},Lp("user")),zd(".option.x-small",{className:"all"===e.state.sel?"selected":"",onclick:t=>{e.state.sel="all",e.attrs.onchange(e.state.sel),t.preventDefault()}},Lp("cog")),zd(".option.x-small",{className:"manual"===e.state.sel?"selected":"",onclick:t=>{e.state.sel="manual",e.attrs.onchange(e.state.sel),t.preventDefault()}},Lp("lightbulb"))])},mm=e=>{const{spec:t,view:n}=e.attrs;return{view:e=>zd("div",[zd(".listitem.listheader",[zd("span.list-ch",Np("hand-right",{title:Cp("Skora á")})),Sp("span.list-rank","Röð"),zd("span.list-rank-no-mobile",{title:Cp("Röð í gær")},Cp("1d")),zd("span.list-rank-no-mobile",{title:Cp("Röð fyrir viku")},Cp("7d")),Sp("span.list-nick-elo","Einkenni"),zd("span.list-elo",{title:Cp("Elo-stig")},Cp("Elo")),zd("span.list-elo-no-mobile",{title:Cp("Elo-stig í gær")},Cp("1d")),zd("span.list-elo-no-mobile",{title:Cp("Elo-stig fyrir viku")},Cp("7d")),zd("span.list-elo-no-mobile",{title:Cp("Elo-stig fyrir mánuði")},Cp("30d")),zd("span.list-games",{title:Cp("Fjöldi viðureigna")},Lp("th")),zd("span.list-ratio",{title:Cp("Vinningshlutfall")},Lp("bookmark")),zd("span.list-avgpts",{title:Cp("Meðalstigafjöldi")},Lp("dashboard")),Sp("span.list-info-hdr","Ferill"),zd(fm,{sel:t||"human",onchange:e=>{n.actions.withSpinner((()=>n.model.loadEloRatingList(e)))}})]),zd(vm,{id:e.attrs.id,sel:t,view:e.attrs.view})])}},vm=e=>{const t=e.attrs.view,n=t.model,i=n.state;return{view:e=>{const r=n.eloRatingList||[];return zd("div",{id:e.attrs.id},r.map((function(n,r){const s=0===n.userid.indexOf("robot-");function a(e,t){return 0===e||void 0!==t&&0===t?"--":e.toString()}let o=n.nick,l=zd("span.list-ch",Dp());const c=i?.netskraflUserId??"";return n.userid===c||n.inactive||(l=zd(gg,{view:t,item:n})),s&&(o=zd("span",[Lp("cog"),Dp(),o])),n.fairplay&&!s&&(o=zd("span",[zd("span.fairplay-btn",{title:Cp("Skraflar án hjálpartækja")}),o])),zd(".listitem",{key:(e.attrs.sel||"sel")+r,className:r%2==0?"oddlist":"evenlist"},[l,zd("span.list-rank.bold",a(n.rank)),zd("span.list-rank-no-mobile",a(n.rank_yesterday)),zd("span.list-rank-no-mobile",a(n.rank_week_ago)),zd("span.list-nick-elo",{title:n.fullname},o),zd("span.list-elo.bold",n.elo),zd("span.list-elo-no-mobile",a(n.elo_yesterday,n.games_yesterday)),zd("span.list-elo-no-mobile",a(n.elo_week_ago,n.games_week_ago)),zd("span.list-elo-no-mobile",a(n.elo_month_ago,n.games_month_ago)),zd("span.list-games.bold",n.games>=1e5?`${Math.round(n.games/1e3)}K`:n.games),zd("span.list-ratio",`${n.ratio}%`),zd("span.list-avgpts",n.avgpts),n.userid===c?Dp():zd(fg,{view:t,item:n})])})))}}},ym=()=>({view:e=>{const{view:t,id:n}=e.attrs,{model:i}=t,r=i.userListCriteria?.query??"",s=i.userListCriteria?.spec??"",a=void 0===i.eloRatingSpec,o=r||"robots";if("elo"===o||a)return[zd(mm,{id:"elolist",view:t,spec:i.eloRatingSpec??null,key:"elopage"})];let l=[];void 0===i.userList||(null===i.userList||r!==o?t.actions.loadUsersByType(o,!0):l=i.userList);const c=0===l.length&&"search"===o&&""!==s,u="robots"===o;return[zd(".listitem.listheader",[zd("span.list-ch",Np("hand-right",{title:Cp("Skora á")})),zd("span.list-fav",Lp("star-empty",{title:Cp("Uppáhald")})),Sp("span.list-nick","Einkenni"),Sp("span.list-fullname","Nafn og merki"),u?"":Sp("span.list-human-elo[id='usr-list-elo']","Elo"),u?"":Sp("span.list-info-hdr[id='usr-list-info']","Ferill")]),zd("div",{id:n},l.map(((e,n)=>function(e,t,n){const i=0===t.userid.indexOf("robot-"),r=[];return t.ready&&!i&&(r.push(zd("span.ready-btn",{title:Cp("Álínis og tekur við áskorunum")})),r.push(Dp())),t.ready_timed&&(r.push(zd("span.timed-btn",{title:Cp("Til í viðureign með klukku")})),r.push(Dp())),t.fairplay&&(r.push(zd("span.fairplay-btn",{title:Cp("Skraflar án hjálpartækja")})),r.push(Dp())),r.push(t.fullname),zd(".listitem"+(n%2==0?".oddlist":".evenlist"),[zd(gg,{view:e,item:t}),i?zd("span.list-fav",{style:{cursor:"default"}},Lp("star-empty")):zd("span.list-fav",{title:Cp("Uppáhald"),onclick:n=>{e.actions.toggleFavorite(t.userid,t.fav),t.fav=!t.fav,n.preventDefault()}},Lp(t.fav?"star":"star-empty")),i?zd("a",{href:"",onclick:n=>{e.actions.startRobotGame(t.userid),n.preventDefault()}},[zd("span.list-nick",[Lp("cog"),Dp(),t.nick]),zd("span.list-fullname-robot",r)]):[zd("span.list-nick",t.nick),zd("span.list-fullname",r),zd("span.list-human-elo",t.human_elo)],zd(fg,{view:e,item:t})])}(t,e,n)))),c?zd("div",{id:"user-no-match",style:{display:"block"}},[Lp("search")," ",zd("span",{id:"search-prefix"},s),kp(" finnst ekki")]):void 0]}}),wm={view:e=>{const{view:t}=e.attrs,{model:n}=t,{numGames:i,numChallenges:r}=n;return[zd(kg,{hidden:!0}),zd("ul",[zd("li",zd("a[href='#tabs-1']",[Lp("th"),zd("span.tab-legend",kp("Viðureignir")),zd("span",{id:"numgames",style:i?"display: inline-block":""},i)])),zd("li",zd("a[href='#tabs-2']",[Lp("hand-right"),zd("span.tab-legend",kp("Áskoranir")),zd("span"+(n.oppReady?".opp-ready":""),{id:"numchallenges",style:r?"display: inline-block":""},r)])),zd("li",zd("a[href='#tabs-3']",[Lp("user"),zd("span.tab-legend",kp("Andstæðingar"))])),zd("li",zd("a[href='#tabs-4']",[Lp("bookmark"),zd("span.tab-legend",kp("Ferill"))])),zd("li.mobile-only-list",zd("a.sp.narrow[href='#tabs-5']",{title:Cp("Stillingar")},[Lp("cog")]))])]}},bm={view:e=>{const{view:t}=e.attrs,{model:n}=t;return null===n.recentList&&n.loadRecentList(),[zd(".listitem.listheader",[zd("span.list-win",Np("bookmark",{title:Cp("Sigur")})),Sp("span.list-ts-short","Viðureign lauk"),Sp("span.list-nick","Andstæðingur"),Sp("span.list-scorehdr","Úrslit"),zd("span.list-elo-hdr",[zd("span.glyphicon.glyphicon-user.elo-hdr-left",{title:Cp("Mennskir andstæðingar")}),kp("Elo"),zd("span.glyphicon.glyphicon-cog.elo-hdr-right",{title:Cp("Allir andstæðingar")})]),Sp("span.list-duration","Lengd"),zd(yg,{header:!0})]),zd(sm,{view:t,id:"recentlist",recentList:n.recentList||[]})]}},_m={view:e=>{const{view:t,buttonId:n,icon:i,text:r}=e.attrs,{model:s}=t,a=s.userListCriteria?.query||"robots";return zd("span",{className:n===a?"shown":"",id:n,onclick:e=>{"elo"===n?(s.userListCriteria={query:"elo",spec:"human"},s.userList=null,t.actions.withSpinner((()=>s.loadEloRatingList("human")))):(t.actions.loadUsersByType(n,!0),s.eloRatingSpec=null,s.eloRatingList=null),e.preventDefault()}},[Lp(i,{style:{padding:0}}),Dp(),r])}},km={view:e=>{const{view:t}=e.attrs,{model:n}=t,{ownStats:i}=n;return null===i&&n.loadOwnStats(),i?zd(cm,{view:t,id:"own-stats",ownStats:i}):null}},Cm={view:e=>{const{view:t}=e.attrs,{model:n}=t,{ownStats:i}=n;return null===i&&n.loadOwnStats(),i?zd(Qf,{id:"own-best",ownStats:i,myself:!0}):null}},Sm={view:e=>{const{view:t}=e.attrs;return zd("div",{id:"tabs-1"},[Sp("p.no-mobile-block",[Sp("strong","Viðureignir sem standa yfir"),"click_on_game",Lp("flag")," þú átt leik"]),zd(rm,{view:t,id:"gamelist"})])}},Tm={view:e=>{const{view:t}=e.attrs;return zd("div",{id:"tabs-2"},[Sp("p.no-mobile-block",[Sp("strong","Skorað á þig"),"click_on_challenge",Lp("thumbs-down",{style:{"margin-left":"6px","margin-right":"6px"}})," til að hafna henni"]),zd(tm,{view:t,showReceived:!0}),Sp("p.no-mobile-block",[Sp("strong","Þú skorar á aðra")," - smelltu á ",Lp("hand-right",{style:{"margin-left":"6px","margin-right":"6px"}})," til að afturkalla áskorun"]),zd(tm,{view:t,showReceived:!1})])}},Im={view:e=>{const{view:t}=e.attrs;return zd("div",{id:"tabs-3"},[zd("div",{id:"initials"},[zd(".user-cat[id='user-headings']",[zd(_m,{view:t,buttonId:"robots",icon:"cog",text:Cp("Þjarkar")})," ",zd(_m,{view:t,buttonId:"fav",icon:"star",text:Cp("Uppáhalds")})," ",zd(_m,{view:t,buttonId:"live",icon:"flash",text:Cp("Álínis")})," ",zd(_m,{view:t,buttonId:"alike",icon:"resize-small",text:Cp("Svipaðir")})," ",zd(_m,{view:t,buttonId:"elo",icon:"crown",text:Cp("Topp 100")})]),zd(am,{view:t})]),zd(ym,{view:t,id:"userlist"})])}},Em={view:e=>{const{view:t}=e.attrs;return zd("div",{id:"tabs-4"},[zd(km,{view:t}),zd(Cm,{view:t}),Sp("p.no-mobile-block",[Sp("strong","Nýlegar viðureignir þínar"),"click_to_review"]),zd(bm,{view:t})])}},Pm={view:e=>{const{view:t}=e.attrs;return zd("div",{id:"tabs-5"},[zd(lm,{view:t})])}},xm={view:e=>{const{view:t}=e.attrs;return zd(".tabbed-page",zd("div",{id:"main-tabs"},[zd(wm,{view:t}),zd("div.tab-scroll-area",[zd(Sm,{view:t}),zd(Tm,{view:t}),zd(Em,{view:t}),zd(Im,{view:t}),zd(Pm,{view:t})])]))}},Rm={view:e=>{const{view:t}=e.attrs;return[zd(_g,{hidden:!0}),zd(vg,{view:t}),zd(bg),zd(Sg,{view:t}),zd(Tg,{view:t}),zd("div",{oncreate:e=>{hm(t,"main-tabs",void 0,!1,e)},onupdate:gm},zd(xm,{view:t}))]}},Lm=(e,t,n)=>{const i=e.model.game;return zd(".movelist-container",zd(".movelist.bestmoves",function(){const r=[];if(!i||!t||t>i.moves.length)return r;const s=i.moves[t-1],[a,o,l]=s[1];r.push(function(e,n,i){let r,s="wordmove";if(e.length>0)r=[zd("i",n.split("?").join("")),` (${e})`];else if(s="othermove","PASS"===n)r=Cp("Pass");else if(0===n.indexOf("EXCH")){const e=n.slice(5).length,t=Cp(1===e?"letter":"letters");r=Cp("exchanged",{numtiles:e.toString(),letters:t})}else"RSGN"===n?r=Cp("Gaf viðureign"):"CHALL"===n?r=Cp("Véfengdi lögn"):"RESP"===n?r=Cp(i<0?"Óleyfileg lögn":"Röng véfenging"):"TIME"===n?r=Cp("Umframtími"):"OVER"===n?(r=Cp("Viðureign lokið"),s="gameover"):(s="othermove",r="--"===n?Cp("Stafaleif: engin"):[Cp("Stafaleif: "),zd("i.upper",n)]);return zd(".reviewhdr",[zd("span.movenumber",`#${t}`),zd("span",{class:s},r)])}(a,o,l));const c=n;for(let n=0;n<c.length;n++){const[i,[s,a,o]]=c[n],l=Nm(e,t,n,c[n],{player:i,co:s,tiles:a,score:o});l&&r.push(l)}return r}()))},Nm=(e,t,n,i,r)=>{const s=e.model;if(!s.game)return;const a=s.game,{player:o,co:l,tiles:c,score:u}=r;function h(e,i,r,l){const c=Up(e);let u=c.col,h=c.row,d=!1;l&&(s.highlightedMove=n,a.placeTiles(t-1,!0));for(let e of i){if("?"===e){d=!0;continue}const t=zp(h,u);if(null===t)continue;const n=e;d&&(e="?");const i=a.tilescore(e);l&&!(t in a.tiles)&&(a.tiles[t]={player:o,tile:e,letter:n,score:i,draggable:!1,freshtile:!1,index:0,xchg:!1,review:!0,highlight:r}),u+=c.dx,h+=c.dy,d=!1}l||(s.highlightedMove=null,null!==s.reviewMove&&a.placeTiles(s.reviewMove))}const d=`(${l})`,p=c.split("?").join("");let g=0;const f=a.player;let m;o===f||null===f&&0===o?m="humangrad"+(0===o?"_left":"_right"):(m="autoplayergrad"+(0===o?"_left":"_right"),g=1);const v={title:"Smelltu til að fletta upp"};return"is_IS"===a.locale&&(v.onclick=()=>{window.open(`https://malid.is/leit/${p}`,"malid")}),v.onmouseover=()=>{i[2]=!0,h(l,c,g,!0)},v.onmouseout=()=>{i[2]=!1,h(l,c,g,!1)},0===o?zd(`.move.leftmove.${m}`,v,[zd("span.score"+(i[2]?".highlight":""),u),zd("span.wordmove",[zd("i",p),Dp(),d])]):zd(`.move.rightmove.${m}`,v,[zd("span.wordmove",[d,Dp(),zd("i",p)]),zd("span.score"+(i[2]?".highlight":""),u)])},Dm=(e,t)=>{const n=e.model,i=n.game,r=i?.moves.length??0,s=[];if(!(i?.uuid??""))return s;if(s.push(Ng("navbtn",!t,(()=>{n.loadBestMoves(t?t-1:0)}),"Sjá fyrri leik",zd("span",{id:"nav-prev-visible"},[Lp("chevron-left")," Fyrri"]),!0,"navprev")),s.push(Ng("navbtn",!t||t>=r,(()=>{n.loadBestMoves(t+1)}),"Sjá næsta leik",zd("span",{id:"nav-next-visible"},["Næsti ",Lp("chevron-right")]),!0,"navnext")),null!==n.highlightedMove){const n=((e,t)=>{const n=e.model,i=n.game;if(!i)return;const r=[".scorediff"],s=t?i.moves[t-1]:void 0,a=s?s[1][2]:void 0;let o="";if(void 0===a||null===n.bestMoves||null===n.highlightedMove);else{const e=n.bestMoves[n.highlightedMove][1][2];o=(a-e).toString(),"-"!==o[0]&&"0"!==o[0]&&(o=`+${o}`),a>=e&&r.push("posdiff")}return zd(r.join("."),{style:{visibility:"visible"}},o)})(e,t);void 0!==n&&s.push(n)}const a=((e,t)=>{const n=e.model.game;if(!n)return;const i=t?n.moves[t-1]:void 0;if(void 0===i)return;const[r,[s,a,o]]=i;if(void 0===o||""===s&&"OVER"===a)return;const l=[".score"];return t>0&&(t%2===(n.player??0)?l.push("opponent"):l.push("localplayer")),zd(l.join("."),o.toString())})(e,t);return void 0!==a&&s.push(a),s},Am=e=>{const{view:t}=e.attrs;return{view:()=>{const e=[],{model:n}=t,{game:i}=n;if(i){const r=n.reviewMove??0,s=n.bestMoves||[];if(e.push(function(e,n,i){return zd(".rightcol",[function(){const i=e.fairplay,r=e.player;let s="",a="";if(n){let t=0,i=0;for(let r=0;r<n;r++){const n=e.moves[r];r%2==0?t+=n[1][2]:i+=n[1][2]}s=t.toString(),a=i.toString()}return zd(".heading",[zd(".logowrapper",zd(kg)),zd(".playerwrapper",[zd(".leftplayer"+(1===r?".autoplayercolor":".humancolor"),[zd(".player",zd(Hf,{view:t,side:"left"})),zd(".scorewrapper",zd(".scoreleft",s))]),zd(".rightplayer"+(1===r?".humancolor":".autoplayercolor"),[zd(".player",zd(Hf,{view:t,side:"right"})),zd(".scorewrapper",zd(".scoreright",a))]),zd(".fairplay",{style:{visibility:i?"visible":"hidden"}},zd("span.fairplay-btn.large",{title:Cp("Skraflað án hjálpartækja")}))])])}(),zd(".right-area",Lm(t,n,i))])}(i,r,s)),e.push(zd(Mm,{view:t,moveIndex:r})),null!==n.reviewMove&&0===r){const n=(e=>{if(null===e.model.game)return;const t=e.model.game;function n(e,n,i){let r=i;return void 0===r&&t.stats&&(r=t.stats[e]),void 0===r?"":("number"==typeof r?r=void 0!==n&&n>0?r.toFixed(n).replace(".",","):r.toString():Array.isArray(r)&&(r=`${r[0]} - ${r[1]}`),r)}let i,r;return null===t.stats&&t.loadStats(),1===t.player?(r="humancolor",i="autoplayercolor"):(i="humancolor",r="autoplayercolor"),zd(".gamestats",{style:{visibility:"visible"}},[zd("div",{style:{position:"relative",width:"100%"}},[zd(".player.left",{class:i,style:{width:"50%"}},zd(".robot-btn.left",t.autoplayer[0]?[Lp("cog"),Dp(),t.nickname[0]]:t.nickname[0])),zd(".player.right",{class:r,style:{width:"50%","text-align":"right"}},zd(".robot-btn.right",t.autoplayer[1]?[Lp("cog"),Dp(),t.nickname[1]]:t.nickname[1]))]),zd("div",{id:"gamestarted"},[zd("p",["Viðureignin hófst ",zd("span",n("gamestart")),zd("br"),"og henni lauk ",zd("span",n("gameend"))]),t.manual?zd("p","Leikið var í keppnisham"):""]),zd(".statscol",{style:{clear:"left"}},[zd("p",["Fjöldi leikja: ",zd("span",n("moves0"))]),zd("p",["Fjöldi bingóa: ",zd("span",n("bingoes0"))," (bónus ",zd("span",n("bingopoints0",0,t.stats?50*t.stats.bingoes0:0))," stig)"]),zd("p",["Stafir lagðir niður: ",zd("span",n("tiles0"))," (þar af ",zd("span",n("blanks0"))," auðir)"]),zd("p",["Meðalstig stafa (án auðra): ",zd("span",n("average0",2))]),zd("p",["Samanlögð stafastig: ",zd("span",n("letterscore0"))]),zd("p",["Margföldun stafastiga: ",zd("span",n("multiple0",2))]),zd("p",["Stig án stafaleifar í lok: ",zd("span",n("cleantotal0"))]),zd("p",["Meðalstig hvers leiks: ",zd("span",n("avgmove0",2))]),t.manual?zd("p",["Rangar véfengingar andstæðings x 10: ",zd("span",n("wrongchall0"))]):"",zd("p",["Stafaleif og frádráttur í lok: ",zd("span",n("remaining0"))]),zd("p",["Umframtími: ",zd("span",n("overtime0"))]),zd("p",["Stig: ",zd("span",n("total0",0,t.stats?t.stats.scores[0]:0))," (",zd("span",n("ratio0",1)),"%)"])]),zd(".statscol",[zd("p",["Fjöldi leikja: ",zd("span",n("moves1"))]),zd("p",["Fjöldi bingóa: ",zd("span",n("bingoes1"))," (bónus ",zd("span",n("bingopoints0",0,t.stats?50*t.stats.bingoes1:0))," stig)"]),zd("p",["Stafir lagðir niður: ",zd("span",n("tiles1"))," (þar af ",zd("span",n("blanks1"))," auðir)"]),zd("p",["Meðalstig stafa (án auðra): ",zd("span",n("average1",2))]),zd("p",["Samanlögð stafastig: ",zd("span",n("letterscore1"))]),zd("p",["Margföldun stafastiga: ",zd("span",n("multiple1",2))]),zd("p",["Stig án stafaleifar í lok: ",zd("span",n("cleantotal1"))]),zd("p",["Meðalstig hvers leiks: ",zd("span",n("avgmove1",2))]),t.manual?zd("p",["Rangar véfengingar andstæðings x 10: ",zd("span",n("wrongchall1"))]):"",zd("p",["Stafaleif og frádráttur í lok: ",zd("span",n("remaining1"))]),zd("p",["Umframtími: ",zd("span",n("overtime1"))]),zd("p",["Stig: ",zd("span",n("total1",0,t.stats?t.stats.scores[1]:0))," (",zd("span",n("ratio1",1)),"%)"])]),zd(".closebtn",{id:"review-close",onclick:e=>{setTimeout((()=>{zd.route.set(`/review/${t.uuid}`,{move:1})})),e.preventDefault()},onmouseover:xp,onmouseout:Rp},[Lp("play")," Rekja"])])})(t);n&&e.push(n)}}return zd("div",[zd(".game-container",e),zd(_g),zd(bg)])}}},Mm={view:e=>{const{view:t}=e.attrs,n=t.model.game;let i=[];if(n){i=[zd(Yg,{view:t,game:n,review:!0}),zd(Hg,{view:t,game:n,review:!0})];const r=e.attrs.moveIndex;null!==r&&(i=i.concat(Dm(t,r)))}return zd(".board-area",i)}},Om=(e,t)=>{if(t.loadingRecentList)return;t.loadingRecentList=!0;const{model:n}=e.view;n.loadUserRecentList(e.userid,t.versusAll?null:n.state?.netskraflUserId??"",(e=>{e&&0===e.result?t.recentList=e.recentlist:t.recentList=[],t.loadingRecentList=!1}))},jm=(e,t,n)=>{t.versusAll!==n&&(t.versusAll=n,t.loadingRecentList=!1,Om(e,t))},Fm={oninit:e=>{const{attrs:t,state:n}=e;n.stats={},n.recentList=[],n.versusAll=!0,n.loadingRecentList=!1,n.loadingStats=!1,Om(t,n),((e,t)=>{if(t.loadingStats)return;t.loadingStats=!0;const{model:n}=e.view;n.loadUserStats(e.userid,(e=>{e&&0===e.result?t.stats=e:t.stats={},t.loadingStats=!1}))})(t,n)},view:e=>{const{attrs:t,state:n}=e,{view:i}=t,{stats:r,recentList:s,versusAll:a}=n;return zd(".modal-dialog",{id:"usr-info-dialog",style:{visibility:"visible"}},zd(".ui-widget.ui-widget-content.ui-corner-all",{id:"usr-info-form"},[zd(".usr-info-hdr",[zd("h1.usr-info-icon",[e.state.stats.friend?Lp("coffee-cup",{title:Cp("Áskrifandi")}):Lp("user"),Dp()]),zd("h1[id='usr-info-nick']",e.attrs.nick),zd("span.vbar","|"),zd("h2[id='usr-info-fullname']",e.attrs.fullname),zd(".usr-info-fav",{title:Cp("Uppáhald"),onclick:t=>{t.preventDefault(),i.actions.toggleFavorite(e.attrs.userid,r.favorite??!1),r.favorite=!r.favorite}},r.favorite?Lp("star"):Lp("star-empty"))]),zd("p",[zd("strong",kp("Nýjustu viðureignir")),Dp(),zd("span.versus-cat",[zd("span",{class:a?"shown":"",onclick:()=>{jm(t,n,!0)}},kp(" gegn öllum ")),zd("span",{class:a?"":"shown",onclick:()=>{jm(t,n,!1)}},kp(" gegn þér "))])]),zd(".listitem.listheader",[zd("span.list-win",Np("bookmark",{title:Cp("Sigur")})),Sp("span.list-ts-short","Viðureign lauk"),Sp("span.list-nick","Andstæðingur"),Sp("span.list-scorehdr","Úrslit"),zd("span.list-elo-hdr",[zd("span.glyphicon.glyphicon-user.elo-hdr-left",{title:Cp("Mennskir andstæðingar")}),"Elo",zd("span.glyphicon.glyphicon-cog.elo-hdr-right",{title:Cp("Allir andstæðingar")})]),Sp("span.list-duration","Lengd"),zd(yg,{header:!0})]),zd(sm,{view:i,id:"usr-recent",recentList:s}),zd(cm,{view:i,id:"usr-stats",ownStats:r}),zd(Qf,{id:"usr-best",ownStats:r,myself:!1}),zd(pg,{id:"usr-info-close",title:Cp("Loka"),onclick:e=>{i.popDialog(),e.preventDefault()}},Lp("ok"))]))}},zm=e=>{const{view:t}=e.attrs,{model:n}=t;function i(e){const t=(n.userErrors||{})[e]||"";return t?zd(".errinput",[Lp("arrow-up"),Dp(),t]):""}function r(e){const t=document.querySelector(`#${e}-toggler #opt2`)?.classList;return!!t&&t.contains("selected")}function s(){const e=n.user;e&&(e.nickname=Mp("nickname"),e.full_name=Mp("full_name"),e.audio=r("audio"),e.fanfare=r("fanfare"),e.beginner=r("beginner"),e.fairplay=r("fairplay"),n.saveUser((()=>{t.popDialog()})))}function a(e){e.dom.querySelector("#nickname").focus()}function o(e,t,n,i,r){return zd(pg,{id:e,onclick:n,title:t,tabindex:r},i)}return{view:()=>{if(!n.user)return;const e=n.user;if(!n.state)return;const r=n.state;return zd(".modal-dialog",{key:"userprefs",id:"user-dialog",oncreate:a},zd(".ui-widget.ui-widget-content.ui-corner-all",{id:"user-form"},[zd(".loginhdr",[Lp("address-book"),` ${Cp("player_info")}`]),zd("div",zd("form",{action:"",id:"frm1",method:"post",name:"frm1"},[zd(".dialog-spacer",[zd("span.caption",kp("Einkenni:")),zd(dg,{initialValue:e.nickname||"",class:"username",maxlength:15,id:"nickname"}),Dp(),zd("span.asterisk","*")]),zd(".explain",kp("Verður að vera útfyllt")),i("nickname"),zd(".dialog-spacer",[zd("span.caption",kp("Fullt nafn:")),zd(dg,{initialValue:e.full_name||"",class:"fullname",maxlength:32,id:"full_name",autocomplete:"name"})]),zd(".explain",kp("Valfrjálst - sýnt í notendalistum Netskrafls")),i("full_name"),zd(".dialog-spacer",[zd("span.caption.sub",kp("Hljóðmerki:")),zd(Ig,{view:t,state:e.audio,tabindex:4}),zd("span.subcaption",kp("Lúðraþytur eftir sigur:")),zd(Eg,{view:t,state:e.fanfare,tabindex:5})]),zd(".explain",kp("explain_sound")),zd(".dialog-spacer",[zd("span.caption.sub",kp("Sýna reitagildi:")),zd(Pg,{view:t,state:e.beginner,tabindex:6}),Sp(".subexplain",["Stillir hvort ",Sp("strong","minnismiði")," um margföldunargildi reita er sýndur við borðið"])]),zd(".dialog-spacer",[zd("span.caption.sub",kp("Án hjálpartækja:")),zd(xg,{view:t,state:e.fairplay,tabindex:7}),Sp(".subexplain",["no_helpers",Sp("strong","án stafrænna hjálpartækja")," af nokkru tagi"])]),zd(".dialog-spacer",[zd("span.caption.sub",kp("Eldri litasamsetning:")),zd(Rg,{tabindex:8}),Sp(".subexplain",[kp("use_original"),Sp("strong",kp("upprunalegu")),kp(" litina frá eldri útgáfu Netskrafls")])])])),o("user-ok",Cp("Vista"),s,Lp("ok"),9),o("user-cancel",Cp("Hætta við"),(e=>{t.popDialog(),e.preventDefault()}),Lp("remove"),10),e.friend?o("user-unfriend",Cp("Þú ert áskrifandi!"),(e=>{e.preventDefault()}),[Lp("coffee-cup"),Cp("Þú ert áskrifandi!")],11):o("user-friend",Cp("Gerast áskrifandi"),(e=>{e.preventDefault(),fh("click_friend",{userid:r.netskraflUserId,locale:r.locale}),window.location.href=r.subscriptionUrl}),[Lp("coffee-cup"),Dp(),Dp(),Cp("Gerast áskrifandi")],12)]))}}},Um={oninit:e=>{const{state:t}=e;t.oppOnline=!1,t.pointOfNoReturn=!1,t.firebasePath=""},oncreate:e=>{const{attrs:t,state:n}=e,{view:i,oppId:r,challengeKey:s}=t,{model:a}=i,o=a.state,l=a.state?.netskraflUserId??"";if(!l||!r)return;n.firebasePath=`user/${l}/wait/${r}`;(async()=>{try{if(s&&o){const e=await rp(o,{method:"POST",url:"/initwait",body:{opp:r,key:s}});e?.online&&e.waiting&&(n.oppOnline=!0)}}catch(e){}})(),ph(n.firebasePath,(e=>{!0!==e&&e.game&&(n.pointOfNoReturn=!0,gh(n.firebasePath),zd.route.set(`/game/${e.game}`))}))},view:e=>{const{attrs:t,state:n}=e,{view:i,oppId:r,duration:s,challengeKey:a,oppNick:o,oppName:l}=t,{model:c}=i,u=c.state,h=c.state?.netskraflUserId??"";if(!u)return null;return zd(".modal-dialog",{id:"wait-dialog",style:{visibility:"visible"}},zd(".ui-widget.ui-widget-content.ui-corner-all",{id:"wait-form"},[zd(".chall-hdr",zd("table",zd("tbody",zd("tr",[zd("td",zd("h1.chall-icon",Lp("time"))),zd("td.l-border",[zd(mg,{id:"chall-online",userId:r,online:n.oppOnline,state:u}),zd("h1",o),zd("h2",l)])])))),zd(".wait-explain",[Sp("p",["Þú ert reiðubúin(n) að taka áskorun um viðureign með klukku,"]),zd("p",[zd("strong",["2 x ",s.toString(),Cp(" mínútur.")])]),Sp("p",["Beðið er eftir að áskorandinn ",zd("strong",o)," sé ",n.oppOnline?"":Sp("span#chall-is-online","álínis og "),"til í tuskið."]),Sp("p","Leikur hefst um leið og áskorandinn bregst við. Handahóf ræður hvor byrjar."),Sp("p","Ef þér leiðist biðin geturðu hætt við og reynt aftur síðar.")]),zd(pg,{id:"wait-cancel",title:Cp("Hætta við"),onclick:e=>{n.pointOfNoReturn||(n.firebasePath&&gh(n.firebasePath),(async()=>{if(u)try{rp(u,{method:"POST",url:"/cancelwait",body:{user:h,opp:r,key:a}})}catch(e){}})(),i.popDialog()),e.preventDefault()}},Lp("remove"))]))}},$m={oninit:async e=>{const{attrs:t,state:n}=e,{view:i,oppId:r,challengeKey:s}=t,a=i.model.state;if(a){n.oppReady=!0;try{const e=await rp(a,{method:"POST",url:"/waitcheck",body:{user:r,key:s}});e?.waiting?i.actions.startNewGame(r,!0):n.oppReady=!1}catch(e){n.oppReady=!1}}},view:e=>{const{attrs:t,state:n}=e,{view:i,oppNick:r}=t;return zd(".modal-dialog",{id:"accept-dialog",style:{visibility:"visible"}},zd(".ui-widget.ui-widget-content.ui-corner-all",{id:"accept-form"},[zd(".chall-hdr",zd("table",zd("tbody",zd("tr",[zd("td",zd("h1.chall-icon",Lp("time"))),zd("td.l-border",zd("h1",r))])))),zd("div",{style:{"text-align":"center","padding-top":"32px"}},[zd("p",Sp("strong","Viðureign með klukku")),Sp("p",n.oppReady?"Athuga hvort andstæðingur er reiðubúinn...":["Andstæðingurinn ",zd("strong",r)," er ekki reiðubúinn"])]),zd(pg,{id:"accept-cancel",title:Cp("Reyna síðar"),onclick:e=>{i.popDialog(),e.preventDefault()}},Lp("remove"))]))}};class qm{get model(){return this.actions.model}constructor(e){this.dialogStack=[],this.boardScale=1,this.zoomAnimationTimeout=null,this.selectedTab="movelist",this.actions=e,this.actions.initMediaListener(this);const t=this.model.state;t&&(t.onFirebaseReady=()=>{this.actions.attachListenerToUser()}),this.model.loadUser(!1)}appView(e){const t=this.model,n=[];switch(e){case"main":n.push(zd(Rm,{key:"main",view:this}));break;case"game":n.push(zd(Xf,{key:"game",view:this}));break;case"review":n.push(zd(Am,{key:"review",view:this}));break;case"help":n.push(this.vwHelp(parseInt(zd.route.param("tab")||"",10),parseInt(zd.route.param("faq")||"",10)));break;default:return[zd("div",{key:"error"},kp("Þessi vefslóð er ekki rétt"))]}for(const e of this.dialogStack){const t=qm.dialogViews[e.name];if(void 0===t)console.error(`Unknown dialog name: ${e.name}`);else{const i=t(this,e.args);i&&n.push(i)}}return t.spinners&&n.push(zd(hg,{key:"spinner"})),n}isFullScreen(){return this.model.state?.uiFullscreen||!1}isMobile(){return!this.model.state?.uiFullscreen}pushDialog(e,t){this.dialogStack.push({name:e,args:t}),zd.redraw()}popDialog(){this.dialogStack.length>0&&(this.dialogStack.pop(),zd.redraw())}popAllDialogs(){this.dialogStack.length>0&&(this.dialogStack=[],zd.redraw())}isDialogShown(){return this.dialogStack.length>0}startSpinner(){this.actions.showSpinner()}stopSpinner(){this.actions.hideSpinner()}notifyMediaChange(){const e=this.model;e.state?.uiFullscreen||e.state?.uiLandscape?this.setSelectedTab("movelist")&&setTimeout(Fp):this.setSelectedTab("board"),this.popAllDialogs()}notifyChatMessage(){zd.redraw()}zoomIn(){this.boardScale=lp}zoomOut(){1!==this.boardScale&&(this.boardScale=1,setTimeout((()=>this.resetScale())))}resetScale(){null!==this.zoomAnimationTimeout&&(clearTimeout(this.zoomAnimationTimeout),this.zoomAnimationTimeout=null),this.boardScale=1;const e=document.getElementById("board-parent"),t=e?.children[0];t&&(t.style.transition="none",t.style.transform="translate(0px, 0px) scale(1)"),e&&e.scrollTo(0,0)}updateScale(){if(!og())return;const e=this.model,t=e.game||e.riddle,n=e=>{const t=document.getElementById("board-parent"),n=t?.children[0];if(!n||!t)return;const i=Up(e),r=zp(Math.max(0,i.row-3),Math.max(0,i.col-3)),s=document.getElementById(`sq_${r}`),a=s?.getBoundingClientRect(),o=t.getBoundingClientRect();if(a&&o){const e=t.clientWidth,i=t.clientHeight,r=n.offsetWidth*lp-e,s=n.offsetHeight*lp-i,l=Math.min(a.left-o.left,r),c=Math.min(a.top-o.top,s);null!==this.zoomAnimationTimeout&&(clearTimeout(this.zoomAnimationTimeout),this.zoomAnimationTimeout=null),n.style.transition="transform 0.3s ease-in-out";const u=`${-l}px, ${-c}px`,h="1.5";n.style.transform=`translate(${u}) scale(${h})`,this.zoomAnimationTimeout=setTimeout((()=>{this.zoomAnimationTimeout=null,n.style.transition="none",n.style.transform="translate(0px, 0px) scale(1.5)",requestAnimationFrame((()=>{t.scrollTo(l,c)}))}),350)}};if(!t||e.state?.uiFullscreen||t.moveInProgress)return this.boardScale=1,void setTimeout((()=>this.resetScale()));const i=t.tilesPlaced(),r=i.length;1===r&&1===this.boardScale?(this.boardScale=lp,setTimeout((()=>n(i[0])))):0===r&&this.boardScale>1&&(this.boardScale=1,setTimeout((()=>this.resetScale())))}showUserInfo(e,t,n){this.pushDialog("userinfo",{userid:e,nick:t,fullname:n})}showFriendPromo(){this.pushDialog("friend",{})}showAcceptDialog(e,t,n){this.pushDialog("accept",{oppId:e,oppNick:t,challengeKey:n})}setSelectedTab(e){const t=this.model.state;return"board"===e&&(t?.uiFullscreen||t?.uiLandscape)&&(e="movelist"),this.selectedTab!==e&&(this.selectedTab=e,"chat"!==e&&qp(),!0)}vwTabsFromHtml(e,t,n,i){return e?zd("div.help-tabs",{oncreate:e=>{hm(this,t,i,!0,e)},oninit:e=>{e.state.selected=n||1}},zd.trust(e)):""}vwHelp(e,t){const n=this.model;return zd.fragment({key:"help"},[zd(_g),zd(vg,{view:this}),this.vwTabsFromHtml(n.helpHTML||"","tabs",e,(function(e){function n(t,n){e.state.selected=1,e.dom.querySelector(n)?.scrollIntoView(),t.preventDefault()}const i=e.dom.querySelectorAll("a");for(const e of i){const t=e.getAttribute("href");t&&"#faq-"===t.slice(0,5)&&(e.onclick=e=>{n(e,t)})}void 0===t||Number.isNaN(t)||(pm(e,1),e.state.selected=1,e.dom.querySelector(`#faq-${t.toString()}`)?.scrollIntoView())}))])}vwUserPrefs(){const e=this.model;return null!==e.user||e.userLoadError||e.loadUser(!0),e.user?zd(zm,{key:"userprefs",view:this}):zd.fragment({key:"userprefs-empty"},[])}vwWait(e){return zd(Um,{key:`wait-${e.challengeKey}`,view:this,oppId:e.oppId,oppNick:e.oppNick,oppName:e.oppName,duration:e.duration,challengeKey:e.challengeKey})}vwAccept(e){return zd($m,{key:`accept-${e.challengeKey}`,view:this,oppId:e.oppId,oppNick:e.oppNick,challengeKey:e.challengeKey})}vwDialogs(){return zd(Uf,{view:this})}}qm.dialogViews={userprefs:e=>e.vwUserPrefs(),userinfo:(e,t)=>zd(Fm,{key:`userinfodialog-${t.userid}`,view:e,userid:t.userid,nick:t.nick,fullname:t.fullname}),challenge:(e,t)=>zd(Ff,{key:"challenge",view:e,item:t}),friend:e=>zd(zf,{key:"friend",view:e}),wait:(e,t)=>e.vwWait(t),accept:(e,t)=>e.vwAccept(t)};let Bm=null;const Vm=(e,t)=>{const{userEmail:n}=e;return n?async function(e,t){if(!t)return console.error("No container element found"),"error";try{const n=Of(),i=new jf(n,e),r=new Hp(i),s=new qm(r);Bm&&Bm.cleanup(),Bm=r;const a=new URLSearchParams(window.location.search).get("date"),o=(new Date).toISOString().split("T")[0],l=a||o,c=/^\d{4}-\d{2}-\d{2}$/.test(l)?l:o,u=e.locale||"is_IS";zd.mount(t,{view:()=>zd(vf,{view:s,date:c,locale:u})}),Bp((e=>{const t=i.riddle;t&&bf(t,s,e)}),(e=>{const t=i.riddle;t&&_f(t,s,e)}))}catch(e){return console.error("Exception during initialization: ",e),"error"}return"success"}(e,t).then((e=>{if("success"!==e)throw new Error("Failed to mount Gáta Dagsins UI")})):Promise.reject(new Error("No user specified for Gáta Dagsins UI"))},Hm=t.memo((({state:i,tokenExpired:r})=>{const s=t.useRef(null),o=t.useRef(!1),{userEmail:l}=i;return n((()=>{if(!l)return;const e=s.current;if(!e)return void console.error("No container for Gáta Dagsins UI");const t=a({...i,tokenExpired:r});return Vm(t,e).then((()=>{o.current=!0})).catch((e=>{console.error("Failed to mount Gáta Dagsins UI:",e)})),()=>{o.current&&(!function(e){Bm&&(Bm.cleanup(),Bm=null),zd.mount(e,null),e.innerHTML="";const t=document.body.querySelectorAll("#netskrafl-background, #gatadagsins-background");for(const e of t)e.remove()}(e),o.current=!1)}}),[l]),e("div",{className:"gatadagsins",children:e("div",{className:"netskrafl-container",id:"gatadagsins-container",ref:s})})}));let Wm=null;const Gm=(e,t)=>{const{userEmail:n}=e;return n?async function(e,t){if(!t)return console.error("No container element found"),"error";try{const n=Of(),i=new jf(n,e),r=new Hp(i),s=new qm(r);Wm&&Wm.cleanup(),Wm=r,Bp((e=>{const t=i.game;t&&bf(t,s,e)}),(e=>{const t=i.game;t&&_f(t,s,e)}));const a=function(e,t){return e.model.paths.reduce(((n,i)=>(n[i.route]={onmatch:n=>{t.popAllDialogs(),t.resetScale(),e.onNavigateTo(i.name,n,t)},render:()=>t.appView(i.name)},n)),{})}(r,s);zd.route(t,n.defaultRoute,a),Vp(cg())}catch(e){return console.error("Exception during initialization: ",e),"error"}return"success"}(e,t).then((e=>{if("success"!==e)throw new Error("Failed to mount Netskrafl UI")})):Promise.reject(new Error("No user specified for Netskrafl UI"))},Km=t.memo((({state:i,tokenExpired:r})=>{const s=t.useRef(null),o=t.useRef(!1),{userEmail:l}=i;return n((()=>{if(!l)return;const e=s.current;if(!e)return void console.error("No container for Netskrafl UI");const t=a({...i,tokenExpired:r});return Gm(t,e).then((()=>{o.current=!0})).catch((e=>{console.error("Failed to mount Netskrafl UI:",e)})),()=>{o.current&&(!function(e){Wm&&(Wm.cleanup(),Wm=null),zd.mount(e,null),e.innerHTML="",document.body.querySelectorAll("#netskrafl-background, #gatadagsins-background").forEach((e=>{e.remove()}))}(e),o.current=!1)}}),[l]),e("div",{className:"netskrafl",children:e("div",{className:"netskrafl-container",id:"netskrafl-container",ref:s})})}));export{Hm as GataDagsins,Km as Netskrafl};
3027
+ */(n,...e)}return n}ao.prototype.simpleListen=function(e,t){this.sendRequest("q",{p:e},t)},ao.prototype.echo=function(e,t){this.sendRequest("echo",{d:e},t)},function(e){!function(e){Us=e}(bt),ft(new ae("database",((e,{instanceIdentifier:t})=>ah(e.getProvider("app").getImmediate(),e.getProvider("auth-internal"),e.getProvider("app-check-internal"),t)),"PUBLIC").setMultipleInstances(!0)),Ct(Fs,zs,e),Ct(Fs,zs,"esm2020")}();let ch=[];function uh(e){const t=[...ch];ch=[],t.forEach((e=>{e()})),e.onFirebaseReady?.()}function hh(e){try{const{projectId:t,firebaseApiKey:n,databaseUrl:i,firebaseSenderId:r,firebaseAppId:s,measurementId:a}=e;if(th=_t({projectId:t,apiKey:n,authDomain:`${t}.firebaseapp.com`,databaseURL:i,storageBucket:`${t}.firebasestorage.app`,messagingSenderId:r,appId:s,measurementId:a},t),!th)return console.error("Failed to initialize Firebase"),!1}catch(e){return console.error("Failed to initialize Firebase",e),!1}return!0}async function dh(e,t,n){if(!th&&!hh(e))return;const{netskraflUserId:i,locale:r,projectId:s,loginMethod:a}=e;nh=Ms(th),nh?function(e,t,n,i){se(e).onAuthStateChanged(t,n,i)}(nh,(t=>{null!==t&&(e.newUser&&fh("sign_up",{locale:r,method:a,userid:i}),fh("login",{locale:r,method:a,userid:i}))})):console.error("Failed to initialize Firebase Auth"),await Tr(nh,t),ih=lh(th),ih?uh(e):console.error("Failed to initialize Firebase Database"),rh=Wn(th),rh||console.error("Failed to initialize Firebase Analytics"),function(e,t,n){if(!ih)return;const i=Ku(ih,".info/connected"),r="netskrafl"===e?`connection/${t}`:`connection/${n}/${t}`,s=function(e,t){e=se(e),ou("push",e._path),iu("push",t,e._path,!0);const n=vu(e._repo),i=Uu(n),r=Yu(e,i),s=Yu(e,i);let a;return a=Promise.resolve(s),r.then=a.then.bind(a),r.catch=a.then.bind(a,void 0),r}(Ku(ih,r));Qu(i,(e=>{e.val()?(function(e){return e=se(e),new Vu(e._repo,e._path)}(s).remove(),Ju(s,!0)):function(e){ou("remove",e._path),Ju(e,null)}(s)}))}(s,i,r)}function ph(e,t){if(!ih)return void ch.push((()=>ph(e,t)));let n=0;Qu(Ku(ih,e),(e=>{n++;const i=e.val();i&&t(i,1===n)}))}function gh(e){if(!ih)return;const t=Ku(ih,e);var n;Tu((n=t)._repo,n,null)}function fh(e,t){rh&&Kn(rh,e,t)}function mh(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var vh,yh,wh,bh,_h,kh,Ch,Sh,Th,Ih,Eh,Ph,xh,Rh,Lh,Nh,Dh,Ah,Mh,Oh,jh,Fh,zh,Uh,$h,qh,Bh,Vh,Hh,Wh,Gh,Kh,Yh,Jh,Zh,Xh,Qh,ed,td,nd,id,rd,sd,ad,od,ld,cd,ud,hd,dd,pd,gd,fd,md;function vd(){if(yh)return vh;function e(e,t,n,i,r,s){return{tag:e,key:t,attrs:n,children:i,text:r,dom:s,is:void 0,domSize:void 0,state:void 0,events:void 0,instance:void 0}}return yh=1,e.normalize=function(t){return Array.isArray(t)?e("[",void 0,void 0,e.normalizeChildren(t),void 0,void 0):null==t||"boolean"==typeof t?null:"object"==typeof t?t:e("#",void 0,void 0,String(t),void 0,void 0)},e.normalizeChildren=function(t){for(var n=new Array(t.length),i=0,r=0;r<t.length;r++)n[r]=e.normalize(t[r]),null!==n[r]&&null!=n[r].key&&i++;if(0!==i&&i!==t.length)throw new TypeError(n.includes(null)?"In fragments, vnodes must either all have keys or none have keys. You may wish to consider using an explicit keyed empty fragment, m.fragment({key: ...}), instead of a hole.":"In fragments, vnodes must either all have keys or none have keys.");return n},vh=e}function yd(){if(bh)return wh;bh=1;var e=vd();return wh=function(t,n){return null==t||"object"==typeof t&&null==t.tag&&!Array.isArray(t)?1===n.length&&Array.isArray(n[0])&&(n=n[0]):(n=0===n.length&&Array.isArray(t)?t:[t,...n],t=void 0),e("",t&&t.key,t,n)}}function wd(){return kh?_h:(kh=1,_h={}.hasOwnProperty)}function bd(){return Sh?Ch:(Sh=1,Ch={})}function _d(){if(Ih)return Th;Ih=1;var e=bd();return Th=new Map([[e,!0]])}function kd(){if(Ph)return Eh;Ph=1;var e=vd(),t=yd(),n=wd(),i=bd(),r=_d(),s=/(?:(^|#|\.)([^#\.\[\]]+))|(\[(.+?)(?:\s*=\s*("|'|)((?:\\["'\]]|.)*?)\5)?\])/g,a=Object.create(null);function o(e){for(var t,o,l="div",c=[],u={},h=!0;t=s.exec(e);){var d=t[1],p=t[2];if(""===d&&""!==p)l=p;else if("#"===d)u.id=p;else if("."===d)c.push(p);else if("["===t[3][0]){var g=t[6];g&&(g=g.replace(/\\(["'])/g,"$1").replace(/\\\\/g,"\\")),"class"===t[4]?c.push(g):(u[t[4]]=""===g?g:g||!0,("value"===(o=t[4])||"checked"===o||"selectedIndex"===o||"selected"===o)&&(h=!1))}}return c.length>0&&(u.className=c.join(" ")),!function(e){for(var t in e)if(n.call(e,t))return!1;return!0}(u)?r.set(u,h):u=i,a[e]={tag:l,attrs:u,is:u.is}}return Eh=function(r,s,...l){if(null==r||"string"!=typeof r&&"function"!=typeof r&&"function"!=typeof r.view)throw Error("The selector must be either a string or a component.");var c=t(s,l);return"string"==typeof r&&(c.children=e.normalizeChildren(c.children),"["!==r)?function(e,t){t.tag=e.tag;var r=t.attrs;if(null==r)return t.attrs=e.attrs,t.is=e.is,t;if(n.call(r,"class")&&(null!=r.class&&(r.className=r.class),r.class=null),e.attrs!==i){var s=r.className;r=Object.assign({},e.attrs,r),null!=e.attrs.className&&(r.className=null!=s?String(e.attrs.className)+" "+String(s):e.attrs.className)}return"input"===e.tag&&n.call(r,"type")&&(r=Object.assign({type:r.type},r)),t.is=r.is,t.attrs=r,t}(a[r]||o(r),c):(null==c.attrs&&(c.attrs={}),c.tag=r,c)},Eh}function Cd(){if(Ah)return Dh;Ah=1;var e=kd();return e.trust=function(){if(Rh)return xh;Rh=1;var e=vd();return xh=function(t){return null==t&&(t=""),e("<",void 0,void 0,t,void 0,void 0)}}(),e.fragment=function(){if(Nh)return Lh;Nh=1;var e=vd(),t=yd();return Lh=function(n,...i){var r=t(n,i);return null==r.attrs&&(r.attrs={}),r.tag="[",r.children=e.normalizeChildren(r.children),r},Lh}(),Dh=e}function Sd(){return Oh?Mh:(Oh=1,Mh=new WeakMap)}function Td(){if(Fh)return jh;Fh=1;var e=Sd();return jh=function*(t){var n=t.dom,i=t.domSize,r=e.get(n);if(null!=n)do{var s=n.nextSibling;e.get(n)===r&&(yield n,i--),n=s}while(i)},jh}function Id(){if(Uh)return zh;Uh=1;var e=vd(),t=Sd(),n=Td(),i=_d();return zh=function(){var r,s,a={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"};function o(e){return e.ownerDocument}function l(e){return e.attrs&&e.attrs.xmlns||a[e.tag]}function c(e,t){if(e.state!==t)throw new Error("'vnode.state' must not be modified.")}function u(e){var t=e.state;try{return this.apply(t,arguments)}finally{c(e,t)}}function h(e){try{return o(e).activeElement}catch(e){return null}}function d(e,t,n,i,r,s,a){for(var o=n;o<i;o++){var l=t[o];null!=l&&p(e,l,r,a,s)}}function p(t,n,i,r,s){var a=n.tag;if("string"==typeof a)switch(n.state={},null!=n.attrs&&F(n.attrs,n,i),a){case"#":!function(e,t,n){t.dom=o(e).createTextNode(t.children),C(e,t.dom,n)}(t,n,s);break;case"<":f(t,n,r,s);break;case"[":!function(e,t,n,i,r){var s=o(e).createDocumentFragment();if(null!=t.children){var a=t.children;d(s,a,0,a.length,n,null,i)}t.dom=s.firstChild,t.domSize=s.childNodes.length,C(e,s,r)}(t,n,i,r,s);break;default:!function(e,t,n,i,r){var s=t.tag,a=t.attrs,c=t.is;i=l(t)||i;var u=i?c?o(e).createElementNS(i,s,{is:c}):o(e).createElementNS(i,s):c?o(e).createElement(s,{is:c}):o(e).createElement(s);t.dom=u,null!=a&&function(e,t,n){for(var i in t)L(e,i,null,t[i],n)}(t,a,i);if(C(e,u,r),!S(t)&&null!=t.children){var h=t.children;d(u,h,0,h.length,n,null,i),"select"===t.tag&&null!=a&&function(e,t){if("value"in t)if(null===t.value)-1!==e.dom.selectedIndex&&(e.dom.value=null);else{var n=""+t.value;e.dom.value===n&&-1!==e.dom.selectedIndex||(e.dom.value=n)}"selectedIndex"in t&&L(e,"selectedIndex",null,t.selectedIndex,void 0)}(t,a)}}(t,n,i,r,s)}else!function(t,n,i,r,s){(function(t,n){var i;if("function"==typeof t.tag.view){if(t.state=Object.create(t.tag),null!=(i=t.state.view).$$reentrantLock$$)return;i.$$reentrantLock$$=!0}else{if(t.state=void 0,null!=(i=t.tag).$$reentrantLock$$)return;i.$$reentrantLock$$=!0,t.state=null!=t.tag.prototype&&"function"==typeof t.tag.prototype.view?new t.tag(t):t.tag(t)}F(t.state,t,n),null!=t.attrs&&F(t.attrs,t,n);if(t.instance=e.normalize(u.call(t.state.view,t)),t.instance===t)throw Error("A view cannot return the vnode it received as argument");i.$$reentrantLock$$=null})(n,i),null!=n.instance?(p(t,n.instance,i,r,s),n.dom=n.instance.dom,n.domSize=n.instance.domSize):n.domSize=0}(t,n,i,r,s)}var g={caption:"table",thead:"table",tbody:"table",tfoot:"table",tr:"tbody",th:"tr",td:"tr",colgroup:"table",col:"colgroup"};function f(e,t,n,i){var r=t.children.match(/^\s*?<(\w+)/im)||[],s=o(e).createElement(g[r[1]]||"div");"http://www.w3.org/2000/svg"===n?(s.innerHTML='<svg xmlns="http://www.w3.org/2000/svg">'+t.children+"</svg>",s=s.firstChild):s.innerHTML=t.children,t.dom=s.firstChild,t.domSize=s.childNodes.length;for(var a,l=o(e).createDocumentFragment();a=s.firstChild;)l.appendChild(a);C(e,l,i)}function m(e,t,n,i,r,s){if(t!==n&&(null!=t||null!=n))if(null==t||0===t.length)d(e,n,0,n.length,i,r,s);else if(null==n||0===n.length)T(e,t,0,t.length);else{var a=null!=t[0]&&null!=t[0].key,o=null!=n[0]&&null!=n[0].key,l=0,c=0;if(!a)for(;c<t.length&&null==t[c];)c++;if(!o)for(;l<n.length&&null==n[l];)l++;if(a!==o)T(e,t,c,t.length),d(e,n,l,n.length,i,r,s);else if(o){for(var u,h,g,f,m,w=t.length-1,C=n.length-1;w>=c&&C>=l&&(g=t[w],f=n[C],g.key===f.key);)g!==f&&v(e,g,f,i,r,s),null!=f.dom&&(r=f.dom),w--,C--;for(;w>=c&&C>=l&&(u=t[c],h=n[l],u.key===h.key);)c++,l++,u!==h&&v(e,u,h,i,_(t,c,r),s);for(;w>=c&&C>=l&&l!==C&&u.key===f.key&&g.key===h.key;)k(e,g,m=_(t,c,r)),g!==h&&v(e,g,h,i,m,s),++l<=--C&&k(e,u,r),u!==f&&v(e,u,f,i,r,s),null!=f.dom&&(r=f.dom),c++,g=t[--w],f=n[C],u=t[c],h=n[l];for(;w>=c&&C>=l&&g.key===f.key;)g!==f&&v(e,g,f,i,r,s),null!=f.dom&&(r=f.dom),C--,g=t[--w],f=n[C];if(l>C)T(e,t,c,w+1);else if(c>w)d(e,n,l,C+1,i,r,s);else{var S,I,E=r,x=C-l+1,R=new Array(x),L=0,N=0,D=2147483647,A=0;for(N=0;N<x;N++)R[N]=-1;for(N=C;N>=l;N--){null==S&&(S=y(t,c,w+1));var M=S[(f=n[N]).key];null!=M&&(D=M<D?M:-1,R[N-l]=M,g=t[M],t[M]=null,g!==f&&v(e,g,f,i,r,s),null!=f.dom&&(r=f.dom),A++)}if(r=E,A!==w-c+1&&T(e,t,c,w+1),0===A)d(e,n,l,C+1,i,r,s);else if(-1===D)for(I=function(e){var t=[0],n=0,i=0,r=0,s=b.length=e.length;for(r=0;r<s;r++)b[r]=e[r];for(r=0;r<s;++r)if(-1!==e[r]){var a=t[t.length-1];if(e[a]<e[r])b[r]=a,t.push(r);else{for(n=0,i=t.length-1;n<i;){var o=(n>>>1)+(i>>>1)+(n&i&1);e[t[o]]<e[r]?n=o+1:i=o}e[r]<e[t[n]]&&(n>0&&(b[r]=t[n-1]),t[n]=r)}}n=t.length,i=t[n-1];for(;n-- >0;)t[n]=i,i=b[i];return b.length=0,t}(R),L=I.length-1,N=C;N>=l;N--)h=n[N],-1===R[N-l]?p(e,h,i,s,r):I[L]===N-l?L--:k(e,h,r),null!=h.dom&&(r=n[N].dom);else for(N=C;N>=l;N--)h=n[N],-1===R[N-l]&&p(e,h,i,s,r),null!=h.dom&&(r=n[N].dom)}}else{var O=t.length<n.length?t.length:n.length;for(l=l<c?l:c;l<O;l++)(u=t[l])===(h=n[l])||null==u&&null==h||(null==u?p(e,h,i,s,_(t,l+1,r)):null==h?P(e,u):v(e,u,h,i,_(t,l+1,r),s));t.length>O&&T(e,t,l,t.length),n.length>O&&d(e,n,l,n.length,i,r,s)}}}function v(t,n,r,s,a,o){var c=n.tag;if(c===r.tag&&n.is===r.is){if(r.state=n.state,r.events=n.events,function(e,t){do{var n;if(null!=e.attrs&&"function"==typeof e.attrs.onbeforeupdate)if(void 0!==(n=u.call(e.attrs.onbeforeupdate,e,t))&&!n)break;if("string"!=typeof e.tag&&"function"==typeof e.state.onbeforeupdate)if(void 0!==(n=u.call(e.state.onbeforeupdate,e,t))&&!n)break;return!1}while(0);return e.dom=t.dom,e.domSize=t.domSize,e.instance=t.instance,e.attrs=t.attrs,e.children=t.children,e.text=t.text,!0}(r,n))return;if("string"==typeof c)switch(null!=r.attrs&&z(r.attrs,r,s),c){case"#":!function(e,t){e.children.toString()!==t.children.toString()&&(e.dom.nodeValue=t.children);t.dom=e.dom}(n,r);break;case"<":!function(e,t,n,i,r){t.children!==n.children?(x(e,t),f(e,n,i,r)):(n.dom=t.dom,n.domSize=t.domSize)}(t,n,r,o,a);break;case"[":!function(e,t,n,i,r,s){m(e,t.children,n.children,i,r,s);var a=0,o=n.children;if(n.dom=null,null!=o)for(var l=0;l<o.length;l++){var c=o[l];null!=c&&null!=c.dom&&(null==n.dom&&(n.dom=c.dom),a+=c.domSize||1)}n.domSize=a}(t,n,r,s,a,o);break;default:!function(e,t,n,r){var s=t.dom=e.dom;r=l(t)||r,(e.attrs!=t.attrs||null!=t.attrs&&!i.get(t.attrs))&&function(e,t,n,r){var s;if(null!=t)for(var a in t!==n||i.has(n)||console.warn("Don't reuse attrs object, use new object for every redraw, this will throw in next major"),t)null==(s=t[a])||null!=n&&null!=n[a]||N(e,a,s,r);if(null!=n)for(var a in n)L(e,a,t&&t[a],n[a],r)}(t,e.attrs,t.attrs,r);S(t)||m(s,e.children,t.children,n,null,r)}(n,r,s,o)}else!function(t,n,i,r,s,a){if(i.instance=e.normalize(u.call(i.state.view,i)),i.instance===i)throw Error("A view cannot return the vnode it received as argument");z(i.state,i,r),null!=i.attrs&&z(i.attrs,i,r);null!=i.instance?(null==n.instance?p(t,i.instance,r,a,s):v(t,n.instance,i.instance,r,s,a),i.dom=i.instance.dom,i.domSize=i.instance.domSize):(null!=n.instance&&P(t,n.instance),i.domSize=0)}(t,n,r,s,a,o)}else P(t,n),p(t,r,s,o,a)}function y(e,t,n){for(var i=Object.create(null);t<n;t++){var r=e[t];if(null!=r){var s=r.key;null!=s&&(i[s]=t)}}return i}var w,b=[];function _(e,t,n){for(;t<e.length;t++)if(null!=e[t]&&null!=e[t].dom)return e[t].dom;return n}function k(e,t,i){if(null!=t.dom){var r;if(null==t.domSize||1===t.domSize)r=t.dom;else for(var s of(r=o(e).createDocumentFragment(),n(t)))r.appendChild(s);C(e,r,i)}}function C(e,t,n){null!=n?e.insertBefore(t,n):e.appendChild(t)}function S(e){if(null==e.attrs||null==e.attrs.contenteditable&&null==e.attrs.contentEditable)return!1;var t=e.children;if(null!=t&&1===t.length&&"<"===t[0].tag){var n=t[0].children;e.dom.innerHTML!==n&&(e.dom.innerHTML=n)}else if(null!=t&&0!==t.length)throw new Error("Child node of a contenteditable must be trusted.");return!0}function T(e,t,n,i){for(var r=n;r<i;r++){var s=t[r];null!=s&&P(e,s)}}function I(e,i,r,a){var o=i.state,l=u.call(r.onbeforeremove,i);if(null!=l){var h=s;for(var d of n(i))t.set(d,h);a.v++,Promise.resolve(l).finally((function(){c(i,o),E(e,i,a)}))}}function E(e,t,n){0==--n.v&&(R(t),x(e,t))}function P(e,t){var n={v:1};"string"!=typeof t.tag&&"function"==typeof t.state.onbeforeremove&&I(e,t,t.state,n),t.attrs&&"function"==typeof t.attrs.onbeforeremove&&I(e,t,t.attrs,n),E(e,t,n)}function x(e,t){if(null!=t.dom)if(null==t.domSize||1===t.domSize)e.removeChild(t.dom);else for(var i of n(t))e.removeChild(i)}function R(e){if("string"!=typeof e.tag&&"function"==typeof e.state.onremove&&u.call(e.state.onremove,e),e.attrs&&"function"==typeof e.attrs.onremove&&u.call(e.attrs.onremove,e),"string"!=typeof e.tag)null!=e.instance&&R(e.instance);else{null!=e.events&&(e.events._=null);var t=e.children;if(Array.isArray(t))for(var n=0;n<t.length;n++){var i=t[n];null!=i&&R(i)}}}function L(e,t,n,i,r){if("key"!==t&&null!=i&&!D(t)&&(n!==i||function(e,t){return"value"===t||"checked"===t||"selectedIndex"===t||"selected"===t&&(e.dom===h(e.dom)||"option"===e.tag&&e.dom.parentNode===h(e.dom))}(e,t)||"object"==typeof i)){if("o"===t[0]&&"n"===t[1])return j(e,t,i);if("xlink:"===t.slice(0,6))e.dom.setAttributeNS("http://www.w3.org/1999/xlink",t.slice(6),i);else if("style"===t)M(e.dom,n,i);else if(A(e,t,r)){if("value"===t){if(("input"===e.tag||"textarea"===e.tag)&&e.dom.value===""+i)return;if("select"===e.tag&&null!==n&&e.dom.value===""+i)return;if("option"===e.tag&&null!==n&&e.dom.value===""+i)return;if("input"===e.tag&&"file"===e.attrs.type&&""+i!="")return void console.error("`value` is read-only on file inputs!")}"input"===e.tag&&"type"===t?e.dom.setAttribute(t,i):e.dom[t]=i}else"boolean"==typeof i?i?e.dom.setAttribute(t,""):e.dom.removeAttribute(t):e.dom.setAttribute("className"===t?"class":t,i)}}function N(e,t,n,i){if("key"!==t&&null!=n&&!D(t))if("o"===t[0]&&"n"===t[1])j(e,t,void 0);else if("style"===t)M(e.dom,n,null);else if(!A(e,t,i)||"className"===t||"title"===t||"value"===t&&("option"===e.tag||"select"===e.tag&&-1===e.dom.selectedIndex&&e.dom===h(e.dom))||"input"===e.tag&&"type"===t){var r=t.indexOf(":");-1!==r&&(t=t.slice(r+1)),!1!==n&&e.dom.removeAttribute("className"===t?"class":t)}else e.dom[t]=null}function D(e){return"oninit"===e||"oncreate"===e||"onupdate"===e||"onremove"===e||"onbeforeremove"===e||"onbeforeupdate"===e}function A(e,t,n){return void 0===n&&(e.tag.indexOf("-")>-1||e.is||"href"!==t&&"list"!==t&&"form"!==t&&"width"!==t&&"height"!==t)&&t in e.dom}function M(e,t,n){if(t===n);else if(null==n)e.style="";else if("object"!=typeof n)e.style=n;else if(null==t||"object"!=typeof t)for(var i in e.style="",n){null!=(r=n[i])&&(i.includes("-")?e.style.setProperty(i,String(r)):e.style[i]=String(r))}else{for(var i in t)null!=t[i]&&null==n[i]&&(i.includes("-")?e.style.removeProperty(i):e.style[i]="");for(var i in n){var r;null!=(r=n[i])&&(r=String(r))!==String(t[i])&&(i.includes("-")?e.style.setProperty(i,r):e.style[i]=r)}}}function O(){this._=r}function j(e,t,n){if(null!=e.events){if(e.events._=r,e.events[t]===n)return;null==n||"function"!=typeof n&&"object"!=typeof n?(null!=e.events[t]&&e.dom.removeEventListener(t.slice(2),e.events,!1),e.events[t]=void 0):(null==e.events[t]&&e.dom.addEventListener(t.slice(2),e.events,!1),e.events[t]=n)}else null==n||"function"!=typeof n&&"object"!=typeof n||(e.events=new O,e.dom.addEventListener(t.slice(2),e.events,!1),e.events[t]=n)}function F(e,t,n){"function"==typeof e.oninit&&u.call(e.oninit,t),"function"==typeof e.oncreate&&n.push(u.bind(e.oncreate,t))}function z(e,t,n){"function"==typeof e.onupdate&&n.push(u.bind(e.onupdate,t))}return O.prototype=Object.create(null),O.prototype.handleEvent=function(e){var t,n=this["on"+e.type];"function"==typeof n?t=n.call(e.currentTarget,e):"function"==typeof n.handleEvent&&n.handleEvent(e);var i=this;null!=i._&&(!1!==e.redraw&&(0,i._)(),null!=t&&"function"==typeof t.then&&Promise.resolve(t).then((function(){null!=i._&&!1!==e.redraw&&(0,i._)()}))),!1===t&&(e.preventDefault(),e.stopPropagation())},function(t,n,i){if(!t)throw new TypeError("DOM element being rendered to does not exist.");if(null!=w&&t.contains(w))throw new TypeError("Node is currently being rendered to and thus is locked.");var a=r,o=w,l=[],c=h(t),u=t.namespaceURI;w=t,r="function"==typeof i?i:void 0,s={};try{null==t.vnodes&&(t.textContent=""),n=e.normalizeChildren(Array.isArray(n)?n:[n]),m(t,t.vnodes,n,l,null,"http://www.w3.org/1999/xhtml"===u?void 0:u),t.vnodes=n,null!=c&&h(t)!==c&&"function"==typeof c.focus&&c.focus();for(var d=0;d<l.length;d++)l[d]()}finally{r=a,w=o}}},zh}function Ed(){return qh?$h:(qh=1,$h=Id()())}function Pd(){if(Wh)return Hh;Wh=1;var e=Ed();return Hh=function(){if(Vh)return Bh;Vh=1;var e=vd();return Bh=function(t,n,i){var r=[],s=!1,a=-1;function o(){for(a=0;a<r.length;a+=2)try{t(r[a],e(r[a+1]),l)}catch(e){i.error(e)}a=-1}function l(){s||(s=!0,n((function(){s=!1,o()})))}return l.sync=o,{mount:function(n,i){if(null!=i&&null==i.view&&"function"!=typeof i)throw new TypeError("m.mount expects a component, not a vnode.");var s=r.indexOf(n);s>=0&&(r.splice(s,2),s<=a&&(a-=2),t(n,[])),null!=i&&(r.push(n,i),t(n,e(i),l))},redraw:l}},Bh}()(e,"undefined"!=typeof requestAnimationFrame?requestAnimationFrame:null,"undefined"!=typeof console?console:null),Hh}function xd(){return Kh?Gh:(Kh=1,Gh=function(e){if("[object Object]"!==Object.prototype.toString.call(e))return"";var t=[];for(var n in e)i(n,e[n]);return t.join("&");function i(e,n){if(Array.isArray(n))for(var r=0;r<n.length;r++)i(e+"["+r+"]",n[r]);else if("[object Object]"===Object.prototype.toString.call(n))for(var r in n)i(e+"["+r+"]",n[r]);else t.push(encodeURIComponent(e)+(null!=n&&""!==n?"="+encodeURIComponent(n):""))}})}function Rd(){if(Jh)return Yh;Jh=1;var e=xd();return Yh=function(t,n){if(/:([^\/\.-]+)(\.{3})?:/.test(t))throw new SyntaxError("Template parameter names must be separated by either a '/', '-', or '.'.");if(null==n)return t;var i=t.indexOf("?"),r=t.indexOf("#"),s=r<0?t.length:r,a=i<0?s:i,o=t.slice(0,a),l={};Object.assign(l,n);var c=o.replace(/:([^\/\.-]+)(\.{3})?/g,(function(e,t,i){return delete l[t],null==n[t]?e:i?n[t]:encodeURIComponent(String(n[t]))})),u=c.indexOf("?"),h=c.indexOf("#"),d=h<0?c.length:h,p=u<0?d:u,g=c.slice(0,p);i>=0&&(g+=t.slice(i,s)),u>=0&&(g+=(i<0?"?":"&")+c.slice(u,d));var f=e(l);return f&&(g+=(i<0&&u<0?"?":"&")+f),r>=0&&(g+=t.slice(r)),h>=0&&(g+=(r<0?"":"&")+c.slice(h)),g},Yh}function Ld(){if(Xh)return Zh;Xh=1;var e=Rd(),t=wd();return Zh=function(n,i){function r(e){return new Promise(e)}function s(e,n){for(var i in e.headers)if(t.call(e.headers,i)&&i.toLowerCase()===n)return!0;return!1}return r.prototype=Promise.prototype,r.__proto__=Promise,{request:function(a,o){"string"!=typeof a?(o=a,a=a.url):null==o&&(o={});var l=function(i,r){return new Promise((function(a,o){i=e(i,r.params);var l,c=null!=r.method?r.method.toUpperCase():"GET",u=r.body,h=(null==r.serialize||r.serialize===JSON.serialize)&&!(u instanceof n.FormData||u instanceof n.URLSearchParams),d=r.responseType||("function"==typeof r.extract?"":"json"),p=new n.XMLHttpRequest,g=!1,f=!1,m=p,v=p.abort;for(var y in p.abort=function(){g=!0,v.call(this)},p.open(c,i,!1!==r.async,"string"==typeof r.user?r.user:void 0,"string"==typeof r.password?r.password:void 0),h&&null!=u&&!s(r,"content-type")&&p.setRequestHeader("Content-Type","application/json; charset=utf-8"),"function"==typeof r.deserialize||s(r,"accept")||p.setRequestHeader("Accept","application/json, text/*"),r.withCredentials&&(p.withCredentials=r.withCredentials),r.timeout&&(p.timeout=r.timeout),p.responseType=d,r.headers)t.call(r.headers,y)&&p.setRequestHeader(y,r.headers[y]);p.onreadystatechange=function(e){if(!g&&4===e.target.readyState)try{var t,n=e.target.status>=200&&e.target.status<300||304===e.target.status||/^file:\/\//i.test(i),s=e.target.response;if("json"===d){if(!e.target.responseType&&"function"!=typeof r.extract)try{s=JSON.parse(e.target.responseText)}catch(e){s=null}}else d&&"text"!==d||null==s&&(s=e.target.responseText);if("function"==typeof r.extract?(s=r.extract(e.target,r),n=!0):"function"==typeof r.deserialize&&(s=r.deserialize(s)),n){if("function"==typeof r.type)if(Array.isArray(s))for(var l=0;l<s.length;l++)s[l]=new r.type(s[l]);else s=new r.type(s);a(s)}else{var c=function(){try{t=e.target.responseText}catch(e){t=s}var n=new Error(t);n.code=e.target.status,n.response=s,o(n)};0===p.status?setTimeout((function(){f||c()})):c()}}catch(e){o(e)}},p.ontimeout=function(e){f=!0;var t=new Error("Request timed out");t.code=e.target.status,o(t)},"function"==typeof r.config&&(p=r.config(p,r,i)||p)!==m&&(l=p.abort,p.abort=function(){g=!0,l.call(this)}),null==u?p.send():"function"==typeof r.serialize?p.send(r.serialize(u)):u instanceof n.FormData||u instanceof n.URLSearchParams?p.send(u):p.send(JSON.stringify(u))}))}(a,o);if(!0===o.background)return l;var c=0;function u(){0==--c&&"function"==typeof i&&i()}return function e(t){var n=t.then;return t.constructor=r,t.then=function(){c++;var i=n.apply(t,arguments);return i.then(u,(function(e){if(u(),0===c)throw e})),e(i)},t}(l)}}},Zh}function Nd(){if(nd)return td;nd=1;var e=/%(?:[0-7]|(?!c[01]|e0%[89]|ed%[ab]|f0%8|f4%[9ab])(?:c|d|(?:e|f[0-4]%[89ab])[\da-f]%[89ab])[\da-f]%[89ab])[\da-f]/gi;return td=function(t){return String(t).replace(e,decodeURIComponent)}}function Dd(){if(rd)return id;rd=1;var e=Nd();return id=function(t){if(""===t||null==t)return{};"?"===t.charAt(0)&&(t=t.slice(1));for(var n=t.split("&"),i={},r={},s=0;s<n.length;s++){var a=n[s].split("="),o=e(a[0]),l=2===a.length?e(a[1]):"";"true"===l?l=!0:"false"===l&&(l=!1);var c=o.split(/\]\[?|\[/),u=r;o.indexOf("[")>-1&&c.pop();for(var h=0;h<c.length;h++){var d=c[h],p=c[h+1],g=""==p||!isNaN(parseInt(p,10));if(""===d)null==i[o=c.slice(0,h).join()]&&(i[o]=Array.isArray(u)?u.length:0),d=i[o]++;else if("__proto__"===d)break;if(h===c.length-1)u[d]=l;else{var f=Object.getOwnPropertyDescriptor(u,d);null!=f&&(f=f.value),null==f&&(u[d]=f=g?[]:{}),u=f}}}return r}}function Ad(){if(ad)return sd;ad=1;var e=Dd();return sd=function(t){var n=t.indexOf("?"),i=t.indexOf("#"),r=i<0?t.length:i,s=n<0?r:n,a=t.slice(0,s).replace(/\/{2,}/g,"/");return a?"/"!==a[0]&&(a="/"+a):a="/",{path:a,params:n<0?{}:e(t.slice(n+1,r))}}}function Md(){if(ld)return od;ld=1;var e=Ad();return od=function(t){var n=e(t),i=Object.keys(n.params),r=[],s=new RegExp("^"+n.path.replace(/:([^\/.-]+)(\.{3}|\.(?!\.)|-)?|[\\^$*+.()|\[\]{}]/g,(function(e,t,n){return null==t?"\\"+e:(r.push({k:t,r:"..."===n}),"..."===n?"(.*)":"."===n?"([^/]+)\\.":"([^/]+)"+(n||""))}))+"\\/?$");return function(e){for(var t=0;t<i.length;t++)if(n.params[i[t]]!==e.params[i[t]])return!1;if(!r.length)return s.test(e.path);var a=s.exec(e.path);if(null==a)return!1;for(t=0;t<r.length;t++)e.params[r[t].k]=r[t].r?a[t+1]:decodeURIComponent(a[t+1]);return!0}},od}function Od(){if(ud)return cd;ud=1;var e=wd(),t=/^(?:key|oninit|oncreate|onbeforeupdate|onupdate|onbeforeremove|onremove)$/;return cd=function(n,i){var r={};if(null!=i)for(var s in n)e.call(n,s)&&!t.test(s)&&i.indexOf(s)<0&&(r[s]=n[s]);else for(var s in n)e.call(n,s)&&!t.test(s)&&(r[s]=n[s]);return r}}function jd(){if(gd)return pd;gd=1;var e=Pd();return pd=function(){if(dd)return hd;dd=1;var e=vd(),t=kd(),n=Nd(),i=Rd(),r=Ad(),s=Md(),a=Od();return hd=function(o,l){var c,u,h,d,p,g,f,m,v=Promise.resolve(),y=!1,w=!1,b=!1,_={onremove:function(){w=b=!1,o.removeEventListener("popstate",S,!1)},view:function(){var t=e(p,g.key,g);return d?d.render(t):[t]}},k=T.SKIP={};function C(){y=!1;var e=o.location.hash;"#"!==T.prefix[0]&&(e=o.location.search+e,"?"!==T.prefix[0]&&"/"!==(e=o.location.pathname+e)[0]&&(e="/"+e));var t=n(e).slice(T.prefix.length),i=r(t);function s(e){console.error(e),T.set(h,null,{replace:!0})}Object.assign(i.params,o.history.state),function e(n){for(;n<u.length;n++)if(u[n].check(i)){var r=u[n].component,a=u[n].route,o=r,y=m=function(s){if(y===m){if(s===k)return e(n+1);p=null==s||"function"!=typeof s.view&&"function"!=typeof s?"div":s,g=i.params,f=t,m=null,d=r.render?r:null,b?l.redraw():(b=!0,l.mount(c,_))}};return void(r.view||"function"==typeof r?(r={},y(o)):r.onmatch?v.then((function(){return r.onmatch(i.params,t,a)})).then(y,t===h?null:s):y())}if(t===h)throw new Error("Could not resolve default route "+h+".");T.set(h,null,{replace:!0})}(0)}function S(){y||(y=!0,setTimeout(C))}function T(e,t,n){if(!e)throw new TypeError("DOM element being rendered to does not exist.");if(u=Object.keys(n).map((function(e){if("/"!==e[0])throw new SyntaxError("Routes must start with a '/'.");if(/:([^\/\.-]+)(\.{3})?:/.test(e))throw new SyntaxError("Route parameter names must be separated with either '/', '.', or '-'.");return{route:e,component:n[e],check:s(e)}})),h=t,null!=t){var i=r(t);if(!u.some((function(e){return e.check(i)})))throw new ReferenceError("Default route doesn't match any known routes.")}c=e,o.addEventListener("popstate",S,!1),w=!0,C()}return T.set=function(e,t,n){if(null!=m&&((n=n||{}).replace=!0),m=null,e=i(e,t),w){S();var r=n?n.state:null,s=n?n.title:null;n&&n.replace?o.history.replaceState(r,s,T.prefix+e):o.history.pushState(r,s,T.prefix+e)}else o.location.href=T.prefix+e},T.get=function(){return f},T.prefix="#!",T.Link={view:function(e){var n,r,s,o=t(e.attrs.selector||"a",a(e.attrs,["options","params","selector","onclick"]),e.children);return(o.attrs.disabled=Boolean(o.attrs.disabled))?(o.attrs.href=null,o.attrs["aria-disabled"]="true"):(n=e.attrs.options,r=e.attrs.onclick,s=i(o.attrs.href,e.attrs.params),o.attrs.href=T.prefix+s,o.attrs.onclick=function(e){var t;"function"==typeof r?t=r.call(e.currentTarget,e):null==r||"object"!=typeof r||"function"==typeof r.handleEvent&&r.handleEvent(e),!1===t||e.defaultPrevented||0!==e.button&&0!==e.which&&1!==e.which||e.currentTarget.target&&"_self"!==e.currentTarget.target||e.ctrlKey||e.metaKey||e.shiftKey||e.altKey||(e.preventDefault(),e.redraw=!1,T.set(s,null,n))}),o}},T.param=function(e){return g&&null!=e?g[e]:g},T},hd}()("undefined"!=typeof window?window:null,e),pd}var Fd=function(){if(md)return fd;md=1;var e=Cd(),t=Pd(),n=function(){if(ed)return Qh;ed=1;var e=Pd();return Qh=Ld()("undefined"!=typeof window?window:null,e.redraw)}(),i=jd(),r=function(){return e.apply(this,arguments)};return r.m=e,r.trust=e.trust,r.fragment=e.fragment,r.Fragment="[",r.mount=t.mount,r.route=i,r.render=Ed(),r.redraw=t.redraw,r.request=n.request,r.parseQueryString=Dd(),r.buildQueryString=xd(),r.parsePathname=Ad(),r.buildPathname=Rd(),r.vnode=vd(),r.censor=Od(),r.domFor=Td(),fd=r}(),zd=mh(Fd);const Ud=(e,t)=>`${e.serverUrl}${t}`,$d=async e=>{const{userEmail:t,userNick:n,userFullname:i,token:r}=e;return((e,t)=>zd.request({withCredentials:!1,...t,url:Ud(e,t.url)}))(e,{method:"POST",url:"/login_malstadur",body:{email:t,nickname:n,fullname:i,token:r,bearer_auth:!0}})},qd=12e4;let Bd=null,Vd=null,Hd=0,Wd=0,Gd=!1,Kd=0;class Yd extends Error{constructor(){super("Authentication required"),this.name="AuthenticationError"}}class Jd extends Error{constructor(e){super(e),this.name="LoginThrottledError"}}const Zd=e=>new Promise((t=>setTimeout(t,e))),Xd=e=>{const t=500*2**(e-1);return Math.min(t,5e3)},Qd=()=>{Hd=0,Gd=!1,Kd=0},ep=()=>{Gd=!0,Kd=Date.now()+qd,Hd=0,console.error(`Circuit breaker opened. Login attempts blocked until ${new Date(Kd).toLocaleTimeString()}`)},tp=e=>Bd||(Bd=np(e).finally((()=>{Bd=null})),Bd),np=async e=>{if(Gd&&Date.now()>=Kd&&Qd(),Gd){const e=Math.ceil((Kd-Date.now())/6e4);throw new Jd(`Too many failed login attempts. Please wait ${e} minute(s) before trying again.`)}if(Date.now()-Wd<500&&Hd>0)throw new Jd("Please wait a moment before trying again.");let t=!0;for(;t&&Hd<3;){if(t=!1,Hd++,Wd=Date.now(),Hd>=2){const e=Xd(Hd-1);await Zd(e)}try{const n=await $d(e);if("expired"===n.status){if(e.tokenExpired)try{const n=await e.tokenExpired();"string"==typeof n&&n&&(e.token=n),Hd=0,t=!0;continue}catch(e){throw Hd=0,l(),new Error(`Failed to refresh authentication token: ${e instanceof Error?e.message:String(e)}`)}throw Hd=0,l(),new Error("Authentication token has expired. Please log in again.")}if("success"!==n.status)throw l(),new Error(`Authentication failed: ${n.message||n.status}`);e.netskraflUserId=n.user_id||e.netskraflUserId,e.account=n.account||e.netskraflUserId,e.userNick=n.nickname||e.userNick,e.firebaseApiKey=n.firebase_api_key||e.firebaseApiKey,e.beginner=n.prefs?.beginner??!0,e.fairPlay=n.prefs?.fairplay??!1,e.ready=n.prefs?.ready??!0,e.readyTimed=n.prefs?.ready_timed??!0,e.audio=n.prefs?.audio??!1,e.fanfare=n.prefs?.fanfare??!1,e.hasPaid=n.prefs?.haspaid??!1;const i=n.token||"";return e.netskraflToken=i,Vd={token:i,userEmail:e.userEmail},o({userEmail:e.userEmail,netskraflUserId:e.netskraflUserId,userNick:e.userNick,firebaseApiKey:e.firebaseApiKey,netskraflToken:e.netskraflToken,beginner:e.beginner,fairPlay:e.fairPlay,ready:e.ready,readyTimed:e.readyTimed,audio:e.audio,fanfare:e.fanfare}),zd.redraw(),await dh(e,n.firebase_token),void Qd()}catch(e){if(Hd>=3)throw ep(),new Error(`Login failed after 3 attempts. Please wait ${Math.ceil(2)} minutes before trying again.`);if(!t)throw e}}if(Hd>=3)throw ep(),new Error("Maximum login attempts exceeded. Please try again later.")},ip=async(e,t,n=0)=>{if(Bd)try{await Bd}catch(e){}Vd&&Vd.userEmail===e.userEmail&&e.netskraflToken!==Vd.token?e.netskraflToken=Vd.token:!e.netskraflToken||Vd&&Vd.userEmail===e.userEmail||(Vd={token:e.netskraflToken,userEmail:e.userEmail}),n||function(e){if(nh||(th||hh(e),th&&(nh=Ms(th))),!nh||null===nh.currentUser)return!1;if(!ih&&th){if(ih=lh(th),!ih)return console.error("Failed to initialize Firebase Database"),!1;uh(e),rh||(rh=Wn(th),rh||console.error("Failed to initialize Firebase Analytics"))}return!0}(e)&&e.netskraflToken||await tp(e);try{let n=!0,{headers:i}=t;const r=e.netskraflToken;return r&&"*"!==r&&(i={...i,Authorization:`Bearer ${r}`},n=!1),await zd.request({withCredentials:n,...t,url:Ud(e,t.url),headers:i,extract:e=>{if(401===e.status)throw new Yd;if(!e.responseText)return null;try{return JSON.parse(e.responseText)}catch(t){return e.responseText}}})}catch(i){if(i instanceof Yd&&!n)return await tp(e),ip(e,t,n+1);throw i}},rp=(e,t)=>ip(e,t),sp=(e,t)=>{const n=`${e.movesUrl}${t.url}`,i={"Content-Type":"application/json; charset=UTF-8",Authorization:`Bearer ${e.movesAccessKey}`,...t?.headers};return zd.request({withCredentials:!1,method:"POST",...t,url:n,headers:i})},ap="ABCDEFGHIJKLMNO",op=15,lp=1.5,cp="2025-11-01",up={1:"Enginn stafur lagður niður",2:"Fyrsta orð verður að liggja um byrjunarreitinn",3:"Orð verður að vera samfellt á borðinu",4:"Orð verður að tengjast orði sem fyrir er",5:"Reitur þegar upptekinn",6:"Ekki má vera eyða í orði",7:"word_not_found",8:"word_not_found",9:"Of margir stafir lagðir niður",10:"Stafur er ekki í rekkanum",11:"Of fáir stafir eftir, skipting ekki leyfð",12:"Of mörgum stöfum skipt",13:"Leik vantar á borðið - notið F5/Refresh",14:"Notandi ekki innskráður - notið F5/Refresh",15:"Rangur eða óþekktur notandi",16:"Viðureign finnst ekki",17:"Viðureign er ekki utan tímamarka",18:"Netþjónn gat ekki tekið við leiknum - reyndu aftur",19:"Véfenging er ekki möguleg í þessari viðureign",20:"Síðasti leikur er ekki véfengjanlegur",21:"Aðeins véfenging eða pass leyfileg",server:"Netþjónn gat ekki tekið við leiknum - reyndu aftur"};class hp{constructor(e,t){this.sounds=new Map,this.initialized=!1;const n=Ud(e,"/static"),i={"your-turn":`${n}/your-turn.mp3`,"you-win":`${n}/you-win.mp3`,"new-msg":`${n}/new-msg.mp3`};this.soundUrls={...i,...t||{}}}initialize(){this.initialized||(Object.entries(this.soundUrls).forEach((([e,t])=>{const n=new Audio(t);n.preload="auto",n.addEventListener("error",(()=>{console.warn(`Failed to load audio: ${e} from ${t}`)})),this.sounds.set(e,n)})),this.initialized=!0)}play(e){this.initialized||this.initialize();const t=this.sounds.get(e);t?(t.currentTime=0,t.play().catch((t=>{"NotAllowedError"!==t.name&&console.warn(`Failed to play audio ${e}:`,t)}))):console.warn(`Audio not found: ${e}`)}updateSoundUrl(e,t){if(this.soundUrls[e]=t,this.initialized){const n=new Audio(t);n.preload="auto",n.addEventListener("error",(()=>{console.warn(`Failed to load audio: ${e} from ${t}`)})),this.sounds.set(e,n)}}dispose(){this.sounds.forEach((e=>{e.pause(),e.src=""})),this.sounds.clear(),this.initialized=!1}}let dp=null;function pp(e,t){return dp||(dp=new hp(e,t)),dp}var gp={Leikir:{en:"Moves",nb:"Trekk",nn:"Trekk",pl:"Ruchy",ga:"Bogann"},submit_move:{is:"Leika",en:"Move",nb:"Trekk",nn:"Trekk",pl:"Wykonaj ruch",ga:"Bog"},"Viðureignir":{en:"Games",nb:"Spill",nn:"Spel",pl:"Gry",ga:"Cluichí"},"Borðið":{en:"Board",nb:"Brett",nn:"Brett",pl:"Plansza",ga:"Bord"},"Tveggja stafa orð":{en:"Two letter words",nb:"Tobokstavsord",nn:"Tobokstavsord",pl:"Dwuliterowe słowa",ga:"Focail dhá litir"},Spjall:{en:"Chat",nb:"Chat",nn:"Chat",pl:"Czat",ga:"Comhrá"},"Þessi vefslóð er ekki rétt":{en:"Unknown URL",nb:"Ukjent URL",nn:"Ukjend URL",pl:"Nieznany URL",ga:"URL Anaithnid"},player_info:{is:"Upplýsingar um leikmann",en:"Player information",nb:"Spillerinformasjon",nn:"Spelarinformasjon",pl:"Informacje o graczu",ga:"Eolas Imreoir"},"Einkenni:":{en:"Nickname:",nb:"Kallenavn:",nn:"Kallenamn:",pl:"Pseudonim:",ga:"Leasainm:"},"Verður að vera útfyllt":{en:"Required field",nb:"Obligatorisk felt",nn:"Obligatorisk felt",pl:"Pole wymagane",ga:"Réimse Riachtanach"},"Fullt nafn:":{en:"Full name:",nb:"Fullt navn:",nn:"Fullt namn:",pl:"Pełne imię i nazwisko:",ga:"Ainm Iomlán:"},"Valfrjálst - sýnt í notendalistum Netskrafls":{en:"Optional - shown in user lists",nb:"Valgfritt - vist i brukerlister",nn:"Valfritt - vist i brukarlister",pl:"Opcjonalne - pokazane na listach użytkowników",ga:"Roghnach - le feiceáil i liostaí úsáideoirí"},"Tölvupóstfang:":{en:"E-mail:",nb:"E-post:",nn:"E-post:",pl:"E-mail:",ga:"Ríomhphost:"},explain_email:{is:"Ef póstfang er gefið upp mun Netskrafl geta sent tölvupóst þegar þú átt leik",en:"If given, Explo can send e-mail to the address when it's your turn in a game",nb:"Hvis oppgitt, kan Explo sende e-post til adressen når det er din tur i et spill",nn:"Viss oppgjeve, kan Explo sende e-post til adressa når det er din tur i eit spel",pl:"Jeśli podano, Explo może wysłać e-mail na ten adres, gdy nadejdzie Twoja kolej w grze",ga:"Más tugadh é, is féidir le Explo ríomhphost a sheoladh chuig an seoladh nuair atá sé do sheal sa chluiche"},"Hljóðmerki:":{en:"Sounds:",nb:"Lyder:",nn:"Lydar:",pl:"Dźwięki:",ga:"Fuaimeanna:"},"Hljóð á/af":{en:"Sound on/off",nb:"Lyd på/av",nn:"Lyd på/av",pl:"Dźwięki włącz/wyłącz",ga:"Fuaimeanna ar/amuigh"},"Lúðraþytur eftir sigur:":{en:"Fanfare after a win:",nb:"Trompeter etter seier:",nn:"Trompeter etter siger:",pl:"Trąbki po zwycięstwie:",ga:"Trumpaí tar éis bua:"},"Lúðraþytur á/af":{en:"Fanfare on/off",nb:"Trompeter på/av",nn:"Trompeter på/av",pl:"Trąbki włącz/wyłącz",ga:"Trumpaí ar/amuigh"},explain_sound:{is:"Stillir hvort hljóðmerki heyrast t.d. þegar andstæðingur leikur og þegar sigur vinnst",en:"Controls whether sounds are played, e.g. when an opponent makes a move or when you win",nb:"Kontrollerer om lyder spilles, f.eks. når en motstander gjør et trekk eller når du vinner",nn:"Kontrollerer om lydar blir spelte, t.d. når ein motstandar gjer eit trekk eller når du vinn",pl:"Kontroluje, czy dźwięki są odtwarzane, np. gdy przeciwnik wykonuje ruch lub gdy wygrywasz",ga:"Rialaíonn sé an seinntear fuaimeanna, m.sh. nuair a bhogann freasúra nó nuair a bhuaigh tú"},"Sýna reitagildi:":{en:"Show multipliers:",nb:"Vis multiplikatorer:",nn:"Vis multiplikatorar:",pl:"Pokaż mnożniki:",ga:"Taispeáin iolraitheoirí:"},"Nýi skraflpokinn:":{en:"Use the new bag:",nb:"Bruk den nye posen:",nn:"Bruk den nye posen:",pl:"Użyj nowego worka:",ga:"Bain úsáid as an mála nua:"},"Án hjálpartækja:":{en:"Without helpers:",nb:"Uten hjelpemidler:",nn:"Utan hjelpemiddel:",pl:"Bez pomocy:",ga:"Gan chúntóirí:"},Vista:{en:"Save",nb:"Lagre",nn:"Lagre",pl:"Zapisz",ga:"Sábháil"},"Hætta við":{en:"Cancel",nb:"Avbryt",nn:"Bryt av",pl:"Anuluj",ga:"Cealaigh"},"Skrá mig út":{en:"Log out",nb:"Logg ut",nn:"Logg ut",pl:"Wyloguj się",ga:"Logáil Amach"},"Þú ert áskrifandi!":{en:"You're a subscriber!",nb:"Du er en abonnent!",nn:"Du er ein abonnent!",pl:"Jesteś subskrybentem!",ga:"Is síntiúsóir tú!"},"Gerast áskrifandi":{en:"Subscribe",nb:"Abonner",nn:"Abonner",pl:"Subskrybuj",ga:"Liostáil"},"Tek við áskorunum!":{en:"Accepting challenges!",nb:"Aksepterer utfordringer!",nn:"Tek imot utfordringar!",pl:"Akceptuje wyzwania!",ga:"Ag glacadh le dúshláin!"},"Til í viðureign með klukku!":{en:"Ready for timed games!",nb:"Klar for tidsbegrensede spill!",nn:"Klar for tidsavgrensa spel!",pl:"Gotowy na gry z czasem!",ga:"Réidh do chluichí ama!"},"Stillir hvort ":{en:"Controls whether ",nb:"Kontrollerer om ",nn:"Styrer om ",pl:"Kontroluje czy ",ga:"Rialaíonn sé an "},"minnismiði":{en:"a memo sticker",nb:"en huskelapp",nn:"ein hugselapp",pl:"naklejka memo",ga:"nóta meabhrúcháin"}," um margföldunargildi reita er sýndur við borðið":{en:" with square multipliers is shown beside the board",nb:" med rute-multiplikatorer vises ved siden av brettet",nn:" med rute-multiplikatorar blir vist ved sida av brettet",pl:" z mnożnikami kwadratów jest pokazany obok planszy",ga:" le hiolraitheoirí cearnóg le feiceáil in aice leis an mbord"},"Gefur til kynna hvort þú sért reiðubúin(n) að\nskrafla með ":{en:"Indicates whether you are ready to play with\n",nb:"Indikerer om du er klar til å spille med\n",nn:"Indikerer om du er klar til å spele med\n",pl:"Wskazuje czy jesteś gotowy do gry z\n",ga:"Léiríonn sé an bhfuil tú ullamh chun imeartha le\n"},"nýja íslenska skraflpokanum":{en:"the new tile bag",nb:"den nye brikkeposen",nn:"den nye brikkeposen",pl:"nowym workiem z kafelkami",ga:"an mála tíleanna nua"},no_helpers:{is:"Með því að velja þessa merkingu lýsir þú því yfir að þú\nskraflir við aðra leikmenn ",en:"By selecting this option, you declare that you play\nagainst other humans ",nb:"Ved å velge dette alternativet, erklærer du at du spiller\nmot andre mennesker ",nn:"Ved å velje dette, stadfester du at du spelar\nmot andre menneske ",pl:"Wybierając tę opcję, deklarujesz, że grasz\nprzeciwko innym ludziom ",ga:"Trí an rogha seo a roghnú, dearbhaíonn tú go n-imríonn tú\ni gcoinne daoine eile "},"án stafrænna hjálpartækja":{en:"without helpers or tools",nb:"uten hjelpemidler eller verktøy",nn:"utan hjelpemiddel eller verktøy",pl:"bez pomocy lub narzędzi",ga:"gan chúntóirí ná uirlisí"}," af nokkru tagi":{en:" of any kind",nb:" av noe slag",nn:" av noko slag",pl:" jakiegokolwiek rodzaju",ga:" de chineál ar bith"},"Áskoranir":{en:"Challenges",nb:"Utfordringer",nn:"Utfordringar",pl:"Wyzwania",ga:"Dúshláin"},"Andstæðingar":{en:"Opponents",nb:"Motstandere",nn:"Motstandarar",pl:"Przeciwnicy",ga:"Freasúra"},Ferill:{en:"History",nb:"Historikk",nn:"Historikk",pl:"Historia",ga:"Stair"},"Þú átt leik":{en:"Your turn",nb:"Din tur",nn:"Din tur",pl:"Twoja kolej",ga:"Do sheal"},"Viðureign lokið":{en:"Game over",nb:"Spillet er over",nn:"Spelet er over",pl:"Koniec gry",ga:"Cluiche thart"},opp_move:{is:"{opponent} á leik",en:"{opponent}'s turn",nb:"{opponent}s tur",nn:"{opponent} sin tur",pl:"Tura {opponent}",ga:"Seal {opponent}"},"Átt þú leik?":{en:"Your turn?",nb:"Din tur?",nn:"Din tur?",pl:"Twoja kolej?",ga:"Do sheal?"},"Langt frá síðasta leik?":{en:"Long time elapsed since last move?",nb:"Lang tid siden siste trekk?",nn:"Lang tid sidan siste trekk?",pl:"Dużo czasu minęło od ostatniego ruchu?",ga:"An bhfuil am fada caite ón mbogadh deireanach?"},"Síðasti leikur":{en:"Last move",nb:"Siste trekk",nn:"Siste trekk",pl:"Ostatni ruch",ga:"Bogadh deireanach"},"Andstæðingur":{en:"Opponent",nb:"Motstander",nn:"Motstandar",pl:"Przeciwnik",ga:"Iomaitheoir"},"Staða":{en:"Score",nb:"Poeng",nn:"Poeng",pl:"Wynik",ga:"Scór"},Framvinda:{en:"Progress",nb:"Fremgang",nn:"Framgang",pl:"Postęp",ga:"Dul chun cinn"},Keppnishamur:{en:"Pro mode",nb:"Pro-modus",nn:"Pro-modus",pl:"Tryb Pro",ga:"Modh Pro"},"Venjuleg ótímabundin viðureign":{en:"Standard Mode without time limit",nb:"Standardmodus uten tidsbegrensning",nn:"Standardmodus utan tidsbegrensing",pl:"Tryb standardowy bez limitu czasu",ga:"Gnáthchluiche gan teorainn ama"},with_clock:{is:"Með klukku, 2 x {duration} mínútur",en:"With clock, 2 x {duration} minutes",nb:"Med klokke, 2 x {duration} minutter",nn:"Med klokke, 2 x {duration} minutt",pl:"Z zegarem, 2 x {duration} minut",ga:"Le clog, 2 x {duration} nóiméad"},Hafna:{en:"Decline",nb:"Avslå",nn:"Avslå",pl:"Odrzuć",ga:"Diúltaigh"},Afturkalla:{en:"Retract",nb:"Trekk tilbake",nn:"Trekk tilbake",pl:"Wycofaj",ga:"Tarraing siar"},"Án hjálpartækja":{en:"Without helpers",nb:"Uten hjelpemidler",nn:"Utan hjelpemiddel",pl:"Bez pomocy",ga:"Gan chúntóirí"},"Skoða feril":{en:"View history",nb:"Vis historikk",nn:"Vis historikk",pl:"Zobacz historię",ga:"Féach ar stair"},"Gamli pokinn":{en:"Old tile bag",nb:"Gammel brikkepose",nn:"Gammal brikkepose",pl:"Stary worek z kafelkami",ga:"Mála tíleanna sean"},"Hvenær":{en:"When",nb:"Når",nn:"Når",pl:"Kiedy",ga:"Cathain"},"Áskorandi":{en:"Challenger",nb:"Utfordrer",nn:"Utfordrar",pl:"Wyzwający",ga:"Dúshlánóir"},Hvernig:{en:"How",nb:"Hvordan",nn:"Korleis",pl:"Jak",ga:"Conas"},Sigur:{en:"Win",nb:"Seier",nn:"Siger",pl:"Zwycięstwo",ga:"Bua"},Jafntefli:{en:"Draw",nb:"Uavgjort",nn:"Uavgjort",pl:"Remis",ga:"Tarraingt"},Tap:{en:"Loss",nb:"Tap",nn:"Tap",pl:"Porażka",ga:"Caill"},"Úrslit":{en:"Result",nb:"Resultat",nn:"Resultat",pl:"Wynik",ga:"Toradh"},"Viðureign lauk":{en:"Game finished",nb:"Spill avsluttet",nn:"Spel avslutta",pl:"Gra zakończona",ga:"Cluiche críochnaithe"},"Mennskir andstæðingar":{en:"Human opponents",nb:"Menneskelige motstandere",nn:"Menneskelege motstandarar",pl:"Ludzcy przeciwnicy",ga:"Freasúra daonna"},"Allir andstæðingar":{en:"All opponents",nb:"Alle motstandere",nn:"Alle motstandarar",pl:"Wszyscy przeciwnicy",ga:"Gach freasúra"},Elo:{is:"Elo",en:"Elo",nb:"Elo",nn:"Elo",pl:"Elo",ga:"Elo"},Lengd:{en:"Duration",nb:"Varighet",nn:"Varigheit",pl:"Czas trwania",ga:"Fad"},"Uppáhald":{en_US:"Favorite",en:"Favourite",nb:"Favoritt",nn:"Favoritt",pl:"Ulubione",ga:"Is fearr leat"},"Uppáhalds":{en_US:"Favorites",en:"Favourites",nb:"Favoritter",nn:"Favorittar",pl:"Ulubione",ga:"Roghanna"},"Skora á":{en:"Challenge",nb:"Utfordre",nn:"Utfordre",pl:"Wyzwanie",ga:"Dúshlán"},Einkenni:{en:"Nickname",nb:"Kallenavn",nn:"Kallenamn",pl:"Pseudonim",ga:"Leasainm"},"Nafn og merki":{en:"Full name and badges",nb:"Fullt navn og merker",nn:"Fullt namn og merke",pl:"Pełna nazwa i odznaki",ga:"Ainm iomlán agus suaitheantais"}," finnst ekki":{en:" not found",nb:" ikke funnet",nn:" ikkje funne",pl:" nie znaleziono",ga:" gan aimsiú"},"Þjarkar":{en:"Robots",nb:"Roboter",nn:"Robotar",pl:"Roboty",ga:"Róbónna"},"Álínis":{en:"Online",nb:"Pålogget",nn:"Pålogga",pl:"Online",ga:"Ar líne"},"Svipaðir":{en:"Similar",nb:"Lignende",nn:"Liknande",pl:"Podobne",ga:"Cosúil"},"Topp 100":{en:"Top 100",nb:"Topp 100",nn:"Topp 100",pl:"Top 100",ga:"Barr 100"},"orð":{en:"word",nb:"ord",nn:"ord",pl:"słowo",ga:"focal"},stafur:{en:"letter",nb:"bokstav",nn:"bokstav",pl:"litera",ga:"litir"},Senda:{en:"Send",nb:"Send",nn:"Send",pl:"Wyślij",ga:"Seol"},Pass:{en:"Pass",nb:"Pass",nn:"Pass",pl:"Pas",ga:"Pas"},letter:{is:"staf",en:"letter",nb:"bokstav",nn:"bokstav",pl:"litera",ga:"litir"},letters:{is:"stafi",en:"letters",nb:"bokstaver",nn:"bokstavar",pl:"litery",ga:"litreacha"},exchanged:{is:"Skipti um {numtiles} {letters}",en:"Exchanged {numtiles} {letters}",nb:"Byttet ut {numtiles} {letters}",nn:"Bytte ut {numtiles} {letters}",pl:"Wymieniono {numtiles} {letters}",ga:"Mhalartaithe {numtiles} {letters}"},"Gaf viðureign":{en:"Resigned",nb:"Ga opp",nn:"Gav opp",pl:"Zrezygnował",ga:"D'éirigh as"},"Véfengdi lögn":{en:"Challenged move",nb:"Utfordret trekk",nn:"Utfordra trekk",pl:"Ruch zakwestionowany",ga:"Bogadh dúshlánach"},"Óleyfileg lögn":{en:"Invalid move",nb:"Ugyldig trekk",nn:"Ugyldig trekk",pl:"Nieprawidłowy ruch",ga:"Bogadh neamhbhailí"},"Röng véfenging":{en:"Unsuccessful challenge",nb:"Mislykket utfordring",nn:"Mislukka utfordring",pl:"Nieudane wyzwanie",ga:"Dúshlán gan rath"},"Umframtími":{en:"Extra time",nb:"Ekstra tid",nn:"Ekstra tid",pl:"Dodatkowy czas",ga:"Am breise"},"Stafaleif: engin":{en:"Rack leave: none",nb:"Rack forlater: ingen",nn:"Stativ forlèt: ingen",pl:"Pozostawienie na stojaku: brak",ga:"Fágáil raca: dada"},"Stafaleif: ":{en:"Rack leave: ",nb:"Rack forlater: ",nn:"Stativ forlèt: ",pl:"Pozostawienie na stojaku: ",ga:"Fágáil raca: "},"Ný áskorun":{en:"New challenge",nb:"Ny utfordring",nn:"Ny utfordring",pl:"Nowe wyzwanie",ga:"Dúshlán nua"},"Viðureign án klukku":{en:"Game with no time limit",nb:"Spill uten tidsbegrensning",nn:"Spel utan tidsbegrensing",pl:"Gra bez limitu czasu",ga:"Cluiche gan teorainn ama"},"Nota ":{en:"Enable ",nb:"Aktiver ",nn:"Aktiver ",pl:"Włącz ",ga:"Cumasaigh "},"handvirka véfengingu":{en:"manual challenges",nb:"manuelle utfordringer",nn:"manuelle utfordringar",pl:"ręczne wyzwania",ga:"dúshláin láimhe"},'("keppnishamur")':{en:'("Pro mode")',nb:'("Pro-modus")',nn:'("Pro-modus")',pl:'("Tryb Pro")',ga:'("Modh Pro")'},"Viðureignir sem standa yfir":{en:"Games in progress",nb:"Pågående spill",nn:"Pågåande spel",pl:"Trwające gry",ga:"Cluichí ar siúl"},click_on_game:{is:" - smelltu á viðureign til að skoða stöðuna og leika ef ",en:" - click on a game to view it and make a move if ",nb:" - klikk på et spill for å åpne det og gjøre et trekk hvis ",nn:" - klikk på eit spel for å opne det og gjere eit trekk viss ",pl:" - kliknij na grę, aby ją zobaczyć i wykonać ruch, jeśli ",ga:" - cliceáil ar chluiche chun é a fheiceáil agus bogadh má "}," þú átt leik":{en:" it's your turn",nb:" det er din tur",nn:" det er din tur",pl:" to twoja kolej",ga:" tá sé do sheal"},"Skorað á þig":{en:"Other players have challenged you",nb:"Andre spillere har utfordret deg",nn:"Andre spelarar har utfordra deg",pl:"Inni gracze wyzwali cię",ga:"Tá dúshláin curtha ort ag imreoirí eile"},click_on_challenge:{is:" - smelltu á áskorun til að taka henni og hefja viðureign, eða á ",en:" - click on a challenge to accept it and start a game, or on ",nb:" - klikk på en utfordring for å akseptere den og starte et spill, eller på ",nn:" - klikk på ei utfordring for å akseptere ho og starte eit spel, eller på ",pl:" - kliknij na wyzwanie, aby je zaakceptować i rozpocząć grę, lub na ",ga:" - cliceáil ar dhúshlán chun glacadh leis agus cluiche a thosú, nó ar "}," til að hafna henni":{en:" to decline it",nb:" for å avslå det",nn:" for å avslå det",pl:" aby je odrzucić",ga:" chun é a dhiúltú"},"Þú skorar á aðra":{en:"You challenge other players",nb:"Du utfordrer andre spillere",nn:"Du utfordrar andre spelarar",pl:"Wyzwasz innych graczy",ga:"Dúshlánaíonn tú imreoirí eile"}," - smelltu á ":{en:" - click on ",nb:" - klikk på ",nn:" - klikk på ",pl:" - kliknij na ",ga:" - cliceáil ar "}," til að afturkalla áskorun":{en:" to retract an issued challenge",nb:" for å trekke tilbake en utfordring",nn:" for å trekkje tilbake ei utfordring",pl:" aby wycofać wydane wyzwanie",ga:" chun dúshlán eisithe a tharraingt siar"},"Nýlegar viðureignir þínar":{en:"Your recent games",nb:"Dine nylige spill",nn:"Dine nylege spel",pl:"Twoje ostatnie gry",ga:"Do chluichí le déanaí"},click_to_review:{is:" - smelltu á viðureign til að skoða hana og rifja upp",en:" - click on a game to review it",nb:" - klikk på et spill for å åpne det og gå gjennom det",nn:" - klikk på eit spel for å opne det og gå gjennom det",pl:" - kliknij na grę, aby ją przejrzeć",ga:" - cliceáil ar chluiche chun athbhreithniú a dhéanamh air"},"Einkenni eða nafn":{en:"Nickname or name",nb:"Kallenavn eller navn",nn:"Kallenamn eller namn",pl:"Pseudonim lub nazwa",ga:"Leasainm nó ainm"},"Upplýsingar og hjálp":{en:"Information and help",nb:"Informasjon og hjelp",nn:"Informasjon og hjelp",pl:"Informacje i pomoc",ga:"Eolas agus cabhair"},"1 dagur":{en:"1 day",nb:"1 dag",nn:"1 dag",pl:"1 dzień",ga:"1 lá"}," dagar":{en:" days",nb:" dager",nn:" dagar",pl:" dni",ga:" laethanta"}," og ":{en:" and ",nb:" og ",nn:" og ",pl:" i ",ga:" agus "},"1 klst":{en:"1 hour",nb:"1 time",nn:"1 time",pl:"1 godzina",ga:"1 uair"}," klst":{en:" hours",nb:" timer",nn:" timar",pl:" godzin",ga:" uair an chloig"},"1 mínúta":{en:"1 minute",nb:"1 minutt",nn:"1 minutt",pl:"1 minuta",ga:"1 nóiméad"}," mínútur":{en:" minutes",nb:" minutter",nn:" minutt",pl:" minuty",ga:" nóiméad"},"Viðureign með klukku":{en:"Timed game",nb:"Tidsbegrenset spill",nn:"Tidsbegrensa spel",pl:"Gra zegarowa",ga:"Cluiche ama"},"Áskrifandi":{en:"Subscriber",nb:"Abonnent",nn:"Abonnent",pl:"Subskrybent",ga:"Síntiúsóir"},"Nýjustu viðureignir":{en:"Recent games",nb:"Nylige spill",nn:"Nylege spel",pl:"Najnowsze gry",ga:"Cluichí is déanaí"},Loka:{en:"Close",nb:"Lukk",nn:"Lukk",pl:"Zamknij",ga:"Dún"},"Besta orð ":{en:"Best word ",nb:"Beste ord ",nn:"Beste ord ",pl:"Najlepsze słowo ",ga:"An focal is fearr "},"Hæsta skor ":{en:"Highest score ",nb:"Høyeste poengsum ",nn:"Høgaste poengsum ",pl:"Najwyższy wynik ",ga:"An scór is airde "}," stig":{en:" points",nb:" poeng",nn:" poeng",pl:" punkty",ga:" pointí"},"Til hamingju með sigurinn!":{en:"You won - congratulations!",nb:"Du vant - gratulerer!",nn:"Du vann - gratulerer!",pl:"Wygrałeś - gratulacje!",ga:"Bhuaigh tú - comhghairdeas!"},"Viðureigninni er lokið":{en:"Game over",nb:"Spillet er over",nn:"Spelet er over",pl:"Gra zakończona",ga:"Cluiche thart"},opponent_emptied_rack:{is:"Andstæðingur tæmdi rekkann - þú getur véfengt eða sagt pass",en:"Your opponent emptied the rack - you can challenge or pass",nb:"Motstanderen tømte stativet - du kan utfordre eller passere",nn:"Motstandaren tømde stativet - du kan utfordre eller passere",pl:"Twój przeciwnik opróżnił stojak - możesz rzucić wyzwanie lub spasować",ga:"D'fholmhaigh do chéile comhraic an raca - is féidir leat dúshlán a thabhairt nó pas a fháil"},"Viltu gefa leikinn?":{en:"Do you want to resign the game?",nb:"Ønsker du å gi opp spillet?",nn:"Ønskjer du å gje opp spelet?",pl:"Czy chcesz zrezygnować z gry?",ga:"Ar mhaith leat éirí as an gcluiche?"}," Já":{en:" Yes",nb:" Ja",nn:" Ja",pl:" Tak",ga:" Tá"}," Nei":{en:" No",nb:" Nei",nn:" Nei",pl:" Nie",ga:" Níl"},"Segja pass?":{en:"Pass the turn?",nb:"Passere turen?",nn:"Passere turen?",pl:"Spasować kolej?",ga:"Pas an tsealaíocht?"},"2x3 pöss í röð ljúka viðureign":{en:"2x3 passes in a row end the game",nb:"2x3 pasninger på rad avslutter spillet",nn:"2x3 pasningar på rad avsluttar spelet",pl:"2x3 pasy z rzędu kończą grę",ga:"Críochnaíonn 2x3 pasanna as a chéile an cluiche"},"Viðureign lýkur þar með":{en:"This finishes the game",nb:"Dette avslutter spillet",nn:"Dette avsluttar spelet",pl:"To kończy grę",ga:"Críochnaíonn sé seo an cluiche"},Skipta:{en:"Exchange",nb:"Bytte",nn:"Byte",pl:"Wymiana",ga:"Malartú"},"Smelltu á flísarnar sem þú vilt skipta":{en:"Click on the tiles that you wish to exchange",nb:"Klikk på brikkene du ønsker å bytte",nn:"Klikk på brikkene du ønskjer å byte",pl:"Kliknij na kafelki, które chcesz wymienić",ga:"Cliceáil ar na tíleanna ar mhaith leat a mhalartú"},"Véfengja lögn?":{en:"Challenge move?",nb:"Utfordre trekk?",nn:"Utfordre trekk?",pl:"Wyzwanie ruchu?",ga:"Dúshlán bogadh?"},"Röng véfenging kostar 10 stig":{en:"Wrong challenge costs 10 points",nb:"Feil utfordring koster 10 poeng",nn:"Feil utfordring kostar 10 poeng",pl:"Błędne wyzwanie kosztuje 10 punktów",ga:"Cosnaíonn dúshlán mícheart 10 bpointe"},"Er álínis":{en:"Is online",nb:"Er pålogget",nn:"Er pålogga",pl:"Jest online",ga:"Ar líne"},"Álínis?":{en:"Online?",nb:"Pålogget?",nn:"Pålogga?",pl:"Online?",ga:"Ar líne?"},"Röð":{en:"Rank",nb:"Rang",nn:"Rang",pl:"Ranking",ga:"Áit"},"Röð í gær":{en:"Rank yesterday",nb:"Rang i går",nn:"Rang i går",pl:"Ranking wczoraj",ga:"Áit inné"},"Röð fyrir viku":{en:"Rank a week ago",nb:"Rang for en uke siden",nn:"Rang for ei veke sidan",pl:"Ranking tydzień temu",ga:"Áit seachtain ó shin"},"1d":{en:"1d",nb:"1d",nn:"1d",pl:"1d",ga:"1l"},"7d":{en:"7d",nb:"7d",nn:"7d",pl:"7d",ga:"7l"},"30d":{en:"30d",nb:"30d",nn:"30d",pl:"30d",ga:"30l"},"Elo-stig":{en:"Elo points",nb:"Elo-poeng",nn:"Elo-poeng",pl:"Punkty Elo",ga:"Pointí Elo"},"Elo-stig í gær":{en:"Elo points yesterday",nb:"Elo-poeng i går",nn:"Elo-poeng i går",pl:"Punkty Elo wczoraj",ga:"Pointí Elo inné"},"Elo-stig fyrir viku":{en:"Elo points a week ago",nb:"Elo-poeng for en uke siden",nn:"Elo-poeng for ei veke sidan",pl:"Punkty Elo tydzień temu",ga:"Pointí Elo seachtain ó shin"},"Elo-stig fyrir mánuði":{en:"Elo points a month ago",nb:"Elo-poeng for en måned siden",nn:"Elo-poeng for ein månad sidan",pl:"Punkty Elo miesiąc temu",ga:"Pointí Elo mí ó shin"},elo_list_choice:{is:"Fólk | Allar | Keppnishamur",en:"Humans | All | Pro mode",nb:"Mennesker | Alle | Pro modus",nn:"Menneske | Alle | Pro-modus",pl:"Ludzie | Wszyscy | Tryb Pro",ga:"Daoine | Gach | Modh Pro"},stats_choice:{is:"Með þjörkum eða án",en:"With or without robot games",nb:"Med eller uten robotspill",nn:"Med eller utan robotspel",pl:"Z grami robotów lub bez",ga:"Le cluichí róbón nó gan iad"},"Fjöldi viðureigna":{en:"Number of games",nb:"Antall spill",nn:"Tal på spel",pl:"Liczba gier",ga:"Líon cluichí"},"Leikmenn sem hafa leyst gátuna":{en:"Players who solved the riddle",nb:"Spillere som har løst gåten",nn:"Spelarar som har løyst gåta",pl:"Gracze, którzy rozwiązali zagadkę",ga:"Imreoirí a réitigh an tomhas"},Vinningshlutfall:{en:"Winning ratio",nb:"Vinningsforhold",nn:"Vinningsforhold",pl:"Stosunek wygranych",ga:"Cóimheas bua"},"Meðalstigafjöldi":{en:"Average score",nb:"Gjennomsnittlig poengsum",nn:"Gjennomsnittleg poengsum",pl:"Średni wynik",ga:"Scór meánach"}," gegn öllum ":{en:" against all ",nb:" mot alle ",nn:" mot alle ",pl:" przeciwko wszystkim ",ga:" in aghaidh gach "}," gegn þér ":{en:" against you ",nb:" mot deg ",nn:" mot deg ",pl:" przeciwko tobie ",ga:" in aghaidh tú "}," - veldu lengd viðureignar:":{en:" - choose game duration:",nb:" - velg spillvarighet:",nn:" - vel spelvarigheit:",pl:" - wybierz czas trwania gry:",ga:" - roghnaigh fad an chluiche:"},"2 x 10 mínútur":{en:"2 x 10 minutes",nb:"2 x 10 minutter",nn:"2 x 10 minutt",pl:"2 x 10 minut",ga:"2 x 10 nóiméad"},"2 x 15 mínútur":{en:"2 x 15 minutes",nb:"2 x 15 minutter",nn:"2 x 15 minutt",pl:"2 x 15 minut",ga:"2 x 15 nóiméad"},"2 x 20 mínútur":{en:"2 x 20 minutes",nb:"2 x 20 minutter",nn:"2 x 20 minutt",pl:"2 x 20 minut",ga:"2 x 20 nóiméad"},"2 x 25 mínútur":{en:"2 x 25 minutes",nb:"2 x 25 minutter",nn:"2 x 25 minutt",pl:"2 x 25 minut",ga:"2 x 25 nóiméad"},"2 x 30 mínútur":{en:"2 x 30 minutes",nb:"2 x 30 minutter",nn:"2 x 30 minutt",pl:"2 x 30 minut",ga:"2 x 30 nóiméad"},"Báðir leikmenn lýsa því yfir að þeir skrafla ":{en:"Both players declare that they play ",nb:"Begge spillere erklærer at de spiller ",nn:"Begge spelarar erklærer at dei spelar ",pl:"Obaj gracze deklarują, że grają ",ga:"Dearbhaíonn an bheirt imreoirí go n-imríonn siad "},"Flísar sem eftir eru":{en:"Tiles remaining",nb:"Fliser igjen",nn:"Fliser igjen",pl:"Pozostałe kafelki",ga:"Tíleanna fágtha"},"Hvaða staf táknar auða flísin?":{en:"Which letter does the blank tile represent?",nb:"Hvilken bokstav representerer den blanke flisen?",nn:"Kva bokstav representerer den blanke flisa?",pl:"Jaką literę reprezentuje pusty kafelek?",ga:"Cén litir a léiríonn an tíl bán?"},"Þvinga til uppgjafar":{en:"Force to resign",nb:"Tving til å gi opp",nn:"Tving til å gje opp",pl:"Zmusić do rezygnacji",ga:"Éignigh le héirí as"},"14 dagar liðnir án leiks":{en:"14 days elapsed without a move",nb:"14 dager gått uten trekk",nn:"14 dagar gått utan trekk",pl:"Upłynęło 14 dni bez ruchu",ga:"14 lá caite gan bogadh"},"Gefa viðureign":{en:"Resign from game",nb:"Gi opp spillet",nn:"Gje opp spelet",pl:"Zrezygnować z gry",ga:"Éirigh as an gcluiche"},"Skipta stöfum":{en:"Exchange tiles",nb:"Bytt fliser",nn:"Byt fliser",pl:"Wymień kafelki",ga:"Malartú tíleanna"},word_not_found:{en:"'{word}' is not in the dictionary",is:"'{word}' finnst ekki í orðasafni",nb:"'{word}' finnes ikke i ordboken",nn:"'{word}' finst ikkje i ordboka",pl:"'{word}' nie znajduje się w słowniku",ga:"Níl '{word}' sa fhoclóir"},"Smelltu til að fletta upp":{en:"Click to look up",nb:"Klikk for å slå opp",nn:"Klikk for å slå opp",pl:"Kliknij, aby wyszukać",ga:"Cliceáil chun cuardach"},"Skoða yfirlit":{en:"Review game",nb:"Gjennomgå spill",nn:"Gjennomgå spel",pl:"Przejrzyj grę",ga:"Athbhreithniú cluiche"},"Skraflað án hjálpartækja":{en:"Game without helpers or tools",nb:"Spill uten hjelpemidler eller verktøy",nn:"Spel utan hjelpemiddel eller verktøy",pl:"Gra bez pomocy lub narzędzi",ga:"Cluiche gan chúntóirí nó uirlisí"},"Skraflar án hjálpartækja":{en:"Plays without helpers or tools",nb:"Spiller uten hjelpemidler eller verktøy",nn:"Spelar utan hjelpemiddel eller verktøy",pl:"Gra bez pomocy lub narzędzi",ga:"Imríonn gan chúntóirí nó uirlisí"},"Til í viðureign með klukku":{en:"Willing to play timed games",nb:"Villig til å spille tidsbegrensede spill",nn:"Villig til å spele tidsbegrensa spel",pl:"Chętny do gry w gry zegarowe",ga:"Toilteanach cluichí ama a imirt"},"Álínis og tekur við áskorunum":{en:"Online and accepting challenges",nb:"Pålogget og aksepterer utfordringer",nn:"Pålogga og aksepterer utfordringar",pl:"Online i akceptuje wyzwania",ga:"Ar líne agus ag glacadh le dúshláin"},"Enginn stafur lagður niður":{en:"No tile played",nb:"Ingen flis spilt",nn:"Inga flis spelt",pl:"Żaden kafelek nie został położony",ga:"Níor imríodh aon tíl"},"Fyrsta orð verður að liggja um byrjunarreitinn":{en:"First word must cover the start square",nb:"Første ord må dekke startfeltet",nn:"Første ord må dekkje startfeltet",pl:"Pierwsze słowo musi pokryć pole startowe",ga:"Caithfidh an chéad fhocal an cearnóg tosaigh a chlúdach"},"Orð verður að vera samfellt á borðinu":{en:"Word must be placed consecutively on the board",nb:"Ord må plasseres etter hverandre på brettet",nn:"Ord må plasserast etter kvarandre på brettet",pl:"Słowo musi być umieszczone kolejno na planszy",ga:"Caithfear an focal a chur go leanúnach ar an mbord"},"Orð verður að tengjast orði sem fyrir er":{en:"Word must be connected to another word on the board",nb:"Ord må være koblet til et annet ord på brettet",nn:"Ord må vere kopla til eit anna ord på brettet",pl:"Słowo musi być połączone z innym słowem na planszy",ga:"Caithfidh an focal a bheith ceangailte le focal eile ar an mbord"},"Reitur þegar upptekinn":{en:"Square is already occupied",nb:"Feltet er allerede opptatt",nn:"Feltet er allereie oppteke",pl:"Pole jest już zajęte",ga:"Tá an cearnóg áitithe cheana"},"Ekki má vera eyða í orði":{en:"Word cannot contain a space",nb:"Ord kan ikke inneholde et mellomrom",nn:"Ord kan ikkje innehalde eit mellomrom",pl:"Słowo nie może zawierać spacji",ga:"Ní féidir spás a bheith i bhfocal"},"Of margir stafir lagðir niður":{en:"Too many tiles laid down",nb:"For mange fliser lagt ned",nn:"For mange fliser lagde ned",pl:"Położono zbyt wiele kafelków",ga:"Leagadh síos an iomarca tíleanna"},"Stafur er ekki í rekkanum":{en:"Tile is not present in the player's rack",nb:"Flisen er ikke til stede i spillerens stativ",nn:"Flisa er ikkje til stades i spelaren sitt stativ",pl:"Kafelek nie znajduje się na stojaku gracza",ga:"Níl an tíl i raca an imreora"},"Of fáir stafir eftir, skipting ekki leyfð":{en:"Too few tiles left in bag; exchange not permitted",nb:"For få fliser igjen i posen; bytte ikke tillatt",nn:"For få fliser igjen i posen; byte ikkje tillate",pl:"Zbyt mało kafelków w worku; wymiana niedozwolona",ga:"Ró-bheag tíleanna fágtha sa mhála; malartú toirmiscthe"},"Of mörgum stöfum skipt":{en:"Too many tiles exchanged",nb:"For mange fliser byttet",nn:"For mange fliser bytte",pl:"Wymieniono zbyt wiele kafelków",ga:"Malartaíodh an iomarca tíleanna"},"Leik vantar á borðið - endurglæðið vefráparann":{en:"Move missing from board - refresh browser",nb:"Trekk mangler på brettet - oppdater nettleseren",nn:"Trekk manglar på brettet - oppdater nettlesaren",pl:"Ruch nieobecny na planszy - odśwież przeglądarkę",ga:"Bogadh in easnamh ón mbord - athnuaigh an brabhsálaí"},"Notandi ekki innskráður - endurglæðið vefráparann":{en:"User not logged in - refresh browser",nb:"Bruker ikke logget inn - oppdater nettleseren",nn:"Brukar ikkje logga inn - oppdater nettlesaren",pl:"Użytkownik nie jest zalogowany - odśwież przeglądarkę",ga:"Úsáideoir gan logáil isteach - athnuaigh an brabhsálaí"},"Rangur eða óþekktur notandi":{en:"Wrong or unknown user",nb:"Feil eller ukjent bruker",nn:"Feil eller ukjend brukar",pl:"Błędny lub nieznany użytkownik",ga:"Úsáideoir mícheart nó anaithnid"},"Viðureign finnst ekki":{en:"Game not found",nb:"Spill ikke funnet",nn:"Spel ikkje funne",pl:"Gra nie znaleziona",ga:"Cluiche gan aimsiú"},"Viðureign er ekki utan tímamarka":{en:"Game has not exceeded time limit",nb:"Spillet har ikke overskredet tidsbegrensningen",nn:"Spelet har ikkje overskride tidsbegrensinga",pl:"Gra nie przekroczyła limitu czasu",ga:"Níor sháraigh an cluiche an teorainn ama"},"Netþjónn gat ekki tekið við leiknum - reyndu aftur":{en:"Server is unable to process move - try again",nb:"Serveren kan ikke behandle trekket - prøv igjen",nn:"Tenaren kan ikkje behandle trekket - prøv igjen",pl:"Serwer nie może przetworzyć ruchu - spróbuj ponownie",ga:"Ní féidir leis an bhfreastalaí an gluaiseacht a phróiseáil - bain triail eile as"},"Véfenging er ekki möguleg í þessari viðureign":{en:"A challenge is not possible in this game",nb:"En utfordring er ikke mulig i dette spillet",nn:"Ei utfordring er ikkje mogleg i dette spelet",pl:"Wyzwanie nie jest możliwe w tej grze",ga:"Ní féidir dúshlán a thabhairt sa chluiche seo"},"Síðasti leikur er ekki véfengjanlegur":{en:"The last move cannot be challenged",nb:"Siste trekk kan ikke utfordres",nn:"Siste trekk kan ikkje utfordrast",pl:"Ostatniego ruchu nie można zakwestionować",ga:"Ní féidir an gluaiseacht deireanach a dhúshlánú"},"Aðeins véfenging eða pass leyfileg":{en:"Only a challenge or a pass are possible",nb:"Bare en utfordring eller pass er mulig",nn:"Berre ei utfordring eller pass er mogleg",pl:"Możliwe jest tylko wyzwanie lub pas",ga:"Níl ach dúshlán nó pas indéanta"},welcome_2:{is:["Til auðkenningar tengir Netskrafl tölvupóstfang og nafn við hvern notanda. ","Að öðru leyti eru ekki geymdar aðrar upplýsingar um notendur ","en þær sem þeir skrá sjálfir. Annáll er haldinn um umferð um vefinn og um ","aðgerðir notenda, í því skyni að endurbæta Netskrafl."],en:["For identification, Explo associates an e-mail address and a name with each user. ","Apart from this, Explo only stores information which is voluntarily ","entered by users themselves. A log is kept of web traffic and events within Explo, ","for the purpose of improving the service."],nb:["For identifikasjon knytter Explo en e-postadresse og et navn til hver bruker. ","Utover dette lagrer Explo kun informasjon som frivillig ","legges inn av brukerne selv. En logg føres over webtrafikk og hendelser innen Explo, ","i hensikt å forbedre tjenesten."],nn:["For identifikasjon knyter Explo ei e-postadresse og eit namn til kvar brukar. ","Utover dette lagrar Explo berre informasjon som frivillig ","blir lagt inn av brukarane sjølve. Ein logg blir ført over webtrafikk og hendingar innan Explo, ","i føremål å forbetre tenesta."],pl:["W celu identyfikacji Explo przypisuje każdemu użytkownikowi adres e-mail i nazwę. ","Poza tym Explo przechowuje tylko te informacje, które dobrowolnie wprowadzają sami ","użytkownicy. Prowadzony jest rejestr ruchu internetowego i zdarzeń w Explo w celu ","ulepszenia usługi."],ga:["Chun aitheantais, ceanglaíonn Explo seoladh ríomhphoist agus ainm le gach úsáideoir. ","Seachas sin, ní stóráiltear ag Explo ach an fhaisnéis a chuirtear isteach go deonach ","ag na húsáideoirí iad féin. Coinnítear logáil ar thrácht gréasáin agus imeachtaí laistigh de Explo, ","leis an gcuspóir an tseirbhís a fheabhsú."]},welcome_1:{is:["Netskrafl notar Google Accounts innskráningu, þá sömu og er notuð m.a. í Gmail. ","Til að auðkenna þig sem notanda og halda innskráningunni virkri ","er óhjákvæmilegt að geyma þar til gerða smáköku (<i>cookie</i>) ","í vafranum þínum."],en:["Explo uses Google Accounts for user authentication, similarly to e.g. Gmail. ","To remember your login and maintain your session, it is necessary to store a ","cookie within your browser."],nb:["Explo bruker Google-kontoer for brukerautentisering, likt som f.eks. Gmail. ","For å huske din innlogging og opprettholde din økt, er det nødvendig å lagre en ","informasjonskapsel i nettleseren din."],nn:["Explo brukar Google-kontoar for brukarautentisering, likt som t.d. Gmail. ","For å hugse innlogginga di og halde ved like økta di, er det naudsynt å lagre ein ","informasjonskapsel i nettlesaren din."],pl:["Explo używa kont Google do uwierzytelniania użytkownika, podobnie jak np. Gmail. ","Aby zapamiętać twoje logowanie i utrzymać sesję, konieczne jest przechowanie ","ciasteczka w twojej przeglądarce."],ga:["Úsáideann Explo Cuntais Google le haghaidh fíordheimhniú úsáideora, cosúil le Gmail, mar shampla. ","Chun do logáil isteach a mheabhrú agus do sheisiún a chothabháil, tá sé riachtanach fianán a stóráil ","i do bhrabhsálaí."]},welcome_0:{is:["Netskrafl er vettvangur ","<b>yfir 40.000 íslenskra skraflara</b>"," á netinu."],en:["Explo is a venue for ","<b>tens of thousands of crossword game enthusiasts</b> ","on the Internet."],nb:["Explo er et møtested for ","<b>tusenvis av kryssordspillentusiaster</b>"," på internett."],nn:["Explo er ein møtestad for ","<b>tusenvis av kryssordspelentusiastar</b>"," på internett."],pl:["Explo to miejsce dla ","<b>dziesiątek tysięcy entuzjastów gier krzyżówkowych</b>"," w Internecie."],ga:["Is ionad é Explo do ","<b>na deich mílte díograiseoirí cluiche crosfhocal</b>"," ar an Idirlíon."]},"Skrái þig inn...":{en:"Logging you in...",nb:"Logger deg inn...",nn:"Loggar deg inn...",pl:"Logowanie...",ga:"Ag logáil isteach tú..."},"Innskrá":{en:"Log in",nb:"Logg inn",nn:"Logg inn",pl:"Zaloguj się",ga:"Logáil isteach"},"Smelltu til að raða eftir seinni staf":{en:"Click to sort by last letter",nb:"Klikk for å sortere etter siste bokstav",nn:"Klikk for å sortere etter siste bokstav",pl:"Kliknij, aby posortować według ostatniej litery",ga:"Cliceáil chun sórtáil de réir an litir deireanaigh"},"Smelltu til að raða eftir fyrri staf":{en:"Click to sort by first letter",nb:"Klikk for å sortere etter første bokstav",nn:"Klikk for å sortere etter første bokstav",pl:"Kliknij, aby posortować według pierwszej litery",ga:"Cliceáil chun sórtáil de réir an chéad litir"},"Hvernig reitirnir margfalda stigin":{en:"How squares multiply points",nb:"Hvordan ruter multipliserer poeng",nn:"Korleis ruter multipliserer poeng",pl:"Jak kwadraty mnożą punkty",ga:"Conas a iolraíonn cearnóga pointí"},"Loka þessari hjálp":{en:"Close this help",nb:"Lukk denne hjelpen",nn:"Lukk denne hjelpa",pl:"Zamknij tę pomoc",ga:"Dún an chabhair seo"},"Stokka upp rekka":{en:"Shuffle rack",nb:"Stokk stativet",nn:"Stokk stativet",pl:"Przetasuj stojak",ga:"Measc raca"},"Færa stafi aftur í rekka":{en:"Recall tiles into rack",nb:"Hent fliser tilbake til stativet",nn:"Hent fliser tilbake til stativet",pl:"Przywróć kafelki do stojaka",ga:"Cuimhnigh tíleanna isteach sa raca"},"Besta mögulega lögn":{en:"Best possible move",nb:"Beste mulige trekk",nn:"Beste mogelege trekk",pl:"Najlepszy możliwy ruch",ga:"An bogadh is fearr is féidir"},"Nei, takk":{en:"No, thanks",nb:"Nei, takk",nn:"Nei, takk",pl:"Nie, dziękuję",ga:"Ní hea"},"Fyrri dagur":{en:"Previous day",nb:"Forrige dag",nn:"Førre dag",pl:"Poprzedni dzień",ga:"An lá roimhe"},"Næsti dagur":{en:"Next day",nb:"Neste dag",nn:"Neste dag",pl:"Następny dzień",ga:"An lá dar gcionn"},"Frammistaða":{en:"Performance",nb:"Ytelse",nn:"Yting",pl:"Wyniki",ga:"Feidhmíocht"},"Tölfræði":{en:"Statistics",nb:"Statistikk",nn:"Statistikk",pl:"Statystyki",ga:"Staitisticí"},Stigatafla:{en:"Leaderboard",nb:"Toppliste",nn:"Toppliste",pl:"Tabela wyników",ga:"Clár ceannairí"},"Tölfræði og stigatafla":{en:"Stats and leaderboard",nb:"Statistikk og toppliste",nn:"Statistikk og toppliste",pl:"Statystyki i tabela",ga:"Staitisticí agus clár"},"Þín besta":{en:"Your best",nb:"Din beste",nn:"Di beste",pl:"Twój najlepszy",ga:"Do cheann is fearr"},"Þú leiðir!":{en:"You lead!",nb:"Du leder!",nn:"Du leier!",pl:"Prowadzisz!",ga:"Tá tú chun tosaigh!"},"Best til þessa":{en:"Best so far",nb:"Beste hittil",nn:"Beste hittil",pl:"Najlepszy dotąd",ga:"Is fearr go dtí seo"},"Sýna besta leik":{en:"Show best move",nb:"Vis beste trekk",nn:"Vis beste trekk",pl:"Pokaż najlepszy ruch",ga:"Taispeáin an bogadh is fearr"},"Sýna leik":{en:"Show move",nb:"Vis trekk",nn:"Vis trekk",pl:"Pokaż ruch",ga:"Taispeáin bogadh"},"Smelltu til að sjá lausn":{en:"Click to see solution",nb:"Klikk for å se løsning",nn:"Klikk for å sjå løysing",pl:"Kliknij, aby zobaczyć rozwiązanie",ga:"Cliceáil chun an réiteach a fheiceáil"},"Þú":{en:"You",nb:"Du",nn:"Du",pl:"Ty",ga:"Tú"},"Sæki tölfræði...":{en:"Loading stats...",nb:"Laster statistikk...",nn:"Lastar statistikk...",pl:"Ładowanie statystyk...",ga:"Ag lódáil staitisticí..."},"Engin tölfræði til að sýna":{en:"No statistics to show",nb:"Ingen statistikk å vise",nn:"Ingen statistikk å vise",pl:"Brak statystyk do wyświetlenia",ga:"Níl aon staitisticí le taispeáint"},"Núverandi striklota":{en:"Current streak",nb:"Nåværende rekke",nn:"Noverande rekkje",pl:"Bieżąca seria",ga:"Sraith reatha"},"Lengsta striklota":{en:"Longest streak",nb:"Lengste rekke",nn:"Lengste rekkje",pl:"Najdłuższa seria",ga:"An tsraith is faide"},"Hæsta skori náð":{en:"Best score achieved",nb:"Beste oppnådde poengsum",nn:"Beste oppnådde poengsum",pl:"Najwyższy wynik",ga:"An scór is fearr"},"Striklota hæsta skors":{en:"Best score streak",nb:"Rekke med beste poengsum",nn:"Rekkje med beste poengsum",pl:"Seria najwyższych wyników",ga:"Sraith scór is fearr"},"Heildarfjöldi daga":{en:"Total days played",nb:"Totalt antall dager",nn:"Totalt tal på dagar",pl:"Łączna liczba dni",ga:"Iomlán laethanta"},"Hleð stigatöflu...":{en:"Loading leaderboard...",nb:"Laster toppliste...",nn:"Lastar toppliste...",pl:"Ładowanie tabeli...",ga:"Ag lódáil an chláir..."},"Engin stig skráð enn":{en:"No scores yet",nb:"Ingen poeng ennå",nn:"Ingen poeng enno",pl:"Brak wyników",ga:"Gan scóir fós"},"Reyna síðar":{en:"Try later",nb:"Prøv senere",nn:"Prøv seinare",pl:"Spróbuj później",ga:"Bain triail níos déanaí"}," mínútur.":{en:" minutes.",nb:" minutter.",nn:" minutt.",pl:" minut.",ga:" nóiméad."},date_format:{is:"{day}. {month}",en:"{month} {day}",nb:"{day}. {month}",nn:"{day}. {month}",pl:"{day} {month}",ga:"{day} {month}"},january:{is:"janúar",en:"January",nb:"januar",nn:"januar",pl:"styczeń",ga:"Eanáir"},february:{is:"febrúar",en:"February",nb:"februar",nn:"februar",pl:"luty",ga:"Feabhra"},march:{is:"mars",en:"March",nb:"mars",nn:"mars",pl:"marzec",ga:"Márta"},april:{is:"apríl",en:"April",nb:"april",nn:"april",pl:"kwiecień",ga:"Aibreán"},may:{is:"maí",en:"May",nb:"mai",nn:"mai",pl:"maj",ga:"Bealtaine"},june:{is:"júní",en:"June",nb:"juni",nn:"juni",pl:"czerwiec",ga:"Meitheamh"},july:{is:"júlí",en:"July",nb:"juli",nn:"juli",pl:"lipiec",ga:"Iúil"},august:{is:"ágúst",en:"August",nb:"august",nn:"august",pl:"sierpień",ga:"Lúnasa"},september:{is:"september",en:"September",nb:"september",nn:"september",pl:"wrzesień",ga:"Meán Fómhair"},october:{is:"október",en:"October",nb:"oktober",nn:"oktober",pl:"październik",ga:"Deireadh Fómhair"},november:{is:"nóvember",en:"November",nb:"november",nn:"november",pl:"listopad",ga:"Samhain"},december:{is:"desember",en:"December",nb:"desember",nn:"desember",pl:"grudzień",ga:"Nollaig"},share_popup_title:{is:"Til hamingju!",en:"Congratulations!",nb:"Gratulerer!",nn:"Gratulerer!",pl:"Gratulacje!",ga:"Comhghairdeas!"},share_popup_subtitle:{is:"Þú náðir besta mögulega skori!",en:"You achieved the best possible score!",nb:"Du oppnådde best mulig poengsum!",nn:"Du oppnådde best mogeleg poengsum!",pl:"Osiągnąłeś najlepszy możliwy wynik!",ga:"Bhain tú an scór is fearr is féidir amach!"},share_button_copy:{is:"Afrita texta",en:"Copy to clipboard",nb:"Kopier til utklippstavle",nn:"Kopier til utklippstavle",pl:"Skopiuj do schowka",ga:"Cóipeáil chuig gearrthaisce"},share_button_share:{is:"Deila",en:"Share",nb:"Del",nn:"Del",pl:"Udostępnij",ga:"Roinn"},share_copied_confirmation:{is:"Afritað!",en:"Copied!",nb:"Kopiert!",nn:"Kopiert!",pl:"Skopiowano!",ga:"Cóipeáilte!"},share_text_template:{is:"🎯 Ég leysti Gátu dagsins (#{position} í dag!) 🏆 https://gatadagsins.is",en:"🎯 I solved Gáta dagsins (#{position} today!) 🏆 https://gatadagsins.is",nb:"🎯 Jeg løste dagens gåte (#{position} i dag!) 🏆 https://gatadagsins.is",nn:"🎯 Eg løyste dagens gåte (#{position} i dag!) 🏆 https://gatadagsins.is",pl:"🎯 Rozwiązałem zagadkę dnia (#{position} dzisiaj!) 🏆 https://gatadagsins.is",ga:"🎯 Réitigh mé tomhas an lae (#{position} inniu!) 🏆 https://gatadagsins.is"},Stillingar:{en:"Settings",nb:"Innstillinger",nn:"Innstillingar",pl:"Ustawienia",ga:"Socruithe"},"Tækisstillingar":{en:"Device settings",nb:"Enhetsinnstillinger",nn:"Einingsinnstillingar",pl:"Ustawienia urządzenia",ga:"Socruithe gléis"},"Þysja sjálfkrafa":{en:"Auto-zoom",nb:"Automatisk zoom",nn:"Automatisk zoom",pl:"Automatyczne powiększenie",ga:"Uathzúmáil"},autozoom_explain:{is:"Þysja sjálfkrafa inn þegar fyrsta flís er lögð á borðið",en:"Zoom in when first tile is placed on the board",nb:"Zoom inn når første brikke legges på brettet",nn:"Zoom inn når første brikke vert lagt på brettet",pl:"Powiększ, gdy pierwsza płytka zostanie położona na planszy",ga:"Zúmáil isteach nuair a leagtar an chéad tíl ar an gclár"},"á":{en:"on",nb:"på",nn:"på",pl:"wł.",ga:"air"},af:{en:"off",nb:"av",nn:"av",pl:"wył.",ga:"as"},"Eldri litasamsetning:":{en:"Legacy colors:",nb:"Eldre farger:",nn:"Eldre fargar:",pl:"Starsze kolory:",ga:"Dathanna oidhreachta:"},"Eldri litasamsetning":{en:"Legacy colors",nb:"Eldre farger",nn:"Eldre fargar",pl:"Starsze kolory",ga:"Dathanna oidhreachta"},legacy_colors_explain:{is:"Nota upprunalegu litina frá eldri útgáfu Netskrafls",en:"Use the original colors from the classic version of Netskrafl",nb:"Bruk de originale fargene fra den klassiske versjonen av Netskrafl",nn:"Bruk dei originale fargane frå den klassiske versjonen av Netskrafl",pl:"Użyj oryginalnych kolorów z klasycznej wersji Netskrafl",ga:"Úsáid na dathanna bunaidh ón leagan clasaiceach de Netskrafl"},use_original:{is:"Nota ",en:"Use ",nb:"Bruke ",nn:"Bruka ",pl:"Używa ",ga:"Úsáideann "},upprunalegu:{en:"the original",nb:"de originale",nn:"dei originale",pl:"oryginalne",ga:"na bunaidh"}," litina frá eldri útgáfu Netskrafls":{en:" colors from the classic version of Netskrafl",nb:" fargene fra den klassiske versjonen av Netskrafl",nn:" fargane frå den klassiske versjonen av Netskrafl",pl:" kolory z klasycznej wersji Netskrafl",ga:" dathanna ón leagan clasaiceach de Netskrafl"},"[sentinel]":{}};let fp="is_IS",mp="is";const vp=/{\s*(\w+)\s*}/g;let yp={},wp=!1;function bp(e,t){for(const n in e)if(void 0!==e[n][t])return!0;return!1}function _p(e){!function(e,t){fp=e,mp=e.split("_")[0],bp(t,fp)||bp(t,mp)||(fp="en_US",mp="en"),yp={};for(const e in t)for(const n in t[e]){let i=t[e][n];if(Array.isArray(i)&&(i=i.join("")),void 0===yp[e]&&(yp[e]={}),i.match(/<[a-z]+>/)){const e=[];let t=0,n=null;for(;t<i.length&&(n=i.slice(t).match(/<[a-z]+>/))&&void 0!==n.index;){const r=n[0],s=t+n.index+r.length,a=i.indexOf(`</${r.slice(1)}`,s);a<0?t=s:(n.index>0&&e.push(i.slice(t,t+n.index)),e.push(zd(r.slice(1,-1),i.slice(s,a))),t=a+r.length+1)}t<i.length&&e.push(i.slice(t)),i=e}yp[e][n]=i}wp=!0}(function(){const e=new URLSearchParams(window.location.search).get("lang");return e?e.replace("-","_"):null}()||e,gp)}function kp(e,t={}){const n=yp[e];if(void 0===n)return wp?e:"";const i=n[fp]||n[mp]||e;return Object.keys(t).length?Tp(i,t):i}function Cp(e,t={}){const n=yp[e];if(void 0===n)return wp?e:"";const i=n[fp]||n[mp]||e;return"string"!=typeof i?"":Object.keys(t).length?function(e,t){return e.replace(vp,((e,n)=>t[n]||e))}(i,t):i}function Sp(e,t){return"string"==typeof t?zd(e,kp(t)):Array.isArray(t)?zd(e,t.map((e=>"string"==typeof e?kp(e):e))):zd(e,t)}function Tp(e,t){return"string"==typeof e?e.replace(vp,((e,n)=>t[n]||e)):Array.isArray(e)?e.map((e=>Tp(e,t))):e}const Ip=new WeakMap;const Ep="/board?game=",Pp=["january","february","march","april","may","june","july","august","september","october","november","december"];function xp(e){const t=e.currentTarget.classList;void 0===t||t.contains("disabled")||t.add("over"),e.redraw=!1}function Rp(e){const t=e.currentTarget.classList;void 0!==t&&t.remove("over"),e.redraw=!1}function Lp(e,t,n){return zd(`span.glyphicon.glyphicon-${e}${n?".grayed":""}`,t??{})}function Np(e,t){return zd(`span.glyphicon.glyphicon-${e}.grayed`,t??{})}function Dp(e){return zd.trust("&nbsp;")}function Ap(e){const t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};return String(e).replace(/[&<>"'/]/g,(e=>t[e]??""))}function Mp(e){return document.getElementById(e).value}function Op(e,t){pp(e).play(t)}function jp(e){e.slice(0,12)===Ep&&(e=e.slice(12));const t=e.slice(0,36);let n=e.slice(36);return n.length>0&&"&"===n.charAt(0)&&(n=`?${n.slice(1)}`),`/game/${t}${n}`}function Fp(){const e=document.querySelectorAll("div.movelist .move");if(!e||!e.length)return;const t=e[e.length-1],n=t.parentNode,i=n.getAttribute("data-len"),r=i?parseInt(i,10):0;e.length>r&&(n.scrollTop=t.offsetTop),n.setAttribute("data-len",e.length.toString())}function zp(e,t,n=!1){return e<0||e>=op||t<0||t>=op?null:n?`${t+1}${ap[e]}`:`${ap[e]}${t+1}`}function Up(e){var t=0,n=0,i=0,r=ap.indexOf(e[0]);return r>=0?(i=parseInt(e.slice(1),10)-1,t=1):(r=ap.indexOf(e.slice(-1)),i=parseInt(e,10)-1,n=1),{col:i,row:r,dx:t,dy:n}}function $p(e){const t=new Date(`${e}T00:00:00Z`),n=t.getUTCDate().toString(),i=Cp(Pp[t.getUTCMonth()]);return Cp("date_format",{day:n,month:i})}function qp(e=0){const t=()=>{const e=document.querySelector(".netskrafl-container");e?.focus()};e>0?setTimeout(t,e):setTimeout(t)}function Bp(e,t,n=100){setTimeout((()=>{const n=document.querySelector(".netskrafl-container");n&&(n.tabIndex=0,n.addEventListener("keydown",e),n.addEventListener("compositionend",t),n.focus())}),n)}function Vp(e){const t=document.querySelector(".netskrafl-container");t&&t.classList.toggle("legacy-colors",e)}class Hp{constructor(e){this.riddleLoading=!1,this.midnightTimer=null,this.visibilityHandler=null,this.model=e}cleanup(){this.clearMidnightTimer(),this.clearVisibilityHandler()}isViewingToday(){return!new URLSearchParams(window.location.search).has("date")}msUntilMidnightUTC(){const e=new Date;return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+1,0,0,0,0)).getTime()-e.getTime()}clearMidnightTimer(){null!==this.midnightTimer&&(clearTimeout(this.midnightTimer),this.midnightTimer=null)}setupMidnightTimer(){this.clearMidnightTimer();const e=this.msUntilMidnightUTC();this.midnightTimer=setTimeout((()=>{if(this.midnightTimer=null,!this.isViewingToday())return;const e=this.model.state?.locale||"is_IS",t=(new Date).toISOString().split("T")[0];this.loadRiddle(t,e)}),e+5e3)}clearVisibilityHandler(){null!==this.visibilityHandler&&(document.removeEventListener("visibilitychange",this.visibilityHandler),this.visibilityHandler=null)}setupVisibilityHandler(){this.clearVisibilityHandler(),this.visibilityHandler=()=>{if("visible"!==document.visibilityState)return;if(!this.isViewingToday())return;const e=this.model.riddle;if(!e)return;const t=(new Date).toISOString().split("T")[0];if(e.date<t){const e=this.model.state?.locale||"is_IS";this.loadRiddle(t,e)}},document.addEventListener("visibilitychange",this.visibilityHandler)}get isRiddleLoading(){return this.riddleLoading}onNavigateTo(e,t,n){const i=this.model;i.routeName=e,i.params=t;const r=t.uuid??"";if("game"===e){null!==i.game&&this.detachListenerFromGame(i.game.uuid);const e="1"===t.zombie;i.loadGame(r,(()=>{this.attachListenerToGame(r,n),setTimeout(Fp),n.isMobile()&&n.setSelectedTab("board"),qp(100)}),e),null!==i.game&&void 0!==i.game&&fh("game_open",{locale:i.game.locale,uuid:t.uuid})}else if("review"===e){null!==i.game&&this.detachListenerFromGame(i.game.uuid);const e=t.move||"0";let s=parseInt(e,10);(Number.isNaN(s)||!s||s<0)&&(s=0),i.loadGame(r,(()=>{i.loadBestMoves(s),setTimeout(Fp),n.isMobile()&&n.setSelectedTab("board")}))}else{null!==i.game&&(this.detachListenerFromGame(i.game.uuid),i.game.cleanup(),i.game=null);const t=i.state?.locale||"is_IS";"help"===e?(i.loadHelp(),fh("help",{locale:t})):"main"===e&&(n.actions.withSpinner((()=>i.loadAllLists())),i.userListCriteria=null,i.userList=null)}}onMoveMessage(e,t){this.model.handleMoveMessage(e,t)}onUserChallengeMessage(e,t){this.model.handleUserChallengeMessage(e,t)}onUserMoveMessage(e,t){this.model.handleUserMoveMessage(e,t)}onChatMessage(e,t,n){if(t);else if(this.model.addChatMessage(e.game,e.from_userid,e.msg,e.ts)){n.notifyChatMessage();const{state:t}=this.model,i=t.netskraflUserId??"";t.audio&&e.from_userid!==i&&Op(t,"new-msg")}}onFullScreen(e){const t=this.model.state;t&&!t.uiFullscreen&&(t.uiFullscreen=!0,e&&(e.resetScale(),e.notifyMediaChange()),zd.redraw())}onMobileScreen(e){const t=this.model.state;t&&!1!==t.uiFullscreen&&(t.uiFullscreen=!1,e&&e.notifyMediaChange(),zd.redraw())}onLandscapeScreen(e){const t=this.model.state;t&&!t.uiLandscape&&(t.uiLandscape=!0,e&&e.notifyMediaChange(),zd.redraw())}onPortraitScreen(e){const t=this.model.state;t&&!1!==t.uiLandscape&&(t.uiLandscape=!1,e&&e.notifyMediaChange(),zd.redraw())}mediaMinWidth667(e,t){e.matches?this.onLandscapeScreen(t):this.onPortraitScreen(t)}mediaMinWidth1024(e,t){e.matches?this.onFullScreen(t):this.onMobileScreen(t)}initMediaListener(e){function t(e,t){try{e.addEventListener("change",t,{passive:!0})}catch(n){try{e.addListener(t)}catch(e){console.error(e)}}}let n=window.matchMedia("(min-width: 667px) and (max-width: 1023px) and (orientation: landscape)");n&&(this.mediaMinWidth667(n,e),t(n,(()=>this.mediaMinWidth667(n,e)))),n=window.matchMedia("(min-width: 1024px)"),n&&(this.mediaMinWidth1024(n,e),t(n,(()=>this.mediaMinWidth1024(n,e))))}attachListenerToUser(){const e=this.model.state;e&&e.netskraflUserId&&(ph(`user/${e.netskraflUserId}/challenge`,((e,t)=>this.onUserChallengeMessage(e,t))),ph(`user/${e.netskraflUserId}/move`,((e,t)=>this.onUserMoveMessage(e,t))))}detachListenerFromUser(){const e=this.model.state;e?.netskraflUserId&&gh(`user/${e.netskraflUserId}`)}attachListenerToGame(e,t){const n=this.model.state;if(!e||!n)return;const i=`game/${e}/${n.netskraflUserId}/`;ph(`${i}move`,((e,t)=>this.onMoveMessage(e,t))),ph(`${i}chat`,((e,n)=>this.onChatMessage(e,n,t)))}detachListenerFromGame(e){const t=this.model.state;if(!e||!t)return;const n=`game/${e}/${t.netskraflUserId}/`;gh(`${n}move`),gh(`${n}chat`)}async markFavorite(e,t){if(this.model.state)try{await rp(this.model.state,{method:"POST",url:"/favorite",body:{destuser:e,action:t?"add":"delete"}})}catch(e){}}async toggleFavorite(e,t){await this.markFavorite(e,!t)}async handleChallenge(e){if(this.model.state)try{const t=await rp(this.model.state,{method:"POST",url:"/challenge",body:e});if(0===t?.result){const t={locale:this.model.state?.locale||"is_IS"};void 0!==e.duration&&(t.duration=e.duration),void 0!==e.fairplay&&(t.fairplay=e.fairplay),void 0!==e.manual&&(t.manual=e.manual),fh(`challenge_${e.action}`,t),this.model.loadChallengeList(),this.model.userListCriteria&&this.model.loadUserList(this.model.userListCriteria)}}catch(e){}}async acceptChallenge(e,t){await this.handleChallenge({action:"accept",destuser:e,key:t})}async declineChallenge(e,t){await this.handleChallenge({action:"decline",destuser:e,key:t})}async retractChallenge(e,t){await this.handleChallenge({action:"retract",destuser:e,key:t})}async startNewGame(e,t=!1){if(this.model.state)try{const n={opp:e,rev:t};this.model.isExplo&&(n.board_type="explo");const i={method:"POST",url:"/initgame",body:n},r=await rp(this.model.state,i);if(r?.ok){const e=this.model.state?.locale||"is_IS";fh("new_game",{uuid:r.uuid,timed:t,locale:e}),zd.route.set(`/game/${r.uuid}`)}}catch(e){}}async startRobotGame(e){await this.startNewGame(e,!1)}async loadUsers(e,t=!0){t?await this.withSpinner((()=>this.model.loadUserList(e))):await this.model.loadUserList(e)}async searchUsers(e,t=!0){await this.loadUsers({query:"search",spec:e},t)}async loadUsersByType(e,t=!0){await this.loadUsers({query:e,spec:""},t)}showSpinner(){this.model.spinners++,zd.redraw()}hideSpinner(){this.model.spinners>0&&(this.model.spinners--,zd.redraw())}async withSpinner(e){this.showSpinner();try{return await e()}finally{this.hideSpinner()}}async setUserPref(e){if(this.model.state)try{await rp(this.model.state,{method:"POST",url:"/setuserpref",body:e}),o(this.model.state)}catch(e){}}async cancelFriendship(){const e=this.model.user,t=this.model.state;if(!e||!t)return!1;try{const n=await rp(t,{method:"POST",url:"/cancelplan",body:{}});if(n?.ok)return e.friend=!1,t.hasPaid=!1,t.plan="",fh("cancel_plan",{userid:t.netskraflUserId,locale:t.locale,plan:"friend"}),!0}catch(e){}return!1}attachListenerToRiddle(e,t){const{state:n}=this.model,i=`gatadagsins/${e}/${t}/`;ph(`${i}count`,((e,t)=>this.onSolverCountUpdate(e,t))),ph(`${i}best`,((e,t)=>this.onRiddleGlobalScoreUpdate(e,t))),n?.userGroupId&&ph(`${i}group/${n.userGroupId}/best`,((e,t)=>this.onRiddleGroupScoreUpdate(e,t))),ph(`${i}leaders`,((e,t)=>this.onLeaderboardUpdate(e,t))),n?.netskraflUserId&&(ph(`gatadagsins/users/${t}/${n.netskraflUserId}/stats`,((e,t)=>this.onUserStatsUpdate(e,t))),ph(`${i}achievements/${n.netskraflUserId}`,((e,t)=>this.onPersonalBestScoreUpdate(e,t))))}detachListenerFromRiddle(e,t){const{state:n}=this.model,i=`gatadagsins/${e}/${t}/`;gh(`${i}count`),gh(`${i}best`),n?.userGroupId&&gh(`${i}group/${n.userGroupId}/best`),gh(`${i}leaders`),n?.netskraflUserId&&(gh(`gatadagsins/users/${t}/${n.netskraflUserId}/stats`),gh(`${i}achievements/${n.netskraflUserId}`))}onSolverCountUpdate(e,t){this.model.solverCount=e??0,zd.redraw()}onRiddleGlobalScoreUpdate(e,t){const{riddle:n}=this.model,{score:i}=e;!n||!i||i<=0||(n.updateGlobalBestScore(e),zd.redraw())}onRiddleGroupScoreUpdate(e,t){const{riddle:n}=this.model,{score:i}=e;!n||!i||i<=0||(n.updateGroupBestScore(e),zd.redraw())}onLeaderboardUpdate(e,t){if(e&&"object"==typeof e){const{riddle:t}=this.model,n=t?.bestPossibleScore??Number.POSITIVE_INFINITY,i=Object.keys(e).map((t=>({userId:e[t].userId||t,displayName:e[t].displayName||"",score:e[t].score||0,timestamp:e[t].timestamp||""}))).filter((e=>e.score<=n));i.sort(((e,t)=>t.score!==e.score?t.score-e.score:e.timestamp.localeCompare(t.timestamp))),this.model.leaderboard=i}else this.model.leaderboard=[];zd.redraw()}onUserStatsUpdate(e,t){this.model.userStats=e||null,zd.redraw()}onPersonalBestScoreUpdate(e,t){const{riddle:n}=this.model;if(!n||!e||"object"!=typeof e)return;const i=e.score||0,r=e.word||"",s=e.coord||"",a=e.timestamp||(new Date).toISOString();if(i<=n.personalBestScore||!r||!s)return;n.personalBestScore=i;const o=n.playerMoves.some((e=>e.word===r&&e.coord===s&&e.score===i));o||n.playerMoves.push({word:r,score:i,coord:s,timestamp:a}),zd.redraw()}async fetchRiddle(e,t){if(!this.model)throw new Error("Model is not initialized");await this.model.initRiddle(e,t),this.attachListenerToRiddle(e,t)}async loadRiddle(e,t){if(!this.riddleLoading){this.riddleLoading=!0,this.clearMidnightTimer();try{const n=this.model.riddle,i=(new Date).toISOString().split("T")[0];let r=e;(r<cp||r>i)&&(r=i);const s=new URL(window.location.href);r===i?s.searchParams.delete("date"):s.searchParams.set("date",r),window.history.pushState({},"",s.toString()),n&&this.detachListenerFromRiddle(n.date,n.locale),this.model.solverCount=0,await this.fetchRiddle(r,t),r===i?(this.setupMidnightTimer(),this.setupVisibilityHandler()):this.clearVisibilityHandler(),zd.redraw()}finally{this.riddleLoading=!1}}}}const Wp=e=>{const{view:t,showClose:n}=e.attrs,{model:i,actions:r}=t,s=i.state;return{view:()=>zd(".board-help",{title:Cp("Hvernig reitirnir margfalda stigin")},[n?zd(".board-help-close",{title:Cp("Loka þessari hjálp"),onclick:e=>{s&&(s.beginner=!1,r.setUserPref({beginner:!1})),e.preventDefault()}},Lp("remove")):null,zd(".board-colors",[zd(".board-color[id='triple-word']",["3 x",zd("br"),kp("orð")]),zd(".board-color[id='double-word']",["2 x",zd("br"),kp("orð")]),zd(".board-color[id='triple-letter']",["3 x",zd("br"),kp("stafur")]),zd(".board-color[id='double-letter']",["2 x",zd("br"),kp("stafur")]),zd(".board-color[id='single-letter']",["1 x",zd("br"),kp("stafur")])])])}},Gp=182,Kp=210,Yp=['<path d="M50.0335 81.1768V58.6393C50.0335 56.9025 48.7821 54.7618 47.2876 53.8732L27.7859 42.6044C26.2932 41.7158 23.7887 41.7158 22.296 42.6044L2.75319 53.8732C1.2587 54.7618 0.00732422 56.9025 0.00732422 58.6393V81.1768C0.00732422 82.9136 1.2587 85.0543 2.75319 85.9428L16.3591 93.7785C18.6617 95.0306 20.2366 97.4944 20.2366 100.322V115.145C20.2366 117.972 18.6617 120.436 16.3591 121.688L7.35643 126.898L2.79251 129.524C1.29981 130.412 0.0484453 132.553 0.0484453 134.29V156.827C0.0484453 158.564 1.29981 160.705 2.79251 161.593L22.296 172.862C23.7887 173.751 26.2932 173.751 27.7859 172.862L47.2876 161.593C48.7821 160.705 50.0335 158.564 50.0335 156.827V134.29C50.0335 132.553 48.7821 130.412 47.2876 129.524L33.6817 121.688C31.3791 120.436 29.806 117.972 29.806 115.145V100.322C29.806 97.4944 31.3791 95.0306 33.6817 93.7785L47.2876 85.9428C48.8232 85.0543 50.0335 82.9136 50.0335 81.1768Z" fill="#F17736"/>','<path d="M25.0401 73.1002C25.0401 71.3633 23.7887 69.2227 22.296 68.3341L2.75319 57.0653C1.2587 56.1767 0.00732422 56.9037 0.00732422 58.6404V81.1782C0.00732422 82.9149 1.2587 85.0556 2.75319 85.9441L22.2549 97.2129C23.7494 98.1015 25.0007 97.3745 25.0007 95.6377L25.0401 73.1002Z" fill="#FFAA88"/>','<path d="M73.9793 88.4472L68.2856 91.7188C66.9126 92.5267 65.7417 94.3846 65.5397 96.0405V96.0809V96.2021V96.4848V103.028C65.4986 100.524 64.1668 98.0601 61.7838 96.6868L48.9859 89.2954C46.5225 87.8818 43.6157 88.003 41.3543 89.3762L27.7466 97.2118C26.2539 98.0601 25.0007 97.3734 25.0007 95.6367V73.0989C25.0007 71.3622 26.2539 69.2217 27.7466 68.333L47.2483 57.0642C47.6934 56.8219 48.0974 56.7007 48.4603 56.7007C49.3488 56.7007 49.9941 57.4277 49.9941 58.6393V74.351C49.9137 76.9764 51.2866 79.6018 53.7089 81.0155L66.5086 88.4068C68.972 89.7801 71.7572 89.6993 73.9793 88.4472Z" fill="#C94314"/>','<path d="M25.0401 148.791C25.0401 147.054 23.7887 144.913 22.296 144.024L2.75319 132.756C1.2587 131.867 0.00732422 132.594 0.00732422 134.331V156.869C0.00732422 158.605 1.2587 160.746 2.75319 161.634L22.2549 172.903C23.7494 173.792 25.0007 173.065 25.0007 171.328L25.0401 148.791Z" fill="#FFAA88"/>','<path d="M50.035 156.869C50.035 158.605 48.7837 160.746 47.2892 161.634L27.7875 172.903C26.293 173.792 25.0416 173.065 25.0416 171.328V148.791C25.0416 147.054 26.293 144.913 27.7875 144.024L47.2892 132.756C48.7837 131.867 50.035 132.594 50.035 134.331V156.869Z" fill="#C94314"/>','<path d="M115.566 96.4844V119.022C115.566 120.759 114.313 122.899 112.821 123.788L93.3189 135.057C91.9853 135.824 89.9258 135.905 88.392 135.34C88.3116 135.299 88.2311 135.299 88.1507 135.259C88.1096 135.218 88.0685 135.218 87.988 135.178C87.9487 135.138 87.8665 135.138 87.8271 135.097L68.3254 123.828C68.1234 123.707 67.9608 123.586 67.7587 123.424C67.5979 123.263 67.3959 123.101 67.235 122.94C66.266 121.89 65.5385 120.355 65.5385 119.062V103.351C65.5385 103.229 65.5385 103.149 65.5385 103.028V96.4844C65.5385 96.4036 65.5385 96.3228 65.5385 96.2018C65.5385 96.1614 65.5385 96.121 65.5385 96.0806V96.0402C65.7011 94.3843 66.872 92.5261 68.2843 91.7185L73.9781 88.4468L87.786 80.4497C89.3198 79.561 91.7832 79.561 93.2777 80.4497L112.779 91.7185C114.354 92.6069 115.566 94.7477 115.566 96.4844Z" fill="#F17736"/>','<path d="M90.573 133.482C90.573 135.097 89.5218 135.824 88.1489 135.259C88.1096 135.219 88.0684 135.219 87.988 135.178C87.9487 135.138 87.8664 135.138 87.8271 135.097L68.3254 123.829C68.1234 123.707 67.9608 123.586 67.7587 123.425C67.5979 123.263 67.3958 123.102 67.235 122.94C66.266 121.89 65.5385 120.355 65.5385 119.063V103.351C65.5385 103.23 65.5385 103.149 65.5385 103.028V96.4847C65.5385 96.4039 65.5385 96.3231 65.5385 96.2019C65.5385 96.1615 65.5385 96.1211 65.5385 96.0807V96.0403C65.7405 94.6268 66.872 94.1016 68.2843 94.9094L76.6828 99.7561L87.8271 106.178C89.3609 107.067 90.573 109.207 90.573 110.944V133.482Z" fill="#FFAA88"/>','<path d="M115.566 16.7012V39.2388C115.566 40.9757 114.313 43.1162 112.821 44.0049L93.3189 55.2737C91.9853 56.0411 89.9258 56.1219 88.392 55.5563C88.3116 55.5159 88.2311 55.5159 88.1507 55.4757C88.1096 55.4353 88.0685 55.4353 87.988 55.3949C87.9487 55.3545 87.8665 55.3545 87.8271 55.3141L68.3254 44.0453C68.1234 43.9241 67.9608 43.8029 67.7587 43.6413C67.5979 43.4798 67.3959 43.3182 67.235 43.1566C66.266 42.1066 65.5385 40.5717 65.5385 39.2792V23.5675C65.5385 23.4463 65.5385 23.3657 65.5385 23.2444V16.7012C65.5385 16.6204 65.5385 16.5396 65.5385 16.4186C65.5385 16.3782 65.5385 16.3378 65.5385 16.2974V16.257C65.7011 14.601 66.872 12.7429 68.2843 11.9353L73.9781 8.66365L87.786 0.666489C89.3198 -0.222163 91.7832 -0.222163 93.2777 0.666489L112.779 11.9353C114.354 12.8237 115.566 14.9645 115.566 16.7012Z" fill="#F17736"/>','<path d="M89.6624 31.5736C89.6624 29.9159 88.4316 27.8729 86.9616 27.0247L67.7803 16.2696C66.3104 15.4216 65.0796 16.1154 65.0796 17.773V39.2833C65.0796 40.9409 66.3104 42.9841 67.7803 43.832L86.9616 54.5871C88.4316 55.4353 89.6624 54.7414 89.6624 53.0838V31.5736Z" fill="#FFAA88"/>','<path d="M115.691 38.9886C115.691 40.7689 114.388 42.9634 112.831 43.8742L92.5219 55.426C90.9673 56.3369 89.6622 55.5916 89.6622 53.8113V30.7077C89.6622 28.9272 90.9673 26.7329 92.5219 25.8219L112.831 14.2702C114.388 13.3593 115.691 14.1045 115.691 15.8848V38.9886Z" fill="#C94314"/>','<path d="M115.566 169.984V192.521C115.566 194.258 114.313 196.399 112.821 197.288L93.3189 208.556C91.9853 209.324 89.9258 209.405 88.392 208.839C88.3116 208.799 88.2311 208.799 88.1507 208.758C88.1096 208.718 88.0685 208.718 87.988 208.678C87.9487 208.637 87.8665 208.637 87.8271 208.597L68.3254 197.328C68.1234 197.207 67.9608 197.086 67.7587 196.924C67.5979 196.763 67.3959 196.601 67.235 196.439C66.266 195.389 65.5385 193.854 65.5385 192.562V176.85C65.5385 176.729 65.5385 176.648 65.5385 176.527V169.984C65.5385 169.903 65.5385 169.822 65.5385 169.701C65.5385 169.661 65.5385 169.62 65.5385 169.58V169.54C65.7011 167.884 66.872 166.026 68.2843 165.218L73.9781 161.946L87.786 153.949C89.3198 153.061 91.7832 153.061 93.2777 153.949L112.779 165.218C114.354 166.106 115.566 168.247 115.566 169.984Z" fill="#F17736"/>','<path d="M90.573 206.981C90.573 208.596 89.5218 209.323 88.1489 208.758C88.1096 208.718 88.0684 208.718 87.988 208.677C87.9487 208.637 87.8664 208.637 87.8271 208.596L68.3254 197.328C68.1234 197.206 67.9608 197.085 67.7587 196.924C67.5979 196.762 67.3958 196.601 67.235 196.439C66.266 195.389 65.5385 193.854 65.5385 192.562V176.85C65.5385 176.729 65.5385 176.648 65.5385 176.527V169.984C65.5385 169.903 65.5385 169.822 65.5385 169.701C65.5385 169.661 65.5385 169.62 65.5385 169.58V169.539C65.7405 168.126 66.872 167.601 68.2843 168.408L76.6828 173.255L87.8271 179.677C89.3609 180.566 90.573 182.706 90.573 184.443V206.981Z" fill="#FFAA88"/>','<path d="M116.102 192.239C116.102 193.975 114.851 196.116 113.356 197.005L93.8544 208.273C92.3617 209.162 91.1085 208.435 91.1085 206.698V184.161C91.1085 182.424 92.3617 180.283 93.8544 179.395L113.356 168.126C114.851 167.237 116.102 167.964 116.102 169.701V192.239Z" fill="#C94314"/>','<path d="M139.467 126.291L138.418 126.896L133.855 129.522C132.482 130.33 131.312 132.188 131.11 133.844V134.005V134.248V140.791C131.068 138.286 129.737 135.823 127.354 134.449L114.554 127.058C112.092 125.644 109.184 125.766 106.924 127.139L93.3164 134.974C91.7826 135.823 90.5706 135.136 90.5706 133.359V110.821C90.5706 109.084 91.8219 106.944 93.3164 106.055L112.818 94.7864C114.313 93.898 115.564 94.6248 115.564 96.3617V112.073C115.484 114.699 116.856 117.324 119.279 118.738L132.078 126.129C134.46 127.583 137.247 127.543 139.467 126.291Z" fill="#C94314"/>','<path d="M160.869 100.362V115.145C160.869 117.972 162.444 120.436 164.745 121.688L178.353 129.524C179.845 130.412 181.099 132.553 181.099 134.29V156.827C181.099 158.564 179.845 160.705 178.353 161.593L158.851 172.862C157.478 173.629 155.338 173.71 153.844 173.104C153.763 173.064 153.722 173.064 153.642 173.024C153.561 172.983 153.44 172.943 153.359 172.862L133.858 161.593C133.493 161.391 133.13 161.068 132.808 160.745C131.837 159.695 131.112 158.16 131.112 156.827V141.156C131.112 141.035 131.112 140.954 131.112 140.833V134.29C131.112 134.209 131.112 134.128 131.112 134.047C131.112 134.007 131.112 133.926 131.112 133.886C131.273 132.23 132.444 130.331 133.858 129.564L138.42 126.939L139.469 126.333L140.803 125.565L147.424 121.728C147.585 121.647 147.707 121.567 147.868 121.486C149.927 120.153 151.3 117.851 151.3 115.185V100.402C151.3 97.5752 149.725 95.1114 147.424 93.8593L133.858 86.0236C132.363 85.135 131.112 82.9944 131.112 81.2577V58.6393C131.112 56.9025 132.363 54.7618 133.858 53.8732L153.359 42.6044C154.893 41.7158 157.356 41.7158 158.851 42.6044L178.353 53.8732C179.886 54.7618 181.099 56.9025 181.099 58.6393V81.1769C181.099 82.0653 180.775 83.0348 180.291 83.8829C179.806 84.7311 179.12 85.4986 178.353 85.9428L164.745 93.7785C162.444 95.071 160.869 97.5348 160.869 100.362Z" fill="#F17736"/>','<path d="M156.105 73.1002C156.105 71.3633 154.854 69.2227 153.359 68.3341L133.858 57.0653C132.363 56.1767 131.112 56.9037 131.112 58.6404V81.1782C131.112 82.9149 132.363 85.0556 133.858 85.9441L153.359 97.2129C154.854 98.1015 156.105 97.3745 156.105 95.6377V73.1002Z" fill="#FFAA88"/>','<path d="M181.096 81.1782C181.096 82.9149 179.845 85.0556 178.35 85.9441L158.849 97.2129C157.356 98.1015 156.103 97.3745 156.103 95.6377V73.1002C156.103 71.3633 157.356 69.2227 158.849 68.3341L178.35 57.0653C179.845 56.1767 181.096 56.9037 181.096 58.6404V81.1782Z" fill="#C94314"/>','<path d="M156.105 171.328C156.105 172.903 155.136 173.63 153.844 173.145C153.763 173.105 153.722 173.105 153.642 173.064C153.561 173.024 153.44 172.984 153.359 172.903L133.857 161.634C133.493 161.432 133.13 161.109 132.808 160.786C131.837 159.736 131.112 158.201 131.112 156.868V141.197C131.112 141.076 131.112 140.995 131.112 140.874V134.331C131.112 134.25 131.112 134.169 131.112 134.088C131.112 134.048 131.112 133.967 131.112 133.927C131.314 132.513 132.443 131.988 133.857 132.796L142.215 137.642L153.359 144.064C154.893 144.953 156.105 147.094 156.105 148.83V171.328Z" fill="#FFAA88"/>','<path d="M181.096 156.869C181.096 158.605 179.845 160.746 178.35 161.634L158.849 172.903C157.356 173.792 156.103 173.065 156.103 171.328V148.791C156.103 147.054 157.356 144.913 158.849 144.024L178.35 132.756C179.845 131.867 181.096 132.594 181.096 134.331V156.869Z" fill="#C94314"/>'],Jp=`\n<svg preserveAspectRatio="xMidYMid meet" width="100%" height="100%" viewBox="0 0 182 210" fill="none" xmlns="http://www.w3.org/2000/svg">\n${Yp.join("\n")}\n</svg>`,Zp=zd.trust(Jp),Xp=Math.max(Gp,Kp)+40,Qp=`\n<svg preserveAspectRatio="xMidYMid meet" width="100%" height="100%" viewBox="0 0 ${Xp} ${Xp}" fill="none" xmlns="http://www.w3.org/2000/svg">\n ${`<circle cx="${Xp/2}" cy="${Xp/2}" r="${Xp/2-5}" fill="#ffffff"/>`}\n <svg x="${(Xp-Gp)/2}" y="${(Xp-Kp)/2}" width="182" height="210" viewBox="0 0 182 210">\n ${Yp.join("\n")}\n </svg>\n</svg>`,eg=zd.trust(Qp),tg=e=>{const{attrs:t}=e,{width:n,withCircle:i}=t;return{view:()=>{const e={};return void 0!==n&&(e.width=`${n}px`),zd(".animated-netskrafl-logo",{style:e},i?eg:Zp)}}},ng="netskrafl_settings",ig={autoZoom:!0,legacyColors:!1};let rg=null;function sg(){if(rg)return rg;try{const e=localStorage.getItem(ng);if(e){const t={...ig,...JSON.parse(e)};return rg=t,t}}catch(e){console.error("Failed to load settings:",e)}const e={...ig};return rg=e,e}function ag(e){try{localStorage.setItem(ng,JSON.stringify(e)),rg=e}catch(e){console.error("Failed to save settings:",e)}}function og(){return sg().autoZoom}function lg(e){const t=sg();t.autoZoom=e,ag(t)}function cg(){return sg().legacyColors}function ug(e){const t=sg();t.legacyColors=e,ag(t),Vp(e)}const hg={oninit:e=>{e.state.show=!1,e.state.ival=setTimeout((()=>{e.state.show=!0,e.state.ival=0,zd.redraw()}),800)},onremove:e=>{e.state.ival&&clearTimeout(e.state.ival),e.state.ival=0},view:e=>{if(e.state.show)return zd(".modal-dialog",{id:"spinner-dialog",style:{visibility:"visible"}},zd(".animated-spinner",zd(tg,{withCircle:!0})))}},dg=()=>{let e="",t="";return{oninit:n=>{e=`${n.attrs.initialValue}`,t=n.attrs.class,t=t?`.${t.split(" ").join(".")}`:""},view:n=>{const{id:i,maxlength:r,tabindex:s,autocomplete:a}=n.attrs;return zd(`input.text${t}`,{id:i,name:i,maxlength:r,tabindex:s,autocomplete:a,value:e,oninput:t=>{e=`${t.target.value}`}})}}},pg={view:e=>{const t={onmouseout:Rp,onmouseover:xp};return Object.assign(t,e.attrs),zd(".modal-close",t,e.children)}},gg={view:e=>{const t=e.attrs.item,n=e.attrs.view,i=n.actions,r=0===t.userid.indexOf("robot-");return zd("span.list-ch",{title:Cp("Skora á"),onclick:e=>{t.chall?(t.chall=!1,i.retractChallenge(t.userid,"")):r?i.startRobotGame(t.userid):n.pushDialog("challenge",t),e.preventDefault()}},Lp("hand-right",void 0,!t.chall))}},fg={view:e=>{const t=e.attrs.item,n=e.attrs.view,i=!t.userid||0===t.userid.indexOf("robot-");return zd("span.list-info",{title:Cp("Skoða feril"),onclick:e=>{i||n.showUserInfo(t.userid,t.nick,t.fullname),e.preventDefault()}},i?"":zd("span.usr-info"))}},mg={oninit:e=>{const{state:t}=e;t.online=!1},oncreate:e=>{const{attrs:t,state:n}=e;if(n.online=!!t.online,void 0===t.online){(async()=>{try{const e=await rp(t.state,{method:"POST",url:"/onlinecheck",body:{user:t.userId}});n.online=e?.online}catch(e){n.online=!1}})()}},view:e=>{const{attrs:t,state:n}=e,i=n.online||!!t.online;return zd("span",{id:t.id,title:Cp(i?"Er álínis":"Álínis?"),class:i?"online":""})}},vg={view:e=>{const t=e.attrs.view,n=t.model;return n.state?.netskraflUserId?zd(".userid",{title:Cp("player_info"),onclick:e=>{t.pushDialog("userprefs",{}),e.preventDefault()}},[Lp("address-book"),Dp(),n.state.userNick]):""}},yg={view:e=>{const{manual:t,header:n}=e.attrs,i=Cp("Keppnishamur"),r=!0===t&&!n;return zd("span.list-manual",r||n?{title:i}:{},Lp("lightbulb",void 0,!r))}},wg=e=>{let t=e.attrs.initialSelection??0;const n=e.attrs.defaultClass??"",i=e.attrs.selectedClass||"selected";return{view:e=>{const r=e.children;if(Array.isArray(r))return zd("div",{onclick:e=>{const n=r.map((e=>e.dom));for(let i=0;i<n.length;i++)n[i].contains(e.target)&&(t=i);e.stopPropagation()}},r.map(((e,r)=>{const s=e;return s.attrs.className=r===t?`${n} ${i}`:n,e})))}}},bg={view:()=>zd(".info",{title:Cp("Upplýsingar og hjálp")},zd(zd.route.Link,{href:"/help",class:"iconlink"},Lp("info-sign")))},_g={view:e=>zd(".logo"+(e.attrs.hidden?".hidden":""),zd(zd.route.Link,{href:"/main",class:"nodecorate"},Lp("home")))},kg={view:e=>zd(".header-logo"+(e.attrs.hidden?".hidden":""),zd(zd.route.Link,{href:"/main",class:"backlink"},Lp("home")))},Cg=()=>{function e(e,t){const n=document.querySelector(`#${e} #opt1`)?.classList,i=document.querySelector(`#${e} #opt2`)?.classList;n?.toggle("selected"),i?.toggle("selected"),void 0!==t&&i&&t(i.contains("selected"))}return{view:({attrs:{id:t,small:n,funcToggle:i,state:r,tabindex:s,title:a,opt1:o,opt2:l}})=>{const c=`${t}-toggler`,u=".option"+(n?".small":"");return zd.fragment({},[zd(`input.checkbox.${t}`,{type:"checkbox",id:t,name:t,checked:r,value:"True"}),zd(".toggler",{id:c,tabindex:s,title:a,onclick:t=>{e(c,i),t.preventDefault()},onkeypress:t=>{" "===t.key&&(e(c,i),t.preventDefault())}},[zd(u+(r?"":".selected"),{id:"opt1"},o),zd(u+(r?".selected":""),{id:"opt2"},l)])])}}},Sg=e=>{const t=e.attrs.view,n=t.model;function i(e){n.state&&(n.state.ready=e,t.actions.setUserPref({ready:e}))}return{view:()=>zd(Cg,{id:"ready",state:n.state?.ready??!1,tabindex:2,opt1:Dp(),opt2:Lp("thumbs-up"),funcToggle:i,small:!0,title:Cp("Tek við áskorunum!")})}},Tg=e=>{const t=e.attrs.view,n=t.model;function i(e){n.state&&(n.state.readyTimed=e,t.actions.setUserPref({ready_timed:e}))}return{view:()=>zd(Cg,{id:"timed",state:n.state?.readyTimed??!1,tabindex:3,opt1:Dp(),opt2:Lp("time"),funcToggle:i,small:!0,title:Cp("Til í viðureign með klukku!")})}},Ig=e=>{const{model:t}=e.attrs.view;function n(e){e&&null!==t.state&&Op(t.state,"your-turn")}return{view:({attrs:{state:e,tabindex:t}})=>zd(Cg,{id:"audio",state:e,tabindex:t,opt1:Lp("volume-off"),opt2:Lp("volume-up"),funcToggle:n,small:!0,title:Cp("Hljóð á/af")})}},Eg=e=>{const{model:t}=e.attrs.view;function n(e){e&&null!==t.state&&Op(t.state,"you-win")}return{view:({attrs:{state:e,tabindex:t}})=>zd(Cg,{id:"fanfare",state:e,tabindex:t,opt1:Lp("volume-off"),opt2:Lp("volume-up"),funcToggle:n,small:!0,title:Cp("Lúðraþytur á/af")})}},Pg=()=>({view:({attrs:{state:e,tabindex:t}})=>zd(Cg,{id:"beginner",state:e,tabindex:t,opt1:Dp(),opt2:Lp("ok"),small:!0})}),xg=()=>({view:({attrs:{state:e,tabindex:t}})=>zd(Cg,{id:"fairplay",state:e,tabindex:t,opt1:Dp(),opt2:Lp("edit"),small:!0})}),Rg=()=>{let e=cg();function t(t){e=t,ug(t)}return{view:({attrs:{tabindex:n}})=>zd(Cg,{id:"legacy-colors",state:e,tabindex:n,opt1:Dp(),opt2:Lp("brush"),funcToggle:t,small:!0})}},Lg=()=>{function e(e){e.cancelBlankDialog(),qp()}function t(e,t){e.placeBlank(t),qp()}function n(e){const n=e.alphabet;let i=n.length,r=0;const s=[];for(;i>0;){const a=[];for(let s=0;s<6&&i>0;s++){const s=n[r++];a.push(zd("td",{onclick:n=>{n.preventDefault(),t(e,s)},onmouseover:xp,onmouseout:Rp},zd(".blank-choice.netskrafl-tile.netskrafl-racktile",s))),i--}s.push(zd("tr",a))}return s}return{view:i=>{const{game:r}=i.attrs;if(r)return zd(".modal-dialog",{id:"blank-dialog",style:{visibility:"visible"},tabindex:-1,onkeydown:n=>function(n,i){const{key:r}=i;if("Escape"===r)return i.preventDefault(),i.stopPropagation(),void e(n);if(i.isComposing)return;const s=r.normalize("NFC");if(1===s.length){const e=s.toLowerCase();n.alphabet.includes(e)&&(i.preventDefault(),i.stopPropagation(),t(n,e))}}(r,n),oncompositionend:e=>function(e,n){const{data:i}=n,r=i?.normalize("NFC");if(r&&1===r.length){const i=r.toLowerCase();e.alphabet.includes(i)&&(n.preventDefault(),n.stopPropagation(),t(e,i))}}(r,e),oncreate:e=>e.dom.focus()},zd(".ui-widget.ui-widget-content.ui-corner-all",{id:"blank-form"},[Sp("p","Hvaða staf táknar auða flísin?"),zd(".rack.blank-rack",zd("table.board",{id:"blank-meaning"},n(r))),zd(pg,{id:"blank-close",title:Cp("Hætta við"),onclick:t=>{t.preventDefault(),e(r)}},Lp("remove"))]))}}};function Ng(e,t,n,i,r,s,a){const o={onmouseout:Rp,onmouseover:xp,style:{visibility:!1===s?"hidden":"visible"}};return i&&(o.title=i),a&&(o.id=a),o.onclick=t?e=>e.preventDefault():e=>{n?.(),e.preventDefault()},zd(`.${e}${t?".disabled":""}`,o,r)}const Dg={view:e=>{const{game:t}=e.attrs,n=[".score"];t.manual?n.push("manual"):t.wordGood&&(n.push("word-good"),void 0!==t.currentScore&&t.currentScore>=50&&n.push("word-great"));const i=void 0===t.currentScore?"?":t.currentScore.toString();return zd(n.join("."),{title:i},i)}},Ag={view:e=>{const{view:t,game:n,disabled:i,visible:r=!0}=e.attrs;if(n)return Ng("recallbtn",!!i,(()=>{n.resetRack(),t.updateScale()}),Cp("Færa stafi aftur í rekka"),Lp("down-arrow"),r)}},Mg={view:e=>{const{game:t,disabled:n,visible:i=!0}=e.attrs;if(t)return Ng("scramblebtn",!!n,(()=>t.rescrambleRack()),Cp("Stokka upp rekka"),Lp("random"),i)}},Og={view:e=>{const{view:t,game:n}=e.attrs;if(!n)return;const i=n.buttonState();if(i.showRecall&&!i.showingDialog)return zd(Ag,{view:t,game:n});const r=i.showScramble&&!i.tilesPlaced,s=i.showingDialog;return zd(Mg,{view:t,game:n,visible:r,disabled:s})}},jg={view:e=>{const{view:t}=e.attrs,{game:n}=t.model,i=[];if(!n)return i;const r=n.buttonState();if(i.push(zd(".word-check"+(r.wordGood?".word-good":"")+(r.wordBad?".word-bad":""))),r.showChallenge){const e=(r.tilesPlaced||r.showingDialog)&&!r.lastChallenge;i.push(Ng("challenge",e,(()=>n.submitChallenge()),"Véfenging (röng kostar 10 stig)",Lp("ban-circle")))}if(r.showRecall&&i.push(zd(Ag,{view:t,game:n,disabled:r.showingDialog})),r.showScramble&&i.push(zd(Mg,{view:t,game:n,disabled:r.showingDialog})),r.showMove){const e=Cp("submit_move"),s=!r.tilesPlaced||r.showingDialog;i.push(Ng("submitmove",s,(()=>{n.submitMove(),t.updateScale()}),e,[e,Lp("play")]))}if(r.showMoveMobile){const e=["submitmove"];let s=void 0!==n.currentScore;n.manual?e.push("manual"):r.wordGood?(e.push("word-good"),void 0!==n.currentScore&&n.currentScore>=50&&e.push("word-great")):r.wordBad&&(e.push("word-bad"),s=!1);const a=void 0===n.currentScore?"?":n.currentScore.toString(),o=[zd("span.score-mobile",a)];let l;r.canPlay&&s?o.push(Lp("play")):o.push(Lp("remove")),l=r.canPlay?s?()=>{n.submitMove(),t.updateScale()}:()=>{}:()=>{const e=document.querySelector("div.opp-turn");e&&(e.classList.toggle("flashing",!0),setTimeout((()=>e.classList.toggle("flashing",!1)),1200))},i.push(Ng(e.join("."),r.showingDialog,l,a,o,!0,"move-mobile"))}if(r.showForceResignMobile){const e=Cp("Þvinga til uppgjafar");i.push(Ng("force-resign",r.showingDialog,(()=>n.forceResign()),e,e))}if(r.showPass){const e=(r.tilesPlaced||r.showingDialog)&&!r.lastChallenge;i.push(Ng("submitpass",e,(()=>n.submitPass()),Cp("Pass"),Lp("forward")))}if(r.showExchange){const e=!r.exchangeAllowed||r.tilesPlaced||r.showingDialog;i.push(Ng("submitexchange",e,(()=>n.submitExchange()),Cp("Skipta stöfum"),Lp("refresh")))}if(r.showResign&&i.push(Ng("submitresign",r.showingDialog,(()=>n.submitResign()),Cp("Gefa viðureign"),Lp("fire"))),!r.gameOver&&!r.localTurn&&!n.moveInProgress&&null!==n.player){const e=n.nickname[1-n.player];i.push(zd(".opp-turn",{style:{visibility:"visible"}},[zd("span.move-indicator"),Dp(),zd("strong",Cp("opp_move",{opponent:e})),Dp(),r.tardyOpponent?zd("span.yesnobutton",{id:"force-resign",onclick:e=>{e.preventDefault(),n.forceResign()},onmouseout:Rp,onmouseover:xp,title:Cp("14 dagar liðnir án leiks")},Cp("Þvinga til uppgjafar")):""]))}if(r.tilesPlaced){const e=zd(Dg,{game:n});e&&i.push(e)}return n?.moveInProgress&&i.push(zd(".waitmove",zd(".animated-waitmove",zd(tg,{withCircle:!1})))),zd(".buttons",i)}};class Fg{getEventCoordinates(e){if(e instanceof MouseEvent)return{x:e.clientX,y:e.clientY};if(e instanceof TouchEvent){const t=e.touches[0];return t?{x:t.clientX,y:t.clientY}:{x:this.lastX,y:this.lastY}}return{x:0,y:0}}static rectContains(e,t){return t.x>=e.left&&t.x<e.right&&t.y>=e.top&&t.y<e.bottom}constructor(e,t,n){this.parentElement=null,this.parentRect=null,this.offsetX=0,this.offsetY=0,this.centerX=0,this.centerY=0,this.startX=0,this.startY=0,this.lastX=0,this.lastY=0,this.currentDropTarget=null,this.dragStarted=!1;const i=e.currentTarget;i.addEventListener("click",(e=>e.stopPropagation()),{once:!0});const r=this.getEventCoordinates(e);this.startX=r.x,this.startY=r.y,this.lastX=r.x,this.lastY=r.y,this.draggedElement=i,this.dropHandler=t,this.clickHandler=n,this.parentElement=i.parentElement,this.parentRect=this.parentElement?.getBoundingClientRect()??null,this.boundEventHandlers={drag:this.drag.bind(this),endDrag:this.endDrag.bind(this),cancelDrag:this.cancelDrag.bind(this)};const{drag:s,endDrag:a,cancelDrag:o}=this.boundEventHandlers;e instanceof MouseEvent?(document.addEventListener("mousemove",s),document.addEventListener("mouseup",a),document.addEventListener("mouseleave",o)):e instanceof TouchEvent&&(document.addEventListener("touchmove",s,{passive:!1}),document.addEventListener("touchend",a),document.addEventListener("touchcancel",a)),document.addEventListener("visibilitychange",o),window.addEventListener("blur",o)}initiateDrag(e){e.preventDefault(),this.dragStarted=!0;const t=this.draggedElement,n=t.getBoundingClientRect(),{offsetWidth:i,offsetHeight:r}=t,s=t.closest(".netskrafl-container"),a=s?.classList.contains("legacy-colors");t.classList.add("dragging"),a&&t.classList.add("legacy-colors"),document.body.appendChild(t);const{offsetWidth:o,offsetHeight:l}=t;this.offsetX=this.startX-n.left+(o-i)/2,this.offsetY=this.startY-n.top+(l-r)/2,this.centerX=o/2,this.centerY=l/2,this.updatePosition(this.lastX,this.lastY)}removeDragListeners(){const{drag:e,endDrag:t,cancelDrag:n}=this.boundEventHandlers;document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",t),document.removeEventListener("mouseleave",n),document.removeEventListener("touchmove",e),document.removeEventListener("touchend",t),document.removeEventListener("touchcancel",t),document.removeEventListener("visibilitychange",n),window.removeEventListener("blur",n)}elementCenter(e,t){return{x:e-this.offsetX+this.centerX,y:t-this.offsetY+this.centerY}}findDropTargetAtPoint(e,t){const{x:n,y:i}=this.elementCenter(e,t);for(const e of document.elementsFromPoint(n,i)){if(e.classList.contains("drop-target"))return e;if(e.classList.contains("not-target"))return null}return null}updatePosition(e,t){this.lastX=e,this.lastY=t,this.draggedElement.style.left=e-this.offsetX+"px",this.draggedElement.style.top=t-this.offsetY+"px"}updateDropTarget(e,t){const n=this.findDropTargetAtPoint(e,t);n!==this.currentDropTarget&&(this.currentDropTarget&&this.currentDropTarget.classList.remove("over"),n&&n.classList.add("over"),this.currentDropTarget=n)}drag(e){e.stopPropagation();const t=this.getEventCoordinates(e);if(this.lastX=t.x,this.lastY=t.y,!this.dragStarted){return void(Math.sqrt((t.x-this.startX)**2+(t.y-this.startY)**2)>=10&&this.initiateDrag(e))}e.preventDefault(),this.updatePosition(t.x,t.y),this.updateDropTarget(t.x,t.y);const n=null!==this.currentDropTarget||this.parentRect&&Fg.rectContains(this.parentRect,t);this.draggedElement.classList.toggle("no-drop",!n)}resetPosition(){this.draggedElement.style.left="",this.draggedElement.style.top="",this.draggedElement.classList.remove("dragging","no-drop","legacy-colors"),this.parentElement&&this.parentElement.appendChild(this.draggedElement)}cancelDrag(){this.removeDragListeners(),this.currentDropTarget&&this.currentDropTarget.classList.remove("over"),this.dragStarted&&this.resetPosition()}endDrag(e){if(e.stopPropagation(),this.removeDragListeners(),!this.dragStarted)return void(this.clickHandler&&this.clickHandler(this.draggedElement));e.preventDefault();const t=this.getEventCoordinates(e),n=this.findDropTargetAtPoint(t.x,t.y);this.currentDropTarget&&this.currentDropTarget.classList.remove("over"),this.draggedElement.style.visibility="hidden",this.resetPosition(),n&&this.dropHandler(this.draggedElement,n),setTimeout((()=>{this.draggedElement.style.visibility="visible"}))}}const zg=(e,t,n)=>i=>{var r,s,a;return s=(i,r)=>{if(!t)return;const s=r.id;if(!s)return;let a="";if("board-background"===s?a="R1":s.startsWith("sq_")&&(a=s.slice(3)),a)try{t.attemptMove(n,a),e.updateScale(),zd.redraw()}catch(e){console.error(e)}},a=()=>{t&&(n===t.selectedSq?t.selectedSq=null:t.selectedSq=n,zd.redraw())},(r=i).stopPropagation(),new Fg(r,s,a),i.redraw=!1,!1},Ug=()=>({view:e=>{const{view:t,game:n,coord:i,opponent:r}=e.attrs;if(!n)return;const s="R"===i[0],a=n.tiles[i],o=[".netskrafl-tile"],l={};if("?"===a.tile&&o.push("netskrafl-blanktile"),"q".includes(a.letter)?o.push("netskrafl-extra-wide"):"zxmæ".includes(a.letter)&&o.push("netskrafl-wide"),s||a.draggable?(o.push(r?"netskrafl-freshtile":"netskrafl-racktile"),s&&"exchange"===n.showingDialog&&(a.xchg&&o.push("netskrafl-xchgsel"),l.onclick=e=>{a.xchg=!a.xchg,e.preventDefault()})):a.freshtile&&o.push("netskrafl-freshtile"),a.index){const e=150,t=`${(a.index*e).toString()}ms`;l.style=`animation-delay: ${t}`}if(i===n.selectedSq&&o.push("sel"),void 0!==a.highlight&&o.push(`highlight${a.highlight}`),a.draggable&&n.allowDragDrop()){const e=zg(t,n,i);l.onmousedown=e,l.ontouchstart=e}return zd(o.join("."),l,[" "===a.letter?Dp():a.letter,zd(".letterscore",a.score)])}}),$g={view:e=>{const{view:t,game:n,coord:i}=e.attrs;if(n)return zd("td.not-target",{id:`sq_${i}`,class:n.squareClass(i)},zd(Ug,{view:t,game:n,coord:i,opponent:!1}))}},qg={view:e=>{const{game:t,coord:n}=e.attrs;if(!t)return;let i=t.squareClass(n)||"";return i&&(i=`.${i}`),i+=e.attrs.opponent?".opp":".local",zd(`td${i}`,{id:`sq_${n}`},e.children)}},Bg={view:e=>{const{view:t,game:n,coord:i,isKeyboardTarget:r,keyboardDirection:s}=e.attrs;if(!n)return;let a=n.squareClass(i)||"";return a&&(a=`.${a}`),null!==n.askingForBlank&&n.askingForBlank.to===i&&(a+=".blinking"),i===n.startSquare&&n.localturn&&(a+=".center"),r&&(a+=".keyboard-target","V"===s&&(a+=".vertical")),zd(`td.drop-target${a}`,{id:`sq_${i}`,onclick:e=>{if(null!==n.selectedSq)return e.stopPropagation(),n.attemptMove(n.selectedSq,i),n.selectedSq=null,e.currentTarget.classList.remove("sel"),t.updateScale(),!1},onmouseover:e=>{null!==n.selectedSq&&e.currentTarget.classList.add("sel")},onmouseout:e=>{e.currentTarget.classList.remove("sel")}},e.children)}},Vg={view:e=>{const{view:t,game:n,review:i}=e.attrs;if(!n)return;const{model:r}=t,s=[],a=r.reviewMove??0,o=i&&0===a,l=i&&a>0&&a%2===n.player;for(let e=1;e<=7;e++){const r=`R${e}`;!o&&n&&r in n.tiles?i?s.push(zd(qg,{key:r,view:t,game:n,coord:r,opponent:l},zd(Ug,{view:t,game:n,coord:r,opponent:l}))):s.push(zd(Bg,{key:r,view:t,game:n,coord:r},zd(Ug,{view:t,game:n,coord:r,opponent:!1}))):i?s.push(zd(qg,{key:r,view:t,game:n,coord:r,opponent:!1})):s.push(zd(Bg,{key:r,view:t,game:n,coord:r}))}return zd("table.board",zd("tbody",zd("tr",s)))}},Hg={view:e=>{const{view:t,game:n,review:i}=e.attrs;return zd(".rack-row",[zd(".rack-left",zd(Og,{view:t,game:n})),zd(".rack",zd(Vg,{view:t,game:n,review:i}))])}},Wg={view:e=>{const{game:t}=e.attrs;return t.congratulate?zd("div",{id:"congrats"},[Lp("bookmark")," ",Sp("strong","Til hamingju með sigurinn!")]):t.over?zd("div",{id:"gameover"},[Lp("info-sign")," ",Sp("strong","Viðureigninni er lokið")]):void 0}},Gg={view:e=>{const{game:t}=e.attrs,n=t.currentError||"";if(n&&n in up){const e=t.currentMessage||"",i=Cp(up[n]),r=i.indexOf("{word}");let s;return s=r>=0?[i.slice(0,r),zd("span.errword",e),i.slice(r+6)]:[i],zd(".error",{style:{visibility:"visible"},onclick:e=>{t.resetError(),e.preventDefault()}},[Lp("exclamation-sign"),...s])}}},Kg={view:e=>{const{view:t,game:n}=e.attrs;let i=[];return n&&(i=[zd(Yg,{view:t,game:n,review:!1}),zd(Hg,{view:t,game:n,review:!1}),zd(jg,{view:t}),zd(Gg,{game:n}),zd(Wg,{game:n})],i=i.concat(t.vwDialogs())),zd(".board-area",i)}};const Yg={oninit:e=>{e.state.columnIdentifiers=function(){const e=[];e.push(zd("td"));for(let t=1;t<=15;t++)e.push(zd("td",t.toString()));return zd("tr.colid",e)}()},view:e=>{const{view:t,game:n,review:i}=e.attrs,r=t.isMobile(),s=i||r?null:n.getNextKeyboardSquare();function a(e){const r=[];r.push(zd("td.rowid",{key:`R${e}`},e));for(let a=1;a<=15;a++){const o=e+a.toString();n&&o in n.tiles?r.push(zd($g,{view:t,game:n,key:o,coord:o,opponent:!1})):i?r.push(zd(qg,{view:t,game:n,key:o,coord:o,opponent:!1})):r.push(zd(Bg,{view:t,game:n,key:o,coord:o,isKeyboardTarget:o===s,keyboardDirection:n?.getEffectiveKeyboardDirection()}))}return zd("tr",r)}const o=zd("tbody",function(){const t=[];t.push(e.state.columnIdentifiers);for(const e of"ABCDEFGHIJKLMNO")t.push(a(e));return t}()),l=zd("table.board",{},o);return zd(".board",{id:"board-parent",onclick:e=>{r&&t.boardScale>1&&function(e){const t=e.currentTarget;if(!t)return!1;const n=Date.now(),i=Ip.get(t)||0;return Ip.set(t,n),n-i<300}(e)&&(e.stopPropagation(),t.zoomOut())}},l)}},Jg={view:e=>{const{riddle:t,mode:n="desktop"}=e.attrs;if(!t)return zd("div");const i=t.currentScore,r=void 0!==i,s=["mobile"===n?".mobile-score":".gata-dagsins-score"];let a="0";t.tilesPlaced().length>0?r?t.wordGood?(a=i.toString(),i<t.warmBoundary?s.push(".cold"):i<t.hotBoundary?s.push(".warm"):s.push(".hot"),i>=t.bestPossibleScore&&s.push(".celebrate")):(s.push(".word-bad"),a=i.toString()):(s.push(".illegal"),a="?"):(s.push(".disabled"),a="0");const o="mobile"===n?".mobile-score-legend":".gata-dagsins-legend";return zd(`div${s.join("")}`,zd(`span${o}`,a))}},Zg={view:e=>{const{view:t}=e.attrs,{riddle:n}=t.model;if(!n)return zd(".gatadagsins-board-rack-wrapper","");const i=n.wordGood&&(n.currentScore||0)>=n.bestPossibleScore;return zd(".gatadagsins-board-rack-wrapper",[zd(".gatadagsins-board-area"+(i?".celebrate":""),[n?zd(Yg,{view:t,game:n,review:!1}):""]),zd(".gatadagsins-rack-area",[zd(".rack-left",zd(Og,{view:t,game:n})),zd(".rack",zd(Vg,{view:t,game:n,review:!1})),zd(Jg,{riddle:n})])])}},Xg={view:e=>{const t=e.attrs.onClose;return[zd(".modal-backdrop-netskrafl",{onclick:e=>{e.preventDefault()},onwheel:e=>{e.preventDefault(),e.stopPropagation()},ontouchmove:e=>{e.preventDefault(),e.stopPropagation()}}),zd(".modal-dialog.gatadagsins-help",zd(".modal-content",[zd("button.close",{onclick:t,"aria-label":"Loka"},Lp("remove")),zd(".modal-header",zd("h2","Um Gátu dagsins")),zd(".modal-body",[zd("p","Gáta dagsins er dagleg krossgátuþraut, svipuð skrafli, þar sem þú reynir að finna stigahæsta orðið sem hægt er að mynda með gefnum stöfum."),zd("h3","Hvernig á að spila"),zd("ul",[zd("li","Þú færð borð með allmörgum stöfum sem þegar hafa verið lagðir."),zd("li","Neðst á skjánum eru stafaflísar sem þú getur notað til að mynda orð."),zd("li","Dragðu flísar á borðið til að mynda orð, annaðhvort lárétt eða lóðrétt."),zd("li","Orðin verða að tengjast við stafi sem fyrir eru á borðinu."),zd("li","Þú sérð jafnóðum hvort lögnin á borðinu er gild og hversu mörg stig hún gefur."),zd("li","Þú getur prófað eins mörg orð og þú vilt - besta skorið þitt er vistað.")]),zd("h3","Stigagjöf"),zd("p","Þú færð stig fyrir hvern staf í orðinu, auk bónusstiga fyrir lengri orð:"),zd("ul",[zd("li","Hver stafur gefur 1-10 stig eftir gildi hans"),zd("li","Orð sem nota allar 7 stafaflísarnar gefa 50 stiga bónus"),zd("li",["Sumir reitir á borðinu ",zd("span.help-bonus-square.double-letter"),"tvöfalda eða ",zd("span.help-bonus-square.triple-letter"),"þrefalda stafgildið"]),zd("li",["Sumir reitir ",zd("span.help-bonus-square.double-word"),"tvöfalda eða ",zd("span.help-bonus-square.triple-word"),"þrefalda heildarorðgildið"])]),zd("h3","Hitamælir"),zd("p","Hitamælirinn hægra megin við borðið (sést ekki á farsímum) sýnir:"),zd("ul",[zd("li",zd("strong","Besta mögulega lögn:")," Hæstu stig sem hægt er að ná á þessu borði."),zd("li",zd("strong","Besta skor dagsins:")," Hæstu stig sem einhver leikmaður hefur náð í dag."),zd("li",zd("strong","Þín bestu orð:")," Orðin sem þú hefur lagt og stigin fyrir þau."),zd("li","Þú getur smellt á orð á hitamælinum til að fá þá lögn aftur á borðið.")]),zd("h3","Ábendingar"),zd("ul",[zd("li","Reyndu að nota dýra stafi (eins og X, Ý, Þ) á tvöföldunar- eða þreföldunarreitum."),zd("li","Lengri orð gefa mun fleiri stig vegna bónussins."),zd("li","Þú getur dregið allar flísar til baka með bláa endurkalls-hnappnum."),zd("li","Ný gáta birtist á hverjum nýjum degi - klukkan 00:00!")]),zd("h3","Um leikinn"),zd("p",["Gáta dagsins er systkini ",zd("a",{href:"https://netskrafl.is",target:"_blank"},"Netskrafls"),", hins sívinsæla íslenska krossgátuleiks á netinu. ","Leikurinn er þróaður af Miðeind ehf."])]),zd(".modal-footer",zd("button.btn.btn-primary",{onclick:t},"Loka"))]))]}},Qg={view:e=>{const{view:t}=e.attrs,{model:n}=t.actions,{solverCount:i}=n;return i<=0?null:zd(".solver-count-pill",{title:Cp("Leikmenn sem hafa leyst gátuna")},i)}},ef={view:e=>{const{view:t,date:n,locale:i}=e.attrs,{actions:r}=t,s=(e,t)=>{const n=new Date(`${e}T00:00:00Z`);return n.setUTCDate(n.getUTCDate()+t),n.toISOString().split("T")[0]},a=(new Date).toISOString().split("T")[0],o=s(n,-1),l=s(n,1),c=r.isRiddleLoading,u=!c&&o>=cp,h=!c&&l<=a,d=e=>{const n=new URL(window.location.href);e===a?n.searchParams.delete("date"):n.searchParams.set("date",e),window.history.pushState({},"",n.toString()),t.resetScale(),r.loadRiddle(e,i)},p=(e,t)=>{if(e)return e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),t())}},g=Cp("Fyrri dagur"),f=Cp("Næsti dagur"),m=n>="2025-12-05";return zd(".date-navigator",[zd(".nav-arrow.prev"+(u?"":".disabled"),{role:"button",tabindex:u?0:-1,"aria-disabled":!u,"aria-label":g,onclick:u?()=>d(o):void 0,onkeydown:p(u,(()=>d(o))),title:u?g:""},Lp("chevron-left")),zd(".nav-date",$p(n)),m?zd(Qg,{view:t}):null,zd(".nav-arrow.next"+(h?"":".disabled"),{role:"button",tabindex:h?0:-1,"aria-disabled":!h,"aria-label":f,onclick:h?()=>d(l):void 0,onkeydown:p(h,(()=>d(l))),title:h?f:""},Lp("chevron-right"))])}},tf={view:e=>{const{animate:t=!1,size:n=80}=e.attrs,i=n/2,r=n/3;return zd("div.sun-corona"+(t?".rotating":""),[zd.trust(`\n <svg width="${n}" height="${n}" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">\n <g transform="translate(50,50)">\n \x3c!-- Ray at 0° (12 o'clock) --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f1c40f" opacity="0.8" transform="rotate(0)"/>\n \x3c!-- Ray at 30° --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f39c12" opacity="0.7" transform="rotate(30)"/>\n \x3c!-- Ray at 60° --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f1c40f" opacity="0.8" transform="rotate(60)"/>\n \x3c!-- Ray at 90° (3 o'clock) --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f39c12" opacity="0.7" transform="rotate(90)"/>\n \x3c!-- Ray at 120° --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f1c40f" opacity="0.8" transform="rotate(120)"/>\n \x3c!-- Ray at 150° --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f39c12" opacity="0.7" transform="rotate(150)"/>\n \x3c!-- Ray at 180° (6 o'clock) --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f1c40f" opacity="0.8" transform="rotate(180)"/>\n \x3c!-- Ray at 210° --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f39c12" opacity="0.7" transform="rotate(210)"/>\n \x3c!-- Ray at 240° --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f1c40f" opacity="0.8" transform="rotate(240)"/>\n \x3c!-- Ray at 270° (9 o'clock) --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f39c12" opacity="0.7" transform="rotate(270)"/>\n \x3c!-- Ray at 300° --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f1c40f" opacity="0.8" transform="rotate(300)"/>\n \x3c!-- Ray at 330° --\x3e\n <polygon points="0,-${i} -3,-${r} 3,-${r}" fill="#f39c12" opacity="0.7" transform="rotate(330)"/>\n </g>\n </svg>\n `)])}},nf=()=>{const e=e=>t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),e())};return{view:t=>{const{view:n,bestMove:i,onMoveClick:r,onStatsClick:s}=t.attrs,{riddle:a}=n.model;if(!a)return null;const{bestPossibleScore:o,globalBestScore:l,personalBestScore:c}=a,u=i&&""!==i.word,h=(new Date).toISOString().split("T")[0],d=a.date<h,p=d?a.solution||l:null;let g=0,f=!1;l&&l.score>0?(g=l.score,f=!d&&c>=l.score):(g=c,f=!d&&c>0);const m=!(!p&&!u),v=()=>{p?(n.zoomOut(),r(p.word,p.coord)):u&&r(i.word,i.coord)},y=Cp("Tölfræði og stigatafla");return zd(".mobile-status-container",[zd(".mobile-status-item.left",zd(Jg,{riddle:a,mode:"mobile"})),zd(".mobile-status-card",{role:"button",tabindex:0,"aria-label":y,onclick:s,onkeydown:e(s),title:y},[zd(".mobile-status-card-item.player-best",[zd(".mobile-status-label",Cp("Þín besta")),zd(".mobile-status-score",c.toString())]),zd(".mobile-status-card-item.leader"+(f?".is-player":""),[zd(".mobile-status-label",Cp(f?"Þú leiðir!":"Best til þessa")),zd(".mobile-status-score",g.toString())]),zd(".mobile-status-card-icon",Lp("chevron-down"))]),zd(".mobile-status-item.right.best-possible"+(u?".celebrate":""),{role:m?"button":void 0,tabindex:m?0:void 0,"aria-label":m?Cp("Sýna besta leik"):void 0,onclick:v,onkeydown:m?e(v):void 0},[zd(".mobile-best-score-wrapper",[u?zd(tf,{animate:!0,size:100}):null,zd(".mobile-status-score",o.toString())])])])}}};const rf={view:e=>{const{leaderboard:t,currentUserId:n,loading:i=!1}=e.attrs;return i?zd(".leaderboard-view.loading",zd(".loading-message",Cp("Hleð stigatöflu..."))):t&&0!==t.length?zd(".leaderboard-view",[zd(".leaderboard-list",{ontouchmove:e=>{e.stopPropagation()}},t.map(((e,t)=>{const i=t+1,r=e.userId===n,s=function(e){switch(e){case 1:return"🥇";case 2:return"🥈";case 3:return"🥉";default:return null}}(i);return zd(".leaderboard-entry"+(r?".current-user":""),{key:e.userId},[zd(".entry-rank",[s?zd("span.medal",s):zd("span.rank-number",i.toString())]),zd(".entry-name",r?[zd("span.entry-star",Lp("star")),Cp("Þú")]:e.displayName),zd(".entry-score",e.score.toString())])})))]):zd(".leaderboard-view.empty",zd(".empty-message",Cp("Engin stig skráð enn")))}},sf=()=>({view:({attrs:e})=>{const{state:t,onToggle:n,id:i,tabindex:r=0,title:s,disabled:a=!1,size:o="medium"}=e;return zd(`.sliding-toggle${"medium"!==o?`.toggle-${o}`:""}${t?".on":""}${a?".disabled":""}`,{id:i,tabindex:a?-1:r,title:s,role:"switch","aria-checked":t?"true":"false","aria-disabled":a?"true":void 0,onclick:()=>{a||n(!t)},onkeydown:e=>{a||" "!==e.key&&"Enter"!==e.key||(e.preventDefault(),n(!t))}},zd(".sliding-toggle-thumb"))}}),af=e=>{let t=og(),n=cg();const{view:i}=e.attrs;function r(e){t=e,lg(e),e||i.zoomOut()}function s(e){n=e,ug(e)}return{view:e=>{const{stats:i,loading:a=!1}=e.attrs;if(a)return zd(".stats-view.loading",zd(".loading-message",Cp("Sæki tölfræði...")));if(!i)return zd(".stats-view.empty",zd(".empty-message",Cp("Engin tölfræði til að sýna")));const o=[{iconGlyph:"fire",label:Cp("Núverandi striklota"),value:i.currentStreak,highlight:i.currentStreak>0},{iconGlyph:"star",label:Cp("Lengsta striklota"),value:i.longestStreak},{iconGlyph:"tower",label:Cp("Hæsta skori náð"),value:i.totalTopScores},{iconGlyph:"certificate",label:Cp("Striklota hæsta skors"),value:i.topScoreStreak,highlight:i.topScoreStreak>0},{iconGlyph:"calendar",label:Cp("Heildarfjöldi daga"),value:i.totalDaysPlayed}];return zd(".stats-view",[zd(".stats-grid",o.map(((e,t)=>zd(".stat-item"+(e.highlight?".highlight":""),{key:t},[zd(".stat-icon",Lp(e.iconGlyph)),zd(".stat-info",[zd(".stat-label",e.label),zd(".stat-value",e.value.toString())])])))),zd(".stats-settings",[zd(".settings-row",[zd("span.settings-label",Cp("Þysja sjálfkrafa")),zd(sf,{state:t,onToggle:r,id:"autozoom-gata",title:Cp("Þysja sjálfkrafa"),size:"small"})]),zd(".settings-explain",Cp("autozoom_explain"))]),zd(".stats-settings",[zd(".settings-row",[zd("span.settings-label",Cp("Eldri litasamsetning")),zd(sf,{state:n,onToggle:s,id:"legacycolors-gata",title:Cp("Eldri litasamsetning"),size:"small"})]),zd(".settings-explain",Cp("legacy_colors_explain"))])])}}},of={view:e=>{const{tabs:t,activeTab:n,onTabChange:i}=e.attrs;return zd(".tab-bar[role=tablist]",t.map((e=>{const t=n===e.id;return zd(".tab-item"+(t?".active":""),{key:e.id,role:"tab",tabindex:t?0:-1,"aria-selected":t,"aria-label":e.label,onclick:()=>i(e.id),onkeydown:(r=e.id,e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),i(r))})},[zd("span.tab-icon-wrapper",[e.iconGlyph?zd("span.tab-icon",Lp(e.iconGlyph)):e.icon?zd("span.tab-icon",e.icon):null,e.badgeGlyph?zd("span.tab-badge",Lp(e.badgeGlyph)):null]),zd("span.tab-label",e.label)]);var r})))}};function lf(e){return e.replace(/\?/g,"")}const cf={view:e=>{const{score:t,bestMove:n,onMoveClick:i,solution:r}=e.attrs;let s;const a=n&&""!==n.word;s=a?lf(n.word):Cp("Besta mögulega lögn");const o=r&&!a?Cp("Smelltu til að sjá lausn"):"",l=!(!r&&!a),c=()=>{r?i(r.word,r.coord):a&&i(n.word,n.coord)},u=l?e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),c())}:void 0;return zd(".thermometer-best-score"+(a?".celebrate":""),zd(".thermometer-best-score-container",{role:l?"button":void 0,tabindex:l?0:void 0,"aria-label":l?Cp("Sýna besta leik"):void 0,onclick:c,onkeydown:u,title:o},[a?zd(tf,{animate:!0}):null,zd(".thermometer-best-circle",t.toString()),zd(".thermometer-best-label",s)]))}},uf={view:e=>{const{score:t,thisPlayer:n}=e.attrs;return zd(".thermometer-current-score"+(n?".this-player":""),[zd(".thermometer-current-circle",t.toString())])}},hf={view:e=>{const{zoneHeights:t,zoneAllocation:n,onMoveClick:i}=e.attrs,r=t.cold,s=r+t.warm,a=[];function o(e,t,n,r){const s=e.length,o=r/(s+1);e.forEach(((e,r)=>{const l=n+o*(s-r),c=!(!e.word||!e.coord),u=()=>{c&&i(e.word,e.coord)},h=c?e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),u())}:void 0;a.push(zd(`.thermometer-move-overlay .${t}`,{key:`${t}-${r}`,style:`--move-position: ${l.toFixed(2)}%`,role:c?"button":void 0,tabindex:c?0:void 0,"aria-label":c?`${Cp("Sýna leik")}: ${lf(e.word)}`:void 0,onclick:u,onkeydown:h},function(e){return e.isGlobalBestScore?""===e.word?[zd(uf,{thisPlayer:!1,score:e.score})]:[zd(uf,{thisPlayer:!0,score:e.score}),zd(".thermometer-move-word",lf(e.word)),zd(".thermometer-move-coord",`(${e.coord})`)]:[zd(".thermometer-move-score",e.score.toString()),zd(".thermometer-move-word",lf(e.word)),zd(".thermometer-move-coord",`(${e.coord})`)]}(e)))}))}return o(n.cold,"cold",0,t.cold),o(n.warm,"warm",r,t.warm),o(n.hot,"hot",s,t.hot),zd(".thermometer-moves-overlay-wrapper",a)}},df={view:e=>{const{riddle:t,selectedMoves:n,bestMove:i,onMoveClick:r}=e.attrs,{warmBoundary:s,hotBoundary:a,bestPossibleScore:o,globalBestScore:l}=t,c=function(e,t,n){const i={hot:[],warm:[],cold:[]};return n.forEach((n=>{n.score>=t?i.hot.push(n):n.score>=e?i.warm.push(n):i.cold.push(n)})),i}(s,a,n),u=function(e){const t=e.hot.length,n=e.warm.length,i=e.cold.length,r=Math.max(15,8*t),s=Math.max(15,8*n),a=Math.max(15,8*i),o=r+s+a;if(o>100){const e=100/o;return{hot:r*e,warm:s*e,cold:a*e}}const l=100-o,c=t+n+i,u=c>0?l/c:0,h=0===c?l/3:0;return{hot:r+t*u+h,warm:s+n*u+h,cold:a+i*u+h}}(c),h=(new Date).toISOString().split("T")[0],d=t.date<h?t.solution||l:null;return zd(".thermometer-container",[zd(".thermometer-body",[zd(".thermometer-zones",[zd(".thermometer-zone.hot",{style:`--zone-size: ${u.hot+u.warm+u.cold}%`}),zd(".thermometer-zone.warm",{style:`--zone-size: ${u.warm+u.cold}%`}),zd(".thermometer-zone.cold",{style:`--zone-size: ${u.cold}%`})]),zd(hf,{moves:n,maxScore:o,zoneHeights:u,zoneAllocation:c,onMoveClick:r})]),zd(cf,{score:o,bestMove:i,onMoveClick:r,solution:d})])}},pf=()=>{let e="performance";return{view:t=>{const{view:n,selectedMoves:i,bestMove:r,onMoveClick:s}=t.attrs,{riddle:a,state:o,leaderboard:l}=n.model;if(!a)return zd(".gatadagsins-right-side-tabs","");const c=o?.netskraflUserId||"",u=l?.some((e=>e.userId===c)),h=[{id:"performance",label:Cp("Frammistaða"),iconGlyph:"dashboard"},{id:"stats",label:Cp("Tölfræði"),iconGlyph:"stats"},{id:"leaderboard",label:Cp("Stigatafla"),iconGlyph:"tower",badgeGlyph:u?"star":void 0}];return zd(".gatadagsins-right-side-tabs",[zd(of,{tabs:h,activeTab:e,onTabChange:t=>{e=t}}),zd(".tab-content",["performance"===e?zd(df,{riddle:a,selectedMoves:i,bestMove:r,onMoveClick:s}):null,"stats"===e?zd(af,{view:n,stats:n.model.userStats||null,loading:!1}):null,"leaderboard"===e?zd(rf,{leaderboard:n.model.leaderboard||[],currentUserId:o?.netskraflUserId||"",loading:!1}):null])])}}},gf={view:e=>{const{view:t,selectedMoves:n,bestMove:i,onStatsClick:r}=e.attrs,{riddle:s}=t.model,a=(e,t)=>{s&&e&&t&&s.recreateWordOnBoard(e,t)};return zd(".gatadagsins-right-side-wrapper",s?[zd(".gatadagsins-mobile-wrapper",[zd(".mobile-date-nav-container",zd(ef,{view:t,date:s.date,locale:s.locale})),zd(".gatadagsins-mobile-status",zd(nf,{view:t,selectedMoves:n,bestMove:i,onMoveClick:a,onStatsClick:r}))]),zd(".gatadagsins-thermometer-column",[zd(".desktop-date-nav-container",zd(ef,{view:t,date:s.date,locale:s.locale})),zd(pf,{view:t,selectedMoves:n,bestMove:i,onMoveClick:a})])]:null)}};const ff=()=>{let e=!1,t=null;return{onremove:()=>{t&&(clearTimeout(t),t=null)},view:n=>{const{score:i,position:r,word:s,onClose:a}=n.attrs,o=s.replace(/\?/g,"").toUpperCase(),l=Cp("share_text_template",{position:String(r)});return[zd(".modal-backdrop-netskrafl",{onclick:e=>(e.preventDefault(),a(),!1),onwheel:e=>(e.preventDefault(),e.stopPropagation(),!1),ontouchmove:e=>(e.preventDefault(),e.stopPropagation(),!1)}),zd(".modal-dialog.share-popup",{role:"dialog","aria-modal":"true","aria-labelledby":"share-popup-title",tabindex:0,oncreate:e=>{const t=e.dom.querySelector("button");t&&t.focus()},onkeydown:e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),a())},onwheel:e=>(e.stopPropagation(),!1),ontouchmove:e=>(e.stopPropagation(),!1)},[zd(".modal-content",[zd("button.close",{onclick:a,"aria-label":Cp("Loka")},Lp("remove")),zd(".share-popup-celebration",[zd(tf,{animate:!0,size:84}),zd(".share-popup-score-circle",[zd(".share-popup-score",String(i))])]),zd(".share-popup-title",{id:"share-popup-title"},Cp("share_popup_title")),zd(".share-popup-subtitle",Cp("share_popup_subtitle")),zd(".share-popup-word",o),zd(".share-popup-text-preview",l),zd(".share-popup-buttons",[zd("button.share-popup-btn",{class:e?"success":"primary",onclick:async()=>{await async function(e){try{if(navigator.clipboard?.writeText)return await navigator.clipboard.writeText(e),!0;const t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.left="-999999px",t.style.top="-999999px",document.body.appendChild(t),t.focus(),t.select();const n=document.execCommand("copy");return document.body.removeChild(t),n}catch(e){return console.error("Failed to copy to clipboard:",e),!1}}(l)&&(e=!0,zd.redraw(),t=setTimeout((()=>{e=!1,t=null,zd.redraw()}),2e3))}},[Lp(e?"ok":"copy")," ",Cp(e?"share_copied_confirmation":"share_button_copy")]),"undefined"!=typeof navigator&&"function"==typeof navigator.share?zd("button.share-popup-btn.secondary",{onclick:async()=>{await async function(e){try{return await navigator.share({text:e}),!0}catch(e){return e instanceof Error&&"AbortError"!==e.name&&console.error("Share failed:",e),!1}}(l)}},[Lp("share")," ",Cp("share_button_share")]):null])])])]}}},mf=()=>{let e="stats";return{view:t=>{const{view:n,onClose:i}=t.attrs,{riddle:r,state:s,leaderboard:a}=n.model;if(!r)return null;const o=s?.netskraflUserId||"",l=a?.some((e=>e.userId===o)),c=[{id:"stats",label:Cp("Tölfræði"),iconGlyph:"stats"},{id:"leaderboard",label:Cp("Stigatafla"),iconGlyph:"tower",badgeGlyph:l?"star":void 0}];return[zd(".modal-backdrop-netskrafl",{onclick:e=>(e.preventDefault(),!1),onwheel:e=>(e.preventDefault(),e.stopPropagation(),!1),ontouchmove:e=>(e.preventDefault(),e.stopPropagation(),!1)}),zd(".modal-dialog.stats-modal",{onwheel:e=>(e.stopPropagation(),!1),ontouchmove:e=>(e.stopPropagation(),!1)},[zd(".modal-content",[zd("button.close",{onclick:i,"aria-label":"Loka"},Lp("remove")),zd(of,{tabs:c,activeTab:e,onTabChange:t=>{e=t}}),zd(".modal-body",["stats"===e?zd(af,{view:n,stats:n.model.userStats||null,loading:!1}):null,"leaderboard"===e?zd(rf,{leaderboard:n.model.leaderboard||[],currentUserId:s?.netskraflUserId||"",loading:!1}):null])])])]}}},vf={oninit:async e=>{const{attrs:t,state:n}=e;n.showHelp=!1,n.showStatsModal=!1;const{model:i,actions:r}=t.view,{riddle:s}=i;if(!s){const{date:e,locale:n}=t;await r.fetchRiddle(e,n)}},view:e=>{const{attrs:t,state:n}=e,{view:i}=t,{model:r}=i,{riddle:s}=r,{selectedMoves:a,bestMove:o}=s?yf(s):{selectedMoves:[],bestMove:void 0},l=()=>{n.showHelp=!n.showHelp,zd.redraw()},c=()=>{n.showStatsModal=!n.showStatsModal,zd.redraw()};return zd("div.drop-target",{id:"gatadagsins-background"},[zd(".gatadagsins-container",[s?zd(".gatadagsins-main",[zd(Zg,{view:i}),zd(gf,{view:i,selectedMoves:a,bestMove:o,onStatsClick:c}),s.askingForBlank?zd(Lg,{game:s}):""]):"",r.state?.beginner?zd(Wp,{view:i,showClose:!1}):"",zd(".info",{title:Cp("Upplýsingar og hjálp")},zd("a.iconlink",{href:"#",onclick:e=>{e.preventDefault(),l()}},Lp("info-sign"))),n.showHelp?zd(Xg,{onClose:l}):""]),n.showStatsModal?zd(mf,{view:i,onClose:c}):"",s?.justAchievedBestScore&&o?zd(ff,{score:o.score,position:r.solverCount,word:o.word,onClose:()=>{s&&(s.justAchievedBestScore=!1),zd.redraw()}}):""])}},yf=e=>{const t=e.model.state?.netskraflUserId||"",{bestPossibleScore:n,globalBestScore:i,playerMoves:r}=e;let s;const a=r.sort(((e,t)=>t.score-e.score)).slice(0,10).map((e=>({score:e.score,word:e.word,coord:e.coord})));if(i&&i.score>0){const{score:e,word:n,coord:r}=i;(a[0]?.score??0)>=e?a[0].isGlobalBestScore=!0:i.player===t?a.unshift({score:e,isGlobalBestScore:!0,word:n,coord:r}):a.unshift({score:e,isGlobalBestScore:!0,word:"",coord:""})}return a.length>0&&a[0].score===n&&(s=a.shift()),{selectedMoves:a,bestMove:s}};function wf(e,t,n){const i=n.target;return!("INPUT"!==i.tagName&&"TEXTAREA"!==i.tagName&&"SELECT"!==i.tagName&&!i.isContentEditable)||(!!t.isMobile()||(!!e.showingDialog||null!==e.askingForBlank))}function bf(e,t,n){if(wf(e,t,n))return;const{key:i}=n;if("ArrowRight"===i)return n.preventDefault(),e.setKeyboardDirection("H"),void zd.redraw();if("ArrowDown"===i)return n.preventDefault(),e.setKeyboardDirection("V"),void zd.redraw();if("Backspace"===i)return n.preventDefault(),void(e.undoLastKeyboardTile()&&zd.redraw());if("Escape"===i)return n.preventDefault(),e.resetRack(),void zd.redraw();if(n.isComposing)return;const r=i.normalize("NFC");if(1===r.length){const t=r.toLowerCase();if(e.alphabet.includes(t))return n.preventDefault(),void(e.placeKeyboardTile(t)&&zd.redraw())}}function _f(e,t,n){if(wf(e,t,n))return;const{data:i}=n,r=i?.normalize("NFC");if(r&&1===r.length){const t=r.toLowerCase();e.alphabet.includes(t)&&(n.preventDefault(),e.placeKeyboardTile(t)&&zd.redraw())}}let kf=null;class Cf{constructor(e){this._prefix=`game.${e}`}getLocalTile(e){return window.localStorage[`${this._prefix}.tile.${e}.t`]}getLocalTileSq(e){return window.localStorage[`${this._prefix}.tile.${e}.sq`]}setLocalTile(e,t){window.localStorage[`${this._prefix}.tile.${e}.t`]=t}setLocalTileSq(e,t){window.localStorage[`${this._prefix}.tile.${e}.sq`]=t}clearTiles(){try{const e=window.localStorage;for(let t=1;t<=7;t++)e.removeItem(`${this._prefix}.tile.${t}.sq`),e.removeItem(`${this._prefix}.tile.${t}.t`)}catch(e){}}saveTiles(e){let t;for(t=0;t<e.length;t++){const n=e[t].sq,i=e[t].tile;this.setLocalTileSq(t+1,n),this.setLocalTile(t+1,i)}for(;t<7;t++)this.setLocalTileSq(t+1,""),this.setLocalTile(t+1,"")}loadTiles(){let e,t;const n=[];for(let i=0;i<7;i++)e=this.getLocalTileSq(i+1),t=this.getLocalTile(i+1),e&&t&&n.push({sq:e,tile:t});return n}}class Sf{getLocalTile(e){return""}getLocalTileSq(e){return""}setLocalTile(e,t){}setLocalTileSq(e,t){}clearTiles(){}saveTiles(e){}loadTiles(){return[]}}const Tf=e=>function(){if(null===kf)try{kf="localStorage"in window&&null!==window.localStorage&&void 0!==window.localStorage}catch(e){kf=!1}return kf}()?new Cf(e):new Sf;const If=new class{constructor(){this.wordCheckCache={}}ingestTwoLetterWords(e,t){let n=this.wordCheckCache[e];void 0===n&&(n=this.wordCheckCache[e]={});for(const[,e]of t)for(const t of e)n[t]=!0}async checkWords(e,t,n){let i=this.wordCheckCache[t];if(i){let e=!0;for(const t of n){if(void 0===i[t]){if(2===t.length)return!1;e=!1;break}if(!1===i[t])return!1}if(e)return!0}try{const r=await sp(e,{url:"/wordcheck",body:{locale:t,word:n[0],words:n}});if(r?.word===n[0]&&r?.valid){i||(i=this.wordCheckCache[t]={});for(const[e,t]of r.valid)i[e]=t}return!!r.ok}catch(e){}return!1}},Ef={standard:"H8",explo:"D4"},Pf={standard:[7,7],explo:[3,3]},xf={standard:{WORDSCORE:["3 3 3"," 2 2 "," 2 2 "," 2 2 "," 2 2 "," "," ","3 2 3"," "," "," 2 2 "," 2 2 "," 2 2 "," 2 2 ","3 3 3"],LETTERSCORE:[" 2 2 "," 3 3 "," 2 2 ","2 2 2"," "," 3 3 3 3 "," 2 2 2 2 "," 2 2 "," 2 2 2 2 "," 3 3 3 3 "," ","2 2 2"," 2 2 "," 3 3 "," 2 2 "]},explo:{WORDSCORE:["3 3 3"," 2 "," 2 "," 2 "," 2 "," 2 2 "," 2 2 ","3 2 3"," 2 2 "," 2 2 "," 2 "," 2 "," 2 "," 2 ","3 3 3"],LETTERSCORE:[" 2 2 "," 3 2 3 "," 2 3 2 "," 2 3 2","2 3 "," 2 2 "," 3 2 "," 2 2 "," 2 3 "," 2 2 "," 3 2","2 3 2 "," 2 3 2 "," 3 2 3 "," 2 2 "]}};class Rf{constructor(e,t,n="standard"){this.locale="is_IS",this.alphabet="",this.tile_scores={},this.board_type="standard",this.two_letter_words=[[],[]],this.startSquare="H8",this.startCoord=[7,7],this.manual=!1,this.tiles={},this.over=!1,this.currentScore=void 0,this.currentWord="",this.currentWordWithBlanks="",this.currentCoord="",this.wordGood=!1,this.wordBad=!1,this.currentError=null,this.currentMessage=null,this.localturn=!0,this.moveInProgress=!1,this.showingDialog=null,this.selectedSq=null,this.sel="movelist",this.askingForBlank=null,this.keyboardDirection="H",this.keyboardPlacedTiles=[],this.localStorage=null,this.uuid=e,this.localStorage=Tf(e),this.board_type=n,this.startSquare=Ef[n],this.startCoord=Pf[n],this.state=t}init(){}tilescore(e){return this.tile_scores[e]}twoLetterWords(){return this.two_letter_words}squareClass(e){if(!e||"R"===e[0])return;const{row:t,col:n}=Up(e);return this.squareType(t,n)||void 0}squareType(e,t){const n=this.wordScore(e,t);if(2===n)return"dw";if(3===n)return"tw";const i=this.letterScore(e,t);return 2===i?"dl":3===i?"tl":""}wordScore(e,t){const n=xf[this.board_type].WORDSCORE;return parseInt(n[e].charAt(t),10)||1}letterScore(e,t){const n=xf[this.board_type].LETTERSCORE;return parseInt(n[e].charAt(t),10)||1}attemptMove(e,t){if(t===e)return;if(t in this.tiles&&"R"!==t[0])throw`Square ${t} occupied`;if(!(e in this.tiles))throw`No tile at ${e}`;const n=this.tiles[e];"R"===t[0]||"?"!==n.tile||" "!==n.letter?this.moveTile(e,t):this.askingForBlank={from:e,to:t}}_moveTile(e,t){if(e===t)return;const n=this.tiles[e];if(void 0===n)throw"Moving from an empty square";if(delete this.tiles[e],t in this.tiles){if("R"!==t.charAt(0))throw"Dropping to an occupied square";const e=parseInt(t.slice(1),10);let n=e+1;for(;`R${n}`in this.tiles;)n++;if(n<=7)for(let t=n;t>e;t--)this.tiles[`R${t}`]=this.tiles["R"+(t-1)];else{for(n=e-1;`R${n}`in this.tiles;)n--;if(n<1)throw"No place in rack to drop tile";for(let t=n;t<e;t++)this.tiles[`R${t}`]=this.tiles[`R${t+1}`]}}"R"===t[0]&&"?"===n.tile&&(n.letter=" "),this.tiles[t]=n}moveTile(e,t){if(this._moveTile(e,t),this.currentError=this.currentMessage=null,"R"===e[0]&&"R"!==t[0]){1===this.tilesPlaced().length&&this.setDefaultDirection(t)}this.updateScore(),this.saveTiles()}cancelBlankDialog(){this.askingForBlank=null}placeBlank(e){if(null===this.askingForBlank)return;const{from:t,to:n}=this.askingForBlank;this.tiles[t].letter=e,this.moveTile(t,n),this.askingForBlank=null}draggableTiles(){return Object.keys(this.tiles).filter((e=>this.tiles[e].draggable))}tilesPlaced(){return this.draggableTiles().filter((e=>"R"!==e[0]))}resetRack(){this.selectedSq=null,this._resetRack(),this.saveTiles()}_moveBoardTileToRack(e,t=1){if(!(e in this.tiles))return t;let n=t;for(;`R${n}`in this.tiles;)n++;const i=`R${n}`;return this.tiles[i]=this.tiles[e],delete this.tiles[e],"?"===this.tiles[i].tile&&(this.tiles[i].letter=" "),n+1}_resetRack(){const e=this.tilesPlaced();if(e.length>0){let t=1;for(const n of e)t=this._moveBoardTileToRack(n,t);this.updateScore()}this.currentError=null,this.resetKeyboardState()}rescrambleRack(){if(this.selectedSq=null,null!==this.showingDialog)return;this._resetRack();const e=[];for(let t=1;t<=7;t++){const n=`R${t}`;n in this.tiles?e.push(this.tiles[n]):e.push(null)}let t=e.length;for(;0!==t;){const n=Math.floor(Math.random()*t);t-=1;const i=e[t];e[t]=e[n],e[n]=i}let n=0;for(let t=1;t<=7;t++){const i=e[t-1];null!==i?this.tiles["R"+(t-n)]=i:(delete this.tiles["R"+(7-n)],n++)}this.saveTiles()}resetError(){this.currentError=this.currentMessage=null}placeTiles(e,t,n){this.tiles={}}populateRackTiles(){}async updateScore(){this.wordGood=!1,this.wordBad=!1;const e=this.calcScore();if(void 0!==e&&e.word){if(this.currentScore=e.score,this.currentWord=e.word,this.currentWordWithBlanks=e.wordWithBlanks,this.currentCoord=e.coord,!this.manual){const t=await If.checkWords(this.state,this.locale,e.words);this.currentWord===e.word&&(this.wordGood=t,this.wordBad=!t)}}else this.currentScore=void 0,this.currentWord="",this.currentWordWithBlanks="",this.currentCoord=""}calcScore(){let e=0,t=0,n=1,i=op,r=op,s=0,a=0,o=0,l=0,c="",u="";const h=[],d=Object.values(this.tiles).filter((e=>!e.draggable)).length;if(this.tilesPlaced().forEach((t=>{const l=ap.indexOf(t.charAt(0)),c=parseInt(t.slice(1),10)-1,u=this.tiles[t];e+=u.score*this.letterScore(l,c),o++,n*=this.wordScore(l,c),l<i&&(i=l),c<r&&(r=c),l>s&&(s=l),c>a&&(a=c)})),!o)return;if(i!==s&&r!==a)return;let p=r,g=i,f=0,m=0;for(i!==s?m=1:r!==a||null===this.tileAt(i-1,r)&&null===this.tileAt(i+1,r)?f=1:m=1;null!==this.tileAt(g-m,p-f);)p-=f,g-=m;const v=zp(g,p,1===m)||"";let y;for(;null!==(y=this.tileAt(g,p));){if(y.draggable){const e=this.calcCrossScore(g,p,1-m,1-f);e.score>=0&&(t+=e.score,l++,h.push(e.word))}else e+=y.score,l++;c+=y.letter,y.draggable&&"?"===y.tile?u+=`?${y.letter}`:u+=y.letter,p+=f,g+=m}if(0===d){const e=this.startCoord;if(null===this.tileAt(e[0],e[1]))return}else if(!l)return;return f&&p<=a||m&&g<=s?void 0:(h.push(c),{word:c,wordWithBlanks:u,words:h,score:e*n+t+(7===o?50:0),coord:v})}calcCrossScore(e,t,n,i){let r,s=0,a=!1,o=t,l=e,c="";for(;null!==this.tileAt(l-n,o-i);)o-=i,l-=n;for(;null!==(r=this.tileAt(l,o));){let u=r.score;o===t&&l===e?u*=this.letterScore(l,o):a=!0,c+=r.letter,s+=u,o+=i,l+=n}return a?{score:s*this.wordScore(e,t),word:c}:{score:-1,word:""}}tileAt(e,t){const n=zp(e,t);return n&&this.tiles[n]||null}saveTiles(){const e=[],t=this.tilesPlaced();for(const n of t){const{tile:t,letter:i}=this.tiles[n];e.push({sq:n,tile:"?"===t?t+i:t})}for(let t=1;t<=7;t++){const n=`R${t}`;n in this.tiles&&e.push({sq:n,tile:this.tiles[n].tile})}this.localStorage?.saveTiles(e)}restoreTiles(e){if(!e.length)return;const t=[],n=[],i={};for(let n=0;n<e.length;n++)t.push(e[n].tile.charAt(0));for(let e=1;e<=7;e++)`R${e}`in this.tiles&&n.push(this.tiles[`R${e}`].tile.charAt(0));if(t.sort(),n.sort(),!function(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}(t,n))return;for(let e=1;e<=7;e++)`R${e}`in this.tiles&&(i[`R${e}`]=this.tiles[`R${e}`],delete this.tiles[`R${e}`]);for(let t=0;t<e.length;t++){const n=e[t].sq;if(!(n in this.tiles)){const r=e[t].tile;for(const e of Object.keys(i))if(i[e].tile===r.charAt(0)){"?"===r.charAt(0)&&("R"===n.charAt(0)?i[e].letter=" ":i[e].letter=r.charAt(1)),this.tiles[n]=i[e],delete i[e];break}}}let r=1;for(const e of Object.keys(i)){for(;`R${r}`in this.tiles;)r++;r<=7&&(this.tiles[`R${r}`]=i[e])}this.saveTiles(),this.updateScore()}cleanup(){}getLockedDirection(){const e=this.tilesPlaced();if(e.length<2)return null;const t=new Set,n=new Set;for(const i of e)t.add(i.charAt(0)),n.add(parseInt(i.slice(1),10));return 1===t.size&&n.size>1?"H":1===n.size&&t.size>1?"V":null}setKeyboardDirection(e){null===this.getLockedDirection()&&(this.keyboardDirection=e)}getEffectiveKeyboardDirection(){return this.getLockedDirection()??this.keyboardDirection}findNextEmptySquare(e,t,n){const i="H"===n?1:0,r="V"===n?1:0;let s=e,a=t;for(;s>=0&&s<op&&a>=0&&a<op;){const e=zp(s,a);if(e&&!(e in this.tiles))return e;s+=r,a+=i}return null}canContinueInDirection(e,t){const n=Up(e),i="H"===t?1:0,r="V"===t?1:0;return null!==this.findNextEmptySquare(n.row+r,n.col+i,t)}setDefaultDirection(e){this.canContinueInDirection(e,"H")?this.keyboardDirection="H":this.keyboardDirection="V"}getNextKeyboardSquare(){const e=this.tilesPlaced();if(0===e.length)return null;let t=!0;for(let e=1;e<=7;e++)if(`R${e}`in this.tiles){t=!1;break}if(t)return null;const n=this.getLockedDirection()??this.keyboardDirection;let i=-1,r=-1;for(const t of e){const e=ap.indexOf(t.charAt(0)),s=parseInt(t.slice(1),10)-1;"H"===n?(s>r||s===r&&e>i)&&(r=s,i=e):(e>i||e===i&&s>r)&&(i=e,r=s)}const s="H"===n?1:0,a="V"===n?1:0;return this.findNextEmptySquare(i+a,r+s,n)}findRackTileForLetter(e){let t=null;for(let n=1;n<=7;n++){const i=`R${n}`;if(i in this.tiles){const n=this.tiles[i];if(n.tile===e)return i;"?"===n.tile&&null===t&&(t=i)}}return t}placeKeyboardTile(e){const t=this.getNextKeyboardSquare();if(!t)return!1;const n=this.findRackTileForLetter(e);if(!n)return!1;const i=this.tiles[n];return"?"===i.tile&&(i.letter=e),this.moveTile(n,t),this.keyboardPlacedTiles.push(t),!0}undoLastKeyboardTile(){if(0===this.keyboardPlacedTiles.length)return!1;const e=this.keyboardPlacedTiles.pop();if(!e||!(e in this.tiles))return!1;let t=null;for(let e=1;e<=7;e++){const n=`R${e}`;if(!(n in this.tiles)){t=n;break}}return!!t&&(this.moveTile(e,t),!0)}resetKeyboardState(){this.keyboardDirection="H",this.keyboardPlacedTiles=[]}}class Lf extends Rf{constructor(e,t,n,i,r){if(super(e,i),this.userid=["",""],this.nickname=["",""],this.fullname=["",""],this.autoplayer=[!1,!1],this.maxOvertime=600,this.scores=[0,0],this.moves=[],this.newmoves=[],this.lastmove=void 0,this.rack=[],this.racks=[],this.num_moves=0,this.bag="",this.newbag=!0,this.localturn=!1,this.player=null,this.stats=null,this.manual=!1,this.fairplay=!1,this.zombie=!1,this.overdue=!1,this.messages=null,this.chatLoading=!1,this.chatSeen=!0,this.congratulate=!1,this.xchg=!1,this.chall=!1,this.last_chall=!1,this.succ_chall=!1,this.moveInProgress=!1,this.isFresh=!1,this.numTileMoves=0,this.interval=null,this.time_info=null,this.penalty0=0,this.penalty1=0,this.timeBase=null,this.runningOut0=!1,this.runningOut1=!1,this.blinking0=!1,this.blinking1=!1,this.clockText0="",this.clockText1="",this.moveListener=n,void 0!==r&&(this.maxOvertime=r),null===t)return void this.initMockupGame();const s=this.localStorage?.loadTiles()||[];this.init(t),this.restoreTiles(s),!this.over&&this.isTimed()&&this.startClock(),this.isRobotGame()||this.loadMessages()}applyServerState(e){return this.over=99===e.result,this.over||0===e.result?(this.currentError=this.currentMessage=null,Object.assign(this,e),e.newmoves&&(this.moves=this.moves.concat(e.newmoves)),this.newmoves=[],this.localturn=!this.over&&this.moves.length%2===this.player,this.isFresh=!0,this.startSquare=Ef[this.board_type],this.startCoord=Pf[this.board_type],this.congratulate=this.over&&null!==this.player&&this.scores[this.player]>this.scores[1-this.player],!0):(this.currentError=e.result||"server",this.currentMessage=e.msg||"",!1)}init(e){e?this.applyServerState(e)&&(this.placeTiles(),If.ingestTwoLetterWords(this.locale,this.two_letter_words[0])):super.init()}applyOpponentMove(e){const t=this.localturn,n=this.savePlayerTiles();this.applyServerState(e)&&(this.placeTiles(void 0,void 0,!0),!t&&this.localturn?this.restorePlayerTiles(n):this.populateRackTiles())}initMockupGame(){this.tiles={},this.startSquare=Ef[this.board_type],this.startCoord=Pf[this.board_type],this.alphabet="aábdðeéfghiíjklmnoóprstuúvxyýþæö",this.localturn=!0,this.player=0,this.tile_scores={"?":0,a:1,b:5,d:5,e:3,f:3,g:3,h:4,i:1,j:6,k:2,l:2,m:2,n:1,o:5,p:5,r:1,s:1,t:2,u:2,v:5,x:10,y:6,"á":3,"æ":4,"é":7,"í":4,"ð":2,"ó":3,"ö":6,"ú":4,"ý":5,"þ":7},this.two_letter_words=[[["a",["að","af","ak","al","an","ar","as","at","ax"]],["á",["áa","áð","ái","ál","ám","án","ár","ás","át"]],["b",["bí","bú","bý","bæ"]],["d",["dá","do","dó","dý"]],["e",["eð","ef","eg","ei","ek","el","em","en","er","es","et","ex","ey"]],["é",["ég","él","ét"]],["f",["fa","fá","fé","fæ"]],["g",["gá"]],["h",["ha","há","hí","hó","hý","hæ"]],["i",["ið","il","im"]],["í",["íð","íl","ím","ís"]],["j",["já","je","jó","jú"]],["k",["ká","ku","kú"]],["l",["la","lá","lé","ló","lú","lý","læ"]],["m",["má","mi","mó","mý"]],["n",["ná","né","nó","nú","ný","næ"]],["o",["of","og","oj","ok","op","or"]],["ó",["óa","óð","óf","ói","ók","ól","óm","ón","óp","ós","óx"]],["p",["pí","pu","pú","pæ"]],["r",["rá","re","ré","rí","ró","rú","rý","ræ"]],["s",["sá","sé","sí","so","sú","sý","sæ"]],["t",["tá","te","té","ti","tí","tó","tý"]],["u",["um","un"]],["ú",["úa","úð","úf","úi","úr","út"]],["v",["vá","vé","ví","vó"]],["y",["yl","ym","yr","ys"]],["ý",["ýf","ýg","ýi","ýk","ýl","ýr","ýs","ýt"]],["þ",["þá","þó","þú","þý"]],["æ",["æð","æf","æg","æi","æl","æp","ær","æs","æt"]],["ö",["öl","ör","ös","öt","öx"]]],[["a",["áa","fa","ha","la","óa","úa"]],["á",["dá","fá","gá","há","já","ká","lá","má","ná","rá","sá","tá","vá","þá"]],["ð",["að","áð","eð","ið","íð","óð","úð","æð"]],["e",["je","re","te"]],["é",["fé","lé","né","ré","sé","té","vé"]],["f",["af","ef","of","óf","úf","ýf","æf"]],["g",["eg","ég","og","ýg","æg"]],["i",["ái","ei","mi","ói","ti","úi","ýi","æi"]],["í",["bí","hí","pí","rí","sí","tí","ví"]],["j",["oj"]],["k",["ak","ek","ok","ók","ýk"]],["l",["al","ál","el","él","il","íl","ól","yl","ýl","æl","öl"]],["m",["ám","em","im","ím","óm","um","ym"]],["n",["an","án","en","ón","un"]],["o",["do","so"]],["ó",["dó","hó","jó","ló","mó","nó","ró","tó","vó","þó"]],["p",["op","óp","æp"]],["r",["ar","ár","er","or","úr","yr","ýr","ær","ör"]],["s",["as","ás","es","ís","ós","ys","ýs","æs","ös"]],["t",["at","át","et","ét","út","ýt","æt","öt"]],["u",["ku","pu"]],["ú",["bú","jú","kú","lú","nú","pú","rú","sú","þú"]],["x",["ax","ex","óx","öx"]],["y",["ey"]],["ý",["bý","dý","hý","lý","mý","ný","rý","sý","tý","þý"]],["æ",["bæ","fæ","hæ","læ","næ","pæ","ræ","sæ"]]]];const e=[["t",1],["e",1],["s",1],["t",1],["i",1],["n",1],["g",2]];this.rack=e;for(let t=0;t<e.length;t++){const[n,i]=e[t];this.tiles[`R${t+1}`]={player:0,tile:n,letter:n,score:i,freshtile:!0,draggable:!0,index:t,xchg:!1}}If.ingestTwoLetterWords(this.locale,this.two_letter_words[0])}update(e){const t=this.congratulate;for(const e of Object.keys(this.tiles))this.tiles[e].freshtile=!1;this.applyOpponentMove(e),null===this.currentError&&(this.succ_chall?this.resetRack():this.updateScore()),this.saveTiles(),this.isTimed()&&this.resetClock(),!t&&this.congratulate&&this.moveListener&&this.moveListener.notifyGameWon()}async refresh(){try{if(!this.uuid)return;const e=await rp(this.state,{method:"POST",url:"/gamestate",body:{game:this.uuid}});e?.ok&&this.update(e.game)}catch(e){}finally{this.moveInProgress=!1}}notifyUserChange(e){null!==this.player&&(this.nickname[this.player]=e)}buttonState(){const e={};return e.tilesPlaced=this.tilesPlaced().length>0,e.gameOver=this.over,e.congratulate=this.congratulate,e.localTurn=this.localturn,e.gameIsManual=this.manual,e.challengeAllowed=this.chall,e.lastChallenge=this.last_chall,e.showingDialog=null!==this.showingDialog,e.exchangeAllowed=this.xchg,e.wordGood=this.wordGood,e.wordBad=this.wordBad,e.canPlay=!1,e.tardyOpponent=!e.localTurn&&!e.gameOver&&this.overdue,e.showResign=!1,e.showExchange=!1,e.showPass=!1,e.showRecall=!1,e.showScramble=!1,e.showMove=!1,e.showMoveMobile=!1,e.showForceResignMobile=!1,e.showChallenge=!1,e.showChallengeInfo=!1,this.moveInProgress||(e.localTurn&&!e.gameOver&&(e.lastChallenge?(e.showChallenge=!0,e.showPass=!0,e.showChallengeInfo=!0):(e.showMove=e.tilesPlaced,e.showExchange=!e.tilesPlaced,e.showPass=!e.tilesPlaced,e.showResign=!e.tilesPlaced,e.showChallenge=!e.tilesPlaced&&e.gameIsManual&&e.challengeAllowed)),e.showMove&&(e.wordGood||e.gameIsManual)&&(e.canPlay=!0),e.gameOver||(e.tilesPlaced?(e.showRecall=!0,e.showMoveMobile=!0):(e.showScramble=!0,e.tardyOpponent&&(e.showForceResignMobile=!0)))),e}isTimed(){return null!==this.time_info&&this.time_info.duration>=1}showClock(){return!!this.isTimed()&&(!this.over||(!!this.clockText0||!!this.clockText1))}updateClock(){var e=this.calcTimeToGo(0),t=this.calcTimeToGo(1);this.clockText0=e,this.clockText1=t,this.runningOut0="-"===e[0]||e<="02:00",this.runningOut1="-"===t[0]||t<="02:00",this.blinking0=this.runningOut0&&e>="00:00"&&e<="00:30"&&0===this.player,this.blinking1=this.runningOut1&&t>="00:00"&&t<="00:30"&&1===this.player,zd.redraw()}resetClock(){this.timeBase=new Date,this.updateClock(),this.over&&(this.interval&&(window.clearInterval(this.interval),this.interval=null),this.blinking0=!1,this.blinking1=!1,this.runningOut0=!1,this.runningOut1=!1)}startClock(){this.resetClock(),this.interval||(this.interval=window.setInterval((()=>{this.updateClock()}),500))}cleanup(){this.interval&&(window.clearInterval(this.interval),this.interval=null)}calcTimeToGo(e){const t=this.time_info;if(null===t||null===this.timeBase)return"";let n=t.elapsed[e];const i=this.over;if(!i&&this.moves.length%2===e){n+=((new Date).getTime()-this.timeBase.getTime())/1e3,n-60*t.duration>this.maxOvertime&&(this.moveInProgress||(this.moveInProgress=!0,window.setTimeout((()=>{this.refresh()}),500)))}const r=Math.max(60*t.duration-n,-this.maxOvertime),s=Math.abs(r),a=Math.floor(s/60),o=Math.floor(s-60*a);return i?(this.penalty0=0,this.penalty1=0):r<0&&(0===e?this.penalty0=-10*Math.floor((60*a+o+59)/60):this.penalty1=-10*Math.floor((60*a+o+59)/60)),(r<0?"-":"")+`0${a.toString()}`.slice(-2)+":"+`0${o.toString()}`.slice(-2)}displayScore(e){return Math.max(this.scores[e]+(0===e?this.penalty0:this.penalty1),0)}isRobotGame(){return this.autoplayer[0]||this.autoplayer[1]}async loadMessages(){if(!this.chatLoading){this.chatLoading=!0,this.messages=[];try{const e=await rp(this.state,{method:"POST",url:"/chatload",body:{channel:`game:${this.uuid}`}});e.ok?this.messages=e.messages||[]:this.messages=[],void 0===e.seen?this.chatSeen=!0:this.chatSeen=e.seen}catch(e){}finally{this.chatLoading=!1}}}async loadStats(){this.stats=void 0;try{const e=await rp(this.state,{method:"POST",url:"/gamestats",body:{game:this.uuid}});if(!e||void 0===e.result)return;if(0!==e.result&&99!==e.result)return;this.stats=e}catch(e){}}async sendMessage(e){try{await rp(this.state,{method:"POST",url:"/chatmsg",body:{channel:`game:${this.uuid}`,msg:e}})}catch(e){}}sendChatSeenMarker(){this.sendMessage(""),this.chatSeen=!0}addChatMessage(e,t,n,i){this.chatLoading||""===t||(null===this.messages&&(this.messages=[]),this.messages.push({from_userid:e,msg:t,ts:n}),"chat"===this.sel?this.sendChatSeenMarker():i||(this.chatSeen=!1))}markChatShown(){return!this.chatSeen&&(this.sendChatSeenMarker(),!0)}placeMove(e,t,n,i){const r=Up(t);let s=r.col,a=r.row,o=!1,l=0;for(let t=0;t<n.length;t++){let c=n[t];if("?"===c){o=!0;continue}const u=zp(a,s);if(null===u)continue;const h=c;o&&(c="?");const d=this.tilescore(c);u in this.tiles||(this.tiles[u]={player:e,tile:c,letter:h,score:d,draggable:!1,freshtile:!1,index:l,xchg:!1},i&&(null!==this.player?this.tiles[u].highlight=e===this.player?0:1:this.tiles[u].highlight=e,l++)),s+=r.dx,a+=r.dy,o=!1}}setRack(e){this.rack=e}rackAtMove(e){const t=this.racks?.length||0;return t?this.racks[e>=t?t-1:e]:""}isFinalMove(e){return e>=this.num_moves}boardAsStrings(){const e=[];for(const t of ap){let n="";for(let e=0;e<op;e++){const i=`${t}${e+1}`;if(i in this.tiles){const{tile:e,letter:t}=this.tiles[i];n+="?"===e?t.toLocaleUpperCase():t}else n+="."}e.push(n)}return e}placeTiles(e,t,n){this.tiles={},this.numTileMoves=0;const i=this.moves,r=void 0!==e,s=!r&&!this.lastmove&&this.localturn,a=!t&&(s||r),o=void 0!==e?e:i.length;function l(e){if(e+2>=o)return!1;const[t,[n,r,s]]=i[e+2];return""===n&&("RESP"===r&&s<0)}for(let e=0;e<o;e++){const[t,[n,r]]=i[e];""===n||l(e)||(this.placeMove(t,n,r,e===o-1&&a),this.numTileMoves++)}const c=this.lastmove;if(c&&this.localturn&&!this.succ_chall)for(let e=0;e<c.length;e++){const t=c[e][0];if(!(t in this.tiles))throw`Tile from lastmove not in square ${t}`;this.tiles[t].freshtile=!0,this.tiles[t].index=e}n||this.populateRackTiles()}populateRackTiles(){for(let e=0;e<this.rack.length;e++){const t=`R${e+1}`,[n,i]=this.rack[e],r="?"===n?" ":n;this.tiles[t]={player:this.player?1:0,tile:n,letter:r,score:i,draggable:!0,freshtile:!1,index:0,xchg:!1}}}savePlayerTiles(){const e={};for(const t of this.draggableTiles())e[t]={...this.tiles[t]};return e}restorePlayerTiles(e){const t=[];for(const n of Object.keys(e))n in this.tiles?t.push(n):this.tiles[n]=e[n];let n=1;for(const i of t){for(;`R${n}`in this.tiles;)n++;const t=`R${n}`;this.tiles[t]=e[i],"?"===this.tiles[t].tile&&(this.tiles[t].letter=" ")}}allowDragDrop(){return!this.over&&!this.showingDialog&&!this.moveInProgress}async sendMove(e){this.moveInProgress=!0;try{const t=await rp(this.state,{method:"POST",url:"/submitmove",body:{moves:e,mcount:this.moves.length,uuid:this.uuid}});this.update(t),this.moveListener&&this.moveListener.notifyMove()}catch(e){this.currentError="server",e instanceof Error?this.currentMessage=e.message:this.currentMessage=String(e)}finally{this.moveInProgress=!1}}async forceResign(){this.moveInProgress=!0;try{const e=await rp(this.state,{method:"POST",url:"/forceresign",body:{mcount:this.moves.length,game:this.uuid}});this.update(e)}catch(e){this.currentError="server",e instanceof Error?this.currentMessage=e.message:this.currentMessage=String(e)}finally{this.moveInProgress=!1}}submitMove(){const e=this.tilesPlaced(),t=[];this.selectedSq=null,this.resetKeyboardState();for(let n=0;n<e.length;n++){const i=e[n],{tile:r,letter:s}=this.tiles[i];t.push(`${i}=${r}${"?"===r?s:""}`)}t.length>0&&this.sendMove(t)}submitPass(){this.showingDialog="pass",this.selectedSq=null}submitChallenge(){this.showingDialog="chall",this.selectedSq=null}submitExchange(){this.showingDialog="exchange",this.selectedSq=null;for(let e=1;e<=7;e++){const t=`R${e}`;t in this.tiles&&(this.tiles[t].xchg=!1)}}submitResign(){this.showingDialog="resign",this.selectedSq=null}confirmPass(e){this.showingDialog=null,e&&this.sendMove(["pass"])}confirmChallenge(e){this.showingDialog=null,e&&this.sendMove(["chall"])}confirmExchange(e){let t="";this.showingDialog=null;for(let e=1;e<=7;e++){const n=`R${e}`;n in this.tiles&&this.tiles[n].xchg&&(t+=this.tiles[n].tile,this.tiles[n].xchg=!1)}e&&t.length>0&&this.sendMove([`exch=${t}`])}confirmResign(e){this.showingDialog=null,e&&this.sendMove(["rsgn"])}}const Nf="gata_";function Df(e,t){return`${Nf}${t}_${e}`}function Af(e,t,n){if(!e||!t)return;const i={date:t,moves:n,timestamp:(new Date).toISOString(),userId:e};try{const n=Df(e,t);localStorage.setItem(n,JSON.stringify(i)),function(){try{const e=new Date,t=new Date(e);t.setDate(t.getDate()-30);const n=[];for(let e=0;e<localStorage.length;e++){const i=localStorage.key(e);if(i?.startsWith(Nf)){const e=i.split("_");if(e.length>=2){const r=e[1],s=new Date(r);!Number.isNaN(s.getTime())&&s<t&&n.push(i)}}}for(const e of n)localStorage.removeItem(e)}catch(e){console.error("Failed to cleanup old entries:",e)}}()}catch(e){console.error("Failed to save moves to localStorage:",e)}}class Mf extends Rf{constructor(e,t,n){if(!n.state)throw new Error("No global state in Riddle constructor");super(e,n.state),this.bestPossibleScore=0,this.warmBoundary=0,this.hotBoundary=0,this.globalBestScore=null,this.groupBestScore=null,this.personalBestScore=0,this.playerMoves=[],this.solution=null,this.justAchievedBestScore=!1,this.date=t,this.model=n}buttonState(){const e={};return e.tilesPlaced=this.tilesPlaced().length>0,e.gameOver=!1,e.localTurn=!0,e.showingDialog=null!==this.showingDialog,e.wordGood=this.wordGood,e.wordBad=this.wordBad,e.canPlay=this.wordGood&&e.tilesPlaced,e.showRecall=e.tilesPlaced,e.showScramble=!e.tilesPlaced,e.showMove=!1,e.showMoveMobile=!1,e.showPass=!1,e.showExchange=!1,e.showResign=!1,e.showChallenge=!1,e.showChallengeInfo=!1,e.showForceResignMobile=!1,e}allowDragDrop(){return!this.showingDialog}async load(e,t){const{state:n}=this;try{if(!n)throw new Error("No global state in Riddle.load");const i=await rp(n,{method:"POST",url:"/gatadagsins/riddle",body:{date:e,locale:t}});if(i.ok&&(this.date=e,this.locale=t,this.board_type=i.riddle.board_type||"standard",this.alphabet=i.riddle.alphabet||"",this.tile_scores=i.riddle.tile_scores||{},this.two_letter_words=i.riddle.two_letter_words||[],this.initBoard(i.riddle.board||[]),this.initRack(i.riddle.rack||[]),this.bestPossibleScore=i.riddle.max_score||0,this.globalBestScore=null,this.groupBestScore=null,this.personalBestScore=0,this.solution=i.riddle.solution||null,this.warmBoundary=.25*this.bestPossibleScore,this.hotBoundary=.5*this.bestPossibleScore,If.ingestTwoLetterWords(this.locale,this.two_letter_words[0]),n.netskraflUserId)){const t=function(e,t){if(!e||!t)return[];try{const n=Df(e,t),i=localStorage.getItem(n);if(!i)return[];const r=JSON.parse(i);return r.userId&&r.userId===e&&r.moves||[]}catch(e){return console.error("Failed to load moves from localStorage:",e),[]}}(n.netskraflUserId,e);if(t.length>0){const e=t.filter((e=>e.score<=this.bestPossibleScore));if(e.length>0){this.playerMoves=e.map((e=>({word:e.word,score:e.score,coord:e.coord,timestamp:e.timestamp||(new Date).toISOString()})));const t=e.reduce(((e,t)=>t.score>e.score?t:e));this.personalBestScore=t.score}}}}catch(e){console.error("Failed to load daily riddle:",e),this.currentError="Gat ekki lesið gátu dagsins. Reyndu aftur síðar."}}async submitRiddleWord(e){const{state:t}=this;if(t&&t.netskraflUserId)try{await rp(t,{method:"POST",url:"/gatadagsins/submit",body:{date:this.date,locale:this.locale,userId:t.netskraflUserId,groupId:t.userGroupId||null,userDisplayName:t.userFullname||t.userNick||"",move:e}})}catch(e){console.error("Failed to submit move:",e),this.currentError="Netþjónn gat ekki tekið á móti lögninni."}}addToPlayerMoves(e){if(!(this.wordGood&&this.currentScore&&this.currentWordWithBlanks&&this.currentCoord))return;if(this.currentScore>this.bestPossibleScore)return;const t={score:this.currentScore,word:this.currentWordWithBlanks,coord:this.currentCoord,timestamp:e},n=this.playerMoves.find((e=>e.word===t.word&&e.coord===t.coord&&e.score===t.score));return n?void 0:(this.playerMoves.push(t),t)}async updateScore(){await super.updateScore();const e=(new Date).toISOString(),t=this.addToPlayerMoves(e);if(!t)return;const{state:n,date:i,playerMoves:r}=this;if(!n||!n.netskraflUserId)return;const s=r.map((e=>({score:e.score,word:e.word,coord:e.coord,timestamp:e.timestamp})));if(Af(n.netskraflUserId,i,s),t.score<=this.personalBestScore)return;this.personalBestScore=t.score;i===e.split("T")[0]&&(t.score>=this.bestPossibleScore&&(this.justAchievedBestScore=!0),this.submitRiddleWord(t))}updateGlobalBestScore(e){e.score>this.bestPossibleScore||(this.globalBestScore=e)}updateGroupBestScore(e){e.score>this.bestPossibleScore||(this.groupBestScore=e)}recreateWordOnBoard(e,t){this._resetRack();const{row:n,col:i,dx:r,dy:s}=Up(t),a=[];for(let e=1;e<=7;e++){const t=`R${e}`;t in this.tiles&&a.push(t)}let o=n,l=i,c=0;for(;c<e.length;){let t,n=!1;"?"===e[c]?(n=!0,c++,t=e[c]):t=e[c];const i=zp(o,l);if(!i)return;const u=this.tileAt(o,l);if(u&&!u.draggable){if(u.letter!==t)return}else{if(0===a.length)return;let e=!1;for(let r=0;r<a.length;r++){const s=a[r],o=this.tiles[s];if(o){const l="?"===o.tile?" ":o.tile;if(n){if("?"===o.tile){o.letter=t,this.tiles[i]=o,delete this.tiles[s],a.splice(r,1),e=!0;break}}else if(l===t){this.tiles[i]=o,delete this.tiles[s],a.splice(r,1),e=!0;break}}}if(!e)return}o+=s,l+=r,c++}this.updateScore(),this.saveTiles()}initRack(e){for(let e=1;e<=7;e++)delete this.tiles[`R${e}`];for(let t=0;t<e.length&&t<7;t++){const[n,i]=e[t];this.tiles[`R${t+1}`]={player:0,tile:n,letter:"?"===n?" ":n,score:i,freshtile:!0,draggable:!0,index:t,xchg:!1}}}initBoard(e){this.tiles={};for(let t=0;t<15;t++){const n=e[t]||"";for(let e=0;e<15;e++){const i=n[e]||"",r=zp(t,e);if(!i||!r)continue;const s=i.toLowerCase(),a=s!==i;if(this.alphabet.includes(s)){const e=a?0:this.tile_scores[s]||1;this.tiles[r]={player:0,tile:a?"?":s,letter:s,score:e,freshtile:!1,draggable:!1,index:-1,xchg:!1}}}}}cleanup(){super.cleanup()}}function Of(){const e=[{name:"main",route:"/main",mustLogin:!0},{name:"help",route:"/help",mustLogin:!1},{name:"game",route:"/game/:uuid",mustLogin:!0},{name:"review",route:"/review/:uuid",mustLogin:!0}];return{paths:e,defaultRoute:e[0].route}}class jf{constructor(e,t){this.paths=[],this.routeName=void 0,this.params=void 0,this.game=null,this.riddle=null,this.userStats=null,this.leaderboard=[],this.solverCount=0,this.gameList=null,this.numGames=0,this.loadingAllLists=!1,this.loadingGameList=!1,this.challengeList=null,this.numChallenges=0,this.loadingChallengeList=!1,this.oppReady=0,this.recentList=null,this.loadingRecentList=!1,this.userListCriteria=null,this.userList=null,this.loadingUserList=!1,this.eloRatingList=null,this.eloRatingSpec=null,this.ownStats=null,this.user=null,this.userErrors=null,this.userLoadError=!1,this.helpHTML=null,this.spinners=0,this.reviewMove=null,this.bestMoves=null,this.highlightedMove=null,this.maxFreeGames=0,this.isExplo=!1,this.paths=e.paths.slice(),this.state=t,this.isExplo=t.isExplo,this.maxFreeGames=t.isExplo?3:8,_p(t.locale)}async post(e,t){if(!this.state)throw new Error("Model state is not initialized");return rp(this.state,{method:"POST",url:e,body:t})}async getText(e){if(!this.state)throw new Error("Model state is not initialized");return rp(this.state,{method:"GET",url:e,responseType:"text",deserialize:e=>e})}async postText(e,t){if(!this.state)throw new Error("Model state is not initialized");return rp(this.state,{method:"POST",url:e,body:t,responseType:"text",deserialize:e=>e})}async postMoves(e){if(!this.state)throw new Error("Model state is not initialized");return sp(this.state,{method:"POST",url:"/moves",body:e})}async loadGame(e,t,n=!1){try{if(null!==this.game&&(this.game.cleanup(),this.game=null),this.reviewMove=null,this.bestMoves=null,this.highlightedMove=null,!e)return;const i=await this.post("/gamestate",{game:e,delete_zombie:n});i?.ok&&(this.game=new Lf(e,i.game,this,this.state,this.state?.runningLocal?60:600),t?.())}catch(e){}}async loadAllLists(e=!0){if(!this.loadingAllLists){this.loadingAllLists=!0,this.gameList=[],this.challengeList=[],this.recentList=[],this.numGames=0,this.numChallenges=0,this.oppReady=0;try{const t=await this.post("/allgamelists",{zombie:e,count:40});if(!t||0!==t.result)return this.gameList=[],this.challengeList=[],void(this.recentList=[]);this.gameList=t.gamelist||[],this.challengeList=t.challengelist||[],this.recentList=t.recentlist||[],this.numGames=this.gameList.reduce(((e,t)=>e+(t.my_turn||t.zombie?1:0)),0);for(const e of this.challengeList)e.opp_ready&&this.oppReady++;this.numChallenges=this.oppReady,this.numChallenges+=this.challengeList.reduce(((e,t)=>e+(t.received?1:0)),0)}catch(e){this.gameList=[],this.challengeList=[],this.recentList=[]}finally{this.loadingAllLists=!1}}}async loadGameList(e=!0){if(!this.loadingGameList){this.loadingGameList=!0,this.gameList=[],this.numGames=0,this.spinners++;try{const t=await this.post("/gamelist",{zombie:e});if(!t||0!==t.result)return void(this.gameList=[]);this.gameList=t.gamelist||[],this.gameList&&(this.numGames=this.gameList.reduce(((e,t)=>e+(t.my_turn||t.zombie?1:0)),0))}catch(e){this.gameList=[]}finally{this.loadingGameList=!1,this.spinners&&this.spinners--}}}async loadChallengeList(){if(!this.loadingChallengeList){this.loadingChallengeList=!0,this.challengeList=[],this.numChallenges=0,this.oppReady=0,this.spinners++;try{const e=await this.post("/challengelist");if(!e||0!==e.result)return void(this.challengeList=[]);this.challengeList=e.challengelist||[];for(const e of this.challengeList)e.opp_ready&&this.oppReady++;this.numChallenges=this.oppReady,this.numChallenges+=this.challengeList.reduce(((e,t)=>e+(t.received?1:0)),0)}catch(e){this.challengeList=[]}finally{this.loadingChallengeList=!1,this.spinners&&this.spinners--}}}async loadRecentList(){if(!this.loadingRecentList){this.loadingRecentList=!0,this.recentList=[],this.spinners++;try{const e=await this.post("/recentlist",{versus:null,count:40});if(!e||0!==e.result)return void(this.recentList=[]);this.recentList=e.recentlist||[]}catch(e){this.recentList=[]}finally{this.loadingRecentList=!1,this.spinners&&this.spinners--}}}async loadUserRecentList(e,t,n){n(await this.post("/recentlist",{user:e,versus:t,count:40}))}async loadUserList(e){if("search"===e.query&&""===e.spec)return this.userList=[],this.userListCriteria=e,void zd.redraw();this.userList=void 0,this.userListCriteria=void 0;const t=e;try{const n=await this.post("/userlist",t);if(!n||0!==n.result)return this.userList=[],void(this.userListCriteria=e);this.userList=n.userlist,this.userListCriteria=e}catch(t){this.userList=[],this.userListCriteria=e}}async loadEloRatingList(e){this.eloRatingList=void 0,this.eloRatingSpec=void 0;const t={kind:e};try{const n=await this.post("/rating",t);if(!n||0!==n.result)return this.eloRatingList=[],void(this.eloRatingSpec=e);this.eloRatingList=n.rating,this.eloRatingSpec=e}catch(t){this.eloRatingList=[],this.eloRatingSpec=e}}async loadOwnStats(){this.ownStats={};try{const e=await this.post("/userstats",{});if(!e||0!==e.result)return;this.ownStats=e}catch(e){}}async loadUserStats(e,t){try{t(await this.post("/userstats",{user:e}))}catch(e){}}async loadPromoContent(e,t){try{t(await this.postText("/promo",{key:e}))}catch(e){}}async loadBestMoves(e){if(!this.game||!this.game.uuid)return;if(!e)return this.reviewMove=0,this.bestMoves=null,this.highlightedMove=null,this.game.setRack([]),void this.game.placeTiles(0);const t=this.game.tile_scores,n=this.game.rackAtMove(e-1);if(!n||this.game.isFinalMove(e-1))return this.reviewMove=e,this.bestMoves=[],this.highlightedMove=null,n?this.game.setRack(n.split("").map((e=>[e,t[e]]))):this.game.setRack([]),void this.game.placeTiles(e);this.reviewMove=null,this.spinners++,this.game.placeTiles(e-1,!0,!0);try{const i={locale:this.game.locale,board_type:this.isExplo?"explo":"standard",board:this.game.boardAsStrings(),rack:n,limit:19},r=await this.postMoves(i);if(this.highlightedMove=null,!r||void 0===r.moves)return this.reviewMove=null,void(this.bestMoves=null);this.reviewMove=e,this.bestMoves=r.moves.map((t=>[(e-1)%2,[t.co,t.w,t.sc],!1])),this.game.setRack(n.split("").map((e=>[e,t[e]]))),this.game.placeTiles(e)}catch(e){this.highlightedMove=null,this.reviewMove=null,this.bestMoves=null}finally{this.spinners&&this.spinners--}}async loadHelp(){if(null===this.helpHTML)try{const e=this.state?.locale||"is_IS",t=await this.getText(`/rawhelp?version=malstadur&locale=${e}`);this.helpHTML=t}catch(e){this.helpHTML=""}}async loadUser(e){this.user=void 0,e&&this.spinners++;try{const e=await this.post("/loaduserprefs");e&&e.ok?(this.user=e.userprefs,this.userErrors=null,Vp(cg())):(this.user=null,this.userErrors=null,this.userLoadError=!0)}catch(e){this.user=null,this.userErrors=null,this.userLoadError=!0}finally{e&&this.spinners&&this.spinners--}}async saveUser(e){const t=this.user;if(t)try{const n=await this.post("/saveuserprefs",t);if(n?.ok){const n=this.state;null!==n&&(n.userNick=t.nickname,n.beginner=t.beginner,n.fairPlay=t.fairplay,o(n)),Vp(cg()),null!==this.game&&this.game.notifyUserChange(t.nickname),void 0!==e&&e(),this.userErrors=null,this.user=null}else this.userErrors=n.err||null}catch(e){this.userErrors=null}}addChatMessage(e,t,n,i){if(this.game&&this.game.uuid===e){const e=this.state?.netskraflUserId??"";return this.game.addChatMessage(t,n,i,t===e),!0}return!1}handleUserChallengeMessage(e,t){!t&&this.state&&e&&(this.loadChallengeList(),this.userListCriteria&&this.loadUserList(this.userListCriteria),this.loadingGameList||(this.gameList=null),zd.redraw())}handleUserMoveMessage(e,t){!t&&this.state&&e&&(this.loadingGameList||(this.gameList=null,zd.redraw()))}handleMoveMessage(e,t){!t&&this.game&&(this.game.update(e),this.state.audio&&null!==this.game.player&&!this.game.isRobotGame()&&Op(this.state,"your-turn"),zd.redraw())}notifyMove(){this.loadingGameList||(this.gameList=null)}notifyGameWon(){this.user?.fanfare&&Op(this.state,"you-win")}moreGamesAllowed(){if(!this.state)return!1;if(this.loadingGameList)return!1;if(!this.gameList)return!0;return!(this.gameList.length>=50)&&(!!this.state.hasPaid||this.gameList.length<this.maxFreeGames)}async initRiddle(e,t){this.riddle=new Mf(`gatadagsins-${e}`,e,this),await this.riddle.load(e,t)}}const Ff=()=>{let e=!1;return{view:t=>{const{view:n,item:i}=t.attrs,r=n.model.state;if(!r)return;const s=""!==r.plan,a=i.fairplay&&r.fairPlay;return zd(".modal-dialog",{id:"chall-dialog",style:{visibility:"visible"}},zd(".ui-widget.ui-widget-content.ui-corner-all",{id:"chall-form"},[zd(".chall-hdr",zd("table",zd("tbody",zd("tr",[zd("td",zd("h1.chall-icon",Lp("hand-right"))),zd("td.l-border",[zd(mg,{id:"chall-online",userId:i.userid,state:r}),zd("h1",i.nick),zd("h2",i.fullname)])])))),zd("div",{style:{"text-align":"center"}},[zd(".promo-fullscreen",[Sp("p",[Sp("strong","Ný áskorun")," - veldu lengd viðureignar:"]),zd(wg,{initialSelection:0,defaultClass:"chall-time"},[zd("div",{id:"chall-none",tabindex:1},kp("Viðureign án klukku")),zd("div",{id:"chall-10",tabindex:2},[Lp("time"),kp("2 x 10 mínútur")]),zd("div",{id:"chall-15",tabindex:3},[Lp("time"),kp("2 x 15 mínútur")]),zd("div",{id:"chall-20",tabindex:4},[Lp("time"),kp("2 x 20 mínútur")]),zd("div",{id:"chall-25",tabindex:5},[Lp("time"),kp("2 x 25 mínútur")]),r?.runningLocal?zd("div",{id:"chall-3",tabindex:6},[Lp("time"),kp("2 x 3 mínútur")]):zd("div",{id:"chall-30",tabindex:6},[Lp("time"),kp("2 x 30 mínútur")])])]),zd(".promo-mobile",[zd("p",Sp("strong","Ný áskorun")),zd(".chall-time.selected",{id:"extra-none",tabindex:1},kp("Viðureign án klukku"))])]),s?zd("div",{id:"chall-manual"},[Sp("span.caption.wide",["Nota ",Sp("strong","handvirka véfengingu"),zd("br"),'("keppnishamur")']),zd(".toggler[id='manual-toggler'][tabindex='7']",{onclick:t=>{e=!e,t.preventDefault()}},[zd(".option"+(e?"":".selected"),zd("span",Dp())),zd(".option"+(e?".selected":""),Lp("lightbulb"))])]):"",a?zd("div",{id:"chall-fairplay"},[kp("Báðir leikmenn lýsa því yfir að þeir skrafla "),zd("br"),Sp("strong","án stafrænna hjálpartækja"),kp(" af nokkru tagi"),"."]):"",zd(pg,{id:"chall-cancel",title:Cp("Hætta við"),tabindex:8,onclick:e=>{n.popDialog(),e.preventDefault()}},Lp("remove")),zd(pg,{id:"chall-ok",title:Cp("Skora á"),tabindex:9,onclick:t=>{let r=document.querySelector("div.chall-time.selected")?.id.slice(6)??"0";r="none"===r?0:parseInt(r,10),i.chall=!0,n.actions.handleChallenge({destuser:i.userid,action:"issue",duration:r,fairplay:a,manual:e}),n.popDialog(),t.preventDefault()}},Lp("ok"))]))}}},zf=e=>{const{view:t}=e.attrs,{model:n}=t;return{view:()=>{if(!n.state)return;const e=n.state;return zd(".modal-dialog",{id:"promo-dialog",style:{visibility:"visible"}},zd(".ui-widget.ui-widget-content.ui-corner-all",{id:"promo-form"},[zd(".promo-content",[zd("h2",[Lp("coffee-cup"),Dp(),"Komdu í áskrift að Netskrafli!"]),zd("p","Með áskrift að Netskrafli færðu aðgang að öllu því sem leikurinn hefur að bjóða:"),zd("ul",[zd("li",["Sem áskrifandi getur þú haft ",zd("b","ótakmarkaðan fjölda viðureigna")," í gangi samtímis (í stað ",zd("b",8..toString())," að hámarki)."]),zd("li",["Sem áskrifandi hefur þú aðgang að ",zd("b","yfirliti")," í lok hverrar viðureignar þar sem hún er rakin leik fyrir leik ","og bestu möguleikar í hverri stöðu sýndir."]),zd("li",["Sem áskrifandi getur þú skorað á aðra leikmenn í ",zd("b","keppnisham"),". Þá má leggja niður hvaða orð sem er, en andstæðingur getur véfengt þau — alveg eins ","og í borðskrafli og í keppni á skraflmótum. (BÍN er þó áfram endanlegur dómari um ","gild orð.)"]),zd("li",["Þú getur líka gerst áskrifandi að ",zd("b","Málstað"),", máltæknivettvangi Miðeindar — og þá er Netskraflið innifalið! ","Á Málstað geturðu látið lesa yfir texta, þýtt á milli tungumála, ","breytt tali í texta, búið til skjátexta, fundargerðir og fleira."])]),zd("p",Sp("strong","Komdu með — og styrktu íslenska máltækni í leiðinni!"))]),zd(".btn-promo-yes",{id:"friend-yes",title:Cp("Gerast áskrifandi"),tabindex:1,onclick:t=>{t.preventDefault(),fh("click_friend",{userid:e.netskraflUserId,locale:e.locale}),window.location.href=e.subscriptionUrl}},[Lp("ok"),Dp(),Cp("Gerast áskrifandi")]),zd(".btn-promo-no",{id:"friend-no",title:Cp("Hætta við"),tabindex:2,onclick:e=>{t.popDialog(),e.preventDefault()}},[Lp("remove"),Dp(),Cp("Nei, takk")])]))}}},Uf=e=>{const{view:t}=e.attrs,{model:n}=t;return{view:()=>{const{game:e}=n,t=[];return!e||null===e.showingDialog&&!e.last_chall||(e.last_chall&&e.localturn&&t.push(zd(".chall-info",[Lp("info-sign"),Dp(),Sp("span.pass-explain","opponent_emptied_rack")])),"resign"===e.showingDialog&&t.push(zd(".resign",[Lp("exclamation-sign"),Dp(),Cp("Viltu gefa leikinn?"),Dp(),zd("span.mobile-break",zd("br")),zd("span.yesnobutton",{onclick:()=>e.confirmResign(!0)},[Lp("ok"),Cp(" Já")]),zd("span.mobile-space"),zd("span.yesnobutton",{onclick:()=>e.confirmResign(!1)},[Lp("remove"),Cp(" Nei")])])),"pass"===e.showingDialog&&(e.last_chall?t.push(zd(".pass-last",[Lp("forward"),Dp(),Cp("Segja pass?"),Sp("span.pass-explain","Viðureign lýkur þar með"),Dp(),zd("span.mobile-break",zd("br")),zd("span.yesnobutton",{onclick:()=>e.confirmPass(!0)},[Lp("ok"),Cp(" Já")]),zd("span.mobile-space"),zd("span.yesnobutton",{onclick:()=>e.confirmPass(!1)},[Lp("remove"),Cp(" Nei")])])):t.push(zd(".pass",[Lp("forward"),Dp(),Cp("Segja pass?"),Sp("span.pass-explain","2x3 pöss í röð ljúka viðureign"),Dp(),zd("span.mobile-break",zd("br")),zd("span.yesnobutton",{onclick:()=>e.confirmPass(!0)},[Lp("ok"),Cp(" Já")]),zd("span.mobile-space"),zd("span.yesnobutton",{onclick:()=>e.confirmPass(!1)},[Lp("remove"),Cp(" Nei")])]))),"exchange"===e.showingDialog&&t.push(zd(".exchange",[Lp("refresh"),Dp(),Cp("Smelltu á flísarnar sem þú vilt skipta"),Dp(),zd("span.mobile-break",zd("br")),zd("span.yesnobutton",{title:Cp("Skipta"),onclick:()=>e.confirmExchange(!0)},Lp("ok")),zd("span.mobile-space"),zd("span.yesnobutton",{title:Cp("Hætta við"),onclick:()=>e.confirmExchange(!1)},Lp("remove"))])),"chall"===e.showingDialog&&t.push(zd(".chall",[Lp("ban-circle"),Dp(),Cp("Véfengja lögn?"),Sp("span.pass-explain","Röng véfenging kostar 10 stig"),Dp(),zd("span.mobile-break",zd("br")),zd("span.yesnobutton",{onclick:()=>e.confirmChallenge(!0)},[Lp("ok"),Cp(" Já")]),zd("span.mobile-space"),zd("span.yesnobutton",{onclick:()=>e.confirmChallenge(!1)},[Lp("remove"),Cp(" Nei")])]))),t}}},$f=()=>({view:e=>{const{bag:t,newbag:n}=e.attrs;let i="";return t.length<=7?i+=".empty":n&&(i+=".new"),zd(".bag",{title:Cp("Flísar sem eftir eru")},zd(`table.bag-content${i}`,function(e){const t=[];let n=0,i=e.length;for(;i>0;){const r=[];for(let t=0;t<19&&i>0;t++){let t=e[n++];"?"===t&&(t="&nbsp;"),r.push(zd("td",zd.trust(t))),i--}t.push(zd("tr",r))}return t}(t)))}}),qf=[{icon:":-)",image:"/static/icontexto_emoticons_03.png"},{icon:":-D",image:"/static/icontexto_emoticons_02.png"},{icon:";-)",image:"/static/icontexto_emoticons_04.png"},{icon:":-(",image:"/static/icontexto_emoticons_12.png"},{icon:":-o",image:"/static/icontexto_emoticons_10.png"},{icon:":-O",image:"/static/icontexto_emoticons_10.png"},{icon:":-p",image:"/static/icontexto_emoticons_14.png"},{icon:":-P",image:"/static/icontexto_emoticons_14.png"},{icon:"B-)",image:"/static/icontexto_emoticons_16.png"},{icon:":)",image:"/static/icontexto_emoticons_03.png"},{icon:":D",image:"/static/icontexto_emoticons_02.png"},{icon:";)",image:"/static/icontexto_emoticons_04.png"},{icon:":(",image:"/static/icontexto_emoticons_12.png"},{icon:":o",image:"/static/icontexto_emoticons_10.png"},{icon:":O",image:"/static/icontexto_emoticons_10.png"},{icon:":p",image:"/static/icontexto_emoticons_14.png"},{icon:":P",image:"/static/icontexto_emoticons_14.png"},{icon:"(y)",image:"/static/thumb-up.png"}],Bf=e=>{const{view:t}=e.attrs,n=t.model,i=n.game,r=n.state;function s(e){var t=function(e){return{year:parseInt(e.slice(0,4),10),month:parseInt(e.slice(5,7),10),day:parseInt(e.slice(8,10),10),hour:parseInt(e.slice(11,13),10),minute:parseInt(e.slice(14,16),10),second:parseInt(e.slice(17,19),10)}}(e);return Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second)}let a=null;function o(e,t){const n=s(e);let i=null;if(null===a||(r=a,o=n,Math.round((o-r)/1e3)>=300)){const r=864e5,s=Date.now(),a=s-s%r;let o;o=n<a-r?e.slice(0,-3):n<a?`Í gær ${e.slice(11,16)}`:e.slice(11,16),i=zd(".chat-ts",{key:t},o)}var r,o;return a=n,i}const l=i?i.player:null;function c(e){if(!r)return e;for(const t of qf)if(e.indexOf(t.icon)>=0){const n=`<img src='${Ud(r,t.image)}' height='32' width='32'>`;e=e.split(t.icon).join(n)}return e}function u(){const e=[];if(i?.chatLoading||!i?.messages)return e;var t=0;const r=n.state?.netskraflUserId??"";for(const n of i.messages){let i=l??0;n.from_userid!==r&&(i=1-i);const s=o(n.ts,t);null!==s&&(e.push(s),t++);let a=Ap(n.msg);a=c(a),e.push(zd(".chat-msg"+(0===i?".left":".right")+(i===l?".local":".remote"),{key:t++},zd.trust(a)))}return e}function h(){const e=document.querySelectorAll("#chat-area .chat-msg");if(!e.length)return;const t=e[e.length-1];t.parentNode.scrollTop=t.offsetTop}function d(e){t.isDialogShown()||e.dom.focus()}function p(){const e=Mp("msg").trim();i&&e.length>0&&(i.sendMessage(e),function(e,t){document.getElementById(e).value=t}("msg",""))}const g=i?.messages?i.messages.length:0;return{view:()=>zd(".chat-container",{style:"z-index: 6"},[zd(".chat-area"+(i?.showClock()?".with-clock":""),{id:"chat-area",oncreate:h,onupdate:h},u()),zd(".chat-input",[zd("input.chat-txt",{type:"text",id:"msg",name:"msg",maxlength:254,disabled:g>=250,oncreate:e=>{d(e)},onupdate:e=>{d(e)},onkeypress:e=>{"Enter"===e.key&&(p(),e.preventDefault())}}),zd(pg,{id:"chat-send",title:Cp("Senda"),onclick:e=>{p(),e.preventDefault()}},Lp("chat"))])])}},Vf=()=>{function e(e,t,n,i,r){const s=Up(t);let a=s.col,o=s.row;for(const t of n){if("?"===t)continue;const n=zp(o,a);n&&n in e.tiles&&(e.tiles[n].highlight=r?i:void 0),a+=s.dx,o+=s.dy}}function t(t,n,i){const{game:r,state:s}=t.model;if(!r||!s)return null;const{leftTotal:a,rightTotal:o,player:l}=i;let{co:c,tiles:u}=i,h=i.score,d="wordmove";const p=c;let g=0;if(""===c)if(d="othermove","PASS"===u)u=` ${Cp("Pass")} `,h="";else if(0===u.indexOf("EXCH")){const e=u.slice(5).length,t=Cp(1===e?"letter":"letters");u=" "+Cp("exchanged",{numtiles:e.toString(),letters:t})+" ",h=""}else"RSGN"===u?u=` ${Cp("Gaf viðureign")} `:"CHALL"===u?(u=` ${Cp("Véfengdi lögn")} `,h=""):"RESP"===u?h<0?(u=` ${Cp("Óleyfileg lögn")} `,g=-1):u=` ${Cp("Röng véfenging")} `:"TIME"===u?u=` ${Cp("Umframtími")} `:"OVER"===u?(u=Cp("Viðureign lokið"),d="gameover"):d="wordmove";else c=`(${c})`,u=u.split("?").join(""),g=1;if("gameover"===d)return function(e,t,n,i){return zd(".move.gameover",[zd("span.gameovermsg",i),zd("span.statsbutton",{onclick:i=>{i.preventDefault(),n.hasPaid?(zd.route.set(`/review/${t.uuid}`),null!=t&&fh("game_review",{locale:t.locale,uuid:t.uuid})):(fh("click_review",{userid:n.netskraflUserId,locale:n.locale}),e.showFriendPromo())}},kp("Skoða yfirlit"))])}(t,r,s,u);const f=g>0&&!r.manual?Cp("Smelltu til að fletta upp"):"";let m=0;const v=r.player;let y;l===v||null===v&&0===l?y="humangrad"+(0===l?"_left":"_right"):(y="autoplayergrad"+(0===l?"_left":"_right"),m=1);const w={};return s.uiFullscreen&&g>0&&(r.manual||"is_IS"===r.locale&&(w.onclick=()=>{window.open(`https://malid.is/leit/${u}`,"malid")},w.title=f),w.onmouseout=()=>{n[2]=!1,e(r,p,u,m,!1)},w.onmouseover=()=>{n[2]=!0,e(r,p,u,m,!0)}),0===l?zd(`.move.leftmove.${y}`,w,[zd("span.total"+(l===v?".human":".autoplayer"),a),zd("span.score"+(n[2]?".highlight":""),h),zd(`span.${d}`,[zd("i",u),Dp(),c])]):zd(`.move.rightmove.${y}`,w,[zd(`span.${d}`,[c,Dp(),zd("i",u)]),zd("span.score"+(n[2]?".highlight":""),h),zd("span.total"+(l===v?".human":".autoplayer"),o)])}return{view:e=>{const{view:n,move:i,info:r}=e.attrs;return t(n,i,r)}}},Hf=e=>{const{view:t}=e.attrs,n=t.model;function i(e,n,i,r){t.isMobile()||(i===r?t.pushDialog("userprefs",{}):e.autoplayer[r]||t.showUserInfo(e.userid[r],e.nickname[r],e.fullname[r]),n.stopPropagation(),n.preventDefault())}return{view:e=>{const t=n.game;if(!t)return;const r=t.autoplayer[0],s=t.autoplayer[1],a=t.nickname[0],o=t.nickname[1],l=t.player,c=t.localturn,u=t.over;if("left"===e.attrs.side){if(r)return zd(".robot-btn.left",[Lp("cog"),Dp(),a]);return zd(`.player-btn.left${u||c!==(0===l)?"":".tomove"}`,{id:"player-0",onclick:e=>i(t,e,l,0)},[zd("span.left-to-move"),a])}if(s)return zd(".robot-btn.right",[Lp("cog"),Dp(),o]);return zd(`.player-btn.right${u||c!==(1===l)?"":".tomove"}`,{id:"player-1",onclick:e=>i(t,e,l,1)},[zd("span.right-to-move"),o])}}},Wf=e=>{const t=e.attrs.view.model;let n=0;return{view:()=>{if(!t.game)return;const e=t.game,i=e.twoLetterWords()[n],r=[];for(const e of i){const t=e[1],i=[];for(let e=0;e<t.length;e++)i.push((s=0===e,a=t[e],zd(".twoletter-word",s?0===n?[zd("b",a[0]),a[1]]:[a[0],zd("b",a[1])]:a)));r.push(zd(".twoletter-group",i))}var s,a;return zd(".twoletter",{onclick:()=>{n=1-n},style:"z-index: 6"},zd(".twoletter-area"+(e.showClock()?".with-clock":""),{title:Cp(0===n?"Smelltu til að raða eftir seinni staf":"Smelltu til að raða eftir fyrri staf")},r))}}},Gf=e=>{const t=e.attrs.view,n=t.model,i=n.game,r=n.state;function s(){const e=i?i.moves:[],n=[];let r=0,s=0;for(let i=0;i<e.length;i++){const a=e[i],[o,[l,c,u]]=a;0===o?r=Math.max(r+u,0):s=Math.max(s+u,0);const h=zd(Vf,{view:t,move:a,info:{leftTotal:r,rightTotal:s,player:o,co:l,tiles:c,score:u}});n.push(h)}return n}const a=i?i.bag:"",o=!i||i.newbag;return{view:()=>zd(".movelist-container",[zd(".movelist",{onupdate:()=>{setTimeout(Fp)}},s()),r?.uiFullscreen?"":zd($f,{bag:a,newbag:o})])}},Kf=e=>{const t=e.attrs.view.model;return{view:()=>zd(".games",{style:"z-index: 6"},function(){const e=[];if(t.loadingGameList||t.loadingAllLists)return e;const n=t.gameList;if(null===n)return t.loadGameList(),e;const i=t.game,r=i?i.uuid:"";for(const t of n){if(t.uuid===r)continue;if(!t.my_turn&&!t.zombie)continue;let n;n=null===t.oppid?[Lp("cog"),Dp(),t.opp]:[t.opp];const i=t.sc0<t.sc1?".losing":"",s=`Staðan er ${t.sc0}:${t.sc1}`;e.push(zd(".games-item"+(t.timed?".game-timed":""),{key:t.uuid,title:s},zd(zd.route.Link,{href:jp(t.url)},[zd(".at-top-left",zd(".tilecount",zd(".oc",n))),zd(".at-top-left",zd(".tilecount.trans",zd(`.tc${i}`,{style:{width:`${t.tile_count.toString()}%`}},n)))])))}return e}())}},Yf={view:e=>{const{view:t,tabid:n,title:i,icon:r,alert:s,funcSel:a}=e.attrs,o=t.selectedTab||"movelist",l=t.model.game;return zd(".right-tab"+(o===n?".selected":""),{id:`tab-${n}`,className:s?"chat-alert":"",title:i,onclick:e=>{l&&null===l.showingDialog&&t.setSelectedTab(n)&&(a?.(),"movelist"===n&&setTimeout(Fp)),e.preventDefault()}},Lp(r))}},Jf={view:e=>{const{view:t}=e.attrs,{game:n}=t.model,i=n&&!n.isRobotGame()&&null!==n.player,r=[zd(Yf,{view:t,tabid:"board",title:Cp("Borðið"),icon:"grid"}),zd(Yf,{view:t,tabid:"movelist",title:Cp("Leikir"),icon:"show-lines"}),zd(Yf,{view:t,tabid:"twoletter",title:Cp("Tveggja stafa orð"),icon:"life-preserver"}),zd(Yf,{view:t,tabid:"games",title:Cp("Viðureignir"),icon:"flag"})];return i&&r.push(zd(Yf,{view:t,tabid:"chat",title:Cp("Spjall"),icon:"conversation",funcSel:()=>{n.markChatShown()&&zd.redraw()},alert:!n.chatSeen&&"chat"!==t.selectedTab})),zd.fragment({},r)}},Zf=e=>{const{view:t}=e.attrs,{model:n}=t,{game:i}=n;function r(){if(!i||!i.showClock())return zd.fragment({},[]);function e(e,t,n,i){return zd("h3."+e+(n?".running-out":"")+(i?".blink":""),t)}return zd.fragment({},[e("clockleft",i.clockText0,i.runningOut0,i.blinking0),e("clockright",i.clockText1,i.runningOut1,i.blinking1),zd(".clockface",Lp("time"))])}function s(){const e=!!i&&i.fairplay,n=i?i.player:null,s=i?i.displayScore(0).toString():"",a=i?i.displayScore(1).toString():"";return zd(".heading",[zd(".logowrapper",zd(kg)),zd(".playerwrapper",[zd(".leftplayer"+(1===n?".autoplayercolor":".humancolor"),[zd(".player",zd(Hf,{view:t,side:"left"})),zd(".scorewrapper",zd(".scoreleft",s))]),zd(".rightplayer"+(1===n?".humancolor":".autoplayercolor"),[zd(".player",zd(Hf,{view:t,side:"right"})),zd(".scorewrapper",zd(".scoreright",a))]),zd(".fairplay",{style:{visibility:e?"visible":"hidden"}},zd("span.fairplay-btn.large",{title:Cp("Skraflað án hjálpartækja")}))]),r()])}function a(){if(!i)return;let e;switch(t.selectedTab||"movelist"){case"movelist":e=zd(Gf,{view:t});break;case"twoletter":e=zd(Wf,{view:t});break;case"chat":e=zd(Bf,{view:t});break;case"games":e=zd(Kf,{view:t})}const n=zd(Jf,{view:t});return zd(".right-area"+(i?.showClock()?".with-clock":""),e?[n,e]:[n])}return{view:()=>zd(".rightcol",[s(),a()])}},Xf={view:e=>{const{view:t}=e.attrs,{model:n}=t,{game:i,state:r}=n;if(!i)return zd("div",[zd(".game-container"),zd(_g)]);const{bag:s,newbag:a}=i;return zd("div.drop-target",{id:"board-background"},[zd(".game-container",[zd(Zf,{view:t}),zd(Kg,{view:t,game:i}),r?.uiFullscreen?zd($f,{bag:s,newbag:a}):"",i.askingForBlank?zd(Lg,{game:i}):""]),zd(_g),r?.beginner?zd(Wp,{view:t,showClose:!0}):"",zd(bg)])}},Qf=()=>({view:e=>{const t=e.attrs.ownStats||{},n=[];if(t.highest_score&&(n.push(Cp("Hæsta skor ")),n.push(zd("b",zd(zd.route.Link,{href:`/game/${t.highest_score_game}`},t.highest_score)))),t.best_word){n.length&&(e.attrs.myself?n.push(zd("br")):n.push(" | "));const i=t.best_word,r=[];for(let e=0;e<i.length;e++)"?"===i[e]?(r.push(zd("span.netskrafl-blanktile",i[e+1])),e+=1):r.push(i[e]);n.push(Cp("Besta orð ")),n.push(zd("span.best-word",r)),n.push(", "),n.push(zd("b",zd(zd.route.Link,{href:`/game/${t.best_word_game}`},t.best_word_score))),n.push(Cp(" stig"))}return zd("p",{id:e.attrs.id},n)}}),em=e=>{const{view:t,item:n,i:i}=e.attrs,{model:r}=t;function s(e){e.preventDefault(),n.received?t.actions.declineChallenge(n.userid,n.key):t.actions.retractChallenge(n.userid,n.key)}function a(e){if(e.preventDefault(),!r.moreGamesAllowed()){const e=r.state;return e&&fh("hit_game_limit",{userid:e.netskraflUserId,locale:e.locale,limit:r.maxFreeGames}),void t.showFriendPromo()}n.received?n.prefs&&void 0!==n.prefs.duration&&n.prefs.duration>0?t.pushDialog("wait",{oppId:n.userid,oppNick:n.opp,oppName:n.fullname,duration:n.prefs.duration,challengeKey:n.key}):t.actions.startNewGame(n.userid,!1):t.showAcceptDialog(n.userid,n.opp,n.key)}return{view:()=>{const e=!n.received&&n.opp_ready&&n.prefs&&void 0!==n.prefs.duration&&n.prefs.duration>0,r=n.received||e,o=(l=n.prefs)&&void 0!==l.duration&&0!==l.duration?kp("with_clock",{duration:l.duration.toString()}):kp("Venjuleg ótímabundin viðureign");var l;return zd(".listitem"+(i%2==0?".oddlist":".evenlist"),[zd("span.list-ch",{onclick:s},n.received?Lp("thumbs-down",{title:Cp("Hafna")}):Lp("hand-right",{title:Cp("Afturkalla")})),zd(r?"a.flex":"span.flex",r?{href:"#",onclick:a,class:e?"opp-ready":""}:{},[zd("span.list-ts",n.ts),zd("span.list-nick",{title:n.fullname},n.opp),zd("span.list-chall",[n.prefs.fairplay?zd("span.fairplay-btn",{title:Cp("Án hjálpartækja")}):"",n.prefs.manual?zd("span.manual-btn",{title:Cp("Keppnishamur")}):"",o])]),zd(fg,{view:t,item:{userid:n.userid,nick:n.opp,fullname:n.fullname}})])}}},tm={view:e=>{const{view:t,showReceived:n}=e.attrs,{model:i}=t;if(!i.state)return[];null===i.challengeList&&i.loadChallengeList();let r=[];i.challengeList&&(r=n?i.challengeList.filter((e=>e.received)):i.challengeList.filter((e=>!e.received)));const s=zd("div",{id:n?"chall-received":"chall-sent"},r.map(((e,n)=>zd(em,{view:t,item:e,i:n}))));return n?[zd(".listitem.listheader",[zd("span.list-icon",Np("thumbs-down",{title:Cp("Hafna")})),Sp("span.list-ts","Hvenær"),Sp("span.list-nick","Áskorandi"),Sp("span.list-chall","Hvernig"),Sp("span.list-info-hdr","Ferill")]),s]:[zd(".listitem.listheader",[zd("span.list-icon",Np("hand-right",{title:Cp("Afturkalla")})),Sp("span.list-ts","Hvenær"),Sp("span.list-nick","Andstæðingur"),Sp("span.list-chall","Hvernig"),Sp("span.list-info-hdr","Ferill")]),s]}},nm={view:e=>{const{loadingGameList:t,loadingAllLists:n,gameList:i}=e.attrs;return t||n||null!==i&&i.length>0?"":zd(".hint",{style:{display:"block"}},[zd("p",["Ef þig vantar einhvern til að skrafla við, veldu flipann ",zd(zd.route.Link,{href:"/main?tab=2"},[Lp("user"),Dp(),"Andstæðingar"])," og skoraðu á tölvuþjarka - ",Lp("cog"),Dp(),zd("b","Amlóða"),", ",Lp("cog"),Dp(),zd("b","Miðlung")," eða ",Lp("cog"),Dp(),zd("b","Fullsterkan")," - eða veldu þér annan leikmann úr stafrófs­listunum sem þar er að finna til að skora á."]),zd("p",["Þú stofnar áskorun með því að smella á bendi-teiknið ",Lp("hand-right",{style:{"margin-left":"6px","margin-right":"6px"}})," vinstra megin við nafn andstæðingsins."]),zd("p","Tölvuþjarkarnir eru ætíð reiðubúnir að skrafla og viðureign við þá hefst strax. Aðrir leikmenn þurfa að samþykkja áskorun áður en viðureign hefst."),zd("p.no-mobile-block",[zd(zd.route.Link,{href:"/help"},"Hjálp")," má fá með því að smella á bláa ",Lp("info-sign"),Dp(),"-",Dp(),"teiknið hér til vinstri."]),zd("p.no-mobile-block","Þú kemst alltaf aftur í þessa aðalsíðu með því að smella á örvarmerkið efst vinstra megin við skraflborðið.")])}},im=()=>{function e(e){const t=null===e.oppid?[Lp("cog"),Dp(),e.opp]:e.opp;return zd("span.list-opp",{title:e.fullname},t)}function t(e){let t="",n="";return e.my_turn?t=Cp("Þú átt leik"):e.zombie?(t=Cp("Viðureign lokið"),n=".zombie"):(t=Cp("opp_move",{opponent:e.opp}),n=".grayed"),zd("span.list-myturn",zd(`span.glyphicon.glyphicon-flag${n}`,{title:t}))}function n(e){return e.overdue?Lp("hourglass",{title:e.my_turn?"Er að renna út á tíma":"Getur þvingað fram uppgjöf"}):Np("hourglass")}function i(e){const t=e.sc0<e.sc1?".losing":"";return zd(".tilecount",zd(`.tc${t}`,{style:{width:`${e.tile_count.toString()}%`}}))}return{view:r=>{const{view:s,item:a,i:o}=r.attrs;return zd(".listitem"+(o%2==0?".oddlist":".evenlist"),[zd(zd.route.Link,{href:jp(a.url)},[t(a),zd("span.list-overdue",n(a)),zd("span.list-ts-short",a.ts),e(a)]),zd(fg,{view:s,item:{userid:a.oppid,nick:a.opp,fullname:a.fullname}}),zd("span.list-s0",a.sc0),zd("span.list-colon",":"),zd("span.list-s1",a.sc1),zd("span.list-tc",i(a)),zd(yg,{manual:a.prefs?.manual})])}}},rm=()=>({view:e=>{const{view:t,id:n}=e.attrs,{model:i}=t,{gameList:r,loadingGameList:s,loadingAllLists:a}=i;return null===r&&i.loadGameList(),[zd(".listitem.listheader",[zd("span.list-myturn",Np("flag",{title:Cp("Átt þú leik?")})),zd("span.list-overdue",Np("hourglass",{title:Cp("Langt frá síðasta leik?")})),Sp("span.list-ts-short","Síðasti leikur"),Sp("span.list-opp","Andstæðingur"),Sp("span.list-info-hdr","Ferill"),Sp("span.list-scorehdr","Staða"),Sp("span.list-tc","Framvinda"),zd(yg,{header:!0})]),zd("div",{id:n},r?r.map(((e,n)=>zd(im,{view:t,item:e,i:n}))):""),zd(nm,{loadingGameList:s,loadingAllLists:a,gameList:r})]}}),sm=()=>{function e(e,t){let n=e.elo_adj?e.elo_adj.toString():"",i=e.human_elo_adj?e.human_elo_adj.toString():"",r="",s="";return null!==e.elo_adj&&(e.elo_adj>0?(n=`+${n}`,r="elo-win"):e.elo_adj<0?r="elo-loss":(r="elo-neutral",n=Lp("stroller",{title:"Byrjandi"})),null!==e.human_elo_adj&&(e.human_elo_adj>0?(i=`+${i}`,s="elo-win"):e.human_elo_adj<0?s="elo-loss":(s="elo-neutral",i=Lp("stroller",{title:"Byrjandi"})))),n=zd("span",{class:`elo-btn right ${r}${""===n?" invisible":""}`},n),i=zd("span",{class:"elo-btn left "+s+(""===i?" invisible":"")},i),zd(".listitem"+(t%2==0?".oddlist":".evenlist"),zd(zd.route.Link,{href:jp(e.url)},[zd("span.list-win",e.sc0>=e.sc1?Lp("bookmark",{title:e.sc0===e.sc1?Cp("Jafntefli"):Cp("Sigur")}):Np("bookmark",{title:Cp("Tap")})),zd("span.list-ts-short",e.ts_last_move),zd("span.list-nick",e.opp_is_robot?[Lp("cog"),Dp(),e.opp]:e.opp),zd("span.list-s0",e.sc0),zd("span.list-colon",":"),zd("span.list-s1",e.sc1),zd("div.list-elo-adj",i),zd("div.list-elo-adj",n),zd("span.list-duration",function(){let t="";return e.prefs?.duration?t=[zd("span.timed-btn",{title:Cp("Viðureign með klukku")}),` 2 x ${e.prefs.duration}${Cp(" mínútur")}`]:(e.days||e.hours||e.minutes)&&(e.days>1?t=e.days.toString()+Cp(" dagar"):1===e.days&&(t=Cp("1 dagur")),e.hours>0&&(t.length&&(t+=Cp(" og ")),1===e.hours?t+=Cp("1 klst"):t+=e.hours.toString()+Cp(" klst")),0===e.days&&(t.length&&(t+=Cp(" og ")),1===e.minutes?t+=Cp("1 mínúta"):t+=e.minutes.toString()+Cp(" mínútur"))),t}()),zd(yg,{manual:e.prefs?.manual})]))}return{view:t=>{const n=t.attrs.recentList;return zd("div",{id:t.attrs.id},n?n.map(e):"")}}},am=e=>{const t=e.attrs.view,n=t.model;let i,r="";function s(){void 0!==i&&(i.result=!1,i=void 0);if("search"!==(n.userListCriteria?.query||"robots"))return void t.actions.searchUsers(r,!0);if(r===n.userListCriteria?.spec)return;const e={result:!0,p:new Promise((t=>{setTimeout((()=>{t(e.result)}),800)}))};i=e,i.p.then((e=>{e&&(t.actions.searchUsers(r,!0),i=void 0)}))}return{view:()=>{const e=n.userListCriteria?.query||"robots";return zd(".user-cat[id='user-search']",[Lp("search",{id:"search",className:"search"===e?"shown":"",onclick:()=>{r="",s(),document.getElementById("search-id")?.focus()}}),Dp(),zd("input.text.userid",{type:"text",id:"search-id",name:"search-id",maxlength:16,placeholder:Cp("Einkenni eða nafn"),value:r,onfocus:()=>s(),oninput:e=>{r=`${e.target.value}`,s()}})])}}};function om(e,t,n){return[zd(".settings-row",[zd("span.settings-label",e),t]),n?zd(".settings-explain",n):null]}const lm=()=>{let e=og(),t=cg();function n(t){e=t,lg(t)}function i(e){t=e,ug(e)}return{view:()=>zd(".settings-tab",[zd(".settings-section",[zd(".settings-section-title",Cp("Tækisstillingar")),om(Cp("Þysja sjálfkrafa"),zd(sf,{state:e,onToggle:n,id:"autozoom",title:Cp("Þysja sjálfkrafa"),size:"small"}),Cp("autozoom_explain")),om(Cp("Eldri litasamsetning"),zd(sf,{state:t,onToggle:i,id:"legacycolors",title:Cp("Eldri litasamsetning"),size:"small"}),Cp("legacy_colors_explain"))])])}},cm=()=>{let e=1;function t(e,t,n){var i=void 0===e?"":function(e,t=1e4){const n=e<0?"-":"";return(e=Math.abs(e))<t?`${n}${e}`:`${n}${e=Math.round(e/1e3)}K`}(e);return void 0!==n&&(i+=n),t?[Lp(t),Dp(),i]:i}return{view:n=>{var i=n.attrs.ownStats,r=0,s=0,a=0,o=0;return void 0!==i&&void 0!==i.games&&void 0!==i.human_games&&(i.games>0&&(r=Math.round(100*(i.wins??0)/i.games),a=Math.round((i.score??0)/i.games)),i.human_games>0&&(s=Math.round(100*(i.human_wins??0)/i.human_games),o=Math.round((i.human_score??0)/i.human_games))),zd("div",{id:n.attrs.id},[zd(".toggler",{id:"own-toggler",title:Cp("stats_choice"),onclick:t=>{e=3-e,t.preventDefault()}},[zd(".option.small"+(1===e?".selected":""),{id:"opt1"},Lp("user")),zd(".option.small"+(2===e?".selected":""),{id:"opt2"},Lp("cog"))]),1===e?zd("div",{id:"own-stats-human",className:"stats-box",style:{display:"inline-block"}},[zd(".stats-fig",{title:Cp("Elo-stig")},i?t(i.locale_elo?.human_elo,"crown"):""),zd(".stats-fig.stats-games",{title:Cp("Fjöldi viðureigna")},i?t(i.human_games,"th"):""),zd(".stats-fig.stats-win-ratio",{title:Cp("Vinningshlutfall")},t(s,"bookmark","%")),zd(".stats-fig.stats-avg-score",{title:Cp("Meðalstigafjöldi")},t(o,"dashboard"))]):"",2===e?zd("div",{id:"own-stats-all",className:"stats-box",style:{display:"inline-block"}},[zd(".stats-fig",{title:Cp("Elo-stig")},i?t(i.locale_elo?.elo,"crown"):""),zd(".stats-fig.stats-games",{title:Cp("Fjöldi viðureigna")},i?t(i.games,"th"):""),zd(".stats-fig.stats-win-ratio",{title:Cp("Vinningshlutfall")},t(r,"bookmark","%")),zd(".stats-fig.stats-avg-score",{title:Cp("Meðalstigafjöldi")},t(a,"dashboard"))]):""])}}},um="/page#!";function hm(e,t,n,i,r){const s=document.getElementById(t);if(!s)return;s.setAttribute("class","ui-tabs ui-widget ui-widget-content ui-corner-all");const a=document.querySelector(`#${t} > ul`);a&&(a.setAttribute("class","ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),a.setAttribute("role","tablist"));const o=document.querySelectorAll(`#${t} > ul > li > a`),l=document.querySelectorAll(`#${t} > ul > li`),c=[],u=[];for(let e=0;e<o.length;e++){const t=o[e].getAttribute("href");if(!t)continue;c.push(t.slice(1)),o[e].onclick=t=>{pm(r,e),t.preventDefault()},o[e].removeAttribute("href"),o[e].classList.add("ui-tabs-anchor","sp"),o[e].setAttribute("role","presentation"),u.push(l[e]),l[e].classList.add("ui-state-default","ui-corner-top"),l[e].setAttribute("role","tab"),l[e].onmouseover=e=>{e.currentTarget.classList.toggle("ui-state-hover",!0)},l[e].onmouseout=e=>{e.currentTarget.classList.toggle("ui-state-hover",!1)};const n=document.getElementById(c[e]);n&&(n.setAttribute("class","ui-tabs-panel ui-widget-content ui-corner-bottom"),n.setAttribute("role","tabpanel"))}if(r.state.ids=c,r.state.lis=u,r.state.selected=0,i){const t=e.model,n=(e,t)=>{const n=t.slice(7),i=n.indexOf("?"),r=i>=0?n.slice(0,i):n,s=n.slice(r.length+1),a=s.length?function(e){const t=e.split("&"),n={};for(let e=0;e<t.length;e++){const i=t[e].split("=");2===i.length&&(n[i[0]]=decodeURIComponent(i[1]))}return n}(s):{};zd.route.set(r,a),window.history&&window.history.pushState({},"",t),e.preventDefault()},i=n=>{t?.state?.netskraflUserId&&e.pushDialog("userprefs",{}),n.preventDefault()},a=e=>{pm(r,2),e.preventDefault()},o=e=>{pm(r,3),e.preventDefault()},l=s.querySelectorAll("a");for(let e=0;e<l.length;e++){const t=l[e],r=t.getAttribute("href");r&&r.slice(0,7)===um?t.onclick=e=>n(e,r):r&&"$$userprefs$$"===r?t.onclick=i:r&&"$$twoletter$$"===r?t.onclick=a:r&&"$$newbag$$"===r&&(t.onclick=o)}}n&&n(r),dm(r)}function dm(e){const t=e.state.selected,n=e.state.lis;for(let i=0;i<e.state.ids.length;i++){const r=e.state.ids[i];document.getElementById(r)?.setAttribute("style","display: "+(i===t?"block":"none")),n[i].classList.toggle("ui-tabs-active",i===t),n[i].classList.toggle("ui-state-active",i===t)}}function pm(e,t){e.state.selected=t,dm(e)}function gm(e){var t=zd.route.param("tab");void 0!==t&&pm(e,parseInt(t,10)||0)}const fm={oninit:e=>{e.state.sel=e.attrs.sel},view:e=>zd(".toggler[id='elo-toggler']",{title:Cp("elo_list_choice")},[zd(".option.x-small",{className:"human"===e.state.sel?"selected":"",onclick:t=>{e.state.sel="human",e.attrs.onchange(e.state.sel),t.preventDefault()}},Lp("user")),zd(".option.x-small",{className:"all"===e.state.sel?"selected":"",onclick:t=>{e.state.sel="all",e.attrs.onchange(e.state.sel),t.preventDefault()}},Lp("cog")),zd(".option.x-small",{className:"manual"===e.state.sel?"selected":"",onclick:t=>{e.state.sel="manual",e.attrs.onchange(e.state.sel),t.preventDefault()}},Lp("lightbulb"))])},mm=e=>{const{spec:t,view:n}=e.attrs;return{view:e=>zd("div",[zd(".listitem.listheader",[zd("span.list-ch",Np("hand-right",{title:Cp("Skora á")})),Sp("span.list-rank","Röð"),zd("span.list-rank-no-mobile",{title:Cp("Röð í gær")},Cp("1d")),zd("span.list-rank-no-mobile",{title:Cp("Röð fyrir viku")},Cp("7d")),Sp("span.list-nick-elo","Einkenni"),zd("span.list-elo",{title:Cp("Elo-stig")},Cp("Elo")),zd("span.list-elo-no-mobile",{title:Cp("Elo-stig í gær")},Cp("1d")),zd("span.list-elo-no-mobile",{title:Cp("Elo-stig fyrir viku")},Cp("7d")),zd("span.list-elo-no-mobile",{title:Cp("Elo-stig fyrir mánuði")},Cp("30d")),zd("span.list-games",{title:Cp("Fjöldi viðureigna")},Lp("th")),zd("span.list-ratio",{title:Cp("Vinningshlutfall")},Lp("bookmark")),zd("span.list-avgpts",{title:Cp("Meðalstigafjöldi")},Lp("dashboard")),Sp("span.list-info-hdr","Ferill"),zd(fm,{sel:t||"human",onchange:e=>{n.actions.withSpinner((()=>n.model.loadEloRatingList(e)))}})]),zd(vm,{id:e.attrs.id,sel:t,view:e.attrs.view})])}},vm=e=>{const t=e.attrs.view,n=t.model,i=n.state;return{view:e=>{const r=n.eloRatingList||[];return zd("div",{id:e.attrs.id},r.map((function(n,r){const s=0===n.userid.indexOf("robot-");function a(e,t){return 0===e||void 0!==t&&0===t?"--":e.toString()}let o=n.nick,l=zd("span.list-ch",Dp());const c=i?.netskraflUserId??"";return n.userid===c||n.inactive||(l=zd(gg,{view:t,item:n})),s&&(o=zd("span",[Lp("cog"),Dp(),o])),n.fairplay&&!s&&(o=zd("span",[zd("span.fairplay-btn",{title:Cp("Skraflar án hjálpartækja")}),o])),zd(".listitem",{key:(e.attrs.sel||"sel")+r,className:r%2==0?"oddlist":"evenlist"},[l,zd("span.list-rank.bold",a(n.rank)),zd("span.list-rank-no-mobile",a(n.rank_yesterday)),zd("span.list-rank-no-mobile",a(n.rank_week_ago)),zd("span.list-nick-elo",{title:n.fullname},o),zd("span.list-elo.bold",n.elo),zd("span.list-elo-no-mobile",a(n.elo_yesterday,n.games_yesterday)),zd("span.list-elo-no-mobile",a(n.elo_week_ago,n.games_week_ago)),zd("span.list-elo-no-mobile",a(n.elo_month_ago,n.games_month_ago)),zd("span.list-games.bold",n.games>=1e5?`${Math.round(n.games/1e3)}K`:n.games),zd("span.list-ratio",`${n.ratio}%`),zd("span.list-avgpts",n.avgpts),n.userid===c?Dp():zd(fg,{view:t,item:n})])})))}}},ym=()=>({view:e=>{const{view:t,id:n}=e.attrs,{model:i}=t,r=i.userListCriteria?.query??"",s=i.userListCriteria?.spec??"",a=void 0===i.eloRatingSpec,o=r||"robots";if("elo"===o||a)return[zd(mm,{id:"elolist",view:t,spec:i.eloRatingSpec??null,key:"elopage"})];let l=[];void 0===i.userList||(null===i.userList||r!==o?t.actions.loadUsersByType(o,!0):l=i.userList);const c=0===l.length&&"search"===o&&""!==s,u="robots"===o;return[zd(".listitem.listheader",[zd("span.list-ch",Np("hand-right",{title:Cp("Skora á")})),zd("span.list-fav",Lp("star-empty",{title:Cp("Uppáhald")})),Sp("span.list-nick","Einkenni"),Sp("span.list-fullname","Nafn og merki"),u?"":Sp("span.list-human-elo[id='usr-list-elo']","Elo"),u?"":Sp("span.list-info-hdr[id='usr-list-info']","Ferill")]),zd("div",{id:n},l.map(((e,n)=>function(e,t,n){const i=0===t.userid.indexOf("robot-"),r=[];return t.ready&&!i&&(r.push(zd("span.ready-btn",{title:Cp("Álínis og tekur við áskorunum")})),r.push(Dp())),t.ready_timed&&(r.push(zd("span.timed-btn",{title:Cp("Til í viðureign með klukku")})),r.push(Dp())),t.fairplay&&(r.push(zd("span.fairplay-btn",{title:Cp("Skraflar án hjálpartækja")})),r.push(Dp())),r.push(t.fullname),zd(".listitem"+(n%2==0?".oddlist":".evenlist"),[zd(gg,{view:e,item:t}),i?zd("span.list-fav",{style:{cursor:"default"}},Lp("star-empty")):zd("span.list-fav",{title:Cp("Uppáhald"),onclick:n=>{e.actions.toggleFavorite(t.userid,t.fav),t.fav=!t.fav,n.preventDefault()}},Lp(t.fav?"star":"star-empty")),i?zd("a",{href:"",onclick:n=>{e.actions.startRobotGame(t.userid),n.preventDefault()}},[zd("span.list-nick",[Lp("cog"),Dp(),t.nick]),zd("span.list-fullname-robot",r)]):[zd("span.list-nick",t.nick),zd("span.list-fullname",r),zd("span.list-human-elo",t.human_elo)],zd(fg,{view:e,item:t})])}(t,e,n)))),c?zd("div",{id:"user-no-match",style:{display:"block"}},[Lp("search")," ",zd("span",{id:"search-prefix"},s),kp(" finnst ekki")]):void 0]}}),wm={view:e=>{const{view:t}=e.attrs,{model:n}=t,{numGames:i,numChallenges:r}=n;return[zd(kg,{hidden:!0}),zd("ul",[zd("li",zd("a[href='#tabs-1']",[Lp("th"),zd("span.tab-legend",kp("Viðureignir")),zd("span",{id:"numgames",style:i?"display: inline-block":""},i)])),zd("li",zd("a[href='#tabs-2']",[Lp("hand-right"),zd("span.tab-legend",kp("Áskoranir")),zd("span"+(n.oppReady?".opp-ready":""),{id:"numchallenges",style:r?"display: inline-block":""},r)])),zd("li",zd("a[href='#tabs-3']",[Lp("user"),zd("span.tab-legend",kp("Andstæðingar"))])),zd("li",zd("a[href='#tabs-4']",[Lp("bookmark"),zd("span.tab-legend",kp("Ferill"))])),zd("li.mobile-only-list",zd("a.sp.narrow[href='#tabs-5']",{title:Cp("Stillingar")},[Lp("cog")]))])]}},bm={view:e=>{const{view:t}=e.attrs,{model:n}=t;return null===n.recentList&&n.loadRecentList(),[zd(".listitem.listheader",[zd("span.list-win",Np("bookmark",{title:Cp("Sigur")})),Sp("span.list-ts-short","Viðureign lauk"),Sp("span.list-nick","Andstæðingur"),Sp("span.list-scorehdr","Úrslit"),zd("span.list-elo-hdr",[zd("span.glyphicon.glyphicon-user.elo-hdr-left",{title:Cp("Mennskir andstæðingar")}),kp("Elo"),zd("span.glyphicon.glyphicon-cog.elo-hdr-right",{title:Cp("Allir andstæðingar")})]),Sp("span.list-duration","Lengd"),zd(yg,{header:!0})]),zd(sm,{view:t,id:"recentlist",recentList:n.recentList||[]})]}},_m={view:e=>{const{view:t,buttonId:n,icon:i,text:r}=e.attrs,{model:s}=t,a=s.userListCriteria?.query||"robots";return zd("span",{className:n===a?"shown":"",id:n,onclick:e=>{"elo"===n?(s.userListCriteria={query:"elo",spec:"human"},s.userList=null,t.actions.withSpinner((()=>s.loadEloRatingList("human")))):(t.actions.loadUsersByType(n,!0),s.eloRatingSpec=null,s.eloRatingList=null),e.preventDefault()}},[Lp(i,{style:{padding:0}}),Dp(),r])}},km={view:e=>{const{view:t}=e.attrs,{model:n}=t,{ownStats:i}=n;return null===i&&n.loadOwnStats(),i?zd(cm,{view:t,id:"own-stats",ownStats:i}):null}},Cm={view:e=>{const{view:t}=e.attrs,{model:n}=t,{ownStats:i}=n;return null===i&&n.loadOwnStats(),i?zd(Qf,{id:"own-best",ownStats:i,myself:!0}):null}},Sm={view:e=>{const{view:t}=e.attrs;return zd("div",{id:"tabs-1"},[Sp("p.no-mobile-block",[Sp("strong","Viðureignir sem standa yfir"),"click_on_game",Lp("flag")," þú átt leik"]),zd(rm,{view:t,id:"gamelist"})])}},Tm={view:e=>{const{view:t}=e.attrs;return zd("div",{id:"tabs-2"},[Sp("p.no-mobile-block",[Sp("strong","Skorað á þig"),"click_on_challenge",Lp("thumbs-down",{style:{"margin-left":"6px","margin-right":"6px"}})," til að hafna henni"]),zd(tm,{view:t,showReceived:!0}),Sp("p.no-mobile-block",[Sp("strong","Þú skorar á aðra")," - smelltu á ",Lp("hand-right",{style:{"margin-left":"6px","margin-right":"6px"}})," til að afturkalla áskorun"]),zd(tm,{view:t,showReceived:!1})])}},Im={view:e=>{const{view:t}=e.attrs;return zd("div",{id:"tabs-3"},[zd("div",{id:"initials"},[zd(".user-cat[id='user-headings']",[zd(_m,{view:t,buttonId:"robots",icon:"cog",text:Cp("Þjarkar")})," ",zd(_m,{view:t,buttonId:"fav",icon:"star",text:Cp("Uppáhalds")})," ",zd(_m,{view:t,buttonId:"live",icon:"flash",text:Cp("Álínis")})," ",zd(_m,{view:t,buttonId:"alike",icon:"resize-small",text:Cp("Svipaðir")})," ",zd(_m,{view:t,buttonId:"elo",icon:"crown",text:Cp("Topp 100")})]),zd(am,{view:t})]),zd(ym,{view:t,id:"userlist"})])}},Em={view:e=>{const{view:t}=e.attrs;return zd("div",{id:"tabs-4"},[zd(km,{view:t}),zd(Cm,{view:t}),Sp("p.no-mobile-block",[Sp("strong","Nýlegar viðureignir þínar"),"click_to_review"]),zd(bm,{view:t})])}},Pm={view:e=>{const{view:t}=e.attrs;return zd("div",{id:"tabs-5"},[zd(lm,{view:t})])}},xm={view:e=>{const{view:t}=e.attrs;return zd(".tabbed-page",zd("div",{id:"main-tabs"},[zd(wm,{view:t}),zd("div.tab-scroll-area",[zd(Sm,{view:t}),zd(Tm,{view:t}),zd(Em,{view:t}),zd(Im,{view:t}),zd(Pm,{view:t})])]))}},Rm={view:e=>{const{view:t}=e.attrs;return[zd(_g,{hidden:!0}),zd(vg,{view:t}),zd(bg),zd(Sg,{view:t}),zd(Tg,{view:t}),zd("div",{oncreate:e=>{hm(t,"main-tabs",void 0,!1,e)},onupdate:gm},zd(xm,{view:t}))]}},Lm=(e,t,n)=>{const i=e.model.game;return zd(".movelist-container",zd(".movelist.bestmoves",function(){const r=[];if(!i||!t||t>i.moves.length)return r;const s=i.moves[t-1],[a,o,l]=s[1];r.push(function(e,n,i){let r,s="wordmove";if(e.length>0)r=[zd("i",n.split("?").join("")),` (${e})`];else if(s="othermove","PASS"===n)r=Cp("Pass");else if(0===n.indexOf("EXCH")){const e=n.slice(5).length,t=Cp(1===e?"letter":"letters");r=Cp("exchanged",{numtiles:e.toString(),letters:t})}else"RSGN"===n?r=Cp("Gaf viðureign"):"CHALL"===n?r=Cp("Véfengdi lögn"):"RESP"===n?r=Cp(i<0?"Óleyfileg lögn":"Röng véfenging"):"TIME"===n?r=Cp("Umframtími"):"OVER"===n?(r=Cp("Viðureign lokið"),s="gameover"):(s="othermove",r="--"===n?Cp("Stafaleif: engin"):[Cp("Stafaleif: "),zd("i.upper",n)]);return zd(".reviewhdr",[zd("span.movenumber",`#${t}`),zd("span",{class:s},r)])}(a,o,l));const c=n;for(let n=0;n<c.length;n++){const[i,[s,a,o]]=c[n],l=Nm(e,t,n,c[n],{player:i,co:s,tiles:a,score:o});l&&r.push(l)}return r}()))},Nm=(e,t,n,i,r)=>{const s=e.model;if(!s.game)return;const a=s.game,{player:o,co:l,tiles:c,score:u}=r;function h(e,i,r,l){const c=Up(e);let u=c.col,h=c.row,d=!1;l&&(s.highlightedMove=n,a.placeTiles(t-1,!0));for(let e of i){if("?"===e){d=!0;continue}const t=zp(h,u);if(null===t)continue;const n=e;d&&(e="?");const i=a.tilescore(e);l&&!(t in a.tiles)&&(a.tiles[t]={player:o,tile:e,letter:n,score:i,draggable:!1,freshtile:!1,index:0,xchg:!1,review:!0,highlight:r}),u+=c.dx,h+=c.dy,d=!1}l||(s.highlightedMove=null,null!==s.reviewMove&&a.placeTiles(s.reviewMove))}const d=`(${l})`,p=c.split("?").join("");let g=0;const f=a.player;let m;o===f||null===f&&0===o?m="humangrad"+(0===o?"_left":"_right"):(m="autoplayergrad"+(0===o?"_left":"_right"),g=1);const v={title:"Smelltu til að fletta upp"};return"is_IS"===a.locale&&(v.onclick=()=>{window.open(`https://malid.is/leit/${p}`,"malid")}),v.onmouseover=()=>{i[2]=!0,h(l,c,g,!0)},v.onmouseout=()=>{i[2]=!1,h(l,c,g,!1)},0===o?zd(`.move.leftmove.${m}`,v,[zd("span.score"+(i[2]?".highlight":""),u),zd("span.wordmove",[zd("i",p),Dp(),d])]):zd(`.move.rightmove.${m}`,v,[zd("span.wordmove",[d,Dp(),zd("i",p)]),zd("span.score"+(i[2]?".highlight":""),u)])},Dm=(e,t)=>{const n=e.model,i=n.game,r=i?.moves.length??0,s=[];if(!(i?.uuid??""))return s;if(s.push(Ng("navbtn",!t,(()=>{n.loadBestMoves(t?t-1:0)}),"Sjá fyrri leik",zd("span",{id:"nav-prev-visible"},[Lp("chevron-left")," Fyrri"]),!0,"navprev")),s.push(Ng("navbtn",!t||t>=r,(()=>{n.loadBestMoves(t+1)}),"Sjá næsta leik",zd("span",{id:"nav-next-visible"},["Næsti ",Lp("chevron-right")]),!0,"navnext")),null!==n.highlightedMove){const n=((e,t)=>{const n=e.model,i=n.game;if(!i)return;const r=[".scorediff"],s=t?i.moves[t-1]:void 0,a=s?s[1][2]:void 0;let o="";if(void 0===a||null===n.bestMoves||null===n.highlightedMove);else{const e=n.bestMoves[n.highlightedMove][1][2];o=(a-e).toString(),"-"!==o[0]&&"0"!==o[0]&&(o=`+${o}`),a>=e&&r.push("posdiff")}return zd(r.join("."),{style:{visibility:"visible"}},o)})(e,t);void 0!==n&&s.push(n)}const a=((e,t)=>{const n=e.model.game;if(!n)return;const i=t?n.moves[t-1]:void 0;if(void 0===i)return;const[r,[s,a,o]]=i;if(void 0===o||""===s&&"OVER"===a)return;const l=[".score"];return t>0&&(t%2===(n.player??0)?l.push("opponent"):l.push("localplayer")),zd(l.join("."),o.toString())})(e,t);return void 0!==a&&s.push(a),s},Am=e=>{const{view:t}=e.attrs;return{view:()=>{const e=[],{model:n}=t,{game:i}=n;if(i){const r=n.reviewMove??0,s=n.bestMoves||[];if(e.push(function(e,n,i){return zd(".rightcol",[function(){const i=e.fairplay,r=e.player;let s="",a="";if(n){let t=0,i=0;for(let r=0;r<n;r++){const n=e.moves[r];r%2==0?t+=n[1][2]:i+=n[1][2]}s=t.toString(),a=i.toString()}return zd(".heading",[zd(".logowrapper",zd(kg)),zd(".playerwrapper",[zd(".leftplayer"+(1===r?".autoplayercolor":".humancolor"),[zd(".player",zd(Hf,{view:t,side:"left"})),zd(".scorewrapper",zd(".scoreleft",s))]),zd(".rightplayer"+(1===r?".humancolor":".autoplayercolor"),[zd(".player",zd(Hf,{view:t,side:"right"})),zd(".scorewrapper",zd(".scoreright",a))]),zd(".fairplay",{style:{visibility:i?"visible":"hidden"}},zd("span.fairplay-btn.large",{title:Cp("Skraflað án hjálpartækja")}))])])}(),zd(".right-area",Lm(t,n,i))])}(i,r,s)),e.push(zd(Mm,{view:t,moveIndex:r})),null!==n.reviewMove&&0===r){const n=(e=>{if(null===e.model.game)return;const t=e.model.game;function n(e,n,i){let r=i;return void 0===r&&t.stats&&(r=t.stats[e]),void 0===r?"":("number"==typeof r?r=void 0!==n&&n>0?r.toFixed(n).replace(".",","):r.toString():Array.isArray(r)&&(r=`${r[0]} - ${r[1]}`),r)}let i,r;return null===t.stats&&t.loadStats(),1===t.player?(r="humancolor",i="autoplayercolor"):(i="humancolor",r="autoplayercolor"),zd(".gamestats",{style:{visibility:"visible"}},[zd("div",{style:{position:"relative",width:"100%"}},[zd(".player.left",{class:i,style:{width:"50%"}},zd(".robot-btn.left",t.autoplayer[0]?[Lp("cog"),Dp(),t.nickname[0]]:t.nickname[0])),zd(".player.right",{class:r,style:{width:"50%","text-align":"right"}},zd(".robot-btn.right",t.autoplayer[1]?[Lp("cog"),Dp(),t.nickname[1]]:t.nickname[1]))]),zd("div",{id:"gamestarted"},[zd("p",["Viðureignin hófst ",zd("span",n("gamestart")),zd("br"),"og henni lauk ",zd("span",n("gameend"))]),t.manual?zd("p","Leikið var í keppnisham"):""]),zd(".statscol",{style:{clear:"left"}},[zd("p",["Fjöldi leikja: ",zd("span",n("moves0"))]),zd("p",["Fjöldi bingóa: ",zd("span",n("bingoes0"))," (bónus ",zd("span",n("bingopoints0",0,t.stats?50*t.stats.bingoes0:0))," stig)"]),zd("p",["Stafir lagðir niður: ",zd("span",n("tiles0"))," (þar af ",zd("span",n("blanks0"))," auðir)"]),zd("p",["Meðalstig stafa (án auðra): ",zd("span",n("average0",2))]),zd("p",["Samanlögð stafastig: ",zd("span",n("letterscore0"))]),zd("p",["Margföldun stafastiga: ",zd("span",n("multiple0",2))]),zd("p",["Stig án stafaleifar í lok: ",zd("span",n("cleantotal0"))]),zd("p",["Meðalstig hvers leiks: ",zd("span",n("avgmove0",2))]),t.manual?zd("p",["Rangar véfengingar andstæðings x 10: ",zd("span",n("wrongchall0"))]):"",zd("p",["Stafaleif og frádráttur í lok: ",zd("span",n("remaining0"))]),zd("p",["Umframtími: ",zd("span",n("overtime0"))]),zd("p",["Stig: ",zd("span",n("total0",0,t.stats?t.stats.scores[0]:0))," (",zd("span",n("ratio0",1)),"%)"])]),zd(".statscol",[zd("p",["Fjöldi leikja: ",zd("span",n("moves1"))]),zd("p",["Fjöldi bingóa: ",zd("span",n("bingoes1"))," (bónus ",zd("span",n("bingopoints0",0,t.stats?50*t.stats.bingoes1:0))," stig)"]),zd("p",["Stafir lagðir niður: ",zd("span",n("tiles1"))," (þar af ",zd("span",n("blanks1"))," auðir)"]),zd("p",["Meðalstig stafa (án auðra): ",zd("span",n("average1",2))]),zd("p",["Samanlögð stafastig: ",zd("span",n("letterscore1"))]),zd("p",["Margföldun stafastiga: ",zd("span",n("multiple1",2))]),zd("p",["Stig án stafaleifar í lok: ",zd("span",n("cleantotal1"))]),zd("p",["Meðalstig hvers leiks: ",zd("span",n("avgmove1",2))]),t.manual?zd("p",["Rangar véfengingar andstæðings x 10: ",zd("span",n("wrongchall1"))]):"",zd("p",["Stafaleif og frádráttur í lok: ",zd("span",n("remaining1"))]),zd("p",["Umframtími: ",zd("span",n("overtime1"))]),zd("p",["Stig: ",zd("span",n("total1",0,t.stats?t.stats.scores[1]:0))," (",zd("span",n("ratio1",1)),"%)"])]),zd(".closebtn",{id:"review-close",onclick:e=>{setTimeout((()=>{zd.route.set(`/review/${t.uuid}`,{move:1})})),e.preventDefault()},onmouseover:xp,onmouseout:Rp},[Lp("play")," Rekja"])])})(t);n&&e.push(n)}}return zd("div",[zd(".game-container",e),zd(_g),zd(bg)])}}},Mm={view:e=>{const{view:t}=e.attrs,n=t.model.game;let i=[];if(n){i=[zd(Yg,{view:t,game:n,review:!0}),zd(Hg,{view:t,game:n,review:!0})];const r=e.attrs.moveIndex;null!==r&&(i=i.concat(Dm(t,r)))}return zd(".board-area",i)}},Om=(e,t)=>{if(t.loadingRecentList)return;t.loadingRecentList=!0;const{model:n}=e.view;n.loadUserRecentList(e.userid,t.versusAll?null:n.state?.netskraflUserId??"",(e=>{e&&0===e.result?t.recentList=e.recentlist:t.recentList=[],t.loadingRecentList=!1}))},jm=(e,t,n)=>{t.versusAll!==n&&(t.versusAll=n,t.loadingRecentList=!1,Om(e,t))},Fm={oninit:e=>{const{attrs:t,state:n}=e;n.stats={},n.recentList=[],n.versusAll=!0,n.loadingRecentList=!1,n.loadingStats=!1,Om(t,n),((e,t)=>{if(t.loadingStats)return;t.loadingStats=!0;const{model:n}=e.view;n.loadUserStats(e.userid,(e=>{e&&0===e.result?t.stats=e:t.stats={},t.loadingStats=!1}))})(t,n)},view:e=>{const{attrs:t,state:n}=e,{view:i}=t,{stats:r,recentList:s,versusAll:a}=n;return zd(".modal-dialog",{id:"usr-info-dialog",style:{visibility:"visible"}},zd(".ui-widget.ui-widget-content.ui-corner-all",{id:"usr-info-form"},[zd(".usr-info-hdr",[zd("h1.usr-info-icon",[e.state.stats.friend?Lp("coffee-cup",{title:Cp("Áskrifandi")}):Lp("user"),Dp()]),zd("h1[id='usr-info-nick']",e.attrs.nick),zd("span.vbar","|"),zd("h2[id='usr-info-fullname']",e.attrs.fullname),zd(".usr-info-fav",{title:Cp("Uppáhald"),onclick:t=>{t.preventDefault(),i.actions.toggleFavorite(e.attrs.userid,r.favorite??!1),r.favorite=!r.favorite}},r.favorite?Lp("star"):Lp("star-empty"))]),zd("p",[zd("strong",kp("Nýjustu viðureignir")),Dp(),zd("span.versus-cat",[zd("span",{class:a?"shown":"",onclick:()=>{jm(t,n,!0)}},kp(" gegn öllum ")),zd("span",{class:a?"":"shown",onclick:()=>{jm(t,n,!1)}},kp(" gegn þér "))])]),zd(".listitem.listheader",[zd("span.list-win",Np("bookmark",{title:Cp("Sigur")})),Sp("span.list-ts-short","Viðureign lauk"),Sp("span.list-nick","Andstæðingur"),Sp("span.list-scorehdr","Úrslit"),zd("span.list-elo-hdr",[zd("span.glyphicon.glyphicon-user.elo-hdr-left",{title:Cp("Mennskir andstæðingar")}),"Elo",zd("span.glyphicon.glyphicon-cog.elo-hdr-right",{title:Cp("Allir andstæðingar")})]),Sp("span.list-duration","Lengd"),zd(yg,{header:!0})]),zd(sm,{view:i,id:"usr-recent",recentList:s}),zd(cm,{view:i,id:"usr-stats",ownStats:r}),zd(Qf,{id:"usr-best",ownStats:r,myself:!1}),zd(pg,{id:"usr-info-close",title:Cp("Loka"),onclick:e=>{i.popDialog(),e.preventDefault()}},Lp("ok"))]))}},zm=e=>{const{view:t}=e.attrs,{model:n}=t;function i(e){const t=(n.userErrors||{})[e]||"";return t?zd(".errinput",[Lp("arrow-up"),Dp(),t]):""}function r(e){const t=document.querySelector(`#${e}-toggler #opt2`)?.classList;return!!t&&t.contains("selected")}function s(){const e=n.user;e&&(e.nickname=Mp("nickname"),e.full_name=Mp("full_name"),e.audio=r("audio"),e.fanfare=r("fanfare"),e.beginner=r("beginner"),e.fairplay=r("fairplay"),n.saveUser((()=>{t.popDialog()})))}function a(e){e.dom.querySelector("#nickname").focus()}function o(e,t,n,i,r){return zd(pg,{id:e,onclick:n,title:t,tabindex:r},i)}return{view:()=>{if(!n.user)return;const e=n.user;if(!n.state)return;const r=n.state;return zd(".modal-dialog",{key:"userprefs",id:"user-dialog",oncreate:a},zd(".ui-widget.ui-widget-content.ui-corner-all",{id:"user-form"},[zd(".loginhdr",[Lp("address-book"),` ${Cp("player_info")}`]),zd("div",zd("form",{action:"",id:"frm1",method:"post",name:"frm1"},[zd(".dialog-spacer",[zd("span.caption",kp("Einkenni:")),zd(dg,{initialValue:e.nickname||"",class:"username",maxlength:15,id:"nickname"}),Dp(),zd("span.asterisk","*")]),zd(".explain",kp("Verður að vera útfyllt")),i("nickname"),zd(".dialog-spacer",[zd("span.caption",kp("Fullt nafn:")),zd(dg,{initialValue:e.full_name||"",class:"fullname",maxlength:32,id:"full_name",autocomplete:"name"})]),zd(".explain",kp("Valfrjálst - sýnt í notendalistum Netskrafls")),i("full_name"),zd(".dialog-spacer",[zd("span.caption.sub",kp("Hljóðmerki:")),zd(Ig,{view:t,state:e.audio,tabindex:4}),zd("span.subcaption",kp("Lúðraþytur eftir sigur:")),zd(Eg,{view:t,state:e.fanfare,tabindex:5})]),zd(".explain",kp("explain_sound")),zd(".dialog-spacer",[zd("span.caption.sub",kp("Sýna reitagildi:")),zd(Pg,{view:t,state:e.beginner,tabindex:6}),Sp(".subexplain",["Stillir hvort ",Sp("strong","minnismiði")," um margföldunargildi reita er sýndur við borðið"])]),zd(".dialog-spacer",[zd("span.caption.sub",kp("Án hjálpartækja:")),zd(xg,{view:t,state:e.fairplay,tabindex:7}),Sp(".subexplain",["no_helpers",Sp("strong","án stafrænna hjálpartækja")," af nokkru tagi"])]),zd(".dialog-spacer",[zd("span.caption.sub",kp("Eldri litasamsetning:")),zd(Rg,{tabindex:8}),Sp(".subexplain",[kp("use_original"),Sp("strong",kp("upprunalegu")),kp(" litina frá eldri útgáfu Netskrafls")])])])),o("user-ok",Cp("Vista"),s,Lp("ok"),9),o("user-cancel",Cp("Hætta við"),(e=>{t.popDialog(),e.preventDefault()}),Lp("remove"),10),e.friend?o("user-unfriend",Cp("Þú ert áskrifandi!"),(e=>{e.preventDefault()}),[Lp("coffee-cup"),Cp("Þú ert áskrifandi!")],11):o("user-friend",Cp("Gerast áskrifandi"),(e=>{e.preventDefault(),fh("click_friend",{userid:r.netskraflUserId,locale:r.locale}),window.location.href=r.subscriptionUrl}),[Lp("coffee-cup"),Dp(),Dp(),Cp("Gerast áskrifandi")],12)]))}}},Um={oninit:e=>{const{state:t}=e;t.oppOnline=!1,t.pointOfNoReturn=!1,t.firebasePath=""},oncreate:e=>{const{attrs:t,state:n}=e,{view:i,oppId:r,challengeKey:s}=t,{model:a}=i,o=a.state,l=a.state?.netskraflUserId??"";if(!l||!r)return;n.firebasePath=`user/${l}/wait/${r}`;(async()=>{try{if(s&&o){const e=await rp(o,{method:"POST",url:"/initwait",body:{opp:r,key:s}});e?.online&&e.waiting&&(n.oppOnline=!0)}}catch(e){}})(),ph(n.firebasePath,(e=>{!0!==e&&e.game&&(n.pointOfNoReturn=!0,gh(n.firebasePath),zd.route.set(`/game/${e.game}`))}))},view:e=>{const{attrs:t,state:n}=e,{view:i,oppId:r,duration:s,challengeKey:a,oppNick:o,oppName:l}=t,{model:c}=i,u=c.state,h=c.state?.netskraflUserId??"";if(!u)return null;return zd(".modal-dialog",{id:"wait-dialog",style:{visibility:"visible"}},zd(".ui-widget.ui-widget-content.ui-corner-all",{id:"wait-form"},[zd(".chall-hdr",zd("table",zd("tbody",zd("tr",[zd("td",zd("h1.chall-icon",Lp("time"))),zd("td.l-border",[zd(mg,{id:"chall-online",userId:r,online:n.oppOnline,state:u}),zd("h1",o),zd("h2",l)])])))),zd(".wait-explain",[Sp("p",["Þú ert reiðubúin(n) að taka áskorun um viðureign með klukku,"]),zd("p",[zd("strong",["2 x ",s.toString(),Cp(" mínútur.")])]),Sp("p",["Beðið er eftir að áskorandinn ",zd("strong",o)," sé ",n.oppOnline?"":Sp("span#chall-is-online","álínis og "),"til í tuskið."]),Sp("p","Leikur hefst um leið og áskorandinn bregst við. Handahóf ræður hvor byrjar."),Sp("p","Ef þér leiðist biðin geturðu hætt við og reynt aftur síðar.")]),zd(pg,{id:"wait-cancel",title:Cp("Hætta við"),onclick:e=>{n.pointOfNoReturn||(n.firebasePath&&gh(n.firebasePath),(async()=>{if(u)try{rp(u,{method:"POST",url:"/cancelwait",body:{user:h,opp:r,key:a}})}catch(e){}})(),i.popDialog()),e.preventDefault()}},Lp("remove"))]))}},$m={oninit:async e=>{const{attrs:t,state:n}=e,{view:i,oppId:r,challengeKey:s}=t,a=i.model.state;if(a){n.oppReady=!0;try{const e=await rp(a,{method:"POST",url:"/waitcheck",body:{user:r,key:s}});e?.waiting?i.actions.startNewGame(r,!0):n.oppReady=!1}catch(e){n.oppReady=!1}}},view:e=>{const{attrs:t,state:n}=e,{view:i,oppNick:r}=t;return zd(".modal-dialog",{id:"accept-dialog",style:{visibility:"visible"}},zd(".ui-widget.ui-widget-content.ui-corner-all",{id:"accept-form"},[zd(".chall-hdr",zd("table",zd("tbody",zd("tr",[zd("td",zd("h1.chall-icon",Lp("time"))),zd("td.l-border",zd("h1",r))])))),zd("div",{style:{"text-align":"center","padding-top":"32px"}},[zd("p",Sp("strong","Viðureign með klukku")),Sp("p",n.oppReady?"Athuga hvort andstæðingur er reiðubúinn...":["Andstæðingurinn ",zd("strong",r)," er ekki reiðubúinn"])]),zd(pg,{id:"accept-cancel",title:Cp("Reyna síðar"),onclick:e=>{i.popDialog(),e.preventDefault()}},Lp("remove"))]))}};class qm{get model(){return this.actions.model}constructor(e){this.dialogStack=[],this.boardScale=1,this.zoomAnimationTimeout=null,this.selectedTab="movelist",this.actions=e,this.actions.initMediaListener(this);const t=this.model.state;t&&(t.onFirebaseReady=()=>{this.actions.attachListenerToUser()}),this.model.loadUser(!1)}appView(e){const t=this.model,n=[];switch(e){case"main":n.push(zd(Rm,{key:"main",view:this}));break;case"game":n.push(zd(Xf,{key:"game",view:this}));break;case"review":n.push(zd(Am,{key:"review",view:this}));break;case"help":n.push(this.vwHelp(parseInt(zd.route.param("tab")||"",10),parseInt(zd.route.param("faq")||"",10)));break;default:return[zd("div",{key:"error"},kp("Þessi vefslóð er ekki rétt"))]}for(const e of this.dialogStack){const t=qm.dialogViews[e.name];if(void 0===t)console.error(`Unknown dialog name: ${e.name}`);else{const i=t(this,e.args);i&&n.push(i)}}return t.spinners&&n.push(zd(hg,{key:"spinner"})),n}isFullScreen(){return this.model.state?.uiFullscreen||!1}isMobile(){return!this.model.state?.uiFullscreen}pushDialog(e,t){this.dialogStack.push({name:e,args:t}),zd.redraw()}popDialog(){this.dialogStack.length>0&&(this.dialogStack.pop(),zd.redraw())}popAllDialogs(){this.dialogStack.length>0&&(this.dialogStack=[],zd.redraw())}isDialogShown(){return this.dialogStack.length>0}startSpinner(){this.actions.showSpinner()}stopSpinner(){this.actions.hideSpinner()}notifyMediaChange(){const e=this.model;e.state?.uiFullscreen||e.state?.uiLandscape?this.setSelectedTab("movelist")&&setTimeout(Fp):this.setSelectedTab("board"),this.popAllDialogs()}notifyChatMessage(){zd.redraw()}zoomIn(){this.boardScale=lp}zoomOut(){1!==this.boardScale&&(this.boardScale=1,setTimeout((()=>this.resetScale())))}resetScale(){null!==this.zoomAnimationTimeout&&(clearTimeout(this.zoomAnimationTimeout),this.zoomAnimationTimeout=null),this.boardScale=1;const e=document.getElementById("board-parent"),t=e?.children[0];t&&(t.style.transition="none",t.style.transform="translate(0px, 0px) scale(1)"),e&&e.scrollTo(0,0)}updateScale(){if(!og())return;const e=this.model,t=e.game||e.riddle,n=e=>{const t=document.getElementById("board-parent"),n=t?.children[0];if(!n||!t)return;const i=Up(e),r=zp(Math.max(0,i.row-3),Math.max(0,i.col-3)),s=document.getElementById(`sq_${r}`),a=s?.getBoundingClientRect(),o=t.getBoundingClientRect();if(a&&o){const e=t.clientWidth,i=t.clientHeight,r=n.offsetWidth*lp-e,s=n.offsetHeight*lp-i,l=Math.min(a.left-o.left,r),c=Math.min(a.top-o.top,s);null!==this.zoomAnimationTimeout&&(clearTimeout(this.zoomAnimationTimeout),this.zoomAnimationTimeout=null),n.style.transition="transform 0.3s ease-in-out";const u=`${-l}px, ${-c}px`,h="1.5";n.style.transform=`translate(${u}) scale(${h})`,this.zoomAnimationTimeout=setTimeout((()=>{this.zoomAnimationTimeout=null,n.style.transition="none",n.style.transform="translate(0px, 0px) scale(1.5)",requestAnimationFrame((()=>{t.scrollTo(l,c)}))}),350)}};if(!t||e.state?.uiFullscreen||t.moveInProgress)return this.boardScale=1,void setTimeout((()=>this.resetScale()));const i=t.tilesPlaced(),r=i.length;1===r&&1===this.boardScale?(this.boardScale=lp,setTimeout((()=>n(i[0])))):0===r&&this.boardScale>1&&(this.boardScale=1,setTimeout((()=>this.resetScale())))}showUserInfo(e,t,n){this.pushDialog("userinfo",{userid:e,nick:t,fullname:n})}showFriendPromo(){this.pushDialog("friend",{})}showAcceptDialog(e,t,n){this.pushDialog("accept",{oppId:e,oppNick:t,challengeKey:n})}setSelectedTab(e){const t=this.model.state;return"board"===e&&(t?.uiFullscreen||t?.uiLandscape)&&(e="movelist"),this.selectedTab!==e&&(this.selectedTab=e,"chat"!==e&&qp(),!0)}vwTabsFromHtml(e,t,n,i){return e?zd("div.help-tabs",{oncreate:e=>{hm(this,t,i,!0,e)},oninit:e=>{e.state.selected=n||1}},zd.trust(e)):""}vwHelp(e,t){const n=this.model;return zd.fragment({key:"help"},[zd(_g),zd(vg,{view:this}),this.vwTabsFromHtml(n.helpHTML||"","tabs",e,(function(e){function n(t,n){e.state.selected=1,e.dom.querySelector(n)?.scrollIntoView(),t.preventDefault()}const i=e.dom.querySelectorAll("a");for(const e of i){const t=e.getAttribute("href");t&&"#faq-"===t.slice(0,5)&&(e.onclick=e=>{n(e,t)})}void 0===t||Number.isNaN(t)||(pm(e,1),e.state.selected=1,e.dom.querySelector(`#faq-${t.toString()}`)?.scrollIntoView())}))])}vwUserPrefs(){const e=this.model;return null!==e.user||e.userLoadError||e.loadUser(!0),e.user?zd(zm,{key:"userprefs",view:this}):zd.fragment({key:"userprefs-empty"},[])}vwWait(e){return zd(Um,{key:`wait-${e.challengeKey}`,view:this,oppId:e.oppId,oppNick:e.oppNick,oppName:e.oppName,duration:e.duration,challengeKey:e.challengeKey})}vwAccept(e){return zd($m,{key:`accept-${e.challengeKey}`,view:this,oppId:e.oppId,oppNick:e.oppNick,challengeKey:e.challengeKey})}vwDialogs(){return zd(Uf,{view:this})}}qm.dialogViews={userprefs:e=>e.vwUserPrefs(),userinfo:(e,t)=>zd(Fm,{key:`userinfodialog-${t.userid}`,view:e,userid:t.userid,nick:t.nick,fullname:t.fullname}),challenge:(e,t)=>zd(Ff,{key:"challenge",view:e,item:t}),friend:e=>zd(zf,{key:"friend",view:e}),wait:(e,t)=>e.vwWait(t),accept:(e,t)=>e.vwAccept(t)};let Bm=null;const Vm=(e,t)=>{const{userEmail:n}=e;return n?async function(e,t){if(!t)return console.error("No container element found"),"error";try{const n=Of(),i=new jf(n,e),r=new Hp(i),s=new qm(r);Bm&&Bm.cleanup(),Bm=r;const a=new URLSearchParams(window.location.search).get("date"),o=(new Date).toISOString().split("T")[0],l=a||o,c=/^\d{4}-\d{2}-\d{2}$/.test(l)?l:o,u=e.locale||"is_IS";zd.mount(t,{view:()=>zd(vf,{view:s,date:c,locale:u})}),Bp((e=>{const t=i.riddle;t&&bf(t,s,e)}),(e=>{const t=i.riddle;t&&_f(t,s,e)}))}catch(e){return console.error("Exception during initialization: ",e),"error"}return"success"}(e,t).then((e=>{if("success"!==e)throw new Error("Failed to mount Gáta Dagsins UI")})):Promise.reject(new Error("No user specified for Gáta Dagsins UI"))},Hm=t.memo((({state:i,tokenExpired:r})=>{const s=t.useRef(null),o=t.useRef(!1),{userEmail:l}=i;return n((()=>{if(!l)return;const e=s.current;if(!e)return void console.error("No container for Gáta Dagsins UI");const t=a({...i,tokenExpired:r});return Vm(t,e).then((()=>{o.current=!0})).catch((e=>{console.error("Failed to mount Gáta Dagsins UI:",e)})),()=>{o.current&&(!function(e){Bm&&(Bm.cleanup(),Bm=null),zd.mount(e,null),e.innerHTML="";const t=document.body.querySelectorAll("#netskrafl-background, #gatadagsins-background");for(const e of t)e.remove()}(e),o.current=!1)}}),[l]),e("div",{className:"gatadagsins",children:e("div",{className:"netskrafl-container",children:e("div",{className:"netskrafl-inner",id:"gatadagsins-container",ref:s})})})}));let Wm=null,Gm=null;async function Km(e,t){if(!t)return console.error("No container element found"),"error";try{const n=Of(),i=new jf(n,e),r=new Hp(i),s=new qm(r);Wm&&Wm.cleanup(),Wm=r,Bp((e=>{const t=i.game;t&&bf(t,s,e)}),(e=>{const t=i.game;t&&_f(t,s,e)}));const a=function(e,t){return e.model.paths.reduce(((n,i)=>(n[i.route]={onmatch:n=>{t.popAllDialogs(),t.resetScale(),e.onNavigateTo(i.name,n,t)},render:()=>t.appView(i.name)},n)),{})}(r,s);zd.route(t,n.defaultRoute,a),Vp(cg()),function(){Gm&&(window.removeEventListener("touchstart",Gm),Gm=null);const e="ontouchstart"in window,t=navigator.maxTouchPoints>0;(e||t)&&(Gm=e=>{Gm&&(window.removeEventListener("touchstart",Gm),Gm=null),0===window.scrollY&&window.scrollTo(0,1)},window.addEventListener("touchstart",Gm,{passive:!0}))}()}catch(e){return console.error("Exception during initialization: ",e),"error"}return"success"}function Ym(e){Gm&&(window.removeEventListener("touchstart",Gm),Gm=null),Wm&&(Wm.cleanup(),Wm=null),zd.mount(e,null),e.innerHTML="";document.body.querySelectorAll("#netskrafl-background, #gatadagsins-background").forEach((e=>{e.remove()}))}const Jm=t.memo((({state:i,tokenExpired:r})=>{const s=t.useRef(null),o=t.useRef(!1),{userEmail:l}=i;return n((()=>{if(!l)return;const e=s.current;if(!e)return void console.error("No container for Netskrafl UI");return((e,t)=>{const{userEmail:n}=e;return n?Km(e,t).then((e=>{if("success"!==e)throw new Error("Failed to mount Netskrafl UI")})):Promise.reject(new Error("No user specified for Netskrafl UI"))})(a({...i,tokenExpired:r}),e).then((()=>{o.current=!0})).catch((e=>{console.error("Failed to mount Netskrafl UI:",e)})),()=>{o.current&&(Ym(e),o.current=!1)}}),[l]),e("div",{className:"netskrafl",children:e("div",{className:"netskrafl-container",children:e("div",{className:"netskrafl-inner",id:"netskrafl-container",ref:s})})})}));export{Hm as GataDagsins,Jm as Netskrafl};
3028
3028
  //# sourceMappingURL=index.js.map