=c&&(h=u,d=!1,e=new r(e));t:while(++f1?n[o-1]:void 0,s=o>2?n[2]:void 0;a=t.length>3&&"function"==typeof a?(o--,a):void 0,s&&i(n[0],n[1],s)&&(a=o<3?void 0:a,o=1),e=Object(e);while(++r
+ * Copyright OpenJS Foundation and other contributors
+ * Released under MIT license
+ * Based on Underscore.js 1.8.3
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ */(function(){var o,a="4.17.21",s=200,u="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",c="Expected a function",l="Invalid `variable` option passed into `_.template`",f="__lodash_hash_undefined__",h=500,d="__lodash_placeholder__",p=1,v=2,g=4,m=1,y=2,b=1,_=2,w=4,x=8,S=16,k=32,C=64,O=128,P=256,T=512,A=30,E="...",j=800,M=16,R=1,D=2,I=3,L=1/0,$=9007199254740991,N=17976931348623157e292,F=NaN,U=4294967295,B=U-1,G=U>>>1,z=[["ary",O],["bind",b],["bindKey",_],["curry",x],["curryRight",S],["flip",T],["partial",k],["partialRight",C],["rearg",P]],V="[object Arguments]",W="[object Array]",q="[object AsyncFunction]",H="[object Boolean]",Y="[object Date]",K="[object DOMException]",X="[object Error]",J="[object Function]",Z="[object GeneratorFunction]",Q="[object Map]",tt="[object Number]",et="[object Null]",nt="[object Object]",rt="[object Promise]",it="[object Proxy]",ot="[object RegExp]",at="[object Set]",st="[object String]",ut="[object Symbol]",ct="[object Undefined]",lt="[object WeakMap]",ft="[object WeakSet]",ht="[object ArrayBuffer]",dt="[object DataView]",pt="[object Float32Array]",vt="[object Float64Array]",gt="[object Int8Array]",mt="[object Int16Array]",yt="[object Int32Array]",bt="[object Uint8Array]",_t="[object Uint8ClampedArray]",wt="[object Uint16Array]",xt="[object Uint32Array]",St=/\b__p \+= '';/g,kt=/\b(__p \+=) '' \+/g,Ct=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Ot=/&(?:amp|lt|gt|quot|#39);/g,Pt=/[&<>"']/g,Tt=RegExp(Ot.source),At=RegExp(Pt.source),Et=/<%-([\s\S]+?)%>/g,jt=/<%([\s\S]+?)%>/g,Mt=/<%=([\s\S]+?)%>/g,Rt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Dt=/^\w*$/,It=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Lt=/[\\^$.*+?()[\]{}|]/g,$t=RegExp(Lt.source),Nt=/^\s+/,Ft=/\s/,Ut=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Bt=/\{\n\/\* \[wrapped with (.+)\] \*/,Gt=/,? & /,zt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Vt=/[()=,{}\[\]\/\s]/,Wt=/\\(\\)?/g,qt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ht=/\w*$/,Yt=/^[-+]0x[0-9a-f]+$/i,Kt=/^0b[01]+$/i,Xt=/^\[object .+?Constructor\]$/,Jt=/^0o[0-7]+$/i,Zt=/^(?:0|[1-9]\d*)$/,Qt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,te=/($^)/,ee=/['\n\r\u2028\u2029\\]/g,ne="\\ud800-\\udfff",re="\\u0300-\\u036f",ie="\\ufe20-\\ufe2f",oe="\\u20d0-\\u20ff",ae=re+ie+oe,se="\\u2700-\\u27bf",ue="a-z\\xdf-\\xf6\\xf8-\\xff",ce="\\xac\\xb1\\xd7\\xf7",le="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",fe="\\u2000-\\u206f",he=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",de="A-Z\\xc0-\\xd6\\xd8-\\xde",pe="\\ufe0e\\ufe0f",ve=ce+le+fe+he,ge="['’]",me="["+ne+"]",ye="["+ve+"]",be="["+ae+"]",_e="\\d+",we="["+se+"]",xe="["+ue+"]",Se="[^"+ne+ve+_e+se+ue+de+"]",ke="\\ud83c[\\udffb-\\udfff]",Ce="(?:"+be+"|"+ke+")",Oe="[^"+ne+"]",Pe="(?:\\ud83c[\\udde6-\\uddff]){2}",Te="[\\ud800-\\udbff][\\udc00-\\udfff]",Ae="["+de+"]",Ee="\\u200d",je="(?:"+xe+"|"+Se+")",Me="(?:"+Ae+"|"+Se+")",Re="(?:"+ge+"(?:d|ll|m|re|s|t|ve))?",De="(?:"+ge+"(?:D|LL|M|RE|S|T|VE))?",Ie=Ce+"?",Le="["+pe+"]?",$e="(?:"+Ee+"(?:"+[Oe,Pe,Te].join("|")+")"+Le+Ie+")*",Ne="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Fe="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Ue=Le+Ie+$e,Be="(?:"+[we,Pe,Te].join("|")+")"+Ue,Ge="(?:"+[Oe+be+"?",be,Pe,Te,me].join("|")+")",ze=RegExp(ge,"g"),Ve=RegExp(be,"g"),We=RegExp(ke+"(?="+ke+")|"+Ge+Ue,"g"),qe=RegExp([Ae+"?"+xe+"+"+Re+"(?="+[ye,Ae,"$"].join("|")+")",Me+"+"+De+"(?="+[ye,Ae+je,"$"].join("|")+")",Ae+"?"+je+"+"+Re,Ae+"+"+De,Fe,Ne,_e,Be].join("|"),"g"),He=RegExp("["+Ee+ne+ae+pe+"]"),Ye=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Ke=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Xe=-1,Je={};Je[pt]=Je[vt]=Je[gt]=Je[mt]=Je[yt]=Je[bt]=Je[_t]=Je[wt]=Je[xt]=!0,Je[V]=Je[W]=Je[ht]=Je[H]=Je[dt]=Je[Y]=Je[X]=Je[J]=Je[Q]=Je[tt]=Je[nt]=Je[ot]=Je[at]=Je[st]=Je[lt]=!1;var Ze={};Ze[V]=Ze[W]=Ze[ht]=Ze[dt]=Ze[H]=Ze[Y]=Ze[pt]=Ze[vt]=Ze[gt]=Ze[mt]=Ze[yt]=Ze[Q]=Ze[tt]=Ze[nt]=Ze[ot]=Ze[at]=Ze[st]=Ze[ut]=Ze[bt]=Ze[_t]=Ze[wt]=Ze[xt]=!0,Ze[X]=Ze[J]=Ze[lt]=!1;var Qe={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"},tn={"&":"&","<":"<",">":">",'"':""","'":"'"},en={"&":"&","<":"<",">":">",""":'"',"'":"'"},nn={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},rn=parseFloat,on=parseInt,an="object"==typeof t&&t&&t.Object===Object&&t,sn="object"==typeof self&&self&&self.Object===Object&&self,un=an||sn||Function("return this")(),cn=e&&!e.nodeType&&e,ln=cn&&"object"==typeof r&&r&&!r.nodeType&&r,fn=ln&&ln.exports===cn,hn=fn&&an.process,dn=function(){try{var t=ln&&ln.require&&ln.require("util").types;return t||hn&&hn.binding&&hn.binding("util")}catch(e){}}(),pn=dn&&dn.isArrayBuffer,vn=dn&&dn.isDate,gn=dn&&dn.isMap,mn=dn&&dn.isRegExp,yn=dn&&dn.isSet,bn=dn&&dn.isTypedArray;function _n(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function wn(t,e,n,r){var i=-1,o=null==t?0:t.length;while(++i-1}function Pn(t,e,n){var r=-1,i=null==t?0:t.length;while(++r-1);return n}function tr(t,e){var n=t.length;while(n--&&Nn(e,t[n],0)>-1);return n}function er(t,e){var n=t.length,r=0;while(n--)t[n]===e&&++r;return r}var nr=zn(Qe),rr=zn(tn);function ir(t){return"\\"+nn[t]}function or(t,e){return null==t?o:t[e]}function ar(t){return He.test(t)}function sr(t){return Ye.test(t)}function ur(t){var e,n=[];while(!(e=t.next()).done)n.push(e.value);return n}function cr(t){var e=-1,n=Array(t.size);return t.forEach((function(t,r){n[++e]=[r,t]})),n}function lr(t,e){return function(n){return t(e(n))}}function fr(t,e){var n=-1,r=t.length,i=0,o=[];while(++n-1}function Gr(t,e){var n=this.__data__,r=li(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this}function zr(t){var e=-1,n=null==t?0:t.length;this.clear();while(++e=e?t:e)),t}function mi(t,e,n,r,i,a){var s,u=e&p,c=e&v,l=e&g;if(n&&(s=i?n(t,r,i,a):n(t)),s!==o)return s;if(!kl(t))return t;var f=ul(t);if(f){if(s=es(t),!u)return ia(t,s)}else{var h=Ja(t),d=h==J||h==Z;if(dl(t))return Yo(t,u);if(h==nt||h==V||d&&!i){if(s=c||d?{}:ns(t),!u)return c?sa(t,di(s,t)):aa(t,hi(s,t))}else{if(!Ze[h])return i?t:{};s=rs(t,h,u)}}a||(a=new Zr);var m=a.get(t);if(m)return m;a.set(t,s),$l(t)?t.forEach((function(r){s.add(mi(r,e,n,r,t,a))})):Ol(t)&&t.forEach((function(r,i){s.set(i,mi(r,e,n,i,t,a))}));var y=l?c?Ua:Fa:c?kf:Sf,b=f?o:y(t);return xn(b||t,(function(r,i){b&&(i=r,r=t[i]),ci(s,i,mi(r,e,n,i,t,a))})),s}function yi(t){var e=Sf(t);return function(n){return bi(n,t,e)}}function bi(t,e,n){var r=n.length;if(null==t)return!r;t=ne(t);while(r--){var i=n[r],a=e[i],s=t[i];if(s===o&&!(i in t)||!a(s))return!1}return!0}function _i(t,e,n){if("function"!=typeof t)throw new oe(c);return Cs((function(){t.apply(o,n)}),e)}function wi(t,e,n,r){var i=-1,o=On,a=!0,u=t.length,c=[],l=e.length;if(!u)return c;n&&(e=Tn(e,Xn(n))),r?(o=Pn,a=!1):e.length>=s&&(o=Zn,a=!1,e=new Kr(e));t:while(++ii?0:i+n),r=r===o||r>i?i:Yl(r),r<0&&(r+=i),r=n>r?0:Kl(r);while(n0&&n(s)?e>1?Ti(s,e-1,n,r,i):An(i,s):r||(i[i.length]=s)}return i}var Ai=fa(),Ei=fa(!0);function ji(t,e){return t&&Ai(t,e,Sf)}function Mi(t,e){return t&&Ei(t,e,Sf)}function Ri(t,e){return Cn(e,(function(e){return wl(t[e])}))}function Di(t,e){e=Vo(e,t);var n=0,r=e.length;while(null!=t&&ne}function Ni(t,e){return null!=t&&fe.call(t,e)}function Fi(t,e){return null!=t&&e in ne(t)}function Ui(t,e,n){return t>=Be(e,n)&&t=120&&h.length>=120)?new Kr(u&&h):o}h=t[0];var d=-1,p=c[0];t:while(++d-1)s!==t&&Ce.call(s,u,1),Ce.call(t,u,1)}return t}function mo(t,e){var n=t?e.length:0,r=n-1;while(n--){var i=e[n];if(n==r||i!==o){var o=i;as(i)?Ce.call(t,i,1):Lo(t,i)}}return t}function yo(t,e){return t+De(qe()*(e-t+1))}function bo(t,e,r,i){var o=-1,a=Ue(Re((e-t)/(r||1)),0),s=n(a);while(a--)s[i?a:++o]=t,t+=r;return s}function _o(t,e){var n="";if(!t||e<1||e>$)return n;do{e%2&&(n+=t),e=De(e/2),e&&(t+=t)}while(e);return n}function wo(t,e){return Os(_s(t,e,jh),t+"")}function xo(t){return oi(Gf(t))}function So(t,e){var n=Gf(t);return As(n,gi(e,0,n.length))}function ko(t,e,n,r){if(!kl(t))return t;e=Vo(e,t);var i=-1,a=e.length,s=a-1,u=t;while(null!=u&&++i o?0:o+e),r=r>o?o:r,r<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;var a=n(o);while(++i>>1,a=t[o];null!==a&&!Fl(a)&&(n?a<=e:a=s){var l=e?null:Aa(t);if(l)return hr(l);a=!1,i=Zn,c=new Kr}else c=e?[]:u;t:while(++r=r?t:To(t,e,n)}var Ho=Ee||function(t){return un.clearTimeout(t)};function Yo(t,e){if(e)return t.slice();var n=t.length,r=we?we(n):new t.constructor(n);return t.copy(r),r}function Ko(t){var e=new t.constructor(t.byteLength);return new _e(e).set(new _e(t)),e}function Xo(t,e){var n=e?Ko(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}function Jo(t){var e=new t.constructor(t.source,Ht.exec(t));return e.lastIndex=t.lastIndex,e}function Zo(t){return pr?ne(pr.call(t)):{}}function Qo(t,e){var n=e?Ko(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function ta(t,e){if(t!==e){var n=t!==o,r=null===t,i=t===t,a=Fl(t),s=e!==o,u=null===e,c=e===e,l=Fl(e);if(!u&&!l&&!a&&t>e||a&&s&&c&&!u&&!l||r&&s&&c||!n&&c||!i)return 1;if(!r&&!a&&!l&&t=s)return u;var c=n[r];return u*("desc"==c?-1:1)}}return t.index-e.index}function na(t,e,r,i){var o=-1,a=t.length,s=r.length,u=-1,c=e.length,l=Ue(a-s,0),f=n(c+l),h=!i;while(++u1?n[i-1]:o,s=i>2?n[2]:o;a=t.length>3&&"function"==typeof a?(i--,a):o,s&&ss(n[0],n[1],s)&&(a=i<3?o:a,i=1),e=ne(e);while(++r-1?i[a?e[s]:s]:o}}function ya(t){return Na((function(e){var n=e.length,r=n,i=Or.prototype.thru;t&&e.reverse();while(r--){var a=e[r];if("function"!=typeof a)throw new oe(c);if(i&&!s&&"wrapper"==Ga(a))var s=new Or([],!0)}r=s?r:n;while(++r1&&b.reverse(),h&&lu))return!1;var l=a.get(t),f=a.get(e);if(l&&f)return l==e&&f==t;var h=-1,d=!0,p=n&y?new Kr:o;a.set(t,e),a.set(e,t);while(++h1?"& ":"")+e[r],e=e.join(n>2?", ":" "),t.replace(Ut,"{\n/* [wrapped with "+e+"] */\n")}function os(t){return ul(t)||sl(t)||!!(Oe&&t&&t[Oe])}function as(t,e){var n=typeof t;return e=null==e?$:e,!!e&&("number"==n||"symbol"!=n&&Zt.test(t))&&t>-1&&t%1==0&&t0){if(++e>=j)return arguments[0]}else e=0;return t.apply(o,arguments)}}function As(t,e){var n=-1,r=t.length,i=r-1;e=e===o?r:e;while(++n1?t[e-1]:o;return n="function"==typeof n?(t.pop(),n):o,Lu(t,n)}));function Wu(t){var e=wr(t);return e.__chain__=!0,e}function qu(t,e){return e(t),t}function Hu(t,e){return e(t)}var Yu=Na((function(t){var e=t.length,n=e?t[0]:0,r=this.__wrapped__,i=function(e){return vi(e,t)};return!(e>1||this.__actions__.length)&&r instanceof Pr&&as(n)?(r=r.slice(n,+n+(e?1:0)),r.__actions__.push({func:Hu,args:[i],thisArg:o}),new Or(r,this.__chain__).thru((function(t){return e&&!t.length&&t.push(o),t}))):this.thru(i)}));function Ku(){return Wu(this)}function Xu(){return new Or(this.value(),this.__chain__)}function Ju(){this.__values__===o&&(this.__values__=ql(this.value()));var t=this.__index__>=this.__values__.length,e=t?o:this.__values__[this.__index__++];return{done:t,value:e}}function Zu(){return this}function Qu(t){var e,n=this;while(n instanceof Cr){var r=Ds(n);r.__index__=0,r.__values__=o,e?i.__wrapped__=r:e=r;var i=r;n=n.__wrapped__}return i.__wrapped__=t,e}function tc(){var t=this.__wrapped__;if(t instanceof Pr){var e=t;return this.__actions__.length&&(e=new Pr(this)),e=e.reverse(),e.__actions__.push({func:Hu,args:[pu],thisArg:o}),new Or(e,this.__chain__)}return this.thru(pu)}function ec(){return Fo(this.__wrapped__,this.__actions__)}var nc=ua((function(t,e,n){fe.call(t,n)?++t[n]:pi(t,n,1)}));function rc(t,e,n){var r=ul(t)?kn:ki;return n&&ss(t,e,n)&&(e=o),r(t,Va(e,3))}function ic(t,e){var n=ul(t)?Cn:Pi;return n(t,Va(e,3))}var oc=ma(qs),ac=ma(Hs);function sc(t,e){return Ti(gc(t,e),1)}function uc(t,e){return Ti(gc(t,e),L)}function cc(t,e,n){return n=n===o?1:Yl(n),Ti(gc(t,e),n)}function lc(t,e){var n=ul(t)?xn:xi;return n(t,Va(e,3))}function fc(t,e){var n=ul(t)?Sn:Si;return n(t,Va(e,3))}var hc=ua((function(t,e,n){fe.call(t,n)?t[n].push(e):pi(t,n,[e])}));function dc(t,e,n,r){t=ll(t)?t:Gf(t),n=n&&!r?Yl(n):0;var i=t.length;return n<0&&(n=Ue(i+n,0)),Nl(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&Nn(t,e,n)>-1}var pc=wo((function(t,e,r){var i=-1,o="function"==typeof e,a=ll(t)?n(t.length):[];return xi(t,(function(t){a[++i]=o?_n(e,t,r):zi(t,e,r)})),a})),vc=ua((function(t,e,n){pi(t,n,e)}));function gc(t,e){var n=ul(t)?Tn:oo;return n(t,Va(e,3))}function mc(t,e,n,r){return null==t?[]:(ul(e)||(e=null==e?[]:[e]),n=r?o:n,ul(n)||(n=null==n?[]:[n]),fo(t,e,n))}var yc=ua((function(t,e,n){t[n?0:1].push(e)}),(function(){return[[],[]]}));function bc(t,e,n){var r=ul(t)?En:Vn,i=arguments.length<3;return r(t,Va(e,4),n,i,xi)}function _c(t,e,n){var r=ul(t)?jn:Vn,i=arguments.length<3;return r(t,Va(e,4),n,i,Si)}function wc(t,e){var n=ul(t)?Cn:Pi;return n(t,Bc(Va(e,3)))}function xc(t){var e=ul(t)?oi:xo;return e(t)}function Sc(t,e,n){e=(n?ss(t,e,n):e===o)?1:Yl(e);var r=ul(t)?ai:So;return r(t,e)}function kc(t){var e=ul(t)?si:Po;return e(t)}function Cc(t){if(null==t)return 0;if(ll(t))return Nl(t)?gr(t):t.length;var e=Ja(t);return e==Q||e==at?t.size:no(t).length}function Oc(t,e,n){var r=ul(t)?Mn:Ao;return n&&ss(t,e,n)&&(e=o),r(t,Va(e,3))}var Pc=wo((function(t,e){if(null==t)return[];var n=e.length;return n>1&&ss(t,e[0],e[1])?e=[]:n>2&&ss(e[0],e[1],e[2])&&(e=[e[0]]),fo(t,Ti(e,1),[])})),Tc=je||function(){return un.Date.now()};function Ac(t,e){if("function"!=typeof e)throw new oe(c);return t=Yl(t),function(){if(--t<1)return e.apply(this,arguments)}}function Ec(t,e,n){return e=n?o:e,e=t&&null==e?t.length:e,ja(t,O,o,o,o,o,e)}function jc(t,e){var n;if("function"!=typeof e)throw new oe(c);return t=Yl(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=o),n}}var Mc=wo((function(t,e,n){var r=b;if(n.length){var i=fr(n,za(Mc));r|=k}return ja(t,r,e,n,i)})),Rc=wo((function(t,e,n){var r=b|_;if(n.length){var i=fr(n,za(Rc));r|=k}return ja(e,r,t,n,i)}));function Dc(t,e,n){e=n?o:e;var r=ja(t,x,o,o,o,o,o,e);return r.placeholder=Dc.placeholder,r}function Ic(t,e,n){e=n?o:e;var r=ja(t,S,o,o,o,o,o,e);return r.placeholder=Ic.placeholder,r}function Lc(t,e,n){var r,i,a,s,u,l,f=0,h=!1,d=!1,p=!0;if("function"!=typeof t)throw new oe(c);function v(e){var n=r,a=i;return r=i=o,f=e,s=t.apply(a,n),s}function g(t){return f=t,u=Cs(b,e),h?v(t):s}function m(t){var n=t-l,r=t-f,i=e-n;return d?Be(i,a-r):i}function y(t){var n=t-l,r=t-f;return l===o||n>=e||n<0||d&&r>=a}function b(){var t=Tc();if(y(t))return _(t);u=Cs(b,m(t))}function _(t){return u=o,p&&r?v(t):(r=i=o,s)}function w(){u!==o&&Ho(u),f=0,r=l=i=u=o}function x(){return u===o?s:_(Tc())}function S(){var t=Tc(),n=y(t);if(r=arguments,i=this,l=t,n){if(u===o)return g(l);if(d)return Ho(u),u=Cs(b,e),v(l)}return u===o&&(u=Cs(b,e)),s}return e=Xl(e)||0,kl(n)&&(h=!!n.leading,d="maxWait"in n,a=d?Ue(Xl(n.maxWait)||0,e):a,p="trailing"in n?!!n.trailing:p),S.cancel=w,S.flush=x,S}var $c=wo((function(t,e){return _i(t,1,e)})),Nc=wo((function(t,e,n){return _i(t,Xl(e)||0,n)}));function Fc(t){return ja(t,T)}function Uc(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new oe(c);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=t.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(Uc.Cache||zr),n}function Bc(t){if("function"!=typeof t)throw new oe(c);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}function Gc(t){return jc(2,t)}Uc.Cache=zr;var zc=Wo((function(t,e){e=1==e.length&&ul(e[0])?Tn(e[0],Xn(Va())):Tn(Ti(e,1),Xn(Va()));var n=e.length;return wo((function(r){var i=-1,o=Be(r.length,n);while(++i=e})),sl=Vi(function(){return arguments}())?Vi:function(t){return Cl(t)&&fe.call(t,"callee")&&!ke.call(t,"callee")},ul=n.isArray,cl=pn?Xn(pn):Wi;function ll(t){return null!=t&&Sl(t.length)&&!wl(t)}function fl(t){return Cl(t)&&ll(t)}function hl(t){return!0===t||!1===t||Cl(t)&&Li(t)==H}var dl=Le||Kh,pl=vn?Xn(vn):qi;function vl(t){return Cl(t)&&1===t.nodeType&&!Dl(t)}function gl(t){if(null==t)return!0;if(ll(t)&&(ul(t)||"string"==typeof t||"function"==typeof t.splice||dl(t)||Ul(t)||sl(t)))return!t.length;var e=Ja(t);if(e==Q||e==at)return!t.size;if(ds(t))return!no(t).length;for(var n in t)if(fe.call(t,n))return!1;return!0}function ml(t,e){return Hi(t,e)}function yl(t,e,n){n="function"==typeof n?n:o;var r=n?n(t,e):o;return r===o?Hi(t,e,o,n):!!r}function bl(t){if(!Cl(t))return!1;var e=Li(t);return e==X||e==K||"string"==typeof t.message&&"string"==typeof t.name&&!Dl(t)}function _l(t){return"number"==typeof t&&$e(t)}function wl(t){if(!kl(t))return!1;var e=Li(t);return e==J||e==Z||e==q||e==it}function xl(t){return"number"==typeof t&&t==Yl(t)}function Sl(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=$}function kl(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function Cl(t){return null!=t&&"object"==typeof t}var Ol=gn?Xn(gn):Ki;function Pl(t,e){return t===e||Xi(t,e,qa(e))}function Tl(t,e,n){return n="function"==typeof n?n:o,Xi(t,e,qa(e),n)}function Al(t){return Rl(t)&&t!=+t}function El(t){if(hs(t))throw new i(u);return Ji(t)}function jl(t){return null===t}function Ml(t){return null==t}function Rl(t){return"number"==typeof t||Cl(t)&&Li(t)==tt}function Dl(t){if(!Cl(t)||Li(t)!=nt)return!1;var e=xe(t);if(null===e)return!0;var n=fe.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&le.call(n)==ve}var Il=mn?Xn(mn):Zi;function Ll(t){return xl(t)&&t>=-$&&t<=$}var $l=yn?Xn(yn):Qi;function Nl(t){return"string"==typeof t||!ul(t)&&Cl(t)&&Li(t)==st}function Fl(t){return"symbol"==typeof t||Cl(t)&&Li(t)==ut}var Ul=bn?Xn(bn):to;function Bl(t){return t===o}function Gl(t){return Cl(t)&&Ja(t)==lt}function zl(t){return Cl(t)&&Li(t)==ft}var Vl=Oa(io),Wl=Oa((function(t,e){return t<=e}));function ql(t){if(!t)return[];if(ll(t))return Nl(t)?mr(t):ia(t);if(Pe&&t[Pe])return ur(t[Pe]());var e=Ja(t),n=e==Q?cr:e==at?hr:Gf;return n(t)}function Hl(t){if(!t)return 0===t?t:0;if(t=Xl(t),t===L||t===-L){var e=t<0?-1:1;return e*N}return t===t?t:0}function Yl(t){var e=Hl(t),n=e%1;return e===e?n?e-n:e:0}function Kl(t){return t?gi(Yl(t),0,U):0}function Xl(t){if("number"==typeof t)return t;if(Fl(t))return F;if(kl(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=kl(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=Kn(t);var n=Kt.test(t);return n||Jt.test(t)?on(t.slice(2),n?2:8):Yt.test(t)?F:+t}function Jl(t){return oa(t,kf(t))}function Zl(t){return t?gi(Yl(t),-$,$):0===t?t:0}function Ql(t){return null==t?"":Do(t)}var tf=ca((function(t,e){if(ds(e)||ll(e))oa(e,Sf(e),t);else for(var n in e)fe.call(e,n)&&ci(t,n,e[n])})),ef=ca((function(t,e){oa(e,kf(e),t)})),nf=ca((function(t,e,n,r){oa(e,kf(e),t,r)})),rf=ca((function(t,e,n,r){oa(e,Sf(e),t,r)})),of=Na(vi);function af(t,e){var n=Sr(t);return null==e?n:hi(n,e)}var sf=wo((function(t,e){t=ne(t);var n=-1,r=e.length,i=r>2?e[2]:o;i&&ss(e[0],e[1],i)&&(r=1);while(++n1),e})),oa(t,Ua(t),n),r&&(n=mi(n,p|v|g,Da));var i=e.length;while(i--)Lo(n,e[i]);return n}));function Ef(t,e){return Mf(t,Bc(Va(e)))}var jf=Na((function(t,e){return null==t?{}:ho(t,e)}));function Mf(t,e){if(null==t)return{};var n=Tn(Ua(t),(function(t){return[t]}));return e=Va(e),po(t,n,(function(t,n){return e(t,n[0])}))}function Rf(t,e,n){e=Vo(e,t);var r=-1,i=e.length;i||(i=1,t=o);while(++re){var r=t;t=e,e=r}if(n||t%1||e%1){var i=qe();return Be(t+i*(e-t+rn("1e-"+((i+"").length-1))),e)}return yo(t,e)}var Hf=pa((function(t,e,n){return e=e.toLowerCase(),t+(n?Yf(e):e)}));function Yf(t){return wh(Ql(t).toLowerCase())}function Kf(t){return t=Ql(t),t&&t.replace(Qt,nr).replace(Ve,"")}function Xf(t,e,n){t=Ql(t),e=Do(e);var r=t.length;n=n===o?r:gi(Yl(n),0,r);var i=n;return n-=e.length,n>=0&&t.slice(n,i)==e}function Jf(t){return t=Ql(t),t&&At.test(t)?t.replace(Pt,rr):t}function Zf(t){return t=Ql(t),t&&$t.test(t)?t.replace(Lt,"\\$&"):t}var Qf=pa((function(t,e,n){return t+(n?"-":"")+e.toLowerCase()})),th=pa((function(t,e,n){return t+(n?" ":"")+e.toLowerCase()})),eh=da("toLowerCase");function nh(t,e,n){t=Ql(t),e=Yl(e);var r=e?gr(t):0;if(!e||r>=e)return t;var i=(e-r)/2;return Sa(De(i),n)+t+Sa(Re(i),n)}function rh(t,e,n){t=Ql(t),e=Yl(e);var r=e?gr(t):0;return e&&r>>0,n?(t=Ql(t),t&&("string"==typeof e||null!=e&&!Il(e))&&(e=Do(e),!e&&ar(t))?qo(mr(t),0,n):t.split(e,n)):[]}var lh=pa((function(t,e,n){return t+(n?" ":"")+wh(e)}));function fh(t,e,n){return t=Ql(t),n=null==n?0:gi(Yl(n),0,t.length),e=Do(e),t.slice(n,n+e.length)==e}function hh(t,e,n){var r=wr.templateSettings;n&&ss(t,e,n)&&(e=o),t=Ql(t),e=nf({},e,r,Ma);var a,s,u=nf({},e.imports,r.imports,Ma),c=Sf(u),f=Jn(u,c),h=0,d=e.interpolate||te,p="__p += '",v=re((e.escape||te).source+"|"+d.source+"|"+(d===Mt?qt:te).source+"|"+(e.evaluate||te).source+"|$","g"),g="//# sourceURL="+(fe.call(e,"sourceURL")?(e.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Xe+"]")+"\n";t.replace(v,(function(e,n,r,i,o,u){return r||(r=i),p+=t.slice(h,u).replace(ee,ir),n&&(a=!0,p+="' +\n__e("+n+") +\n'"),o&&(s=!0,p+="';\n"+o+";\n__p += '"),r&&(p+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),h=u+e.length,e})),p+="';\n";var m=fe.call(e,"variable")&&e.variable;if(m){if(Vt.test(m))throw new i(l)}else p="with (obj) {\n"+p+"\n}\n";p=(s?p.replace(St,""):p).replace(kt,"$1").replace(Ct,"$1;"),p="function("+(m||"obj")+") {\n"+(m?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(a?", __e = _.escape":"")+(s?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+p+"return __p\n}";var y=Sh((function(){return Ft(c,g+"return "+p).apply(o,f)}));if(y.source=p,bl(y))throw y;return y}function dh(t){return Ql(t).toLowerCase()}function ph(t){return Ql(t).toUpperCase()}function vh(t,e,n){if(t=Ql(t),t&&(n||e===o))return Kn(t);if(!t||!(e=Do(e)))return t;var r=mr(t),i=mr(e),a=Qn(r,i),s=tr(r,i)+1;return qo(r,a,s).join("")}function gh(t,e,n){if(t=Ql(t),t&&(n||e===o))return t.slice(0,yr(t)+1);if(!t||!(e=Do(e)))return t;var r=mr(t),i=tr(r,mr(e))+1;return qo(r,0,i).join("")}function mh(t,e,n){if(t=Ql(t),t&&(n||e===o))return t.replace(Nt,"");if(!t||!(e=Do(e)))return t;var r=mr(t),i=Qn(r,mr(e));return qo(r,i).join("")}function yh(t,e){var n=A,r=E;if(kl(e)){var i="separator"in e?e.separator:i;n="length"in e?Yl(e.length):n,r="omission"in e?Do(e.omission):r}t=Ql(t);var a=t.length;if(ar(t)){var s=mr(t);a=s.length}if(n>=a)return t;var u=n-gr(r);if(u<1)return r;var c=s?qo(s,0,u).join(""):t.slice(0,u);if(i===o)return c+r;if(s&&(u+=c.length-u),Il(i)){if(t.slice(u).search(i)){var l,f=c;i.global||(i=re(i.source,Ql(Ht.exec(i))+"g")),i.lastIndex=0;while(l=i.exec(f))var h=l.index;c=c.slice(0,h===o?u:h)}}else if(t.indexOf(Do(i),u)!=u){var d=c.lastIndexOf(i);d>-1&&(c=c.slice(0,d))}return c+r}function bh(t){return t=Ql(t),t&&Tt.test(t)?t.replace(Ot,br):t}var _h=pa((function(t,e,n){return t+(n?" ":"")+e.toUpperCase()})),wh=da("toUpperCase");function xh(t,e,n){return t=Ql(t),e=n?o:e,e===o?sr(t)?xr(t):In(t):t.match(e)||[]}var Sh=wo((function(t,e){try{return _n(t,o,e)}catch(n){return bl(n)?n:new i(n)}})),kh=Na((function(t,e){return xn(e,(function(e){e=js(e),pi(t,e,Mc(t[e],t))})),t}));function Ch(t){var e=null==t?0:t.length,n=Va();return t=e?Tn(t,(function(t){if("function"!=typeof t[1])throw new oe(c);return[n(t[0]),t[1]]})):[],wo((function(n){var r=-1;while(++r$)return[];var n=U,r=Be(t,U);e=Va(e),t-=U;var i=Hn(r,e);while(++n0||e<0)?new Pr(n):(t<0?n=n.takeRight(-t):t&&(n=n.drop(t)),e!==o&&(e=Yl(e),n=e<0?n.dropRight(-e):n.take(e-t)),n)},Pr.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},Pr.prototype.toArray=function(){return this.take(U)},ji(Pr.prototype,(function(t,e){var n=/^(?:filter|find|map|reject)|While$/.test(e),r=/^(?:head|last)$/.test(e),i=wr[r?"take"+("last"==e?"Right":""):e],a=r||/^find/.test(e);i&&(wr.prototype[e]=function(){var e=this.__wrapped__,s=r?[1]:arguments,u=e instanceof Pr,c=s[0],l=u||ul(e),f=function(t){var e=i.apply(wr,An([t],s));return r&&h?e[0]:e};l&&n&&"function"==typeof c&&1!=c.length&&(u=l=!1);var h=this.__chain__,d=!!this.__actions__.length,p=a&&!h,v=u&&!d;if(!a&&l){e=v?e:new Pr(this);var g=t.apply(e,s);return g.__actions__.push({func:Hu,args:[f],thisArg:o}),new Or(g,h)}return p&&v?t.apply(this,s):(g=this.thru(f),p?r?g.value()[0]:g.value():g)})})),xn(["pop","push","shift","sort","splice","unshift"],(function(t){var e=ae[t],n=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",r=/^(?:pop|shift)$/.test(t);wr.prototype[t]=function(){var t=arguments;if(r&&!this.__chain__){var i=this.value();return e.apply(ul(i)?i:[],t)}return this[n]((function(n){return e.apply(ul(n)?n:[],t)}))}})),ji(Pr.prototype,(function(t,e){var n=wr[e];if(n){var r=n.name+"";fe.call(cn,r)||(cn[r]=[]),cn[r].push({name:e,func:n})}})),cn[ba(o,_).name]=[{name:"wrapper",func:o}],Pr.prototype.clone=Tr,Pr.prototype.reverse=Ar,Pr.prototype.value=Er,wr.prototype.at=Yu,wr.prototype.chain=Ku,wr.prototype.commit=Xu,wr.prototype.next=Ju,wr.prototype.plant=Qu,wr.prototype.reverse=tc,wr.prototype.toJSON=wr.prototype.valueOf=wr.prototype.value=ec,wr.prototype.first=wr.prototype.head,Pe&&(wr.prototype[Pe]=Zu),wr},kr=Sr();un._=kr,i=function(){return kr}.call(e,n,e,r),i===o||(r.exports=i)}).call(this)}).call(this,n("c8ba"),n("62e4")(t))},"2fb2":function(t,e,n){"use strict";var r=this&&this.__extends||function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0}),e.FastLayer=void 0;var i=n("9cb8"),o=n("0ff5"),a=n("d777"),s=function(t){function e(e){var n=t.call(this,e)||this;return n.listening(!1),i.Util.warn('Konva.Fast layer is deprecated. Please use "new Konva.Layer({ listening: false })" instead.'),n}return r(e,t),e}(o.Layer);e.FastLayer=s,s.prototype.nodeType="FastLayer",a._registerNode(s),i.Collection.mapMethods(s)},"2fcc":function(t,e){function n(t){var e=this.__data__,n=e["delete"](t);return this.size=e.size,n}t.exports=n},"2fd7":function(t,e,n){},"30c9":function(t,e,n){var r=n("9520"),i=n("b218");function o(t){return null!=t&&i(t.length)&&!r(t)}t.exports=o},"32b3":function(t,e,n){var r=n("872a"),i=n("9638"),o=Object.prototype,a=o.hasOwnProperty;function s(t,e,n){var o=t[e];a.call(t,e)&&i(o,n)&&(void 0!==n||e in t)||r(t,e,n)}t.exports=s},"32f4":function(t,e,n){var r=n("2d7c"),i=n("d327"),o=Object.prototype,a=o.propertyIsEnumerable,s=Object.getOwnPropertySymbols,u=s?function(t){return null==t?[]:(t=Object(t),r(s(t),(function(e){return a.call(t,e)})))}:i;t.exports=u},3360:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r=n("78ef"),i=function(){for(var t=arguments.length,e=new Array(t),n=0;n0&&e.reduce((function(e,n){return e&&n.apply(t,r)}),!0)}))};e.default=i},"34ac":function(t,e,n){var r=n("9520"),i=n("1368"),o=n("1a8c"),a=n("dc57"),s=/[\\^$.*+?()[\]{}|]/g,u=/^\[object .+?Constructor\]$/,c=Function.prototype,l=Object.prototype,f=c.toString,h=l.hasOwnProperty,d=RegExp("^"+f.call(h).replace(s,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function p(t){if(!o(t)||i(t))return!1;var e=r(t)?d:u;return e.test(a(t))}t.exports=p},"362d":function(t,e,n){var r=n("fd15").Konva;r._injectGlobal(r),e["default"]=r,t.exports=e["default"]},3665:function(t,e,n){"use strict";n.d(e,"a",(function(){return tl}));var r={};n.r(r),n.d(r,"Experiment",(function(){return lt})),n.d(r,"Screen",(function(){return St})),n.d(r,"Slide",(function(){return At})),n.d(r,"CompletionInput",(function(){return $t})),n.d(r,"DropdownInput",(function(){return Wt})),n.d(r,"ForcedChoiceInput",(function(){return Qt})),n.d(r,"ImageSelectionInput",(function(){return se})),n.d(r,"KeypressInput",(function(){return ve})),n.d(r,"RatingInput",(function(){return Se})),n.d(r,"SliderInput",(function(){return Re})),n.d(r,"TextareaInput",(function(){return Be})),n.d(r,"MultipleChoiceInput",(function(){return Je})),n.d(r,"MultipleChoiceMatrixInput",(function(){return an})),n.d(r,"SliderRangesInput",(function(){return mn})),n.d(r,"RankOrderInput",(function(){return Pn})),n.d(r,"MazeInput",(function(){return vr})),n.d(r,"SerialInput",(function(){return $n})),n.d(r,"SelfPacedReadingInput",(function(){return Sr})),n.d(r,"Rsvp",(function(){return jr})),n.d(r,"FixationCross",(function(){return Fr})),n.d(r,"Synth",(function(){return Ou})),n.d(r,"Chat",(function(){return Xr})),n.d(r,"WaitForParticipants",(function(){return ii})),n.d(r,"LifecycleScreen",(function(){return Ti})),n.d(r,"ConnectInteractiveScreen",(function(){return Li})),n.d(r,"AwaitIteratedResultScreen",(function(){return Vi})),n.d(r,"DebugResultsScreen",(function(){return to})),n.d(r,"SubmitResultsScreen",(function(){return uo})),n.d(r,"PostTestScreen",(function(){return mo})),n.d(r,"InstructionScreen",(function(){return Co})),n.d(r,"EyetrackingCalibrationScreen",(function(){return Io})),n.d(r,"EyetrackingValidationScreen",(function(){return Jo})),n.d(r,"ForcedChoiceScreen",(function(){return oa})),n.d(r,"ImageSelectionScreen",(function(){return da})),n.d(r,"TextareaScreen",(function(){return wa})),n.d(r,"SliderScreen",(function(){return Aa})),n.d(r,"SliderRangesScreen",(function(){return $a})),n.d(r,"RatingScreen",(function(){return Wa})),n.d(r,"CompletionScreen",(function(){return Qa})),n.d(r,"KeypressScreen",(function(){return ss})),n.d(r,"ForcedChoiceMousetrackingScreen",(function(){return vs})),n.d(r,"MultipleChoiceScreen",(function(){return Ss})),n.d(r,"MultipleChoiceMatrixScreen",(function(){return js})),n.d(r,"MazeScreen",(function(){return Fs})),n.d(r,"SelfPacedReadingScreen",(function(){return Hs})),n.d(r,"Wait",(function(){return cr})),n.d(r,"TimerStop",(function(){return Wn})),n.d(r,"TimerStart",(function(){return Qn})),n.d(r,"Record",(function(){return xi})),n.d(r,"ResponseTimeStart",(function(){return pi})),n.d(r,"MousetrackingStart",(function(){return eu})),n.d(r,"EyetrackingStart",(function(){return Wo})),n.d(r,"FullscreenStart",(function(){return cu})),n.d(r,"HideCursor",(function(){return mu})),n.d(r,"PreventCopyPaste",(function(){return Cu}));var i={};n.r(i),n.d(i,"en",(function(){return Zc})),n.d(i,"de",(function(){return Qc}));var o=n("faa1"),a=n.n(o),s=n("2b0e"),u=t=>{if("function"===typeof t)return t;{let e=function(){return t};return e}},c="undefined"!==typeof self?self:null,l="undefined"!==typeof window?window:null,f=c||l||f,h="2.0.0",d={connecting:0,open:1,closing:2,closed:3},p=1e4,v=1e3,g={closed:"closed",errored:"errored",joined:"joined",joining:"joining",leaving:"leaving"},m={close:"phx_close",error:"phx_error",join:"phx_join",reply:"phx_reply",leave:"phx_leave"},y={longpoll:"longpoll",websocket:"websocket"},b={complete:4},_=class{constructor(t,e,n,r){this.channel=t,this.event=e,this.payload=n||function(){return{}},this.receivedResp=null,this.timeout=r,this.timeoutTimer=null,this.recHooks=[],this.sent=!1}resend(t){this.timeout=t,this.reset(),this.send()}send(){this.hasReceived("timeout")||(this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload(),ref:this.ref,join_ref:this.channel.joinRef()}))}receive(t,e){return this.hasReceived(t)&&e(this.receivedResp.response),this.recHooks.push({status:t,callback:e}),this}reset(){this.cancelRefEvent(),this.ref=null,this.refEvent=null,this.receivedResp=null,this.sent=!1}matchReceive({status:t,response:e,_ref:n}){this.recHooks.filter(e=>e.status===t).forEach(t=>t.callback(e))}cancelRefEvent(){this.refEvent&&this.channel.off(this.refEvent)}cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=null}startTimeout(){this.timeoutTimer&&this.cancelTimeout(),this.ref=this.channel.socket.makeRef(),this.refEvent=this.channel.replyEventName(this.ref),this.channel.on(this.refEvent,t=>{this.cancelRefEvent(),this.cancelTimeout(),this.receivedResp=t,this.matchReceive(t)}),this.timeoutTimer=setTimeout(()=>{this.trigger("timeout",{})},this.timeout)}hasReceived(t){return this.receivedResp&&this.receivedResp.status===t}trigger(t,e){this.channel.trigger(this.refEvent,{status:t,response:e})}},w=class{constructor(t,e){this.callback=t,this.timerCalc=e,this.timer=null,this.tries=0}reset(){this.tries=0,clearTimeout(this.timer)}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout(()=>{this.tries=this.tries+1,this.callback()},this.timerCalc(this.tries+1))}},x=class{constructor(t,e,n){this.state=g.closed,this.topic=t,this.params=u(e||{}),this.socket=n,this.bindings=[],this.bindingRef=0,this.timeout=this.socket.timeout,this.joinedOnce=!1,this.joinPush=new _(this,m.join,this.params,this.timeout),this.pushBuffer=[],this.stateChangeRefs=[],this.rejoinTimer=new w(()=>{this.socket.isConnected()&&this.rejoin()},this.socket.rejoinAfterMs),this.stateChangeRefs.push(this.socket.onError(()=>this.rejoinTimer.reset())),this.stateChangeRefs.push(this.socket.onOpen(()=>{this.rejoinTimer.reset(),this.isErrored()&&this.rejoin()})),this.joinPush.receive("ok",()=>{this.state=g.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach(t=>t.send()),this.pushBuffer=[]}),this.joinPush.receive("error",()=>{this.state=g.errored,this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.onClose(()=>{this.rejoinTimer.reset(),this.socket.hasLogger()&&this.socket.log("channel",`close ${this.topic} ${this.joinRef()}`),this.state=g.closed,this.socket.remove(this)}),this.onError(t=>{this.socket.hasLogger()&&this.socket.log("channel","error "+this.topic,t),this.isJoining()&&this.joinPush.reset(),this.state=g.errored,this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.joinPush.receive("timeout",()=>{this.socket.hasLogger()&&this.socket.log("channel",`timeout ${this.topic} (${this.joinRef()})`,this.joinPush.timeout);let t=new _(this,m.leave,u({}),this.timeout);t.send(),this.state=g.errored,this.joinPush.reset(),this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.on(m.reply,(t,e)=>{this.trigger(this.replyEventName(e),t)})}join(t=this.timeout){if(this.joinedOnce)throw new Error("tried to join multiple times. 'join' can only be called a single time per channel instance");return this.timeout=t,this.joinedOnce=!0,this.rejoin(),this.joinPush}onClose(t){this.on(m.close,t)}onError(t){return this.on(m.error,e=>t(e))}on(t,e){let n=this.bindingRef++;return this.bindings.push({event:t,ref:n,callback:e}),n}off(t,e){this.bindings=this.bindings.filter(n=>!(n.event===t&&("undefined"===typeof e||e===n.ref)))}canPush(){return this.socket.isConnected()&&this.isJoined()}push(t,e,n=this.timeout){if(e=e||{},!this.joinedOnce)throw new Error(`tried to push '${t}' to '${this.topic}' before joining. Use channel.join() before pushing events`);let r=new _(this,t,(function(){return e}),n);return this.canPush()?r.send():(r.startTimeout(),this.pushBuffer.push(r)),r}leave(t=this.timeout){this.rejoinTimer.reset(),this.joinPush.cancelTimeout(),this.state=g.leaving;let e=()=>{this.socket.hasLogger()&&this.socket.log("channel","leave "+this.topic),this.trigger(m.close,"leave")},n=new _(this,m.leave,u({}),t);return n.receive("ok",()=>e()).receive("timeout",()=>e()),n.send(),this.canPush()||n.trigger("ok",{}),n}onMessage(t,e,n){return e}isMember(t,e,n,r){return this.topic===t&&(!r||r===this.joinRef()||(this.socket.hasLogger()&&this.socket.log("channel","dropping outdated message",{topic:t,event:e,payload:n,joinRef:r}),!1))}joinRef(){return this.joinPush.ref}rejoin(t=this.timeout){this.isLeaving()||(this.socket.leaveOpenTopic(this.topic),this.state=g.joining,this.joinPush.resend(t))}trigger(t,e,n,r){let i=this.onMessage(t,e,n,r);if(e&&!i)throw new Error("channel onMessage callbacks must return the payload, modified or unmodified");let o=this.bindings.filter(e=>e.event===t);for(let a=0;a{let e=this.parseJSON(t.responseText);a&&a(e)},o&&(t.ontimeout=o),t.onprogress=()=>{},t.send(r),t}static xhrRequest(t,e,n,r,i,o,a,s){return t.open(e,n,!0),t.timeout=o,t.setRequestHeader("Content-Type",r),t.onerror=()=>s&&s(null),t.onreadystatechange=()=>{if(t.readyState===b.complete&&s){let e=this.parseJSON(t.responseText);s(e)}},a&&(t.ontimeout=a),t.send(i),t}static parseJSON(t){if(!t||""===t)return null;try{return JSON.parse(t)}catch(e){return console&&console.log("failed to parse JSON response",t),null}}static serialize(t,e){let n=[];for(var r in t){if(!Object.prototype.hasOwnProperty.call(t,r))continue;let i=e?`${e}[${r}]`:r,o=t[r];"object"===typeof o?n.push(this.serialize(o,i)):n.push(encodeURIComponent(i)+"="+encodeURIComponent(o))}return n.join("&")}static appendParams(t,e){if(0===Object.keys(e).length)return t;let n=t.match(/\?/)?"&":"?";return`${t}${n}${this.serialize(e)}`}},k=class{constructor(t){this.endPoint=null,this.token=null,this.skipHeartbeat=!0,this.reqs=new Set,this.onopen=function(){},this.onerror=function(){},this.onmessage=function(){},this.onclose=function(){},this.pollEndpoint=this.normalizeEndpoint(t),this.readyState=d.connecting,this.poll()}normalizeEndpoint(t){return t.replace("ws://","http://").replace("wss://","https://").replace(new RegExp("(.*)/"+y.websocket),"$1/"+y.longpoll)}endpointURL(){return S.appendParams(this.pollEndpoint,{token:this.token})}closeAndRetry(t,e,n){this.close(t,e,n),this.readyState=d.connecting}ontimeout(){this.onerror("timeout"),this.closeAndRetry(1005,"timeout",!1)}isActive(){return this.readyState===d.open||this.readyState===d.connecting}poll(){this.ajax("GET",null,()=>this.ontimeout(),t=>{if(t){var{status:e,token:n,messages:r}=t;this.token=n}else e=0;switch(e){case 200:r.forEach(t=>{setTimeout(()=>this.onmessage({data:t}),0)}),this.poll();break;case 204:this.poll();break;case 410:this.readyState=d.open,this.onopen({}),this.poll();break;case 403:this.onerror(403),this.close(1008,"forbidden",!1);break;case 0:case 500:this.onerror(500),this.closeAndRetry(1011,"internal server error",500);break;default:throw new Error("unhandled poll status "+e)}})}send(t){this.ajax("POST",t,()=>this.onerror("timeout"),t=>{t&&200===t.status||(this.onerror(t&&t.status),this.closeAndRetry(1011,"internal server error",!1))})}close(t,e,n){for(let i of this.reqs)i.abort();this.readyState=d.closed;let r=Object.assign({code:1e3,reason:void 0,wasClean:!0},{code:t,reason:e,wasClean:n});"undefined"!==typeof CloseEvent?this.onclose(new CloseEvent("close",r)):this.onclose(r)}ajax(t,e,n,r){let i,o=()=>{this.reqs.delete(i),n()};i=S.request(t,this.endpointURL(),"application/json",e,this.timeout,o,t=>{this.reqs.delete(i),this.isActive()&&r(t)}),this.reqs.add(i)}},C={HEADER_LENGTH:1,META_LENGTH:4,KINDS:{push:0,reply:1,broadcast:2},encode(t,e){if(t.payload.constructor===ArrayBuffer)return e(this.binaryEncode(t));{let n=[t.join_ref,t.ref,t.topic,t.event,t.payload];return e(JSON.stringify(n))}},decode(t,e){if(t.constructor===ArrayBuffer)return e(this.binaryDecode(t));{let[n,r,i,o,a]=JSON.parse(t);return e({join_ref:n,ref:r,topic:i,event:o,payload:a})}},binaryEncode(t){let{join_ref:e,ref:n,event:r,topic:i,payload:o}=t,a=this.META_LENGTH+e.length+n.length+i.length+r.length,s=new ArrayBuffer(this.HEADER_LENGTH+a),u=new DataView(s),c=0;u.setUint8(c++,this.KINDS.push),u.setUint8(c++,e.length),u.setUint8(c++,n.length),u.setUint8(c++,i.length),u.setUint8(c++,r.length),Array.from(e,t=>u.setUint8(c++,t.charCodeAt(0))),Array.from(n,t=>u.setUint8(c++,t.charCodeAt(0))),Array.from(i,t=>u.setUint8(c++,t.charCodeAt(0))),Array.from(r,t=>u.setUint8(c++,t.charCodeAt(0)));var l=new Uint8Array(s.byteLength+o.byteLength);return l.set(new Uint8Array(s),0),l.set(new Uint8Array(o),s.byteLength),l.buffer},binaryDecode(t){let e=new DataView(t),n=e.getUint8(0),r=new TextDecoder;switch(n){case this.KINDS.push:return this.decodePush(t,e,r);case this.KINDS.reply:return this.decodeReply(t,e,r);case this.KINDS.broadcast:return this.decodeBroadcast(t,e,r)}},decodePush(t,e,n){let r=e.getUint8(1),i=e.getUint8(2),o=e.getUint8(3),a=this.HEADER_LENGTH+this.META_LENGTH-1,s=n.decode(t.slice(a,a+r));a+=r;let u=n.decode(t.slice(a,a+i));a+=i;let c=n.decode(t.slice(a,a+o));a+=o;let l=t.slice(a,t.byteLength);return{join_ref:s,ref:null,topic:u,event:c,payload:l}},decodeReply(t,e,n){let r=e.getUint8(1),i=e.getUint8(2),o=e.getUint8(3),a=e.getUint8(4),s=this.HEADER_LENGTH+this.META_LENGTH,u=n.decode(t.slice(s,s+r));s+=r;let c=n.decode(t.slice(s,s+i));s+=i;let l=n.decode(t.slice(s,s+o));s+=o;let f=n.decode(t.slice(s,s+a));s+=a;let h=t.slice(s,t.byteLength),d={status:f,response:h};return{join_ref:u,ref:c,topic:l,event:m.reply,payload:d}},decodeBroadcast(t,e,n){let r=e.getUint8(1),i=e.getUint8(2),o=this.HEADER_LENGTH+2,a=n.decode(t.slice(o,o+r));o+=r;let s=n.decode(t.slice(o,o+i));o+=i;let u=t.slice(o,t.byteLength);return{join_ref:null,ref:null,topic:a,event:s,payload:u}}},O=class{constructor(t,e={}){this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.channels=[],this.sendBuffer=[],this.ref=0,this.timeout=e.timeout||p,this.transport=e.transport||f.WebSocket||k,this.establishedConnections=0,this.defaultEncoder=C.encode.bind(C),this.defaultDecoder=C.decode.bind(C),this.closeWasClean=!1,this.binaryType=e.binaryType||"arraybuffer",this.connectClock=1,this.transport!==k?(this.encode=e.encode||this.defaultEncoder,this.decode=e.decode||this.defaultDecoder):(this.encode=this.defaultEncoder,this.decode=this.defaultDecoder);let n=null;l&&l.addEventListener&&(l.addEventListener("pagehide",t=>{this.conn&&(this.disconnect(),n=this.connectClock)}),l.addEventListener("pageshow",t=>{n===this.connectClock&&(n=null,this.connect())})),this.heartbeatIntervalMs=e.heartbeatIntervalMs||3e4,this.rejoinAfterMs=t=>e.rejoinAfterMs?e.rejoinAfterMs(t):[1e3,2e3,5e3][t-1]||1e4,this.reconnectAfterMs=t=>e.reconnectAfterMs?e.reconnectAfterMs(t):[10,50,100,150,200,250,500,1e3,2e3][t-1]||5e3,this.logger=e.logger||null,this.longpollerTimeout=e.longpollerTimeout||2e4,this.params=u(e.params||{}),this.endPoint=`${t}/${y.websocket}`,this.vsn=e.vsn||h,this.heartbeatTimer=null,this.pendingHeartbeatRef=null,this.reconnectTimer=new w(()=>{this.teardown(()=>this.connect())},this.reconnectAfterMs)}getLongPollTransport(){return k}replaceTransport(t){this.connectClock++,this.closeWasClean=!0,this.reconnectTimer.reset(),this.sendBuffer=[],this.conn&&(this.conn.close(),this.conn=null),this.transport=t}protocol(){return location.protocol.match(/^https/)?"wss":"ws"}endPointURL(){let t=S.appendParams(S.appendParams(this.endPoint,this.params()),{vsn:this.vsn});return"/"!==t.charAt(0)?t:"/"===t.charAt(1)?`${this.protocol()}:${t}`:`${this.protocol()}://${location.host}${t}`}disconnect(t,e,n){this.connectClock++,this.closeWasClean=!0,this.reconnectTimer.reset(),this.teardown(t,e,n)}connect(t){t&&(console&&console.log("passing params to connect is deprecated. Instead pass :params to the Socket constructor"),this.params=u(t)),this.conn||(this.connectClock++,this.closeWasClean=!1,this.conn=new this.transport(this.endPointURL()),this.conn.binaryType=this.binaryType,this.conn.timeout=this.longpollerTimeout,this.conn.onopen=()=>this.onConnOpen(),this.conn.onerror=t=>this.onConnError(t),this.conn.onmessage=t=>this.onConnMessage(t),this.conn.onclose=t=>this.onConnClose(t))}log(t,e,n){this.logger(t,e,n)}hasLogger(){return null!==this.logger}onOpen(t){let e=this.makeRef();return this.stateChangeCallbacks.open.push([e,t]),e}onClose(t){let e=this.makeRef();return this.stateChangeCallbacks.close.push([e,t]),e}onError(t){let e=this.makeRef();return this.stateChangeCallbacks.error.push([e,t]),e}onMessage(t){let e=this.makeRef();return this.stateChangeCallbacks.message.push([e,t]),e}ping(t){if(!this.isConnected())return!1;let e=this.makeRef(),n=Date.now();this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:e});let r=this.onMessage(i=>{i.ref===e&&(this.off([r]),t(Date.now()-n))});return!0}onConnOpen(){this.hasLogger()&&this.log("transport","connected to "+this.endPointURL()),this.closeWasClean=!1,this.establishedConnections++,this.flushSendBuffer(),this.reconnectTimer.reset(),this.resetHeartbeat(),this.stateChangeCallbacks.open.forEach(([,t])=>t())}heartbeatTimeout(){this.pendingHeartbeatRef&&(this.pendingHeartbeatRef=null,this.hasLogger()&&this.log("transport","heartbeat timeout. Attempting to re-establish connection"),this.abnormalClose("heartbeat timeout"))}resetHeartbeat(){this.conn&&this.conn.skipHeartbeat||(this.pendingHeartbeatRef=null,clearTimeout(this.heartbeatTimer),setTimeout(()=>this.sendHeartbeat(),this.heartbeatIntervalMs))}teardown(t,e,n){if(!this.conn)return t&&t();this.waitForBufferDone(()=>{this.conn&&(e?this.conn.close(e,n||""):this.conn.close()),this.waitForSocketClosed(()=>{this.conn&&(this.conn.onclose=function(){},this.conn=null),t&&t()})})}waitForBufferDone(t,e=1){5!==e&&this.conn&&this.conn.bufferedAmount?setTimeout(()=>{this.waitForBufferDone(t,e+1)},150*e):t()}waitForSocketClosed(t,e=1){5!==e&&this.conn&&this.conn.readyState!==d.closed?setTimeout(()=>{this.waitForSocketClosed(t,e+1)},150*e):t()}onConnClose(t){let e=t&&t.code;this.hasLogger()&&this.log("transport","close",t),this.triggerChanError(),clearTimeout(this.heartbeatTimer),this.closeWasClean||1e3===e||this.reconnectTimer.scheduleTimeout(),this.stateChangeCallbacks.close.forEach(([,e])=>e(t))}onConnError(t){this.hasLogger()&&this.log("transport",t);let e=this.transport,n=this.establishedConnections;this.stateChangeCallbacks.error.forEach(([,r])=>{r(t,e,n)}),(e===this.transport||n>0)&&this.triggerChanError()}triggerChanError(){this.channels.forEach(t=>{t.isErrored()||t.isLeaving()||t.isClosed()||t.trigger(m.error)})}connectionState(){switch(this.conn&&this.conn.readyState){case d.connecting:return"connecting";case d.open:return"open";case d.closing:return"closing";default:return"closed"}}isConnected(){return"open"===this.connectionState()}remove(t){this.off(t.stateChangeRefs),this.channels=this.channels.filter(e=>e.joinRef()!==t.joinRef())}off(t){for(let e in this.stateChangeCallbacks)this.stateChangeCallbacks[e]=this.stateChangeCallbacks[e].filter(([e])=>-1===t.indexOf(e))}channel(t,e={}){let n=new x(t,e,this);return this.channels.push(n),n}push(t){if(this.hasLogger()){let{topic:e,event:n,payload:r,ref:i,join_ref:o}=t;this.log("push",`${e} ${n} (${o}, ${i})`,r)}this.isConnected()?this.encode(t,t=>this.conn.send(t)):this.sendBuffer.push(()=>this.encode(t,t=>this.conn.send(t)))}makeRef(){let t=this.ref+1;return t===this.ref?this.ref=0:this.ref=t,this.ref.toString()}sendHeartbeat(){this.pendingHeartbeatRef&&!this.isConnected()||(this.pendingHeartbeatRef=this.makeRef(),this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:this.pendingHeartbeatRef}),this.heartbeatTimer=setTimeout(()=>this.heartbeatTimeout(),this.heartbeatIntervalMs))}abnormalClose(t){this.closeWasClean=!1,this.isConnected()&&this.conn.close(v,t)}flushSendBuffer(){this.isConnected()&&this.sendBuffer.length>0&&(this.sendBuffer.forEach(t=>t()),this.sendBuffer=[])}onConnMessage(t){this.decode(t.data,t=>{let{topic:e,event:n,payload:r,ref:i,join_ref:o}=t;i&&i===this.pendingHeartbeatRef&&(clearTimeout(this.heartbeatTimer),this.pendingHeartbeatRef=null,setTimeout(()=>this.sendHeartbeat(),this.heartbeatIntervalMs)),this.hasLogger()&&this.log("receive",`${r.status||""} ${e} ${n} ${i&&"("+i+")"||""}`,r);for(let a=0;ae.topic===t&&(e.isJoined()||e.isJoining()));e&&(this.hasLogger()&&this.log("transport",`leaving duplicate topic "${t}"`),e.leave())}},P=n("8bc1");const T=3e3,A=1e4,E="screen_presence",j={CONNECTING:"CONNECTING",CONNECTED:"CONNECTED",WAITING:"WAITING",READY:"READY",ERROR:"ERROR"};class M extends a.a{constructor(t,e,n){super(),this.socketURL=e,this.errorHandler=t=>{this.state=j.ERROR,n(t)},this.participantId=R(40),this.experimentId=t,this.state=j.CONNECTING,this.iteratedState=j.WAITING,this.participants=[],this.active=[],this.variant=null,this.chain=null,this.generation=null,this.player=null,this.groupLabel=null,this.lastIterationResults=null,s["default"].observable(this),this.currentScreen=null,this.participantsPerScreen={},this.timeoutsPerParticipant={}}getParticipantName(t){return I(t,P)}getParticipantColor(t){return I(t,L)}initialize(){null===this.variant&&(this.phoenix=new O(this.socketURL,{params:{participant_id:this.participantId,experiment_id:this.experimentId}}),this.phoenix.onError(this.errorHandler),this.phoenix.connect(),this.participantChannel=this.phoenix.channel("participant:"+this.participantId,{}),this.participantChannel.on("experiment_available",t=>{this.variant=t.variant,this.chain=t.chain,this.generation=t.generation,this.player=t.player,this.groupLabel=t.group_label,this.state=j.CONNECTED,this.join()}),this.participantChannel.join().receive("ok",()=>{}).receive("error",this.errorHandler).receive("timeout",this.errorHandler),setInterval(()=>{this.participantChannel.push("report_heartbeat")},3e4))}join(){this.chain&&this.generation&&(this.roomChannel=this.phoenix.channel(`interactive_room:${this.experimentId}:${this.chain}:${this.variant}:${this.generation}`,{participant_id:this.participantId}),this.roomChannel.join().receive("ok",()=>{this.state=j.WAITING}).receive("error",this.errorHandler).receive("timeout",this.errorHandler),this.roomChannel.on("start_game",({group_label:t})=>{this.groupLabel=t,this.state=j.READY}),this.roomChannel.on("new_msg",t=>{this.emit(t.event,t.payload)}),this.roomChannel.on("presence_diff",t=>{Object.keys(t.joins).forEach(t=>this.participants.push(t)),Object.keys(t.leaves).forEach(t=>{this.participants.splice(this.participants.indexOf(t),1),this.leaveHandler&&this.leaveHandler()})}),setInterval(()=>{this.broadcast(E,{[this.participantId]:this.currentScreen})},T),this.on(E,t=>{Object.assign(this.participantsPerScreen,t),this.updateActiveParticipants();const e=Object.keys(t)[0];e&&(clearTimeout(this.timeoutsPerParticipant[e]),this.timeoutsPerParticipant[e]=setTimeout(()=>{delete this.participantsPerScreen[e],this.updateActiveParticipants()},A))}),1===this.generation?this.iteratedState=j.READY:(this.lobbyChannel=this.phoenix.channel(`iterated_lobby:${this.experimentId}:${this.chain}:${this.variant}:${this.generation-1}:${this.player}`,{participant_id:this.participantId}),this.lobbyChannel.on("finished",t=>{this.lastIterationResults=t.results,this.lobbyChannel.leave(),this.iteratedState=j.READY}),this.lobbyChannel.join().receive("error",this.errorHandler).receive("timeout",this.errorHandler)))}setCurrentScreen(t){this.currentScreen=t,this.updateActiveParticipants()}updateActiveParticipants(){this.active=Object.entries({...this.participantsPerScreen,[this.participantId]:this.currentScreen}).filter(([,t])=>t===this.currentScreen).map(([t])=>t)}setUpSubscriptions(t,e){for(const n of Object.keys(t))t[n].listener=r=>t[n].call(e,r),this.on(n,t[n].listener)}tearDownSubscriptions(t){for(const e of Object.keys(t))this.off(e,t[e].listener)}broadcast(t,e){this.roomChannel.push("new_msg",{event:t,payload:e})}}function R(t){const e=function(t){return("0"+t.toString(16)).substr(-2)};let n=new Uint8Array((t||40)/2);return window.crypto.getRandomValues(n),Array.from(n,e).join("")}function D(t){var e,n,r=0;if(0===t.length)return r;for(e=0;et){const r=(this.time[n+1]-this.time[n])/t-1,i=(this.x[n+1]-this.x[n])/(r+1),o=(this.y[n+1]-this.y[n])/(r+1),a=e.mt_time.length-1;for(let n=0;nt&&this.onGaze(t)),q.begin()}onGaze(t){this.deaf||(this.time.push(Date.now()-this.startTime),this.x.push(t.x-this.originX),this.y.push(t.y-this.originY))}start(t,e){t&&e&&(this.originX=t,this.originY=e),this.time=[],this.x=[],this.y=[],this.startTime=Date.now(),this.resume()}pause(){q&&q.pause()}resume(){if(!q)throw new Error("Could not find webgazer");q.resume()}setDebug(t){q.showVideoPreview(t),q.showPredictionPoints(t)}setDeaf(t){this.deaf=t}getEyeTrack(t=15){const e={et_time:[],et_x:[],et_y:[],et_start_time:this.startTime};for(let n=0;nt){const r=(this.time[n+1]-this.time[n])/t-1,i=(this.x[n+1]-this.x[n])/(r+1),o=(this.y[n+1]-this.y[n])/(r+1),a=e.et_time.length-1;for(let n=0;n{const e=new Proxy(()=>e,{get:(n,r)=>(t&&t(),"valueOf"===r||"toString"===r||r===Symbol.toPrimitive?()=>"":e)});return e};class K extends a.a{get validators(){return $}get v(){return $}constructor(t){super(),this.experiment={},this.id=t.experimentId,this.serverUrl=t.serverUrl,this.submissionUrl=this.serverUrl+("/"===this.serverUrl[this.serverUrl.length-1]?"":"/")+"api/submit_experiment/"+this.id,this.validateSubmission=t=>!0,this.completionUrl=t.completionUrl,this.contactEmail=t.contactEmail,this.mode=t.mode,this.debug="debug"===t.mode,this.socketUrl=t.socketUrl,this.socket=t.socketUrl?new M(t.experimentId,t.socketUrl,this.onSocketError):Y(()=>this.warning="You are making use of Socket functionality, but no socket URL is set in magpie.config.js"),this.trialData=window.magpie_trial_data={},this.expData=window.magpie_exp_data={},this.progress=-1,this.mousetracking=new V,this.eyetracking=new H,this.currentScreenIndex=0,this.currentSlideIndex=0,this.responseTimeStart=Date.now(),this.measurements={},this.validateMeasurements={},this.timers={},this.warning=null,console.log("magpie "+W.version),console.log("Experiment id: "+this.id),console.log("Server: "+this.serverUrl),console.log("Submission URL: "+this.submissionUrl),console.log("Mode: "+this.mode),console.log("Completion URL: "+this.completionUrl),console.log("magpie_trial_data = ",this.trialData),console.log("magpie_exp_data = ",this.expData),s["default"].observable(this),"prolific"===this.mode&&this.extractProlificData(),this.addExpData({experiment_start_time:Date.now()}),"debug"===this.mode&&(window.onunhandledrejection=t=>{this.warning=t.reason},window.onerror=function(t){this.warning=t})}nextSlide(t){"number"!==typeof t?this.currentSlideIndex++:this.currentSlideIndex=t}nextScreen(t){if("number"===typeof t)this.currentScreenIndex=t;else if("string"===typeof t){const e=this.experiment.$slots.default,n=e.filter(t=>!!t.componentOptions).findIndex(e=>e.componentOptions.propsData.label===t);if(-1===n)throw new Error('Could not find screen with label "'+t+'"');this.currentScreenIndex=n}else this.currentScreenIndex+=1;this.currentSlideIndex=0,this.measurements={},this.currentVarsData={},this.socket.state!==j.CONNECTED&&this.socket.state!==j.READY||this.socket.setCurrentScreen(this.currentScreenIndex),this.responseTimeStart=Date.now(),this.experiment.scrollToTop(),this.mousetracking.start(),this.eyetracking.pause()}saveAndNextScreen(t){this.saveMeasurements(),this.nextScreen(t)}addTrialData(t){this.trialData[this.currentScreenIndex]||(this.trialData[this.currentScreenIndex]=[]),this.trialData[this.currentScreenIndex].push({responseTime:Date.now()-this.responseTimeStart,...t})}addExpData(t){Object.assign(this.expData,t)}saveMeasurements(){this.addTrialData({responseTime:Date.now()-this.responseTimeStart,...this.measurements})}onSocketError(t){console.error(t)}getAllData(){return J({...this.expData,experiment_end_time:Date.now(),experiment_duration:Date.now()-this.expData.experiment_start_time,...(this.socket.state===j.CONNECTED||this.socket.state===j.READY)&&{participantId:this.socket.participantId},...(this.socket.state===j.CONNECTED||this.socket.state===j.READY)&&{groupLabel:this.socket.groupLabel},trials:X(z()(Object.values(this.trialData)).map(t=>Object.assign({},Object.fromEntries(Object.entries(t).filter(([,t])=>"function"!==typeof t)))))})}submit(){if(!this.submissionUrl)throw new Error("No submission URL set");const t=this.getAllData();if(!this.validateSubmission(t))throw new Error("Submission failed validation");return this.submitResults(this.submissionUrl,t)}submitIntermediateResults(){if(!this.submissionUrl)throw new Error("No submission URL set");return this.submitResults(this.submissionUrl,this.getAllData(),!0)}async submitResults(t,e,n){if(this.socket.state===j.CONNECTED||this.socket.state===j.READY)try{const t=n?"save_intermediate_results":"submit_results";return await new Promise((n,r)=>this.socket.participantChannel.push(t,{results:e}).receive("ok",n).receive("error",r))}catch(el){if(n)throw el;console.log("Submission via magpie socket failed, trying HTTP")}const r=await fetch(t,{method:"POST",mode:"cors",headers:{"Content-type":"application/json"},body:JSON.stringify(e)});if(!r.ok)throw new Error("The server says: "+await r.text())}setProgress(t){this.progress=t}extractProlificData(){const t=new URL(window.location);this.addExpData({prolific_pid:t.searchParams.get("PROLIFIC_PID"),prolific_study_id:t.searchParams.get("STUDY_ID"),prolific_session_id:t.searchParams.get("SESSION_ID")})}}const X=function(t){for(var e=[],n=0;n({})},imageAssets:{type:Array,default(){return[]}},audioAssets:{type:Array,default(){return[]}},videoAssets:{type:Array,default(){return[]}},validateSubmission:{type:Function,default(){return()=>!0}}},data(){return{currentScreenComponent:{}}},created(){if(this.$parent.magpie=new K(this.$options.magpie),this.$magpie.experiment=this,window.$magpie=this.$magpie,this.$magpie.socketUrl){let t=0;this.$watch("$magpie.socket.participants",e=>{const n=this.$slots.default.filter(t=>!!t.componentOptions);e.length-t<0&&n.length-1!==this.$magpie.currentScreenIndex&&(window.alert(this.$t("interactive.general.aborted")),this.$magpie.nextScreen(n.length-1)),t=e.length})}this.title&&(document.title=this.title),this.imageAssets.forEach(t=>{const e=document.createElement("link");e.href=t,e.rel="preload",e.as="image",document.head.appendChild(e)}),this.audioAssets.forEach(t=>{const e=document.createElement("link");e.href=t,e.rel="preload",e.as="audio",document.head.appendChild(e)}),this.videoAssets.forEach(t=>{const e=document.createElement("link");e.href=t,e.rel="preload",e.as="video",document.head.appendChild(e)}),this.$magpie.validateSubmission=this.validateSubmission,this.$magpie.addExpData(this.recordData),window.addEventListener("beforeunload",t=>{t.preventDefault()})},mounted(){this.$el.addEventListener("mousemove",t=>this.$magpie.mousetracking.onMouseMove(t))},methods:{scrollToTop(){const t=this.$el.getBoundingClientRect();window.scrollTo(0,window.scrollY+t.top)}},render(t){const e=this.$slots.default,n=e?e.filter(t=>!!t.componentOptions)[this.$magpie.currentScreenIndex]:null;return n.key=this.$magpie.currentScreenIndex,t("div",{class:"experiment"+(this.wide?" wide":"")},[t("div",{class:"header"},[t("div",{class:"col title"},this.$slots.title),t("div",{class:"col status"},[-1!==this.$magpie.progress?t(et.a,{props:{percent:100*this.$magpie.progress,showText:!1,lineHeight:10},style:{width:"150px"}}):null])]),n])}},rt=nt,it=(n("2e66"),n("2877")),ot=n("28a2"),at=n.n(ot),st=Object(it["a"])(rt,Z,Q,!1,null,null,null);"function"===typeof at.a&&at()(st);var ut,ct,lt=st.exports,ft=n("1dce"),ht=function(){var t=this,e=t._self._c;return e("div",{staticClass:"debug-statement"},[e("h2",[t._v("magpie "+t._s(t.type))]),t._v(" "+t._s(t.text)+" ")])},dt=[],pt={name:"DebugStatement",props:{text:{type:String,required:!0},type:{type:String,default:"info"}}},vt=pt,gt=(n("4904"),Object(it["a"])(vt,ht,dt,!1,null,"5a63c536",null)),mt=gt.exports,yt={name:"Screen",mixins:[ft["validationMixin"]],props:{title:{type:String,required:!1,default:""},progress:{type:Number,default:-1},label:{type:String,default:""},validations:{type:Object,default(){return{}}}},data(){return{measurements:{}}},watch:{"$magpie.measurements":{handler(){this.measurements=this.$magpie.measurements,this.$v.measurements.$touch()},deep:!0}},beforeMount(){this.$magpie.setProgress(this.progress)},mounted(){this.$magpie.validateMeasurements=this.$v.measurements,this.$magpie.mousetracking.start()},validations(){return{measurements:this.validations}},render(t){const e=this.$slots.default;if(!e)return t("div",{class:"screen"},[this.title?t("h2",this.title):null]);let n;const r=e.filter(t=>!!t.componentOptions);return r.length&&r.every(t=>"Slide"===t.componentOptions.tag)?n=r[this.$magpie.currentSlideIndex]:(n=this.$slots.default,r.some(t=>"Slide"===t.componentOptions.tag)&&(this.$magpie.warning="This screen received mixed contents. Either provide only elements inside your or provide the contents of the first and only slide directly.")),n.key=this.$magpie.currentSlideIndex,t("div",{class:"screen"},[this.title?t("h2",this.title):null,n,this.$magpie.warning?t(mt,{props:{text:this.$magpie.warning,type:"warning"}}):null])}},bt=yt,_t=(n("50f7"),n("3d7b")),wt=n.n(_t),xt=Object(it["a"])(bt,ut,ct,!1,null,"2db71145",null);"function"===typeof wt.a&&wt()(xt);var St=xt.exports,kt=function(){var t=this,e=t._self._c;return e("div",[t._t("default")],2)},Ct=[],Ot={name:"Slide"},Pt=Ot,Tt=Object(it["a"])(Pt,kt,Ct,!1,null,null,null),At=Tt.exports,Et=function(){var t=this,e=t._self._c;return e("div",{staticClass:"completion"},[e("div",{staticClass:"question"},t._l(t.slices,(function(n,r){return e("span",{key:r},[t._v(t._s(n)+" "),r!==t.slices.length-1?e("select",{directives:[{name:"model",rawName:"v-model",value:t.answers[r],expression:"answers[i]"}],on:{change:[function(e){var n=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){var e="_value"in t?t._value:t.value;return e}));t.$set(t.answers,r,e.target.multiple?n:n[0])},function(e){t.$emit("update:response",t.fullAnswer),t.$emit("update:responses",t.answers)}]}},t._l(t.options[r],(function(n){return e("option",{key:n,domProps:{textContent:t._s(n)}})})),0):t._e()])})),0)])},jt=[],Mt={name:"CompletionInput",props:{text:{type:String,required:!0},options:{type:Array,required:!0}},data(){return{answers:[]}},computed:{slices(){return this.text.split("%s")},fullAnswer(){const t=this.answers.slice();return this.text.split("%s").map(e=>e+(t.shift()||"")).join("")}}},Rt=Mt,Dt=(n("d8c8"),n("c0e4")),It=n.n(Dt),Lt=Object(it["a"])(Rt,Et,jt,!1,null,"20ec9a19",null);"function"===typeof It.a&&It()(Lt);var $t=Lt.exports,Nt=function(){var t=this,e=t._self._c;return e("div",{staticClass:"dropdown-input"},[e("select",{ref:"input",on:{change:function(e){return t.$emit("update:response",t.$refs.input.value)}}},t._l(t.options,(function(n){return e("option",{key:n,domProps:{value:n,textContent:t._s(n)}})})),0)])},Ft=[],Ut={name:"DropdownInput",props:{options:{type:Array,required:!0}}},Bt=Ut,Gt=n("6b80"),zt=n.n(Gt),Vt=Object(it["a"])(Bt,Nt,Ft,!1,null,"6fb3df0e",null);"function"===typeof zt.a&&zt()(Vt);var Wt=Vt.exports,qt=function(){var t=this,e=t._self._c;return e("div",{staticClass:"forced_choice"},[e("div",{staticClass:"options"},t._l(t.options,(function(n){return e("div",{key:n,staticClass:"option",on:{click:function(e){return t.onOptionClick(n)}}},[t._v(" "+t._s(n)+" ")])})),0)])},Ht=[],Yt={name:"ForcedChoiceInput",props:{options:{type:Array,required:!0}},methods:{onOptionClick(t){this.$emit("update:response",t)}}},Kt=Yt,Xt=(n("9cdf"),n("8284")),Jt=n.n(Xt),Zt=Object(it["a"])(Kt,qt,Ht,!1,null,"0428af94",null);"function"===typeof Jt.a&&Jt()(Zt);var Qt=Zt.exports,te=function(){var t=this,e=t._self._c;return e("div",{staticClass:"image_selection"},[e("div",{staticClass:"options"},t._l(t.options,(function(n){return e("div",{key:n.label,staticClass:"option",on:{click:function(e){return t.onOptionClick(n.label)}}},[e("img",{attrs:{src:n.src,alt:n.label},on:{click:function(e){return t.onOptionClick(n.label)}}})])})),0)])},ee=[],ne={name:"ImageSelectionInput",props:{options:{type:Array,required:!0}},methods:{onOptionClick(t){this.$emit("update:response",t)}}},re=ne,ie=(n("f2e3"),n("23dc")),oe=n.n(ie),ae=Object(it["a"])(re,te,ee,!1,null,"36baf217",null);"function"===typeof oe.a&&oe()(ae);var se=ae.exports,ue=function(){var t=this,e=t._self._c;return e("div",{staticClass:"keypress"},[t.showOptions?e("div",{staticClass:"options"},t._l(t.keys,(function(n,r){return e("span",{key:r},[e("strong",{domProps:{textContent:t._s(r)}}),t._v(" = "+t._s(n)+" ")])})),0):t._e()])},ce=[],le={name:"KeypressInput",props:{keys:{type:Object,required:!0},showOptions:{type:Boolean,default:!0}},mounted(){window.document.addEventListener("keydown",this.onKeyDown)},destroyed(){window.document.removeEventListener("keydown",this.onKeyDown)},methods:{onKeyDown(t){"undefined"!==typeof this.keys[t.key]&&(t.preventDefault(),this.$emit("update:response",this.keys[t.key]))}}},fe=le,he=n("66f3"),de=n.n(he),pe=Object(it["a"])(fe,ue,ce,!1,null,"6de4318b",null);"function"===typeof de.a&&de()(pe);var ve=pe.exports,ge=function(){var t=this,e=t._self._c;return e("div",{staticClass:"rating"},[e("form",[e("div",{staticClass:"options"},[e("div",{staticClass:"left"},[t._v(t._s(t.left))]),t._l(t.count,(function(n){return e("label",{key:n},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.answers[n],expression:"answers[i]"}],attrs:{type:"radio",name:"rating"},domProps:{checked:t._q(t.answers[n],null)},on:{input:function(e){return t.$emit("update:response",n)},change:function(e){return t.$set(t.answers,n,null)}}}),t._v(" "+t._s(n))])})),e("div",{staticClass:"right"},[t._v(t._s(t.right))])],2)])])},me=[],ye={name:"RatingInput",props:{count:{type:Number,default:7},left:{type:String,optional:!0,default:""},right:{type:String,optional:!0,default:""}},data(){const t={};for(let e=1;e[]},orientation:{type:String,default:"vertical"},labels:{type:Boolean,default:!0},randomize:{type:Boolean,default:!1}},data(){let t=Object.keys(this.options);return this.randomize&&(t=We()(t)),{order:t}},methods:{onOptionClick(t){this.$emit("update:response",t)}}},He=qe,Ye=(n("2bef"),n("676b")),Ke=n.n(Ye),Xe=Object(it["a"])(He,Ge,ze,!1,null,"f03be8e0",null);"function"===typeof Ke.a&&Ke()(Xe);var Je=Xe.exports,Ze=function(){var t=this,e=t._self._c;return e("div",{staticClass:"matrix-choice"},[e("div",{staticClass:"row header"},[e("p"),e("div",t._l(t.options,(function(n){return e("label",{key:n,domProps:{textContent:t._s(n)}})})),0)]),t.randomize?[t._l(t.randomizedQuestions,(function([n,r]){return[e("div",{key:r,staticClass:"row"},[e("p",[t._v(t._s(n))]),e("MultipleChoiceInput",{attrs:{labels:!1,options:t.options,orientation:"horizontal"},on:{"update:response":function(e){return t.onOptionClick(r,e)}}})],1)]}))]:[t._l(t.questions,(function(n,r){return[e("div",{key:r,staticClass:"row"},[e("p",[t._v(t._s(n))]),e("MultipleChoiceInput",{attrs:{labels:!1,options:t.options,orientation:"horizontal"},on:{"update:response":function(e){return t.onOptionClick(r,e)}}})],1)]}))],e("div",{staticClass:"row header"},[e("p"),e("div",t._l(t.options,(function(n){return e("label",{key:n,domProps:{textContent:t._s(n)}})})),0)])],2)},Qe=[],tn={name:"MultipleChoiceMatrixInput",components:{MultipleChoiceInput:Je},props:{questions:{type:Array,required:!0},options:{type:Array,required:!0},randomize:{type:Boolean,default:!1}},data(){return{responses:[],randomizedQuestions:We()(this.questions.map((t,e)=>[t,e]))}},methods:{onOptionClick(t,e){s["default"].set(this.responses,t,e),this.$emit("update:responses",this.responses)}}},en=tn,nn=(n("8ae6"),n("cfe5")),rn=n.n(nn),on=Object(it["a"])(en,Ze,Qe,!1,null,null,null);"function"===typeof rn.a&&rn()(on);var an=on.exports,sn=function(){var t=this,e=t._self._c;return e("div",{staticClass:"slider"},[e("div",{staticClass:"slider-element"},[e("div",{staticClass:"left"},[t._v(t._s(t.left))]),e("Slider",{staticClass:"slider",attrs:{tooltip:t.tooltip?"always":"none",min:t.min,max:t.max,interval:t.interval,"enable-cross":!1,process:t.process},model:{value:t.value,callback:function(e){t.value=e},expression:"value"}}),e("div",{staticClass:"right"},[t._v(t._s(t.right))])],1)])},un=[],cn={name:"SliderRangesInput",components:{Slider:Pe.a},props:{left:{type:String,optional:!0,default:""},right:{type:String,optional:!0,default:""},initial:{type:Number,optional:!0,default:0},min:{type:Number,optional:!0,default:0},max:{type:Number,optional:!0,default:100},interval:{type:Number,optional:!0,default:1},tooltip:{type:Boolean,optional:!0,default:!1},ranges:{type:Array,required:!0}},data(){return{value:this.ranges.slice(1).map((t,e)=>Math.round((e+1)*(this.max/this.ranges.length))),process:t=>[[this.min,t[0],this.ranges[0]]].concat(t.map((e,n)=>[e,t[n+1]||this.max,this.ranges[n+1]])).map(([t,e,n])=>[t,e,{background:fn(n,hn)}])}},computed:{rangeValues(){return this.value.map((t,e)=>t-(this.value[e-1]||this.min)).concat([this.max-this.value[this.value.length-1]])},responses(){return[this.min].concat(this.value).concat[this.max]}},watch:{value(){this.$emit("update:responses",this.responses),this.$emit("update:rangeValues",this.rangeValues)}},mounted(){this.$emit("update:responses",this.responses),this.$emit("update:rangeValues",this.rangeValues)}};function ln(t){var e,n,r=0;if(0===t.length)return r;for(e=0;e0?e("TimerStop",{attrs:{id:"responseTime"},on:{"update:time":function(e){t.responseTimes.push(e),n===t.targets.length&&r()}}}):t._e(),e("TimerStart",{attrs:{id:"responseTime"}}),-1!==t.responseTimeLimit?e("Wait",{attrs:{time:t.responseTimeLimit},on:{done:function(e){t.timeout=!0}}}):t._e(),e("KeypressInput",{attrs:{keys:{[t.leftKey]:"left",[t.rightKey]:"right"},"show-options":t.showKeypressOptions},on:{"update:response":function(e){t.correct=t.targets[n]===t.getOption(e,n),t.responses.push(t.getOption(e,n)),r()}}}),e("div",{staticClass:"options"},[e("div",{staticClass:"option"},[t._v(" "+t._s(t.getLeftOption(n))+" ")]),e("div",{staticClass:"option"},[t._v(" "+t._s(t.getRightOption(n))+" ")])])]:[e("TimerStop",{attrs:{id:"responseTime"},on:{"update:time":function(e){return t.responseTimes.push(e)}}}),e("Wait",{attrs:{time:0},on:{done:t.end}})]]}}])})],1)},An=[],En=function(){var t=this,e=t._self._c;return e("div",{staticClass:"serial_input"},[e("div",{key:t.i,staticClass:"slice"},[t._t("default",(function(){return[t._v(" No template defined. ")]}),{i:t.i,iterations:t.iterations,record:(e,n)=>t.$magpie.measurements[e]&&t.$magpie.measurements[e].length?t.$magpie.measurements[e].push(n):t.$magpie.measurements[e]=[n],next:()=>t.i++})],2)])},jn=[],Mn={name:"SerialInput",props:{iterations:{type:Number,required:!0}},data(){return{i:0}},watch:{i(){this.i>=this.iterations&&this.$emit("end")}}},Rn=Mn,Dn=n("9315"),In=n.n(Dn),Ln=Object(it["a"])(Rn,En,jn,!1,null,null,null);"function"===typeof In.a&&In()(Ln);var $n=Ln.exports,Nn=function(){var t=this,e=t._self._c;return e("span")},Fn=[],Un={name:"TimerStop",props:{id:{type:String,required:!0}},mounted(){this.$emit("update:time",Date.now()-this.$magpie.timers[this.id])}},Bn=Un,Gn=n("04d3"),zn=n.n(Gn),Vn=Object(it["a"])(Bn,Nn,Fn,!1,null,"51fb0e4e",null);"function"===typeof zn.a&&zn()(Vn);var Wn=Vn.exports,qn=function(){var t=this,e=t._self._c;return e("span")},Hn=[],Yn={name:"TimerStart",props:{id:{type:String,required:!0}},mounted(){this.$magpie.timers[this.id]=Date.now()}},Kn=Yn,Xn=n("bc0d"),Jn=n.n(Xn),Zn=Object(it["a"])(Kn,qn,Hn,!1,null,"87863ff4",null);"function"===typeof Jn.a&&Jn()(Zn);var Qn=Zn.exports,tr=n("2ef0"),er=n.n(tr),nr=function(){var t=this,e=t._self._c;return e("span")},rr=[],ir={name:"Wait",props:{time:{required:!0,type:Number}},data(){return{timeout:null}},watch:{time(){this.$el&&this.set()}},mounted(){this.set()},updated(){this.set()},activated(){this.set()},deactivated(){this.timeout&&clearTimeout(this.timeout)},beforeDestroy(){this.timeout&&clearTimeout(this.timeout)},methods:{set(){this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(()=>this.$emit("done"),this.time)}}},or=ir,ar=n("5c5c"),sr=n.n(ar),ur=Object(it["a"])(or,nr,rr,!1,null,"16ed3190",null);"function"===typeof sr.a&&sr()(ur);var cr=ur.exports,lr={name:"MazeInput",components:{Wait:cr,TimerStart:Qn,TimerStop:Wn,SerialInput:$n,KeypressInput:ve},props:{targets:{type:Array,required:!0},competitors:{type:Array,required:!0},leftKey:{type:String,default:"f"},rightKey:{type:String,default:"j"},showKeypressOptions:{type:Boolean,default:!0},responseTimeLimit:{type:Number,default:-1}},data(){const t=this.targets.length,e=er.a.map(er.a.range(t),()=>er.a.random());return{responseTimes:[],responses:[],targetOnLeft:e,targetPositions:e.map(t=>t?"left":"right"),timeout:!1,correct:!0}},methods:{getLeftOption(t){return 1===this.targetOnLeft[t]?this.targets[t]:this.competitors[t]},getRightOption(t){return 0===this.targetOnLeft[t]?this.targets[t]:this.competitors[t]},getOption(t,e){return"left"===t?this.getLeftOption(e):this.getRightOption(e)},end(){this.$emit("update:response-times",this.responseTimes),this.$emit("update:responses",this.responses),this.$emit("update:target-positions",this.targetPositions),this.$emit("update:correct",this.correct),this.$emit("update:timeout",this.timeout),this.$emit("end")}}},fr=lr,hr=(n("46c5"),n("9cff")),dr=n.n(hr),pr=Object(it["a"])(fr,Tn,An,!1,null,"e124492a",null);"function"===typeof dr.a&&dr()(pr);var vr=pr.exports,gr=function(){var t=this,e=t._self._c;return e("div",[e("SerialInput",{attrs:{iterations:t.chunks.length+2},on:{end:t.end},scopedSlots:t._u([{key:"default",fn:function({i:n,next:r}){return[t.timeout?[e("TimerStop",{attrs:{id:"responseTime"},on:{"update:time":function(e){return t.responseTimes.push(e)}}}),e("Wait",{attrs:{time:0},on:{done:t.end}})]:[n>1?e("TimerStop",{attrs:{id:"responseTime"},on:{"update:time":function(e){t.responseTimes.push(e),n>t.chunks.length&&r()}}}):t._e(),n>0?e("TimerStart",{attrs:{id:"responseTime"}}):t._e(),e("KeypressInput",{attrs:{keys:{[t.trigger]:t.instructions},"show-options":t.showKeypressOptions},on:{"update:response":r}}),-1!==t.responseTimeLimit&&n>1?e("Wait",{attrs:{time:t.responseTimeLimit},on:{done:function(e){t.timeout=!0}}}):t._e(),e("div",{class:{text:!0,"underline-words":"words"===t.underline,"underline-sentence":"sentence"===t.underline,"show-all":"next"===t.wordPos}},t._l(t.chunks,(function(r,i){return e("span",{key:i,class:{current:n-1===i},domProps:{textContent:t._s(r)}})})),0)]]}}])})],1)},mr=[],yr={name:"SelfPacedReadingInput",components:{Wait:cr,TimerStart:Qn,TimerStop:Wn,SerialInput:$n,KeypressInput:ve},props:{chunks:{type:Array,required:!0},instructions:{type:String,default:"Press SPACE to reveal the words."},trigger:{type:String,default:" "},underline:{type:String,default:"none"},wordPos:{type:String,default:"same"},showKeypressOptions:{type:Boolean,default:!0},responseTimeLimit:{type:Number,default:-1}},data(){return{responseTimes:[],timeout:!1}},methods:{end(){this.$emit("update:response-times",this.responseTimes),this.$emit("update:timeout",this.timeout),this.$emit("end")}}},br=yr,_r=(n("6041"),n("0155")),wr=n.n(_r),xr=Object(it["a"])(br,gr,mr,!1,null,"752e72bd",null);"function"===typeof wr.a&&wr()(xr);var Sr=xr.exports,kr=function(){var t=this,e=t._self._c;return e("div",[t._t("presentation",(function(){return[e("p",[t._v(t._s(t.chunks[t.position]))])]}),{chunk:t.chunks[t.position]}),t.position=this.chunks.length&&this.$emit("end")}}},Pr=Or,Tr=n("c0f2"),Ar=n.n(Tr),Er=Object(it["a"])(Pr,kr,Cr,!1,null,null,null);"function"===typeof Ar.a&&Ar()(Er);var jr=Er.exports,Mr=function(){var t=this,e=t._self._c;return e("CanvasStage",{attrs:{config:{width:800,height:400}}},[e("CanvasLayer",[e("CanvasShape",{attrs:{config:{sceneFunc:function(e,n){e.beginPath(),e.moveTo(t.x-25,t.y-25),e.lineTo(t.x+25,t.y+25),e.moveTo(t.x+25,t.y-25),e.lineTo(t.x-25,t.y+25),e.closePath(),e.strokeShape(n)},strokeWidth:1,stroke:"black"}}})],1)],1)},Rr=[],Dr={name:"FixationCross",props:{x:{type:Number,default:425},y:{type:Number,default:200}}},Ir=Dr,Lr=n("0435"),$r=n.n(Lr),Nr=Object(it["a"])(Ir,Mr,Rr,!1,null,null,null);"function"===typeof $r.a&&$r()(Nr);var Fr=Nr.exports,Ur=function(){var t=this,e=t._self._c;return e("div",{staticClass:"chat"},[e("div",{ref:"box",staticClass:"chat-box"},t._l(t.messages,(function(n,r){return e("p",{key:r,class:{message:"message"===n.event,userEvent:"join"===n.event||"leave"===n.event,me:n.participantId===t.$magpie.socket.participantId},style:{...n.message&&{background:t.$magpie.socket.getParticipantColor(n.participantId)},...!n.message&&{color:t.$magpie.socket.getParticipantColor(n.participantId)}},domProps:{textContent:t._s(n.message||(n.participantId===t.$magpie.socket.participantId?"join"===n.event?t.$t("interactive.Chat.statusYouJoined"):"leave"===n.event?t.$t("interactive.Chat.statusYouLeft"):"":"join"===n.event?t.$t("interactive.Chat.statusParticipantJoined",{user:t.$magpie.socket.getParticipantName(n.participantId)}):"leave"===n.event?t.$t("interactive.Chat.statusParticipantLeft",{user:t.$magpie.socket.getParticipantName(n.participantId)}):""))}})})),0),e("div",{staticClass:"chat-input"},[e("textarea",{ref:"text",attrs:{cols:"50",placeholder:t.$t("interactive.Chat.messageLabel")},on:{keydown:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:(e.preventDefault(),t.send.apply(null,arguments))}}}),e("button",{on:{click:function(e){return e.stopPropagation(),t.send()}}},[t._v(t._s(t.$t("general.send")))])])])},Br=[],Gr=n("ceac"),zr=n.n(Gr);const Vr="$magpie.chat_message";var Wr={name:"Chat",props:{participantLabel:{type:String,default:null}},data(){return{messages:[],interval:null}},socket:{[Vr](t){this.messages.push(t),s["default"].nextTick(()=>{this.$refs.box.scrollTop=this.$refs.box.scrollHeight}),this.$emit("update:messages",this.messages.filter(t=>"message"===t.event)),this.$emit("update:data",this.flattenData(this.messages.filter(t=>"message"===t.event)))}},watch:{["$magpie.socket.active"](t,e){const n=zr()(t,e),r=zr()(e,t);r.forEach(t=>{this.messages.push({time:Date.now(),participantId:t,event:"leave",message:""})}),n.forEach(t=>{this.messages.push({time:Date.now(),participantId:t,event:"join",message:""})})}},mounted(){this.$magpie.socket.active.forEach(t=>{this.messages.push({time:Date.now(),participantId:t,event:"join",message:""})})},EVENT_CHAT_MESSAGE:Vr,methods:{send(){const t=this.$refs.text.value;t&&(this.$magpie.socket.broadcast(Vr,{event:"message",message:t,participantId:this.$magpie.socket.participantId,participantLabel:this.participantLabel,time:Date.now()}),this.$refs.text.value="",this.$refs.text.focus())},flattenData(t){return{chatMessage:t.map(t=>t.message),chatParticipantId:t.map(t=>t.participantId),chatParticipantLabel:t.map(t=>t.participantId),chatTime:t.map(t=>t.time)}}}},qr=Wr,Hr=(n("be87"),n("fb49")),Yr=n.n(Hr),Kr=Object(it["a"])(qr,Ur,Br,!1,null,null,null);"function"===typeof Yr.a&&Yr()(Kr);var Xr=Kr.exports,Jr=function(){var t=this,e=t._self._c;return e("span")},Zr=[],Qr={name:"WaitForParticipants",props:{number:{type:Number,required:!0}},watch:{["$magpie.socket.active"](){this.$magpie.socket.active.length===this.number&&this.$emit("done")}},mounted(){this.$magpie.socket.active.length===this.number&&this.$emit("done")}},ti=Qr,ei=n("969e"),ni=n.n(ei),ri=Object(it["a"])(ti,Jr,Zr,!1,null,null,null);"function"===typeof ni.a&&ni()(ri);var ii=ri.exports,oi=function(){var t=this,e=t._self._c;return e("Screen",t._b({},"Screen",{...t.$attrs,...t.$props},!1),[t.pauseTime?e("Slide",[t.qud?e("p",{domProps:{textContent:t._s(t.qud)}}):t._e(),e("Wait",{key:"pause-timer",attrs:{time:t.pauseTime},on:{done:function(e){return t.$magpie.nextSlide()}}})],1):t._e(),t.fixationTime?e("Slide",[t.qud?e("p",{domProps:{textContent:t._s(t.qud)}}):t._e(),t._t("fixation",(function(){return[e("FixationCross")]})),-1!==t.fixationTime?e("Wait",{key:"fixation-timer",attrs:{time:t.fixationTime},on:{done:function(e){return t.$magpie.nextSlide()}}}):t._e()],2):t._e(),t.stimulusTime?e("Slide",[t.qud?e("p",{domProps:{textContent:t._s(t.qud)}}):t._e(),t._t("stimulus"),-1!==t.stimulusTime?e("Wait",{key:"stimulus-timer",attrs:{time:t.stimulusTime},on:{done:function(e){return t.$magpie.nextSlide()}}}):t._e()],2):t._e(),e("Slide",[t.qud?e("p",{domProps:{textContent:t._s(t.qud)}}):t._e(),t.stimulusTime?t._e():t._t("stimulus"),t._t("task"),t.responseTimeLimit?e("Wait",{attrs:{time:t.responseTimeLimit},on:{done:t.nextAfterTimeout}}):t._e(),e("Record",{attrs:{data:{...t.qud&&{qud:t.qud},...t.responseTimeLimit&&{responseTimeout:!1},...t.pauseTime&&{pauseTime:t.pauseTime},...t.fixationTime&&{fixationTime:t.fixationTime},...t.stimulusTime&&{stimulusTime:t.stimulusTime},...t.responseTimeLimit&&{responseTimeLimit:t.responseTimeLimit},...t.feedbackTime&&{feedbackTime:t.feedbackTime}}}}),e("ResponseTimeStart")],2),t.feedbackTime?e("Slide",[t.qud?e("p",{domProps:{textContent:t._s(t.qud)}}):t._e(),t._t("feedback"),t.feedbackTime>0?e("Wait",{attrs:{time:t.feedbackTime},on:{done:function(e){return t.$magpie.nextScreen()}}}):t._e()],2):t._e()],1)},ai=[],si=function(){var t=this,e=t._self._c;return e("span")},ui=[],ci={name:"ResponseTimeStart",mounted(){this.$magpie.responseTimeStart=Date.now()}},li=ci,fi=n("f88f"),hi=n.n(fi),di=Object(it["a"])(li,si,ui,!1,null,"18fe891b",null);"function"===typeof hi.a&&hi()(di);var pi=di.exports,vi=function(){var t=this,e=t._self._c;return e("span")},gi=[],mi={name:"Record",props:{data:{type:Object,required:!0},global:{type:Boolean,default:!1}},mounted(){this.global?this.$magpie.addExpData(this.data):Object.keys(this.data).forEach(t=>{"undefined"!==typeof this.data[t]&&s["default"].set(this.$magpie.measurements,t,this.data[t])})}},yi=mi,bi=n("ae6f"),_i=n.n(bi),wi=Object(it["a"])(yi,vi,gi,!1,null,"36ef7edc",null);"function"===typeof _i.a&&_i()(wi);var xi=wi.exports,Si={name:"LifecycleScreen",components:{Record:xi,ResponseTimeStart:pi,Wait:cr,FixationCross:Fr,Slide:At,Screen:St},props:{qud:{type:String,default:""},pauseTime:{type:Number,default:0},fixationTime:{type:Number,default:0},stimulusTime:{type:Number,default:0},responseTimeLimit:{type:Number,default:0},feedbackTime:{type:Number,default:0}},methods:{nextAfterResponse(){this.$props.feedbackTime?(this.$magpie.saveMeasurements(),this.$magpie.nextSlide()):this.$magpie.saveAndNextScreen()},nextAfterTimeout(){this.$props.responseTimeLimit&&(this.$magpie.measurements.responseTimeout=!0),this.nextAfterResponse()}}},ki=Si,Ci=n("b8cd"),Oi=n.n(Ci),Pi=Object(it["a"])(ki,oi,ai,!1,null,"d32534da",null);"function"===typeof Oi.a&&Oi()(Pi);var Ti=Pi.exports,Ai=function(){var t=this,e=t._self._c;return e("Screen",t._b({},"Screen",{...t.$attrs,...t.$props},!1),[t._t("default",(function(){return[t._v(" "+t._s(t.$t("screens.ConnectInteractiveScreen.description"))+" ")]}))],2)},Ei=[],ji={name:"ConnectInteractiveScreen",components:{Screen:St},props:{},watch:{"$magpie.socket.state":function(t){t===j.READY&&this.$magpie.nextScreen()}},mounted(){this.$magpie.socket.initialize(),this.$magpie.socket.state===j.READY&&this.$magpie.nextScreen()}},Mi=ji,Ri=n("43c6"),Di=n.n(Ri),Ii=Object(it["a"])(Mi,Ai,Ei,!1,null,null,null);"function"===typeof Di.a&&Di()(Ii);var Li=Ii.exports,$i=function(){var t=this,e=t._self._c;return e("Screen",t._b({},"Screen",{...t.$attrs,...t.$props},!1),[t._t("default",(function(){return[t._v(" "+t._s(t.$t("screens.AwaitIteratedResultScreen.description"))+" ")]}))],2)},Ni=[],Fi={name:"AwaitIteratedResultScreen",components:{Screen:St},props:{},watch:{"$magpie.socket.iteratedState":function(){this.$magpie.socket.iteratedState===j.READY&&this.$magpie.nextScreen()}},mounted(){this.$magpie.socket.initialize(),this.$magpie.socket.iteratedState===j.READY&&this.$magpie.nextScreen()}},Ui=Fi,Bi=n("5f89"),Gi=n.n(Bi),zi=Object(it["a"])(Ui,$i,Ni,!1,null,null,null);"function"===typeof Gi.a&&Gi()(zi);var Vi=zi.exports,Wi=function(){var t=this,e=t._self._c;return e("Screen",{staticClass:"debugResults",attrs:{title:"Results"}},[e("Slide",[e("button",{on:{click:t.downloadCsv}},[t._v("Download all data as csv")]),t.results.length?e("table",[e("thead",[e("tr",t._l(Object.keys(t.results[0]),(function(n){return e("th",{key:n},[t._v(t._s(n))])})),0)]),e("tbody",t._l(t.results,(function(n,r){return e("tr",{key:r},t._l(Object.keys(t.results[0]),(function(r,i){return e("td",{key:i},[t._v(" "+t._s(String(n[r]))+" ")])})),0)})),0)]):t._e()])],1)},qi=[],Hi=n("ee10"),Yi=n.n(Hi),Ki={name:"DebugResultsScreen",components:{Slide:At,Screen:St},props:{},data(){return{results:[],csv:""}},mounted(){this.results=this.$magpie.getAllData(),this.csv=Yi()(this.results,{columns:Object.keys(this.results[0]),header:!0})},methods:{downloadCsv(){let t=new Blob([this.csv],{type:"text/plain",endings:"native"});this.download("magpie-"+this.$magpie.id+"-"+(new Date).toISOString().slice(0,10)+".csv",t)},download(t,e){const n=document.createElement("a");let r=URL.createObjectURL(e);n.setAttribute("href",r),n.setAttribute("download",t),n.style.display="none",document.body.appendChild(n),n.click(),URL.revokeObjectURL(r),document.body.removeChild(n)}}},Xi=Ki,Ji=(n("de44"),n("775d")),Zi=n.n(Ji),Qi=Object(it["a"])(Xi,Wi,qi,!1,null,"681a623c",null);"function"===typeof Zi.a&&Zi()(Qi);var to=Qi.exports,eo=function(){var t=this,e=t._self._c;return t.$magpie.debug?e("DebugResultsScreen"):e("Screen",{attrs:{title:"Submitting"}},[e("Slide",[e("p",[t._v(t._s(t.$t("screens.SubmitResultsScreen.waiting")))]),e("Wait",{attrs:{time:0},on:{done:function(e){t.submit(()=>t.$magpie.nextSlide())}}})],1),e("Slide",[t.error?e("div",[e("p",[t._v(t._s(t.$t("screens.SubmitResultsScreen.error")))]),e("p",[t._v(" "+t._s(t.$t("screens.SubmitResultsScreen.contact"))+" "),e("a",{attrs:{href:"mailto:"+t.$magpie.contactEmail}},[t._v(t._s(t.$magpie.contactEmail))]),t._v(". ")]),e("p",{domProps:{textContent:t._s(t.error)}})]):e("p",[t._v(" "+t._s(t.$t("screens.SubmitResultsScreen.done"))+" "),e("Wait",{attrs:{time:3e3},on:{done:t.redirectToCompletionUrl}})],1)])],1)},no=[],ro={name:"SubmitResultsScreen",components:{Slide:At,DebugResultsScreen:to,Wait:cr,Screen:St},props:{},data(){return{error:null}},methods:{async submit(t){try{await this.$magpie.submit(),t()}catch(e){this.error=e.message,t()}},redirectToCompletionUrl(){this.$magpie.completionUrl&&"prolific"===this.$magpie.mode&&(window.location=this.$magpie.completionUrl)}}},io=ro,oo=n("656e"),ao=n.n(oo),so=Object(it["a"])(io,eo,no,!1,null,null,null);"function"===typeof ao.a&&ao()(so);var uo=so.exports,co=function(){var t=this,e=t._self._c;return e("Screen",t._b({attrs:{title:"Additional information"}},"Screen",{...t.$attrs,...t.$props},!1),[e("Slide",[e("p",[t._v(" "+t._s(t.$t("screens.PostTestScreen.instruction"))+" ")]),e("div",{staticStyle:{"text-align":"left",width:"200px",margin:"0 auto"}},[t.age?e("p",[e("label",[t._v(t._s(t.$t("screens.PostTestScreen.age"))+" "),e("input",{directives:[{name:"model",rawName:"v-model",value:t.$magpie.measurements.age,expression:"$magpie.measurements.age"}],attrs:{type:"number",max:"110",min:"18"},domProps:{value:t.$magpie.measurements.age},on:{input:function(e){e.target.composing||t.$set(t.$magpie.measurements,"age",e.target.value)}}})])]):t._e(),t.gender?e("p",[e("label",[t._v(t._s(t.$t("screens.PostTestScreen.gender"))+" "),e("DropdownInput",{attrs:{options:["",t.$t("screens.PostTestScreen.male"),t.$t("screens.PostTestScreen.female"),t.$t("screens.PostTestScreen.otherGender")],response:t.$magpie.measurements.gender},on:{"update:response":function(e){return t.$set(t.$magpie.measurements,"gender",e)}}})],1)]):t._e(),t.education?e("p",[e("label",[t._v(t._s(t.$t("screens.PostTestScreen.education"))+" "),e("DropdownInput",{attrs:{options:["",t.$t("screens.PostTestScreen.educationBelowHighschool"),t.$t("screens.PostTestScreen.educationHighschool"),t.$t("screens.PostTestScreen.educationCollege"),t.$t("screens.PostTestScreen.educationHigher")],response:t.$magpie.measurements.education},on:{"update:response":function(e){return t.$set(t.$magpie.measurements,"education",e)}}})],1)]):t._e(),t.languages?e("p",[e("label",[t._v(t._s(t.$t("screens.PostTestScreen.nativeLanguages"))+" "),e("input",{directives:[{name:"model",rawName:"v-model",value:t.$magpie.measurements.languages,expression:"$magpie.measurements.languages"}],attrs:{type:"text",placeholder:t.$t("screens.PostTestScreen.nativeLanguagesExplanation"),title:t.$t("screens.PostTestScreen.nativeLanguagesExplanation")},domProps:{value:t.$magpie.measurements.languages},on:{input:function(e){e.target.composing||t.$set(t.$magpie.measurements,"languages",e.target.value)}}})])]):t._e(),t._t("default",null,{measurements:t.$magpie.measurements}),t._v(" "+t._s(t.$t("screens.PostTestScreen.comments"))+" "),e("TextareaInput",{attrs:{response:t.$magpie.measurements.comments},on:{"update:response":function(e){return t.$set(t.$magpie.measurements,"comments",e)}}})],2),e("button",{on:{click:function(e){t.$magpie.addExpData(t.$magpie.measurements),t.$magpie.nextScreen()}}},[t._v(" "+t._s(t.$t("general.nextButton"))+" ")])])],1)},lo=[],fo={name:"PostTestScreen",components:{Slide:At,DropdownInput:Wt,TextareaInput:Be,Screen:St},props:{age:{type:Boolean,default:!0},gender:{type:Boolean,default:!0},education:{type:Boolean,default:!0},languages:{type:Boolean,default:!0},comments:{type:Boolean,default:!0}}},ho=fo,po=n("eb48"),vo=n.n(po),go=Object(it["a"])(ho,co,lo,!1,null,"1cb95052",null);"function"===typeof vo.a&&vo()(go);var mo=go.exports,yo=function(){var t=this,e=t._self._c;return e("Screen",t._b({},"Screen",{...t.$attrs,...t.$props},!1),[e("Slide",[e("div",{staticClass:"instructions"},[t._t("default")],2),e("button",{on:{click:function(e){return t.$magpie.nextScreen()}}},[t._v(" "+t._s(t.$t("general.nextButton"))+" ")])])],1)},bo=[],_o={name:"InstructionScreen",components:{Slide:At,Screen:St},props:{}},wo=_o,xo=(n("fd96"),n("e09c")),So=n.n(xo),ko=Object(it["a"])(wo,yo,bo,!1,null,"286444fe",null);"function"===typeof So.a&&So()(ko);var Co=ko.exports,Oo=function(){var t=this,e=t._self._c;return e("Screen",t._b({},"Screen",{...t.$attrs,...t.$props},!1),[e("Slide",[e("Wait",{key:"start",attrs:{time:0},on:{done:t.onStart}}),e("p",[t._v(t._s(t.$t("screens.EyetrackingCalibrationScreen.start")))])],1),e("Slide",[e("Wait",{key:"calibration",attrs:{time:0},on:{done:t.runCalibration}}),e("p",[t._v(t._s(t.$t("screens.EyetrackingCalibrationScreen.instruction")))]),e("CanvasStage",{staticClass:"point",style:{left:t.x+"px",top:t.y+"px"},attrs:{config:{width:26,height:26}},on:{click:t.nextPoint}},[e("CanvasLayer",[e("CanvasCircle",{attrs:{config:{x:13,y:13,fill:"red",radius:12,stroke:"black",strokeWidth:1}}})],1)],1)],1),e("Slide",[e("p",[t._v(t._s(t.$t("screens.EyetrackingCalibrationScreen.error")))])])],1)},Po=[],To=n("db1a"),Ao=n.n(To),Eo={name:"EyetrackingCalibrationScreen",components:{Slide:At,Screen:St},props:{debug:{type:Boolean,default:!1}},data(){return{x:0,y:0,calibrationSequence:[]}},methods:{nextPoint(){const t=this.calibrationSequence.pop();t?Object.assign(this,t):(this.$magpie.eyetracking.setDeaf(!1),this.$magpie.nextScreen())},async onStart(){this.$magpie.eyetracking.setDeaf(!0);try{await this.$magpie.eyetracking.initialize(),this.$magpie.eyetracking.setDebug(this.debug),this.$magpie.nextSlide()}catch(el){console.error(el),this.$magpie.nextSlide(2)}},runCalibration(){const t=this.$magpie.experiment.$el.getBoundingClientRect();[0,.25*t.height,t.height/2,.75*t.height].forEach(e=>{[0,.25*t.width,t.width/2,.75*t.width,t.width].forEach(t=>{this.calibrationSequence.push({x:t,y:e})})}),this.calibrationSequence=z()(Ao()(2,()=>We()(this.calibrationSequence))),this.nextPoint()}}},jo=Eo,Mo=(n("9bb1"),n("39a4")),Ro=n.n(Mo),Do=Object(it["a"])(jo,Oo,Po,!1,null,"8ef3bc36",null);"function"===typeof Ro.a&&Ro()(Do);var Io=Do.exports,Lo=function(){var t=this,e=t._self._c;return e("Screen",t._b({},"Screen",{...t.$attrs,...t.$props},!1),[e("Slide",[e("p",[t._v(t._s(t.$t("screens.EyetrackingValidationScreen.instruction")))]),e("Wait",{attrs:{time:5e3},on:{done:t.measureAccuracy}}),e("EyetrackingStart"),e("CanvasStage",{ref:"checkpoint",staticClass:"point check",style:{top:t.windowHeight/2+"px",left:t.windowWidth/2+"px"},attrs:{config:{width:26,height:26}}},[e("CanvasLayer",[e("CanvasCircle",{attrs:{config:{x:13,y:13,fill:"lightblue",radius:12,stroke:"black",strokeWidth:1}}})],1)],1)],1),e("Slide",[e("p",[t._v(t._s(t.$t("screens.EyetrackingValidationScreen.error")))])])],1)},$o=[],No=function(){var t=this,e=t._self._c;return e("span")},Fo=[],Uo={name:"EyetrackingStart",mounted(){this.$magpie.eyetracking.start()}},Bo=Uo,Go=n("cc16"),zo=n.n(Go),Vo=Object(it["a"])(Bo,No,Fo,!1,null,"cea287d6",null);"function"===typeof zo.a&&zo()(Vo);var Wo=Vo.exports,qo={name:"EyetrackingValidationScreen",components:{Wait:cr,EyetrackingStart:Wo,Slide:At,Screen:St},props:{precision:{type:Number,default:100}},data(){return{x:0,y:0,calibrationSequence:[]}},computed:{windowHeight(){return window.innerHeight},windowWidth(){return window.innerWidth}},methods:{measureAccuracy(){const t=this.$magpie.eyetracking.getEyeTrack(),e={x:window.innerWidth/2,y:window.innerHeight/2};let n,r,i,o=0;for(let s=0;st.label)}}}),t.question?e("p",{domProps:{textContent:t._s(t.question)}}):t._e(),e("ImageSelectionInput",{attrs:{options:t.options,response:t.$magpie.measurements.response},on:{"update:response":[function(e){return t.$set(t.$magpie.measurements,"response",e)},t.nextAfterResponse]}})]},proxy:!0},{key:"feedback",fn:function(){return[t._t("feedback")]},proxy:!0}],null,!0)},"LifecycleScreen",{...t.$attrs,...t.$props},!1),[e("template",{slot:"fixation"},[t._t("fixation")],2),e("template",{slot:"stimulus"},[t._t("stimulus")],2)],2)},sa=[],ua={name:"ImageSelectionScreen",components:{LifecycleScreen:Ti,ImageSelectionInput:se,Record:xi},extends:Ti,props:{question:{type:String,default:void 0},options:{type:Array,required:!0}},methods:{next(){this.$attrs.feedbackTime?(this.$magpie.save(),this.$magpie.nextSlide()):this.$magpie.saveAndNextScreen()}}},ca=ua,la=n("bb2d"),fa=n.n(la),ha=Object(it["a"])(ca,aa,sa,!1,null,"2f4f474a",null);"function"===typeof fa.a&&fa()(ha);var da=ha.exports,pa=function(){var t=this,e=t._self._c;return e("LifecycleScreen",t._b({scopedSlots:t._u([{key:"task",fn:function(){return[e("Record",{attrs:{data:{question:t.question}}}),t.question?e("p",{domProps:{textContent:t._s(t.question)}}):t._e(),e("TextareaInput",{attrs:{response:t.$magpie.measurements.response},on:{"update:response":function(e){return t.$set(t.$magpie.measurements,"response",e)}}}),!t.$magpie.measurements.response||t.$magpie.validateMeasurements.response&&t.$magpie.validateMeasurements.response.$invalid?t._e():e("button",{on:{click:t.nextAfterResponse}},[t._v(" "+t._s(t.$t("general.nextButton"))+" ")])]},proxy:!0},{key:"feedback",fn:function(){return[t._t("feedback")]},proxy:!0}],null,!0)},"LifecycleScreen",{...t.$attrs,...t.$props},!1),[e("template",{slot:"fixation"},[t._t("fixation")],2),e("template",{slot:"stimulus"},[t._t("stimulus")],2)],2)},va=[],ga={name:"TextareaScreen",components:{LifecycleScreen:Ti,TextareaInput:Be,Record:xi},extends:Ti,props:{question:{type:String,required:!0}}},ma=ga,ya=n("7991"),ba=n.n(ya),_a=Object(it["a"])(ma,pa,va,!1,null,"0d144568",null);"function"===typeof ba.a&&ba()(_a);var wa=_a.exports,xa=function(){var t=this,e=t._self._c;return e("LifecycleScreen",t._b({scopedSlots:t._u([{key:"task",fn:function(){return[e("Record",{attrs:{data:{question:t.question,...t.optionLeft&&{optionLeft:t.optionLeft},...t.optionRight&&{optionRight:t.optionRight},interval:t.interval,max:t.max,min:t.min,initial:t.initial}}}),t.question?e("p",{domProps:{textContent:t._s(t.question)}}):t._e(),e("SliderInput",{attrs:{left:t.optionLeft,right:t.optionRight,min:t.min,max:t.max,interval:t.interval,initial:t.initial,disabled:t.disabled,response:t.$magpie.measurements.response},on:{"update:response":function(e){return t.$set(t.$magpie.measurements,"response",e)}}}),t.$magpie.measurements.response&&!t.$magpie.validateMeasurements.$invalid?e("button",{on:{click:t.nextAfterResponse}},[t._v(" "+t._s(t.$t("general.nextButton"))+" ")]):t._e()]},proxy:!0},{key:"feedback",fn:function(){return[t._t("feedback")]},proxy:!0}],null,!0)},"LifecycleScreen",{...t.$attrs,...t.$props},!1),[e("template",{slot:"fixation"},[t._t("fixation")],2),e("template",{slot:"stimulus"},[t._t("stimulus")],2)],2)},Sa=[],ka={name:"SliderScreen",components:{LifecycleScreen:Ti,SliderInput:Re,Record:xi},extends:Ti,props:{question:{type:String,required:!0},optionLeft:{type:String,default:""},optionRight:{type:String,default:""},initial:{type:Number,optional:!0,default:0},min:{type:Number,optional:!0,default:0},max:{type:Number,optional:!0,default:100},interval:{type:Number,optional:!0,default:1},disabled:{type:Boolean,optional:!0,default:!1}}},Ca=ka,Oa=n("5517"),Pa=n.n(Oa),Ta=Object(it["a"])(Ca,xa,Sa,!1,null,"6468ed0d",null);"function"===typeof Pa.a&&Pa()(Ta);var Aa=Ta.exports,Ea=function(){var t=this,e=t._self._c;return e("LifecycleScreen",t._b({scopedSlots:t._u([{key:"task",fn:function(){return[e("Record",{attrs:{data:{question:t.question,...t.optionLeft&&{optionLeft:t.optionLeft},...t.optionRight&&{optionRight:t.optionRight},interval:t.interval,ranges:t.ranges,min:t.min,max:t.max}}}),t.question?e("p",{domProps:{textContent:t._s(t.question)}}):t._e(),e("SliderRangesInput",{attrs:{left:t.optionLeft,right:t.optionRight,min:t.min,max:t.max,interval:t.interval,ranges:t.ranges,responses:t.$magpie.measurements.response,"range-values":t.$magpie.measurements.range_values},on:{"update:responses":function(e){return t.$set(t.$magpie.measurements,"response",e)},"update:rangeValues":function(e){return t.$set(t.$magpie.measurements,"range_values",e)},"update:range-values":function(e){return t.$set(t.$magpie.measurements,"range_values",e)}}}),t.$magpie.measurements.range_values?e("ul",t._l(t.$magpie.measurements.range_values,(function(n,r){return e("li",{key:r},[t._v(" "+t._s(n)+" "+t._s(t.ranges[r])+" ")])})),0):t._e(),!t.$magpie.measurements.response||t.$magpie.validateMeasurements.response&&t.$magpie.validateMeasurements.response.$invalid?t._e():e("button",{on:{click:t.nextAfterResponse}},[t._v(" "+t._s(t.$t("general.nextButton"))+" ")])]},proxy:!0},{key:"feedback",fn:function(){return[t._t("feedback")]},proxy:!0}],null,!0)},"LifecycleScreen",{...t.$attrs,...t.$props},!1),[e("template",{slot:"fixation"},[t._t("fixation")],2),e("template",{slot:"stimulus"},[t._t("stimulus")],2)],2)},ja=[],Ma={name:"SliderRangesScreen",components:{LifecycleScreen:Ti,SliderRangesInput:mn,Record:xi},extends:Ti,props:{question:{type:String,required:!0},ranges:{type:Array,required:!0},optionLeft:{type:String,default:""},optionRight:{type:String,default:""},min:{type:Number,optional:!0,default:0},max:{type:Number,optional:!0,default:100},interval:{type:Number,optional:!0,default:1}}},Ra=Ma,Da=n("5046"),Ia=n.n(Da),La=Object(it["a"])(Ra,Ea,ja,!1,null,"674745fd",null);"function"===typeof Ia.a&&Ia()(La);var $a=La.exports,Na=function(){var t=this,e=t._self._c;return e("LifecycleScreen",t._b({scopedSlots:t._u([{key:"task",fn:function(){return[e("Record",{attrs:{data:{question:t.question,...t.optionLeft&&{optionLeft:t.optionLeft},...t.optionRight&&{optionRight:t.optionRight},count:t.count}}}),t.question?e("p",{domProps:{textContent:t._s(t.question)}}):t._e(),e("RatingInput",{attrs:{left:t.optionLeft,right:t.optionRight,count:t.count,response:t.$magpie.measurements.response},on:{"update:response":function(e){return t.$set(t.$magpie.measurements,"response",e)}}}),!t.$magpie.measurements.response||t.$magpie.validateMeasurements.response&&t.$magpie.validateMeasurements.response.$invalid?t._e():e("button",{on:{click:function(e){return t.$magpie.saveAndNextScreen()}}},[t._v(" "+t._s(t.$t("general.nextButton"))+" ")])]},proxy:!0},{key:"feedback",fn:function(){return[t._t("feedback")]},proxy:!0}],null,!0)},"LifecycleScreen",{...t.$attrs,...t.$props},!1),[e("template",{slot:"fixation"},[t._t("fixation")],2),e("template",{slot:"stimulus"},[t._t("stimulus")],2)],2)},Fa=[],Ua={name:"RatingScreen",components:{LifecycleScreen:Ti,RatingInput:Se,Record:xi},extends:Ti,props:{question:{type:String,required:!0},optionLeft:{type:String,default:""},optionRight:{type:String,default:""},count:{type:Number,default:7}}},Ba=Ua,Ga=n("686b"),za=n.n(Ga),Va=Object(it["a"])(Ba,Na,Fa,!1,null,"1d16eb65",null);"function"===typeof za.a&&za()(Va);var Wa=Va.exports,qa=function(){var t=this,e=t._self._c;return e("LifecycleScreen",t._b({scopedSlots:t._u([{key:"task",fn:function(){return[e("Record",{attrs:{data:{question:t.question,options:t.options,text:t.text}}}),t.question?e("p",{domProps:{textContent:t._s(t.question)}}):t._e(),e("CompletionInput",{attrs:{text:t.text,options:t.options,response:t.$magpie.measurements.response,responses:t.$magpie.measurements.responses},on:{"update:response":function(e){return t.$set(t.$magpie.measurements,"response",e)},"update:responses":function(e){return t.$set(t.$magpie.measurements,"responses",e)}}}),t.$magpie.measurements.responses&&t.$magpie.measurements.responses.filter(Boolean).length===t.options.length?e("button",{on:{click:t.nextAfterResponse}},[t._v(" "+t._s(t.$t("general.nextButton"))+" ")]):t._e()]},proxy:!0},{key:"feedback",fn:function(){return[t._t("feedback")]},proxy:!0}],null,!0)},"LifecycleScreen",{...t.$attrs,...t.$props},!1),[e("template",{slot:"fixation"},[t._t("fixation")],2),e("template",{slot:"stimulus"},[t._t("stimulus")],2)],2)},Ha=[],Ya={name:"CompletionScreen",components:{LifecycleScreen:Ti,CompletionInput:$t,Record:xi},extends:Ti,props:{question:{type:String,default:void 0},text:{type:String,required:!0},options:{type:Array,required:!0}}},Ka=Ya,Xa=n("748d"),Ja=n.n(Xa),Za=Object(it["a"])(Ka,qa,Ha,!1,null,"0526d666",null);"function"===typeof Ja.a&&Ja()(Za);var Qa=Za.exports,ts=function(){var t=this,e=t._self._c;return e("LifecycleScreen",t._b({scopedSlots:t._u([{key:"task",fn:function(){return[e("Record",{attrs:{data:{question:t.question}}}),t.question?e("p",{domProps:{textContent:t._s(t.question)}}):t._e(),e("KeypressInput",{attrs:{keys:t.keys,"show-options":t.showOptions,response:t.$magpie.measurements.response},on:{"update:response":[function(e){return t.$set(t.$magpie.measurements,"response",e)},t.nextAfterResponse]}})]},proxy:!0},{key:"feedback",fn:function(){return[t._t("feedback")]},proxy:!0}],null,!0)},"LifecycleScreen",{...t.$attrs,...t.$props},!1),[e("template",{slot:"fixation"},[t._t("fixation",(function(){return[e("FixationCross")]})),e("KeypressInput",{attrs:{keys:t.keys,"show-options":t.showOptions}})],2),e("template",{slot:"stimulus"},[t._t("stimulus")],2)],2)},es=[],ns={name:"KeypressScreen",components:{FixationCross:Fr,LifecycleScreen:Ti,KeypressInput:ve,Record:xi},extends:Ti,props:{question:{type:String,default:void 0},keys:{type:Object,required:!0},showOptions:{type:Boolean,default:!0}}},rs=ns,is=n("8b74"),os=n.n(is),as=Object(it["a"])(rs,ts,es,!1,null,"08791dd8",null);"function"===typeof os.a&&os()(as);var ss=as.exports,us=function(){var t=this,e=t._self._c;return e("Screen",t._b({},"Screen",{...t.$attrs,...t.$props},!1),[e("Slide",[t.qud?e("p",{staticClass:"qud",domProps:{textContent:t._s(t.qud)}}):t._e(),t._t("preparation",(function(){return[e("Wait",{attrs:{time:1},on:{done:function(e){return t.$magpie.nextSlide()}}})]}))],2),e("Slide",[t.qud?e("p",{staticClass:"qud",domProps:{textContent:t._s(t.qud)}}):t._e(),e("Wait",{key:"pause",attrs:{time:t.pauseTime},on:{done:function(e){return t.$magpie.nextSlide()}}})],1),e("Slide",[t.qud?e("p",{staticClass:"qud",domProps:{textContent:t._s(t.qud)}}):t._e(),e("Wait",{key:"wait a bit",attrs:{time:500},on:{done:function(e){return t.$magpie.nextSlide()}}}),e("div",{staticClass:"options"},[e("div",{staticClass:"option1"},[t._t("option1")],2),e("div",{staticClass:"space"}),e("div",{staticClass:"option2"},[t._t("option2")],2)])],1),e("Slide",[e("div",{staticClass:"options"},[t.$magpie.measurements.response?t._e():e("div",{staticClass:"option1",on:t._d({},[t.selectEvent,function(e){return t.submit("option1")}])},[t._t("option1")],2),e("div",{staticClass:"space"}),t.$magpie.measurements.response?t._e():e("div",{staticClass:"option2",on:t._d({},[t.selectEvent,function(e){return t.submit("option2")}])},[t._t("option2")],2)]),t.qud?e("p",{staticClass:"qud",domProps:{textContent:t._s(t.qud)}}):t._e(),e("div",{staticClass:"stimulus"},[t.playing?t._t("stimulus",null,{coordinates:t.buttonCoordinates}):t._e(),t.$magpie.measurements.response?t._t("feedback"):t._e()],2),t.playing?t._e():e("button",{ref:"button",on:{click:t.onPressPlay}},[t._v(" "+t._s(t.$t("general.go"))+" ")]),t.playing&&t.responseTimeLimit?e("Wait",{attrs:{time:t.responseTimeLimit},on:{done:function(e){return t.$magpie.nextSlide()}}}):t._e(),t.playing?e("TimerStart",{attrs:{id:"fcmt-response-time"}}):t._e(),t.$magpie.measurements.response?e("TimerStop",{attrs:{id:"fcmt-response-time",time:t.$magpie.measurements.responseTime},on:{"update:time":function(e){return t.$set(t.$magpie.measurements,"responseTime",e)}}}):t._e()],1)],1)},cs=[],ls={name:"ForcedChoiceMousetrackingScreen",components:{TimerStart:Qn,TimerStop:Wn,Slide:At,Screen:St,Wait:cr},props:{option1:{type:String,default:"option1"},option2:{type:String,default:"option2"},selectEvent:{type:String,default:"mouseover"},qud:{type:String,default:void 0},pauseTime:{type:Number,default:0},responseTimeLimit:{type:Number,default:0}},data(){return{playing:!1}},computed:{buttonCoordinates(){return{x:this.$refs.button.getBoundingClientRect().x,y:this.$refs.button.getBoundingClientRect().y}}},methods:{onPressPlay(){this.playing=!0,this.$magpie.mousetracking.start(this.buttonCoordinates.x,this.buttonCoordinates.y)},submit(t){if(!this.playing)return;this.$magpie.measurements.response=this[t];const e=this.$magpie.mousetracking.getMouseTrack();for(const n in e)s["default"].set(this.$magpie.measurements,n,JSON.parse(JSON.stringify(e[n])))}}},fs=ls,hs=(n("c3bc"),n("7518")),ds=n.n(hs),ps=Object(it["a"])(fs,us,cs,!1,null,"22cf83e4",null);"function"===typeof ds.a&&ds()(ps);var vs=ps.exports,gs=function(){var t=this,e=t._self._c;return e("LifecycleScreen",t._b({scopedSlots:t._u([{key:"task",fn:function(){return[e("Record",{attrs:{data:{question:t.question,options:t.options,orientation:t.orientation,randomize:t.randomize,...t.optionsHtml.length&&{optionsHtml:t.optionsHtml}}}}),t.question?e("p",{domProps:{textContent:t._s(t.question)}}):t._e(),e("MultipleChoiceInput",{attrs:{options:t.options,"options-html":t.optionsHtml,orientation:t.orientation,randomize:t.randomize,response:t.$magpie.measurements.response},on:{"update:response":function(e){return t.$set(t.$magpie.measurements,"response",e)}}}),!t.$magpie.measurements.response||t.$magpie.validateMeasurements.response&&t.$magpie.validateMeasurements.response.$invalid?t._e():e("button",{on:{click:function(e){return t.$magpie.saveAndNextScreen()}}},[t._v(" "+t._s(t.$t("general.nextButton"))+" ")])]},proxy:!0},{key:"feedback",fn:function(){return[t._t("feedback")]},proxy:!0}],null,!0)},"LifecycleScreen",{...t.$attrs,...t.$props},!1),[e("template",{slot:"fixation"},[t._t("fixation")],2),e("template",{slot:"stimulus"},[t._t("stimulus")],2)],2)},ms=[],ys={name:"MultipleChoiceScreen",components:{LifecycleScreen:Ti,MultipleChoiceInput:Je,Record:xi},extends:Ti,props:{question:{type:String,required:!0},options:{type:Array,required:!0},optionsHtml:{type:Array,default:()=>[]},orientation:{type:String,default:"vertical"},randomize:{type:Boolean,default:!1}}},bs=ys,_s=n("4f8b"),ws=n.n(_s),xs=Object(it["a"])(bs,gs,ms,!1,null,"ccf8f3fe",null);"function"===typeof ws.a&&ws()(xs);var Ss=xs.exports,ks=function(){var t=this,e=t._self._c;return e("LifecycleScreen",t._b({scopedSlots:t._u([{key:"task",fn:function(){return[e("Record",{attrs:{data:{questions:t.questions,options:t.options,...t.randomize&&{randomize:t.randomize}}}}),e("MultipleChoiceMatrixInput",{attrs:{options:t.options,questions:t.questions,randomize:t.randomize,responses:t.$magpie.measurements.responses},on:{"update:responses":function(e){return t.$set(t.$magpie.measurements,"responses",e)}}}),t.$magpie.measurements.responses&&!t.$magpie.validateMeasurements.$invalid?e("button",{on:{click:t.nextAfterResponse}},[t._v(" "+t._s(t.$t("general.nextButton"))+" ")]):t._e()]},proxy:!0},{key:"feedback",fn:function(){return[t._t("feedback")]},proxy:!0}],null,!0)},"LifecycleScreen",{...t.$attrs,...t.$props},!1),[e("template",{slot:"fixation"},[t._t("fixation")],2),e("template",{slot:"stimulus"},[t._t("stimulus")],2)],2)},Cs=[],Os={name:"MultipleChoiceMatrixScreen",components:{LifecycleScreen:Ti,MultipleChoiceMatrixInput:an,Record:xi},extends:Ti,props:{questions:{type:Array,required:!0},options:{type:Array,required:!0},randomize:{type:Boolean,default:!1}}},Ps=Os,Ts=n("d3e0"),As=n.n(Ts),Es=Object(it["a"])(Ps,ks,Cs,!1,null,"489277d4",null);"function"===typeof As.a&&As()(Es);var js=Es.exports,Ms=function(){var t=this,e=t._self._c;return e("LifecycleScreen",t._b({scopedSlots:t._u([{key:"fixation",fn:function(){return[t._t("fixation",(function(){return[e("FixationCross")]}))]},proxy:!0},{key:"stimulus",fn:function(){return[t._t("stimulus")]},proxy:!0},{key:"task",fn:function(){return[e("Record",{attrs:{data:{question:t.question,targets:t.targets,competitors:t.competitors,leftKey:t.leftKey,rightKey:t.rightKey,mazeTimeLimit:t.mazeTimeLimit}}}),t.question?e("p",{domProps:{textContent:t._s(t.question)}}):t._e(),e("MazeInput",{attrs:{targets:t.targets,competitors:t.competitors,"response-time-limit":t.mazeTimeLimit,"response-times":t.$magpie.measurements.times,"target-positions":t.$magpie.measurements.target_positions,responses:t.$magpie.measurements.responses,timeout:t.$magpie.measurements.maze_timeout,correct:t.$magpie.measurements.correct},on:{"update:responseTimes":function(e){return t.$set(t.$magpie.measurements,"times",e)},"update:response-times":function(e){return t.$set(t.$magpie.measurements,"times",e)},"update:targetPositions":function(e){return t.$set(t.$magpie.measurements,"target_positions",e)},"update:target-positions":function(e){return t.$set(t.$magpie.measurements,"target_positions",e)},"update:responses":function(e){return t.$set(t.$magpie.measurements,"responses",e)},"update:timeout":function(e){return t.$set(t.$magpie.measurements,"maze_timeout",e)},"update:correct":function(e){return t.$set(t.$magpie.measurements,"correct",e)},end:t.nextAfterResponse}})]},proxy:!0},{key:"feedback",fn:function(){return[t._t("feedback")]},proxy:!0}],null,!0)},"LifecycleScreen",{...t.$attrs,...t.$props},!1))},Rs=[],Ds={name:"MazeScreen",components:{LifecycleScreen:Ti,MazeInput:vr,Record:xi},extends:Ti,props:{question:{type:String,default:void 0},targets:{type:Array,required:!0},competitors:{type:Array,required:!0},mazeTimeLimit:{type:Number,default:-1},leftKey:{type:String,default:"f"},rightKey:{type:String,default:"j"},progress:{type:Number,default:void 0}}},Is=Ds,Ls=n("baba"),$s=n.n(Ls),Ns=Object(it["a"])(Is,Ms,Rs,!1,null,null,null);"function"===typeof $s.a&&$s()(Ns);var Fs=Ns.exports,Us=function(){var t=this,e=t._self._c;return e("LifecycleScreen",t._b({scopedSlots:t._u([{key:"fixation",fn:function(){return[t._t("fixation",(function(){return[e("FixationCross")]}))]},proxy:!0},{key:"stimulus",fn:function(){return[t._t("stimulus")]},proxy:!0},{key:"task",fn:function(){return[e("Record",{attrs:{data:{chunks:t.chunks,trigger:t.trigger,underline:t.underline,wordPos:t.wordPos,question:t.question}}}),t.question?e("p",{domProps:{textContent:t._s(t.question)}}):t._e(),t.instructions?e("p",{domProps:{textContent:t._s(t.instructions)}}):t._e(),e("SelfPacedReadingInput",{attrs:{chunks:t.chunks,"word-pos":t.wordPos,underline:t.underline,trigger:t.trigger,"response-times":t.$magpie.measurements.response_times,timeout:t.$magpie.measurements.spr_timeout,"show-keypress-options":!1},on:{"update:responseTimes":function(e){return t.$set(t.$magpie.measurements,"response_times",e)},"update:response-times":function(e){return t.$set(t.$magpie.measurements,"response_times",e)},"update:timeout":function(e){return t.$set(t.$magpie.measurements,"spr_timeout",e)},end:t.nextAfterResponse}})]},proxy:!0},{key:"feedback",fn:function(){return[t._t("feedback")]},proxy:!0}],null,!0)},"LifecycleScreen",{...t.$attrs,...t.$props},!1))},Bs=[],Gs={name:"SelfPacedReadingScreen",components:{LifecycleScreen:Ti,SelfPacedReadingInput:Sr},extends:Ti,props:{question:{type:String,default:void 0},chunks:{type:Array,required:!0},instructions:{type:String,default:"Press SPACE to reveal the words."},trigger:{type:String,default:" "},underline:{type:String,default:"none"},wordPos:{type:String,default:"same"},sprTimeLimit:{type:Number,default:-1}},data(){return{responseTimes:[],responseTimeout:!1}}},zs=Gs,Vs=(n("a4a0"),n("39cd")),Ws=n.n(Vs),qs=Object(it["a"])(zs,Us,Bs,!1,null,"18f4a5b4",null);"function"===typeof Ws.a&&Ws()(qs);var Hs=qs.exports,Ys=function(){var t=this,e=t._self._c;return e("span")},Ks=[],Xs={name:"MousetrackingStart",mounted(){this.$magpie.mousetracking.start()}},Js=Xs,Zs=n("acf4"),Qs=n.n(Zs),tu=Object(it["a"])(Js,Ys,Ks,!1,null,"39ed7d0a",null);"function"===typeof Qs.a&&Qs()(tu);var eu=tu.exports,nu=function(){var t=this,e=t._self._c;return e("span")},ru=[],iu={name:"FullscreenStart",mounted(){document.documentElement.requestFullscreen()}},ou=iu,au=n("38e4"),su=n.n(au),uu=Object(it["a"])(ou,nu,ru,!1,null,"292734e2",null);"function"===typeof su.a&&su()(uu);var cu=uu.exports,lu=function(){var t=this,e=t._self._c;return e("span")},fu=[],hu={name:"HideCursor",mounted(){document.onmousedown=()=>!1,document.onclick=()=>!1,document.body.classList.add("nocursor")},deactivated(){document.onmousedown=null,document.onclick=null,document.body.classList.remove("nocursor")},destroyed(){document.onmousedown=null,document.onclick=null,document.body.classList.remove("nocursor")}},du=hu,pu=(n("98b6"),n("5ec0")),vu=n.n(pu),gu=Object(it["a"])(du,lu,fu,!1,null,null,null);"function"===typeof vu.a&&vu()(gu);var mu=gu.exports,yu=function(){var t=this,e=t._self._c;return e("span")},bu=[],_u={name:"PreventCopyPaste",mounted(){document.onselectstart=()=>!1,document.oncontextmenu=()=>!1,document.body.classList.add("noselect")},deactivated(){document.onselectstart=null,document.oncontextmenu=null,document.body.classList.remove("noselect")},destroyed(){document.onselectstart=null,document.oncontextmenu=null,document.body.classList.remove("noselect")}},wu=_u,xu=(n("bd52"),n("627d")),Su=n.n(xu),ku=Object(it["a"])(wu,yu,bu,!1,null,null,null);"function"===typeof Su.a&&Su()(ku);var Cu=ku.exports;const Ou=()=>n.e("chunk-1335a3e6").then(n.bind(null,"39ca"));
+/*!
+ * vue-i18n v8.27.2
+ * (c) 2022 kazuya kawaguchi
+ * Released under the MIT License.
+ */var Pu=["compactDisplay","currency","currencyDisplay","currencySign","localeMatcher","notation","numberingSystem","signDisplay","style","unit","unitDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits"];function Tu(t,e){"undefined"!==typeof console&&(console.warn("[vue-i18n] "+t),e&&console.warn(e.stack))}function Au(t,e){"undefined"!==typeof console&&(console.error("[vue-i18n] "+t),e&&console.error(e.stack))}var Eu=Array.isArray;function ju(t){return null!==t&&"object"===typeof t}function Mu(t){return"boolean"===typeof t}function Ru(t){return"string"===typeof t}var Du=Object.prototype.toString,Iu="[object Object]";function Lu(t){return Du.call(t)===Iu}function $u(t){return null===t||void 0===t}function Nu(t){return"function"===typeof t}function Fu(){var t=[],e=arguments.length;while(e--)t[e]=arguments[e];var n=null,r=null;return 1===t.length?ju(t[0])||Eu(t[0])?r=t[0]:"string"===typeof t[0]&&(n=t[0]):2===t.length&&("string"===typeof t[0]&&(n=t[0]),(ju(t[1])||Eu(t[1]))&&(r=t[1])),{locale:n,params:r}}function Uu(t){return JSON.parse(JSON.stringify(t))}function Bu(t,e){if(t.delete(e))return t}function Gu(t){var e=[];return t.forEach((function(t){return e.push(t)})),e}function zu(t,e){return!!~t.indexOf(e)}var Vu=Object.prototype.hasOwnProperty;function Wu(t,e){return Vu.call(t,e)}function qu(t){for(var e=arguments,n=Object(t),r=1;r /g,">").replace(/"/g,""").replace(/'/g,"'")}function Ku(t){return null!=t&&Object.keys(t).forEach((function(e){"string"==typeof t[e]&&(t[e]=Yu(t[e]))})),t}function Xu(t){t.prototype.hasOwnProperty("$i18n")||Object.defineProperty(t.prototype,"$i18n",{get:function(){return this._i18n}}),t.prototype.$t=function(t){var e=[],n=arguments.length-1;while(n-- >0)e[n]=arguments[n+1];var r=this.$i18n;return r._t.apply(r,[t,r.locale,r._getMessages(),this].concat(e))},t.prototype.$tc=function(t,e){var n=[],r=arguments.length-2;while(r-- >0)n[r]=arguments[r+2];var i=this.$i18n;return i._tc.apply(i,[t,i.locale,i._getMessages(),this,e].concat(n))},t.prototype.$te=function(t,e){var n=this.$i18n;return n._te(t,n.locale,n._getMessages(),e)},t.prototype.$d=function(t){var e,n=[],r=arguments.length-1;while(r-- >0)n[r]=arguments[r+1];return(e=this.$i18n).d.apply(e,[t].concat(n))},t.prototype.$n=function(t){var e,n=[],r=arguments.length-1;while(r-- >0)n[r]=arguments[r+1];return(e=this.$i18n).n.apply(e,[t].concat(n))}}function Ju(t){function e(){this!==this.$root&&this.$options.__INTLIFY_META__&&this.$el&&this.$el.setAttribute("data-intlify",this.$options.__INTLIFY_META__)}return void 0===t&&(t=!1),t?{mounted:e}:{beforeCreate:function(){var t=this.$options;if(t.i18n=t.i18n||(t.__i18nBridge||t.__i18n?{}:null),t.i18n)if(t.i18n instanceof Kc){if(t.__i18nBridge||t.__i18n)try{var e=t.i18n&&t.i18n.messages?t.i18n.messages:{},n=t.__i18nBridge||t.__i18n;n.forEach((function(t){e=qu(e,JSON.parse(t))})),Object.keys(e).forEach((function(n){t.i18n.mergeLocaleMessage(n,e[n])}))}catch(el){0}this._i18n=t.i18n,this._i18nWatcher=this._i18n.watchI18nData()}else if(Lu(t.i18n)){var r=this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof Kc?this.$root.$i18n:null;if(r&&(t.i18n.root=this.$root,t.i18n.formatter=r.formatter,t.i18n.fallbackLocale=r.fallbackLocale,t.i18n.formatFallbackMessages=r.formatFallbackMessages,t.i18n.silentTranslationWarn=r.silentTranslationWarn,t.i18n.silentFallbackWarn=r.silentFallbackWarn,t.i18n.pluralizationRules=r.pluralizationRules,t.i18n.preserveDirectiveContent=r.preserveDirectiveContent),t.__i18nBridge||t.__i18n)try{var i=t.i18n&&t.i18n.messages?t.i18n.messages:{},o=t.__i18nBridge||t.__i18n;o.forEach((function(t){i=qu(i,JSON.parse(t))})),t.i18n.messages=i}catch(el){0}var a=t.i18n,s=a.sharedMessages;s&&Lu(s)&&(t.i18n.messages=qu(t.i18n.messages,s)),this._i18n=new Kc(t.i18n),this._i18nWatcher=this._i18n.watchI18nData(),(void 0===t.i18n.sync||t.i18n.sync)&&(this._localeWatcher=this.$i18n.watchLocale()),r&&r.onComponentInstanceCreated(this._i18n)}else 0;else this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof Kc?this._i18n=this.$root.$i18n:t.parent&&t.parent.$i18n&&t.parent.$i18n instanceof Kc&&(this._i18n=t.parent.$i18n)},beforeMount:function(){var t=this.$options;t.i18n=t.i18n||(t.__i18nBridge||t.__i18n?{}:null),t.i18n?(t.i18n instanceof Kc||Lu(t.i18n))&&(this._i18n.subscribeDataChanging(this),this._subscribing=!0):(this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof Kc||t.parent&&t.parent.$i18n&&t.parent.$i18n instanceof Kc)&&(this._i18n.subscribeDataChanging(this),this._subscribing=!0)},mounted:e,beforeDestroy:function(){if(this._i18n){var t=this;this.$nextTick((function(){t._subscribing&&(t._i18n.unsubscribeDataChanging(t),delete t._subscribing),t._i18nWatcher&&(t._i18nWatcher(),t._i18n.destroyVM(),delete t._i18nWatcher),t._localeWatcher&&(t._localeWatcher(),delete t._localeWatcher)}))}}}}var Zu={name:"i18n",functional:!0,props:{tag:{type:[String,Boolean,Object],default:"span"},path:{type:String,required:!0},locale:{type:String},places:{type:[Array,Object]}},render:function(t,e){var n=e.data,r=e.parent,i=e.props,o=e.slots,a=r.$i18n;if(a){var s=i.path,u=i.locale,c=i.places,l=o(),f=a.i(s,u,Qu(l)||c?tc(l.default,c):l),h=i.tag&&!0!==i.tag||!1===i.tag?i.tag:"span";return h?t(h,n,f):f}}};function Qu(t){var e;for(e in t)if("default"!==e)return!1;return Boolean(e)}function tc(t,e){var n=e?ec(e):{};if(!t)return n;t=t.filter((function(t){return t.tag||""!==t.text.trim()}));var r=t.every(ic);return t.reduce(r?nc:rc,n)}function ec(t){return Array.isArray(t)?t.reduce(rc,{}):Object.assign({},t)}function nc(t,e){return e.data&&e.data.attrs&&e.data.attrs.place&&(t[e.data.attrs.place]=e),t}function rc(t,e,n){return t[n]=e,t}function ic(t){return Boolean(t.data&&t.data.attrs&&t.data.attrs.place)}var oc,ac={name:"i18n-n",functional:!0,props:{tag:{type:[String,Boolean,Object],default:"span"},value:{type:Number,required:!0},format:{type:[String,Object]},locale:{type:String}},render:function(t,e){var n=e.props,r=e.parent,i=e.data,o=r.$i18n;if(!o)return null;var a=null,s=null;Ru(n.format)?a=n.format:ju(n.format)&&(n.format.key&&(a=n.format.key),s=Object.keys(n.format).reduce((function(t,e){var r;return zu(Pu,e)?Object.assign({},t,(r={},r[e]=n.format[e],r)):t}),null));var u=n.locale||o.locale,c=o._ntp(n.value,u,a,s),l=c.map((function(t,e){var n,r=i.scopedSlots&&i.scopedSlots[t.type];return r?r((n={},n[t.type]=t.value,n.index=e,n.parts=c,n)):t.value})),f=n.tag&&!0!==n.tag||!1===n.tag?n.tag:"span";return f?t(f,{attrs:i.attrs,class:i["class"],staticClass:i.staticClass},l):l}};function sc(t,e,n){lc(t,n)&&hc(t,e,n)}function uc(t,e,n,r){if(lc(t,n)){var i=n.context.$i18n;fc(t,n)&&Hu(e.value,e.oldValue)&&Hu(t._localeMessage,i.getLocaleMessage(i.locale))||hc(t,e,n)}}function cc(t,e,n,r){var i=n.context;if(i){var o=n.context.$i18n||{};e.modifiers.preserve||o.preserveDirectiveContent||(t.textContent=""),t._vt=void 0,delete t["_vt"],t._locale=void 0,delete t["_locale"],t._localeMessage=void 0,delete t["_localeMessage"]}else Tu("Vue instance does not exists in VNode context")}function lc(t,e){var n=e.context;return n?!!n.$i18n||(Tu("VueI18n instance does not exists in Vue instance"),!1):(Tu("Vue instance does not exists in VNode context"),!1)}function fc(t,e){var n=e.context;return t._locale===n.$i18n.locale}function hc(t,e,n){var r,i,o=e.value,a=dc(o),s=a.path,u=a.locale,c=a.args,l=a.choice;if(s||u||c)if(s){var f=n.context;t._vt=t.textContent=null!=l?(r=f.$i18n).tc.apply(r,[s,l].concat(pc(u,c))):(i=f.$i18n).t.apply(i,[s].concat(pc(u,c))),t._locale=f.$i18n.locale,t._localeMessage=f.$i18n.getLocaleMessage(f.$i18n.locale)}else Tu("`path` is required in v-t directive");else Tu("value type not supported")}function dc(t){var e,n,r,i;return Ru(t)?e=t:Lu(t)&&(e=t.path,n=t.locale,r=t.args,i=t.choice),{path:e,locale:n,args:r,choice:i}}function pc(t,e){var n=[];return t&&n.push(t),e&&(Array.isArray(e)||Lu(e))&&n.push(e),n}function vc(t,e){void 0===e&&(e={bridge:!1}),vc.installed=!0,oc=t;oc.version&&Number(oc.version.split(".")[0]);Xu(oc),oc.mixin(Ju(e.bridge)),oc.directive("t",{bind:sc,update:uc,unbind:cc}),oc.component(Zu.name,Zu),oc.component(ac.name,ac);var n=oc.config.optionMergeStrategies;n.i18n=function(t,e){return void 0===e?t:e}}var gc=function(){this._caches=Object.create(null)};gc.prototype.interpolate=function(t,e){if(!e)return[t];var n=this._caches[t];return n||(n=bc(t),this._caches[t]=n),_c(n,e)};var mc=/^(?:\d)+/,yc=/^(?:\w)+/;function bc(t){var e=[],n=0,r="";while(n0)f--,l=Ac,h[wc]();else{if(f=0,void 0===n)return!1;if(n=Fc(n),!1===n)return!1;h[xc]()}};while(null!==l)if(c++,e=t[c],"\\"!==e||!d()){if(i=Nc(e),s=Dc[l],o=s[i]||s["else"]||Rc,o===Rc)return;if(l=o[0],a=h[o[1]],a&&(r=o[2],r=void 0===r?e:r,!1===a()))return;if(l===Mc)return u}}var Bc=function(){this._cache=Object.create(null)};Bc.prototype.parsePath=function(t){var e=this._cache[t];return e||(e=Uc(t),e&&(this._cache[t]=e)),e||[]},Bc.prototype.getPathValue=function(t,e){if(!ju(t))return null;var n=this.parsePath(e);if(0===n.length)return null;var r=n.length,i=t,o=0;while(o/,Vc=/(?:@(?:\.[a-zA-Z]+)?:(?:[\w\-_|./]+|\([\w\-_:|./]+\)))/g,Wc=/^@(?:\.([a-zA-Z]+))?:/,qc=/[()]/g,Hc={upper:function(t){return t.toLocaleUpperCase()},lower:function(t){return t.toLocaleLowerCase()},capitalize:function(t){return""+t.charAt(0).toLocaleUpperCase()+t.substr(1)}},Yc=new gc,Kc=function(t){var e=this;void 0===t&&(t={}),!oc&&"undefined"!==typeof window&&window.Vue&&vc(window.Vue);var n=t.locale||"en-US",r=!1!==t.fallbackLocale&&(t.fallbackLocale||"en-US"),i=t.messages||{},o=t.dateTimeFormats||t.datetimeFormats||{},a=t.numberFormats||{};this._vm=null,this._formatter=t.formatter||Yc,this._modifiers=t.modifiers||{},this._missing=t.missing||null,this._root=t.root||null,this._sync=void 0===t.sync||!!t.sync,this._fallbackRoot=void 0===t.fallbackRoot||!!t.fallbackRoot,this._fallbackRootWithEmptyString=void 0===t.fallbackRootWithEmptyString||!!t.fallbackRootWithEmptyString,this._formatFallbackMessages=void 0!==t.formatFallbackMessages&&!!t.formatFallbackMessages,this._silentTranslationWarn=void 0!==t.silentTranslationWarn&&t.silentTranslationWarn,this._silentFallbackWarn=void 0!==t.silentFallbackWarn&&!!t.silentFallbackWarn,this._dateTimeFormatters={},this._numberFormatters={},this._path=new Bc,this._dataListeners=new Set,this._componentInstanceCreatedListener=t.componentInstanceCreatedListener||null,this._preserveDirectiveContent=void 0!==t.preserveDirectiveContent&&!!t.preserveDirectiveContent,this.pluralizationRules=t.pluralizationRules||{},this._warnHtmlInMessage=t.warnHtmlInMessage||"off",this._postTranslation=t.postTranslation||null,this._escapeParameterHtml=t.escapeParameterHtml||!1,"__VUE_I18N_BRIDGE__"in t&&(this.__VUE_I18N_BRIDGE__=t.__VUE_I18N_BRIDGE__),this.getChoiceIndex=function(t,n){var r=Object.getPrototypeOf(e);if(r&&r.getChoiceIndex){var i=r.getChoiceIndex;return i.call(e,t,n)}var o=function(t,e){return t=Math.abs(t),2===e?t?t>1?1:0:1:t?Math.min(t,2):0};return e.locale in e.pluralizationRules?e.pluralizationRules[e.locale].apply(e,[t,n]):o(t,n)},this._exist=function(t,n){return!(!t||!n)&&(!$u(e._path.getPathValue(t,n))||!!t[n])},"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||Object.keys(i).forEach((function(t){e._checkLocaleMessage(t,e._warnHtmlInMessage,i[t])})),this._initVM({locale:n,fallbackLocale:r,messages:i,dateTimeFormats:o,numberFormats:a})},Xc={vm:{configurable:!0},messages:{configurable:!0},dateTimeFormats:{configurable:!0},numberFormats:{configurable:!0},availableLocales:{configurable:!0},locale:{configurable:!0},fallbackLocale:{configurable:!0},formatFallbackMessages:{configurable:!0},missing:{configurable:!0},formatter:{configurable:!0},silentTranslationWarn:{configurable:!0},silentFallbackWarn:{configurable:!0},preserveDirectiveContent:{configurable:!0},warnHtmlInMessage:{configurable:!0},postTranslation:{configurable:!0},sync:{configurable:!0}};Kc.prototype._checkLocaleMessage=function(t,e,n){var r=[],i=function(t,e,n,r){if(Lu(n))Object.keys(n).forEach((function(o){var a=n[o];Lu(a)?(r.push(o),r.push("."),i(t,e,a,r),r.pop(),r.pop()):(r.push(o),i(t,e,a,r),r.pop())}));else if(Eu(n))n.forEach((function(n,o){Lu(n)?(r.push("["+o+"]"),r.push("."),i(t,e,n,r),r.pop(),r.pop()):(r.push("["+o+"]"),i(t,e,n,r),r.pop())}));else if(Ru(n)){var o=zc.test(n);if(o){var a="Detected HTML in message '"+n+"' of keypath '"+r.join("")+"' at '"+e+"'. Consider component interpolation with '' to avoid XSS. See https://bit.ly/2ZqJzkp";"warn"===t?Tu(a):"error"===t&&Au(a)}}};i(e,t,n,r)},Kc.prototype._initVM=function(t){var e=oc.config.silent;oc.config.silent=!0,this._vm=new oc({data:t,__VUE18N__INSTANCE__:!0}),oc.config.silent=e},Kc.prototype.destroyVM=function(){this._vm.$destroy()},Kc.prototype.subscribeDataChanging=function(t){this._dataListeners.add(t)},Kc.prototype.unsubscribeDataChanging=function(t){Bu(this._dataListeners,t)},Kc.prototype.watchI18nData=function(){var t=this;return this._vm.$watch("$data",(function(){var e=Gu(t._dataListeners),n=e.length;while(n--)oc.nextTick((function(){e[n]&&e[n].$forceUpdate()}))}),{deep:!0})},Kc.prototype.watchLocale=function(t){if(t){if(!this.__VUE_I18N_BRIDGE__)return null;var e=this,n=this._vm;return this.vm.$watch("locale",(function(r){n.$set(n,"locale",r),e.__VUE_I18N_BRIDGE__&&t&&(t.locale.value=r),n.$forceUpdate()}),{immediate:!0})}if(!this._sync||!this._root)return null;var r=this._vm;return this._root.$i18n.vm.$watch("locale",(function(t){r.$set(r,"locale",t),r.$forceUpdate()}),{immediate:!0})},Kc.prototype.onComponentInstanceCreated=function(t){this._componentInstanceCreatedListener&&this._componentInstanceCreatedListener(t,this)},Xc.vm.get=function(){return this._vm},Xc.messages.get=function(){return Uu(this._getMessages())},Xc.dateTimeFormats.get=function(){return Uu(this._getDateTimeFormats())},Xc.numberFormats.get=function(){return Uu(this._getNumberFormats())},Xc.availableLocales.get=function(){return Object.keys(this.messages).sort()},Xc.locale.get=function(){return this._vm.locale},Xc.locale.set=function(t){this._vm.$set(this._vm,"locale",t)},Xc.fallbackLocale.get=function(){return this._vm.fallbackLocale},Xc.fallbackLocale.set=function(t){this._localeChainCache={},this._vm.$set(this._vm,"fallbackLocale",t)},Xc.formatFallbackMessages.get=function(){return this._formatFallbackMessages},Xc.formatFallbackMessages.set=function(t){this._formatFallbackMessages=t},Xc.missing.get=function(){return this._missing},Xc.missing.set=function(t){this._missing=t},Xc.formatter.get=function(){return this._formatter},Xc.formatter.set=function(t){this._formatter=t},Xc.silentTranslationWarn.get=function(){return this._silentTranslationWarn},Xc.silentTranslationWarn.set=function(t){this._silentTranslationWarn=t},Xc.silentFallbackWarn.get=function(){return this._silentFallbackWarn},Xc.silentFallbackWarn.set=function(t){this._silentFallbackWarn=t},Xc.preserveDirectiveContent.get=function(){return this._preserveDirectiveContent},Xc.preserveDirectiveContent.set=function(t){this._preserveDirectiveContent=t},Xc.warnHtmlInMessage.get=function(){return this._warnHtmlInMessage},Xc.warnHtmlInMessage.set=function(t){var e=this,n=this._warnHtmlInMessage;if(this._warnHtmlInMessage=t,n!==t&&("warn"===t||"error"===t)){var r=this._getMessages();Object.keys(r).forEach((function(t){e._checkLocaleMessage(t,e._warnHtmlInMessage,r[t])}))}},Xc.postTranslation.get=function(){return this._postTranslation},Xc.postTranslation.set=function(t){this._postTranslation=t},Xc.sync.get=function(){return this._sync},Xc.sync.set=function(t){this._sync=t},Kc.prototype._getMessages=function(){return this._vm.messages},Kc.prototype._getDateTimeFormats=function(){return this._vm.dateTimeFormats},Kc.prototype._getNumberFormats=function(){return this._vm.numberFormats},Kc.prototype._warnDefault=function(t,e,n,r,i,o){if(!$u(n))return n;if(this._missing){var a=this._missing.apply(null,[t,e,r,i]);if(Ru(a))return a}else 0;if(this._formatFallbackMessages){var s=Fu.apply(void 0,i);return this._render(e,o,s.params,e)}return e},Kc.prototype._isFallbackRoot=function(t){return(this._fallbackRootWithEmptyString?!t:$u(t))&&!$u(this._root)&&this._fallbackRoot},Kc.prototype._isSilentFallbackWarn=function(t){return this._silentFallbackWarn instanceof RegExp?this._silentFallbackWarn.test(t):this._silentFallbackWarn},Kc.prototype._isSilentFallback=function(t,e){return this._isSilentFallbackWarn(e)&&(this._isFallbackRoot()||t!==this.fallbackLocale)},Kc.prototype._isSilentTranslationWarn=function(t){return this._silentTranslationWarn instanceof RegExp?this._silentTranslationWarn.test(t):this._silentTranslationWarn},Kc.prototype._interpolate=function(t,e,n,r,i,o,a){if(!e)return null;var s,u=this._path.getPathValue(e,n);if(Eu(u)||Lu(u))return u;if($u(u)){if(!Lu(e))return null;if(s=e[n],!Ru(s)&&!Nu(s))return null}else{if(!Ru(u)&&!Nu(u))return null;s=u}return Ru(s)&&(s.indexOf("@:")>=0||s.indexOf("@.")>=0)&&(s=this._link(t,e,s,r,"raw",o,a)),this._render(s,i,o,n)},Kc.prototype._link=function(t,e,n,r,i,o,a){var s=n,u=s.match(Vc);for(var c in u)if(u.hasOwnProperty(c)){var l=u[c],f=l.match(Wc),h=f[0],d=f[1],p=l.replace(h,"").replace(qc,"");if(zu(a,p))return s;a.push(p);var v=this._interpolate(t,e,p,r,"raw"===i?"string":i,"raw"===i?void 0:o,a);if(this._isFallbackRoot(v)){if(!this._root)throw Error("unexpected error");var g=this._root.$i18n;v=g._translate(g._getMessages(),g.locale,g.fallbackLocale,p,r,i,o)}v=this._warnDefault(t,p,v,r,Eu(o)?o:[o],i),this._modifiers.hasOwnProperty(d)?v=this._modifiers[d](v):Hc.hasOwnProperty(d)&&(v=Hc[d](v)),a.pop(),s=v?s.replace(l,v):s}return s},Kc.prototype._createMessageContext=function(t,e,n,r){var i=this,o=Eu(t)?t:[],a=ju(t)?t:{},s=function(t){return o[t]},u=function(t){return a[t]},c=this._getMessages(),l=this.locale;return{list:s,named:u,values:t,formatter:e,path:n,messages:c,locale:l,linked:function(t){return i._interpolate(l,c[l]||{},t,null,r,void 0,[t])}}},Kc.prototype._render=function(t,e,n,r){if(Nu(t))return t(this._createMessageContext(n,this._formatter||Yc,r,e));var i=this._formatter.interpolate(t,n,r);return i||(i=Yc.interpolate(t,n,r)),"string"!==e||Ru(i)?i:i.join("")},Kc.prototype._appendItemToChain=function(t,e,n){var r=!1;return zu(t,e)||(r=!0,e&&(r="!"!==e[e.length-1],e=e.replace(/!/g,""),t.push(e),n&&n[e]&&(r=n[e]))),r},Kc.prototype._appendLocaleToChain=function(t,e,n){var r,i=e.split("-");do{var o=i.join("-");r=this._appendItemToChain(t,o,n),i.splice(-1,1)}while(i.length&&!0===r);return r},Kc.prototype._appendBlockToChain=function(t,e,n){for(var r=!0,i=0;i0)o[a]=arguments[a+4];if(!t)return"";var s=Fu.apply(void 0,o);this._escapeParameterHtml&&(s.params=Ku(s.params));var u=s.locale||e,c=this._translate(n,u,this.fallbackLocale,t,r,"string",s.params);if(this._isFallbackRoot(c)){if(!this._root)throw Error("unexpected error");return(i=this._root).$t.apply(i,[t].concat(o))}return c=this._warnDefault(u,t,c,r,o,"string"),this._postTranslation&&null!==c&&void 0!==c&&(c=this._postTranslation(c,t)),c},Kc.prototype.t=function(t){var e,n=[],r=arguments.length-1;while(r-- >0)n[r]=arguments[r+1];return(e=this)._t.apply(e,[t,this.locale,this._getMessages(),null].concat(n))},Kc.prototype._i=function(t,e,n,r,i){var o=this._translate(n,e,this.fallbackLocale,t,r,"raw",i);if(this._isFallbackRoot(o)){if(!this._root)throw Error("unexpected error");return this._root.$i18n.i(t,e,i)}return this._warnDefault(e,t,o,r,[i],"raw")},Kc.prototype.i=function(t,e,n){return t?(Ru(e)||(e=this.locale),this._i(t,e,this._getMessages(),null,n)):""},Kc.prototype._tc=function(t,e,n,r,i){var o,a=[],s=arguments.length-5;while(s-- >0)a[s]=arguments[s+5];if(!t)return"";void 0===i&&(i=1);var u={count:i,n:i},c=Fu.apply(void 0,a);return c.params=Object.assign(u,c.params),a=null===c.locale?[c.params]:[c.locale,c.params],this.fetchChoice((o=this)._t.apply(o,[t,e,n,r].concat(a)),i)},Kc.prototype.fetchChoice=function(t,e){if(!t||!Ru(t))return null;var n=t.split("|");return e=this.getChoiceIndex(e,n.length),n[e]?n[e].trim():t},Kc.prototype.tc=function(t,e){var n,r=[],i=arguments.length-2;while(i-- >0)r[i]=arguments[i+2];return(n=this)._tc.apply(n,[t,this.locale,this._getMessages(),null,e].concat(r))},Kc.prototype._te=function(t,e,n){var r=[],i=arguments.length-3;while(i-- >0)r[i]=arguments[i+3];var o=Fu.apply(void 0,r).locale||e;return this._exist(n[o],t)},Kc.prototype.te=function(t,e){return this._te(t,this.locale,this._getMessages(),e)},Kc.prototype.getLocaleMessage=function(t){return Uu(this._vm.messages[t]||{})},Kc.prototype.setLocaleMessage=function(t,e){"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||this._checkLocaleMessage(t,this._warnHtmlInMessage,e),this._vm.$set(this._vm.messages,t,e)},Kc.prototype.mergeLocaleMessage=function(t,e){"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||this._checkLocaleMessage(t,this._warnHtmlInMessage,e),this._vm.$set(this._vm.messages,t,qu("undefined"!==typeof this._vm.messages[t]&&Object.keys(this._vm.messages[t]).length?Object.assign({},this._vm.messages[t]):{},e))},Kc.prototype.getDateTimeFormat=function(t){return Uu(this._vm.dateTimeFormats[t]||{})},Kc.prototype.setDateTimeFormat=function(t,e){this._vm.$set(this._vm.dateTimeFormats,t,e),this._clearDateTimeFormat(t,e)},Kc.prototype.mergeDateTimeFormat=function(t,e){this._vm.$set(this._vm.dateTimeFormats,t,qu(this._vm.dateTimeFormats[t]||{},e)),this._clearDateTimeFormat(t,e)},Kc.prototype._clearDateTimeFormat=function(t,e){for(var n in e){var r=t+"__"+n;this._dateTimeFormatters.hasOwnProperty(r)&&delete this._dateTimeFormatters[r]}},Kc.prototype._localizeDateTime=function(t,e,n,r,i){for(var o=e,a=r[o],s=this._getLocaleChain(e,n),u=0;u0)e[n]=arguments[n+1];var r=this.locale,i=null;return 1===e.length?Ru(e[0])?i=e[0]:ju(e[0])&&(e[0].locale&&(r=e[0].locale),e[0].key&&(i=e[0].key)):2===e.length&&(Ru(e[0])&&(i=e[0]),Ru(e[1])&&(r=e[1])),this._d(t,r,i)},Kc.prototype.getNumberFormat=function(t){return Uu(this._vm.numberFormats[t]||{})},Kc.prototype.setNumberFormat=function(t,e){this._vm.$set(this._vm.numberFormats,t,e),this._clearNumberFormat(t,e)},Kc.prototype.mergeNumberFormat=function(t,e){this._vm.$set(this._vm.numberFormats,t,qu(this._vm.numberFormats[t]||{},e)),this._clearNumberFormat(t,e)},Kc.prototype._clearNumberFormat=function(t,e){for(var n in e){var r=t+"__"+n;this._numberFormatters.hasOwnProperty(r)&&delete this._numberFormatters[r]}},Kc.prototype._getNumberFormatter=function(t,e,n,r,i,o){for(var a=e,s=r[a],u=this._getLocaleChain(e,n),c=0;c0)e[n]=arguments[n+1];var r=this.locale,i=null,o=null;return 1===e.length?Ru(e[0])?i=e[0]:ju(e[0])&&(e[0].locale&&(r=e[0].locale),e[0].key&&(i=e[0].key),o=Object.keys(e[0]).reduce((function(t,n){var r;return zu(Pu,n)?Object.assign({},t,(r={},r[n]=e[0][n],r)):t}),null)):2===e.length&&(Ru(e[0])&&(i=e[0]),Ru(e[1])&&(r=e[1])),this._n(t,r,i,o)},Kc.prototype._ntp=function(t,e,n,r){if(!Kc.availabilities.numberFormat)return[];if(!n){var i=r?new Intl.NumberFormat(e,r):new Intl.NumberFormat(e);return i.formatToParts(t)}var o=this._getNumberFormatter(t,e,this.fallbackLocale,this._getNumberFormats(),n,r),a=o&&o.formatToParts(t);if(this._isFallbackRoot(a)){if(!this._root)throw Error("unexpected error");return this._root.$i18n._ntp(t,e,n,r)}return a||[]},Object.defineProperties(Kc.prototype,Xc),Object.defineProperty(Kc,"availabilities",{get:function(){if(!Gc){var t="undefined"!==typeof Intl;Gc={dateTimeFormat:t&&"undefined"!==typeof Intl.DateTimeFormat,numberFormat:t&&"undefined"!==typeof Intl.NumberFormat}}return Gc}}),Kc.install=vc,Kc.version="8.27.2";var Jc=Kc,Zc=n("c2a1"),Qc=n("d266"),tl=function(t,e){Jc.install(t);const n=new Jc({locale:e.language||"en",fallbackLocale:"en",messages:i});t.prototype._i18n=n;const o=Y();t.mixin({components:{...r},data(){return{magpie:null}},computed:{$magpie(){return this.magpie||this.$parent&&this.$parent.$magpie||o},$i18n(){return n}},magpie:e,mounted(){this.$options.socket&&this.$magpie.socket&&this.$magpie.socket.setUpSubscriptions(this.$options.socket,this)},beforeDestroy(){this.$options.socket&&this.$magpie.socket&&this.$magpie.socket.tearDownSubscriptions(this.$options.socket)}})}},3698:function(t,e){function n(t,e){return null==t?void 0:t[e]}t.exports=n},"36da":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Konva=void 0;var r=n("d777"),i=n("9cb8"),o=n("4971"),a=n("ea61"),s=n("eba4"),u=n("0ff5"),c=n("2fb2"),l=n("f35c"),f=n("df93"),h=n("fce6"),d=n("ed3d"),p=n("06f8"),v=n("c527"),g=n("f655");e.Konva=i.Util._assign(r.Konva,{Collection:i.Collection,Util:i.Util,Transform:i.Transform,Node:o.Node,ids:o.ids,names:o.names,Container:a.Container,Stage:s.Stage,stages:s.stages,Layer:u.Layer,FastLayer:c.FastLayer,Group:l.Group,DD:f.DD,Shape:h.Shape,shapes:h.shapes,Animation:d.Animation,Tween:p.Tween,Easings:p.Easings,Context:v.Context,Canvas:g.Canvas})},3729:function(t,e,n){var r=n("9e69"),i=n("00fd"),o=n("29f3"),a="[object Null]",s="[object Undefined]",u=r?r.toStringTag:void 0;function c(t){return null==t?void 0===t?s:a:u&&u in Object(t)?i(t):o(t)}t.exports=c},"383f":function(t,e,n){"use strict";var r=this&&this.__extends||function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0}),e.Ellipse=void 0;var i=n("9cb8"),o=n("f0b4"),a=n("fce6"),s=n("4546"),u=n("d777"),c=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r(e,t),e.prototype._sceneFunc=function(t){var e=this.radiusX(),n=this.radiusY();t.beginPath(),t.save(),e!==n&&t.scale(1,n/e),t.arc(0,0,e,0,2*Math.PI,!1),t.restore(),t.closePath(),t.fillStrokeShape(this)},e.prototype.getWidth=function(){return 2*this.radiusX()},e.prototype.getHeight=function(){return 2*this.radiusY()},e.prototype.setWidth=function(t){this.radiusX(t/2)},e.prototype.setHeight=function(t){this.radiusY(t/2)},e}(a.Shape);e.Ellipse=c,c.prototype.className="Ellipse",c.prototype._centroid=!0,c.prototype._attrsAffectingSize=["radiusX","radiusY"],u._registerNode(c),o.Factory.addComponentsGetterSetter(c,"radius",["x","y"]),o.Factory.addGetterSetter(c,"radiusX",0,s.getNumberValidator()),o.Factory.addGetterSetter(c,"radiusY",0,s.getNumberValidator()),i.Collection.mapMethods(c)},"38e4":function(t,e){},3956:function(t,e,n){var r=n("d460"),i=n("3ff1");function o(t){return r(i(t))}t.exports=o},"39a4":function(t,e){},"39cd":function(t,e){},"39ff":function(t,e,n){var r=n("0b07"),i=n("2b3e"),o=r(i,"WeakMap");t.exports=o},"3a54":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r=n("78ef"),i=(0,r.regex)("alphaNum",/^[a-zA-Z0-9]*$/);e.default=i},"3a7c":function(t,e,n){function r(t){return Array.isArray?Array.isArray(t):"[object Array]"===m(t)}function i(t){return"boolean"===typeof t}function o(t){return null===t}function a(t){return null==t}function s(t){return"number"===typeof t}function u(t){return"string"===typeof t}function c(t){return"symbol"===typeof t}function l(t){return void 0===t}function f(t){return"[object RegExp]"===m(t)}function h(t){return"object"===typeof t&&null!==t}function d(t){return"[object Date]"===m(t)}function p(t){return"[object Error]"===m(t)||t instanceof Error}function v(t){return"function"===typeof t}function g(t){return null===t||"boolean"===typeof t||"number"===typeof t||"string"===typeof t||"symbol"===typeof t||"undefined"===typeof t}function m(t){return Object.prototype.toString.call(t)}e.isArray=r,e.isBoolean=i,e.isNull=o,e.isNullOrUndefined=a,e.isNumber=s,e.isString=u,e.isSymbol=c,e.isUndefined=l,e.isRegExp=f,e.isObject=h,e.isDate=d,e.isError=p,e.isFunction=v,e.isPrimitive=g,e.isBuffer=n("b639").Buffer.isBuffer},"3b4a":function(t,e,n){var r=n("0b07"),i=function(){try{var t=r(Object,"defineProperty");return t({},"",{}),t}catch(e){}}();t.exports=i},"3bb4":function(t,e,n){var r=n("08cc"),i=n("ec69");function o(t){var e=i(t),n=e.length;while(n--){var o=e[n],a=t[o];e[n]=[o,a,r(a)]}return e}t.exports=o},"3d7b":function(t,e){},"3fb5":function(t,e){"function"===typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}}},"3ff1":function(t,e,n){var r=n("266a"),i=n("ec69");function o(t){return null==t?[]:r(t,i(t))}t.exports=o},"402d":function(t,e,n){"use strict";n("dc6a")},"405a":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Pixelate=void 0;var r=n("f0b4"),i=n("9cb8"),o=n("4971"),a=n("4546"),s=function(t){var e,n,r,o,a,s,u,c,l,f,h,d,p,v,g=Math.ceil(this.pixelSize()),m=t.width,y=t.height,b=Math.ceil(m/g),_=Math.ceil(y/g),w=t.data;if(g<=0)i.Util.error("pixelSize value can not be <= 0");else for(d=0;d=m))for(n=f;n=y||(r=4*(m*n+e),o+=w[r+0],a+=w[r+1],s+=w[r+2],u+=w[r+3],v+=1);for(o/=v,a/=v,s/=v,u/=v,e=c;e=m))for(n=f;n=y||(r=4*(m*n+e),w[r+0]=o,w[r+1]=a,w[r+2]=s,w[r+3]=u)}};e.Pixelate=s,r.Factory.addGetterSetter(o.Node,"pixelSize",8,a.getNumberValidator(),r.Factory.afterSetFilter)},4092:function(t,e,n){},4143:function(t,e,n){},"41c3":function(t,e,n){var r=n("1a8c"),i=n("eac5"),o=n("ec8c"),a=Object.prototype,s=a.hasOwnProperty;function u(t){if(!r(t))return o(t);var e=i(t),n=[];for(var a in t)("constructor"!=a||!e&&s.call(t,a))&&n.push(a);return n}t.exports=u},4245:function(t,e,n){var r=n("1290");function i(t,e){var n=t.__data__;return r(e)?n["string"==typeof e?"string":"hash"]:n.map}t.exports=i},42454:function(t,e,n){var r=n("f909"),i=n("2ec1"),o=i((function(t,e,n){r(t,e,n)}));t.exports=o},4284:function(t,e){function n(t,e){var n=-1,r=null==t?0:t.length;while(++n255?255:t<0?0:Math.round(t)}function s(t){return t>1?1:t<1e-4?1e-4:t}function u(){if(r.Konva.isUnminified)return function(t,e){return i.Util._isNumber(t)||i.Util.warn(o(t)+' is a not valid value for "'+e+'" attribute. The value should be a number.'),t}}function c(t){if(r.Konva.isUnminified)return function(e,n){var r=i.Util._isNumber(e),a=i.Util._isArray(e)&&e.length==t;return r||a||i.Util.warn(o(e)+' is a not valid value for "'+n+'" attribute. The value should be a number or Array('+t+")"),e}}function l(){if(r.Konva.isUnminified)return function(t,e){var n=i.Util._isNumber(t),r="auto"===t;return n||r||i.Util.warn(o(t)+' is a not valid value for "'+e+'" attribute. The value should be a number or "auto".'),t}}function f(){if(r.Konva.isUnminified)return function(t,e){return i.Util._isString(t)||i.Util.warn(o(t)+' is a not valid value for "'+e+'" attribute. The value should be a string.'),t}}function h(){if(r.Konva.isUnminified)return function(t,e){var n=i.Util._isString(t),r="[object CanvasGradient]"===Object.prototype.toString.call(t);return n||r||i.Util.warn(o(t)+' is a not valid value for "'+e+'" attribute. The value should be a string or a native gradient.'),t}}function d(){if(r.Konva.isUnminified)return function(t,e){return i.Util._isFunction(t)||i.Util.warn(o(t)+' is a not valid value for "'+e+'" attribute. The value should be a function.'),t}}function p(){if(r.Konva.isUnminified)return function(t,e){return i.Util._isArray(t)?t.forEach((function(t){i.Util._isNumber(t)||i.Util.warn('"'+e+'" attribute has non numeric element '+t+". Make sure that all elements are numbers.")})):i.Util.warn(o(t)+' is a not valid value for "'+e+'" attribute. The value should be a array of numbers.'),t}}function v(){if(r.Konva.isUnminified)return function(t,e){var n=!0===t||!1===t;return n||i.Util.warn(o(t)+' is a not valid value for "'+e+'" attribute. The value should be a boolean.'),t}}function g(t){if(r.Konva.isUnminified)return function(e,n){return i.Util.isObject(e)||i.Util.warn(o(e)+' is a not valid value for "'+n+'" attribute. The value should be an object with properties '+t),e}}e.RGBComponent=a,e.alphaComponent=s,e.getNumberValidator=u,e.getNumberOrArrayOfNumbersValidator=c,e.getNumberOrAutoValidator=l,e.getStringValidator=f,e.getStringOrGradientValidator=h,e.getFunctionValidator=d,e.getNumberArrayValidator=p,e.getBooleanValidator=v,e.getComponentValidator=g},"45b8":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r=n("78ef"),i=(0,r.regex)("numeric",/^[0-9]*$/);e.default=i},"461e":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HSV=void 0;var r=n("f0b4"),i=n("4971"),o=n("4546"),a=function(t){var e,n,r,i,o,a=t.data,s=a.length,u=Math.pow(2,this.value()),c=Math.pow(2,this.saturation()),l=Math.abs(this.hue()+360)%360,f=u*c*Math.cos(l*Math.PI/180),h=u*c*Math.sin(l*Math.PI/180),d=.299*u+.701*f+.167*h,p=.587*u-.587*f+.33*h,v=.114*u-.114*f-.497*h,g=.299*u-.299*f-.328*h,m=.587*u+.413*f+.035*h,y=.114*u-.114*f+.293*h,b=.299*u-.3*f+1.25*h,_=.587*u-.586*f-1.05*h,w=.114*u+.886*f-.2*h;for(e=0;e0&&t[0].getDepth()<=i&&s(t)}return o.nodeType!==E&&s(o.getStage().getChildren()),a},t.prototype.getDepth=function(){var t=0,e=this.parent;while(e)t++,e=e.parent;return t},t.prototype._batchTransformChanges=function(t){this._batchingTransformChange=!0,t(),this._batchingTransformChange=!1,this._needClearTransformCache&&(this._clearCache(A),this._clearSelfAndDescendantCache(v,!0)),this._needClearTransformCache=!1},t.prototype.setPosition=function(t){var e=this;return this._batchTransformChanges((function(){e.x(t.x),e.y(t.y)})),this},t.prototype.getPosition=function(){return{x:this.x(),y:this.y()}},t.prototype.getAbsolutePosition=function(t){var e=!1,n=this.parent;while(n){if(n.isCached()){e=!0;break}n=n.parent}e&&!t&&(t=!0);var i=this.getAbsoluteTransform(t).getMatrix(),o=new r.Transform,a=this.offset();return o.m=i.slice(),o.translate(a.x,a.y),o.getTranslation()},t.prototype.setAbsolutePosition=function(t){var e=this._clearTransform();this.attrs.x=e.x,this.attrs.y=e.y,delete e.x,delete e.y,this._clearCache(A);var n=this._getAbsoluteTransform().copy();return n.invert(),n.translate(t.x,t.y),t={x:this.attrs.x+n.getTranslation().x,y:this.attrs.y+n.getTranslation().y},this._setTransform(e),this.setPosition({x:t.x,y:t.y}),this._clearCache(A),this._clearSelfAndDescendantCache(v),this},t.prototype._setTransform=function(t){var e;for(e in t)this.attrs[e]=t[e]},t.prototype._clearTransform=function(){var t={x:this.x(),y:this.y(),rotation:this.rotation(),scaleX:this.scaleX(),scaleY:this.scaleY(),offsetX:this.offsetX(),offsetY:this.offsetY(),skewX:this.skewX(),skewY:this.skewY()};return this.attrs.x=0,this.attrs.y=0,this.attrs.rotation=0,this.attrs.scaleX=1,this.attrs.scaleY=1,this.attrs.offsetX=0,this.attrs.offsetY=0,this.attrs.skewX=0,this.attrs.skewY=0,t},t.prototype.move=function(t){var e=t.x,n=t.y,r=this.x(),i=this.y();return void 0!==e&&(r+=e),void 0!==n&&(i+=n),this.setPosition({x:r,y:i}),this},t.prototype._eachAncestorReverse=function(t,e){var n,r,i=[],o=this.getParent();if(!e||e._id!==this._id){i.unshift(this);while(o&&(!e||o._id!==e._id))i.unshift(o),o=o.parent;for(n=i.length,r=0;r0&&(this.parent.children.splice(t,1),this.parent.children.splice(t-1,0,this),this.parent._setChildrenIndices(),!0)},t.prototype.moveToBottom=function(){if(!this.parent)return r.Util.warn("Node has no parent. moveToBottom function is ignored."),!1;var t=this.index;return t>0&&(this.parent.children.splice(t,1),this.parent.children.unshift(this),this.parent._setChildrenIndices(),!0)},t.prototype.setZIndex=function(t){if(!this.parent)return r.Util.warn("Node has no parent. zIndex parameter is ignored."),this;(t<0||t>=this.parent.children.length)&&r.Util.warn("Unexpected value "+t+" for zIndex property. zIndex is just index of a node in children of its parent. Expected value is from 0 to "+(this.parent.children.length-1)+".");var e=this.index;return this.parent.children.splice(e,1),this.parent.children.splice(t,0,this),this.parent._setChildrenIndices(),this},t.prototype.getAbsoluteOpacity=function(){return this._getCache(d,this._getAbsoluteOpacity)},t.prototype._getAbsoluteOpacity=function(){var t=this.opacity(),e=this.getParent();return e&&!e._isUnderCache&&(t*=e.getAbsoluteOpacity()),t},t.prototype.moveTo=function(t){return this.getParent()!==t&&(this._remove(),t.add(this)),this},t.prototype.toObject=function(){var t,e,n,i,o,a={},s=this.getAttrs();for(t in a.attrs={},s)e=s[t],o=r.Util.isObject(e)&&!r.Util._isPlainObject(e)&&!r.Util._isArray(e),o||(n="function"===typeof this[t]&&this[t],delete s[t],i=n?n.call(this):null,s[t]=e,i!==e&&(a.attrs[t]=e));return a.className=this.getClassName(),r.Util._prepareToStringify(a)},t.prototype.toJSON=function(){return JSON.stringify(this.toObject())},t.prototype.getParent=function(){return this.parent},t.prototype.findAncestors=function(t,e,n){var r=[];e&&this._isMatch(t)&&r.push(this);var i=this.parent;while(i){if(i===n)return r;i._isMatch(t)&&r.push(i),i=i.parent}return r},t.prototype.isAncestorOf=function(t){return!1},t.prototype.findAncestor=function(t,e,n){return this.findAncestors(t,e,n)[0]},t.prototype._isMatch=function(t){if(!t)return!1;if("function"===typeof t)return t(this);var e,n,i=t.replace(/ /g,"").split(","),o=i.length;for(e=0;e=0;if(r&&!this.isDragging()){var i=!1;s.DD._dragElements.forEach((function(t){e.isAncestorOf(t.node)&&(i=!0)})),i||this._createDragElement(t)}}))},t.prototype._dragChange=function(){if(this.attrs.draggable)this._listenDrag();else{this._dragCleanup();var t=this.getStage();if(!t)return;var e=s.DD._dragElements.get(this._id),n=e&&"dragging"===e.dragStatus,r=e&&"ready"===e.dragStatus;n?this.stopDrag():r&&s.DD._dragElements.delete(this._id)}},t.prototype._dragCleanup=function(){this.off("mousedown.konva"),this.off("touchstart.konva")},t.create=function(t,e){return r.Util._isString(t)&&(t=JSON.parse(t)),this._createNode(t,e)},t._createNode=function(e,n){var i,o,s,u=t.prototype.getClassName.call(e),c=e.children;n&&(e.attrs.container=n),a._NODES_REGISTRY[u]||(r.Util.warn('Can not find a node with class name "'+u+'". Fallback to "Shape".'),u="Shape");var l=a._NODES_REGISTRY[u];if(i=new l(e.attrs),c)for(o=c.length,s=0;sn.parts.length&&(r.parts.length=n.parts.length)}else{var a=[];for(i=0;i-1)e[t]=n[t];else{var r=Object.getOwnPropertyDescriptor(n,t);void 0!==r.value?"function"===typeof r.value?(e.methods||(e.methods={}))[t]=r.value:(e.mixins||(e.mixins=[])).push({data:function(){var e;return e={},e[t]=r.value,e}}):(r.get||r.set)&&((e.computed||(e.computed={}))[t]={get:r.get,set:r.set})}})),(e.mixins||(e.mixins=[])).push({data:function(){return d(this,t)}});var r=t.__decorators__;r&&(r.forEach((function(t){return t(e)})),delete t.__decorators__);var s=Object.getPrototypeOf(t.prototype),u=s instanceof i?s.constructor:i,c=u.extend(e);return g(c,t,u),o&&a(c,t),c}function g(t,e,n){Object.getOwnPropertyNames(e).forEach((function(r){if("prototype"!==r){var i=Object.getOwnPropertyDescriptor(t,r);if(!i||i.configurable){var o=Object.getOwnPropertyDescriptor(e,r);if(!c){if("cid"===r)return;var a=Object.getOwnPropertyDescriptor(n,r);if(!h(o.value)&&a&&a.value===o.value)return}Object.defineProperty(t,r,o)}}}))}function m(t){return"function"===typeof t?v(t):function(e){return v(e,t)}}m.registerHooks=function(t){p.push.apply(p,t)},e.default=m,e.createDecorator=l,e.mixins=f},"7a57":function(t,e,n){var r=n("24fb");e=r(!1),e.push([t.i,".vue-slider{position:relative;-webkit-box-sizing:content-box;box-sizing:content-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:block;-webkit-tap-highlight-color:rgba(0,0,0,0)}.vue-slider-rail{position:relative;width:100%;height:100%;-webkit-transition-property:width,height,left,right,top,bottom;transition-property:width,height,left,right,top,bottom}.vue-slider-process{position:absolute;z-index:1}",""]),t.exports=e},8875:function(t,e,n){var r,i,o;(function(n,a){i=[],r=a,o="function"===typeof r?r.apply(e,i):r,void 0===o||(t.exports=o)})("undefined"!==typeof self&&self,(function(){function t(){var e=Object.getOwnPropertyDescriptor(document,"currentScript");if(!e&&"currentScript"in document&&document.currentScript)return document.currentScript;if(e&&e.get!==t&&document.currentScript)return document.currentScript;try{throw new Error}catch(d){var n,r,i,o=/.*at [^(]*\((.*):(.+):(.+)\)$/gi,a=/@([^@]*):(\d+):(\d+)\s*$/gi,s=o.exec(d.stack)||a.exec(d.stack),u=s&&s[1]||!1,c=s&&s[2]||!1,l=document.location.href.replace(document.location.hash,""),f=document.getElementsByTagName("script");u===l&&(n=document.documentElement.outerHTML,r=new RegExp("(?:[^\\n]+?\\n){0,"+(c-2)+"}[^<]*\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--1-0!../../../vue-loader/lib/index.js??vue-loader-options!./Experiment.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--1-0!../../../vue-loader/lib/index.js??vue-loader-options!./Experiment.vue?vue&type=script&lang=js&\"","var render, staticRenderFns\nimport script from \"./Screen.vue?vue&type=script&lang=js&\"\nexport * from \"./Screen.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Screen.vue?vue&type=style&index=0&id=2db71145&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2db71145\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Screen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"debug-statement\"},[_c('h2',[_vm._v(\"magpie \"+_vm._s(_vm.type))]),_vm._v(\" \"+_vm._s(_vm.text)+\" \")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n
magpie {{ type }} \n {{ text }}\n
\n\n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--1-0!../../../vue-loader/lib/index.js??vue-loader-options!./DebugStatement.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--1-0!../../../vue-loader/lib/index.js??vue-loader-options!./DebugStatement.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DebugStatement.vue?vue&type=template&id=5a63c536&scoped=true&\"\nimport script from \"./DebugStatement.vue?vue&type=script&lang=js&\"\nexport * from \"./DebugStatement.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DebugStatement.vue?vue&type=style&index=0&id=5a63c536&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5a63c536\",\n null\n \n)\n\nexport default component.exports","\n### Simple screen\n\n```vue\n\n \n Hello World.\n \n \n```\n\n### Show progress\n\n```vue\n\n \n Hello World.\n Next \n \n \n```\n\n### Multiple slides\nOne screen may consist of multiple slides that are numbered incrementally and displayed one after another.\nYou can go to the next slide with the `nextSlide` function that is exposed by the Screen component.\n\n```vue\n\n \n\n \n Hello World .\n \n\n \n Hello you.\n \n\n \n \n```\n\n### Store measurements\nThe screen component also conveniently exposes an object for you to store in the measurements of the current screen, so you can later save them.\n\n```vue\n\n \n \n Hello\n \n {{ $magpie.measurements.text }}?\n Done \n \n \n\n \n\n \n```\n\n### Validate measurements\nThe screen can also be used to validate observations.\n\n```vue\n\n \n\n \n Hello\n \n\n {{ $magpie.measurements.text }}?\n\n Done \n\n At least 4 characters required and only alphabetic characters, please.
\n\n \n\n \n\n \n \n```\n\n### Jump using labels\n\n```vue\n\n \n Hello {{i}}th World.\n Next \n Abort \n \n \n World's End.\n Restart \n \n \n```\n\n \n\n\n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--1-0!../../../vue-loader/lib/index.js??vue-loader-options!./Screen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--1-0!../../../vue-loader/lib/index.js??vue-loader-options!./Screen.vue?vue&type=script&lang=js&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n
\n \n\n\n","import mod from \"-!../../../cache-loader/dist/cjs.js??ref--1-0!../../../vue-loader/lib/index.js??vue-loader-options!./Slide.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../cache-loader/dist/cjs.js??ref--1-0!../../../vue-loader/lib/index.js??vue-loader-options!./Slide.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Slide.vue?vue&type=template&id=5720c65a&\"\nimport script from \"./Slide.vue?vue&type=script&lang=js&\"\nexport * from \"./Slide.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"completion\"},[_c('div',{staticClass:\"question\"},_vm._l((_vm.slices),function(slice,i){return _c('span',{key:i},[_vm._v(_vm._s(slice)+\" \"),(i !== _vm.slices.length - 1)?_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.answers[i]),expression:\"answers[i]\"}],on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.answers, i, $event.target.multiple ? $$selectedVal : $$selectedVal[0])},function($event){/**\n * Change event with the fully completed text. Useful for response.sync\n */\n _vm.$emit('update:response', _vm.fullAnswer);\n /**\n * Change event as an array of completions. Useful for responses.sync\n */\n _vm.$emit('update:responses', _vm.answers);}]}},_vm._l((_vm.options[i]),function(option){return _c('option',{key:option,domProps:{\"textContent\":_vm._s(option)}})}),0):_vm._e()])}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n```vue\n\n \n\n \n \n A {{$magpie.measurements.words[0]}} would never fall over {{$magpie.measurements.words[1]}}
\n Done \n \n\n \n\n \n```\n \n\n \n
\n {{ slice }}\n \n \n
\n
\n \n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./CompletionInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./CompletionInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CompletionInput.vue?vue&type=template&id=20ec9a19&scoped=true&\"\nimport script from \"./CompletionInput.vue?vue&type=script&lang=js&\"\nexport * from \"./CompletionInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CompletionInput.vue?vue&type=style&index=0&id=20ec9a19&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"20ec9a19\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CompletionInput.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"dropdown-input\"},[_c('select',{ref:\"input\",on:{\"change\":function($event){return _vm.$emit('update:response', _vm.$refs.input.value)}}},_vm._l((_vm.options),function(option){return _c('option',{key:option,domProps:{\"value\":option,\"textContent\":_vm._s(option)}})}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n```vue\n\n \n\n \n Fries or soup?
\n \n I disagree!
\n Submit \n \n\n \n\n \n\n \n```\n \n\n\n \n \n \n \n
\n \n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./DropdownInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./DropdownInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DropdownInput.vue?vue&type=template&id=6fb3df0e&scoped=true&\"\nimport script from \"./DropdownInput.vue?vue&type=script&lang=js&\"\nexport * from \"./DropdownInput.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6fb3df0e\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DropdownInput.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"forced_choice\"},[_c('div',{staticClass:\"options\"},_vm._l((_vm.options),function(option){return _c('div',{key:option,staticClass:\"option\",on:{\"click\":function($event){return _vm.onOptionClick(option)}}},[_vm._v(\" \"+_vm._s(option)+\" \")])}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n```vue\n\n \n\n \n What's on the bread?
\n \n A sweet tooth, eh!?
\n Submit \n \n\n \n\n \n```\n\nThe following example will submit the response directly on clicking it.\n\n```vue\n\n \n\n \n What's on the bread?
\n \n \n\n \n \n```\n\n \n\n\n \n \n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./ForcedChoiceInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./ForcedChoiceInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ForcedChoiceInput.vue?vue&type=template&id=0428af94&scoped=true&\"\nimport script from \"./ForcedChoiceInput.vue?vue&type=script&lang=js&\"\nexport * from \"./ForcedChoiceInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ForcedChoiceInput.vue?vue&type=style&index=0&id=0428af94&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0428af94\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ForcedChoiceInput.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"image_selection\"},[_c('div',{staticClass:\"options\"},_vm._l((_vm.options),function(option){return _c('div',{key:option.label,staticClass:\"option\",on:{\"click\":function($event){return _vm.onOptionClick(option.label)}}},[_c('img',{attrs:{\"src\":option.src,\"alt\":option.label},on:{\"click\":function($event){return _vm.onOptionClick(option.label)}}})])}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n```vue\n\n \n\n \n Fries or soup?
\n \n \n\n \n \n```\n \n\n\n \n
\n
\n
\n
\n
\n
\n \n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./ImageSelectionInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./ImageSelectionInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ImageSelectionInput.vue?vue&type=template&id=36baf217&scoped=true&\"\nimport script from \"./ImageSelectionInput.vue?vue&type=script&lang=js&\"\nexport * from \"./ImageSelectionInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ImageSelectionInput.vue?vue&type=style&index=0&id=36baf217&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"36baf217\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ImageSelectionInput.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"keypress\"},[(_vm.showOptions)?_c('div',{staticClass:\"options\"},_vm._l((_vm.keys),function(option,key){return _c('span',{key:key},[_c('strong',{domProps:{\"textContent\":_vm._s(key)}}),_vm._v(\" = \"+_vm._s(option)+\" \")])}),0):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n```vue\n\n \n\n \n Fries or soup?
\n \n \n\n \n \n```\n \n\n\n \n
\n = {{ option }}\n \n
\n
\n \n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./KeypressInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./KeypressInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./KeypressInput.vue?vue&type=template&id=6de4318b&scoped=true&\"\nimport script from \"./KeypressInput.vue?vue&type=script&lang=js&\"\nexport * from \"./KeypressInput.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6de4318b\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./KeypressInput.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"rating\"},[_c('form',[_c('div',{staticClass:\"options\"},[_c('div',{staticClass:\"left\"},[_vm._v(_vm._s(_vm.left))]),_vm._l((_vm.count),function(i){return _c('label',{key:i},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.answers[i]),expression:\"answers[i]\"}],attrs:{\"type\":\"radio\",\"name\":\"rating\"},domProps:{\"checked\":_vm._q(_vm.answers[i],null)},on:{\"input\":function($event){return _vm.$emit('update:response', i)},\"change\":function($event){return _vm.$set(_vm.answers, i, null)}}}),_vm._v(\" \"+_vm._s(i))])}),_c('div',{staticClass:\"right\"},[_vm._v(_vm._s(_vm.right))])],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n```vue\n\n \n\n \n Fries or soup?
\n \n 4\">I concur!
\n Submit \n \n\n \n\n \n```\n\n```vue\n\n \n Fries or soup?
\n \n \n\n \n```\n \n\n\n \n \n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./RatingInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./RatingInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RatingInput.vue?vue&type=template&id=50f61df4&scoped=true&\"\nimport script from \"./RatingInput.vue?vue&type=script&lang=js&\"\nexport * from \"./RatingInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RatingInput.vue?vue&type=style&index=0&id=50f61df4&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"50f61df4\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./RatingInput.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"slider\"},[_c('div',{staticClass:\"slider-element\"},[_c('div',{staticClass:\"left\"},[_vm._v(_vm._s(_vm.left))]),_c('Slider',{staticClass:\"slider\",attrs:{\"tooltip\":_vm.tooltip ? 'always' : 'none',\"min\":_vm.min,\"max\":_vm.max,\"interval\":_vm.interval,\"disabled\":_vm.disabled},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}}),_c('div',{staticClass:\"right\"},[_vm._v(_vm._s(_vm.right))])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n```vue\n\n \n\n \n Fries or soup?
\n \n Lunch: {{$magpie.measurements.lunch}}% Soup\n Submit \n \n\n \n\n \n```\n \n\n\n \n
\n
{{ left }}
\n
\n
{{ right }}
\n
\n
\n \n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./SliderInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./SliderInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SliderInput.vue?vue&type=template&id=6c73a9d4&scoped=true&\"\nimport script from \"./SliderInput.vue?vue&type=script&lang=js&\"\nexport * from \"./SliderInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SliderInput.vue?vue&type=style&index=0&id=6c73a9d4&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c73a9d4\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SliderInput.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"textarea\"},[_c('textarea',{ref:\"text\",on:{\"input\":function($event){return _vm.$emit('update:response', _vm.$refs.text.value)}}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n```vue\n\n \n\n \n Fries or soup? Discuss.
\n \n 32\">I disagree!
\n Submit \n \n\n \n \n```\n \n\n\n \n \n
\n \n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./TextareaInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./TextareaInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TextareaInput.vue?vue&type=template&id=7a50d03b&scoped=true&\"\nimport script from \"./TextareaInput.vue?vue&type=script&lang=js&\"\nexport * from \"./TextareaInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TextareaInput.vue?vue&type=style&index=0&id=7a50d03b&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7a50d03b\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TextareaInput.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:['multiple-choice', _vm.orientation]},[_c('form',[_c('div',{staticClass:\"options\"},_vm._l((_vm.order),function(i){return _c('label',{key:i},[_c('input',{attrs:{\"type\":\"radio\",\"name\":\"options\"},domProps:{\"value\":_vm.options[i]},on:{\"input\":function($event){return _vm.$emit('update:response', _vm.options[i])}}}),(_vm.labels)?[(!_vm.optionsHtml.length)?_c('span',[_vm._v(_vm._s(_vm.options[i]))]):_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.optionsHtml[i])}})]:_vm._e()],2)}),0)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n```vue\n\n \n\n \n How was your breakfast?
\n \n Submit \n \n\n \n \n```\n\n\n```vue\n\n \n\n \n How was your breakfast?
\n \n Submit \n \n\n \n \n```\n\n```vue\n\n \n Which sentence is ungrammatical?
\n banana went out to buy some groceries.',\n 'The bear raced past the barn froze.',\n 'The horse could not have been eaten why it was racing.',\n 'The bread was sour before it was made.'\n ]\">\n \n Submit \n \n \n \n```\n\n \n\n\n \n \n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./MultipleChoiceInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./MultipleChoiceInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MultipleChoiceInput.vue?vue&type=template&id=f03be8e0&scoped=true&\"\nimport script from \"./MultipleChoiceInput.vue?vue&type=script&lang=js&\"\nexport * from \"./MultipleChoiceInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MultipleChoiceInput.vue?vue&type=style&index=0&id=f03be8e0&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f03be8e0\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./MultipleChoiceInput.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"matrix-choice\"},[_c('div',{staticClass:\"row header\"},[_c('p'),_c('div',_vm._l((_vm.options),function(option){return _c('label',{key:option,domProps:{\"textContent\":_vm._s(option)}})}),0)]),(_vm.randomize)?[_vm._l((_vm.randomizedQuestions),function([question, i]){return [_c('div',{key:i,staticClass:\"row\"},[_c('p',[_vm._v(_vm._s(question))]),_c('MultipleChoiceInput',{attrs:{\"labels\":false,\"options\":_vm.options,\"orientation\":\"horizontal\"},on:{\"update:response\":function($event){return _vm.onOptionClick(i, $event)}}})],1)]})]:[_vm._l((_vm.questions),function(question,i){return [_c('div',{key:i,staticClass:\"row\"},[_c('p',[_vm._v(_vm._s(question))]),_c('MultipleChoiceInput',{attrs:{\"labels\":false,\"options\":_vm.options,\"orientation\":\"horizontal\"},on:{\"update:response\":function($event){return _vm.onOptionClick(i, $event)}}})],1)]})],_c('div',{staticClass:\"row header\"},[_c('p'),_c('div',_vm._l((_vm.options),function(option){return _c('label',{key:option,domProps:{\"textContent\":_vm._s(option)}})}),0)])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n```vue\n\n \n\n \n \n Submit \n \n\n \n\n \n\n \n```\n\nYou can also randomize the question order. The response data will still be in the order you supplied the questions in.\n\n```vue\n\n \n\n \n \n Submit \n \n\n \n\n \n \n```\n\n\n \n\n\n \n
\n
\n \n \n \n \n
\n \n \n \n \n
\n
\n \n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./MultipleChoiceMatrixInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./MultipleChoiceMatrixInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MultipleChoiceMatrixInput.vue?vue&type=template&id=4a26fb3b&\"\nimport script from \"./MultipleChoiceMatrixInput.vue?vue&type=script&lang=js&\"\nexport * from \"./MultipleChoiceMatrixInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MultipleChoiceMatrixInput.vue?vue&type=style&index=0&id=4a26fb3b&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./MultipleChoiceMatrixInput.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"slider\"},[_c('div',{staticClass:\"slider-element\"},[_c('div',{staticClass:\"left\"},[_vm._v(_vm._s(_vm.left))]),_c('Slider',{staticClass:\"slider\",attrs:{\"tooltip\":_vm.tooltip ? 'always' : 'none',\"min\":_vm.min,\"max\":_vm.max,\"interval\":_vm.interval,\"enable-cross\":false,\"process\":_vm.process},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}}),_c('div',{staticClass:\"right\"},[_vm._v(_vm._s(_vm.right))])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n```vue\n\n\n \n\n \n How often do you eat meat, vegetarian or vegan?
\n \n \n {{$magpie.measurements.food_types[0]}}% Meat,\n {{$magpie.measurements.food_types[1]}}% Vegetarian,\n {{$magpie.measurements.food_types[2]}}% Vegan
\n Submit \n \n\n \n\n \n```\n \n\n\n \n
\n
{{ left }}
\n
\n
{{ right }}
\n
\n
\n \n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./SliderRangesInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./SliderRangesInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SliderRangesInput.vue?vue&type=template&id=5fcc2cd1&scoped=true&\"\nimport script from \"./SliderRangesInput.vue?vue&type=script&lang=js&\"\nexport * from \"./SliderRangesInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SliderRangesInput.vue?vue&type=style&index=0&id=5fcc2cd1&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5fcc2cd1\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SliderRangesInput.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"rankorder-input\"},[_c('draggable',{model:{value:(_vm.list),callback:function ($$v) {_vm.list=$$v},expression:\"list\"}},_vm._l((_vm.list),function(option,i){return _c('div',{key:i,staticClass:\"item\"},[_c('span',{staticClass:\"pill\"},[_vm._v(_vm._s(i + 1))]),_vm._v(_vm._s(option)+\" \")])}),0)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n```vue\n\n \n\n \n Please order the following foods with regards to their healthiness.
\n \n Submit \n \n\n \n\n \n\n \n```\n \n\n\n \n \n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./RankOrderInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./RankOrderInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RankOrderInput.vue?vue&type=template&id=cde501dc&scoped=true&\"\nimport script from \"./RankOrderInput.vue?vue&type=script&lang=js&\"\nexport * from \"./RankOrderInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RankOrderInput.vue?vue&type=style&index=0&id=cde501dc&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cde501dc\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./RankOrderInput.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('SerialInput',{attrs:{\"iterations\":_vm.targets.length + 1},on:{\"end\":_vm.end},scopedSlots:_vm._u([{key:\"default\",fn:function({ i, next }){return [(_vm.timeout)?[_c('TimerStop',{attrs:{\"id\":\"responseTime\"},on:{\"update:time\":function($event){return _vm.responseTimes.push($event)}}}),_c('Wait',{attrs:{\"time\":0},on:{\"done\":_vm.end}})]:(_vm.correct)?[(i > 0)?_c('TimerStop',{attrs:{\"id\":\"responseTime\"},on:{\"update:time\":function($event){_vm.responseTimes.push($event);\n i === _vm.targets.length ? next() : null;}}}):_vm._e(),_c('TimerStart',{attrs:{\"id\":\"responseTime\"}}),(_vm.responseTimeLimit !== -1)?_c('Wait',{attrs:{\"time\":_vm.responseTimeLimit},on:{\"done\":function($event){_vm.timeout = true}}}):_vm._e(),_c('KeypressInput',{attrs:{\"keys\":{ [_vm.leftKey]: 'left', [_vm.rightKey]: 'right' },\"show-options\":_vm.showKeypressOptions},on:{\"update:response\":function($event){_vm.correct = _vm.targets[i] === _vm.getOption($event, i);\n _vm.responses.push(_vm.getOption($event, i));\n next();}}}),_c('div',{staticClass:\"options\"},[_c('div',{staticClass:\"option\"},[_vm._v(\" \"+_vm._s(_vm.getLeftOption(i))+\" \")]),_c('div',{staticClass:\"option\"},[_vm._v(\" \"+_vm._s(_vm.getRightOption(i))+\" \")])])]:[_c('TimerStop',{attrs:{\"id\":\"responseTime\"},on:{\"update:time\":function($event){return _vm.responseTimes.push($event)}}}),_c('Wait',{attrs:{\"time\":0},on:{\"done\":_vm.end}})]]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"serial_input\"},[_c('div',{key:_vm.i,staticClass:\"slice\"},[_vm._t(\"default\",function(){return [_vm._v(\" No template defined. \")]},{\"i\":_vm.i,\"iterations\":_vm.iterations,\"record\":(variable, value) =>\n _vm.$magpie.measurements[variable] &&\n _vm.$magpie.measurements[variable].length\n ? _vm.$magpie.measurements[variable].push(value)\n : (_vm.$magpie.measurements[variable] = [value]),\"next\":() => _vm.i++})],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis is a simple implementation of a Self-paced reading task.\n\n```vue\n\n \n\n \n \n \n \n 0\"\n id=\"responseTime\"\n @update:time=\"record('responseTimes', $event)\"\n />\n \n Does the sentence it the picture?\n \n {{ 'Hello world, how are you?'.split(' ')[i] }}
\n \n \n \n\n \n\n \n \n```\n\n \n\n\n \n \n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./SerialInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./SerialInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SerialInput.vue?vue&type=template&id=619ef219&\"\nimport script from \"./SerialInput.vue?vue&type=script&lang=js&\"\nexport * from \"./SerialInput.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SerialInput.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n```vue\n\n \n\n \n Slide 1 \n \n Next slide \n \n\n \n \n Slide 2 \n Time until click: {{$magpie.measurements.time/1000}} seconds\n \n\n \n \n```\n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./TimerStop.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./TimerStop.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TimerStop.vue?vue&type=template&id=51fb0e4e&scoped=true&\"\nimport script from \"./TimerStop.vue?vue&type=script&lang=js&\"\nexport * from \"./TimerStop.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"51fb0e4e\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TimerStop.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis component starts a timer. See `TimerStop` for how to use it.\n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./TimerStart.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./TimerStart.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TimerStart.vue?vue&type=template&id=87863ff4&scoped=true&\"\nimport script from \"./TimerStart.vue?vue&type=script&lang=js&\"\nexport * from \"./TimerStart.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"87863ff4\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TimerStart.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n```vue\n\n \n\n \n Slide 1\n Next slide \n \n\n \n Slide 2\n \n \n\n \n Slide 3\n \n \n\n \n Slide 4\n \n \n\n \n Slide 5\n \n\n \n \n```\n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./Wait.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./Wait.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Wait.vue?vue&type=template&id=16ed3190&scoped=true&\"\nimport script from \"./Wait.vue?vue&type=script&lang=js&\"\nexport * from \"./Wait.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"16ed3190\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Wait.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\n\n```vue\n\n \n \n \n\n \n \n```\n\n \n\n\n \n
\n \n \n \n \n \n \n 0\"\n id=\"responseTime\"\n @update:time=\"\n responseTimes.push($event);\n i === targets.length ? next() : null;\n \"\n />\n \n \n\n \n\n \n
\n {{ getLeftOption(i) }}\n
\n
\n {{ getRightOption(i) }}\n
\n
\n \n \n \n \n \n \n \n
\n \n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./MazeInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./MazeInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MazeInput.vue?vue&type=template&id=e124492a&scoped=true&\"\nimport script from \"./MazeInput.vue?vue&type=script&lang=js&\"\nexport * from \"./MazeInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MazeInput.vue?vue&type=style&index=0&id=e124492a&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e124492a\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./MazeInput.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('SerialInput',{attrs:{\"iterations\":_vm.chunks.length + 2},on:{\"end\":_vm.end},scopedSlots:_vm._u([{key:\"default\",fn:function({ i, next }){return [(_vm.timeout)?[_c('TimerStop',{attrs:{\"id\":\"responseTime\"},on:{\"update:time\":function($event){return _vm.responseTimes.push($event)}}}),_c('Wait',{attrs:{\"time\":0},on:{\"done\":_vm.end}})]:[(i > 1)?_c('TimerStop',{attrs:{\"id\":\"responseTime\"},on:{\"update:time\":function($event){_vm.responseTimes.push($event);\n i > _vm.chunks.length ? next() : null;}}}):_vm._e(),(i > 0)?_c('TimerStart',{attrs:{\"id\":\"responseTime\"}}):_vm._e(),_c('KeypressInput',{attrs:{\"keys\":{ [_vm.trigger]: _vm.instructions },\"show-options\":_vm.showKeypressOptions},on:{\"update:response\":next}}),(_vm.responseTimeLimit !== -1 && i > 1)?_c('Wait',{attrs:{\"time\":_vm.responseTimeLimit},on:{\"done\":function($event){_vm.timeout = true}}}):_vm._e(),_c('div',{class:{\n text: true,\n 'underline-words': _vm.underline === 'words',\n 'underline-sentence': _vm.underline === 'sentence',\n 'show-all': _vm.wordPos === 'next'\n }},_vm._l((_vm.chunks),function(chunk,j){return _c('span',{key:j,class:{ current: i - 1 === j },domProps:{\"textContent\":_vm._s(chunk)}})}),0)]]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n```vue\n\n \n \n \n\n \n \n```\n\n \n\n\n \n \n
\n \n \n \n \n \n \n 1\"\n id=\"responseTime\"\n @update:time=\"\n responseTimes.push($event);\n i > chunks.length ? next() : null;\n \"\n />\n 0\" id=\"responseTime\" />\n \n 1\"\n :time=\"responseTimeLimit\"\n @done=\"timeout = true\"\n />\n \n \n
\n \n \n \n
\n \n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./SelfPacedReadingInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./SelfPacedReadingInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SelfPacedReadingInput.vue?vue&type=template&id=752e72bd&scoped=true&\"\nimport script from \"./SelfPacedReadingInput.vue?vue&type=script&lang=js&\"\nexport * from \"./SelfPacedReadingInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SelfPacedReadingInput.vue?vue&type=style&index=0&id=752e72bd&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"752e72bd\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SelfPacedReadingInput.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_vm._t(\"presentation\",function(){return [_c('p',[_vm._v(_vm._s(_vm.chunks[_vm.position]))])]},{\"chunk\":_vm.chunks[_vm.position]}),(_vm.position < _vm.chunks.length)?_c('Wait',{key:_vm.position,attrs:{\"time\":_vm.interval},on:{\"done\":_vm.nextChunk}}):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis component allows you to display textual or other content in a rapid serial manner, commonly known as Rapid Serial Visual Presentation (RSVP).\n\n### Text\n```vue\n\n \n\n \n Start \n \n\n \n \n \n\n \n That's what I thought.\n \n\n \n\n \n```\n\n### Images\nThe Rsvp component allows you to define the presentation of the chunks you provide. E.g. we could also use this component to display images.\n```vue\n\n \n \n Start \n \n \n \n \n \n \n \n \n \n Done.\n \n \n \n```\n\n\n \n\n\n \n
\n {{ chunks[position] }}
\n \n
\n
\n \n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./Rsvp.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./Rsvp.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Rsvp.vue?vue&type=template&id=6036b7c7&\"\nimport script from \"./Rsvp.vue?vue&type=script&lang=js&\"\nexport * from \"./Rsvp.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Rsvp.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('CanvasStage',{attrs:{\"config\":{ width: 800, height: 400 }}},[_c('CanvasLayer',[_c('CanvasShape',{attrs:{\"config\":{\n sceneFunc: function (context, shape) {\n context.beginPath();\n context.moveTo(_vm.x - 25, _vm.y - 25);\n context.lineTo(_vm.x + 25, _vm.y + 25);\n context.moveTo(_vm.x + 25, _vm.y - 25);\n context.lineTo(_vm.x - 25, _vm.y + 25);\n context.closePath();\n\n context.strokeShape(shape);\n },\n strokeWidth: 1,\n stroke: 'black'\n }}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis component allows you to display a fixation cross.\n\n```vue\n\n \n \n \n\n \n```\n \n\n\n \n \n \n \n \n \n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./FixationCross.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./FixationCross.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FixationCross.vue?vue&type=template&id=9b3e6a3a&\"\nimport script from \"./FixationCross.vue?vue&type=script&lang=js&\"\nexport * from \"./FixationCross.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./FixationCross.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"chat\"},[_c('div',{ref:\"box\",staticClass:\"chat-box\"},_vm._l((_vm.messages),function(message,i){return _c('p',{key:i,class:{\n message: message.event === 'message',\n userEvent: message.event === 'join' || message.event === 'leave',\n me: message.participantId === _vm.$magpie.socket.participantId\n },style:({\n ...(message.message && {\n background: _vm.$magpie.socket.getParticipantColor(\n message.participantId\n )\n }),\n ...(!message.message && {\n color: _vm.$magpie.socket.getParticipantColor(message.participantId)\n })\n }),domProps:{\"textContent\":_vm._s(\n message.message ||\n (message.participantId === _vm.$magpie.socket.participantId\n ? message.event === 'join'\n ? _vm.$t('interactive.Chat.statusYouJoined')\n : message.event === 'leave'\n ? _vm.$t('interactive.Chat.statusYouLeft')\n : ''\n : message.event === 'join'\n ? _vm.$t('interactive.Chat.statusParticipantJoined', {\n user: _vm.$magpie.socket.getParticipantName(message.participantId)\n })\n : message.event === 'leave'\n ? _vm.$t('interactive.Chat.statusParticipantLeft', {\n user: _vm.$magpie.socket.getParticipantName(message.participantId)\n })\n : '')\n )}})}),0),_c('div',{staticClass:\"chat-input\"},[_c('textarea',{ref:\"text\",attrs:{\"cols\":\"50\",\"placeholder\":_vm.$t('interactive.Chat.messageLabel')},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;$event.preventDefault();return _vm.send.apply(null, arguments)}}}),_c('button',{on:{\"click\":function($event){$event.stopPropagation();return _vm.send()}}},[_vm._v(_vm._s(_vm.$t('general.send')))])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis interactive component provides participants the opportunity to chat with each other, if they are in the same room.\n\n```vue\n\n \n Start \n \n\n \n\n \n\n \n \n {{$magpie.measurements.data? $magpie.measurements.data.chatMessage.length : 0}} messages sent so far.
\n {{ $magpie.socket.active.length }} participants chatting.
\n \n\n \n\n \n```\n\n\n \n\n \n
\n
\n \n {{ $t('general.send') }} \n
\n
\n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./Chat.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./Chat.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Chat.vue?vue&type=template&id=ce4b68c4&\"\nimport script from \"./Chat.vue?vue&type=script&lang=js&\"\nexport * from \"./Chat.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Chat.vue?vue&type=style&index=0&id=ce4b68c4&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Chat.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis interactive component allow waiting until a specified number of participants are on the current screen.\n\n```vue\n\n \n Start \n \n\n \n\n \n You're on screen 1.
\n Next \n \n\n \n \n You're on the second screen.
\n \n \n\n \n Both participants are on the second screen now.
\n \n\n \n \n```\n\n\n \n\n \n \n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./WaitForParticipants.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./WaitForParticipants.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WaitForParticipants.vue?vue&type=template&id=570a2d7e&\"\nimport script from \"./WaitForParticipants.vue?vue&type=script&lang=js&\"\nexport * from \"./WaitForParticipants.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./WaitForParticipants.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Screen',_vm._b({},'Screen',{ ..._vm.$attrs, ..._vm.$props },false),[(_vm.pauseTime)?_c('Slide',[(_vm.qud)?_c('p',{domProps:{\"textContent\":_vm._s(_vm.qud)}}):_vm._e(),_c('Wait',{key:\"pause-timer\",attrs:{\"time\":_vm.pauseTime},on:{\"done\":function($event){return _vm.$magpie.nextSlide()}}})],1):_vm._e(),(_vm.fixationTime)?_c('Slide',[(_vm.qud)?_c('p',{domProps:{\"textContent\":_vm._s(_vm.qud)}}):_vm._e(),_vm._t(\"fixation\",function(){return [_c('FixationCross')]}),(_vm.fixationTime !== -1)?_c('Wait',{key:\"fixation-timer\",attrs:{\"time\":_vm.fixationTime},on:{\"done\":function($event){return _vm.$magpie.nextSlide()}}}):_vm._e()],2):_vm._e(),(_vm.stimulusTime)?_c('Slide',[(_vm.qud)?_c('p',{domProps:{\"textContent\":_vm._s(_vm.qud)}}):_vm._e(),_vm._t(\"stimulus\"),(_vm.stimulusTime !== -1)?_c('Wait',{key:\"stimulus-timer\",attrs:{\"time\":_vm.stimulusTime},on:{\"done\":function($event){return _vm.$magpie.nextSlide()}}}):_vm._e()],2):_vm._e(),_c('Slide',[(_vm.qud)?_c('p',{domProps:{\"textContent\":_vm._s(_vm.qud)}}):_vm._e(),(!_vm.stimulusTime)?_vm._t(\"stimulus\"):_vm._e(),_vm._t(\"task\"),(_vm.responseTimeLimit)?_c('Wait',{attrs:{\"time\":_vm.responseTimeLimit},on:{\"done\":_vm.nextAfterTimeout}}):_vm._e(),_c('Record',{attrs:{\"data\":{\n ...(_vm.qud && { qud: _vm.qud }),\n ...(_vm.responseTimeLimit && { responseTimeout: false }),\n ...(_vm.pauseTime && { pauseTime: _vm.pauseTime }),\n ...(_vm.fixationTime && { fixationTime: _vm.fixationTime }),\n ...(_vm.stimulusTime && { stimulusTime: _vm.stimulusTime }),\n ...(_vm.responseTimeLimit && { responseTimeLimit: _vm.responseTimeLimit }),\n ...(_vm.feedbackTime && { feedbackTime: _vm.feedbackTime })\n }}}),_c('ResponseTimeStart')],2),(_vm.feedbackTime)?_c('Slide',[(_vm.qud)?_c('p',{domProps:{\"textContent\":_vm._s(_vm.qud)}}):_vm._e(),_vm._t(\"feedback\"),(_vm.feedbackTime > 0)?_c('Wait',{attrs:{\"time\":_vm.feedbackTime},on:{\"done\":function($event){return _vm.$magpie.nextScreen()}}}):_vm._e()],2):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis component (re)starts the timer for recording the response time.\n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./ResponseTimeStart.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./ResponseTimeStart.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ResponseTimeStart.vue?vue&type=template&id=18fe891b&scoped=true&\"\nimport script from \"./ResponseTimeStart.vue?vue&type=script&lang=js&\"\nexport * from \"./ResponseTimeStart.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"18fe891b\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ResponseTimeStart.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nRecord allows you to easily add arbitrary data to your measurements:\n```vue\n\n\n \n \n\n \n Slide 1 \n \n Next slide \n \n\n \n Slide 2 \n next \n \n\n \n \n\n \n \n```\n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./Record.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./Record.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Record.vue?vue&type=template&id=36ef7edc&scoped=true&\"\nimport script from \"./Record.vue?vue&type=script&lang=js&\"\nexport * from \"./Record.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"36ef7edc\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Record.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\nThis is a built-in screen with 4 life cycle phases:\n\n * Pause\n * Fixation\n * Stimulus presentation\n * Response\n * Feedback\n\nThe last four phases can be completely customized using the corresponding slots, as you can see below.\n\n```vue\n\n\n \n Press the button to try this.\n \n\n \n\n \n \n \n\n \n How often is it still healthy to eat fast food?\n \n Next \n \n\n \n\n \n \n```\n \n\n\n \n \n \n
\n \n \n \n \n
\n \n \n \n \n \n \n \n
\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n
\n \n 0\"\n :time=\"feedbackTime\"\n @done=\"$magpie.nextScreen()\"\n />\n \n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./LifecycleScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./LifecycleScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LifecycleScreen.vue?vue&type=template&id=d32534da&scoped=true&\"\nimport script from \"./LifecycleScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./LifecycleScreen.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d32534da\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./LifecycleScreen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Screen',_vm._b({},'Screen',{ ..._vm.$attrs, ..._vm.$props },false),[_vm._t(\"default\",function(){return [_vm._v(\" \"+_vm._s(_vm.$t('screens.ConnectInteractiveScreen.description'))+\" \")]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nUse this screen to initiate the interactive socket connection. Once the connection is set up and\nenough users have joined, this screen will automatically go to the next screen.\n\nYou can customize the content of this screen by adding new content inside it.\nBy default it looks like this:\n\n```vue\n\n\n \n Connect \n \n\n \n\n Connected. \n\n \n```\n\n \n\n \n \n {{ $t('screens.ConnectInteractiveScreen.description') }}\n \n \n \n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./ConnectInteractiveScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./ConnectInteractiveScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConnectInteractiveScreen.vue?vue&type=template&id=001c554d&\"\nimport script from \"./ConnectInteractiveScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./ConnectInteractiveScreen.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ConnectInteractiveScreen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Screen',_vm._b({},'Screen',{ ..._vm.$attrs, ..._vm.$props },false),[_vm._t(\"default\",function(){return [_vm._v(\" \"+_vm._s(_vm.$t('screens.AwaitIteratedResultScreen.description'))+\" \")]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nUse this screen to initiate the interactive socket connection. Once the connection is set up and\nenough users have joined, this screen will automatically go to the next screen.\n\nYou can customize the content of this screen by adding new content inside it.\nBy default it looks like this:\n\n```vue\n\n\n \n Start \n \n\n \n\n \n \n \n\n \n```\n\n \n\n \n \n {{ $t('screens.AwaitIteratedResultScreen.description') }}\n \n \n \n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./AwaitIteratedResultScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./AwaitIteratedResultScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AwaitIteratedResultScreen.vue?vue&type=template&id=1e42e825&\"\nimport script from \"./AwaitIteratedResultScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./AwaitIteratedResultScreen.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AwaitIteratedResultScreen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Screen',{staticClass:\"debugResults\",attrs:{\"title\":\"Results\"}},[_c('Slide',[_c('button',{on:{\"click\":_vm.downloadCsv}},[_vm._v(\"Download all data as csv\")]),(_vm.results.length)?_c('table',[_c('thead',[_c('tr',_vm._l((Object.keys(_vm.results[0])),function(key){return _c('th',{key:key},[_vm._v(_vm._s(key))])}),0)]),_c('tbody',_vm._l((_vm.results),function(row,i){return _c('tr',{key:i},_vm._l((Object.keys(_vm.results[0])),function(key,j){return _c('td',{key:j},[_vm._v(\" \"+_vm._s(String(row[key]))+\" \")])}),0)}),0)]):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis will display all data that has been entered into the experiment up to this point in a table.\nThis is useful for debugging.\nOnce you are gaoing live with your experiment, you can use the SubmitResultsScreen instead of this one to submit the data to the server and say thank you to the user.\n \n\n\n \n \n Download all data as csv \n \n \n \n {{ key }} \n \n \n \n \n \n {{ String(row[key]) }}\n \n \n \n
\n \n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./DebugResultsScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./DebugResultsScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DebugResultsScreen.vue?vue&type=template&id=681a623c&scoped=true&\"\nimport script from \"./DebugResultsScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./DebugResultsScreen.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DebugResultsScreen.vue?vue&type=style&index=0&id=681a623c&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"681a623c\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DebugResultsScreen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.$magpie.debug)?_c('Screen',{attrs:{\"title\":\"Submitting\"}},[_c('Slide',[_c('p',[_vm._v(_vm._s(_vm.$t('screens.SubmitResultsScreen.waiting')))]),_c('Wait',{attrs:{\"time\":0},on:{\"done\":function($event){_vm.submit(() => _vm.$magpie.nextSlide())}}})],1),_c('Slide',[(!_vm.error)?_c('p',[_vm._v(\" \"+_vm._s(_vm.$t('screens.SubmitResultsScreen.done'))+\" \"),_c('Wait',{attrs:{\"time\":3000},on:{\"done\":_vm.redirectToCompletionUrl}})],1):_c('div',[_c('p',[_vm._v(_vm._s(_vm.$t('screens.SubmitResultsScreen.error')))]),_c('p',[_vm._v(\" \"+_vm._s(_vm.$t('screens.SubmitResultsScreen.contact'))+\" \"),_c('a',{attrs:{\"href\":'mailto:' + _vm.$magpie.contactEmail}},[_vm._v(_vm._s(_vm.$magpie.contactEmail))]),_vm._v(\". \")]),_c('p',{domProps:{\"textContent\":_vm._s(_vm.error)}})])])],1):_c('DebugResultsScreen')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nUse this screen at the end of your experiment to submit the data to the server.\nYou can provide the submission URL to the Experiment component.\n \n\n\n \n \n {{ $t('screens.SubmitResultsScreen.waiting') }}
\n $magpie.nextSlide())\" />\n \n \n \n {{ $t('screens.SubmitResultsScreen.done') }}\n \n
\n \n \n \n \n \n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./SubmitResultsScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./SubmitResultsScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SubmitResultsScreen.vue?vue&type=template&id=67e6bfd3&\"\nimport script from \"./SubmitResultsScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./SubmitResultsScreen.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SubmitResultsScreen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Screen',_vm._b({attrs:{\"title\":\"Additional information\"}},'Screen',{ ..._vm.$attrs, ..._vm.$props },false),[_c('Slide',[_c('p',[_vm._v(\" \"+_vm._s(_vm.$t('screens.PostTestScreen.instruction'))+\" \")]),_c('div',{staticStyle:{\"text-align\":\"left\",\"width\":\"200px\",\"margin\":\"0 auto\"}},[(_vm.age)?_c('p',[_c('label',[_vm._v(_vm._s(_vm.$t('screens.PostTestScreen.age'))+\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.$magpie.measurements.age),expression:\"$magpie.measurements.age\"}],attrs:{\"type\":\"number\",\"max\":\"110\",\"min\":\"18\"},domProps:{\"value\":(_vm.$magpie.measurements.age)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(_vm.$magpie.measurements, \"age\", $event.target.value)}}})])]):_vm._e(),(_vm.gender)?_c('p',[_c('label',[_vm._v(_vm._s(_vm.$t('screens.PostTestScreen.gender'))+\" \"),_c('DropdownInput',{attrs:{\"options\":[\n '',\n _vm.$t('screens.PostTestScreen.male'),\n _vm.$t('screens.PostTestScreen.female'),\n _vm.$t('screens.PostTestScreen.otherGender')\n ],\"response\":_vm.$magpie.measurements.gender},on:{\"update:response\":function($event){return _vm.$set(_vm.$magpie.measurements, \"gender\", $event)}}})],1)]):_vm._e(),(_vm.education)?_c('p',[_c('label',[_vm._v(_vm._s(_vm.$t('screens.PostTestScreen.education'))+\" \"),_c('DropdownInput',{attrs:{\"options\":[\n '',\n _vm.$t('screens.PostTestScreen.educationBelowHighschool'),\n _vm.$t('screens.PostTestScreen.educationHighschool'),\n _vm.$t('screens.PostTestScreen.educationCollege'),\n _vm.$t('screens.PostTestScreen.educationHigher')\n ],\"response\":_vm.$magpie.measurements.education},on:{\"update:response\":function($event){return _vm.$set(_vm.$magpie.measurements, \"education\", $event)}}})],1)]):_vm._e(),(_vm.languages)?_c('p',[_c('label',[_vm._v(_vm._s(_vm.$t('screens.PostTestScreen.nativeLanguages'))+\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.$magpie.measurements.languages),expression:\"$magpie.measurements.languages\"}],attrs:{\"type\":\"text\",\"placeholder\":_vm.$t('screens.PostTestScreen.nativeLanguagesExplanation'),\"title\":_vm.$t('screens.PostTestScreen.nativeLanguagesExplanation')},domProps:{\"value\":(_vm.$magpie.measurements.languages)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(_vm.$magpie.measurements, \"languages\", $event.target.value)}}})])]):_vm._e(),_vm._t(\"default\",null,{\"measurements\":_vm.$magpie.measurements}),_vm._v(\" \"+_vm._s(_vm.$t('screens.PostTestScreen.comments'))+\" \"),_c('TextareaInput',{attrs:{\"response\":_vm.$magpie.measurements.comments},on:{\"update:response\":function($event){return _vm.$set(_vm.$magpie.measurements, \"comments\", $event)}}})],2),_c('button',{on:{\"click\":function($event){_vm.$magpie.addExpData(_vm.$magpie.measurements);\n _vm.$magpie.nextScreen();}}},[_vm._v(\" \"+_vm._s(_vm.$t('general.nextButton'))+\" \")])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n```vue\n\n \n\n \n\n \n```\n \n\n\n \n \n \n {{ $t('screens.PostTestScreen.instruction') }}\n
\n \n
\n {{ $t('screens.PostTestScreen.age') }}\n \n
\n
\n {{ $t('screens.PostTestScreen.gender') }}\n \n \n
\n
\n {{ $t('screens.PostTestScreen.education') }}\n \n \n
\n
\n {{ $t('screens.PostTestScreen.nativeLanguages') }}\n \n
\n \n
\n {{ $t('screens.PostTestScreen.comments') }}\n
\n
\n\n \n {{ $t('general.nextButton') }}\n \n \n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./PostTestScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./PostTestScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PostTestScreen.vue?vue&type=template&id=1cb95052&scoped=true&\"\nimport script from \"./PostTestScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./PostTestScreen.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1cb95052\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PostTestScreen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Screen',_vm._b({},'Screen',{ ..._vm.$attrs, ..._vm.$props },false),[_c('Slide',[_c('div',{staticClass:\"instructions\"},[_vm._t(\"default\")],2),_c('button',{on:{\"click\":function($event){return _vm.$magpie.nextScreen()}}},[_vm._v(\" \"+_vm._s(_vm.$t('general.nextButton'))+\" \")])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis is a pre-built instruction screen, with limited functionality, but simpler to use.\n\n```vue\n\n \n These are instructions for the participant. \n Below the instructions is a button to continue.\n \n\n \n This is another instruction screen. \n Below the instructions is a button to continue.\n \n\n \n```\n \n\n\n \n \n \n \n
\n \n {{ $t('general.nextButton') }}\n \n \n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./InstructionScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./InstructionScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InstructionScreen.vue?vue&type=template&id=286444fe&scoped=true&\"\nimport script from \"./InstructionScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./InstructionScreen.vue?vue&type=script&lang=js&\"\nimport style0 from \"./InstructionScreen.vue?vue&type=style&index=0&id=286444fe&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"286444fe\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./InstructionScreen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Screen',_vm._b({},'Screen',{ ..._vm.$attrs, ..._vm.$props },false),[_c('Slide',[_c('Wait',{key:\"start\",attrs:{\"time\":0},on:{\"done\":_vm.onStart}}),_c('p',[_vm._v(_vm._s(_vm.$t('screens.EyetrackingCalibrationScreen.start')))])],1),_c('Slide',[_c('Wait',{key:\"calibration\",attrs:{\"time\":0},on:{\"done\":_vm.runCalibration}}),_c('p',[_vm._v(_vm._s(_vm.$t('screens.EyetrackingCalibrationScreen.instruction')))]),_c('CanvasStage',{staticClass:\"point\",style:({ left: _vm.x + 'px', top: _vm.y + 'px' }),attrs:{\"config\":{ width: 26, height: 26 }},on:{\"click\":_vm.nextPoint}},[_c('CanvasLayer',[_c('CanvasCircle',{attrs:{\"config\":{\n x: 13,\n y: 13,\n fill: 'red',\n radius: 12,\n stroke: 'black',\n strokeWidth: 1\n }}})],1)],1)],1),_c('Slide',[_c('p',[_vm._v(_vm._s(_vm.$t('screens.EyetrackingCalibrationScreen.error')))])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis screen is used to initialize and calibrate eye tracking.\nEyetracking requires that you install `webgazer`.\n\n```vue\n\n \n Click the button to start full screen.\n \n\n \n \n Click the button to start calibration.\n \n\n \n \n\n \n Successfully calibrated!\n \n\n \n```\n \n\n\n \n \n \n {{ $t('screens.EyetrackingCalibrationScreen.start') }}
\n \n \n \n {{ $t('screens.EyetrackingCalibrationScreen.instruction') }}
\n \n \n \n \n \n \n \n {{ $t('screens.EyetrackingCalibrationScreen.error') }}
\n \n \n \n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./EyetrackingCalibrationScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./EyetrackingCalibrationScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EyetrackingCalibrationScreen.vue?vue&type=template&id=8ef3bc36&scoped=true&\"\nimport script from \"./EyetrackingCalibrationScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./EyetrackingCalibrationScreen.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EyetrackingCalibrationScreen.vue?vue&type=style&index=0&id=8ef3bc36&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8ef3bc36\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./EyetrackingCalibrationScreen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Screen',_vm._b({},'Screen',{ ..._vm.$attrs, ..._vm.$props },false),[_c('Slide',[_c('p',[_vm._v(_vm._s(_vm.$t('screens.EyetrackingValidationScreen.instruction')))]),_c('Wait',{attrs:{\"time\":5000},on:{\"done\":_vm.measureAccuracy}}),_c('EyetrackingStart'),_c('CanvasStage',{ref:\"checkpoint\",staticClass:\"point check\",style:({ top: _vm.windowHeight / 2 + 'px', left: _vm.windowWidth / 2 + 'px' }),attrs:{\"config\":{ width: 26, height: 26 }}},[_c('CanvasLayer',[_c('CanvasCircle',{attrs:{\"config\":{\n x: 13,\n y: 13,\n fill: 'lightblue',\n radius: 12,\n stroke: 'black',\n strokeWidth: 1\n }}})],1)],1)],1),_c('Slide',[_c('p',[_vm._v(_vm._s(_vm.$t('screens.EyetrackingValidationScreen.error')))])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis component (re)starts capturing the eye gaze track.\nYou can retrieve the current eye track with `$magpie.eyetracking.getEyeTrack()`.\nEyetracking requires that you install `webgazer`.\n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./EyetrackingStart.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./EyetrackingStart.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EyetrackingStart.vue?vue&type=template&id=cea287d6&scoped=true&\"\nimport script from \"./EyetrackingStart.vue?vue&type=script&lang=js&\"\nexport * from \"./EyetrackingStart.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cea287d6\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./EyetrackingStart.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\nThis screen is used to initialize and calibrate eye tracking.\nEyetracking requires that you install `webgazer`.\n\n```vue\n\n \n Click the button to start full screen.\n \n\n \n \n Click the button to start calibration.\n \n\n \n \n\n \n\n \n Successfully calibrated!\n \n\n \n```\n \n\n\n \n \n \n {{ $t('screens.EyetrackingValidationScreen.instruction') }}
\n \n \n \n \n \n \n \n \n \n {{ $t('screens.EyetrackingValidationScreen.error') }}
\n \n \n \n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./EyetrackingValidationScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./EyetrackingValidationScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EyetrackingValidationScreen.vue?vue&type=template&id=249dc640&scoped=true&\"\nimport script from \"./EyetrackingValidationScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./EyetrackingValidationScreen.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EyetrackingValidationScreen.vue?vue&type=style&index=0&id=249dc640&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"249dc640\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./EyetrackingValidationScreen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('LifecycleScreen',_vm._b({scopedSlots:_vm._u([{key:\"task\",fn:function(){return [_c('Record',{attrs:{\"data\":{\n question: _vm.question,\n options: _vm.options\n }}}),(_vm.question)?_c('p',{domProps:{\"textContent\":_vm._s(_vm.question)}}):_vm._e(),_c('ForcedChoiceInput',{attrs:{\"options\":_vm.options,\"response\":_vm.$magpie.measurements.response},on:{\"update:response\":[function($event){return _vm.$set(_vm.$magpie.measurements, \"response\", $event)},_vm.nextAfterResponse]}})]},proxy:true},{key:\"feedback\",fn:function(){return [_vm._t(\"feedback\")]},proxy:true}],null,true)},'LifecycleScreen',{ ..._vm.$attrs, ..._vm.$props },false),[_c('template',{slot:\"fixation\"},[_vm._t(\"fixation\")],2),_c('template',{slot:\"stimulus\"},[_vm._t(\"stimulus\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis is a pre-built forced choice screen, with limited functionality, but simpler to use.\n\n```vue\n\n\n \n\n \n\n \n```\n \n\n\n \n \n \n \n \n \n \n \n \n\n \n \n
\n \n \n\n \n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./ForcedChoiceScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./ForcedChoiceScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ForcedChoiceScreen.vue?vue&type=template&id=5483b43e&scoped=true&\"\nimport script from \"./ForcedChoiceScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./ForcedChoiceScreen.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5483b43e\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ForcedChoiceScreen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('LifecycleScreen',_vm._b({scopedSlots:_vm._u([{key:\"task\",fn:function(){return [_c('Record',{attrs:{\"data\":{\n question: _vm.question,\n options: _vm.options.map((o) => o.label)\n }}}),(_vm.question)?_c('p',{domProps:{\"textContent\":_vm._s(_vm.question)}}):_vm._e(),_c('ImageSelectionInput',{attrs:{\"options\":_vm.options,\"response\":_vm.$magpie.measurements.response},on:{\"update:response\":[function($event){return _vm.$set(_vm.$magpie.measurements, \"response\", $event)},_vm.nextAfterResponse]}})]},proxy:true},{key:\"feedback\",fn:function(){return [_vm._t(\"feedback\")]},proxy:true}],null,true)},'LifecycleScreen',{ ..._vm.$attrs, ..._vm.$props },false),[_c('template',{slot:\"fixation\"},[_vm._t(\"fixation\")],2),_c('template',{slot:\"stimulus\"},[_vm._t(\"stimulus\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis is a pre-built image selection screen, with limited functionality, but simpler to use.\n\n```vue\n\n \n\n \n\n \n```\n \n\n\n \n \n \n \n \n \n \n \n \n\n \n o.label)\n }\"\n />\n
\n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./ImageSelectionScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./ImageSelectionScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ImageSelectionScreen.vue?vue&type=template&id=2f4f474a&scoped=true&\"\nimport script from \"./ImageSelectionScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./ImageSelectionScreen.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2f4f474a\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ImageSelectionScreen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('LifecycleScreen',_vm._b({scopedSlots:_vm._u([{key:\"task\",fn:function(){return [_c('Record',{attrs:{\"data\":{\n question: _vm.question\n }}}),(_vm.question)?_c('p',{domProps:{\"textContent\":_vm._s(_vm.question)}}):_vm._e(),_c('TextareaInput',{attrs:{\"response\":_vm.$magpie.measurements.response},on:{\"update:response\":function($event){return _vm.$set(_vm.$magpie.measurements, \"response\", $event)}}}),(\n _vm.$magpie.measurements.response &&\n (!_vm.$magpie.validateMeasurements.response ||\n !_vm.$magpie.validateMeasurements.response.$invalid)\n )?_c('button',{on:{\"click\":_vm.nextAfterResponse}},[_vm._v(\" \"+_vm._s(_vm.$t('general.nextButton'))+\" \")]):_vm._e()]},proxy:true},{key:\"feedback\",fn:function(){return [_vm._t(\"feedback\")]},proxy:true}],null,true)},'LifecycleScreen',{ ..._vm.$attrs, ..._vm.$props },false),[_c('template',{slot:\"fixation\"},[_vm._t(\"fixation\")],2),_c('template',{slot:\"stimulus\"},[_vm._t(\"stimulus\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis is a pre-built image selection screen, with limited functionality, but simpler to use.\n\n```vue\n\n\n \n\n \n\n \n```\n \n\n\n \n \n \n \n \n \n \n \n \n\n \n \n
\n \n \n {{ $t('general.nextButton') }}\n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./TextareaScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./TextareaScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TextareaScreen.vue?vue&type=template&id=0d144568&scoped=true&\"\nimport script from \"./TextareaScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./TextareaScreen.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d144568\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TextareaScreen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('LifecycleScreen',_vm._b({scopedSlots:_vm._u([{key:\"task\",fn:function(){return [_c('Record',{attrs:{\"data\":{\n question: _vm.question,\n ...(_vm.optionLeft && { optionLeft: _vm.optionLeft }),\n ...(_vm.optionRight && { optionRight: _vm.optionRight }),\n interval: _vm.interval,\n max: _vm.max,\n min: _vm.min,\n initial: _vm.initial\n }}}),(_vm.question)?_c('p',{domProps:{\"textContent\":_vm._s(_vm.question)}}):_vm._e(),_c('SliderInput',{attrs:{\"left\":_vm.optionLeft,\"right\":_vm.optionRight,\"min\":_vm.min,\"max\":_vm.max,\"interval\":_vm.interval,\"initial\":_vm.initial,\"disabled\":_vm.disabled,\"response\":_vm.$magpie.measurements.response},on:{\"update:response\":function($event){return _vm.$set(_vm.$magpie.measurements, \"response\", $event)}}}),(\n _vm.$magpie.measurements.response &&\n !_vm.$magpie.validateMeasurements.$invalid\n )?_c('button',{on:{\"click\":_vm.nextAfterResponse}},[_vm._v(\" \"+_vm._s(_vm.$t('general.nextButton'))+\" \")]):_vm._e()]},proxy:true},{key:\"feedback\",fn:function(){return [_vm._t(\"feedback\")]},proxy:true}],null,true)},'LifecycleScreen',{ ..._vm.$attrs, ..._vm.$props },false),[_c('template',{slot:\"fixation\"},[_vm._t(\"fixation\")],2),_c('template',{slot:\"stimulus\"},[_vm._t(\"stimulus\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis is a pre-built slider rating screen, with limited functionality, but simpler to use.\n\n```vue\n\n \n\n \n\n \n```\n \n\n\n \n \n \n \n \n \n \n \n \n\n \n \n
\n \n \n {{ $t('general.nextButton') }}\n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./SliderScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./SliderScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SliderScreen.vue?vue&type=template&id=6468ed0d&scoped=true&\"\nimport script from \"./SliderScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./SliderScreen.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6468ed0d\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SliderScreen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('LifecycleScreen',_vm._b({scopedSlots:_vm._u([{key:\"task\",fn:function(){return [_c('Record',{attrs:{\"data\":{\n question: _vm.question,\n ...(_vm.optionLeft && { optionLeft: _vm.optionLeft }),\n ...(_vm.optionRight && { optionRight: _vm.optionRight }),\n interval: _vm.interval,\n ranges: _vm.ranges,\n min: _vm.min,\n max: _vm.max\n }}}),(_vm.question)?_c('p',{domProps:{\"textContent\":_vm._s(_vm.question)}}):_vm._e(),_c('SliderRangesInput',{attrs:{\"left\":_vm.optionLeft,\"right\":_vm.optionRight,\"min\":_vm.min,\"max\":_vm.max,\"interval\":_vm.interval,\"ranges\":_vm.ranges,\"responses\":_vm.$magpie.measurements.response,\"range-values\":_vm.$magpie.measurements.range_values},on:{\"update:responses\":function($event){return _vm.$set(_vm.$magpie.measurements, \"response\", $event)},\"update:rangeValues\":function($event){return _vm.$set(_vm.$magpie.measurements, \"range_values\", $event)},\"update:range-values\":function($event){return _vm.$set(_vm.$magpie.measurements, \"range_values\", $event)}}}),(_vm.$magpie.measurements.range_values)?_c('ul',_vm._l((_vm.$magpie.measurements.range_values),function(value,i){return _c('li',{key:i},[_vm._v(\" \"+_vm._s(value)+\" \"+_vm._s(_vm.ranges[i])+\" \")])}),0):_vm._e(),(\n _vm.$magpie.measurements.response &&\n (!_vm.$magpie.validateMeasurements.response ||\n !_vm.$magpie.validateMeasurements.response.$invalid)\n )?_c('button',{on:{\"click\":_vm.nextAfterResponse}},[_vm._v(\" \"+_vm._s(_vm.$t('general.nextButton'))+\" \")]):_vm._e()]},proxy:true},{key:\"feedback\",fn:function(){return [_vm._t(\"feedback\")]},proxy:true}],null,true)},'LifecycleScreen',{ ..._vm.$attrs, ..._vm.$props },false),[_c('template',{slot:\"fixation\"},[_vm._t(\"fixation\")],2),_c('template',{slot:\"stimulus\"},[_vm._t(\"stimulus\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis is a pre-built slider rating screen, with limited functionality, but simpler to use.\n\n```vue\n\n \n\n \n\n \n```\n \n\n\n \n \n \n \n \n \n \n \n \n\n \n \n
\n \n \n \n {{ value }} {{ ranges[i] }}\n \n \n \n {{ $t('general.nextButton') }}\n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./SliderRangesScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./SliderRangesScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SliderRangesScreen.vue?vue&type=template&id=674745fd&scoped=true&\"\nimport script from \"./SliderRangesScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./SliderRangesScreen.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"674745fd\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SliderRangesScreen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('LifecycleScreen',_vm._b({scopedSlots:_vm._u([{key:\"task\",fn:function(){return [_c('Record',{attrs:{\"data\":{\n question: _vm.question,\n ...(_vm.optionLeft && { optionLeft: _vm.optionLeft }),\n ...(_vm.optionRight && { optionRight: _vm.optionRight }),\n count: _vm.count\n }}}),(_vm.question)?_c('p',{domProps:{\"textContent\":_vm._s(_vm.question)}}):_vm._e(),_c('RatingInput',{attrs:{\"left\":_vm.optionLeft,\"right\":_vm.optionRight,\"count\":_vm.count,\"response\":_vm.$magpie.measurements.response},on:{\"update:response\":function($event){return _vm.$set(_vm.$magpie.measurements, \"response\", $event)}}}),(\n _vm.$magpie.measurements.response &&\n (!_vm.$magpie.validateMeasurements.response ||\n !_vm.$magpie.validateMeasurements.response.$invalid)\n )?_c('button',{on:{\"click\":function($event){return _vm.$magpie.saveAndNextScreen()}}},[_vm._v(\" \"+_vm._s(_vm.$t('general.nextButton'))+\" \")]):_vm._e()]},proxy:true},{key:\"feedback\",fn:function(){return [_vm._t(\"feedback\")]},proxy:true}],null,true)},'LifecycleScreen',{ ..._vm.$attrs, ..._vm.$props },false),[_c('template',{slot:\"fixation\"},[_vm._t(\"fixation\")],2),_c('template',{slot:\"stimulus\"},[_vm._t(\"stimulus\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis is a pre-built rating screen, with limited functionality, but simpler to use.\n\n```vue\n\n \n\n \n\n \n```\n \n\n\n \n \n \n \n \n \n \n \n \n\n \n \n
\n \n \n {{ $t('general.nextButton') }}\n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./RatingScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./RatingScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RatingScreen.vue?vue&type=template&id=1d16eb65&scoped=true&\"\nimport script from \"./RatingScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./RatingScreen.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1d16eb65\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./RatingScreen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('LifecycleScreen',_vm._b({scopedSlots:_vm._u([{key:\"task\",fn:function(){return [_c('Record',{attrs:{\"data\":{\n question: _vm.question,\n options: _vm.options,\n text: _vm.text\n }}}),(_vm.question)?_c('p',{domProps:{\"textContent\":_vm._s(_vm.question)}}):_vm._e(),_c('CompletionInput',{attrs:{\"text\":_vm.text,\"options\":_vm.options,\"response\":_vm.$magpie.measurements.response,\"responses\":_vm.$magpie.measurements.responses},on:{\"update:response\":function($event){return _vm.$set(_vm.$magpie.measurements, \"response\", $event)},\"update:responses\":function($event){return _vm.$set(_vm.$magpie.measurements, \"responses\", $event)}}}),(\n _vm.$magpie.measurements.responses &&\n _vm.$magpie.measurements.responses.filter(Boolean).length ===\n _vm.options.length\n )?_c('button',{on:{\"click\":_vm.nextAfterResponse}},[_vm._v(\" \"+_vm._s(_vm.$t('general.nextButton'))+\" \")]):_vm._e()]},proxy:true},{key:\"feedback\",fn:function(){return [_vm._t(\"feedback\")]},proxy:true}],null,true)},'LifecycleScreen',{ ..._vm.$attrs, ..._vm.$props },false),[_c('template',{slot:\"fixation\"},[_vm._t(\"fixation\")],2),_c('template',{slot:\"stimulus\"},[_vm._t(\"stimulus\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis is a pre-built completion screen, with limited functionality, but simpler to use.\n\n```vue\n\n \n\n \n \n```\n \n\n\n \n \n \n \n \n \n \n \n \n\n \n \n
\n \n \n {{ $t('general.nextButton') }}\n \n \n\n \n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./CompletionScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./CompletionScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CompletionScreen.vue?vue&type=template&id=0526d666&scoped=true&\"\nimport script from \"./CompletionScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./CompletionScreen.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0526d666\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CompletionScreen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('LifecycleScreen',_vm._b({scopedSlots:_vm._u([{key:\"task\",fn:function(){return [_c('Record',{attrs:{\"data\":{\n question: _vm.question\n }}}),(_vm.question)?_c('p',{domProps:{\"textContent\":_vm._s(_vm.question)}}):_vm._e(),_c('KeypressInput',{attrs:{\"keys\":_vm.keys,\"show-options\":_vm.showOptions,\"response\":_vm.$magpie.measurements.response},on:{\"update:response\":[function($event){return _vm.$set(_vm.$magpie.measurements, \"response\", $event)},_vm.nextAfterResponse]}})]},proxy:true},{key:\"feedback\",fn:function(){return [_vm._t(\"feedback\")]},proxy:true}],null,true)},'LifecycleScreen',{ ..._vm.$attrs, ..._vm.$props },false),[_c('template',{slot:\"fixation\"},[_vm._t(\"fixation\",function(){return [_c('FixationCross')]}),_c('KeypressInput',{attrs:{\"keys\":_vm.keys,\"show-options\":_vm.showOptions}})],2),_c('template',{slot:\"stimulus\"},[_vm._t(\"stimulus\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis is a pre-built keypress screen, with limited functionality, but simpler to use.\n\n```vue\n\n \n \n \n \n \n You are correct.\n \n \n\n \n\n \n```\n \n\n\n \n \n \n \n \n \n \n \n \n \n\n \n \n
\n \n \n\n \n \n \n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./KeypressScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./KeypressScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./KeypressScreen.vue?vue&type=template&id=08791dd8&scoped=true&\"\nimport script from \"./KeypressScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./KeypressScreen.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"08791dd8\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./KeypressScreen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Screen',_vm._b({},'Screen',{ ..._vm.$attrs, ..._vm.$props },false),[_c('Slide',[(_vm.qud)?_c('p',{staticClass:\"qud\",domProps:{\"textContent\":_vm._s(_vm.qud)}}):_vm._e(),_vm._t(\"preparation\",function(){return [_c('Wait',{attrs:{\"time\":1},on:{\"done\":function($event){return _vm.$magpie.nextSlide()}}})]})],2),_c('Slide',[(_vm.qud)?_c('p',{staticClass:\"qud\",domProps:{\"textContent\":_vm._s(_vm.qud)}}):_vm._e(),_c('Wait',{key:\"pause\",attrs:{\"time\":_vm.pauseTime},on:{\"done\":function($event){return _vm.$magpie.nextSlide()}}})],1),_c('Slide',[(_vm.qud)?_c('p',{staticClass:\"qud\",domProps:{\"textContent\":_vm._s(_vm.qud)}}):_vm._e(),_c('Wait',{key:\"wait a bit\",attrs:{\"time\":500},on:{\"done\":function($event){return _vm.$magpie.nextSlide()}}}),_c('div',{staticClass:\"options\"},[_c('div',{staticClass:\"option1\"},[_vm._t(\"option1\")],2),_c('div',{staticClass:\"space\"}),_c('div',{staticClass:\"option2\"},[_vm._t(\"option2\")],2)])],1),_c('Slide',[_c('div',{staticClass:\"options\"},[(!_vm.$magpie.measurements.response)?_c('div',{staticClass:\"option1\",on:_vm._d({},[_vm.selectEvent,function($event){return _vm.submit('option1')}])},[_vm._t(\"option1\")],2):_vm._e(),_c('div',{staticClass:\"space\"}),(!_vm.$magpie.measurements.response)?_c('div',{staticClass:\"option2\",on:_vm._d({},[_vm.selectEvent,function($event){return _vm.submit('option2')}])},[_vm._t(\"option2\")],2):_vm._e()]),(_vm.qud)?_c('p',{staticClass:\"qud\",domProps:{\"textContent\":_vm._s(_vm.qud)}}):_vm._e(),_c('div',{staticClass:\"stimulus\"},[(_vm.playing)?_vm._t(\"stimulus\",null,{\"coordinates\":_vm.buttonCoordinates}):_vm._e(),(_vm.$magpie.measurements.response)?_vm._t(\"feedback\"):_vm._e()],2),(!_vm.playing)?_c('button',{ref:\"button\",on:{\"click\":_vm.onPressPlay}},[_vm._v(\" \"+_vm._s(_vm.$t('general.go'))+\" \")]):_vm._e(),(_vm.playing && _vm.responseTimeLimit)?_c('Wait',{attrs:{\"time\":_vm.responseTimeLimit},on:{\"done\":function($event){return _vm.$magpie.nextSlide()}}}):_vm._e(),(_vm.playing)?_c('TimerStart',{attrs:{\"id\":\"fcmt-response-time\"}}):_vm._e(),(_vm.$magpie.measurements.response)?_c('TimerStop',{attrs:{\"id\":\"fcmt-response-time\",\"time\":_vm.$magpie.measurements.responseTime},on:{\"update:time\":function($event){return _vm.$set(_vm.$magpie.measurements, \"responseTime\", $event)}}}):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n```vue\n\n \n \n \n \n {{ task.o1 }}\n
\n \n \n \n {{ task.o2 }}\n
\n \n \n {{ task.s }} \n \n \n \n \n \n \n \n \n\n \n\n \n```\n\n \n\n\n \n \n
\n \n \n \n \n \n\n \n
\n \n \n\n \n
\n \n \n \n\n \n \n
\n \n \n \n \n
\n \n {{ $t('general.go') }}\n \n \n \n \n \n \n \n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./ForcedChoiceMousetrackingScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./ForcedChoiceMousetrackingScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ForcedChoiceMousetrackingScreen.vue?vue&type=template&id=22cf83e4&scoped=true&\"\nimport script from \"./ForcedChoiceMousetrackingScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./ForcedChoiceMousetrackingScreen.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ForcedChoiceMousetrackingScreen.vue?vue&type=style&index=0&id=22cf83e4&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"22cf83e4\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ForcedChoiceMousetrackingScreen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('LifecycleScreen',_vm._b({scopedSlots:_vm._u([{key:\"task\",fn:function(){return [_c('Record',{attrs:{\"data\":{\n question: _vm.question,\n options: _vm.options,\n orientation: _vm.orientation,\n randomize: _vm.randomize,\n ...(_vm.optionsHtml.length && { optionsHtml: _vm.optionsHtml })\n }}}),(_vm.question)?_c('p',{domProps:{\"textContent\":_vm._s(_vm.question)}}):_vm._e(),_c('MultipleChoiceInput',{attrs:{\"options\":_vm.options,\"options-html\":_vm.optionsHtml,\"orientation\":_vm.orientation,\"randomize\":_vm.randomize,\"response\":_vm.$magpie.measurements.response},on:{\"update:response\":function($event){return _vm.$set(_vm.$magpie.measurements, \"response\", $event)}}}),(\n _vm.$magpie.measurements.response &&\n (!_vm.$magpie.validateMeasurements.response ||\n !_vm.$magpie.validateMeasurements.response.$invalid)\n )?_c('button',{on:{\"click\":function($event){return _vm.$magpie.saveAndNextScreen()}}},[_vm._v(\" \"+_vm._s(_vm.$t('general.nextButton'))+\" \")]):_vm._e()]},proxy:true},{key:\"feedback\",fn:function(){return [_vm._t(\"feedback\")]},proxy:true}],null,true)},'LifecycleScreen',{ ..._vm.$attrs, ..._vm.$props },false),[_c('template',{slot:\"fixation\"},[_vm._t(\"fixation\")],2),_c('template',{slot:\"stimulus\"},[_vm._t(\"stimulus\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis is a pre-built multiple choice screen, with limited functionality, but easier to use.\n\n```vue\n\n \n\n \n\n \n```\n \n\n\n \n \n \n \n \n \n \n \n \n\n \n \n
\n \n \n {{ $t('general.nextButton') }}\n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./MultipleChoiceScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./MultipleChoiceScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MultipleChoiceScreen.vue?vue&type=template&id=ccf8f3fe&scoped=true&\"\nimport script from \"./MultipleChoiceScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./MultipleChoiceScreen.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ccf8f3fe\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./MultipleChoiceScreen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('LifecycleScreen',_vm._b({scopedSlots:_vm._u([{key:\"task\",fn:function(){return [_c('Record',{attrs:{\"data\":{\n questions: _vm.questions,\n options: _vm.options,\n ...(_vm.randomize && { randomize: _vm.randomize })\n }}}),_c('MultipleChoiceMatrixInput',{attrs:{\"options\":_vm.options,\"questions\":_vm.questions,\"randomize\":_vm.randomize,\"responses\":_vm.$magpie.measurements.responses},on:{\"update:responses\":function($event){return _vm.$set(_vm.$magpie.measurements, \"responses\", $event)}}}),(\n _vm.$magpie.measurements.responses &&\n !_vm.$magpie.validateMeasurements.$invalid\n )?_c('button',{on:{\"click\":_vm.nextAfterResponse}},[_vm._v(\" \"+_vm._s(_vm.$t('general.nextButton'))+\" \")]):_vm._e()]},proxy:true},{key:\"feedback\",fn:function(){return [_vm._t(\"feedback\")]},proxy:true}],null,true)},'LifecycleScreen',{ ..._vm.$attrs, ..._vm.$props },false),[_c('template',{slot:\"fixation\"},[_vm._t(\"fixation\")],2),_c('template',{slot:\"stimulus\"},[_vm._t(\"stimulus\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis is a pre-built multiple choice matrix screen, with limited functionality, but easier to use.\n\n```vue\n\n\n \n\n \n \n```\n \n\n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n {{ $t('general.nextButton') }}\n \n \n \n \n \n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./MultipleChoiceMatrixScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./MultipleChoiceMatrixScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MultipleChoiceMatrixScreen.vue?vue&type=template&id=489277d4&scoped=true&\"\nimport script from \"./MultipleChoiceMatrixScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./MultipleChoiceMatrixScreen.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"489277d4\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./MultipleChoiceMatrixScreen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('LifecycleScreen',_vm._b({scopedSlots:_vm._u([{key:\"fixation\",fn:function(){return [_vm._t(\"fixation\",function(){return [_c('FixationCross')]})]},proxy:true},{key:\"stimulus\",fn:function(){return [_vm._t(\"stimulus\")]},proxy:true},{key:\"task\",fn:function(){return [_c('Record',{attrs:{\"data\":{\n question: _vm.question,\n targets: _vm.targets,\n competitors: _vm.competitors,\n leftKey: _vm.leftKey,\n rightKey: _vm.rightKey,\n mazeTimeLimit: _vm.mazeTimeLimit\n }}}),(_vm.question)?_c('p',{domProps:{\"textContent\":_vm._s(_vm.question)}}):_vm._e(),_c('MazeInput',{attrs:{\"targets\":_vm.targets,\"competitors\":_vm.competitors,\"response-time-limit\":_vm.mazeTimeLimit,\"response-times\":_vm.$magpie.measurements.times,\"target-positions\":_vm.$magpie.measurements.target_positions,\"responses\":_vm.$magpie.measurements.responses,\"timeout\":_vm.$magpie.measurements.maze_timeout,\"correct\":_vm.$magpie.measurements.correct},on:{\"update:responseTimes\":function($event){return _vm.$set(_vm.$magpie.measurements, \"times\", $event)},\"update:response-times\":function($event){return _vm.$set(_vm.$magpie.measurements, \"times\", $event)},\"update:targetPositions\":function($event){return _vm.$set(_vm.$magpie.measurements, \"target_positions\", $event)},\"update:target-positions\":function($event){return _vm.$set(_vm.$magpie.measurements, \"target_positions\", $event)},\"update:responses\":function($event){return _vm.$set(_vm.$magpie.measurements, \"responses\", $event)},\"update:timeout\":function($event){return _vm.$set(_vm.$magpie.measurements, \"maze_timeout\", $event)},\"update:correct\":function($event){return _vm.$set(_vm.$magpie.measurements, \"correct\", $event)},\"end\":_vm.nextAfterResponse}})]},proxy:true},{key:\"feedback\",fn:function(){return [_vm._t(\"feedback\")]},proxy:true}],null,true)},'LifecycleScreen',{ ..._vm.$attrs, ..._vm.$props },false))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis is a pre-built maze task screen.\n\n```vue\n\n \n \n \n \n \n\n \n\n \n```\n \n\n\n \n \n \n \n \n \n \n \n \n\n \n \n \n
\n \n \n\n \n \n \n \n \n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./MazeScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./MazeScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MazeScreen.vue?vue&type=template&id=cb94835e&\"\nimport script from \"./MazeScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./MazeScreen.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./MazeScreen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('LifecycleScreen',_vm._b({scopedSlots:_vm._u([{key:\"fixation\",fn:function(){return [_vm._t(\"fixation\",function(){return [_c('FixationCross')]})]},proxy:true},{key:\"stimulus\",fn:function(){return [_vm._t(\"stimulus\")]},proxy:true},{key:\"task\",fn:function(){return [_c('Record',{attrs:{\"data\":{\n chunks: _vm.chunks,\n trigger: _vm.trigger,\n underline: _vm.underline,\n wordPos: _vm.wordPos,\n question: _vm.question\n }}}),(_vm.question)?_c('p',{domProps:{\"textContent\":_vm._s(_vm.question)}}):_vm._e(),(_vm.instructions)?_c('p',{domProps:{\"textContent\":_vm._s(_vm.instructions)}}):_vm._e(),_c('SelfPacedReadingInput',{attrs:{\"chunks\":_vm.chunks,\"word-pos\":_vm.wordPos,\"underline\":_vm.underline,\"trigger\":_vm.trigger,\"response-times\":_vm.$magpie.measurements.response_times,\"timeout\":_vm.$magpie.measurements.spr_timeout,\"show-keypress-options\":false},on:{\"update:responseTimes\":function($event){return _vm.$set(_vm.$magpie.measurements, \"response_times\", $event)},\"update:response-times\":function($event){return _vm.$set(_vm.$magpie.measurements, \"response_times\", $event)},\"update:timeout\":function($event){return _vm.$set(_vm.$magpie.measurements, \"spr_timeout\", $event)},\"end\":_vm.nextAfterResponse}})]},proxy:true},{key:\"feedback\",fn:function(){return [_vm._t(\"feedback\")]},proxy:true}],null,true)},'LifecycleScreen',{ ..._vm.$attrs, ..._vm.$props },false))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis is a pre-built self-paced reading task screen.\n\n```vue\n\n \n \n \n \n \n\n \n\n \n```\n \n\n\n \n \n \n \n \n \n \n \n \n\n \n \n \n
\n
\n \n \n\n \n \n \n \n \n\n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./SelfPacedReadingScreen.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./SelfPacedReadingScreen.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SelfPacedReadingScreen.vue?vue&type=template&id=18f4a5b4&scoped=true&\"\nimport script from \"./SelfPacedReadingScreen.vue?vue&type=script&lang=js&\"\nexport * from \"./SelfPacedReadingScreen.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SelfPacedReadingScreen.vue?vue&type=style&index=0&id=18f4a5b4&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"18f4a5b4\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SelfPacedReadingScreen.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis component (re)starts capturing the mouse track.\nYou can retrieve the current mouse track with `$magpie.mousetracking.getMouseTrack()`.\n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./MousetrackingStart.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./MousetrackingStart.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MousetrackingStart.vue?vue&type=template&id=39ed7d0a&scoped=true&\"\nimport script from \"./MousetrackingStart.vue?vue&type=script&lang=js&\"\nexport * from \"./MousetrackingStart.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"39ed7d0a\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./MousetrackingStart.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nThis component asks the user to enable full screen.\n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./FullscreenStart.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./FullscreenStart.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FullscreenStart.vue?vue&type=template&id=292734e2&scoped=true&\"\nimport script from \"./FullscreenStart.vue?vue&type=script&lang=js&\"\nexport * from \"./FullscreenStart.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"292734e2\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./FullscreenStart.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n```vue\n\n \n Hide cursor \n \n \n \n \n \n \n```\n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./HideCursor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./HideCursor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HideCursor.vue?vue&type=template&id=41f1974a&\"\nimport script from \"./HideCursor.vue?vue&type=script&lang=js&\"\nexport * from \"./HideCursor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./HideCursor.vue?vue&type=style&index=0&id=41f1974a&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./HideCursor.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n```vue\n\n \n Prevent Copy Paste \n \n \n \n Allow Copy Paste \n \n \n```\n \n \n\n\n\n","import mod from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./PreventCopyPaste.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../cache-loader/dist/cjs.js??ref--1-0!../../../../vue-loader/lib/index.js??vue-loader-options!./PreventCopyPaste.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PreventCopyPaste.vue?vue&type=template&id=1fd20f34&\"\nimport script from \"./PreventCopyPaste.vue?vue&type=script&lang=js&\"\nexport * from \"./PreventCopyPaste.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PreventCopyPaste.vue?vue&type=style&index=0&id=1fd20f34&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PreventCopyPaste.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","export { default as Experiment } from './Experiment';\nexport { default as Screen } from './Screen';\nexport { default as Slide } from './Slide';\n\nexport { default as CompletionInput } from './inputs/CompletionInput';\nexport { default as DropdownInput } from './inputs/DropdownInput';\nexport { default as ForcedChoiceInput } from './inputs/ForcedChoiceInput';\nexport { default as ImageSelectionInput } from './inputs/ImageSelectionInput';\nexport { default as KeypressInput } from './inputs/KeypressInput';\nexport { default as RatingInput } from './inputs/RatingInput';\nexport { default as SliderInput } from './inputs/SliderInput';\nexport { default as TextareaInput } from './inputs/TextareaInput';\nexport { default as MultipleChoiceInput } from './inputs/MultipleChoiceInput';\nexport { default as MultipleChoiceMatrixInput } from './inputs/MultipleChoiceMatrixInput';\nexport { default as SliderRangesInput } from './inputs/SliderRangesInput';\nexport { default as RankOrderInput } from './inputs/RankOrderInput';\nexport { default as MazeInput } from './inputs/MazeInput';\nexport { default as SerialInput } from './inputs/SerialInput';\nexport { default as SelfPacedReadingInput } from './inputs/SelfPacedReadingInput';\n\nexport { default as Rsvp } from './stimuli/Rsvp';\nexport { default as FixationCross } from './stimuli/FixationCross';\nexport const Synth = () => {\n return import(/* webpackPreload: true */ './stimuli/Synth');\n};\n\nexport { default as Chat } from './interactive/Chat';\nexport { default as WaitForParticipants } from './interactive/WaitForParticipants';\n\nexport { default as LifecycleScreen } from './screens/LifecycleScreen';\nexport { default as ConnectInteractiveScreen } from './screens/ConnectInteractiveScreen';\nexport { default as AwaitIteratedResultScreen } from './screens/AwaitIteratedResultScreen';\nexport { default as DebugResultsScreen } from './screens/DebugResultsScreen';\nexport { default as SubmitResultsScreen } from './screens/SubmitResultsScreen';\nexport { default as PostTestScreen } from './screens/PostTestScreen';\nexport { default as InstructionScreen } from './screens/InstructionScreen';\nexport { default as EyetrackingCalibrationScreen } from './screens/EyetrackingCalibrationScreen';\nexport { default as EyetrackingValidationScreen } from './screens/EyetrackingValidationScreen';\n\nexport { default as ForcedChoiceScreen } from './trial_screens/ForcedChoiceScreen';\nexport { default as ImageSelectionScreen } from './trial_screens/ImageSelectionScreen';\nexport { default as TextareaScreen } from './trial_screens/TextareaScreen';\nexport { default as SliderScreen } from './trial_screens/SliderScreen';\nexport { default as SliderRangesScreen } from './trial_screens/SliderRangesScreen';\nexport { default as RatingScreen } from './trial_screens/RatingScreen';\nexport { default as CompletionScreen } from './trial_screens/CompletionScreen';\nexport { default as KeypressScreen } from './trial_screens/KeypressScreen';\nexport { default as ForcedChoiceMousetrackingScreen } from './trial_screens/ForcedChoiceMousetrackingScreen';\nexport { default as MultipleChoiceScreen } from './trial_screens/MultipleChoiceScreen';\nexport { default as MultipleChoiceMatrixScreen } from './trial_screens/MultipleChoiceMatrixScreen';\nexport { default as MazeScreen } from './trial_screens/MazeScreen';\nexport { default as SelfPacedReadingScreen } from './trial_screens/SelfPacedReadingScreen';\n\nexport { default as Wait } from './helpers/Wait';\nexport { default as TimerStop } from './helpers/TimerStop';\nexport { default as TimerStart } from './helpers/TimerStart';\nexport { default as Record } from './helpers/Record';\nexport { default as ResponseTimeStart } from './helpers/ResponseTimeStart';\nexport { default as MousetrackingStart } from './helpers/MousetrackingStart';\nexport { default as EyetrackingStart } from './helpers/EyetrackingStart';\nexport { default as FullscreenStart } from './helpers/FullscreenStart';\nexport { default as HideCursor } from './helpers/HideCursor';\nexport { default as PreventCopyPaste } from './helpers/PreventCopyPaste';\n","/*!\n * vue-i18n v8.27.2 \n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\n/* */\n\n/**\n * constants\n */\n\nvar numberFormatKeys = [\n 'compactDisplay',\n 'currency',\n 'currencyDisplay',\n 'currencySign',\n 'localeMatcher',\n 'notation',\n 'numberingSystem',\n 'signDisplay',\n 'style',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits'\n];\n\n/**\n * utilities\n */\n\nfunction warn (msg, err) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.warn(err.stack);\n }\n }\n}\n\nfunction error (msg, err) {\n if (typeof console !== 'undefined') {\n console.error('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.error(err.stack);\n }\n }\n}\n\nvar isArray = Array.isArray;\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isBoolean (val) {\n return typeof val === 'boolean'\n}\n\nfunction isString (val) {\n return typeof val === 'string'\n}\n\nvar toString = Object.prototype.toString;\nvar OBJECT_STRING = '[object Object]';\nfunction isPlainObject (obj) {\n return toString.call(obj) === OBJECT_STRING\n}\n\nfunction isNull (val) {\n return val === null || val === undefined\n}\n\nfunction isFunction (val) {\n return typeof val === 'function'\n}\n\nfunction parseArgs () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var locale = null;\n var params = null;\n if (args.length === 1) {\n if (isObject(args[0]) || isArray(args[0])) {\n params = args[0];\n } else if (typeof args[0] === 'string') {\n locale = args[0];\n }\n } else if (args.length === 2) {\n if (typeof args[0] === 'string') {\n locale = args[0];\n }\n /* istanbul ignore if */\n if (isObject(args[1]) || isArray(args[1])) {\n params = args[1];\n }\n }\n\n return { locale: locale, params: params }\n}\n\nfunction looseClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction remove (arr, item) {\n if (arr.delete(item)) {\n return arr\n }\n}\n\nfunction arrayFrom (arr) {\n var ret = [];\n arr.forEach(function (a) { return ret.push(a); });\n return ret\n}\n\nfunction includes (arr, item) {\n return !!~arr.indexOf(item)\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\nfunction merge (target) {\n var arguments$1 = arguments;\n\n var output = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments$1[i];\n if (source !== undefined && source !== null) {\n var key = (void 0);\n for (key in source) {\n if (hasOwn(source, key)) {\n if (isObject(source[key])) {\n output[key] = merge(output[key], source[key]);\n } else {\n output[key] = source[key];\n }\n }\n }\n }\n }\n return output\n}\n\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = isArray(a);\n var isArrayB = isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Sanitizes html special characters from input strings. For mitigating risk of XSS attacks.\n * @param rawText The raw input from the user that should be escaped.\n */\nfunction escapeHtml(rawText) {\n return rawText\n .replace(/