@decidables/detectable-elements 0.0.3 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -0
- package/LICENSE.md +641 -750
- package/README.md +22 -10
- package/lib/detectableElements.esm.js +11504 -10981
- package/lib/detectableElements.esm.js.map +1 -1
- package/lib/detectableElements.esm.min.js +2218 -3
- package/lib/detectableElements.esm.min.js.map +1 -1
- package/lib/detectableElements.umd.js +11542 -11019
- package/lib/detectableElements.umd.js.map +1 -1
- package/lib/detectableElements.umd.min.js +2218 -3
- package/lib/detectableElements.umd.min.js.map +1 -1
- package/package.json +17 -9
- package/src/components/detectable-control.js +5 -5
- package/src/components/rdk-task.js +3 -5
- package/src/components/roc-space.js +3 -5
- package/src/components/sdt-model.js +3 -5
- package/src/examples/sdt-example.js +0 -3
|
@@ -1,13 +1,2228 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).detectableElements={})}(this,(function(t){"use strict";
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).detectableElements={})}(this,(function(t){"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* @license
|
|
4
4
|
* Copyright 2019 Google LLC
|
|
5
5
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
6
|
-
*/var S,A,E=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,T=Symbol(),M=new Map,C=function(){function t(e,n){if(r(this,t),this._$cssResult$=!0,n!==T)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e}return i(t,[{key:"styleSheet",get:function(){var t=M.get(this.cssText);return E&&void 0===t&&(M.set(this.cssText,t=new CSSStyleSheet),t.replaceSync(this.cssText)),t}},{key:"toString",value:function(){return this.cssText}}]),t}(),N=function(t){return new C("string"==typeof t?t:t+"",T)},R=function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];var a=1===t.length?t[0]:n.reduce((function(e,n,r){return e+function(t){if(!0===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")}(n)+t[r+1]}),t[0]);return new C(a,T)},q=E?function(t){return t}:function(t){return t instanceof CSSStyleSheet?function(t){var e,n="",r=_(t.cssRules);try{for(r.s();!(e=r.n()).done;){n+=e.value.cssText}}catch(t){r.e(t)}finally{r.f()}return N(n)}(t):t},P=window.trustedTypes,z=P?P.emptyScript:"",F=window.reactiveElementPolyfillSupport,$={toAttribute:function(t,e){switch(e){case Boolean:t=t?z:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute:function(t,e){var n=t;switch(e){case Boolean:n=null!==t;break;case Number:n=null===t?null:Number(t);break;case Object:case Array:try{n=JSON.parse(t)}catch(t){n=null}}return n}},O=function(t,e){return e!==t&&(e==e||t==t)},I={attribute:!0,type:String,converter:$,reflect:!1,hasChanged:O},H=function(t){s(c,t);var a,o,l=v(c);function c(){var t;return r(this,c),(t=l.call(this))._$Et=new Map,t.isUpdatePending=!1,t.hasUpdated=!1,t._$Ei=null,t.o(),t}return i(c,[{key:"o",value:function(){var t,e=this;this._$Ep=new Promise((function(t){return e.enableUpdating=t})),this._$AL=new Map,this._$Em(),this.requestUpdate(),null===(t=this.constructor.l)||void 0===t||t.forEach((function(t){return t(e)}))}},{key:"addController",value:function(t){var e,n;(null!==(e=this._$Eg)&&void 0!==e?e:this._$Eg=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(n=t.hostConnected)||void 0===n||n.call(t))}},{key:"removeController",value:function(t){var e;null===(e=this._$Eg)||void 0===e||e.splice(this._$Eg.indexOf(t)>>>0,1)}},{key:"_$Em",value:function(){var t=this;this.constructor.elementProperties.forEach((function(e,n){t.hasOwnProperty(n)&&(t._$Et.set(n,t[n]),delete t[n])}))}},{key:"createRenderRoot",value:function(){var t,e=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return function(t,e){E?t.adoptedStyleSheets=e.map((function(t){return t instanceof CSSStyleSheet?t:t.styleSheet})):e.forEach((function(e){var n=document.createElement("style"),r=window.litNonce;void 0!==r&&n.setAttribute("nonce",r),n.textContent=e.cssText,t.appendChild(n)}))}(e,this.constructor.elementStyles),e}},{key:"connectedCallback",value:function(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$Eg)||void 0===t||t.forEach((function(t){var e;return null===(e=t.hostConnected)||void 0===e?void 0:e.call(t)}))}},{key:"enableUpdating",value:function(t){}},{key:"disconnectedCallback",value:function(){var t;null===(t=this._$Eg)||void 0===t||t.forEach((function(t){var e;return null===(e=t.hostDisconnected)||void 0===e?void 0:e.call(t)}))}},{key:"attributeChangedCallback",value:function(t,e,n){this._$AK(t,n)}},{key:"_$ES",value:function(t,e){var n,r,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:I,i=this.constructor._$Eh(t,a);if(void 0!==i&&!0===a.reflect){var o=(null!==(r=null===(n=a.converter)||void 0===n?void 0:n.toAttribute)&&void 0!==r?r:$.toAttribute)(e,a.type);this._$Ei=t,null==o?this.removeAttribute(i):this.setAttribute(i,o),this._$Ei=null}}},{key:"_$AK",value:function(t,e){var n,r,a,i=this.constructor,o=i._$Eu.get(t);if(void 0!==o&&this._$Ei!==o){var s=i.getPropertyOptions(o),l=s.converter,c=null!==(a=null!==(r=null===(n=l)||void 0===n?void 0:n.fromAttribute)&&void 0!==r?r:"function"==typeof l?l:null)&&void 0!==a?a:$.fromAttribute;this._$Ei=o,this[o]=c(e,s.type),this._$Ei=null}}},{key:"requestUpdate",value:function(t,e,n){var r=!0;void 0!==t&&(((n=n||this.constructor.getPropertyOptions(t)).hasChanged||O)(this[t],e)?(this._$AL.has(t)||this._$AL.set(t,e),!0===n.reflect&&this._$Ei!==t&&(void 0===this._$E_&&(this._$E_=new Map),this._$E_.set(t,n))):r=!1),!this.isUpdatePending&&r&&(this._$Ep=this._$EC())}},{key:"_$EC",value:(a=regeneratorRuntime.mark((function t(){var e;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.isUpdatePending=!0,t.prev=1,t.next=4,this._$Ep;case 4:t.next=9;break;case 6:t.prev=6,t.t0=t.catch(1),Promise.reject(t.t0);case 9:if(e=this.scheduleUpdate(),t.t1=null!=e,!t.t1){t.next=14;break}return t.next=14,e;case 14:return t.abrupt("return",!this.isUpdatePending);case 15:case"end":return t.stop()}}),t,this,[[1,6]])})),o=function(){var t=this,e=arguments;return new Promise((function(r,i){var o=a.apply(t,e);function s(t){n(o,r,i,s,l,"next",t)}function l(t){n(o,r,i,s,l,"throw",t)}s(void 0)}))},function(){return o.apply(this,arguments)})},{key:"scheduleUpdate",value:function(){return this.performUpdate()}},{key:"performUpdate",value:function(){var t,e=this;if(this.isUpdatePending){this.hasUpdated,this._$Et&&(this._$Et.forEach((function(t,n){return e[n]=t})),this._$Et=void 0);var n=!1,r=this._$AL;try{(n=this.shouldUpdate(r))?(this.willUpdate(r),null===(t=this._$Eg)||void 0===t||t.forEach((function(t){var e;return null===(e=t.hostUpdate)||void 0===e?void 0:e.call(t)})),this.update(r)):this._$EU()}catch(t){throw n=!1,this._$EU(),t}n&&this._$AE(r)}}},{key:"willUpdate",value:function(t){}},{key:"_$AE",value:function(t){var e;null===(e=this._$Eg)||void 0===e||e.forEach((function(t){var e;return null===(e=t.hostUpdated)||void 0===e?void 0:e.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}},{key:"_$EU",value:function(){this._$AL=new Map,this.isUpdatePending=!1}},{key:"updateComplete",get:function(){return this.getUpdateComplete()}},{key:"getUpdateComplete",value:function(){return this._$Ep}},{key:"shouldUpdate",value:function(t){return!0}},{key:"update",value:function(t){var e=this;void 0!==this._$E_&&(this._$E_.forEach((function(t,n){return e._$ES(n,e[n],t)})),this._$E_=void 0),this._$EU()}},{key:"updated",value:function(t){}},{key:"firstUpdated",value:function(t){}}],[{key:"addInitializer",value:function(t){var e;null!==(e=this.l)&&void 0!==e||(this.l=[]),this.l.push(t)}},{key:"observedAttributes",get:function(){var t=this;this.finalize();var e=[];return this.elementProperties.forEach((function(n,r){var a=t._$Eh(r,n);void 0!==a&&(t._$Eu.set(a,r),e.push(a))})),e}},{key:"createProperty",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:I;if(n.state&&(n.attribute=!1),this.finalize(),this.elementProperties.set(t,n),!n.noAccessor&&!this.prototype.hasOwnProperty(t)){var r="symbol"==e(t)?Symbol():"__"+t,a=this.getPropertyDescriptor(t,r,n);void 0!==a&&Object.defineProperty(this.prototype,t,a)}}},{key:"getPropertyDescriptor",value:function(t,e,n){return{get:function(){return this[e]},set:function(r){var a=this[t];this[e]=r,this.requestUpdate(t,a,n)},configurable:!0,enumerable:!0}}},{key:"getPropertyOptions",value:function(t){return this.elementProperties.get(t)||I}},{key:"finalize",value:function(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;var t=Object.getPrototypeOf(this);if(t.finalize(),this.elementProperties=new Map(t.elementProperties),this._$Eu=new Map,this.hasOwnProperty("properties")){var e,n=this.properties,r=_([].concat(w(Object.getOwnPropertyNames(n)),w(Object.getOwnPropertySymbols(n))));try{for(r.s();!(e=r.n()).done;){var a=e.value;this.createProperty(a,n[a])}}catch(t){r.e(t)}finally{r.f()}}return this.elementStyles=this.finalizeStyles(this.styles),!0}},{key:"finalizeStyles",value:function(t){var e=[];if(Array.isArray(t)){var n,r=_(new Set(t.flat(1/0).reverse()));try{for(r.s();!(n=r.n()).done;){var a=n.value;e.unshift(q(a))}}catch(t){r.e(t)}finally{r.f()}}else void 0!==t&&e.push(q(t));return e}},{key:"_$Eh",value:function(t,e){var n=e.attribute;return!1===n?void 0:"string"==typeof n?n:"string"==typeof t?t.toLowerCase():void 0}}]),c}(d(HTMLElement));H.finalized=!0,H.elementProperties=new Map,H.elementStyles=[],H.shadowRootOptions={mode:"open"},null==F||F({ReactiveElement:H}),(null!==(S=globalThis.reactiveElementVersions)&&void 0!==S?S:globalThis.reactiveElementVersions=[]).push("1.1.2");var D=globalThis.trustedTypes,U=D?D.createPolicy("lit-html",{createHTML:function(t){return t}}):void 0,j="lit$".concat((Math.random()+"").slice(9),"$"),L="?"+j,V="<".concat(L,">"),B=document,K=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return B.createComment(t)},X=function(t){return null===t||"object"!=e(t)&&"function"!=typeof t},G=Array.isArray,Z=function(t){var e;return G(t)||"function"==typeof(null===(e=t)||void 0===e?void 0:e[Symbol.iterator])},Y=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,W=/-->/g,Q=/>/g,J=/>|[ \n\r](?:([^\s"'>=/]+)([ \n\r]*=[ \n\r]*(?:[^ \n\r"'`<>=]|("|')|))|$)/g,tt=/'/g,et=/"/g,nt=/^(?:script|style|textarea)$/i,rt=function(t){return function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];return{_$litType$:t,strings:e,values:r}}},at=rt(1),it=rt(2),ot=Symbol.for("lit-noChange"),st=Symbol.for("lit-nothing"),lt=new WeakMap,ct=B.createTreeWalker(B,129,null,!1),ut=function(t,e){for(var n,r=t.length-1,a=[],i=2===e?"<svg>":"",o=Y,s=0;s<r;s++){for(var l=t[s],c=void 0,u=void 0,h=-1,d=0;d<l.length&&(o.lastIndex=d,null!==(u=o.exec(l)));)d=o.lastIndex,o===Y?"!--"===u[1]?o=W:void 0!==u[1]?o=Q:void 0!==u[2]?(nt.test(u[2])&&(n=RegExp("</"+u[2],"g")),o=J):void 0!==u[3]&&(o=J):o===J?">"===u[0]?(o=null!=n?n:Y,h=-1):void 0===u[1]?h=-2:(h=o.lastIndex-u[2].length,c=u[1],o=void 0===u[3]?J:'"'===u[3]?et:tt):o===et||o===tt?o=J:o===W||o===Q?o=Y:(o=J,n=void 0);var f=o===J&&t[s+1].startsWith("/>")?" ":"";i+=o===Y?l+V:h>=0?(a.push(c),l.slice(0,h)+"$lit$"+l.slice(h)+j+f):l+j+(-2===h?(a.push(void 0),s):f)}var p=i+(t[r]||"<?>")+(2===e?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==U?U.createHTML(p):p,a]},ht=function(){function t(e,n){var a,i=e.strings,o=e._$litType$;r(this,t),this.parts=[];var s=0,l=0,c=i.length-1,u=this.parts,h=y(ut(i,o),2),d=h[0],f=h[1];if(this.el=t.createElement(d,n),ct.currentNode=this.el.content,2===o){var p=this.el.content,v=p.firstChild;v.remove(),p.append.apply(p,w(v.childNodes))}for(;null!==(a=ct.nextNode())&&u.length<c;){if(1===a.nodeType){if(a.hasAttributes()){var m,b=[],g=_(a.getAttributeNames());try{for(g.s();!(m=g.n()).done;){var k=m.value;if(k.endsWith("$lit$")||k.startsWith(j)){var x=f[l++];if(b.push(k),void 0!==x){var S=a.getAttribute(x.toLowerCase()+"$lit$").split(j),A=/([.?@])?(.*)/.exec(x);u.push({type:1,index:s,name:A[2],strings:S,ctor:"."===A[1]?gt:"?"===A[1]?wt:"@"===A[1]?kt:bt})}else u.push({type:6,index:s})}}}catch(t){g.e(t)}finally{g.f()}for(var E=0,T=b;E<T.length;E++){var M=T[E];a.removeAttribute(M)}}if(nt.test(a.tagName)){var C=a.textContent.split(j),N=C.length-1;if(N>0){a.textContent=D?D.emptyScript:"";for(var R=0;R<N;R++)a.append(C[R],K()),ct.nextNode(),u.push({type:2,index:++s});a.append(C[N],K())}}}else if(8===a.nodeType)if(a.data===L)u.push({type:2,index:s});else for(var q=-1;-1!==(q=a.data.indexOf(j,q+1));)u.push({type:7,index:s}),q+=j.length-1;s++}}return i(t,null,[{key:"createElement",value:function(t,e){var n=B.createElement("template");return n.innerHTML=t,n}}]),t}();function dt(t,e){var n,r,a,i,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t,s=arguments.length>3?arguments[3]:void 0;if(e===ot)return e;var l=void 0!==s?null===(n=o._$Cl)||void 0===n?void 0:n[s]:o._$Cu,c=X(e)?void 0:e._$litDirective$;return(null==l?void 0:l.constructor)!==c&&(null===(r=null==l?void 0:l._$AO)||void 0===r||r.call(l,!1),void 0===c?l=void 0:(l=new c(t))._$AT(t,o,s),void 0!==s?(null!==(a=(i=o)._$Cl)&&void 0!==a?a:i._$Cl=[])[s]=l:o._$Cu=l),void 0!==l&&(e=dt(t,l._$AS(t,e.values),l,s)),e}var ft,pt,vt=function(){function t(e,n){r(this,t),this.v=[],this._$AN=void 0,this._$AD=e,this._$AM=n}return i(t,[{key:"parentNode",get:function(){return this._$AM.parentNode}},{key:"_$AU",get:function(){return this._$AM._$AU}},{key:"p",value:function(t){var e,n=this._$AD,r=n.el.content,a=n.parts,i=(null!==(e=null==t?void 0:t.creationScope)&&void 0!==e?e:B).importNode(r,!0);ct.currentNode=i;for(var o=ct.nextNode(),s=0,l=0,c=a[0];void 0!==c;){if(s===c.index){var u=void 0;2===c.type?u=new mt(o,o.nextSibling,this,t):1===c.type?u=new c.ctor(o,c.name,c.strings,this,t):6===c.type&&(u=new xt(o,this,t)),this.v.push(u),c=a[++l]}s!==(null==c?void 0:c.index)&&(o=ct.nextNode(),s++)}return i}},{key:"m",value:function(t){var e,n=0,r=_(this.v);try{for(r.s();!(e=r.n()).done;){var a=e.value;void 0!==a&&(void 0!==a.strings?(a._$AI(t,a,n),n+=a.strings.length-2):a._$AI(t[n])),n++}}catch(t){r.e(t)}finally{r.f()}}}]),t}(),mt=function(){function t(e,n,a,i){var o;r(this,t),this.type=2,this._$AH=st,this._$AN=void 0,this._$AA=e,this._$AB=n,this._$AM=a,this.options=i,this._$Cg=null===(o=null==i?void 0:i.isConnected)||void 0===o||o}return i(t,[{key:"_$AU",get:function(){var t,e;return null!==(e=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==e?e:this._$Cg}},{key:"parentNode",get:function(){var t=this._$AA.parentNode,e=this._$AM;return void 0!==e&&11===t.nodeType&&(t=e.parentNode),t}},{key:"startNode",get:function(){return this._$AA}},{key:"endNode",get:function(){return this._$AB}},{key:"_$AI",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this;t=dt(this,t,e),X(t)?t===st||null==t||""===t?(this._$AH!==st&&this._$AR(),this._$AH=st):t!==this._$AH&&t!==ot&&this.$(t):void 0!==t._$litType$?this.T(t):void 0!==t.nodeType?this.S(t):Z(t)?this.A(t):this.$(t)}},{key:"M",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._$AB;return this._$AA.parentNode.insertBefore(t,e)}},{key:"S",value:function(t){this._$AH!==t&&(this._$AR(),this._$AH=this.M(t))}},{key:"$",value:function(t){this._$AH!==st&&X(this._$AH)?this._$AA.nextSibling.data=t:this.S(B.createTextNode(t)),this._$AH=t}},{key:"T",value:function(t){var e,n=t.values,r=t._$litType$,a="number"==typeof r?this._$AC(t):(void 0===r.el&&(r.el=ht.createElement(r.h,this.options)),r);if((null===(e=this._$AH)||void 0===e?void 0:e._$AD)===a)this._$AH.m(n);else{var i=new vt(a,this),o=i.p(this.options);i.m(n),this.S(o),this._$AH=i}}},{key:"_$AC",value:function(t){var e=lt.get(t.strings);return void 0===e&<.set(t.strings,e=new ht(t)),e}},{key:"A",value:function(e){G(this._$AH)||(this._$AH=[],this._$AR());var n,r,a=this._$AH,i=0,o=_(e);try{for(o.s();!(r=o.n()).done;){var s=r.value;i===a.length?a.push(n=new t(this.M(K()),this.M(K()),this,this.options)):n=a[i],n._$AI(s),i++}}catch(t){o.e(t)}finally{o.f()}i<a.length&&(this._$AR(n&&n._$AB.nextSibling,i),a.length=i)}},{key:"_$AR",value:function(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._$AA.nextSibling,n=arguments.length>1?arguments[1]:void 0;for(null===(t=this._$AP)||void 0===t||t.call(this,!1,!0,n);e&&e!==this._$AB;){var r=e.nextSibling;e.remove(),e=r}}},{key:"setConnected",value:function(t){var e;void 0===this._$AM&&(this._$Cg=t,null===(e=this._$AP)||void 0===e||e.call(this,t))}}]),t}(),bt=function(){function t(e,n,a,i,o){r(this,t),this.type=1,this._$AH=st,this._$AN=void 0,this.element=e,this.name=n,this._$AM=i,this.options=o,a.length>2||""!==a[0]||""!==a[1]?(this._$AH=Array(a.length-1).fill(new String),this.strings=a):this._$AH=st}return i(t,[{key:"tagName",get:function(){return this.element.tagName}},{key:"_$AU",get:function(){return this._$AM._$AU}},{key:"_$AI",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,a=this.strings,i=!1;if(void 0===a)t=dt(this,t,e,0),(i=!X(t)||t!==this._$AH&&t!==ot)&&(this._$AH=t);else{var o,s,l=t;for(t=a[0],o=0;o<a.length-1;o++)(s=dt(this,l[n+o],e,o))===ot&&(s=this._$AH[o]),i||(i=!X(s)||s!==this._$AH[o]),s===st?t=st:t!==st&&(t+=(null!=s?s:"")+a[o+1]),this._$AH[o]=s}i&&!r&&this.k(t)}},{key:"k",value:function(t){t===st?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:"")}}]),t}(),gt=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.apply(this,arguments)).type=3,t}return i(n,[{key:"k",value:function(t){this.element[this.name]=t===st?void 0:t}}]),n}(bt),yt=D?D.emptyScript:"",wt=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.apply(this,arguments)).type=4,t}return i(n,[{key:"k",value:function(t){t&&t!==st?this.element.setAttribute(this.name,yt):this.element.removeAttribute(this.name)}}]),n}(bt),kt=function(t){s(n,t);var e=v(n);function n(t,a,i,o,s){var l;return r(this,n),(l=e.call(this,t,a,i,o,s)).type=5,l}return i(n,[{key:"_$AI",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this;if((t=null!==(e=dt(this,t,n,0))&&void 0!==e?e:st)!==ot){var r=this._$AH,a=t===st&&r!==st||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,i=t!==st&&(r===st||a);a&&this.element.removeEventListener(this.name,this,r),i&&this.element.addEventListener(this.name,this,t),this._$AH=t}}},{key:"handleEvent",value:function(t){var e,n;"function"==typeof this._$AH?this._$AH.call(null!==(n=null===(e=this.options)||void 0===e?void 0:e.host)&&void 0!==n?n:this.element,t):this._$AH.handleEvent(t)}}]),n}(bt),xt=function(){function t(e,n,a){r(this,t),this.element=e,this.type=6,this._$AN=void 0,this._$AM=n,this.options=a}return i(t,[{key:"_$AU",get:function(){return this._$AM._$AU}},{key:"_$AI",value:function(t){dt(this,t)}}]),t}(),_t=window.litHtmlPolyfillSupport;null==_t||_t(ht,mt),(null!==(A=globalThis.litHtmlVersions)&&void 0!==A?A:globalThis.litHtmlVersions=[]).push("2.1.1");var St=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.apply(this,arguments)).renderOptions={host:f(t)},t._$Dt=void 0,t}return i(n,[{key:"createRenderRoot",value:function(){var t,e,r=b(l(n.prototype),"createRenderRoot",this).call(this);return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=r.firstChild),r}},{key:"update",value:function(t){var e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),b(l(n.prototype),"update",this).call(this,t),this._$Dt=function(t,e,n){var r,a,i=null!==(r=null==n?void 0:n.renderBefore)&&void 0!==r?r:e,o=i._$litPart$;if(void 0===o){var s=null!==(a=null==n?void 0:n.renderBefore)&&void 0!==a?a:null;i._$litPart$=o=new mt(e.insertBefore(K(),s),s,void 0,null!=n?n:{})}return o._$AI(t),o}(e,this.renderRoot,this.renderOptions)}},{key:"connectedCallback",value:function(){var t;b(l(n.prototype),"connectedCallback",this).call(this),null===(t=this._$Dt)||void 0===t||t.setConnected(!0)}},{key:"disconnectedCallback",value:function(){var t;b(l(n.prototype),"disconnectedCallback",this).call(this),null===(t=this._$Dt)||void 0===t||t.setConnected(!1)}},{key:"render",value:function(){return ot}}]),n}(H);St.finalized=!0,St._$litElement$=!0,null===(ft=globalThis.litElementHydrateSupport)||void 0===ft||ft.call(globalThis,{LitElement:St});var At=globalThis.litElementPolyfillSupport;function Et(t,e){return null==t||null==e?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function Tt(t){var e=t,n=t,r=t;function a(t,e){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.length;if(a<i){if(0!==n(e,e))return i;do{var o=a+i>>>1;r(t[o],e)<0?a=o+1:i=o}while(a<i)}return a}return 2!==t.length&&(e=function(e,n){return t(e)-n},n=Et,r=function(e,n){return Et(t(e),n)}),{left:a,center:function(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.length,o=a(t,n,r,i-1);return o>r&&e(t[o-1],n)>-e(t[o],n)?o-1:o},right:function(t,e){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.length;if(a<i){if(0!==n(e,e))return i;do{var o=a+i>>>1;r(t[o],e)<=0?a=o+1:i=o}while(a<i)}return a}}}null==At||At({LitElement:St}),(null!==(pt=globalThis.litElementVersions)&&void 0!==pt?pt:globalThis.litElementVersions=[]).push("3.1.1");var Mt=Tt(Et).right;Tt((function(t){return null===t?NaN:+t})).center;var Ct=Mt;function Nt(t,e){var n,r;if(void 0===e){var a,i=_(t);try{for(i.s();!(a=i.n()).done;){var o=a.value;null!=o&&(void 0===n?o>=o&&(n=r=o):(n>o&&(n=o),r<o&&(r=o)))}}catch(t){i.e(t)}finally{i.f()}}else{var s,l=-1,c=_(t);try{for(c.s();!(s=c.n()).done;){var u=s.value;null!=(u=e(u,++l,t))&&(void 0===n?u>=u&&(n=r=u):(n>u&&(n=u),r<u&&(r=u)))}}catch(t){c.e(t)}finally{c.f()}}return[n,r]}var Rt=function(){function t(){r(this,t),this._partials=new Float64Array(32),this._n=0}return i(t,[{key:"add",value:function(t){for(var e=this._partials,n=0,r=0;r<this._n&&r<32;r++){var a=e[r],i=t+a,o=Math.abs(t)<Math.abs(a)?t-(i-a):a-(i-t);o&&(e[n++]=o),t=i}return e[n]=t,this._n=n+1,this}},{key:"valueOf",value:function(){var t,e,n,r=this._partials,a=this._n,i=0;if(a>0){for(i=r[--a];a>0&&(t=i,!(n=(e=r[--a])-((i=t+e)-t))););a>0&&(n<0&&r[a-1]<0||n>0&&r[a-1]>0)&&(e=2*n)==(t=i+e)-i&&(i=t)}return i}}]),t}();function qt(t){return t}var Pt=Array.prototype.slice;function zt(t){return function(){return t}}var Ft=Math.sqrt(50),$t=Math.sqrt(10),Ot=Math.sqrt(2);function It(t,e,n){var r,a,i,o,s=-1;if(n=+n,(t=+t)===(e=+e)&&n>0)return[t];if((r=e<t)&&(a=t,t=e,e=a),0===(o=Ht(t,e,n))||!isFinite(o))return[];if(o>0){var l=Math.round(t/o),c=Math.round(e/o);for(l*o<t&&++l,c*o>e&&--c,i=new Array(a=c-l+1);++s<a;)i[s]=(l+s)*o}else{o=-o;var u=Math.round(t*o),h=Math.round(e*o);for(u/o<t&&++u,h/o>e&&--h,i=new Array(a=h-u+1);++s<a;)i[s]=(u+s)/o}return r&&i.reverse(),i}function Ht(t,e,n){var r=(e-t)/Math.max(0,n),a=Math.floor(Math.log(r)/Math.LN10),i=r/Math.pow(10,a);return a>=0?(i>=Ft?10:i>=$t?5:i>=Ot?2:1)*Math.pow(10,a):-Math.pow(10,-a)/(i>=Ft?10:i>=$t?5:i>=Ot?2:1)}function Dt(t,e,n){var r=Math.abs(e-t)/Math.max(0,n),a=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),i=r/a;return i>=Ft?a*=10:i>=$t?a*=5:i>=Ot&&(a*=2),e<t?-a:a}function Ut(t){return Math.ceil(Math.log(function(t,e){var n=0;if(void 0===e){var r,a=_(t);try{for(a.s();!(r=a.n()).done;){var i=r.value;null!=i&&(i=+i)>=i&&++n}}catch(t){a.e(t)}finally{a.f()}}else{var o,s=-1,l=_(t);try{for(l.s();!(o=l.n()).done;){var c=o.value;null!=(c=e(c,++s,t))&&(c=+c)>=c&&++n}}catch(t){l.e(t)}finally{l.f()}}return n}(t))/Math.LN2)+1}function jt(){var t=qt,e=Nt,n=Ut;function r(r){Array.isArray(r)||(r=Array.from(r));var a,i,o=r.length,s=new Array(o);for(a=0;a<o;++a)s[a]=t(r[a],a,r);var l=e(s),c=l[0],u=l[1],h=n(s,c,u);if(!Array.isArray(h)){var d=u,f=+h;if(e===Nt){var p=function(t,e,n){for(var r;;){var a=Ht(t,e,n);if(a===r||0===a||!isFinite(a))return[t,e];a>0?(t=Math.floor(t/a)*a,e=Math.ceil(e/a)*a):a<0&&(t=Math.ceil(t*a)/a,e=Math.floor(e*a)/a),r=a}}(c,u,f),v=y(p,2);c=v[0],u=v[1]}if((h=It(c,u,f))[h.length-1]>=u)if(d>=u&&e===Nt){var m=Ht(c,u,f);isFinite(m)&&(m>0?u=(Math.floor(u/m)+1)*m:m<0&&(u=(Math.ceil(u*-m)+1)/-m))}else h.pop()}for(var b=h.length;h[0]<=c;)h.shift(),--b;for(;h[b-1]>u;)h.pop(),--b;var g,w=new Array(b+1);for(a=0;a<=b;++a)(g=w[a]=[]).x0=a>0?h[a-1]:c,g.x1=a<b?h[a]:u;for(a=0;a<o;++a)null!=(i=s[a])&&c<=i&&i<=u&&w[Ct(h,i,0,b)].push(r[a]);return w}return r.value=function(e){return arguments.length?(t="function"==typeof e?e:zt(e),r):t},r.domain=function(t){return arguments.length?(e="function"==typeof t?t:zt([t[0],t[1]]),r):e},r.thresholds=function(t){return arguments.length?(n="function"==typeof t?t:Array.isArray(t)?zt(Pt.call(t)):zt(t),r):n},r}var Lt=regeneratorRuntime.mark(Vt);function Vt(t){var e,n,r;return regeneratorRuntime.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:e=_(t),a.prev=1,e.s();case 3:if((n=e.n()).done){a.next=8;break}return r=n.value,a.delegateYield(r,"t0",6);case 6:a.next=3;break;case 8:a.next=13;break;case 10:a.prev=10,a.t1=a.catch(1),e.e(a.t1);case 13:return a.prev=13,e.f(),a.finish(13);case 16:case"end":return a.stop()}}),Lt,null,[[1,10,13,16]])}function Bt(t,e,n){t=+t,e=+e,n=(a=arguments.length)<2?(e=t,t=0,1):a<3?1:+n;for(var r=-1,a=0|Math.max(0,Math.ceil((e-t)/n)),i=new Array(a);++r<a;)i[r]=t+r*n;return i}function Kt(t){return t}var Xt=1e-6;function Gt(t){return"translate("+t+",0)"}function Zt(t){return"translate(0,"+t+")"}function Yt(t){return function(e){return+t(e)}}function Wt(t,e){return e=Math.max(0,t.bandwidth()-2*e)/2,t.round()&&(e=Math.round(e)),function(n){return+t(n)+e}}function Qt(){return!this.__axis}function Jt(t,e){var n=[],r=null,a=null,i=6,o=6,s=3,l="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,c=1===t||4===t?-1:1,u=4===t||2===t?"x":"y",h=1===t||3===t?Gt:Zt;function d(d){var f=null==r?e.ticks?e.ticks.apply(e,n):e.domain():r,p=null==a?e.tickFormat?e.tickFormat.apply(e,n):Kt:a,v=Math.max(i,0)+s,m=e.range(),b=+m[0]+l,g=+m[m.length-1]+l,y=(e.bandwidth?Wt:Yt)(e.copy(),l),w=d.selection?d.selection():d,k=w.selectAll(".domain").data([null]),x=w.selectAll(".tick").data(f,e).order(),_=x.exit(),S=x.enter().append("g").attr("class","tick"),A=x.select("line"),E=x.select("text");k=k.merge(k.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),x=x.merge(S),A=A.merge(S.append("line").attr("stroke","currentColor").attr(u+"2",c*i)),E=E.merge(S.append("text").attr("fill","currentColor").attr(u,c*v).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),d!==w&&(k=k.transition(d),x=x.transition(d),A=A.transition(d),E=E.transition(d),_=_.transition(d).attr("opacity",Xt).attr("transform",(function(t){return isFinite(t=y(t))?h(t+l):this.getAttribute("transform")})),S.attr("opacity",Xt).attr("transform",(function(t){var e=this.parentNode.__axis;return h((e&&isFinite(e=e(t))?e:y(t))+l)}))),_.remove(),k.attr("d",4===t||2===t?o?"M"+c*o+","+b+"H"+l+"V"+g+"H"+c*o:"M"+l+","+b+"V"+g:o?"M"+b+","+c*o+"V"+l+"H"+g+"V"+c*o:"M"+b+","+l+"H"+g),x.attr("opacity",1).attr("transform",(function(t){return h(y(t)+l)})),A.attr(u+"2",c*i),E.attr(u,c*v).text(p),w.filter(Qt).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),w.each((function(){this.__axis=y}))}return d.scale=function(t){return arguments.length?(e=t,d):e},d.ticks=function(){return n=Array.from(arguments),d},d.tickArguments=function(t){return arguments.length?(n=null==t?[]:Array.from(t),d):n.slice()},d.tickValues=function(t){return arguments.length?(r=null==t?null:Array.from(t),d):r&&r.slice()},d.tickFormat=function(t){return arguments.length?(a=t,d):a},d.tickSize=function(t){return arguments.length?(i=o=+t,d):i},d.tickSizeInner=function(t){return arguments.length?(i=+t,d):i},d.tickSizeOuter=function(t){return arguments.length?(o=+t,d):o},d.tickPadding=function(t){return arguments.length?(s=+t,d):s},d.offset=function(t){return arguments.length?(l=+t,d):l},d}function te(t){return Jt(3,t)}function ee(t){return Jt(4,t)}var ne={value:function(){}};function re(){for(var t,e=0,n=arguments.length,r={};e<n;++e){if(!(t=arguments[e]+"")||t in r||/[\s.]/.test(t))throw new Error("illegal type: "+t);r[t]=[]}return new ae(r)}function ae(t){this._=t}function ie(t,e){return t.trim().split(/^|\s+/).map((function(t){var n="",r=t.indexOf(".");if(r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))}function oe(t,e){for(var n,r=0,a=t.length;r<a;++r)if((n=t[r]).name===e)return n.value}function se(t,e,n){for(var r=0,a=t.length;r<a;++r)if(t[r].name===e){t[r]=ne,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=n&&t.push({name:e,value:n}),t}ae.prototype=re.prototype={constructor:ae,on:function(t,e){var n,r=this._,a=ie(t+"",r),i=-1,o=a.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++i<o;)if(n=(t=a[i]).type)r[n]=se(r[n],t.name,e);else if(null==e)for(n in r)r[n]=se(r[n],t.name,null);return this}for(;++i<o;)if((n=(t=a[i]).type)&&(n=oe(r[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new ae(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,r,a=new Array(n),i=0;i<n;++i)a[i]=arguments[i+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(i=0,n=(r=this._[t]).length;i<n;++i)r[i].value.apply(e,a)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],a=0,i=r.length;a<i;++a)r[a].value.apply(e,n)}};var le="http://www.w3.org/1999/xhtml",ce={svg:"http://www.w3.org/2000/svg",xhtml:le,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function ue(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),ce.hasOwnProperty(e)?{space:ce[e],local:t}:t}function he(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===le&&e.documentElement.namespaceURI===le?e.createElement(t):e.createElementNS(n,t)}}function de(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function fe(t){var e=ue(t);return(e.local?de:he)(e)}function pe(){}function ve(t){return null==t?pe:function(){return this.querySelector(t)}}function me(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}function be(){return[]}function ge(t){return null==t?be:function(){return this.querySelectorAll(t)}}function ye(t){return function(){return this.matches(t)}}function we(t){return function(e){return e.matches(t)}}var ke=Array.prototype.find;function xe(){return this.firstElementChild}var _e=Array.prototype.filter;function Se(){return Array.from(this.children)}function Ae(t){return new Array(t.length)}function Ee(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function Te(t){return function(){return t}}function Me(t,e,n,r,a,i){for(var o,s=0,l=e.length,c=i.length;s<c;++s)(o=e[s])?(o.__data__=i[s],r[s]=o):n[s]=new Ee(t,i[s]);for(;s<l;++s)(o=e[s])&&(a[s]=o)}function Ce(t,e,n,r,a,i,o){var s,l,c,u=new Map,h=e.length,d=i.length,f=new Array(h);for(s=0;s<h;++s)(l=e[s])&&(f[s]=c=o.call(l,l.__data__,s,e)+"",u.has(c)?a[s]=l:u.set(c,l));for(s=0;s<d;++s)c=o.call(t,i[s],s,i)+"",(l=u.get(c))?(r[s]=l,l.__data__=i[s],u.delete(c)):n[s]=new Ee(t,i[s]);for(s=0;s<h;++s)(l=e[s])&&u.get(f[s])===l&&(a[s]=l)}function Ne(t){return t.__data__}function Re(t){return"object"===e(t)&&"length"in t?t:Array.from(t)}function qe(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function Pe(t){return function(){this.removeAttribute(t)}}function ze(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Fe(t,e){return function(){this.setAttribute(t,e)}}function $e(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function Oe(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function Ie(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function He(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function De(t){return function(){this.style.removeProperty(t)}}function Ue(t,e,n){return function(){this.style.setProperty(t,e,n)}}function je(t,e,n){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function Le(t,e){return t.style.getPropertyValue(e)||He(t).getComputedStyle(t,null).getPropertyValue(e)}function Ve(t){return function(){delete this[t]}}function Be(t,e){return function(){this[t]=e}}function Ke(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function Xe(t){return t.trim().split(/^|\s+/)}function Ge(t){return t.classList||new Ze(t)}function Ze(t){this._node=t,this._names=Xe(t.getAttribute("class")||"")}function Ye(t,e){for(var n=Ge(t),r=-1,a=e.length;++r<a;)n.add(e[r])}function We(t,e){for(var n=Ge(t),r=-1,a=e.length;++r<a;)n.remove(e[r])}function Qe(t){return function(){Ye(this,t)}}function Je(t){return function(){We(this,t)}}function tn(t,e){return function(){(e.apply(this,arguments)?Ye:We)(this,t)}}function en(){this.textContent=""}function nn(t){return function(){this.textContent=t}}function rn(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function an(){this.innerHTML=""}function on(t){return function(){this.innerHTML=t}}function sn(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function ln(){this.nextSibling&&this.parentNode.appendChild(this)}function cn(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function un(){return null}function hn(){var t=this.parentNode;t&&t.removeChild(this)}function dn(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function fn(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function pn(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}function vn(t){return function(){var e=this.__on;if(e){for(var n,r=0,a=-1,i=e.length;r<i;++r)n=e[r],t.type&&n.type!==t.type||n.name!==t.name?e[++a]=n:this.removeEventListener(n.type,n.listener,n.options);++a?e.length=a:delete this.__on}}}function mn(t,e,n){return function(){var r,a=this.__on,i=function(t){return function(e){t.call(this,e,this.__data__)}}(e);if(a)for(var o=0,s=a.length;o<s;++o)if((r=a[o]).type===t.type&&r.name===t.name)return this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=i,r.options=n),void(r.value=e);this.addEventListener(t.type,i,n),r={type:t.type,name:t.name,value:e,listener:i,options:n},a?a.push(r):this.__on=[r]}}function bn(t,e,n){var r=He(t),a=r.CustomEvent;"function"==typeof a?a=new a(e,n):(a=r.document.createEvent("Event"),n?(a.initEvent(e,n.bubbles,n.cancelable),a.detail=n.detail):a.initEvent(e,!1,!1)),t.dispatchEvent(a)}function gn(t,e){return function(){return bn(this,t,e)}}function yn(t,e){return function(){return bn(this,t,e.apply(this,arguments))}}Ee.prototype={constructor:Ee,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},Ze.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var wn=regeneratorRuntime.mark(kn);function kn(){var t,e,n,r,a,i,o;return regeneratorRuntime.wrap((function(s){for(;;)switch(s.prev=s.next){case 0:t=this._groups,e=0,n=t.length;case 1:if(!(e<n)){s.next=13;break}r=t[e],a=0,i=r.length;case 3:if(!(a<i)){s.next=10;break}if(!(o=r[a])){s.next=7;break}return s.next=7,o;case 7:++a,s.next=3;break;case 10:++e,s.next=1;break;case 13:case"end":return s.stop()}}),wn,this)}var xn=[null];function _n(t,e){this._groups=t,this._parents=e}function Sn(){return new _n([[document.documentElement]],xn)}function An(t){return"string"==typeof t?new _n([[document.querySelector(t)]],[document.documentElement]):new _n([[t]],xn)}function En(t,e){if(t=function(t){for(var e;e=t.sourceEvent;)t=e;return t}(t),void 0===e&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,[(r=r.matrixTransform(e.getScreenCTM().inverse())).x,r.y]}if(e.getBoundingClientRect){var a=e.getBoundingClientRect();return[t.clientX-a.left-e.clientLeft,t.clientY-a.top-e.clientTop]}}return[t.pageX,t.pageY]}_n.prototype=Sn.prototype=o({constructor:_n,select:function(t){"function"!=typeof t&&(t=ve(t));for(var e=this._groups,n=e.length,r=new Array(n),a=0;a<n;++a)for(var i,o,s=e[a],l=s.length,c=r[a]=new Array(l),u=0;u<l;++u)(i=s[u])&&(o=t.call(i,i.__data__,u,s))&&("__data__"in i&&(o.__data__=i.__data__),c[u]=o);return new _n(r,this._parents)},selectAll:function(t){t="function"==typeof t?function(t){return function(){return me(t.apply(this,arguments))}}(t):ge(t);for(var e=this._groups,n=e.length,r=[],a=[],i=0;i<n;++i)for(var o,s=e[i],l=s.length,c=0;c<l;++c)(o=s[c])&&(r.push(t.call(o,o.__data__,c,s)),a.push(o));return new _n(r,a)},selectChild:function(t){return this.select(null==t?xe:function(t){return function(){return ke.call(this.children,t)}}("function"==typeof t?t:we(t)))},selectChildren:function(t){return this.selectAll(null==t?Se:function(t){return function(){return _e.call(this.children,t)}}("function"==typeof t?t:we(t)))},filter:function(t){"function"!=typeof t&&(t=ye(t));for(var e=this._groups,n=e.length,r=new Array(n),a=0;a<n;++a)for(var i,o=e[a],s=o.length,l=r[a]=[],c=0;c<s;++c)(i=o[c])&&t.call(i,i.__data__,c,o)&&l.push(i);return new _n(r,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,Ne);var n=e?Ce:Me,r=this._parents,a=this._groups;"function"!=typeof t&&(t=Te(t));for(var i=a.length,o=new Array(i),s=new Array(i),l=new Array(i),c=0;c<i;++c){var u=r[c],h=a[c],d=h.length,f=Re(t.call(u,u&&u.__data__,c,r)),p=f.length,v=s[c]=new Array(p),m=o[c]=new Array(p),b=l[c]=new Array(d);n(u,h,v,m,b,f,e);for(var g,y,w=0,k=0;w<p;++w)if(g=v[w]){for(w>=k&&(k=w+1);!(y=m[k])&&++k<p;);g._next=y||null}}return(o=new _n(o,r))._enter=s,o._exit=l,o},enter:function(){return new _n(this._enter||this._groups.map(Ae),this._parents)},exit:function(){return new _n(this._exit||this._groups.map(Ae),this._parents)},join:function(t,e,n){var r=this.enter(),a=this,i=this.exit();return"function"==typeof t?(r=t(r))&&(r=r.selection()):r=r.append(t+""),null!=e&&(a=e(a))&&(a=a.selection()),null==n?i.remove():n(i),r&&a?r.merge(a).order():a},merge:function(t){for(var e=t.selection?t.selection():t,n=this._groups,r=e._groups,a=n.length,i=r.length,o=Math.min(a,i),s=new Array(a),l=0;l<o;++l)for(var c,u=n[l],h=r[l],d=u.length,f=s[l]=new Array(d),p=0;p<d;++p)(c=u[p]||h[p])&&(f[p]=c);for(;l<a;++l)s[l]=n[l];return new _n(s,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r,a=t[e],i=a.length-1,o=a[i];--i>=0;)(r=a[i])&&(o&&4^r.compareDocumentPosition(o)&&o.parentNode.insertBefore(r,o),o=r);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=qe);for(var n=this._groups,r=n.length,a=new Array(r),i=0;i<r;++i){for(var o,s=n[i],l=s.length,c=a[i]=new Array(l),u=0;u<l;++u)(o=s[u])&&(c[u]=o);c.sort(e)}return new _n(a,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],a=0,i=r.length;a<i;++a){var o=r[a];if(o)return o}return null},size:function(){var t,e=0,n=_(this);try{for(n.s();!(t=n.n()).done;){t.value;++e}}catch(t){n.e(t)}finally{n.f()}return e},empty:function(){return!this.node()},each:function(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var a,i=e[n],o=0,s=i.length;o<s;++o)(a=i[o])&&t.call(a,a.__data__,o,i);return this},attr:function(t,e){var n=ue(t);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((null==e?n.local?ze:Pe:"function"==typeof e?n.local?Ie:Oe:n.local?$e:Fe)(n,e))},style:function(t,e,n){return arguments.length>1?this.each((null==e?De:"function"==typeof e?je:Ue)(t,e,null==n?"":n)):Le(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?Ve:"function"==typeof e?Ke:Be)(t,e)):this.node()[t]},classed:function(t,e){var n=Xe(t+"");if(arguments.length<2){for(var r=Ge(this.node()),a=-1,i=n.length;++a<i;)if(!r.contains(n[a]))return!1;return!0}return this.each(("function"==typeof e?tn:e?Qe:Je)(n,e))},text:function(t){return arguments.length?this.each(null==t?en:("function"==typeof t?rn:nn)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?an:("function"==typeof t?sn:on)(t)):this.node().innerHTML},raise:function(){return this.each(ln)},lower:function(){return this.each(cn)},append:function(t){var e="function"==typeof t?t:fe(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function(t,e){var n="function"==typeof t?t:fe(t),r=null==e?un:"function"==typeof e?e:ve(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)}))},remove:function(){return this.each(hn)},clone:function(t){return this.select(t?fn:dn)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,n){var r,a,i=pn(t+""),o=i.length;if(!(arguments.length<2)){for(s=e?mn:vn,r=0;r<o;++r)this.each(s(i[r],e,n));return this}var s=this.node().__on;if(s)for(var l,c=0,u=s.length;c<u;++c)for(r=0,l=s[c];r<o;++r)if((a=i[r]).type===l.type&&a.name===l.name)return l.value},dispatch:function(t,e){return this.each(("function"==typeof e?yn:gn)(t,e))}},Symbol.iterator,kn);var Tn={passive:!1},Mn={capture:!0,passive:!1};function Cn(t){t.stopImmediatePropagation()}function Nn(t){t.preventDefault(),t.stopImmediatePropagation()}var Rn=function(t){return function(){return t}};function qn(t,e){var n=e.sourceEvent,r=e.subject,a=e.target,i=e.identifier,o=e.active,s=e.x,l=e.y,c=e.dx,u=e.dy,h=e.dispatch;Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},subject:{value:r,enumerable:!0,configurable:!0},target:{value:a,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:s,enumerable:!0,configurable:!0},y:{value:l,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:h}})}function Pn(t){return!t.ctrlKey&&!t.button}function zn(){return this.parentNode}function Fn(t,e){return null==e?{x:t.x,y:t.y}:e}function $n(){return navigator.maxTouchPoints||"ontouchstart"in this}function On(){var t,e,n,r,a=Pn,i=zn,o=Fn,s=$n,l={},c=re("start","drag","end"),u=0,h=0;function d(t){t.on("mousedown.drag",f).filter(s).on("touchstart.drag",m).on("touchmove.drag",b,Tn).on("touchend.drag touchcancel.drag",g).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(o,s){if(!r&&a.call(this,o,s)){var l=y(this,i.call(this,o,s),o,s,"mouse");l&&(An(o.view).on("mousemove.drag",p,Mn).on("mouseup.drag",v,Mn),function(t){var e=t.document.documentElement,n=An(t).on("dragstart.drag",Nn,Mn);"onselectstart"in e?n.on("selectstart.drag",Nn,Mn):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}(o.view),Cn(o),n=!1,t=o.clientX,e=o.clientY,l("start",o))}}function p(r){if(Nn(r),!n){var a=r.clientX-t,i=r.clientY-e;n=a*a+i*i>h}l.mouse("drag",r)}function v(t){An(t.view).on("mousemove.drag mouseup.drag",null),function(t,e){var n=t.document.documentElement,r=An(t).on("dragstart.drag",null);e&&(r.on("click.drag",Nn,Mn),setTimeout((function(){r.on("click.drag",null)}),0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}(t.view,n),Nn(t),l.mouse("end",t)}function m(t,e){if(a.call(this,t,e)){var n,r,o=t.changedTouches,s=i.call(this,t,e),l=o.length;for(n=0;n<l;++n)(r=y(this,s,t,e,o[n].identifier,o[n]))&&(Cn(t),r("start",t,o[n]))}}function b(t){var e,n,r=t.changedTouches,a=r.length;for(e=0;e<a;++e)(n=l[r[e].identifier])&&(Nn(t),n("drag",t,r[e]))}function g(t){var e,n,a=t.changedTouches,i=a.length;for(r&&clearTimeout(r),r=setTimeout((function(){r=null}),500),e=0;e<i;++e)(n=l[a[e].identifier])&&(Cn(t),n("end",t,a[e]))}function y(t,e,n,r,a,i){var s,h,f,p=c.copy(),v=En(i||n,e);if(null!=(f=o.call(t,new qn("beforestart",{sourceEvent:n,target:d,identifier:a,active:u,x:v[0],y:v[1],dx:0,dy:0,dispatch:p}),r)))return s=f.x-v[0]||0,h=f.y-v[1]||0,function n(i,o,c){var m,b=v;switch(i){case"start":l[a]=n,m=u++;break;case"end":delete l[a],--u;case"drag":v=En(c||o,e),m=u}p.call(i,t,new qn(i,{sourceEvent:o,subject:f,target:d,identifier:a,active:m,x:v[0]+s,y:v[1]+h,dx:v[0]-b[0],dy:v[1]-b[1],dispatch:p}),r)}}return d.filter=function(t){return arguments.length?(a="function"==typeof t?t:Rn(!!t),d):a},d.container=function(t){return arguments.length?(i="function"==typeof t?t:Rn(t),d):i},d.subject=function(t){return arguments.length?(o="function"==typeof t?t:Rn(t),d):o},d.touchable=function(t){return arguments.length?(s="function"==typeof t?t:Rn(!!t),d):s},d.on=function(){var t=c.on.apply(c,arguments);return t===c?d:t},d.clickDistance=function(t){return arguments.length?(h=(t=+t)*t,d):Math.sqrt(h)},d}function In(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function Hn(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function Dn(){}qn.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var Un=.7,jn=1/Un,Ln="\\s*([+-]?\\d+)\\s*",Vn="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",Bn="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Kn=/^#([0-9a-f]{3,8})$/,Xn=new RegExp("^rgb\\("+[Ln,Ln,Ln]+"\\)$"),Gn=new RegExp("^rgb\\("+[Bn,Bn,Bn]+"\\)$"),Zn=new RegExp("^rgba\\("+[Ln,Ln,Ln,Vn]+"\\)$"),Yn=new RegExp("^rgba\\("+[Bn,Bn,Bn,Vn]+"\\)$"),Wn=new RegExp("^hsl\\("+[Vn,Bn,Bn]+"\\)$"),Qn=new RegExp("^hsla\\("+[Vn,Bn,Bn,Vn]+"\\)$"),Jn={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function tr(){return this.rgb().formatHex()}function er(){return this.rgb().formatRgb()}function nr(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=Kn.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?rr(e):3===n?new sr(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?ar(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?ar(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=Xn.exec(t))?new sr(e[1],e[2],e[3],1):(e=Gn.exec(t))?new sr(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=Zn.exec(t))?ar(e[1],e[2],e[3],e[4]):(e=Yn.exec(t))?ar(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=Wn.exec(t))?hr(e[1],e[2]/100,e[3]/100,1):(e=Qn.exec(t))?hr(e[1],e[2]/100,e[3]/100,e[4]):Jn.hasOwnProperty(t)?rr(Jn[t]):"transparent"===t?new sr(NaN,NaN,NaN,0):null}function rr(t){return new sr(t>>16&255,t>>8&255,255&t,1)}function ar(t,e,n,r){return r<=0&&(t=e=n=NaN),new sr(t,e,n,r)}function ir(t){return t instanceof Dn||(t=nr(t)),t?new sr((t=t.rgb()).r,t.g,t.b,t.opacity):new sr}function or(t,e,n,r){return 1===arguments.length?ir(t):new sr(t,e,n,null==r?1:r)}function sr(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}function lr(){return"#"+ur(this.r)+ur(this.g)+ur(this.b)}function cr(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function ur(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function hr(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new fr(t,e,n,r)}function dr(t){if(t instanceof fr)return new fr(t.h,t.s,t.l,t.opacity);if(t instanceof Dn||(t=nr(t)),!t)return new fr;if(t instanceof fr)return t;var e=(t=t.rgb()).r/255,n=t.g/255,r=t.b/255,a=Math.min(e,n,r),i=Math.max(e,n,r),o=NaN,s=i-a,l=(i+a)/2;return s?(o=e===i?(n-r)/s+6*(n<r):n===i?(r-e)/s+2:(e-n)/s+4,s/=l<.5?i+a:2-i-a,o*=60):s=l>0&&l<1?0:o,new fr(o,s,l,t.opacity)}function fr(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function pr(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}In(Dn,nr,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:tr,formatHex:tr,formatHsl:function(){return dr(this).formatHsl()},formatRgb:er,toString:er}),In(sr,or,Hn(Dn,{brighter:function(t){return t=null==t?jn:Math.pow(jn,t),new sr(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?Un:Math.pow(Un,t),new sr(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:lr,formatHex:lr,formatRgb:cr,toString:cr})),In(fr,(function(t,e,n,r){return 1===arguments.length?dr(t):new fr(t,e,n,null==r?1:r)}),Hn(Dn,{brighter:function(t){return t=null==t?jn:Math.pow(jn,t),new fr(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?Un:Math.pow(Un,t),new fr(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,a=2*n-r;return new sr(pr(t>=240?t-240:t+120,a,r),pr(t,a,r),pr(t<120?t+240:t-120,a,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var vr=function(t){return function(){return t}};function mr(t){return 1==(t=+t)?br:function(e,n){return n-e?function(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}(e,n,t):vr(isNaN(e)?n:e)}}function br(t,e){var n=e-t;return n?function(t,e){return function(n){return t+n*e}}(t,n):vr(isNaN(t)?e:t)}var gr=function t(e){var n=mr(e);function r(t,e){var r=n((t=or(t)).r,(e=or(e)).r),a=n(t.g,e.g),i=n(t.b,e.b),o=br(t.opacity,e.opacity);return function(e){return t.r=r(e),t.g=a(e),t.b=i(e),t.opacity=o(e),t+""}}return r.gamma=t,r}(1);function yr(t,e){e||(e=[]);var n,r=t?Math.min(e.length,t.length):0,a=e.slice();return function(i){for(n=0;n<r;++n)a[n]=t[n]*(1-i)+e[n]*i;return a}}function wr(t,e){var n,r=e?e.length:0,a=t?Math.min(r,t.length):0,i=new Array(a),o=new Array(r);for(n=0;n<a;++n)i[n]=Tr(t[n],e[n]);for(;n<r;++n)o[n]=e[n];return function(t){for(n=0;n<a;++n)o[n]=i[n](t);return o}}function kr(t,e){var n=new Date;return t=+t,e=+e,function(r){return n.setTime(t*(1-r)+e*r),n}}function xr(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function _r(t,n){var r,a={},i={};for(r in null!==t&&"object"===e(t)||(t={}),null!==n&&"object"===e(n)||(n={}),n)r in t?a[r]=Tr(t[r],n[r]):i[r]=n[r];return function(t){for(r in a)i[r]=a[r](t);return i}}var Sr=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Ar=new RegExp(Sr.source,"g");function Er(t,e){var n,r,a,i=Sr.lastIndex=Ar.lastIndex=0,o=-1,s=[],l=[];for(t+="",e+="";(n=Sr.exec(t))&&(r=Ar.exec(e));)(a=r.index)>i&&(a=e.slice(i,a),s[o]?s[o]+=a:s[++o]=a),(n=n[0])===(r=r[0])?s[o]?s[o]+=r:s[++o]=r:(s[++o]=null,l.push({i:o,x:xr(n,r)})),i=Ar.lastIndex;return i<e.length&&(a=e.slice(i),s[o]?s[o]+=a:s[++o]=a),s.length<2?l[0]?function(t){return function(e){return t(e)+""}}(l[0].x):function(t){return function(){return t}}(e):(e=l.length,function(t){for(var n,r=0;r<e;++r)s[(n=l[r]).i]=n.x(t);return s.join("")})}function Tr(t,n){var r,a=e(n);return null==n||"boolean"===a?vr(n):("number"===a?xr:"string"===a?(r=nr(n))?(n=r,gr):Er:n instanceof nr?gr:n instanceof Date?kr:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}(n)?yr:Array.isArray(n)?wr:"function"!=typeof n.valueOf&&"function"!=typeof n.toString||isNaN(n)?_r:xr)(t,n)}function Mr(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var Cr,Nr=180/Math.PI,Rr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function qr(t,e,n,r,a,i){var o,s,l;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(l=t*n+e*r)&&(n-=t*l,r-=e*l),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,l/=s),t*r<e*n&&(t=-t,e=-e,l=-l,o=-o),{translateX:a,translateY:i,rotate:Math.atan2(e,t)*Nr,skewX:Math.atan(l)*Nr,scaleX:o,scaleY:s}}function Pr(t,e,n,r){function a(t){return t.length?t.pop()+" ":""}return function(i,o){var s=[],l=[];return i=t(i),o=t(o),function(t,r,a,i,o,s){if(t!==a||r!==i){var l=o.push("translate(",null,e,null,n);s.push({i:l-4,x:xr(t,a)},{i:l-2,x:xr(r,i)})}else(a||i)&&o.push("translate("+a+e+i+n)}(i.translateX,i.translateY,o.translateX,o.translateY,s,l),function(t,e,n,i){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),i.push({i:n.push(a(n)+"rotate(",null,r)-2,x:xr(t,e)})):e&&n.push(a(n)+"rotate("+e+r)}(i.rotate,o.rotate,s,l),function(t,e,n,i){t!==e?i.push({i:n.push(a(n)+"skewX(",null,r)-2,x:xr(t,e)}):e&&n.push(a(n)+"skewX("+e+r)}(i.skewX,o.skewX,s,l),function(t,e,n,r,i,o){if(t!==n||e!==r){var s=i.push(a(i)+"scale(",null,",",null,")");o.push({i:s-4,x:xr(t,n)},{i:s-2,x:xr(e,r)})}else 1===n&&1===r||i.push(a(i)+"scale("+n+","+r+")")}(i.scaleX,i.scaleY,o.scaleX,o.scaleY,s,l),i=o=null,function(t){for(var e,n=-1,r=l.length;++n<r;)s[(e=l[n]).i]=e.x(t);return s.join("")}}}var zr,Fr,$r=Pr((function(t){var e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?Rr:qr(e.a,e.b,e.c,e.d,e.e,e.f)}),"px, ","px)","deg)"),Or=Pr((function(t){return null==t?Rr:(Cr||(Cr=document.createElementNS("http://www.w3.org/2000/svg","g")),Cr.setAttribute("transform",t),(t=Cr.transform.baseVal.consolidate())?qr((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):Rr)}),", ",")",")"),Ir=0,Hr=0,Dr=0,Ur=0,jr=0,Lr=0,Vr="object"===("undefined"==typeof performance?"undefined":e(performance))&&performance.now?performance:Date,Br="object"===("undefined"==typeof window?"undefined":e(window))&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Kr(){return jr||(Br(Xr),jr=Vr.now()+Lr)}function Xr(){jr=0}function Gr(){this._call=this._time=this._next=null}function Zr(t,e,n){var r=new Gr;return r.restart(t,e,n),r}function Yr(){jr=(Ur=Vr.now())+Lr,Ir=Hr=0;try{!function(){Kr(),++Ir;for(var t,e=zr;e;)(t=jr-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Ir}()}finally{Ir=0,function(){var t,e,n=zr,r=1/0;for(;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:zr=e);Fr=t,Qr(r)}(),jr=0}}function Wr(){var t=Vr.now(),e=t-Ur;e>1e3&&(Lr-=e,Ur=t)}function Qr(t){Ir||(Hr&&(Hr=clearTimeout(Hr)),t-jr>24?(t<1/0&&(Hr=setTimeout(Yr,t-Vr.now()-Lr)),Dr&&(Dr=clearInterval(Dr))):(Dr||(Ur=Vr.now(),Dr=setInterval(Wr,1e3)),Ir=1,Br(Yr)))}function Jr(t,e,n){var r=new Gr;return e=null==e?0:+e,r.restart((function(n){r.stop(),t(n+e)}),e,n),r}Gr.prototype=Zr.prototype={constructor:Gr,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?Kr():+n)+(null==e?0:+e),this._next||Fr===this||(Fr?Fr._next=this:zr=this,Fr=this),this._call=t,this._time=n,Qr()},stop:function(){this._call&&(this._call=null,this._time=1/0,Qr())}};var ta=re("start","end","cancel","interrupt"),ea=[];function na(t,e,n,r,a,i){var o=t.__transition;if(o){if(n in o)return}else t.__transition={};!function(t,e,n){var r,a=t.__transition;function i(t){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=t&&o(t-n.delay)}function o(i){var c,u,h,d;if(1!==n.state)return l();for(c in a)if((d=a[c]).name===n.name){if(3===d.state)return Jr(o);4===d.state?(d.state=6,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete a[c]):+c<e&&(d.state=6,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete a[c])}if(Jr((function(){3===n.state&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(i))})),n.state=2,n.on.call("start",t,t.__data__,n.index,n.group),2===n.state){for(n.state=3,r=new Array(h=n.tween.length),c=0,u=-1;c<h;++c)(d=n.tween[c].value.call(t,t.__data__,n.index,n.group))&&(r[++u]=d);r.length=u+1}}function s(e){for(var a=e<n.duration?n.ease.call(null,e/n.duration):(n.timer.restart(l),n.state=5,1),i=-1,o=r.length;++i<o;)r[i].call(t,a);5===n.state&&(n.on.call("end",t,t.__data__,n.index,n.group),l())}function l(){for(var r in n.state=6,n.timer.stop(),delete a[e],a)return;delete t.__transition}a[e]=n,n.timer=Zr(i,0,n.time)}(t,n,{name:e,index:r,group:a,on:ta,tween:ea,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:0})}function ra(t,e){var n=ia(t,e);if(n.state>0)throw new Error("too late; already scheduled");return n}function aa(t,e){var n=ia(t,e);if(n.state>3)throw new Error("too late; already running");return n}function ia(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function oa(t,e){var n,r;return function(){var a=aa(this,t),i=a.tween;if(i!==n)for(var o=0,s=(r=n=i).length;o<s;++o)if(r[o].name===e){(r=r.slice()).splice(o,1);break}a.tween=r}}function sa(t,e,n){var r,a;if("function"!=typeof n)throw new Error;return function(){var i=aa(this,t),o=i.tween;if(o!==r){a=(r=o).slice();for(var s={name:e,value:n},l=0,c=a.length;l<c;++l)if(a[l].name===e){a[l]=s;break}l===c&&a.push(s)}i.tween=a}}function la(t,e,n){var r=t._id;return t.each((function(){var t=aa(this,r);(t.value||(t.value={}))[e]=n.apply(this,arguments)})),function(t){return ia(t,r).value[e]}}function ca(t,e){var n;return("number"==typeof e?xr:e instanceof nr?gr:(n=nr(e))?(e=n,gr):Er)(t,e)}function ua(t){return function(){this.removeAttribute(t)}}function ha(t){return function(){this.removeAttributeNS(t.space,t.local)}}function da(t,e,n){var r,a,i=n+"";return function(){var o=this.getAttribute(t);return o===i?null:o===r?a:a=e(r=o,n)}}function fa(t,e,n){var r,a,i=n+"";return function(){var o=this.getAttributeNS(t.space,t.local);return o===i?null:o===r?a:a=e(r=o,n)}}function pa(t,e,n){var r,a,i;return function(){var o,s,l=n(this);if(null!=l)return(o=this.getAttribute(t))===(s=l+"")?null:o===r&&s===a?i:(a=s,i=e(r=o,l));this.removeAttribute(t)}}function va(t,e,n){var r,a,i;return function(){var o,s,l=n(this);if(null!=l)return(o=this.getAttributeNS(t.space,t.local))===(s=l+"")?null:o===r&&s===a?i:(a=s,i=e(r=o,l));this.removeAttributeNS(t.space,t.local)}}function ma(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function ba(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function ga(t,e){var n,r;function a(){var a=e.apply(this,arguments);return a!==r&&(n=(r=a)&&ba(t,a)),n}return a._value=e,a}function ya(t,e){var n,r;function a(){var a=e.apply(this,arguments);return a!==r&&(n=(r=a)&&ma(t,a)),n}return a._value=e,a}function wa(t,e){return function(){ra(this,t).delay=+e.apply(this,arguments)}}function ka(t,e){return e=+e,function(){ra(this,t).delay=e}}function xa(t,e){return function(){aa(this,t).duration=+e.apply(this,arguments)}}function _a(t,e){return e=+e,function(){aa(this,t).duration=e}}function Sa(t,e){if("function"!=typeof e)throw new Error;return function(){aa(this,t).ease=e}}function Aa(t,e,n){var r,a,i=function(t){return(t+"").trim().split(/^|\s+/).every((function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t}))}(e)?ra:aa;return function(){var o=i(this,t),s=o.on;s!==r&&(a=(r=s).copy()).on(e,n),o.on=a}}var Ea=Sn.prototype.constructor;function Ta(t){return function(){this.style.removeProperty(t)}}function Ma(t,e,n){return function(r){this.style.setProperty(t,e.call(this,r),n)}}function Ca(t,e,n){var r,a;function i(){var i=e.apply(this,arguments);return i!==a&&(r=(a=i)&&Ma(t,i,n)),r}return i._value=e,i}function Na(t){return function(e){this.textContent=t.call(this,e)}}function Ra(t){var e,n;function r(){var r=t.apply(this,arguments);return r!==n&&(e=(n=r)&&Na(r)),e}return r._value=t,r}var qa=0;function Pa(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}function za(){return++qa}var Fa=Sn.prototype;Pa.prototype=o({constructor:Pa,select:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=ve(t));for(var r=this._groups,a=r.length,i=new Array(a),o=0;o<a;++o)for(var s,l,c=r[o],u=c.length,h=i[o]=new Array(u),d=0;d<u;++d)(s=c[d])&&(l=t.call(s,s.__data__,d,c))&&("__data__"in s&&(l.__data__=s.__data__),h[d]=l,na(h[d],e,n,d,h,ia(s,n)));return new Pa(i,this._parents,e,n)},selectAll:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=ge(t));for(var r=this._groups,a=r.length,i=[],o=[],s=0;s<a;++s)for(var l,c=r[s],u=c.length,h=0;h<u;++h)if(l=c[h]){for(var d,f=t.call(l,l.__data__,h,c),p=ia(l,n),v=0,m=f.length;v<m;++v)(d=f[v])&&na(d,e,n,v,f,p);i.push(f),o.push(l)}return new Pa(i,o,e,n)},selectChild:Fa.selectChild,selectChildren:Fa.selectChildren,filter:function(t){"function"!=typeof t&&(t=ye(t));for(var e=this._groups,n=e.length,r=new Array(n),a=0;a<n;++a)for(var i,o=e[a],s=o.length,l=r[a]=[],c=0;c<s;++c)(i=o[c])&&t.call(i,i.__data__,c,o)&&l.push(i);return new Pa(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,r=e.length,a=n.length,i=Math.min(r,a),o=new Array(r),s=0;s<i;++s)for(var l,c=e[s],u=n[s],h=c.length,d=o[s]=new Array(h),f=0;f<h;++f)(l=c[f]||u[f])&&(d[f]=l);for(;s<r;++s)o[s]=e[s];return new Pa(o,this._parents,this._name,this._id)},selection:function(){return new Ea(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,n=za(),r=this._groups,a=r.length,i=0;i<a;++i)for(var o,s=r[i],l=s.length,c=0;c<l;++c)if(o=s[c]){var u=ia(o,e);na(o,t,n,c,s,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Pa(r,this._parents,t,n)},call:Fa.call,nodes:Fa.nodes,node:Fa.node,size:Fa.size,empty:Fa.empty,each:Fa.each,on:function(t,e){var n=this._id;return arguments.length<2?ia(this.node(),n).on.on(t):this.each(Aa(n,t,e))},attr:function(t,e){var n=ue(t),r="transform"===n?Or:ca;return this.attrTween(t,"function"==typeof e?(n.local?va:pa)(n,r,la(this,"attr."+t,e)):null==e?(n.local?ha:ua)(n):(n.local?fa:da)(n,r,e))},attrTween:function(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;var r=ue(t);return this.tween(n,(r.local?ga:ya)(r,e))},style:function(t,e,n){var r="transform"==(t+="")?$r:ca;return null==e?this.styleTween(t,function(t,e){var n,r,a;return function(){var i=Le(this,t),o=(this.style.removeProperty(t),Le(this,t));return i===o?null:i===n&&o===r?a:a=e(n=i,r=o)}}(t,r)).on("end.style."+t,Ta(t)):"function"==typeof e?this.styleTween(t,function(t,e,n){var r,a,i;return function(){var o=Le(this,t),s=n(this),l=s+"";return null==s&&(this.style.removeProperty(t),l=s=Le(this,t)),o===l?null:o===r&&l===a?i:(a=l,i=e(r=o,s))}}(t,r,la(this,"style."+t,e))).each(function(t,e){var n,r,a,i,o="style."+e,s="end."+o;return function(){var l=aa(this,t),c=l.on,u=null==l.value[o]?i||(i=Ta(e)):void 0;c===n&&a===u||(r=(n=c).copy()).on(s,a=u),l.on=r}}(this._id,t)):this.styleTween(t,function(t,e,n){var r,a,i=n+"";return function(){var o=Le(this,t);return o===i?null:o===r?a:a=e(r=o,n)}}(t,r,e),n).on("end.style."+t,null)},styleTween:function(t,e,n){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==e)return this.tween(r,null);if("function"!=typeof e)throw new Error;return this.tween(r,Ca(t,e,null==n?"":n))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var e=t(this);this.textContent=null==e?"":e}}(la(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},textTween:function(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;return this.tween(e,Ra(t))},remove:function(){return this.on("end.remove",function(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}(this._id))},tween:function(t,e){var n=this._id;if(t+="",arguments.length<2){for(var r,a=ia(this.node(),n).tween,i=0,o=a.length;i<o;++i)if((r=a[i]).name===t)return r.value;return null}return this.each((null==e?oa:sa)(n,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?wa:ka)(e,t)):ia(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?xa:_a)(e,t)):ia(this.node(),e).duration},ease:function(t){var e=this._id;return arguments.length?this.each(Sa(e,t)):ia(this.node(),e).ease},easeVarying:function(t){if("function"!=typeof t)throw new Error;return this.each(function(t,e){return function(){var n=e.apply(this,arguments);if("function"!=typeof n)throw new Error;aa(this,t).ease=n}}(this._id,t))},end:function(){var t,e,n=this,r=n._id,a=n.size();return new Promise((function(i,o){var s={value:o},l={value:function(){0==--a&&i()}};n.each((function(){var n=aa(this,r),a=n.on;a!==t&&((e=(t=a).copy())._.cancel.push(s),e._.interrupt.push(s),e._.end.push(l)),n.on=e})),0===a&&i()}))}},Symbol.iterator,Fa[Symbol.iterator]);var $a=function(t){return+t};function Oa(t){return t*t*t}function Ia(t){return--t*t*t+1}var Ha={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};function Da(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error("transition ".concat(e," not found"));return n}Sn.prototype.interrupt=function(t){return this.each((function(){!function(t,e){var n,r,a,i=t.__transition,o=!0;if(i){for(a in e=null==e?null:e+"",i)(n=i[a]).name===e?(r=n.state>2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(r?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete i[a]):o=!1;o&&delete t.__transition}}(this,t)}))},Sn.prototype.transition=function(t){var e,n;t instanceof Pa?(e=t._id,t=t._name):(e=za(),(n=Ha).time=Kr(),t=null==t?null:t+"");for(var r=this._groups,a=r.length,i=0;i<a;++i)for(var o,s=r[i],l=s.length,c=0;c<l;++c)(o=s[c])&&na(o,t,e,c,s,n||Da(o,e));return new Pa(r,this._parents,t,e)};var Ua=Math.PI,ja=2*Ua,La=1e-6,Va=ja-La;function Ba(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function Ka(){return new Ba}Ba.prototype=Ka.prototype={constructor:Ba,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,n,r){this._+="Q"+ +t+","+ +e+","+(this._x1=+n)+","+(this._y1=+r)},bezierCurveTo:function(t,e,n,r,a,i){this._+="C"+ +t+","+ +e+","+ +n+","+ +r+","+(this._x1=+a)+","+(this._y1=+i)},arcTo:function(t,e,n,r,a){t=+t,e=+e,n=+n,r=+r,a=+a;var i=this._x1,o=this._y1,s=n-t,l=r-e,c=i-t,u=o-e,h=c*c+u*u;if(a<0)throw new Error("negative radius: "+a);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(h>La)if(Math.abs(u*s-l*c)>La&&a){var d=n-i,f=r-o,p=s*s+l*l,v=d*d+f*f,m=Math.sqrt(p),b=Math.sqrt(h),g=a*Math.tan((Ua-Math.acos((p+h-v)/(2*m*b)))/2),y=g/b,w=g/m;Math.abs(y-1)>La&&(this._+="L"+(t+y*c)+","+(e+y*u)),this._+="A"+a+","+a+",0,0,"+ +(u*d>c*f)+","+(this._x1=t+w*s)+","+(this._y1=e+w*l)}else this._+="L"+(this._x1=t)+","+(this._y1=e);else;},arc:function(t,e,n,r,a,i){t=+t,e=+e,i=!!i;var o=(n=+n)*Math.cos(r),s=n*Math.sin(r),l=t+o,c=e+s,u=1^i,h=i?r-a:a-r;if(n<0)throw new Error("negative radius: "+n);null===this._x1?this._+="M"+l+","+c:(Math.abs(this._x1-l)>La||Math.abs(this._y1-c)>La)&&(this._+="L"+l+","+c),n&&(h<0&&(h=h%ja+ja),h>Va?this._+="A"+n+","+n+",0,1,"+u+","+(t-o)+","+(e-s)+"A"+n+","+n+",0,1,"+u+","+(this._x1=l)+","+(this._y1=c):h>La&&(this._+="A"+n+","+n+",0,"+ +(h>=Ua)+","+u+","+(this._x1=t+n*Math.cos(a))+","+(this._y1=e+n*Math.sin(a))))},rect:function(t,e,n,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +r+"h"+-n+"Z"},toString:function(){return this._}};var Xa=Array.prototype.slice;function Ga(t,e){return t-e}var Za=function(t){return function(){return t}};function Ya(t,e){for(var n,r=-1,a=e.length;++r<a;)if(n=Wa(t,e[r]))return n;return 0}function Wa(t,e){for(var n=e[0],r=e[1],a=-1,i=0,o=t.length,s=o-1;i<o;s=i++){var l=t[i],c=l[0],u=l[1],h=t[s],d=h[0],f=h[1];if(Qa(l,h,e))return 0;u>r!=f>r&&n<(d-c)*(r-u)/(f-u)+c&&(a=-a)}return a}function Qa(t,e,n){var r;return function(t,e,n){return(e[0]-t[0])*(n[1]-t[1])==(n[0]-t[0])*(e[1]-t[1])}(t,e,n)&&function(t,e,n){return t<=e&&e<=n||n<=e&&e<=t}(t[r=+(t[0]===e[0])],n[r],e[r])}function Ja(){}var ti=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function ei(){var t=1,e=1,n=Ut,r=s;function a(t){var e=n(t);if(Array.isArray(e))e=e.slice().sort(Ga);else{var r=Nt(t),a=Dt(r[0],r[1],e);e=It(Math.floor(r[0]/a)*a,Math.floor(r[1]/a-1)*a,e)}return e.map((function(e){return i(t,e)}))}function i(n,a){var i=[],s=[];return function(n,r,a){var i,s,l,c,u,h,d=new Array,f=new Array;i=s=-1,c=n[0]>=r,ti[c<<1].forEach(p);for(;++i<t-1;)l=c,c=n[i+1]>=r,ti[l|c<<1].forEach(p);ti[c<<0].forEach(p);for(;++s<e-1;){for(i=-1,c=n[s*t+t]>=r,u=n[s*t]>=r,ti[c<<1|u<<2].forEach(p);++i<t-1;)l=c,c=n[s*t+t+i+1]>=r,h=u,u=n[s*t+i+1]>=r,ti[l|c<<1|u<<2|h<<3].forEach(p);ti[c|u<<3].forEach(p)}i=-1,u=n[s*t]>=r,ti[u<<2].forEach(p);for(;++i<t-1;)h=u,u=n[s*t+i+1]>=r,ti[u<<2|h<<3].forEach(p);function p(t){var e,n,r=[t[0][0]+i,t[0][1]+s],l=[t[1][0]+i,t[1][1]+s],c=o(r),u=o(l);(e=f[c])?(n=d[u])?(delete f[e.end],delete d[n.start],e===n?(e.ring.push(l),a(e.ring)):d[e.start]=f[n.end]={start:e.start,end:n.end,ring:e.ring.concat(n.ring)}):(delete f[e.end],e.ring.push(l),f[e.end=u]=e):(e=d[u])?(n=f[c])?(delete d[e.start],delete f[n.end],e===n?(e.ring.push(l),a(e.ring)):d[n.start]=f[e.end]={start:n.start,end:e.end,ring:n.ring.concat(e.ring)}):(delete d[e.start],e.ring.unshift(r),d[e.start=c]=e):d[c]=f[u]={start:c,end:u,ring:[r,l]}}ti[u<<3].forEach(p)}(n,a,(function(t){r(t,n,a),function(t){for(var e=0,n=t.length,r=t[n-1][1]*t[0][0]-t[n-1][0]*t[0][1];++e<n;)r+=t[e-1][1]*t[e][0]-t[e-1][0]*t[e][1];return r}(t)>0?i.push([t]):s.push(t)})),s.forEach((function(t){for(var e,n=0,r=i.length;n<r;++n)if(-1!==Ya((e=i[n])[0],t))return void e.push(t)})),{type:"MultiPolygon",value:a,coordinates:i}}function o(e){return 2*e[0]+e[1]*(t+1)*4}function s(n,r,a){n.forEach((function(n){var i,o=n[0],s=n[1],l=0|o,c=0|s,u=r[c*t+l];o>0&&o<t&&l===o&&(i=r[c*t+l-1],n[0]=o+(a-i)/(u-i)-.5),s>0&&s<e&&c===s&&(i=r[(c-1)*t+l],n[1]=s+(a-i)/(u-i)-.5)}))}return a.contour=i,a.size=function(n){if(!arguments.length)return[t,e];var r=Math.floor(n[0]),i=Math.floor(n[1]);if(!(r>=0&&i>=0))throw new Error("invalid size");return t=r,e=i,a},a.thresholds=function(t){return arguments.length?(n="function"==typeof t?t:Array.isArray(t)?Za(Xa.call(t)):Za(t),a):n},a.smooth=function(t){return arguments.length?(r=t?s:Ja,a):r===s},a}function ni(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function ri(t){return(t=ni(Math.abs(t)))?t[1]:NaN}var ai,ii=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function oi(t){if(!(e=ii.exec(t)))throw new Error("invalid format: "+t);var e;return new si({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function si(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function li(t,e){var n=ni(t,e);if(!n)return t+"";var r=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+r:r.length>a+1?r.slice(0,a+1)+"."+r.slice(a+1):r+new Array(a-r.length+2).join("0")}oi.prototype=si.prototype,si.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var ci={"%":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return li(100*t,e)},r:li,s:function(t,e){var n=ni(t,e);if(!n)return t+"";var r=n[0],a=n[1],i=a-(ai=3*Math.max(-8,Math.min(8,Math.floor(a/3))))+1,o=r.length;return i===o?r:i>o?r+new Array(i-o+1).join("0"):i>0?r.slice(0,i)+"."+r.slice(i):"0."+new Array(1-i).join("0")+ni(t,Math.max(0,e+i-1))[0]},X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}};function ui(t){return t}var hi,di,fi,pi=Array.prototype.map,vi=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function mi(t){var e,n,r=void 0===t.grouping||void 0===t.thousands?ui:(e=pi.call(t.grouping,Number),n=t.thousands+"",function(t,r){for(var a=t.length,i=[],o=0,s=e[0],l=0;a>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),i.push(t.substring(a-=s,a+s)),!((l+=s+1)>r));)s=e[o=(o+1)%e.length];return i.reverse().join(n)}),a=void 0===t.currency?"":t.currency[0]+"",i=void 0===t.currency?"":t.currency[1]+"",o=void 0===t.decimal?".":t.decimal+"",s=void 0===t.numerals?ui:function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}(pi.call(t.numerals,String)),l=void 0===t.percent?"%":t.percent+"",c=void 0===t.minus?"−":t.minus+"",u=void 0===t.nan?"NaN":t.nan+"";function h(t){var e=(t=oi(t)).fill,n=t.align,h=t.sign,d=t.symbol,f=t.zero,p=t.width,v=t.comma,m=t.precision,b=t.trim,g=t.type;"n"===g?(v=!0,g="g"):ci[g]||(void 0===m&&(m=12),b=!0,g="g"),(f||"0"===e&&"="===n)&&(f=!0,e="0",n="=");var y="$"===d?a:"#"===d&&/[boxX]/.test(g)?"0"+g.toLowerCase():"",w="$"===d?i:/[%p]/.test(g)?l:"",k=ci[g],x=/[defgprs%]/.test(g);function _(t){var a,i,l,d=y,_=w;if("c"===g)_=k(t)+_,t="";else{var S=(t=+t)<0||1/t<0;if(t=isNaN(t)?u:k(Math.abs(t),m),b&&(t=function(t){t:for(var e,n=t.length,r=1,a=-1;r<n;++r)switch(t[r]){case".":a=e=r;break;case"0":0===a&&(a=r),e=r;break;default:if(!+t[r])break t;a>0&&(a=0)}return a>0?t.slice(0,a)+t.slice(e+1):t}(t)),S&&0==+t&&"+"!==h&&(S=!1),d=(S?"("===h?h:c:"-"===h||"("===h?"":h)+d,_=("s"===g?vi[8+ai/3]:"")+_+(S&&"("===h?")":""),x)for(a=-1,i=t.length;++a<i;)if(48>(l=t.charCodeAt(a))||l>57){_=(46===l?o+t.slice(a+1):t.slice(a))+_,t=t.slice(0,a);break}}v&&!f&&(t=r(t,1/0));var A=d.length+t.length+_.length,E=A<p?new Array(p-A+1).join(e):"";switch(v&&f&&(t=r(E+t,E.length?p-_.length:1/0),E=""),n){case"<":t=d+t+_+E;break;case"=":t=d+E+t+_;break;case"^":t=E.slice(0,A=E.length>>1)+d+t+_+E.slice(A);break;default:t=E+d+t+_}return s(t)}return m=void 0===m?6:/[gprs]/.test(g)?Math.max(1,Math.min(21,m)):Math.max(0,Math.min(20,m)),_.toString=function(){return t+""},_}return{format:h,formatPrefix:function(t,e){var n=h(((t=oi(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(ri(e)/3))),a=Math.pow(10,-r),i=vi[8+r/3];return function(t){return n(a*t)+i}}}}hi=mi({thousands:",",grouping:[3],currency:["$",""]}),di=hi.format,fi=hi.formatPrefix;var bi=1e-6,gi=Math.PI,yi=2*gi,wi=180/gi,ki=gi/180,xi=Math.abs,_i=Math.cos,Si=Math.sin,Ai=Math.sqrt;function Ei(){}function Ti(t,e){t&&Ci.hasOwnProperty(t.type)&&Ci[t.type](t,e)}var Mi={Feature:function(t,e){Ti(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,a=n.length;++r<a;)Ti(n[r].geometry,e)}},Ci={Sphere:function(t,e){e.sphere()},Point:function(t,e){t=t.coordinates,e.point(t[0],t[1],t[2])},MultiPoint:function(t,e){for(var n=t.coordinates,r=-1,a=n.length;++r<a;)t=n[r],e.point(t[0],t[1],t[2])},LineString:function(t,e){Ni(t.coordinates,e,0)},MultiLineString:function(t,e){for(var n=t.coordinates,r=-1,a=n.length;++r<a;)Ni(n[r],e,0)},Polygon:function(t,e){Ri(t.coordinates,e)},MultiPolygon:function(t,e){for(var n=t.coordinates,r=-1,a=n.length;++r<a;)Ri(n[r],e)},GeometryCollection:function(t,e){for(var n=t.geometries,r=-1,a=n.length;++r<a;)Ti(n[r],e)}};function Ni(t,e,n){var r,a=-1,i=t.length-n;for(e.lineStart();++a<i;)r=t[a],e.point(r[0],r[1],r[2]);e.lineEnd()}function Ri(t,e){var n=-1,r=t.length;for(e.polygonStart();++n<r;)Ni(t[n],e,1);e.polygonEnd()}function qi(t,e){t&&Mi.hasOwnProperty(t.type)?Mi[t.type](t,e):Ti(t,e)}function Pi(t,e,n,r){this.x=t,this.z=e,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function zi(t,e,n,r,a){var i,o,s=[],l=[];if(t.forEach((function(t){if(!((e=t.length-1)<=0)){var e,n,r=t[0],o=t[e];if(function(t,e){return xi(t[0]-e[0])<bi&&xi(t[1]-e[1])<bi}(r,o)){if(!r[2]&&!o[2]){for(a.lineStart(),i=0;i<e;++i)a.point((r=t[i])[0],r[1]);return void a.lineEnd()}o[0]+=2e-6}s.push(n=new Pi(r,t,null,!0)),l.push(n.o=new Pi(r,null,n,!1)),s.push(n=new Pi(o,t,null,!1)),l.push(n.o=new Pi(o,null,n,!0))}})),s.length){for(l.sort(e),Fi(s),Fi(l),i=0,o=l.length;i<o;++i)l[i].e=n=!n;for(var c,u,h=s[0];;){for(var d=h,f=!0;d.v;)if((d=d.n)===h)return;c=d.z,a.lineStart();do{if(d.v=d.o.v=!0,d.e){if(f)for(i=0,o=c.length;i<o;++i)a.point((u=c[i])[0],u[1]);else r(d.x,d.n.x,1,a);d=d.n}else{if(f)for(c=d.p.z,i=c.length-1;i>=0;--i)a.point((u=c[i])[0],u[1]);else r(d.x,d.p.x,-1,a);d=d.p}c=(d=d.o).z,f=!f}while(!d.v);a.lineEnd()}}}function Fi(t){if(e=t.length){for(var e,n,r=0,a=t[0];++r<e;)a.n=n=t[r],n.p=a,a=n;a.n=n=t[0],n.p=a}}var $i=1e9,Oi=-$i;function Ii(t,e,n,r){function a(a,i){return t<=a&&a<=n&&e<=i&&i<=r}function i(a,i,s,c){var u=0,h=0;if(null==a||(u=o(a,s))!==(h=o(i,s))||l(a,i)<0^s>0)do{c.point(0===u||3===u?t:n,u>1?r:e)}while((u=(u+s+4)%4)!==h);else c.point(i[0],i[1])}function o(r,a){return xi(r[0]-t)<bi?a>0?0:3:xi(r[0]-n)<bi?a>0?2:1:xi(r[1]-e)<bi?a>0?1:0:a>0?3:2}function s(t,e){return l(t.x,e.x)}function l(t,e){var n=o(t,1),r=o(e,1);return n!==r?n-r:0===n?e[1]-t[1]:1===n?t[0]-e[0]:2===n?t[1]-e[1]:e[0]-t[0]}return function(o){var l,c,u,h,d,f,p,v,m,b,g,y=o,w=function(){var t,e=[];return{point:function(e,n,r){t.push([e,n,r])},lineStart:function(){e.push(t=[])},lineEnd:Ei,rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))},result:function(){var n=e;return e=[],t=null,n}}}(),k={point:x,lineStart:function(){k.point=_,c&&c.push(u=[]);b=!0,m=!1,p=v=NaN},lineEnd:function(){l&&(_(h,d),f&&m&&w.rejoin(),l.push(w.result()));k.point=x,m&&y.lineEnd()},polygonStart:function(){y=w,l=[],c=[],g=!0},polygonEnd:function(){var e=function(){for(var e=0,n=0,a=c.length;n<a;++n)for(var i,o,s=c[n],l=1,u=s.length,h=s[0],d=h[0],f=h[1];l<u;++l)i=d,o=f,d=(h=s[l])[0],f=h[1],o<=r?f>r&&(d-i)*(r-o)>(f-o)*(t-i)&&++e:f<=r&&(d-i)*(r-o)<(f-o)*(t-i)&&--e;return e}(),n=g&&e,a=(h=l,l=Array.from(Vt(h))).length;var h;(n||a)&&(o.polygonStart(),n&&(o.lineStart(),i(null,null,1,o),o.lineEnd()),a&&zi(l,s,e,i,o),o.polygonEnd());y=o,l=c=u=null}};function x(t,e){a(t,e)&&y.point(t,e)}function _(i,o){var s=a(i,o);if(c&&u.push([i,o]),b)h=i,d=o,f=s,b=!1,s&&(y.lineStart(),y.point(i,o));else if(s&&m)y.point(i,o);else{var l=[p=Math.max(Oi,Math.min($i,p)),v=Math.max(Oi,Math.min($i,v))],w=[i=Math.max(Oi,Math.min($i,i)),o=Math.max(Oi,Math.min($i,o))];!function(t,e,n,r,a,i){var o,s=t[0],l=t[1],c=0,u=1,h=e[0]-s,d=e[1]-l;if(o=n-s,h||!(o>0)){if(o/=h,h<0){if(o<c)return;o<u&&(u=o)}else if(h>0){if(o>u)return;o>c&&(c=o)}if(o=a-s,h||!(o<0)){if(o/=h,h<0){if(o>u)return;o>c&&(c=o)}else if(h>0){if(o<c)return;o<u&&(u=o)}if(o=r-l,d||!(o>0)){if(o/=d,d<0){if(o<c)return;o<u&&(u=o)}else if(d>0){if(o>u)return;o>c&&(c=o)}if(o=i-l,d||!(o<0)){if(o/=d,d<0){if(o>u)return;o>c&&(c=o)}else if(d>0){if(o<c)return;o<u&&(u=o)}return c>0&&(t[0]=s+c*h,t[1]=l+c*d),u<1&&(e[0]=s+u*h,e[1]=l+u*d),!0}}}}}(l,w,t,e,n,r)?s&&(y.lineStart(),y.point(i,o),g=!1):(m||(y.lineStart(),y.point(l[0],l[1])),y.point(w[0],w[1]),s||y.lineEnd(),g=!1)}p=i,v=o,m=s}return k}}var Hi,Di,Ui,ji,Li=function(t){return t},Vi=new Rt,Bi=new Rt,Ki={point:Ei,lineStart:Ei,lineEnd:Ei,polygonStart:function(){Ki.lineStart=Xi,Ki.lineEnd=Yi},polygonEnd:function(){Ki.lineStart=Ki.lineEnd=Ki.point=Ei,Vi.add(xi(Bi)),Bi=new Rt},result:function(){var t=Vi/2;return Vi=new Rt,t}};function Xi(){Ki.point=Gi}function Gi(t,e){Ki.point=Zi,Hi=Ui=t,Di=ji=e}function Zi(t,e){Bi.add(ji*t-Ui*e),Ui=t,ji=e}function Yi(){Zi(Hi,Di)}var Wi=Ki,Qi=1/0,Ji=Qi,to=-Qi,eo=to,no={point:function(t,e){t<Qi&&(Qi=t);t>to&&(to=t);e<Ji&&(Ji=e);e>eo&&(eo=e)},lineStart:Ei,lineEnd:Ei,polygonStart:Ei,polygonEnd:Ei,result:function(){var t=[[Qi,Ji],[to,eo]];return to=eo=-(Ji=Qi=1/0),t}};var ro,ao,io,oo,so=no,lo=0,co=0,uo=0,ho=0,fo=0,po=0,vo=0,mo=0,bo=0,go={point:yo,lineStart:wo,lineEnd:_o,polygonStart:function(){go.lineStart=So,go.lineEnd=Ao},polygonEnd:function(){go.point=yo,go.lineStart=wo,go.lineEnd=_o},result:function(){var t=bo?[vo/bo,mo/bo]:po?[ho/po,fo/po]:uo?[lo/uo,co/uo]:[NaN,NaN];return lo=co=uo=ho=fo=po=vo=mo=bo=0,t}};function yo(t,e){lo+=t,co+=e,++uo}function wo(){go.point=ko}function ko(t,e){go.point=xo,yo(io=t,oo=e)}function xo(t,e){var n=t-io,r=e-oo,a=Ai(n*n+r*r);ho+=a*(io+t)/2,fo+=a*(oo+e)/2,po+=a,yo(io=t,oo=e)}function _o(){go.point=yo}function So(){go.point=Eo}function Ao(){To(ro,ao)}function Eo(t,e){go.point=To,yo(ro=io=t,ao=oo=e)}function To(t,e){var n=t-io,r=e-oo,a=Ai(n*n+r*r);ho+=a*(io+t)/2,fo+=a*(oo+e)/2,po+=a,vo+=(a=oo*t-io*e)*(io+t),mo+=a*(oo+e),bo+=3*a,yo(io=t,oo=e)}var Mo=go;function Co(t){this._context=t}Co.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._context.moveTo(t,e),this._point=1;break;case 1:this._context.lineTo(t,e);break;default:this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,yi)}},result:Ei};var No,Ro,qo,Po,zo,Fo=new Rt,$o={point:Ei,lineStart:function(){$o.point=Oo},lineEnd:function(){No&&Io(Ro,qo),$o.point=Ei},polygonStart:function(){No=!0},polygonEnd:function(){No=null},result:function(){var t=+Fo;return Fo=new Rt,t}};function Oo(t,e){$o.point=Io,Ro=Po=t,qo=zo=e}function Io(t,e){Po-=t,zo-=e,Fo.add(Ai(Po*Po+zo*zo)),Po=t,zo=e}var Ho=$o;function Do(){this._string=[]}function Uo(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function jo(t,e){var n,r,a=4.5;function i(t){return t&&("function"==typeof a&&r.pointRadius(+a.apply(this,arguments)),qi(t,n(r))),r.result()}return i.area=function(t){return qi(t,n(Wi)),Wi.result()},i.measure=function(t){return qi(t,n(Ho)),Ho.result()},i.bounds=function(t){return qi(t,n(so)),so.result()},i.centroid=function(t){return qi(t,n(Mo)),Mo.result()},i.projection=function(e){return arguments.length?(n=null==e?(t=null,Li):(t=e).stream,i):t},i.context=function(t){return arguments.length?(r=null==t?(e=null,new Do):new Co(e=t),"function"!=typeof a&&r.pointRadius(a),i):e},i.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(r.pointRadius(+t),+t),i):a},i.projection(t).context(e)}function Lo(){}function Vo(t,e,n){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=r&&t.clipExtent(null),qi(n,t.stream(so)),e(so.result()),null!=r&&t.clipExtent(r),t}function Bo(t,e,n){return Vo(t,(function(n){var r=e[1][0]-e[0][0],a=e[1][1]-e[0][1],i=Math.min(r/(n[1][0]-n[0][0]),a/(n[1][1]-n[0][1])),o=+e[0][0]+(r-i*(n[1][0]+n[0][0]))/2,s=+e[0][1]+(a-i*(n[1][1]+n[0][1]))/2;t.scale(150*i).translate([o,s])}),n)}function Ko(){var t,e,n,r,a,i,o,s,l=1,c=0,u=0,h=1,d=1,f=0,p=null,v=1,m=1,b=(s={point:function(t,e){var n=w([t,e]);this.stream.point(n[0],n[1])}},function(t){var e=new Lo;for(var n in s)e[n]=s[n];return e.stream=t,e}),g=Li;function y(){return v=l*h,m=l*d,i=o=null,w}function w(n){var r=n[0]*v,a=n[1]*m;if(f){var i=a*t-r*e;r=r*t+a*e,a=i}return[r+c,a+u]}return w.invert=function(n){var r=n[0]-c,a=n[1]-u;if(f){var i=a*t+r*e;r=r*t-a*e,a=i}return[r/v,a/m]},w.stream=function(t){return i&&o===t?i:i=b(g(o=t))},w.postclip=function(t){return arguments.length?(g=t,p=n=r=a=null,y()):g},w.clipExtent=function(t){return arguments.length?(g=null==t?(p=n=r=a=null,Li):Ii(p=+t[0][0],n=+t[0][1],r=+t[1][0],a=+t[1][1]),y()):null==p?null:[[p,n],[r,a]]},w.scale=function(t){return arguments.length?(l=+t,y()):l},w.translate=function(t){return arguments.length?(c=+t[0],u=+t[1],y()):[c,u]},w.angle=function(n){return arguments.length?(e=Si(f=n%360*ki),t=_i(f),y()):f*wi},w.reflectX=function(t){return arguments.length?(h=t?-1:1,y()):h<0},w.reflectY=function(t){return arguments.length?(d=t?-1:1,y()):d<0},w.fitExtent=function(t,e){return Bo(w,t,e)},w.fitSize=function(t,e){return function(t,e,n){return Bo(t,[[0,0],e],n)}(w,t,e)},w.fitWidth=function(t,e){return function(t,e,n){return Vo(t,(function(n){var r=+e,a=r/(n[1][0]-n[0][0]),i=(r-a*(n[1][0]+n[0][0]))/2,o=-a*n[0][1];t.scale(150*a).translate([i,o])}),n)}(w,t,e)},w.fitHeight=function(t,e){return function(t,e,n){return Vo(t,(function(n){var r=+e,a=r/(n[1][1]-n[0][1]),i=-a*n[0][0],o=(r-a*(n[1][1]+n[0][1]))/2;t.scale(150*a).translate([i,o])}),n)}(w,t,e)},w}function Xo(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}function Go(t){return+t}Do.prototype={_radius:4.5,_circle:Uo(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._string.push("M",t,",",e),this._point=1;break;case 1:this._string.push("L",t,",",e);break;default:null==this._circle&&(this._circle=Uo(this._radius)),this._string.push("M",t,",",e,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}},Lo.prototype={constructor:Lo,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var Zo=[0,1];function Yo(t){return t}function Wo(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:function(t){return function(){return t}}(isNaN(e)?NaN:.5)}function Qo(t,e,n){var r=t[0],a=t[1],i=e[0],o=e[1];return a<r?(r=Wo(a,r),i=n(o,i)):(r=Wo(r,a),i=n(i,o)),function(t){return i(r(t))}}function Jo(t,e,n){var r=Math.min(t.length,e.length)-1,a=new Array(r),i=new Array(r),o=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++o<r;)a[o]=Wo(t[o],t[o+1]),i[o]=n(e[o],e[o+1]);return function(e){var n=Ct(t,e,1,r)-1;return i[n](a[n](e))}}function ts(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function es(){var t,e,n,r,a,i,o=Zo,s=Zo,l=Tr,c=Yo;function u(){var t=Math.min(o.length,s.length);return c!==Yo&&(c=function(t,e){var n;return t>e&&(n=t,t=e,e=n),function(n){return Math.max(t,Math.min(e,n))}}(o[0],o[t-1])),r=t>2?Jo:Qo,a=i=null,h}function h(e){return null==e||isNaN(e=+e)?n:(a||(a=r(o.map(t),s,l)))(t(c(e)))}return h.invert=function(n){return c(e((i||(i=r(s,o.map(t),xr)))(n)))},h.domain=function(t){return arguments.length?(o=Array.from(t,Go),u()):o.slice()},h.range=function(t){return arguments.length?(s=Array.from(t),u()):s.slice()},h.rangeRound=function(t){return s=Array.from(t),l=Mr,u()},h.clamp=function(t){return arguments.length?(c=!!t||Yo,u()):c!==Yo},h.interpolate=function(t){return arguments.length?(l=t,u()):l},h.unknown=function(t){return arguments.length?(n=t,h):n},function(n,r){return t=n,e=r,u()}}function ns(){return es()(Yo,Yo)}function rs(t,e,n,r){var a,i=Dt(t,e,n);switch((r=oi(null==r?",f":r)).type){case"s":var o=Math.max(Math.abs(t),Math.abs(e));return null!=r.precision||isNaN(a=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(ri(e)/3)))-ri(Math.abs(t)))}(i,o))||(r.precision=a),fi(r,o);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(a=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,ri(e)-ri(t))+1}(i,Math.max(Math.abs(t),Math.abs(e))))||(r.precision=a-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(a=function(t){return Math.max(0,-ri(Math.abs(t)))}(i))||(r.precision=a-2*("%"===r.type))}return di(r)}function as(t){var e=t.domain;return t.ticks=function(t){var n=e();return It(n[0],n[n.length-1],null==t?10:t)},t.tickFormat=function(t,n){var r=e();return rs(r[0],r[r.length-1],null==t?10:t,n)},t.nice=function(n){null==n&&(n=10);var r,a,i=e(),o=0,s=i.length-1,l=i[o],c=i[s],u=10;for(c<l&&(a=l,l=c,c=a,a=o,o=s,s=a);u-- >0;){if((a=Ht(l,c,n))===r)return i[o]=l,i[s]=c,e(i);if(a>0)l=Math.floor(l/a)*a,c=Math.ceil(c/a)*a;else{if(!(a<0))break;l=Math.ceil(l*a)/a,c=Math.floor(c*a)/a}r=a}return t},t}function is(){var t=ns();return t.copy=function(){return ts(t,is())},Xo.apply(t,arguments),as(t)}var os,ss,ls,cs,us,hs,ds,fs,ps,vs=function(t){for(var e=t.length/6|0,n=new Array(e),r=0;r<e;)n[r]="#"+t.slice(6*r,6*++r);return n}("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999");function ms(t){return function(){return t}}function bs(t){this._context=t}function gs(t){return new bs(t)}function ys(t){return t[0]}function ws(t){return t[1]}function ks(t,n){var r=ms(!0),a=null,i=gs,o=null;function s(s){var l,c,u,h=(s=function(t){return"object"===e(t)&&"length"in t?t:Array.from(t)}(s)).length,d=!1;for(null==a&&(o=i(u=Ka())),l=0;l<=h;++l)!(l<h&&r(c=s[l],l,s))===d&&((d=!d)?o.lineStart():o.lineEnd()),d&&o.point(+t(c,l,s),+n(c,l,s));if(u)return o=null,u+""||null}return t="function"==typeof t?t:void 0===t?ys:ms(t),n="function"==typeof n?n:void 0===n?ws:ms(n),s.x=function(e){return arguments.length?(t="function"==typeof e?e:ms(+e),s):t},s.y=function(t){return arguments.length?(n="function"==typeof t?t:ms(+t),s):n},s.defined=function(t){return arguments.length?(r="function"==typeof t?t:ms(!!t),s):r},s.curve=function(t){return arguments.length?(i=t,null!=a&&(o=i(a)),s):i},s.context=function(t){return arguments.length?(null==t?a=o=null:o=i(a=t),s):a},s}bs.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}};var xs,_s,Ss=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.call(this)).uniqueId="decidables-".concat(n.uniqueId),t}return i(n,[{key:"getComputedStyleValue",value:function(t){return window.ShadyCSS?window.ShadyCSS.getComputedStyleValue(this,t):getComputedStyle(this).getPropertyValue(t)}},{key:"firstUpdated",value:function(t){b(l(n.prototype),"firstUpdated",this).call(this,t),An(this.renderRoot.host).classed("keyboard",!0).on("mousemove.keyboard touchstart.keyboard",(function(t){An(t.currentTarget.renderRoot.host).classed("keyboard",!1).on("mousemove.keyboard touchstart.keyboard",null)})).on("keydown.keyboard",(function(t){An(t.currentTarget.renderRoot.host).classed("keyboard",!0).on("keydown.keyboard mousemove.keyboard touchstart.keyboard",null)}))}}],[{key:"uniqueId",get:function(){return n.ID+=1,n.ID}},{key:"greys",get:function(){var t="#999999",e={white:"#ffffff"};return e.light75=gr(t,"#ffffff")(.75),e.light50=gr(t,"#ffffff")(.5),e.light25=gr(t,"#ffffff")(.25),e.grey=t,e.dark25=gr(t,"#000000")(.25),e.dark50=gr(t,"#000000")(.5),e.dark75=gr(t,"#000000")(.75),e.black="#000000",e}},{key:"shadows",get:function(){return{elevations:[0,2,4,8,16],baselineColor:"#000000",baselineColorString:"0, 0, 0",inverseBaselineColor:"#FFFFFF",inverseBaselineColorString:"255, 255, 255",opacityUmbra:.2,opacityPenumbra:.14,opacityAmbient:.12,opacityBoost:.2,mapUmbra:{0:{x:0,y:0,b:0,s:0},2:{x:0,y:3,b:1,s:-2},4:{x:0,y:2,b:4,s:-1},8:{x:0,y:5,b:5,s:-3},16:{x:0,y:8,b:10,s:-5}},mapPenumbra:{0:{x:0,y:0,b:0,s:0},2:{x:0,y:2,b:2,s:0},4:{x:0,y:4,b:5,s:0},8:{x:0,y:8,b:10,s:1},16:{x:0,y:16,b:24,s:2}},mapAmbient:{0:{x:0,y:0,b:0,s:0},2:{x:0,y:1,b:5,s:0},4:{x:0,y:1,b:10,s:0},8:{x:0,y:3,b:14,s:2},16:{x:0,y:6,b:30,s:5}}}}},{key:"cssBoxShadow",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=this.shadows.opacityUmbra+this.shadows.opacityBoost,a=this.shadows.opacityPenumbra+this.shadows.opacityBoost,i=this.shadows.opacityAmbient+this.shadows.opacityBoost,o=n?"rgba(".concat(this.shadows.inverseBaselineColorString,", ").concat(r,")"):"rgba(".concat(this.shadows.baselineColorString,", ").concat(r,")"),s=n?"rgba(".concat(this.shadows.inverseBaselineColorString,", ").concat(a,")"):"rgba(".concat(this.shadows.baselineColorString,", ").concat(a,")"),l=n?"rgba(".concat(this.shadows.inverseBaselineColorString,", ").concat(i,")"):"rgba(".concat(this.shadows.baselineColorString,", ").concat(i,")"),c=this.shadows.mapUmbra[t],u=this.shadows.mapPenumbra[t],h=this.shadows.mapAmbient[t],d=e?"".concat(-c.y,"px ").concat(c.y/2,"px ").concat(c.b,"px ").concat(c.s,"px"):"".concat(c.y/2,"px ").concat(c.y,"px ").concat(c.b,"px ").concat(c.s,"px"),f=e?"".concat(-u.y,"px ").concat(u.y/2,"px ").concat(u.b,"px ").concat(u.s,"px"):"".concat(u.y/2,"px ").concat(u.y,"px ").concat(u.b,"px ").concat(u.s,"px"),p=e?"".concat(-h.y,"px ").concat(h.y/2,"px ").concat(h.b,"px ").concat(h.s,"px"):"".concat(h.y/2,"px ").concat(h.y,"px ").concat(h.b,"px ").concat(h.s,"px");return"".concat(d," ").concat(o,", ").concat(f," ").concat(s,", ").concat(p," ").concat(l)}},{key:"svgFilters",get:function(){var t=n.shadows,e=t.elevations.map((function(e){return it(os||(os=g(["\n <filter id=",' x="-250%" y="-250%" width="600%" height="600%">\n <feComponentTransfer in="SourceAlpha" result="solid">\n <feFuncA type="table" tableValues="0 1 1"/>\n </feComponentTransfer>\n <feOffset in="solid" result="offU" dx='," dy=",' />\n <feOffset in="solid" result="offP" dx='," dy=",' />\n <feOffset in="solid" result="offA" dx='," dy="," />\n ","\n ","\n ","\n <feGaussianBlur in=",' result="blurU" stdDeviation='," />\n <feGaussianBlur in=",' result="blurP" stdDeviation='," />\n <feGaussianBlur in=",' result="blurA" stdDeviation=',' />\n <feFlood in="SourceGraphic" result="opU" flood-color='," flood-opacity=",' />\n <feFlood in="SourceGraphic" result="opP" flood-color='," flood-opacity=",' />\n <feFlood in="SourceGraphic" result="opA" flood-color='," flood-opacity=",' />\n <feComposite in="opU" in2="blurU" result="shU" operator="in" />\n <feComposite in="opP" in2="blurP" result="shP" operator="in" />\n <feComposite in="opA" in2="blurA" result="shA" operator="in" />\n \x3c!-- HACK Edge: Using a dynamic value for erode radius stops Edge from corrupting the "radius" value! --\x3e\n <feMorphology in="solid" result="smaller" operator="erode" radius=',' />\n <feComposite in="shU" in2="smaller" result="finalU" operator="out" />\n <feComposite in="shP" in2="smaller" result="finalP" operator="out" />\n <feComposite in="shA" in2="smaller" result="finalA" operator="out" />\n <feMerge>\n <feMergeNode in="finalU" />\n <feMergeNode in="finalP" />\n <feMergeNode in="finalA" />\n <feMergeNode in="SourceGraphic" />\n </feMerge>\n </filter>'])),"shadow-".concat(e),t.mapUmbra[e].y/2,t.mapUmbra[e].y,t.mapPenumbra[e].y/2,t.mapPenumbra[e].y,t.mapAmbient[e].y/2,t.mapAmbient[e].y,0===t.mapUmbra[e].s?it(ss||(ss=g([""]))):it(ls||(ls=g(['<feMorphology in="offU" result="spreadU" operator='," radius="," />"])),t.mapUmbra[e].s>0?"dilate":"erode",Math.abs(t.mapUmbra[e].s)),0===t.mapPenumbra[e].s?it(cs||(cs=g([""]))):it(us||(us=g(['<feMorphology in="offP" result="spreadP" operator='," radius="," />"])),t.mapPenumbra[e].s>0?"dilate":"erode",Math.abs(t.mapPenumbra[e].s)),0===t.mapAmbient[e].s?it(hs||(hs=g([""]))):it(ds||(ds=g(['<feMorphology in="offA" result="spreadA" operator='," radius="," />"])),t.mapAmbient[e].s>0?"dilate":"erode",Math.abs(t.mapAmbient[e].s)),0===t.mapUmbra[e].s?"offU":"spreadU",t.mapUmbra[e].b/2,0===t.mapPenumbra[e].s?"offP":"spreadP",t.mapPenumbra[e].b/2,0===t.mapAmbient[e].s?"offA":"spreadA",t.mapAmbient[e].b/2,t.baselineColor,t.opacityUmbra+t.opacityBoost,t.baselineColor,t.opacityPenumbra+t.opacityBoost,t.baselineColor,t.opacityAmbient+t.opacityBoost,1)}));return it(fs||(fs=g(['\n <svg class="defs">\n <defs>\n ',"\n </defs>\n </svg>\n "])),e)}},{key:"styles",get:function(){return R(ps||(ps=g(["\n :host {\n ---shadow-0: var(--shadow-0, ",");\n ---shadow-2: var(--shadow-2, ",");\n ---shadow-4: var(--shadow-4, ",");\n ---shadow-8: var(--shadow-8, ",");\n\n ---color-background: var(--color-background, ",");\n ---color-border: var(--color-border, ",");\n ---color-text: var(--color-text, ",");\n ---color-text-inverse: var(--color-text-inverse, ",");\n ---color-link: var(--color-link, ",");\n ---color-element-background: var(--color-element-background, ",");\n ---color-element-disabled: var(--color-element-disabled, ",");\n ---color-element-enabled: var(--color-element-enabled, ",");\n ---color-element-selected: var(--color-element-selected, ",");\n ---color-element-border: var(--color-element-border, ",");\n ---color-element-emphasis: var(--color-element-emphasis, ",');\n\n ---font-family-base: var(--font-family-base, "Source Sans", sans-serif);\n ---font-family-math: var(--font-family-math, "Source Serif", serif);\n\n ---transition-duration: var(--transition-duration, 500ms);\n\n font-family: var(---font-family-base);\n }\n\n :host,\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: border-box;\n }\n\n .math-greek {\n font-family: var(---font-family-math);\n font-style: normal;\n }\n\n .math-num {\n font-family: var(---font-family-base);\n font-style: normal;\n }\n\n .math-var {\n font-family: var(---font-family-math);\n font-style: italic;\n }\n\n .defs {\n display: block;\n\n width: 0;\n height: 0;\n }\n '])),N(this.cssBoxShadow(0)),N(this.cssBoxShadow(2)),N(this.cssBoxShadow(4)),N(this.cssBoxShadow(8)),N(this.greys.white),N(this.greys.light75),N(this.greys.dark75),N(this.greys.white),N(this.greys.dark25),N(this.greys.light75),N(this.greys.light50),N(this.greys.grey),N(this.greys.dark25),N(this.greys.dark50),N(this.greys.dark75))}}]),n}(St);Ss.ID=0;var As=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.call(this)).disabled=!1,t}return i(n,[{key:"render",value:function(){return at(xs||(xs=g(["\n <button ?disabled=",">\n <slot></slot>\n </button>\n "])),this.disabled)}}],[{key:"properties",get:function(){return{disabled:{attribute:"disabled",type:Boolean,reflect:!0}}}},{key:"styles",get:function(){return[b(l(n),"styles",this),R(_s||(_s=g(["\n :host {\n margin: 0.25rem;\n }\n\n button {\n width: 100%;\n height: 100%;\n padding: 0.375rem 0.75rem;\n\n font-family: var(---font-family-base);\n font-size: 1.125rem;\n line-height: 1.5;\n color: var(---color-text-inverse);\n\n border: 0;\n border-radius: 0.25rem;\n outline: none;\n }\n\n button:disabled {\n background-color: var(--decidables-button-background-color, var(---color-element-disabled));\n outline: none;\n box-shadow: none;\n }\n\n button:enabled {\n cursor: pointer;\n\n background-color: var(--decidables-button-background-color, var(---color-element-enabled));\n outline: none;\n box-shadow: var(---shadow-2);\n }\n\n button:enabled:hover {\n outline: none;\n box-shadow: var(---shadow-4);\n }\n\n button:enabled:active {\n outline: none;\n box-shadow: var(---shadow-8);\n }\n\n :host(.keyboard) button:enabled:focus {\n outline: none;\n box-shadow: var(---shadow-4);\n }\n\n :host(.keyboard) button:enabled:focus:active {\n outline: none;\n box-shadow: var(---shadow-8);\n }\n "])))]}}]),n}(Ss);customElements.define("decidables-button",As);
|
|
6
|
+
*/const e=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,r=Symbol(),n=new Map;class i{constructor(t,e){if(this._$cssResult$=!0,e!==r)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t}get styleSheet(){let t=n.get(this.cssText);return e&&void 0===t&&(n.set(this.cssText,t=new CSSStyleSheet),t.replaceSync(this.cssText)),t}toString(){return this.cssText}}const s=t=>new i("string"==typeof t?t:t+"",r),a=(t,...e)=>{const n=1===t.length?t[0]:e.reduce(((e,r,n)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(r)+t[n+1]),t[0]);return new i(n,r)},o=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const r of t.cssRules)e+=r.cssText;return s(e)})(t):t
|
|
7
|
+
/**
|
|
8
|
+
* @license
|
|
9
|
+
* Copyright 2017 Google LLC
|
|
10
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
11
|
+
*/;var l;const c=window.trustedTypes,h=c?c.emptyScript:"",u=window.reactiveElementPolyfillSupport,d={toAttribute(t,e){switch(e){case Boolean:t=t?h:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let r=t;switch(e){case Boolean:r=null!==t;break;case Number:r=null===t?null:Number(t);break;case Object:case Array:try{r=JSON.parse(t)}catch(t){r=null}}return r}},f=(t,e)=>e!==t&&(e==e||t==t),p={attribute:!0,type:String,converter:d,reflect:!1,hasChanged:f};class m extends HTMLElement{constructor(){super(),this._$Et=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Ei=null,this.o()}static addInitializer(t){var e;null!==(e=this.l)&&void 0!==e||(this.l=[]),this.l.push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((e,r)=>{const n=this._$Eh(r,e);void 0!==n&&(this._$Eu.set(n,r),t.push(n))})),t}static createProperty(t,e=p){if(e.state&&(e.attribute=!1),this.finalize(),this.elementProperties.set(t,e),!e.noAccessor&&!this.prototype.hasOwnProperty(t)){const r="symbol"==typeof t?Symbol():"__"+t,n=this.getPropertyDescriptor(t,r,e);void 0!==n&&Object.defineProperty(this.prototype,t,n)}}static getPropertyDescriptor(t,e,r){return{get(){return this[e]},set(n){const i=this[t];this[e]=n,this.requestUpdate(t,i,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||p}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),this.elementProperties=new Map(t.elementProperties),this._$Eu=new Map,this.hasOwnProperty("properties")){const t=this.properties,e=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const r of e)this.createProperty(r,t[r])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const r=new Set(t.flat(1/0).reverse());for(const t of r)e.unshift(o(t))}else void 0!==t&&e.push(o(t));return e}static _$Eh(t,e){const r=e.attribute;return!1===r?void 0:"string"==typeof r?r:"string"==typeof t?t.toLowerCase():void 0}o(){var t;this._$Ep=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Em(),this.requestUpdate(),null===(t=this.constructor.l)||void 0===t||t.forEach((t=>t(this)))}addController(t){var e,r;(null!==(e=this._$Eg)&&void 0!==e?e:this._$Eg=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(r=t.hostConnected)||void 0===r||r.call(t))}removeController(t){var e;null===(e=this._$Eg)||void 0===e||e.splice(this._$Eg.indexOf(t)>>>0,1)}_$Em(){this.constructor.elementProperties.forEach(((t,e)=>{this.hasOwnProperty(e)&&(this._$Et.set(e,this[e]),delete this[e])}))}createRenderRoot(){var t;const r=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return((t,r)=>{e?t.adoptedStyleSheets=r.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):r.forEach((e=>{const r=document.createElement("style"),n=window.litNonce;void 0!==n&&r.setAttribute("nonce",n),r.textContent=e.cssText,t.appendChild(r)}))})(r,this.constructor.elementStyles),r}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostConnected)||void 0===e?void 0:e.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostDisconnected)||void 0===e?void 0:e.call(t)}))}attributeChangedCallback(t,e,r){this._$AK(t,r)}_$ES(t,e,r=p){var n,i;const s=this.constructor._$Eh(t,r);if(void 0!==s&&!0===r.reflect){const a=(null!==(i=null===(n=r.converter)||void 0===n?void 0:n.toAttribute)&&void 0!==i?i:d.toAttribute)(e,r.type);this._$Ei=t,null==a?this.removeAttribute(s):this.setAttribute(s,a),this._$Ei=null}}_$AK(t,e){var r,n,i;const s=this.constructor,a=s._$Eu.get(t);if(void 0!==a&&this._$Ei!==a){const t=s.getPropertyOptions(a),o=t.converter,l=null!==(i=null!==(n=null===(r=o)||void 0===r?void 0:r.fromAttribute)&&void 0!==n?n:"function"==typeof o?o:null)&&void 0!==i?i:d.fromAttribute;this._$Ei=a,this[a]=l(e,t.type),this._$Ei=null}}requestUpdate(t,e,r){let n=!0;void 0!==t&&(((r=r||this.constructor.getPropertyOptions(t)).hasChanged||f)(this[t],e)?(this._$AL.has(t)||this._$AL.set(t,e),!0===r.reflect&&this._$Ei!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,r))):n=!1),!this.isUpdatePending&&n&&(this._$Ep=this._$E_())}async _$E_(){this.isUpdatePending=!0;try{await this._$Ep}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Et&&(this._$Et.forEach(((t,e)=>this[e]=t)),this._$Et=void 0);let e=!1;const r=this._$AL;try{e=this.shouldUpdate(r),e?(this.willUpdate(r),null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostUpdate)||void 0===e?void 0:e.call(t)})),this.update(r)):this._$EU()}catch(t){throw e=!1,this._$EU(),t}e&&this._$AE(r)}willUpdate(t){}_$AE(t){var e;null===(e=this._$Eg)||void 0===e||e.forEach((t=>{var e;return null===(e=t.hostUpdated)||void 0===e?void 0:e.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Ep}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,e)=>this._$ES(e,this[e],t))),this._$EC=void 0),this._$EU()}updated(t){}firstUpdated(t){}}
|
|
12
|
+
/**
|
|
13
|
+
* @license
|
|
14
|
+
* Copyright 2017 Google LLC
|
|
15
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
16
|
+
*/
|
|
17
|
+
var b;m.finalized=!0,m.elementProperties=new Map,m.elementStyles=[],m.shadowRootOptions={mode:"open"},null==u||u({ReactiveElement:m}),(null!==(l=globalThis.reactiveElementVersions)&&void 0!==l?l:globalThis.reactiveElementVersions=[]).push("1.3.1");const g=globalThis.trustedTypes,v=g?g.createPolicy("lit-html",{createHTML:t=>t}):void 0,y=`lit$${(Math.random()+"").slice(9)}$`,w="?"+y,x=`<${w}>`,k=document,$=(t="")=>k.createComment(t),_=t=>null===t||"object"!=typeof t&&"function"!=typeof t,S=Array.isArray,A=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,E=/-->/g,T=/>/g,M=/>|[ \n\r](?:([^\s"'>=/]+)([ \n\r]*=[ \n\r]*(?:[^ \n\r"'`<>=]|("|')|))|$)/g,C=/'/g,N=/"/g,R=/^(?:script|style|textarea|title)$/i,q=t=>(e,...r)=>({_$litType$:t,strings:e,values:r}),z=q(1),P=q(2),F=Symbol.for("lit-noChange"),O=Symbol.for("lit-nothing"),H=new WeakMap,D=k.createTreeWalker(k,129,null,!1),I=(t,e)=>{const r=t.length-1,n=[];let i,s=2===e?"<svg>":"",a=A;for(let e=0;e<r;e++){const r=t[e];let o,l,c=-1,h=0;for(;h<r.length&&(a.lastIndex=h,l=a.exec(r),null!==l);)h=a.lastIndex,a===A?"!--"===l[1]?a=E:void 0!==l[1]?a=T:void 0!==l[2]?(R.test(l[2])&&(i=RegExp("</"+l[2],"g")),a=M):void 0!==l[3]&&(a=M):a===M?">"===l[0]?(a=null!=i?i:A,c=-1):void 0===l[1]?c=-2:(c=a.lastIndex-l[2].length,o=l[1],a=void 0===l[3]?M:'"'===l[3]?N:C):a===N||a===C?a=M:a===E||a===T?a=A:(a=M,i=void 0);const u=a===M&&t[e+1].startsWith("/>")?" ":"";s+=a===A?r+x:c>=0?(n.push(o),r.slice(0,c)+"$lit$"+r.slice(c)+y+u):r+y+(-2===c?(n.push(void 0),e):u)}const o=s+(t[r]||"<?>")+(2===e?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==v?v.createHTML(o):o,n]};class U{constructor({strings:t,_$litType$:e},r){let n;this.parts=[];let i=0,s=0;const a=t.length-1,o=this.parts,[l,c]=I(t,e);if(this.el=U.createElement(l,r),D.currentNode=this.el.content,2===e){const t=this.el.content,e=t.firstChild;e.remove(),t.append(...e.childNodes)}for(;null!==(n=D.nextNode())&&o.length<a;){if(1===n.nodeType){if(n.hasAttributes()){const t=[];for(const e of n.getAttributeNames())if(e.endsWith("$lit$")||e.startsWith(y)){const r=c[s++];if(t.push(e),void 0!==r){const t=n.getAttribute(r.toLowerCase()+"$lit$").split(y),e=/([.?@])?(.*)/.exec(r);o.push({type:1,index:i,name:e[2],strings:t,ctor:"."===e[1]?K:"?"===e[1]?Z:"@"===e[1]?Y:B})}else o.push({type:6,index:i})}for(const e of t)n.removeAttribute(e)}if(R.test(n.tagName)){const t=n.textContent.split(y),e=t.length-1;if(e>0){n.textContent=g?g.emptyScript:"";for(let r=0;r<e;r++)n.append(t[r],$()),D.nextNode(),o.push({type:2,index:++i});n.append(t[e],$())}}}else if(8===n.nodeType)if(n.data===w)o.push({type:2,index:i});else{let t=-1;for(;-1!==(t=n.data.indexOf(y,t+1));)o.push({type:7,index:i}),t+=y.length-1}i++}}static createElement(t,e){const r=k.createElement("template");return r.innerHTML=t,r}}function L(t,e,r=t,n){var i,s,a,o;if(e===F)return e;let l=void 0!==n?null===(i=r._$Cl)||void 0===i?void 0:i[n]:r._$Cu;const c=_(e)?void 0:e._$litDirective$;return(null==l?void 0:l.constructor)!==c&&(null===(s=null==l?void 0:l._$AO)||void 0===s||s.call(l,!1),void 0===c?l=void 0:(l=new c(t),l._$AT(t,r,n)),void 0!==n?(null!==(a=(o=r)._$Cl)&&void 0!==a?a:o._$Cl=[])[n]=l:r._$Cu=l),void 0!==l&&(e=L(t,l._$AS(t,e.values),l,n)),e}class j{constructor(t,e){this.v=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}p(t){var e;const{el:{content:r},parts:n}=this._$AD,i=(null!==(e=null==t?void 0:t.creationScope)&&void 0!==e?e:k).importNode(r,!0);D.currentNode=i;let s=D.nextNode(),a=0,o=0,l=n[0];for(;void 0!==l;){if(a===l.index){let e;2===l.type?e=new V(s,s.nextSibling,this,t):1===l.type?e=new l.ctor(s,l.name,l.strings,this,t):6===l.type&&(e=new G(s,this,t)),this.v.push(e),l=n[++o]}a!==(null==l?void 0:l.index)&&(s=D.nextNode(),a++)}return i}m(t){let e=0;for(const r of this.v)void 0!==r&&(void 0!==r.strings?(r._$AI(t,r,e),e+=r.strings.length-2):r._$AI(t[e])),e++}}class V{constructor(t,e,r,n){var i;this.type=2,this._$AH=O,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=r,this.options=n,this._$Cg=null===(i=null==n?void 0:n.isConnected)||void 0===i||i}get _$AU(){var t,e;return null!==(e=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==e?e:this._$Cg}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return void 0!==e&&11===t.nodeType&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=L(this,t,e),_(t)?t===O||null==t||""===t?(this._$AH!==O&&this._$AR(),this._$AH=O):t!==this._$AH&&t!==F&&this.$(t):void 0!==t._$litType$?this.T(t):void 0!==t.nodeType?this.k(t):(t=>{var e;return S(t)||"function"==typeof(null===(e=t)||void 0===e?void 0:e[Symbol.iterator])})(t)?this.S(t):this.$(t)}A(t,e=this._$AB){return this._$AA.parentNode.insertBefore(t,e)}k(t){this._$AH!==t&&(this._$AR(),this._$AH=this.A(t))}$(t){this._$AH!==O&&_(this._$AH)?this._$AA.nextSibling.data=t:this.k(k.createTextNode(t)),this._$AH=t}T(t){var e;const{values:r,_$litType$:n}=t,i="number"==typeof n?this._$AC(t):(void 0===n.el&&(n.el=U.createElement(n.h,this.options)),n);if((null===(e=this._$AH)||void 0===e?void 0:e._$AD)===i)this._$AH.m(r);else{const t=new j(i,this),e=t.p(this.options);t.m(r),this.k(e),this._$AH=t}}_$AC(t){let e=H.get(t.strings);return void 0===e&&H.set(t.strings,e=new U(t)),e}S(t){S(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let r,n=0;for(const i of t)n===e.length?e.push(r=new V(this.A($()),this.A($()),this,this.options)):r=e[n],r._$AI(i),n++;n<e.length&&(this._$AR(r&&r._$AB.nextSibling,n),e.length=n)}_$AR(t=this._$AA.nextSibling,e){var r;for(null===(r=this._$AP)||void 0===r||r.call(this,!1,!0,e);t&&t!==this._$AB;){const e=t.nextSibling;t.remove(),t=e}}setConnected(t){var e;void 0===this._$AM&&(this._$Cg=t,null===(e=this._$AP)||void 0===e||e.call(this,t))}}class B{constructor(t,e,r,n,i){this.type=1,this._$AH=O,this._$AN=void 0,this.element=t,this.name=e,this._$AM=n,this.options=i,r.length>2||""!==r[0]||""!==r[1]?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=O}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,r,n){const i=this.strings;let s=!1;if(void 0===i)t=L(this,t,e,0),s=!_(t)||t!==this._$AH&&t!==F,s&&(this._$AH=t);else{const n=t;let a,o;for(t=i[0],a=0;a<i.length-1;a++)o=L(this,n[r+a],e,a),o===F&&(o=this._$AH[a]),s||(s=!_(o)||o!==this._$AH[a]),o===O?t=O:t!==O&&(t+=(null!=o?o:"")+i[a+1]),this._$AH[a]=o}s&&!n&&this.C(t)}C(t){t===O?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:"")}}class K extends B{constructor(){super(...arguments),this.type=3}C(t){this.element[this.name]=t===O?void 0:t}}const X=g?g.emptyScript:"";class Z extends B{constructor(){super(...arguments),this.type=4}C(t){t&&t!==O?this.element.setAttribute(this.name,X):this.element.removeAttribute(this.name)}}class Y extends B{constructor(t,e,r,n,i){super(t,e,r,n,i),this.type=5}_$AI(t,e=this){var r;if((t=null!==(r=L(this,t,e,0))&&void 0!==r?r:O)===F)return;const n=this._$AH,i=t===O&&n!==O||t.capture!==n.capture||t.once!==n.once||t.passive!==n.passive,s=t!==O&&(n===O||i);i&&this.element.removeEventListener(this.name,this,n),s&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var e,r;"function"==typeof this._$AH?this._$AH.call(null!==(r=null===(e=this.options)||void 0===e?void 0:e.host)&&void 0!==r?r:this.element,t):this._$AH.handleEvent(t)}}class G{constructor(t,e,r){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(t){L(this,t)}}const W=window.litHtmlPolyfillSupport;
|
|
18
|
+
/**
|
|
19
|
+
* @license
|
|
20
|
+
* Copyright 2017 Google LLC
|
|
21
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
22
|
+
*/
|
|
23
|
+
var Q,J;null==W||W(U,V),(null!==(b=globalThis.litHtmlVersions)&&void 0!==b?b:globalThis.litHtmlVersions=[]).push("2.2.1");class tt extends m{constructor(){super(...arguments),this.renderOptions={host:this},this._$Dt=void 0}createRenderRoot(){var t,e;const r=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=r.firstChild),r}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Dt=((t,e,r)=>{var n,i;const s=null!==(n=null==r?void 0:r.renderBefore)&&void 0!==n?n:e;let a=s._$litPart$;if(void 0===a){const t=null!==(i=null==r?void 0:r.renderBefore)&&void 0!==i?i:null;s._$litPart$=a=new V(e.insertBefore($(),t),t,void 0,null!=r?r:{})}return a._$AI(t),a})(e,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Dt)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Dt)||void 0===t||t.setConnected(!1)}render(){return F}}tt.finalized=!0,tt._$litElement$=!0,null===(Q=globalThis.litElementHydrateSupport)||void 0===Q||Q.call(globalThis,{LitElement:tt});const et=globalThis.litElementPolyfillSupport;function rt(t,e){return null==t||null==e?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function nt(t){let e=t,r=t,n=t;function i(t,e,i=0,s=t.length){if(i<s){if(0!==r(e,e))return s;do{const r=i+s>>>1;n(t[r],e)<0?i=r+1:s=r}while(i<s)}return i}return 2!==t.length&&(e=(e,r)=>t(e)-r,r=rt,n=(e,r)=>rt(t(e),r)),{left:i,center:function(t,r,n=0,s=t.length){const a=i(t,r,n,s-1);return a>n&&e(t[a-1],r)>-e(t[a],r)?a-1:a},right:function(t,e,i=0,s=t.length){if(i<s){if(0!==r(e,e))return s;do{const r=i+s>>>1;n(t[r],e)<=0?i=r+1:s=r}while(i<s)}return i}}}null==et||et({LitElement:tt}),(null!==(J=globalThis.litElementVersions)&&void 0!==J?J:globalThis.litElementVersions=[]).push("3.2.0");const it=nt(rt).right;nt((function(t){return null===t?NaN:+t})).center;var st=it;function at(t,e){let r,n;if(void 0===e)for(const e of t)null!=e&&(void 0===r?e>=e&&(r=n=e):(r>e&&(r=e),n<e&&(n=e)));else{let i=-1;for(let s of t)null!=(s=e(s,++i,t))&&(void 0===r?s>=s&&(r=n=s):(r>s&&(r=s),n<s&&(n=s)))}return[r,n]}class ot{constructor(){this._partials=new Float64Array(32),this._n=0}add(t){const e=this._partials;let r=0;for(let n=0;n<this._n&&n<32;n++){const i=e[n],s=t+i,a=Math.abs(t)<Math.abs(i)?t-(s-i):i-(s-t);a&&(e[r++]=a),t=s}return e[r]=t,this._n=r+1,this}valueOf(){const t=this._partials;let e,r,n,i=this._n,s=0;if(i>0){for(s=t[--i];i>0&&(e=s,r=t[--i],s=e+r,n=r-(s-e),!n););i>0&&(n<0&&t[i-1]<0||n>0&&t[i-1]>0)&&(r=2*n,e=s+r,r==e-s&&(s=e))}return s}}function lt(t){return t}var ct=Array.prototype.slice;function ht(t){return()=>t}var ut=Math.sqrt(50),dt=Math.sqrt(10),ft=Math.sqrt(2);function pt(t,e,r){var n,i,s,a,o=-1;if(r=+r,(t=+t)===(e=+e)&&r>0)return[t];if((n=e<t)&&(i=t,t=e,e=i),0===(a=mt(t,e,r))||!isFinite(a))return[];if(a>0){let r=Math.round(t/a),n=Math.round(e/a);for(r*a<t&&++r,n*a>e&&--n,s=new Array(i=n-r+1);++o<i;)s[o]=(r+o)*a}else{a=-a;let r=Math.round(t*a),n=Math.round(e*a);for(r/a<t&&++r,n/a>e&&--n,s=new Array(i=n-r+1);++o<i;)s[o]=(r+o)/a}return n&&s.reverse(),s}function mt(t,e,r){var n=(e-t)/Math.max(0,r),i=Math.floor(Math.log(n)/Math.LN10),s=n/Math.pow(10,i);return i>=0?(s>=ut?10:s>=dt?5:s>=ft?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(s>=ut?10:s>=dt?5:s>=ft?2:1)}function bt(t,e,r){var n=Math.abs(e-t)/Math.max(0,r),i=Math.pow(10,Math.floor(Math.log(n)/Math.LN10)),s=n/i;return s>=ut?i*=10:s>=dt?i*=5:s>=ft&&(i*=2),e<t?-i:i}function gt(t){return Math.ceil(Math.log(function(t,e){let r=0;if(void 0===e)for(let e of t)null!=e&&(e=+e)>=e&&++r;else{let n=-1;for(let i of t)null!=(i=e(i,++n,t))&&(i=+i)>=i&&++r}return r}(t))/Math.LN2)+1}function vt(){var t=lt,e=at,r=gt;function n(n){Array.isArray(n)||(n=Array.from(n));var i,s,a=n.length,o=new Array(a);for(i=0;i<a;++i)o[i]=t(n[i],i,n);var l=e(o),c=l[0],h=l[1],u=r(o,c,h);if(!Array.isArray(u)){const t=h,r=+u;if(e===at&&([c,h]=function(t,e,r){let n;for(;;){const i=mt(t,e,r);if(i===n||0===i||!isFinite(i))return[t,e];i>0?(t=Math.floor(t/i)*i,e=Math.ceil(e/i)*i):i<0&&(t=Math.ceil(t*i)/i,e=Math.floor(e*i)/i),n=i}}(c,h,r)),(u=pt(c,h,r))[u.length-1]>=h)if(t>=h&&e===at){const t=mt(c,h,r);isFinite(t)&&(t>0?h=(Math.floor(h/t)+1)*t:t<0&&(h=(Math.ceil(h*-t)+1)/-t))}else u.pop()}for(var d=u.length;u[0]<=c;)u.shift(),--d;for(;u[d-1]>h;)u.pop(),--d;var f,p=new Array(d+1);for(i=0;i<=d;++i)(f=p[i]=[]).x0=i>0?u[i-1]:c,f.x1=i<d?u[i]:h;for(i=0;i<a;++i)null!=(s=o[i])&&c<=s&&s<=h&&p[st(u,s,0,d)].push(n[i]);return p}return n.value=function(e){return arguments.length?(t="function"==typeof e?e:ht(e),n):t},n.domain=function(t){return arguments.length?(e="function"==typeof t?t:ht([t[0],t[1]]),n):e},n.thresholds=function(t){return arguments.length?(r="function"==typeof t?t:Array.isArray(t)?ht(ct.call(t)):ht(t),n):r},n}function yt(t,e,r){t=+t,e=+e,r=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+r;for(var n=-1,i=0|Math.max(0,Math.ceil((e-t)/r)),s=new Array(i);++n<i;)s[n]=t+n*r;return s}function wt(t){return t}var xt=1e-6;function kt(t){return"translate("+t+",0)"}function $t(t){return"translate(0,"+t+")"}function _t(t){return e=>+t(e)}function St(t,e){return e=Math.max(0,t.bandwidth()-2*e)/2,t.round()&&(e=Math.round(e)),r=>+t(r)+e}function At(){return!this.__axis}function Et(t,e){var r=[],n=null,i=null,s=6,a=6,o=3,l="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,c=1===t||4===t?-1:1,h=4===t||2===t?"x":"y",u=1===t||3===t?kt:$t;function d(d){var f=null==n?e.ticks?e.ticks.apply(e,r):e.domain():n,p=null==i?e.tickFormat?e.tickFormat.apply(e,r):wt:i,m=Math.max(s,0)+o,b=e.range(),g=+b[0]+l,v=+b[b.length-1]+l,y=(e.bandwidth?St:_t)(e.copy(),l),w=d.selection?d.selection():d,x=w.selectAll(".domain").data([null]),k=w.selectAll(".tick").data(f,e).order(),$=k.exit(),_=k.enter().append("g").attr("class","tick"),S=k.select("line"),A=k.select("text");x=x.merge(x.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),k=k.merge(_),S=S.merge(_.append("line").attr("stroke","currentColor").attr(h+"2",c*s)),A=A.merge(_.append("text").attr("fill","currentColor").attr(h,c*m).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),d!==w&&(x=x.transition(d),k=k.transition(d),S=S.transition(d),A=A.transition(d),$=$.transition(d).attr("opacity",xt).attr("transform",(function(t){return isFinite(t=y(t))?u(t+l):this.getAttribute("transform")})),_.attr("opacity",xt).attr("transform",(function(t){var e=this.parentNode.__axis;return u((e&&isFinite(e=e(t))?e:y(t))+l)}))),$.remove(),x.attr("d",4===t||2===t?a?"M"+c*a+","+g+"H"+l+"V"+v+"H"+c*a:"M"+l+","+g+"V"+v:a?"M"+g+","+c*a+"V"+l+"H"+v+"V"+c*a:"M"+g+","+l+"H"+v),k.attr("opacity",1).attr("transform",(function(t){return u(y(t)+l)})),S.attr(h+"2",c*s),A.attr(h,c*m).text(p),w.filter(At).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),w.each((function(){this.__axis=y}))}return d.scale=function(t){return arguments.length?(e=t,d):e},d.ticks=function(){return r=Array.from(arguments),d},d.tickArguments=function(t){return arguments.length?(r=null==t?[]:Array.from(t),d):r.slice()},d.tickValues=function(t){return arguments.length?(n=null==t?null:Array.from(t),d):n&&n.slice()},d.tickFormat=function(t){return arguments.length?(i=t,d):i},d.tickSize=function(t){return arguments.length?(s=a=+t,d):s},d.tickSizeInner=function(t){return arguments.length?(s=+t,d):s},d.tickSizeOuter=function(t){return arguments.length?(a=+t,d):a},d.tickPadding=function(t){return arguments.length?(o=+t,d):o},d.offset=function(t){return arguments.length?(l=+t,d):l},d}function Tt(t){return Et(3,t)}function Mt(t){return Et(4,t)}var Ct={value:()=>{}};function Nt(){for(var t,e=0,r=arguments.length,n={};e<r;++e){if(!(t=arguments[e]+"")||t in n||/[\s.]/.test(t))throw new Error("illegal type: "+t);n[t]=[]}return new Rt(n)}function Rt(t){this._=t}function qt(t,e){return t.trim().split(/^|\s+/).map((function(t){var r="",n=t.indexOf(".");if(n>=0&&(r=t.slice(n+1),t=t.slice(0,n)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:r}}))}function zt(t,e){for(var r,n=0,i=t.length;n<i;++n)if((r=t[n]).name===e)return r.value}function Pt(t,e,r){for(var n=0,i=t.length;n<i;++n)if(t[n].name===e){t[n]=Ct,t=t.slice(0,n).concat(t.slice(n+1));break}return null!=r&&t.push({name:e,value:r}),t}Rt.prototype=Nt.prototype={constructor:Rt,on:function(t,e){var r,n=this._,i=qt(t+"",n),s=-1,a=i.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++s<a;)if(r=(t=i[s]).type)n[r]=Pt(n[r],t.name,e);else if(null==e)for(r in n)n[r]=Pt(n[r],t.name,null);return this}for(;++s<a;)if((r=(t=i[s]).type)&&(r=zt(n[r],t.name)))return r},copy:function(){var t={},e=this._;for(var r in e)t[r]=e[r].slice();return new Rt(t)},call:function(t,e){if((r=arguments.length-2)>0)for(var r,n,i=new Array(r),s=0;s<r;++s)i[s]=arguments[s+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(s=0,r=(n=this._[t]).length;s<r;++s)n[s].value.apply(e,i)},apply:function(t,e,r){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var n=this._[t],i=0,s=n.length;i<s;++i)n[i].value.apply(e,r)}};var Ft="http://www.w3.org/1999/xhtml",Ot={svg:"http://www.w3.org/2000/svg",xhtml:Ft,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Ht(t){var e=t+="",r=e.indexOf(":");return r>=0&&"xmlns"!==(e=t.slice(0,r))&&(t=t.slice(r+1)),Ot.hasOwnProperty(e)?{space:Ot[e],local:t}:t}function Dt(t){return function(){var e=this.ownerDocument,r=this.namespaceURI;return r===Ft&&e.documentElement.namespaceURI===Ft?e.createElement(t):e.createElementNS(r,t)}}function It(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Ut(t){var e=Ht(t);return(e.local?It:Dt)(e)}function Lt(){}function jt(t){return null==t?Lt:function(){return this.querySelector(t)}}function Vt(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}function Bt(){return[]}function Kt(t){return null==t?Bt:function(){return this.querySelectorAll(t)}}function Xt(t){return function(){return this.matches(t)}}function Zt(t){return function(e){return e.matches(t)}}var Yt=Array.prototype.find;function Gt(){return this.firstElementChild}var Wt=Array.prototype.filter;function Qt(){return Array.from(this.children)}function Jt(t){return new Array(t.length)}function te(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function ee(t){return function(){return t}}function re(t,e,r,n,i,s){for(var a,o=0,l=e.length,c=s.length;o<c;++o)(a=e[o])?(a.__data__=s[o],n[o]=a):r[o]=new te(t,s[o]);for(;o<l;++o)(a=e[o])&&(i[o]=a)}function ne(t,e,r,n,i,s,a){var o,l,c,h=new Map,u=e.length,d=s.length,f=new Array(u);for(o=0;o<u;++o)(l=e[o])&&(f[o]=c=a.call(l,l.__data__,o,e)+"",h.has(c)?i[o]=l:h.set(c,l));for(o=0;o<d;++o)c=a.call(t,s[o],o,s)+"",(l=h.get(c))?(n[o]=l,l.__data__=s[o],h.delete(c)):r[o]=new te(t,s[o]);for(o=0;o<u;++o)(l=e[o])&&h.get(f[o])===l&&(i[o]=l)}function ie(t){return t.__data__}function se(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function ae(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function oe(t){return function(){this.removeAttribute(t)}}function le(t){return function(){this.removeAttributeNS(t.space,t.local)}}function ce(t,e){return function(){this.setAttribute(t,e)}}function he(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function ue(t,e){return function(){var r=e.apply(this,arguments);null==r?this.removeAttribute(t):this.setAttribute(t,r)}}function de(t,e){return function(){var r=e.apply(this,arguments);null==r?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,r)}}function fe(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function pe(t){return function(){this.style.removeProperty(t)}}function me(t,e,r){return function(){this.style.setProperty(t,e,r)}}function be(t,e,r){return function(){var n=e.apply(this,arguments);null==n?this.style.removeProperty(t):this.style.setProperty(t,n,r)}}function ge(t,e){return t.style.getPropertyValue(e)||fe(t).getComputedStyle(t,null).getPropertyValue(e)}function ve(t){return function(){delete this[t]}}function ye(t,e){return function(){this[t]=e}}function we(t,e){return function(){var r=e.apply(this,arguments);null==r?delete this[t]:this[t]=r}}function xe(t){return t.trim().split(/^|\s+/)}function ke(t){return t.classList||new $e(t)}function $e(t){this._node=t,this._names=xe(t.getAttribute("class")||"")}function _e(t,e){for(var r=ke(t),n=-1,i=e.length;++n<i;)r.add(e[n])}function Se(t,e){for(var r=ke(t),n=-1,i=e.length;++n<i;)r.remove(e[n])}function Ae(t){return function(){_e(this,t)}}function Ee(t){return function(){Se(this,t)}}function Te(t,e){return function(){(e.apply(this,arguments)?_e:Se)(this,t)}}function Me(){this.textContent=""}function Ce(t){return function(){this.textContent=t}}function Ne(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function Re(){this.innerHTML=""}function qe(t){return function(){this.innerHTML=t}}function ze(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function Pe(){this.nextSibling&&this.parentNode.appendChild(this)}function Fe(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Oe(){return null}function He(){var t=this.parentNode;t&&t.removeChild(this)}function De(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Ie(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Ue(t){return t.trim().split(/^|\s+/).map((function(t){var e="",r=t.indexOf(".");return r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),{type:t,name:e}}))}function Le(t){return function(){var e=this.__on;if(e){for(var r,n=0,i=-1,s=e.length;n<s;++n)r=e[n],t.type&&r.type!==t.type||r.name!==t.name?e[++i]=r:this.removeEventListener(r.type,r.listener,r.options);++i?e.length=i:delete this.__on}}}function je(t,e,r){return function(){var n,i=this.__on,s=function(t){return function(e){t.call(this,e,this.__data__)}}(e);if(i)for(var a=0,o=i.length;a<o;++a)if((n=i[a]).type===t.type&&n.name===t.name)return this.removeEventListener(n.type,n.listener,n.options),this.addEventListener(n.type,n.listener=s,n.options=r),void(n.value=e);this.addEventListener(t.type,s,r),n={type:t.type,name:t.name,value:e,listener:s,options:r},i?i.push(n):this.__on=[n]}}function Ve(t,e,r){var n=fe(t),i=n.CustomEvent;"function"==typeof i?i=new i(e,r):(i=n.document.createEvent("Event"),r?(i.initEvent(e,r.bubbles,r.cancelable),i.detail=r.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function Be(t,e){return function(){return Ve(this,t,e)}}function Ke(t,e){return function(){return Ve(this,t,e.apply(this,arguments))}}te.prototype={constructor:te,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},$e.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var Xe=[null];function Ze(t,e){this._groups=t,this._parents=e}function Ye(){return new Ze([[document.documentElement]],Xe)}function Ge(t){return"string"==typeof t?new Ze([[document.querySelector(t)]],[document.documentElement]):new Ze([[t]],Xe)}function We(t,e){if(t=function(t){let e;for(;e=t.sourceEvent;)t=e;return t}(t),void 0===e&&(e=t.currentTarget),e){var r=e.ownerSVGElement||e;if(r.createSVGPoint){var n=r.createSVGPoint();return n.x=t.clientX,n.y=t.clientY,[(n=n.matrixTransform(e.getScreenCTM().inverse())).x,n.y]}if(e.getBoundingClientRect){var i=e.getBoundingClientRect();return[t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop]}}return[t.pageX,t.pageY]}Ze.prototype=Ye.prototype={constructor:Ze,select:function(t){"function"!=typeof t&&(t=jt(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i<r;++i)for(var s,a,o=e[i],l=o.length,c=n[i]=new Array(l),h=0;h<l;++h)(s=o[h])&&(a=t.call(s,s.__data__,h,o))&&("__data__"in s&&(a.__data__=s.__data__),c[h]=a);return new Ze(n,this._parents)},selectAll:function(t){t="function"==typeof t?function(t){return function(){return Vt(t.apply(this,arguments))}}(t):Kt(t);for(var e=this._groups,r=e.length,n=[],i=[],s=0;s<r;++s)for(var a,o=e[s],l=o.length,c=0;c<l;++c)(a=o[c])&&(n.push(t.call(a,a.__data__,c,o)),i.push(a));return new Ze(n,i)},selectChild:function(t){return this.select(null==t?Gt:function(t){return function(){return Yt.call(this.children,t)}}("function"==typeof t?t:Zt(t)))},selectChildren:function(t){return this.selectAll(null==t?Qt:function(t){return function(){return Wt.call(this.children,t)}}("function"==typeof t?t:Zt(t)))},filter:function(t){"function"!=typeof t&&(t=Xt(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i<r;++i)for(var s,a=e[i],o=a.length,l=n[i]=[],c=0;c<o;++c)(s=a[c])&&t.call(s,s.__data__,c,a)&&l.push(s);return new Ze(n,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,ie);var r=e?ne:re,n=this._parents,i=this._groups;"function"!=typeof t&&(t=ee(t));for(var s=i.length,a=new Array(s),o=new Array(s),l=new Array(s),c=0;c<s;++c){var h=n[c],u=i[c],d=u.length,f=se(t.call(h,h&&h.__data__,c,n)),p=f.length,m=o[c]=new Array(p),b=a[c]=new Array(p),g=l[c]=new Array(d);r(h,u,m,b,g,f,e);for(var v,y,w=0,x=0;w<p;++w)if(v=m[w]){for(w>=x&&(x=w+1);!(y=b[x])&&++x<p;);v._next=y||null}}return(a=new Ze(a,n))._enter=o,a._exit=l,a},enter:function(){return new Ze(this._enter||this._groups.map(Jt),this._parents)},exit:function(){return new Ze(this._exit||this._groups.map(Jt),this._parents)},join:function(t,e,r){var n=this.enter(),i=this,s=this.exit();return"function"==typeof t?(n=t(n))&&(n=n.selection()):n=n.append(t+""),null!=e&&(i=e(i))&&(i=i.selection()),null==r?s.remove():r(s),n&&i?n.merge(i).order():i},merge:function(t){for(var e=t.selection?t.selection():t,r=this._groups,n=e._groups,i=r.length,s=n.length,a=Math.min(i,s),o=new Array(i),l=0;l<a;++l)for(var c,h=r[l],u=n[l],d=h.length,f=o[l]=new Array(d),p=0;p<d;++p)(c=h[p]||u[p])&&(f[p]=c);for(;l<i;++l)o[l]=r[l];return new Ze(o,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,r=t.length;++e<r;)for(var n,i=t[e],s=i.length-1,a=i[s];--s>=0;)(n=i[s])&&(a&&4^n.compareDocumentPosition(a)&&a.parentNode.insertBefore(n,a),a=n);return this},sort:function(t){function e(e,r){return e&&r?t(e.__data__,r.__data__):!e-!r}t||(t=ae);for(var r=this._groups,n=r.length,i=new Array(n),s=0;s<n;++s){for(var a,o=r[s],l=o.length,c=i[s]=new Array(l),h=0;h<l;++h)(a=o[h])&&(c[h]=a);c.sort(e)}return new Ze(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,e=0,r=t.length;e<r;++e)for(var n=t[e],i=0,s=n.length;i<s;++i){var a=n[i];if(a)return a}return null},size:function(){let t=0;for(const e of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var e=this._groups,r=0,n=e.length;r<n;++r)for(var i,s=e[r],a=0,o=s.length;a<o;++a)(i=s[a])&&t.call(i,i.__data__,a,s);return this},attr:function(t,e){var r=Ht(t);if(arguments.length<2){var n=this.node();return r.local?n.getAttributeNS(r.space,r.local):n.getAttribute(r)}return this.each((null==e?r.local?le:oe:"function"==typeof e?r.local?de:ue:r.local?he:ce)(r,e))},style:function(t,e,r){return arguments.length>1?this.each((null==e?pe:"function"==typeof e?be:me)(t,e,null==r?"":r)):ge(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?ve:"function"==typeof e?we:ye)(t,e)):this.node()[t]},classed:function(t,e){var r=xe(t+"");if(arguments.length<2){for(var n=ke(this.node()),i=-1,s=r.length;++i<s;)if(!n.contains(r[i]))return!1;return!0}return this.each(("function"==typeof e?Te:e?Ae:Ee)(r,e))},text:function(t){return arguments.length?this.each(null==t?Me:("function"==typeof t?Ne:Ce)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?Re:("function"==typeof t?ze:qe)(t)):this.node().innerHTML},raise:function(){return this.each(Pe)},lower:function(){return this.each(Fe)},append:function(t){var e="function"==typeof t?t:Ut(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function(t,e){var r="function"==typeof t?t:Ut(t),n=null==e?Oe:"function"==typeof e?e:jt(e);return this.select((function(){return this.insertBefore(r.apply(this,arguments),n.apply(this,arguments)||null)}))},remove:function(){return this.each(He)},clone:function(t){return this.select(t?Ie:De)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,r){var n,i,s=Ue(t+""),a=s.length;if(!(arguments.length<2)){for(o=e?je:Le,n=0;n<a;++n)this.each(o(s[n],e,r));return this}var o=this.node().__on;if(o)for(var l,c=0,h=o.length;c<h;++c)for(n=0,l=o[c];n<a;++n)if((i=s[n]).type===l.type&&i.name===l.name)return l.value},dispatch:function(t,e){return this.each(("function"==typeof e?Ke:Be)(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,r=t.length;e<r;++e)for(var n,i=t[e],s=0,a=i.length;s<a;++s)(n=i[s])&&(yield n)}};const Qe={passive:!1},Je={capture:!0,passive:!1};function tr(t){t.stopImmediatePropagation()}function er(t){t.preventDefault(),t.stopImmediatePropagation()}var rr=t=>()=>t;function nr(t,{sourceEvent:e,subject:r,target:n,identifier:i,active:s,x:a,y:o,dx:l,dy:c,dispatch:h}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:r,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:s,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:o,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:h}})}function ir(t){return!t.ctrlKey&&!t.button}function sr(){return this.parentNode}function ar(t,e){return null==e?{x:t.x,y:t.y}:e}function or(){return navigator.maxTouchPoints||"ontouchstart"in this}function lr(){var t,e,r,n,i=ir,s=sr,a=ar,o=or,l={},c=Nt("start","drag","end"),h=0,u=0;function d(t){t.on("mousedown.drag",f).filter(o).on("touchstart.drag",b).on("touchmove.drag",g,Qe).on("touchend.drag touchcancel.drag",v).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(a,o){if(!n&&i.call(this,a,o)){var l=y(this,s.call(this,a,o),a,o,"mouse");l&&(Ge(a.view).on("mousemove.drag",p,Je).on("mouseup.drag",m,Je),function(t){var e=t.document.documentElement,r=Ge(t).on("dragstart.drag",er,Je);"onselectstart"in e?r.on("selectstart.drag",er,Je):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}(a.view),tr(a),r=!1,t=a.clientX,e=a.clientY,l("start",a))}}function p(n){if(er(n),!r){var i=n.clientX-t,s=n.clientY-e;r=i*i+s*s>u}l.mouse("drag",n)}function m(t){Ge(t.view).on("mousemove.drag mouseup.drag",null),function(t,e){var r=t.document.documentElement,n=Ge(t).on("dragstart.drag",null);e&&(n.on("click.drag",er,Je),setTimeout((function(){n.on("click.drag",null)}),0)),"onselectstart"in r?n.on("selectstart.drag",null):(r.style.MozUserSelect=r.__noselect,delete r.__noselect)}(t.view,r),er(t),l.mouse("end",t)}function b(t,e){if(i.call(this,t,e)){var r,n,a=t.changedTouches,o=s.call(this,t,e),l=a.length;for(r=0;r<l;++r)(n=y(this,o,t,e,a[r].identifier,a[r]))&&(tr(t),n("start",t,a[r]))}}function g(t){var e,r,n=t.changedTouches,i=n.length;for(e=0;e<i;++e)(r=l[n[e].identifier])&&(er(t),r("drag",t,n[e]))}function v(t){var e,r,i=t.changedTouches,s=i.length;for(n&&clearTimeout(n),n=setTimeout((function(){n=null}),500),e=0;e<s;++e)(r=l[i[e].identifier])&&(tr(t),r("end",t,i[e]))}function y(t,e,r,n,i,s){var o,u,f,p=c.copy(),m=We(s||r,e);if(null!=(f=a.call(t,new nr("beforestart",{sourceEvent:r,target:d,identifier:i,active:h,x:m[0],y:m[1],dx:0,dy:0,dispatch:p}),n)))return o=f.x-m[0]||0,u=f.y-m[1]||0,function r(s,a,c){var b,g=m;switch(s){case"start":l[i]=r,b=h++;break;case"end":delete l[i],--h;case"drag":m=We(c||a,e),b=h}p.call(s,t,new nr(s,{sourceEvent:a,subject:f,target:d,identifier:i,active:b,x:m[0]+o,y:m[1]+u,dx:m[0]-g[0],dy:m[1]-g[1],dispatch:p}),n)}}return d.filter=function(t){return arguments.length?(i="function"==typeof t?t:rr(!!t),d):i},d.container=function(t){return arguments.length?(s="function"==typeof t?t:rr(t),d):s},d.subject=function(t){return arguments.length?(a="function"==typeof t?t:rr(t),d):a},d.touchable=function(t){return arguments.length?(o="function"==typeof t?t:rr(!!t),d):o},d.on=function(){var t=c.on.apply(c,arguments);return t===c?d:t},d.clickDistance=function(t){return arguments.length?(u=(t=+t)*t,d):Math.sqrt(u)},d}function cr(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function hr(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}function ur(){}nr.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var dr=.7,fr=1/dr,pr="\\s*([+-]?\\d+)\\s*",mr="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",br="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",gr=/^#([0-9a-f]{3,8})$/,vr=new RegExp("^rgb\\("+[pr,pr,pr]+"\\)$"),yr=new RegExp("^rgb\\("+[br,br,br]+"\\)$"),wr=new RegExp("^rgba\\("+[pr,pr,pr,mr]+"\\)$"),xr=new RegExp("^rgba\\("+[br,br,br,mr]+"\\)$"),kr=new RegExp("^hsl\\("+[mr,br,br]+"\\)$"),$r=new RegExp("^hsla\\("+[mr,br,br,mr]+"\\)$"),_r={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Sr(){return this.rgb().formatHex()}function Ar(){return this.rgb().formatRgb()}function Er(t){var e,r;return t=(t+"").trim().toLowerCase(),(e=gr.exec(t))?(r=e[1].length,e=parseInt(e[1],16),6===r?Tr(e):3===r?new Rr(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===r?Mr(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===r?Mr(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=vr.exec(t))?new Rr(e[1],e[2],e[3],1):(e=yr.exec(t))?new Rr(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=wr.exec(t))?Mr(e[1],e[2],e[3],e[4]):(e=xr.exec(t))?Mr(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=kr.exec(t))?Fr(e[1],e[2]/100,e[3]/100,1):(e=$r.exec(t))?Fr(e[1],e[2]/100,e[3]/100,e[4]):_r.hasOwnProperty(t)?Tr(_r[t]):"transparent"===t?new Rr(NaN,NaN,NaN,0):null}function Tr(t){return new Rr(t>>16&255,t>>8&255,255&t,1)}function Mr(t,e,r,n){return n<=0&&(t=e=r=NaN),new Rr(t,e,r,n)}function Cr(t){return t instanceof ur||(t=Er(t)),t?new Rr((t=t.rgb()).r,t.g,t.b,t.opacity):new Rr}function Nr(t,e,r,n){return 1===arguments.length?Cr(t):new Rr(t,e,r,null==n?1:n)}function Rr(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function qr(){return"#"+Pr(this.r)+Pr(this.g)+Pr(this.b)}function zr(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function Pr(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function Fr(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new Hr(t,e,r,n)}function Or(t){if(t instanceof Hr)return new Hr(t.h,t.s,t.l,t.opacity);if(t instanceof ur||(t=Er(t)),!t)return new Hr;if(t instanceof Hr)return t;var e=(t=t.rgb()).r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),s=Math.max(e,r,n),a=NaN,o=s-i,l=(s+i)/2;return o?(a=e===s?(r-n)/o+6*(r<n):r===s?(n-e)/o+2:(e-r)/o+4,o/=l<.5?s+i:2-s-i,a*=60):o=l>0&&l<1?0:a,new Hr(a,o,l,t.opacity)}function Hr(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function Dr(t,e,r){return 255*(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)}cr(ur,Er,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:Sr,formatHex:Sr,formatHsl:function(){return Or(this).formatHsl()},formatRgb:Ar,toString:Ar}),cr(Rr,Nr,hr(ur,{brighter:function(t){return t=null==t?fr:Math.pow(fr,t),new Rr(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?dr:Math.pow(dr,t),new Rr(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:qr,formatHex:qr,formatRgb:zr,toString:zr})),cr(Hr,(function(t,e,r,n){return 1===arguments.length?Or(t):new Hr(t,e,r,null==n?1:n)}),hr(ur,{brighter:function(t){return t=null==t?fr:Math.pow(fr,t),new Hr(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?dr:Math.pow(dr,t),new Hr(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new Rr(Dr(t>=240?t-240:t+120,i,n),Dr(t,i,n),Dr(t<120?t+240:t-120,i,n),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var Ir=t=>()=>t;function Ur(t){return 1==(t=+t)?Lr:function(e,r){return r-e?function(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}(e,r,t):Ir(isNaN(e)?r:e)}}function Lr(t,e){var r=e-t;return r?function(t,e){return function(r){return t+r*e}}(t,r):Ir(isNaN(t)?e:t)}var jr=function t(e){var r=Ur(e);function n(t,e){var n=r((t=Nr(t)).r,(e=Nr(e)).r),i=r(t.g,e.g),s=r(t.b,e.b),a=Lr(t.opacity,e.opacity);return function(e){return t.r=n(e),t.g=i(e),t.b=s(e),t.opacity=a(e),t+""}}return n.gamma=t,n}(1);function Vr(t,e){e||(e=[]);var r,n=t?Math.min(e.length,t.length):0,i=e.slice();return function(s){for(r=0;r<n;++r)i[r]=t[r]*(1-s)+e[r]*s;return i}}function Br(t,e){var r,n=e?e.length:0,i=t?Math.min(n,t.length):0,s=new Array(i),a=new Array(n);for(r=0;r<i;++r)s[r]=Qr(t[r],e[r]);for(;r<n;++r)a[r]=e[r];return function(t){for(r=0;r<i;++r)a[r]=s[r](t);return a}}function Kr(t,e){var r=new Date;return t=+t,e=+e,function(n){return r.setTime(t*(1-n)+e*n),r}}function Xr(t,e){return t=+t,e=+e,function(r){return t*(1-r)+e*r}}function Zr(t,e){var r,n={},i={};for(r in null!==t&&"object"==typeof t||(t={}),null!==e&&"object"==typeof e||(e={}),e)r in t?n[r]=Qr(t[r],e[r]):i[r]=e[r];return function(t){for(r in n)i[r]=n[r](t);return i}}var Yr=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Gr=new RegExp(Yr.source,"g");function Wr(t,e){var r,n,i,s=Yr.lastIndex=Gr.lastIndex=0,a=-1,o=[],l=[];for(t+="",e+="";(r=Yr.exec(t))&&(n=Gr.exec(e));)(i=n.index)>s&&(i=e.slice(s,i),o[a]?o[a]+=i:o[++a]=i),(r=r[0])===(n=n[0])?o[a]?o[a]+=n:o[++a]=n:(o[++a]=null,l.push({i:a,x:Xr(r,n)})),s=Gr.lastIndex;return s<e.length&&(i=e.slice(s),o[a]?o[a]+=i:o[++a]=i),o.length<2?l[0]?function(t){return function(e){return t(e)+""}}(l[0].x):function(t){return function(){return t}}(e):(e=l.length,function(t){for(var r,n=0;n<e;++n)o[(r=l[n]).i]=r.x(t);return o.join("")})}function Qr(t,e){var r,n=typeof e;return null==e||"boolean"===n?Ir(e):("number"===n?Xr:"string"===n?(r=Er(e))?(e=r,jr):Wr:e instanceof Er?jr:e instanceof Date?Kr:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}(e)?Vr:Array.isArray(e)?Br:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?Zr:Xr)(t,e)}function Jr(t,e){return t=+t,e=+e,function(r){return Math.round(t*(1-r)+e*r)}}var tn,en=180/Math.PI,rn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function nn(t,e,r,n,i,s){var a,o,l;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(l=t*r+e*n)&&(r-=t*l,n-=e*l),(o=Math.sqrt(r*r+n*n))&&(r/=o,n/=o,l/=o),t*n<e*r&&(t=-t,e=-e,l=-l,a=-a),{translateX:i,translateY:s,rotate:Math.atan2(e,t)*en,skewX:Math.atan(l)*en,scaleX:a,scaleY:o}}function sn(t,e,r,n){function i(t){return t.length?t.pop()+" ":""}return function(s,a){var o=[],l=[];return s=t(s),a=t(a),function(t,n,i,s,a,o){if(t!==i||n!==s){var l=a.push("translate(",null,e,null,r);o.push({i:l-4,x:Xr(t,i)},{i:l-2,x:Xr(n,s)})}else(i||s)&&a.push("translate("+i+e+s+r)}(s.translateX,s.translateY,a.translateX,a.translateY,o,l),function(t,e,r,s){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),s.push({i:r.push(i(r)+"rotate(",null,n)-2,x:Xr(t,e)})):e&&r.push(i(r)+"rotate("+e+n)}(s.rotate,a.rotate,o,l),function(t,e,r,s){t!==e?s.push({i:r.push(i(r)+"skewX(",null,n)-2,x:Xr(t,e)}):e&&r.push(i(r)+"skewX("+e+n)}(s.skewX,a.skewX,o,l),function(t,e,r,n,s,a){if(t!==r||e!==n){var o=s.push(i(s)+"scale(",null,",",null,")");a.push({i:o-4,x:Xr(t,r)},{i:o-2,x:Xr(e,n)})}else 1===r&&1===n||s.push(i(s)+"scale("+r+","+n+")")}(s.scaleX,s.scaleY,a.scaleX,a.scaleY,o,l),s=a=null,function(t){for(var e,r=-1,n=l.length;++r<n;)o[(e=l[r]).i]=e.x(t);return o.join("")}}}var an,on,ln=sn((function(t){const e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?rn:nn(e.a,e.b,e.c,e.d,e.e,e.f)}),"px, ","px)","deg)"),cn=sn((function(t){return null==t?rn:(tn||(tn=document.createElementNS("http://www.w3.org/2000/svg","g")),tn.setAttribute("transform",t),(t=tn.transform.baseVal.consolidate())?nn((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):rn)}),", ",")",")"),hn=0,un=0,dn=0,fn=0,pn=0,mn=0,bn="object"==typeof performance&&performance.now?performance:Date,gn="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function vn(){return pn||(gn(yn),pn=bn.now()+mn)}function yn(){pn=0}function wn(){this._call=this._time=this._next=null}function xn(t,e,r){var n=new wn;return n.restart(t,e,r),n}function kn(){pn=(fn=bn.now())+mn,hn=un=0;try{!function(){vn(),++hn;for(var t,e=an;e;)(t=pn-e._time)>=0&&e._call.call(void 0,t),e=e._next;--hn}()}finally{hn=0,function(){var t,e,r=an,n=1/0;for(;r;)r._call?(n>r._time&&(n=r._time),t=r,r=r._next):(e=r._next,r._next=null,r=t?t._next=e:an=e);on=t,_n(n)}(),pn=0}}function $n(){var t=bn.now(),e=t-fn;e>1e3&&(mn-=e,fn=t)}function _n(t){hn||(un&&(un=clearTimeout(un)),t-pn>24?(t<1/0&&(un=setTimeout(kn,t-bn.now()-mn)),dn&&(dn=clearInterval(dn))):(dn||(fn=bn.now(),dn=setInterval($n,1e3)),hn=1,gn(kn)))}function Sn(t,e,r){var n=new wn;return e=null==e?0:+e,n.restart((r=>{n.stop(),t(r+e)}),e,r),n}wn.prototype=xn.prototype={constructor:wn,restart:function(t,e,r){if("function"!=typeof t)throw new TypeError("callback is not a function");r=(null==r?vn():+r)+(null==e?0:+e),this._next||on===this||(on?on._next=this:an=this,on=this),this._call=t,this._time=r,_n()},stop:function(){this._call&&(this._call=null,this._time=1/0,_n())}};var An=Nt("start","end","cancel","interrupt"),En=[];function Tn(t,e,r,n,i,s){var a=t.__transition;if(a){if(r in a)return}else t.__transition={};!function(t,e,r){var n,i=t.__transition;function s(t){r.state=1,r.timer.restart(a,r.delay,r.time),r.delay<=t&&a(t-r.delay)}function a(s){var c,h,u,d;if(1!==r.state)return l();for(c in i)if((d=i[c]).name===r.name){if(3===d.state)return Sn(a);4===d.state?(d.state=6,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete i[c]):+c<e&&(d.state=6,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete i[c])}if(Sn((function(){3===r.state&&(r.state=4,r.timer.restart(o,r.delay,r.time),o(s))})),r.state=2,r.on.call("start",t,t.__data__,r.index,r.group),2===r.state){for(r.state=3,n=new Array(u=r.tween.length),c=0,h=-1;c<u;++c)(d=r.tween[c].value.call(t,t.__data__,r.index,r.group))&&(n[++h]=d);n.length=h+1}}function o(e){for(var i=e<r.duration?r.ease.call(null,e/r.duration):(r.timer.restart(l),r.state=5,1),s=-1,a=n.length;++s<a;)n[s].call(t,i);5===r.state&&(r.on.call("end",t,t.__data__,r.index,r.group),l())}function l(){for(var n in r.state=6,r.timer.stop(),delete i[e],i)return;delete t.__transition}i[e]=r,r.timer=xn(s,0,r.time)}(t,r,{name:e,index:n,group:i,on:An,tween:En,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:0})}function Mn(t,e){var r=Nn(t,e);if(r.state>0)throw new Error("too late; already scheduled");return r}function Cn(t,e){var r=Nn(t,e);if(r.state>3)throw new Error("too late; already running");return r}function Nn(t,e){var r=t.__transition;if(!r||!(r=r[e]))throw new Error("transition not found");return r}function Rn(t,e){var r,n;return function(){var i=Cn(this,t),s=i.tween;if(s!==r)for(var a=0,o=(n=r=s).length;a<o;++a)if(n[a].name===e){(n=n.slice()).splice(a,1);break}i.tween=n}}function qn(t,e,r){var n,i;if("function"!=typeof r)throw new Error;return function(){var s=Cn(this,t),a=s.tween;if(a!==n){i=(n=a).slice();for(var o={name:e,value:r},l=0,c=i.length;l<c;++l)if(i[l].name===e){i[l]=o;break}l===c&&i.push(o)}s.tween=i}}function zn(t,e,r){var n=t._id;return t.each((function(){var t=Cn(this,n);(t.value||(t.value={}))[e]=r.apply(this,arguments)})),function(t){return Nn(t,n).value[e]}}function Pn(t,e){var r;return("number"==typeof e?Xr:e instanceof Er?jr:(r=Er(e))?(e=r,jr):Wr)(t,e)}function Fn(t){return function(){this.removeAttribute(t)}}function On(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Hn(t,e,r){var n,i,s=r+"";return function(){var a=this.getAttribute(t);return a===s?null:a===n?i:i=e(n=a,r)}}function Dn(t,e,r){var n,i,s=r+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===s?null:a===n?i:i=e(n=a,r)}}function In(t,e,r){var n,i,s;return function(){var a,o,l=r(this);if(null!=l)return(a=this.getAttribute(t))===(o=l+"")?null:a===n&&o===i?s:(i=o,s=e(n=a,l));this.removeAttribute(t)}}function Un(t,e,r){var n,i,s;return function(){var a,o,l=r(this);if(null!=l)return(a=this.getAttributeNS(t.space,t.local))===(o=l+"")?null:a===n&&o===i?s:(i=o,s=e(n=a,l));this.removeAttributeNS(t.space,t.local)}}function Ln(t,e){return function(r){this.setAttribute(t,e.call(this,r))}}function jn(t,e){return function(r){this.setAttributeNS(t.space,t.local,e.call(this,r))}}function Vn(t,e){var r,n;function i(){var i=e.apply(this,arguments);return i!==n&&(r=(n=i)&&jn(t,i)),r}return i._value=e,i}function Bn(t,e){var r,n;function i(){var i=e.apply(this,arguments);return i!==n&&(r=(n=i)&&Ln(t,i)),r}return i._value=e,i}function Kn(t,e){return function(){Mn(this,t).delay=+e.apply(this,arguments)}}function Xn(t,e){return e=+e,function(){Mn(this,t).delay=e}}function Zn(t,e){return function(){Cn(this,t).duration=+e.apply(this,arguments)}}function Yn(t,e){return e=+e,function(){Cn(this,t).duration=e}}function Gn(t,e){if("function"!=typeof e)throw new Error;return function(){Cn(this,t).ease=e}}function Wn(t,e,r){var n,i,s=function(t){return(t+"").trim().split(/^|\s+/).every((function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t}))}(e)?Mn:Cn;return function(){var a=s(this,t),o=a.on;o!==n&&(i=(n=o).copy()).on(e,r),a.on=i}}var Qn=Ye.prototype.constructor;function Jn(t){return function(){this.style.removeProperty(t)}}function ti(t,e,r){return function(n){this.style.setProperty(t,e.call(this,n),r)}}function ei(t,e,r){var n,i;function s(){var s=e.apply(this,arguments);return s!==i&&(n=(i=s)&&ti(t,s,r)),n}return s._value=e,s}function ri(t){return function(e){this.textContent=t.call(this,e)}}function ni(t){var e,r;function n(){var n=t.apply(this,arguments);return n!==r&&(e=(r=n)&&ri(n)),e}return n._value=t,n}var ii=0;function si(t,e,r,n){this._groups=t,this._parents=e,this._name=r,this._id=n}function ai(){return++ii}var oi=Ye.prototype;si.prototype={constructor:si,select:function(t){var e=this._name,r=this._id;"function"!=typeof t&&(t=jt(t));for(var n=this._groups,i=n.length,s=new Array(i),a=0;a<i;++a)for(var o,l,c=n[a],h=c.length,u=s[a]=new Array(h),d=0;d<h;++d)(o=c[d])&&(l=t.call(o,o.__data__,d,c))&&("__data__"in o&&(l.__data__=o.__data__),u[d]=l,Tn(u[d],e,r,d,u,Nn(o,r)));return new si(s,this._parents,e,r)},selectAll:function(t){var e=this._name,r=this._id;"function"!=typeof t&&(t=Kt(t));for(var n=this._groups,i=n.length,s=[],a=[],o=0;o<i;++o)for(var l,c=n[o],h=c.length,u=0;u<h;++u)if(l=c[u]){for(var d,f=t.call(l,l.__data__,u,c),p=Nn(l,r),m=0,b=f.length;m<b;++m)(d=f[m])&&Tn(d,e,r,m,f,p);s.push(f),a.push(l)}return new si(s,a,e,r)},selectChild:oi.selectChild,selectChildren:oi.selectChildren,filter:function(t){"function"!=typeof t&&(t=Xt(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i<r;++i)for(var s,a=e[i],o=a.length,l=n[i]=[],c=0;c<o;++c)(s=a[c])&&t.call(s,s.__data__,c,a)&&l.push(s);return new si(n,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,r=t._groups,n=e.length,i=r.length,s=Math.min(n,i),a=new Array(n),o=0;o<s;++o)for(var l,c=e[o],h=r[o],u=c.length,d=a[o]=new Array(u),f=0;f<u;++f)(l=c[f]||h[f])&&(d[f]=l);for(;o<n;++o)a[o]=e[o];return new si(a,this._parents,this._name,this._id)},selection:function(){return new Qn(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,r=ai(),n=this._groups,i=n.length,s=0;s<i;++s)for(var a,o=n[s],l=o.length,c=0;c<l;++c)if(a=o[c]){var h=Nn(a,e);Tn(a,t,r,c,o,{time:h.time+h.delay+h.duration,delay:0,duration:h.duration,ease:h.ease})}return new si(n,this._parents,t,r)},call:oi.call,nodes:oi.nodes,node:oi.node,size:oi.size,empty:oi.empty,each:oi.each,on:function(t,e){var r=this._id;return arguments.length<2?Nn(this.node(),r).on.on(t):this.each(Wn(r,t,e))},attr:function(t,e){var r=Ht(t),n="transform"===r?cn:Pn;return this.attrTween(t,"function"==typeof e?(r.local?Un:In)(r,n,zn(this,"attr."+t,e)):null==e?(r.local?On:Fn)(r):(r.local?Dn:Hn)(r,n,e))},attrTween:function(t,e){var r="attr."+t;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==e)return this.tween(r,null);if("function"!=typeof e)throw new Error;var n=Ht(t);return this.tween(r,(n.local?Vn:Bn)(n,e))},style:function(t,e,r){var n="transform"==(t+="")?ln:Pn;return null==e?this.styleTween(t,function(t,e){var r,n,i;return function(){var s=ge(this,t),a=(this.style.removeProperty(t),ge(this,t));return s===a?null:s===r&&a===n?i:i=e(r=s,n=a)}}(t,n)).on("end.style."+t,Jn(t)):"function"==typeof e?this.styleTween(t,function(t,e,r){var n,i,s;return function(){var a=ge(this,t),o=r(this),l=o+"";return null==o&&(this.style.removeProperty(t),l=o=ge(this,t)),a===l?null:a===n&&l===i?s:(i=l,s=e(n=a,o))}}(t,n,zn(this,"style."+t,e))).each(function(t,e){var r,n,i,s,a="style."+e,o="end."+a;return function(){var l=Cn(this,t),c=l.on,h=null==l.value[a]?s||(s=Jn(e)):void 0;c===r&&i===h||(n=(r=c).copy()).on(o,i=h),l.on=n}}(this._id,t)):this.styleTween(t,function(t,e,r){var n,i,s=r+"";return function(){var a=ge(this,t);return a===s?null:a===n?i:i=e(n=a,r)}}(t,n,e),r).on("end.style."+t,null)},styleTween:function(t,e,r){var n="style."+(t+="");if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;return this.tween(n,ei(t,e,null==r?"":r))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var e=t(this);this.textContent=null==e?"":e}}(zn(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},textTween:function(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;return this.tween(e,ni(t))},remove:function(){return this.on("end.remove",function(t){return function(){var e=this.parentNode;for(var r in this.__transition)if(+r!==t)return;e&&e.removeChild(this)}}(this._id))},tween:function(t,e){var r=this._id;if(t+="",arguments.length<2){for(var n,i=Nn(this.node(),r).tween,s=0,a=i.length;s<a;++s)if((n=i[s]).name===t)return n.value;return null}return this.each((null==e?Rn:qn)(r,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Kn:Xn)(e,t)):Nn(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Zn:Yn)(e,t)):Nn(this.node(),e).duration},ease:function(t){var e=this._id;return arguments.length?this.each(Gn(e,t)):Nn(this.node(),e).ease},easeVarying:function(t){if("function"!=typeof t)throw new Error;return this.each(function(t,e){return function(){var r=e.apply(this,arguments);if("function"!=typeof r)throw new Error;Cn(this,t).ease=r}}(this._id,t))},end:function(){var t,e,r=this,n=r._id,i=r.size();return new Promise((function(s,a){var o={value:a},l={value:function(){0==--i&&s()}};r.each((function(){var r=Cn(this,n),i=r.on;i!==t&&((e=(t=i).copy())._.cancel.push(o),e._.interrupt.push(o),e._.end.push(l)),r.on=e})),0===i&&s()}))},[Symbol.iterator]:oi[Symbol.iterator]};const li=t=>+t;function ci(t){return t*t*t}function hi(t){return--t*t*t+1}var ui={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};function di(t,e){for(var r;!(r=t.__transition)||!(r=r[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return r}Ye.prototype.interrupt=function(t){return this.each((function(){!function(t,e){var r,n,i,s=t.__transition,a=!0;if(s){for(i in e=null==e?null:e+"",s)(r=s[i]).name===e?(n=r.state>2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(n?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete s[i]):a=!1;a&&delete t.__transition}}(this,t)}))},Ye.prototype.transition=function(t){var e,r;t instanceof si?(e=t._id,t=t._name):(e=ai(),(r=ui).time=vn(),t=null==t?null:t+"");for(var n=this._groups,i=n.length,s=0;s<i;++s)for(var a,o=n[s],l=o.length,c=0;c<l;++c)(a=o[c])&&Tn(a,t,e,c,o,r||di(a,e));return new si(n,this._parents,t,e)};const fi=Math.PI,pi=2*fi,mi=1e-6,bi=pi-mi;function gi(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function vi(){return new gi}gi.prototype=vi.prototype={constructor:gi,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,r,n){this._+="Q"+ +t+","+ +e+","+(this._x1=+r)+","+(this._y1=+n)},bezierCurveTo:function(t,e,r,n,i,s){this._+="C"+ +t+","+ +e+","+ +r+","+ +n+","+(this._x1=+i)+","+(this._y1=+s)},arcTo:function(t,e,r,n,i){t=+t,e=+e,r=+r,n=+n,i=+i;var s=this._x1,a=this._y1,o=r-t,l=n-e,c=s-t,h=a-e,u=c*c+h*h;if(i<0)throw new Error("negative radius: "+i);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(u>mi)if(Math.abs(h*o-l*c)>mi&&i){var d=r-s,f=n-a,p=o*o+l*l,m=d*d+f*f,b=Math.sqrt(p),g=Math.sqrt(u),v=i*Math.tan((fi-Math.acos((p+u-m)/(2*b*g)))/2),y=v/g,w=v/b;Math.abs(y-1)>mi&&(this._+="L"+(t+y*c)+","+(e+y*h)),this._+="A"+i+","+i+",0,0,"+ +(h*d>c*f)+","+(this._x1=t+w*o)+","+(this._y1=e+w*l)}else this._+="L"+(this._x1=t)+","+(this._y1=e);else;},arc:function(t,e,r,n,i,s){t=+t,e=+e,s=!!s;var a=(r=+r)*Math.cos(n),o=r*Math.sin(n),l=t+a,c=e+o,h=1^s,u=s?n-i:i-n;if(r<0)throw new Error("negative radius: "+r);null===this._x1?this._+="M"+l+","+c:(Math.abs(this._x1-l)>mi||Math.abs(this._y1-c)>mi)&&(this._+="L"+l+","+c),r&&(u<0&&(u=u%pi+pi),u>bi?this._+="A"+r+","+r+",0,1,"+h+","+(t-a)+","+(e-o)+"A"+r+","+r+",0,1,"+h+","+(this._x1=l)+","+(this._y1=c):u>mi&&(this._+="A"+r+","+r+",0,"+ +(u>=fi)+","+h+","+(this._x1=t+r*Math.cos(i))+","+(this._y1=e+r*Math.sin(i))))},rect:function(t,e,r,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +r+"v"+ +n+"h"+-r+"Z"},toString:function(){return this._}};var yi=Array.prototype.slice;function wi(t,e){return t-e}var xi=t=>()=>t;function ki(t,e){for(var r,n=-1,i=e.length;++n<i;)if(r=$i(t,e[n]))return r;return 0}function $i(t,e){for(var r=e[0],n=e[1],i=-1,s=0,a=t.length,o=a-1;s<a;o=s++){var l=t[s],c=l[0],h=l[1],u=t[o],d=u[0],f=u[1];if(_i(l,u,e))return 0;h>n!=f>n&&r<(d-c)*(n-h)/(f-h)+c&&(i=-i)}return i}function _i(t,e,r){var n;return function(t,e,r){return(e[0]-t[0])*(r[1]-t[1])==(r[0]-t[0])*(e[1]-t[1])}(t,e,r)&&function(t,e,r){return t<=e&&e<=r||r<=e&&e<=t}(t[n=+(t[0]===e[0])],r[n],e[n])}function Si(){}var Ai=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function Ei(){var t=1,e=1,r=gt,n=o;function i(t){var e=r(t);if(Array.isArray(e))e=e.slice().sort(wi);else{const r=at(t),n=bt(r[0],r[1],e);e=pt(Math.floor(r[0]/n)*n,Math.floor(r[1]/n-1)*n,e)}return e.map((e=>s(t,e)))}function s(r,i){var s=[],o=[];return function(r,n,i){var s,o,l,c,h,u,d=new Array,f=new Array;s=o=-1,c=r[0]>=n,Ai[c<<1].forEach(p);for(;++s<t-1;)l=c,c=r[s+1]>=n,Ai[l|c<<1].forEach(p);Ai[c<<0].forEach(p);for(;++o<e-1;){for(s=-1,c=r[o*t+t]>=n,h=r[o*t]>=n,Ai[c<<1|h<<2].forEach(p);++s<t-1;)l=c,c=r[o*t+t+s+1]>=n,u=h,h=r[o*t+s+1]>=n,Ai[l|c<<1|h<<2|u<<3].forEach(p);Ai[c|h<<3].forEach(p)}s=-1,h=r[o*t]>=n,Ai[h<<2].forEach(p);for(;++s<t-1;)u=h,h=r[o*t+s+1]>=n,Ai[h<<2|u<<3].forEach(p);function p(t){var e,r,n=[t[0][0]+s,t[0][1]+o],l=[t[1][0]+s,t[1][1]+o],c=a(n),h=a(l);(e=f[c])?(r=d[h])?(delete f[e.end],delete d[r.start],e===r?(e.ring.push(l),i(e.ring)):d[e.start]=f[r.end]={start:e.start,end:r.end,ring:e.ring.concat(r.ring)}):(delete f[e.end],e.ring.push(l),f[e.end=h]=e):(e=d[h])?(r=f[c])?(delete d[e.start],delete f[r.end],e===r?(e.ring.push(l),i(e.ring)):d[r.start]=f[e.end]={start:r.start,end:e.end,ring:r.ring.concat(e.ring)}):(delete d[e.start],e.ring.unshift(n),d[e.start=c]=e):d[c]=f[h]={start:c,end:h,ring:[n,l]}}Ai[h<<3].forEach(p)}(r,i,(function(t){n(t,r,i),function(t){for(var e=0,r=t.length,n=t[r-1][1]*t[0][0]-t[r-1][0]*t[0][1];++e<r;)n+=t[e-1][1]*t[e][0]-t[e-1][0]*t[e][1];return n}(t)>0?s.push([t]):o.push(t)})),o.forEach((function(t){for(var e,r=0,n=s.length;r<n;++r)if(-1!==ki((e=s[r])[0],t))return void e.push(t)})),{type:"MultiPolygon",value:i,coordinates:s}}function a(e){return 2*e[0]+e[1]*(t+1)*4}function o(r,n,i){r.forEach((function(r){var s,a=r[0],o=r[1],l=0|a,c=0|o,h=n[c*t+l];a>0&&a<t&&l===a&&(s=n[c*t+l-1],r[0]=a+(i-s)/(h-s)-.5),o>0&&o<e&&c===o&&(s=n[(c-1)*t+l],r[1]=o+(i-s)/(h-s)-.5)}))}return i.contour=s,i.size=function(r){if(!arguments.length)return[t,e];var n=Math.floor(r[0]),s=Math.floor(r[1]);if(!(n>=0&&s>=0))throw new Error("invalid size");return t=n,e=s,i},i.thresholds=function(t){return arguments.length?(r="function"==typeof t?t:Array.isArray(t)?xi(yi.call(t)):xi(t),i):r},i.smooth=function(t){return arguments.length?(n=t?o:Si,i):n===o},i}function Ti(t,e){if((r=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var r,n=t.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+t.slice(r+1)]}function Mi(t){return(t=Ti(Math.abs(t)))?t[1]:NaN}var Ci,Ni=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Ri(t){if(!(e=Ni.exec(t)))throw new Error("invalid format: "+t);var e;return new qi({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function qi(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function zi(t,e){var r=Ti(t,e);if(!r)return t+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}Ri.prototype=qi.prototype,qi.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var Pi={"%":(t,e)=>(100*t).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>zi(100*t,e),r:zi,s:function(t,e){var r=Ti(t,e);if(!r)return t+"";var n=r[0],i=r[1],s=i-(Ci=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,a=n.length;return s===a?n:s>a?n+new Array(s-a+1).join("0"):s>0?n.slice(0,s)+"."+n.slice(s):"0."+new Array(1-s).join("0")+Ti(t,Math.max(0,e+s-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Fi(t){return t}var Oi,Hi,Di,Ii=Array.prototype.map,Ui=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Li(t){var e,r,n=void 0===t.grouping||void 0===t.thousands?Fi:(e=Ii.call(t.grouping,Number),r=t.thousands+"",function(t,n){for(var i=t.length,s=[],a=0,o=e[0],l=0;i>0&&o>0&&(l+o+1>n&&(o=Math.max(1,n-l)),s.push(t.substring(i-=o,i+o)),!((l+=o+1)>n));)o=e[a=(a+1)%e.length];return s.reverse().join(r)}),i=void 0===t.currency?"":t.currency[0]+"",s=void 0===t.currency?"":t.currency[1]+"",a=void 0===t.decimal?".":t.decimal+"",o=void 0===t.numerals?Fi:function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}(Ii.call(t.numerals,String)),l=void 0===t.percent?"%":t.percent+"",c=void 0===t.minus?"−":t.minus+"",h=void 0===t.nan?"NaN":t.nan+"";function u(t){var e=(t=Ri(t)).fill,r=t.align,u=t.sign,d=t.symbol,f=t.zero,p=t.width,m=t.comma,b=t.precision,g=t.trim,v=t.type;"n"===v?(m=!0,v="g"):Pi[v]||(void 0===b&&(b=12),g=!0,v="g"),(f||"0"===e&&"="===r)&&(f=!0,e="0",r="=");var y="$"===d?i:"#"===d&&/[boxX]/.test(v)?"0"+v.toLowerCase():"",w="$"===d?s:/[%p]/.test(v)?l:"",x=Pi[v],k=/[defgprs%]/.test(v);function $(t){var i,s,l,d=y,$=w;if("c"===v)$=x(t)+$,t="";else{var _=(t=+t)<0||1/t<0;if(t=isNaN(t)?h:x(Math.abs(t),b),g&&(t=function(t){t:for(var e,r=t.length,n=1,i=-1;n<r;++n)switch(t[n]){case".":i=e=n;break;case"0":0===i&&(i=n),e=n;break;default:if(!+t[n])break t;i>0&&(i=0)}return i>0?t.slice(0,i)+t.slice(e+1):t}(t)),_&&0==+t&&"+"!==u&&(_=!1),d=(_?"("===u?u:c:"-"===u||"("===u?"":u)+d,$=("s"===v?Ui[8+Ci/3]:"")+$+(_&&"("===u?")":""),k)for(i=-1,s=t.length;++i<s;)if(48>(l=t.charCodeAt(i))||l>57){$=(46===l?a+t.slice(i+1):t.slice(i))+$,t=t.slice(0,i);break}}m&&!f&&(t=n(t,1/0));var S=d.length+t.length+$.length,A=S<p?new Array(p-S+1).join(e):"";switch(m&&f&&(t=n(A+t,A.length?p-$.length:1/0),A=""),r){case"<":t=d+t+$+A;break;case"=":t=d+A+t+$;break;case"^":t=A.slice(0,S=A.length>>1)+d+t+$+A.slice(S);break;default:t=A+d+t+$}return o(t)}return b=void 0===b?6:/[gprs]/.test(v)?Math.max(1,Math.min(21,b)):Math.max(0,Math.min(20,b)),$.toString=function(){return t+""},$}return{format:u,formatPrefix:function(t,e){var r=u(((t=Ri(t)).type="f",t)),n=3*Math.max(-8,Math.min(8,Math.floor(Mi(e)/3))),i=Math.pow(10,-n),s=Ui[8+n/3];return function(t){return r(i*t)+s}}}}Oi=Li({thousands:",",grouping:[3],currency:["$",""]}),Hi=Oi.format,Di=Oi.formatPrefix;var ji=1e-6,Vi=Math.PI,Bi=2*Vi,Ki=180/Vi,Xi=Vi/180,Zi=Math.abs,Yi=Math.cos,Gi=Math.sin,Wi=Math.sqrt;function Qi(){}function Ji(t,e){t&&es.hasOwnProperty(t.type)&&es[t.type](t,e)}var ts={Feature:function(t,e){Ji(t.geometry,e)},FeatureCollection:function(t,e){for(var r=t.features,n=-1,i=r.length;++n<i;)Ji(r[n].geometry,e)}},es={Sphere:function(t,e){e.sphere()},Point:function(t,e){t=t.coordinates,e.point(t[0],t[1],t[2])},MultiPoint:function(t,e){for(var r=t.coordinates,n=-1,i=r.length;++n<i;)t=r[n],e.point(t[0],t[1],t[2])},LineString:function(t,e){rs(t.coordinates,e,0)},MultiLineString:function(t,e){for(var r=t.coordinates,n=-1,i=r.length;++n<i;)rs(r[n],e,0)},Polygon:function(t,e){ns(t.coordinates,e)},MultiPolygon:function(t,e){for(var r=t.coordinates,n=-1,i=r.length;++n<i;)ns(r[n],e)},GeometryCollection:function(t,e){for(var r=t.geometries,n=-1,i=r.length;++n<i;)Ji(r[n],e)}};function rs(t,e,r){var n,i=-1,s=t.length-r;for(e.lineStart();++i<s;)n=t[i],e.point(n[0],n[1],n[2]);e.lineEnd()}function ns(t,e){var r=-1,n=t.length;for(e.polygonStart();++r<n;)rs(t[r],e,1);e.polygonEnd()}function is(t,e){t&&ts.hasOwnProperty(t.type)?ts[t.type](t,e):Ji(t,e)}function ss(t,e,r,n){this.x=t,this.z=e,this.o=r,this.e=n,this.v=!1,this.n=this.p=null}function as(t,e,r,n,i){var s,a,o=[],l=[];if(t.forEach((function(t){if(!((e=t.length-1)<=0)){var e,r,n=t[0],a=t[e];if(function(t,e){return Zi(t[0]-e[0])<ji&&Zi(t[1]-e[1])<ji}(n,a)){if(!n[2]&&!a[2]){for(i.lineStart(),s=0;s<e;++s)i.point((n=t[s])[0],n[1]);return void i.lineEnd()}a[0]+=2e-6}o.push(r=new ss(n,t,null,!0)),l.push(r.o=new ss(n,null,r,!1)),o.push(r=new ss(a,t,null,!1)),l.push(r.o=new ss(a,null,r,!0))}})),o.length){for(l.sort(e),os(o),os(l),s=0,a=l.length;s<a;++s)l[s].e=r=!r;for(var c,h,u=o[0];;){for(var d=u,f=!0;d.v;)if((d=d.n)===u)return;c=d.z,i.lineStart();do{if(d.v=d.o.v=!0,d.e){if(f)for(s=0,a=c.length;s<a;++s)i.point((h=c[s])[0],h[1]);else n(d.x,d.n.x,1,i);d=d.n}else{if(f)for(c=d.p.z,s=c.length-1;s>=0;--s)i.point((h=c[s])[0],h[1]);else n(d.x,d.p.x,-1,i);d=d.p}c=(d=d.o).z,f=!f}while(!d.v);i.lineEnd()}}}function os(t){if(e=t.length){for(var e,r,n=0,i=t[0];++n<e;)i.n=r=t[n],r.p=i,i=r;i.n=r=t[0],r.p=i}}var ls=1e9,cs=-ls;function hs(t,e,r,n){function i(i,s){return t<=i&&i<=r&&e<=s&&s<=n}function s(i,s,o,c){var h=0,u=0;if(null==i||(h=a(i,o))!==(u=a(s,o))||l(i,s)<0^o>0)do{c.point(0===h||3===h?t:r,h>1?n:e)}while((h=(h+o+4)%4)!==u);else c.point(s[0],s[1])}function a(n,i){return Zi(n[0]-t)<ji?i>0?0:3:Zi(n[0]-r)<ji?i>0?2:1:Zi(n[1]-e)<ji?i>0?1:0:i>0?3:2}function o(t,e){return l(t.x,e.x)}function l(t,e){var r=a(t,1),n=a(e,1);return r!==n?r-n:0===r?e[1]-t[1]:1===r?t[0]-e[0]:2===r?t[1]-e[1]:e[0]-t[0]}return function(a){var l,c,h,u,d,f,p,m,b,g,v,y=a,w=function(){var t,e=[];return{point:function(e,r,n){t.push([e,r,n])},lineStart:function(){e.push(t=[])},lineEnd:Qi,rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))},result:function(){var r=e;return e=[],t=null,r}}}(),x={point:k,lineStart:function(){x.point=$,c&&c.push(h=[]);g=!0,b=!1,p=m=NaN},lineEnd:function(){l&&($(u,d),f&&b&&w.rejoin(),l.push(w.result()));x.point=k,b&&y.lineEnd()},polygonStart:function(){y=w,l=[],c=[],v=!0},polygonEnd:function(){var e=function(){for(var e=0,r=0,i=c.length;r<i;++r)for(var s,a,o=c[r],l=1,h=o.length,u=o[0],d=u[0],f=u[1];l<h;++l)s=d,a=f,d=(u=o[l])[0],f=u[1],a<=n?f>n&&(d-s)*(n-a)>(f-a)*(t-s)&&++e:f<=n&&(d-s)*(n-a)<(f-a)*(t-s)&&--e;return e}(),r=v&&e,i=(u=l,l=Array.from(function*(t){for(const e of t)yield*e}(u))).length;var u;(r||i)&&(a.polygonStart(),r&&(a.lineStart(),s(null,null,1,a),a.lineEnd()),i&&as(l,o,e,s,a),a.polygonEnd());y=a,l=c=h=null}};function k(t,e){i(t,e)&&y.point(t,e)}function $(s,a){var o=i(s,a);if(c&&h.push([s,a]),g)u=s,d=a,f=o,g=!1,o&&(y.lineStart(),y.point(s,a));else if(o&&b)y.point(s,a);else{var l=[p=Math.max(cs,Math.min(ls,p)),m=Math.max(cs,Math.min(ls,m))],w=[s=Math.max(cs,Math.min(ls,s)),a=Math.max(cs,Math.min(ls,a))];!function(t,e,r,n,i,s){var a,o=t[0],l=t[1],c=0,h=1,u=e[0]-o,d=e[1]-l;if(a=r-o,u||!(a>0)){if(a/=u,u<0){if(a<c)return;a<h&&(h=a)}else if(u>0){if(a>h)return;a>c&&(c=a)}if(a=i-o,u||!(a<0)){if(a/=u,u<0){if(a>h)return;a>c&&(c=a)}else if(u>0){if(a<c)return;a<h&&(h=a)}if(a=n-l,d||!(a>0)){if(a/=d,d<0){if(a<c)return;a<h&&(h=a)}else if(d>0){if(a>h)return;a>c&&(c=a)}if(a=s-l,d||!(a<0)){if(a/=d,d<0){if(a>h)return;a>c&&(c=a)}else if(d>0){if(a<c)return;a<h&&(h=a)}return c>0&&(t[0]=o+c*u,t[1]=l+c*d),h<1&&(e[0]=o+h*u,e[1]=l+h*d),!0}}}}}(l,w,t,e,r,n)?o&&(y.lineStart(),y.point(s,a),v=!1):(b||(y.lineStart(),y.point(l[0],l[1])),y.point(w[0],w[1]),o||y.lineEnd(),v=!1)}p=s,m=a,b=o}return x}}var us,ds,fs,ps,ms=t=>t,bs=new ot,gs=new ot,vs={point:Qi,lineStart:Qi,lineEnd:Qi,polygonStart:function(){vs.lineStart=ys,vs.lineEnd=ks},polygonEnd:function(){vs.lineStart=vs.lineEnd=vs.point=Qi,bs.add(Zi(gs)),gs=new ot},result:function(){var t=bs/2;return bs=new ot,t}};function ys(){vs.point=ws}function ws(t,e){vs.point=xs,us=fs=t,ds=ps=e}function xs(t,e){gs.add(ps*t-fs*e),fs=t,ps=e}function ks(){xs(us,ds)}var $s=vs,_s=1/0,Ss=_s,As=-_s,Es=As,Ts={point:function(t,e){t<_s&&(_s=t);t>As&&(As=t);e<Ss&&(Ss=e);e>Es&&(Es=e)},lineStart:Qi,lineEnd:Qi,polygonStart:Qi,polygonEnd:Qi,result:function(){var t=[[_s,Ss],[As,Es]];return As=Es=-(Ss=_s=1/0),t}};var Ms,Cs,Ns,Rs,qs=Ts,zs=0,Ps=0,Fs=0,Os=0,Hs=0,Ds=0,Is=0,Us=0,Ls=0,js={point:Vs,lineStart:Bs,lineEnd:Zs,polygonStart:function(){js.lineStart=Ys,js.lineEnd=Gs},polygonEnd:function(){js.point=Vs,js.lineStart=Bs,js.lineEnd=Zs},result:function(){var t=Ls?[Is/Ls,Us/Ls]:Ds?[Os/Ds,Hs/Ds]:Fs?[zs/Fs,Ps/Fs]:[NaN,NaN];return zs=Ps=Fs=Os=Hs=Ds=Is=Us=Ls=0,t}};function Vs(t,e){zs+=t,Ps+=e,++Fs}function Bs(){js.point=Ks}function Ks(t,e){js.point=Xs,Vs(Ns=t,Rs=e)}function Xs(t,e){var r=t-Ns,n=e-Rs,i=Wi(r*r+n*n);Os+=i*(Ns+t)/2,Hs+=i*(Rs+e)/2,Ds+=i,Vs(Ns=t,Rs=e)}function Zs(){js.point=Vs}function Ys(){js.point=Ws}function Gs(){Qs(Ms,Cs)}function Ws(t,e){js.point=Qs,Vs(Ms=Ns=t,Cs=Rs=e)}function Qs(t,e){var r=t-Ns,n=e-Rs,i=Wi(r*r+n*n);Os+=i*(Ns+t)/2,Hs+=i*(Rs+e)/2,Ds+=i,Is+=(i=Rs*t-Ns*e)*(Ns+t),Us+=i*(Rs+e),Ls+=3*i,Vs(Ns=t,Rs=e)}var Js=js;function ta(t){this._context=t}ta.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._context.moveTo(t,e),this._point=1;break;case 1:this._context.lineTo(t,e);break;default:this._context.moveTo(t+this._radius,e),this._context.arc(t,e,this._radius,0,Bi)}},result:Qi};var ea,ra,na,ia,sa,aa=new ot,oa={point:Qi,lineStart:function(){oa.point=la},lineEnd:function(){ea&&ca(ra,na),oa.point=Qi},polygonStart:function(){ea=!0},polygonEnd:function(){ea=null},result:function(){var t=+aa;return aa=new ot,t}};function la(t,e){oa.point=ca,ra=ia=t,na=sa=e}function ca(t,e){ia-=t,sa-=e,aa.add(Wi(ia*ia+sa*sa)),ia=t,sa=e}var ha=oa;function ua(){this._string=[]}function da(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function fa(t,e){var r,n,i=4.5;function s(t){return t&&("function"==typeof i&&n.pointRadius(+i.apply(this,arguments)),is(t,r(n))),n.result()}return s.area=function(t){return is(t,r($s)),$s.result()},s.measure=function(t){return is(t,r(ha)),ha.result()},s.bounds=function(t){return is(t,r(qs)),qs.result()},s.centroid=function(t){return is(t,r(Js)),Js.result()},s.projection=function(e){return arguments.length?(r=null==e?(t=null,ms):(t=e).stream,s):t},s.context=function(t){return arguments.length?(n=null==t?(e=null,new ua):new ta(e=t),"function"!=typeof i&&n.pointRadius(i),s):e},s.pointRadius=function(t){return arguments.length?(i="function"==typeof t?t:(n.pointRadius(+t),+t),s):i},s.projection(t).context(e)}function pa(){}function ma(t,e,r){var n=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=n&&t.clipExtent(null),is(r,t.stream(qs)),e(qs.result()),null!=n&&t.clipExtent(n),t}function ba(t,e,r){return ma(t,(function(r){var n=e[1][0]-e[0][0],i=e[1][1]-e[0][1],s=Math.min(n/(r[1][0]-r[0][0]),i/(r[1][1]-r[0][1])),a=+e[0][0]+(n-s*(r[1][0]+r[0][0]))/2,o=+e[0][1]+(i-s*(r[1][1]+r[0][1]))/2;t.scale(150*s).translate([a,o])}),r)}function ga(){var t,e,r,n,i,s,a,o,l=1,c=0,h=0,u=1,d=1,f=0,p=null,m=1,b=1,g=(o={point:function(t,e){var r=w([t,e]);this.stream.point(r[0],r[1])}},function(t){var e=new pa;for(var r in o)e[r]=o[r];return e.stream=t,e}),v=ms;function y(){return m=l*u,b=l*d,s=a=null,w}function w(r){var n=r[0]*m,i=r[1]*b;if(f){var s=i*t-n*e;n=n*t+i*e,i=s}return[n+c,i+h]}return w.invert=function(r){var n=r[0]-c,i=r[1]-h;if(f){var s=i*t+n*e;n=n*t-i*e,i=s}return[n/m,i/b]},w.stream=function(t){return s&&a===t?s:s=g(v(a=t))},w.postclip=function(t){return arguments.length?(v=t,p=r=n=i=null,y()):v},w.clipExtent=function(t){return arguments.length?(v=null==t?(p=r=n=i=null,ms):hs(p=+t[0][0],r=+t[0][1],n=+t[1][0],i=+t[1][1]),y()):null==p?null:[[p,r],[n,i]]},w.scale=function(t){return arguments.length?(l=+t,y()):l},w.translate=function(t){return arguments.length?(c=+t[0],h=+t[1],y()):[c,h]},w.angle=function(r){return arguments.length?(e=Gi(f=r%360*Xi),t=Yi(f),y()):f*Ki},w.reflectX=function(t){return arguments.length?(u=t?-1:1,y()):u<0},w.reflectY=function(t){return arguments.length?(d=t?-1:1,y()):d<0},w.fitExtent=function(t,e){return ba(w,t,e)},w.fitSize=function(t,e){return function(t,e,r){return ba(t,[[0,0],e],r)}(w,t,e)},w.fitWidth=function(t,e){return function(t,e,r){return ma(t,(function(r){var n=+e,i=n/(r[1][0]-r[0][0]),s=(n-i*(r[1][0]+r[0][0]))/2,a=-i*r[0][1];t.scale(150*i).translate([s,a])}),r)}(w,t,e)},w.fitHeight=function(t,e){return function(t,e,r){return ma(t,(function(r){var n=+e,i=n/(r[1][1]-r[0][1]),s=-i*r[0][0],a=(n-i*(r[1][1]+r[0][1]))/2;t.scale(150*i).translate([s,a])}),r)}(w,t,e)},w}function va(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}function ya(t){return+t}ua.prototype={_radius:4.5,_circle:da(4.5),pointRadius:function(t){return(t=+t)!==this._radius&&(this._radius=t,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,e){switch(this._point){case 0:this._string.push("M",t,",",e),this._point=1;break;case 1:this._string.push("L",t,",",e);break;default:null==this._circle&&(this._circle=da(this._radius)),this._string.push("M",t,",",e,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}return null}},pa.prototype={constructor:pa,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var wa=[0,1];function xa(t){return t}function ka(t,e){return(e-=t=+t)?function(r){return(r-t)/e}:function(t){return function(){return t}}(isNaN(e)?NaN:.5)}function $a(t,e,r){var n=t[0],i=t[1],s=e[0],a=e[1];return i<n?(n=ka(i,n),s=r(a,s)):(n=ka(n,i),s=r(s,a)),function(t){return s(n(t))}}function _a(t,e,r){var n=Math.min(t.length,e.length)-1,i=new Array(n),s=new Array(n),a=-1;for(t[n]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++a<n;)i[a]=ka(t[a],t[a+1]),s[a]=r(e[a],e[a+1]);return function(e){var r=st(t,e,1,n)-1;return s[r](i[r](e))}}function Sa(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Aa(){var t,e,r,n,i,s,a=wa,o=wa,l=Qr,c=xa;function h(){var t=Math.min(a.length,o.length);return c!==xa&&(c=function(t,e){var r;return t>e&&(r=t,t=e,e=r),function(r){return Math.max(t,Math.min(e,r))}}(a[0],a[t-1])),n=t>2?_a:$a,i=s=null,u}function u(e){return null==e||isNaN(e=+e)?r:(i||(i=n(a.map(t),o,l)))(t(c(e)))}return u.invert=function(r){return c(e((s||(s=n(o,a.map(t),Xr)))(r)))},u.domain=function(t){return arguments.length?(a=Array.from(t,ya),h()):a.slice()},u.range=function(t){return arguments.length?(o=Array.from(t),h()):o.slice()},u.rangeRound=function(t){return o=Array.from(t),l=Jr,h()},u.clamp=function(t){return arguments.length?(c=!!t||xa,h()):c!==xa},u.interpolate=function(t){return arguments.length?(l=t,h()):l},u.unknown=function(t){return arguments.length?(r=t,u):r},function(r,n){return t=r,e=n,h()}}function Ea(){return Aa()(xa,xa)}function Ta(t,e,r,n){var i,s=bt(t,e,r);switch((n=Ri(null==n?",f":n)).type){case"s":var a=Math.max(Math.abs(t),Math.abs(e));return null!=n.precision||isNaN(i=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Mi(e)/3)))-Mi(Math.abs(t)))}(s,a))||(n.precision=i),Di(n,a);case"":case"e":case"g":case"p":case"r":null!=n.precision||isNaN(i=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Mi(e)-Mi(t))+1}(s,Math.max(Math.abs(t),Math.abs(e))))||(n.precision=i-("e"===n.type));break;case"f":case"%":null!=n.precision||isNaN(i=function(t){return Math.max(0,-Mi(Math.abs(t)))}(s))||(n.precision=i-2*("%"===n.type))}return Hi(n)}function Ma(t){var e=t.domain;return t.ticks=function(t){var r=e();return pt(r[0],r[r.length-1],null==t?10:t)},t.tickFormat=function(t,r){var n=e();return Ta(n[0],n[n.length-1],null==t?10:t,r)},t.nice=function(r){null==r&&(r=10);var n,i,s=e(),a=0,o=s.length-1,l=s[a],c=s[o],h=10;for(c<l&&(i=l,l=c,c=i,i=a,a=o,o=i);h-- >0;){if((i=mt(l,c,r))===n)return s[a]=l,s[o]=c,e(s);if(i>0)l=Math.floor(l/i)*i,c=Math.ceil(c/i)*i;else{if(!(i<0))break;l=Math.ceil(l*i)/i,c=Math.floor(c*i)/i}n=i}return t},t}function Ca(){var t=Ea();return t.copy=function(){return Sa(t,Ca())},va.apply(t,arguments),Ma(t)}var Na=function(t){for(var e=t.length/6|0,r=new Array(e),n=0;n<e;)r[n]="#"+t.slice(6*n,6*++n);return r}("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999");function Ra(t){return function(){return t}}function qa(t){this._context=t}function za(t){return new qa(t)}function Pa(t){return t[0]}function Fa(t){return t[1]}function Oa(t,e){var r=Ra(!0),n=null,i=za,s=null;function a(a){var o,l,c,h=(a=function(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}(a)).length,u=!1;for(null==n&&(s=i(c=vi())),o=0;o<=h;++o)!(o<h&&r(l=a[o],o,a))===u&&((u=!u)?s.lineStart():s.lineEnd()),u&&s.point(+t(l,o,a),+e(l,o,a));if(c)return s=null,c+""||null}return t="function"==typeof t?t:void 0===t?Pa:Ra(t),e="function"==typeof e?e:void 0===e?Fa:Ra(e),a.x=function(e){return arguments.length?(t="function"==typeof e?e:Ra(+e),a):t},a.y=function(t){return arguments.length?(e="function"==typeof t?t:Ra(+t),a):e},a.defined=function(t){return arguments.length?(r="function"==typeof t?t:Ra(!!t),a):r},a.curve=function(t){return arguments.length?(i=t,null!=n&&(s=i(n)),a):i},a.context=function(t){return arguments.length?(null==t?n=s=null:s=i(n=t),a):n},a}qa.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}};let Ha,Da,Ia,Ua,La,ja,Va,Ba,Ka,Xa=t=>t;class Za extends tt{getComputedStyleValue(t){return getComputedStyle(this).getPropertyValue(t).trim()}firstUpdated(t){super.firstUpdated(t),Ge(this.renderRoot.host).classed("keyboard",!0).on("mousemove.keyboard touchstart.keyboard",(t=>{Ge(t.currentTarget.renderRoot.host).classed("keyboard",!1).on("mousemove.keyboard touchstart.keyboard",null)})).on("keydown.keyboard",(t=>{Ge(t.currentTarget.renderRoot.host).classed("keyboard",!0).on("keydown.keyboard mousemove.keyboard touchstart.keyboard",null)}))}static get greys(){const t="#999999",e={white:"#ffffff"};return e.light75=jr(t,"#ffffff")(.75),e.light50=jr(t,"#ffffff")(.5),e.light25=jr(t,"#ffffff")(.25),e.grey=t,e.dark25=jr(t,"#000000")(.25),e.dark50=jr(t,"#000000")(.5),e.dark75=jr(t,"#000000")(.75),e.black="#000000",e}static get shadows(){return{elevations:[0,2,4,8,16],baselineColor:"#000000",baselineColorString:"0, 0, 0",inverseBaselineColor:"#FFFFFF",inverseBaselineColorString:"255, 255, 255",opacityUmbra:.2,opacityPenumbra:.14,opacityAmbient:.12,opacityBoost:.2,mapUmbra:{0:{x:0,y:0,b:0,s:0},2:{x:0,y:3,b:1,s:-2},4:{x:0,y:2,b:4,s:-1},8:{x:0,y:5,b:5,s:-3},16:{x:0,y:8,b:10,s:-5}},mapPenumbra:{0:{x:0,y:0,b:0,s:0},2:{x:0,y:2,b:2,s:0},4:{x:0,y:4,b:5,s:0},8:{x:0,y:8,b:10,s:1},16:{x:0,y:16,b:24,s:2}},mapAmbient:{0:{x:0,y:0,b:0,s:0},2:{x:0,y:1,b:5,s:0},4:{x:0,y:1,b:10,s:0},8:{x:0,y:3,b:14,s:2},16:{x:0,y:6,b:30,s:5}}}}static cssBoxShadow(t,e=!1,r=!1){const n=this.shadows.opacityUmbra+this.shadows.opacityBoost,i=this.shadows.opacityPenumbra+this.shadows.opacityBoost,s=this.shadows.opacityAmbient+this.shadows.opacityBoost,a=r?`rgba(${this.shadows.inverseBaselineColorString}, ${n})`:`rgba(${this.shadows.baselineColorString}, ${n})`,o=r?`rgba(${this.shadows.inverseBaselineColorString}, ${i})`:`rgba(${this.shadows.baselineColorString}, ${i})`,l=r?`rgba(${this.shadows.inverseBaselineColorString}, ${s})`:`rgba(${this.shadows.baselineColorString}, ${s})`,c=this.shadows.mapUmbra[t],h=this.shadows.mapPenumbra[t],u=this.shadows.mapAmbient[t];return`${e?`${-c.y}px ${c.y/2}px ${c.b}px ${c.s}px`:`${c.y/2}px ${c.y}px ${c.b}px ${c.s}px`} ${a}, ${e?`${-h.y}px ${h.y/2}px ${h.b}px ${h.s}px`:`${h.y/2}px ${h.y}px ${h.b}px ${h.s}px`} ${o}, ${e?`${-u.y}px ${u.y/2}px ${u.b}px ${u.s}px`:`${u.y/2}px ${u.y}px ${u.b}px ${u.s}px`} ${l}`}static get svgFilters(){const t=Za.shadows,e=t.elevations.map((e=>P(Ha||(Ha=Xa`
|
|
24
|
+
<filter id=${0} x="-250%" y="-250%" width="600%" height="600%">
|
|
25
|
+
<feComponentTransfer in="SourceAlpha" result="solid">
|
|
26
|
+
<feFuncA type="table" tableValues="0 1 1"/>
|
|
27
|
+
</feComponentTransfer>
|
|
28
|
+
<feOffset in="solid" result="offU" dx=${0} dy=${0} />
|
|
29
|
+
<feOffset in="solid" result="offP" dx=${0} dy=${0} />
|
|
30
|
+
<feOffset in="solid" result="offA" dx=${0} dy=${0} />
|
|
31
|
+
${0}
|
|
32
|
+
${0}
|
|
33
|
+
${0}
|
|
34
|
+
<feGaussianBlur in=${0} result="blurU" stdDeviation=${0} />
|
|
35
|
+
<feGaussianBlur in=${0} result="blurP" stdDeviation=${0} />
|
|
36
|
+
<feGaussianBlur in=${0} result="blurA" stdDeviation=${0} />
|
|
37
|
+
<feFlood in="SourceGraphic" result="opU" flood-color=${0} flood-opacity=${0} />
|
|
38
|
+
<feFlood in="SourceGraphic" result="opP" flood-color=${0} flood-opacity=${0} />
|
|
39
|
+
<feFlood in="SourceGraphic" result="opA" flood-color=${0} flood-opacity=${0} />
|
|
40
|
+
<feComposite in="opU" in2="blurU" result="shU" operator="in" />
|
|
41
|
+
<feComposite in="opP" in2="blurP" result="shP" operator="in" />
|
|
42
|
+
<feComposite in="opA" in2="blurA" result="shA" operator="in" />
|
|
43
|
+
<feMorphology in="solid" result="smaller" operator="erode" radius="1" />
|
|
44
|
+
<feComposite in="shU" in2="smaller" result="finalU" operator="out" />
|
|
45
|
+
<feComposite in="shP" in2="smaller" result="finalP" operator="out" />
|
|
46
|
+
<feComposite in="shA" in2="smaller" result="finalA" operator="out" />
|
|
47
|
+
<feMerge>
|
|
48
|
+
<feMergeNode in="finalU" />
|
|
49
|
+
<feMergeNode in="finalP" />
|
|
50
|
+
<feMergeNode in="finalA" />
|
|
51
|
+
<feMergeNode in="SourceGraphic" />
|
|
52
|
+
</feMerge>
|
|
53
|
+
</filter>`),`shadow-${e}`,t.mapUmbra[e].y/2,t.mapUmbra[e].y,t.mapPenumbra[e].y/2,t.mapPenumbra[e].y,t.mapAmbient[e].y/2,t.mapAmbient[e].y,0===t.mapUmbra[e].s?P(Da||(Da=Xa``)):P(Ia||(Ia=Xa`<feMorphology in="offU" result="spreadU" operator=${0} radius=${0} />`),t.mapUmbra[e].s>0?"dilate":"erode",Math.abs(t.mapUmbra[e].s)),0===t.mapPenumbra[e].s?P(Ua||(Ua=Xa``)):P(La||(La=Xa`<feMorphology in="offP" result="spreadP" operator=${0} radius=${0} />`),t.mapPenumbra[e].s>0?"dilate":"erode",Math.abs(t.mapPenumbra[e].s)),0===t.mapAmbient[e].s?P(ja||(ja=Xa``)):P(Va||(Va=Xa`<feMorphology in="offA" result="spreadA" operator=${0} radius=${0} />`),t.mapAmbient[e].s>0?"dilate":"erode",Math.abs(t.mapAmbient[e].s)),0===t.mapUmbra[e].s?"offU":"spreadU",t.mapUmbra[e].b/2,0===t.mapPenumbra[e].s?"offP":"spreadP",t.mapPenumbra[e].b/2,0===t.mapAmbient[e].s?"offA":"spreadA",t.mapAmbient[e].b/2,t.baselineColor,t.opacityUmbra+t.opacityBoost,t.baselineColor,t.opacityPenumbra+t.opacityBoost,t.baselineColor,t.opacityAmbient+t.opacityBoost)));return P(Ba||(Ba=Xa`
|
|
54
|
+
<svg class="defs">
|
|
55
|
+
<defs>
|
|
56
|
+
${0}
|
|
57
|
+
</defs>
|
|
58
|
+
</svg>
|
|
59
|
+
`),e)}static get styles(){return a(Ka||(Ka=Xa`
|
|
60
|
+
:host {
|
|
61
|
+
---shadow-0: var(--shadow-0, ${0});
|
|
62
|
+
---shadow-2: var(--shadow-2, ${0});
|
|
63
|
+
---shadow-4: var(--shadow-4, ${0});
|
|
64
|
+
---shadow-8: var(--shadow-8, ${0});
|
|
65
|
+
|
|
66
|
+
---color-background: var(--color-background, ${0});
|
|
67
|
+
---color-border: var(--color-border, ${0});
|
|
68
|
+
---color-text: var(--color-text, ${0});
|
|
69
|
+
---color-text-inverse: var(--color-text-inverse, ${0});
|
|
70
|
+
---color-link: var(--color-link, ${0});
|
|
71
|
+
---color-element-background: var(--color-element-background, ${0});
|
|
72
|
+
---color-element-disabled: var(--color-element-disabled, ${0});
|
|
73
|
+
---color-element-enabled: var(--color-element-enabled, ${0});
|
|
74
|
+
---color-element-selected: var(--color-element-selected, ${0});
|
|
75
|
+
---color-element-border: var(--color-element-border, ${0});
|
|
76
|
+
---color-element-emphasis: var(--color-element-emphasis, ${0});
|
|
77
|
+
|
|
78
|
+
---font-family-base: var(--font-family-base, "Source Sans", sans-serif);
|
|
79
|
+
---font-family-math: var(--font-family-math, "Source Serif", serif);
|
|
80
|
+
|
|
81
|
+
---transition-duration: var(--transition-duration, 500ms);
|
|
82
|
+
|
|
83
|
+
font-family: var(---font-family-base);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
:host,
|
|
87
|
+
:host *,
|
|
88
|
+
:host *::before,
|
|
89
|
+
:host *::after {
|
|
90
|
+
box-sizing: border-box;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.math-greek {
|
|
94
|
+
font-family: var(---font-family-math);
|
|
95
|
+
font-style: normal;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.math-num {
|
|
99
|
+
font-family: var(---font-family-base);
|
|
100
|
+
font-style: normal;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.math-var {
|
|
104
|
+
font-family: var(---font-family-math);
|
|
105
|
+
font-style: italic;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.defs {
|
|
109
|
+
display: block;
|
|
110
|
+
|
|
111
|
+
width: 0;
|
|
112
|
+
height: 0;
|
|
113
|
+
}
|
|
114
|
+
`),s(this.cssBoxShadow(0)),s(this.cssBoxShadow(2)),s(this.cssBoxShadow(4)),s(this.cssBoxShadow(8)),s(this.greys.white),s(this.greys.light75),s(this.greys.dark75),s(this.greys.white),s(this.greys.dark25),s(this.greys.light75),s(this.greys.light50),s(this.greys.grey),s(this.greys.dark25),s(this.greys.dark50),s(this.greys.dark75))}}let Ya,Ga,Wa=t=>t;customElements.define("decidables-button",class extends Za{static get properties(){return{disabled:{attribute:"disabled",type:Boolean,reflect:!0}}}constructor(){super(),this.disabled=!1}static get styles(){return[super.styles,a(Ya||(Ya=Wa`
|
|
115
|
+
:host {
|
|
116
|
+
margin: 0.25rem;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
button {
|
|
120
|
+
width: 100%;
|
|
121
|
+
height: 100%;
|
|
122
|
+
padding: 0.375rem 0.75rem;
|
|
123
|
+
|
|
124
|
+
font-family: var(---font-family-base);
|
|
125
|
+
font-size: 1.125rem;
|
|
126
|
+
line-height: 1.5;
|
|
127
|
+
color: var(---color-text-inverse);
|
|
128
|
+
|
|
129
|
+
border: 0;
|
|
130
|
+
border-radius: 0.25rem;
|
|
131
|
+
outline: none;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
button:disabled {
|
|
135
|
+
background-color: var(--decidables-button-background-color, var(---color-element-disabled));
|
|
136
|
+
outline: none;
|
|
137
|
+
box-shadow: none;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
button:enabled {
|
|
141
|
+
cursor: pointer;
|
|
142
|
+
|
|
143
|
+
background-color: var(--decidables-button-background-color, var(---color-element-enabled));
|
|
144
|
+
outline: none;
|
|
145
|
+
box-shadow: var(---shadow-2);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
button:enabled:hover {
|
|
149
|
+
outline: none;
|
|
150
|
+
box-shadow: var(---shadow-4);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
button:enabled:active {
|
|
154
|
+
outline: none;
|
|
155
|
+
box-shadow: var(---shadow-8);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
:host(.keyboard) button:enabled:focus {
|
|
159
|
+
outline: none;
|
|
160
|
+
box-shadow: var(---shadow-4);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
:host(.keyboard) button:enabled:focus:active {
|
|
164
|
+
outline: none;
|
|
165
|
+
box-shadow: var(---shadow-8);
|
|
166
|
+
}
|
|
167
|
+
`))]}render(){return z(Ga||(Ga=Wa`
|
|
168
|
+
<button ?disabled=${0}>
|
|
169
|
+
<slot></slot>
|
|
170
|
+
</button>
|
|
171
|
+
`),this.disabled)}});
|
|
7
172
|
/**
|
|
8
173
|
* @license
|
|
9
174
|
* Copyright 2018 Google LLC
|
|
10
175
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
11
176
|
*/
|
|
12
|
-
var Es,Ts,Ms,Cs,Ns=function(t){return null!=t?t:st},Rs=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.call(this)).disabled=!1,t.max=void 0,t.min=void 0,t.step=void 0,t.value=void 0,t}return i(n,[{key:"changed",value:function(t){this.value=t.target.value,this.dispatchEvent(new CustomEvent("change",{detail:{value:this.value},bubbles:!0}))}},{key:"inputted",value:function(t){this.value=t.target.value}},{key:"render",value:function(){return at(Es||(Es=g(["\n <label for=",'>\n <slot></slot>\n </label>\n <div class="range">\n <input type="range" id='," min="," max="," step="," .value="," @change="," @input=",">\n </div>\n <decidables-spinner min="," max="," step="," .value="," @input=","></decidables-spinner>\n "])),"".concat(this.uniqueId,"-slider"),"".concat(this.uniqueId,"-slider"),Ns(this.min),Ns(this.max),Ns(this.step),this.value,this.changed.bind(this),this.inputted.bind(this),Ns(this.min),Ns(this.max),Ns(this.step),this.value,this.inputted.bind(this))}}],[{key:"properties",get:function(){return{disabled:{attribute:"disabled",type:Boolean,reflect:!0},max:{attribute:"max",type:Number,reflect:!0},min:{attribute:"min",type:Number,reflect:!0},step:{attribute:"step",type:Number,reflect:!0},value:{attribute:"value",type:Number,reflect:!0}}}},{key:"styles",get:function(){return[b(l(n),"styles",this),R(Ts||(Ts=g(["\n :host {\n ---shadow-2-rotate: var(--shadow-2-rotate, ",");\n ---shadow-4-rotate: var(--shadow-4-rotate, ",");\n ---shadow-8-rotate: var(--shadow-8-rotate, ",");\n\n display: flex;\n\n flex-direction: column;\n\n align-items: center;\n justify-content: center;\n }\n\n label {\n margin: 0.25rem 0.25rem 0;\n }\n\n .range {\n display: inline-block;\n\n width: 3.5rem;\n height: 4.75rem;\n margin: 0 0.25rem 0.25rem;\n }\n\n decidables-spinner {\n --decidables-spinner-input-width: 3.5rem;\n\n margin: 0 0.25rem 0.25rem;\n }\n\n /* Adapted from http://danielstern.ca/range.css/#/ */\n /* Overall */\n input[type=range] {\n width: 4.75rem;\n height: 3.5rem;\n padding: 0;\n margin: 0;\n\n background-color: unset;\n\n transform: rotate(-90deg);\n transform-origin: 2.375rem 2.375rem;\n\n /* stylelint-disable-next-line property-no-vendor-prefix */\n -webkit-appearance: none;\n }\n\n input[type=range]:enabled {\n cursor: ns-resize;\n }\n\n input[type=range]:focus {\n outline: none;\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]::-ms-tooltip {\n display: none;\n }\n\n /* Track */\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]::-webkit-slider-runnable-track {\n width: 100%;\n height: 4px;\n\n background: var(---color-element-disabled);\n border: 0;\n border-radius: 2px;\n box-shadow: none;\n }\n\n input[type=range]:focus::-webkit-slider-runnable-track {\n background: var(---color-element-disabled);\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]::-moz-range-track {\n width: 100%;\n height: 4px;\n\n background: var(---color-element-disabled);\n border: 0;\n border-radius: 2px;\n box-shadow: none;\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]::-ms-track {\n width: 100%;\n height: 4px;\n\n color: transparent;\n\n background: transparent;\n border-color: transparent;\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]::-ms-fill-lower {\n background: #cccccc;\n /* background: var(---color-element-disabled); */\n border: 0;\n border-radius: 2px;\n box-shadow: none;\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]::-ms-fill-upper {\n background: #cccccc;\n /* background: var(---color-element-disabled); */\n border: 0;\n border-radius: 2px;\n box-shadow: none;\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]:focus::-ms-fill-lower {\n background: var(---color-element-disabled);\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]:focus::-ms-fill-upper {\n background: var(---color-element-disabled);\n }\n\n /* Thumb */\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]::-webkit-slider-thumb {\n width: 10px;\n height: 20px;\n margin-top: -8px;\n\n border: 0;\n border-radius: 4px;\n\n /* stylelint-disable-next-line property-no-vendor-prefix */\n -webkit-appearance: none;\n }\n\n input[type=range]:disabled::-webkit-slider-thumb {\n background: var(---color-element-disabled);\n box-shadow: none;\n }\n\n input[type=range]:enabled::-webkit-slider-thumb {\n background: var(---color-element-enabled);\n box-shadow: var(---shadow-2-rotate);\n }\n\n input[type=range]:enabled:hover::-webkit-slider-thumb {\n box-shadow: var(---shadow-4-rotate);\n }\n\n input[type=range]:enabled:active::-webkit-slider-thumb {\n box-shadow: var(---shadow-8-rotate);\n }\n\n :host(.keyboard) input[type=range]:enabled:focus::-webkit-slider-thumb {\n box-shadow: var(---shadow-4-rotate);\n }\n\n :host(.keyboard) input[type=range]:focus:active::-webkit-slider-thumb {\n box-shadow: var(---shadow-8-rotate);\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]::-moz-range-thumb {\n width: 10px;\n height: 20px;\n\n border: 0;\n border-radius: 4px;\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]:disabled::-moz-range-thumb {\n background: var(---color-element-disabled);\n box-shadow: none;\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]:enabled::-moz-range-thumb {\n background: var(---color-element-enabled);\n box-shadow: var(---shadow-2-rotate);\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]:enabled:hover::-moz-range-thumb {\n box-shadow: var(---shadow-4-rotate);\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]:enabled:active::-moz-range-thumb {\n box-shadow: var(---shadow-8-rotate);\n }\n\n :host(.keyboard) input[type=range]:enabled:focus::-moz-range-thumb {\n box-shadow: var(---shadow-4-rotate);\n }\n\n :host(.keyboard) input[type=range]:enabled:focus:active::-moz-range-thumb {\n box-shadow: var(---shadow-8-rotate);\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]::-ms-thumb {\n width: 10px;\n height: 20px;\n margin-top: 0;\n\n background: #999999;\n /* background: var(---color-element-enabled); */\n border: 0;\n border-radius: 4px;\n box-shadow: var(---shadow-2-rotate);\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]:disabled::-ms-thumb {\n background: var(---color-element-disabled);\n box-shadow: none;\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]:enabled::-ms-thumb {\n background: var(---color-element-enabled);\n box-shadow: var(---shadow-2-rotate);\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]:enabled:hover::-ms-thumb {\n box-shadow: var(---shadow-4-rotate);\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]:enabled:active::-ms-thumb {\n box-shadow: var(---shadow-8-rotate);\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n :host(.keyboard) input[type=range]:enabled:focus::-ms-thumb {\n box-shadow: var(---shadow-4-rotate);\n }\n\n :host(.keyboard) input[type=range]:enabled:focus:active::-ms-thumb {\n box-shadow: var(---shadow-8-rotate);\n }\n "])),N(this.cssBoxShadow(2,!0,!1)),N(this.cssBoxShadow(4,!0,!1)),N(this.cssBoxShadow(8,!0,!1)))]}}]),n}(Ss);customElements.define("decidables-slider",Rs);var qs,Ps,zs=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.call(this)).disabled=!1,t.max=void 0,t.min=void 0,t.step=void 0,t.value=void 0,t}return i(n,[{key:"inputted",value:function(t){this.value=t.target.value}},{key:"render",value:function(){return at(Ms||(Ms=g(["\n <label>\n <slot></slot>\n <input ?disabled=",' type="number" min='," max="," step="," .value="," @input=",">\n </label>\n "])),this.disabled,Ns(this.min),Ns(this.max),Ns(this.step),this.value,this.inputted.bind(this))}}],[{key:"properties",get:function(){return{disabled:{attribute:"disabled",type:Boolean,reflect:!0},max:{attribute:"max",type:Number,reflect:!0},min:{attribute:"min",type:Number,reflect:!0},step:{attribute:"step",type:Number,reflect:!0},value:{attribute:"value",type:Number,reflect:!0}}}},{key:"styles",get:function(){return[b(l(n),"styles",this),R(Cs||(Cs=g(['\n :host {\n ---decidables-spinner-font-size: var(--decidables-spinner-font-size, 1.125rem);\n ---decidables-spinner-input-width: var(--decidables-spinner-input-width, 4rem);\n ---decidables-spinner-prefix: var(--decidables-spinner-prefix, "");\n\n display: block;\n }\n\n label {\n position: relative;\n display: flex;\n\n flex-direction: column;\n\n align-items: center;\n\n margin: 0;\n\n font-size: 0.75rem;\n }\n\n label::before {\n position: absolute;\n bottom: 1px;\n left: calc(50% - var(---decidables-spinner-input-width) / 2 + 0.25rem);\n\n font-size: var(---decidables-spinner-font-size);\n line-height: normal;\n\n content: var(---decidables-spinner-prefix);\n }\n\n input[type=number] {\n width: var(---decidables-spinner-input-width);\n\n font-family: var(---font-family-base);\n font-size: var(---decidables-spinner-font-size);\n color: inherit;\n text-align: right;\n\n background: none;\n border: 0;\n border-radius: 0;\n outline: none;\n box-shadow: var(---shadow-2);\n\n -webkit-appearance: none; /* stylelint-disable-line property-no-vendor-prefix */\n }\n\n input[type=number]:hover {\n box-shadow: var(---shadow-4);\n }\n\n input[type=number]:focus,\n input[type=number]:active {\n box-shadow: var(---shadow-8);\n }\n\n input[type=number]:disabled {\n color: var(---color-text);\n\n border: 0;\n box-shadow: none;\n\n /* HACK: Use correct text color in Safari */\n -webkit-opacity: 1;\n /* HACK: Hide spinners in disabled input for Firefox and Safari */\n -moz-appearance: textfield; /* stylelint-disable-line property-no-vendor-prefix */\n /* HACK: Use correct text color in Safari */\n -webkit-text-fill-color: var(---color-text);\n }\n\n /* HACK: Hide spinners in disabled input for Firefox and Safari */\n input[type=number]:disabled::-webkit-outer-spin-button,\n input[type=number]:disabled::-webkit-inner-spin-button {\n margin: 0;\n -webkit-appearance: none; /* stylelint-disable-line property-no-vendor-prefix */\n }\n '])))]}}]),n}(Ss);customElements.define("decidables-spinner",zs);var Fs,$s,Os=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.call(this)).checked=!1,t.disabled=!1,t}return i(n,[{key:"changed",value:function(t){this.checked=t.target.checked,this.dispatchEvent(new CustomEvent("change",{detail:{checked:this.checked},bubbles:!0}))}},{key:"render",value:function(){return at(qs||(qs=g(['\n <input type="checkbox" id='," ?checked="," ?disabled="," @change=",">\n <label for=",'>\n <slot name="off-label"></slot>\n </label>\n <label for=',">\n <slot></slot>\n </label>\n "])),"".concat(this.uniqueId,"-checkbox"),this.checked,this.disabled,this.changed.bind(this),"".concat(this.uniqueId,"-checkbox"),"".concat(this.uniqueId,"-checkbox"))}}],[{key:"properties",get:function(){return{checked:{attribute:"checked",type:Boolean,reflect:!0},disabled:{attribute:"disabled",type:Boolean,reflect:!0}}}},{key:"styles",get:function(){return[b(l(n),"styles",this),R(Ps||(Ps=g(['\n :host {\n display: flex;\n\n flex-direction: column;\n\n align-items: center;\n justify-content: center;\n }\n\n /* Adapted from https://codepen.io/guuslieben/pen/YyPRVP */\n input[type=checkbox] {\n /* visuallyhidden: https://github.com/h5bp/html5-boilerplate/blob/master/dist/doc/css.md */\n position: absolute;\n\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n\n white-space: nowrap;\n\n border: 0;\n clip-path: inset(100%); /* May cause a performance issue: https://github.com/h5bp/html5-boilerplate/issues/2021 */\n }\n\n input[type=checkbox] + label {\n order: 1;\n\n margin: 0 0.25rem 0.25rem;\n\n font-weight: 400;\n }\n\n input[type=checkbox] + label + label {\n position: relative;\n\n min-width: 24px;\n padding: 0 0 36px;\n margin: 0.25rem 0.25rem 0;\n\n font-weight: 400;\n\n outline: none;\n }\n\n input[type=checkbox] + label + label::before,\n input[type=checkbox] + label + label::after {\n position: absolute;\n\n left: 50%;\n\n margin: 0;\n\n content: "";\n\n outline: 0;\n\n transition: all var(---transition-duration) ease;\n transform: translate(-50%, 0);\n }\n\n input[type=checkbox] + label + label::before {\n bottom: 1px;\n\n width: 8px;\n height: 34px;\n\n background-color: var(---color-element-disabled);\n border-radius: 4px;\n }\n\n input[type=checkbox] + label + label::after {\n bottom: 0;\n\n width: 18px;\n height: 18px;\n\n background-color: var(---color-element-enabled);\n border-radius: 50%;\n box-shadow: var(---shadow-2);\n }\n\n input[type=checkbox]:checked + label + label::after {\n transform: translate(-50%, -100%);\n }\n\n input[type=checkbox]:disabled + label + label::after {\n background-color: var(---color-element-disabled);\n box-shadow: none;\n }\n\n input[type=checkbox]:enabled + label,\n input[type=checkbox]:enabled + label + label {\n cursor: pointer;\n }\n\n input[type=checkbox]:enabled + label:hover + label::after,\n input[type=checkbox]:enabled + label + label:hover::after {\n box-shadow: var(---shadow-4);\n }\n\n input[type=checkbox]:enabled + label:active + label::after,\n input[type=checkbox]:enabled + label + label:active::after {\n box-shadow: var(---shadow-8);\n }\n\n /* stylelint-disable-next-line selector-max-compound-selectors */\n :host(.keyboard) input[type=checkbox]:enabled:focus + label + label::after {\n box-shadow: var(---shadow-4);\n }\n\n /* stylelint-disable-next-line selector-max-compound-selectors */\n :host(.keyboard) input[type=checkbox]:enabled:focus + label + label:active::after,\n :host(.keyboard) input[type=checkbox]:enabled:focus:active + label + label::after {\n box-shadow: var(---shadow-8);\n }\n '])))]}}]),n}(Ss);customElements.define("decidables-switch",Os);var Is,Hs,Ds=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.call(this)).disabled=!1,t}return i(n,[{key:"render",value:function(){return at(Fs||(Fs=g(["\n <fieldset ?disabled=",'>\n <legend><slot name="label"></slot></legend>\n <slot></slot>\n </fieldset>\n '])),this.disabled)}}],[{key:"properties",get:function(){return{disabled:{attribute:"disabled",type:Boolean,reflect:!0}}}},{key:"styles",get:function(){return[b(l(n),"styles",this),R($s||($s=g(["\n fieldset {\n display: flex;\n\n flex-direction: column;\n\n align-items: stretch;\n justify-content: center;\n\n margin: 0.25rem;\n\n border: 0;\n }\n\n legend {\n text-align: center;\n }\n "])))]}}]),n}(Ss);customElements.define("decidables-toggle",Ds);var Us=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.call(this)).checked=!1,t.disabled=!1,t.name=void 0,t.value=void 0,t}return i(n,[{key:"changed",value:function(t){this.checked=t.target.checked,this.dispatchEvent(new CustomEvent("change",{detail:{checked:this.checked,value:this.value},bubbles:!0}))}},{key:"render",value:function(){return at(Is||(Is=g(['\n <input type="radio" id='," name="," value="," .checked="," @change=",">\n <label for=",">\n <slot></slot>\n </label>\n "])),"".concat(this.uniqueId,"-radio"),this.name,this.value,this.checked,this.changed.bind(this),"".concat(this.uniqueId,"-radio"))}}],[{key:"properties",get:function(){return{checked:{attribute:"checked",type:Boolean,reflect:!0},disabled:{attribute:"disabled",type:Boolean,reflect:!0},name:{attribute:"name",type:String,reflect:!0},value:{attribute:"value",type:String,reflect:!0}}}},{key:"styles",get:function(){return[b(l(n),"styles",this),R(Hs||(Hs=g(["\n :host {\n display: flex;\n }\n\n input[type=radio] {\n /* visuallyhidden: https://github.com/h5bp/html5-boilerplate/blob/master/dist/doc/css.md */\n position: absolute;\n\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n\n white-space: nowrap;\n\n border: 0;\n clip-path: inset(100%); /* May cause a performance issue: https://github.com/h5bp/html5-boilerplate/issues/2021 */\n }\n\n input[type=radio] + label {\n width: 100%;\n padding: 0.375rem 0.75rem;\n\n font-family: var(---font-family-base);\n font-size: 1.125rem;\n line-height: 1.5;\n color: var(---color-text-inverse);\n text-align: center;\n\n cursor: pointer;\n\n background-color: var(---color-element-enabled);\n border: 0;\n border-radius: 0;\n outline: none;\n\n box-shadow: var(---shadow-2);\n }\n\n input[type=radio]:checked + label {\n background-color: var(---color-element-selected);\n outline: none;\n box-shadow: var(---shadow-2);\n }\n\n input[type=radio] + label:hover {\n z-index: 1;\n\n outline: none;\n box-shadow: var(---shadow-4);\n }\n\n input[type=radio] + label:active {\n z-index: 2;\n\n outline: none;\n box-shadow: var(---shadow-8);\n }\n\n :host(:first-of-type) input[type=radio] + label {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n }\n\n :host(:last-of-type) input[type=radio] + label {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n }\n\n :host(.keyboard) input[type=radio]:focus + label {\n z-index: 1;\n\n outline: none;\n box-shadow: var(---shadow-4);\n }\n\n :host(.keyboard) input[type=radio]:focus:checked + label {\n z-index: 1;\n\n background-color: var(---color-element-selected);\n outline: none;\n box-shadow: var(---shadow-4);\n }\n\n :host(.keyboard) input[type=radio]:focus + label:active {\n z-index: 2;\n\n outline: none;\n box-shadow: var(---shadow-8);\n }\n "])))]}}]),n}(Ss);customElements.define("decidables-toggle-option",Us);var js,Ls,Vs,Bs={fromAttribute:function(t){return new Set(t.split(/\s+/))},toAttribute:function(t){return t.size?w(t).join(" "):null}},Ks=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.call(this)).interactive=!1,t}return i(n,null,[{key:"properties",get:function(){return{interactive:{attribute:"interactive",type:Boolean,reflect:!0}}}},{key:"colors",get:function(){return{h:vs[2],m:vs[4],fa:vs[1],cr:vs[0],hr:vs[5],far:vs[3],acc:vs[8],d:vs[7],c:vs[6],s:"#4545d0",present:"#f032e6",absent:"#10dbc9",correct:"#ffffff",error:"#000000",nr:"#cccccc"}}},{key:"lights",get:function(){return Object.keys(n.colors).reduce((function(t,e){return t[e]=gr(n.colors[e],"#ffffff")(.5),t}),{})}},{key:"darks",get:function(){return Object.keys(n.colors).reduce((function(t,e){return t[e]=gr(n.colors[e],"#000000")(.5),t}),{})}},{key:"styles",get:function(){return[b(l(n),"styles",this),R(js||(js=g(["\n :host {\n ---color-h: var(--color-h, ",");\n ---color-m: var(--color-m, ",");\n ---color-fa: var(--color-fa, ",");\n ---color-cr: var(--color-cr, ",");\n ---color-hr: var(--color-hr, ",");\n ---color-far: var(--color-far, ",");\n ---color-acc: var(--color-acc, ",");\n ---color-d: var(--color-d, ",");\n ---color-c: var(--color-c, ",");\n ---color-s: var(--color-s, ",");\n ---color-present: var(--color-present, ",");\n ---color-absent: var(--color-absent, ",");\n ---color-correct: var(--color-correct, ",");\n ---color-error: var(--color-error, ",");\n ---color-nr: var(--color-nr, ",");\n\n ---color-h-light: var(--color-h-light, ",");\n ---color-m-light: var(--color-m-light, ",");\n ---color-fa-light: var(--color-fa-light, ",");\n ---color-cr-light: var(--color-cr-light, ",");\n ---color-hr-light: var(--color-hr-light, ",");\n ---color-far-light: var(--color-far-light, ",");\n ---color-acc-light: var(--color-acc-light, ",");\n ---color-d-light: var(--color-d-light, ",");\n ---color-c-light: var(--color-c-light, ",");\n ---color-s-light: var(--color-s-light, ",");\n ---color-present-light: var(--color-present-light, ",");\n ---color-absent-light: var(--color-absent-light, ",");\n ---color-correct-light: var(--color-correct-light, ",");\n ---color-error-light: var(--color-error-light, ",");\n ---color-nr-light: var(--color-nr-light, ",");\n\n ---color-h-dark: var(--color-h-dark, ",");\n ---color-m-dark: var(--color-m-dark, ",");\n ---color-fa-dark: var(--color-fa-dark, ",");\n ---color-cr-dark: var(--color-cr-dark, ",");\n ---color-hr-dark: var(--color-hr-dark, ",");\n ---color-far-dark: var(--color-far-dark, ",");\n ---color-acc-dark: var(--color-acc-dark, ",");\n ---color-d-dark: var(--color-d-dark, ",");\n ---color-c-dark: var(--color-c-dark, ",");\n ---color-s-dark: var(--color-s-dark, ",");\n ---color-present-dark: var(--color-present-dark, ",");\n ---color-absent-dark: var(--color-absent-dark, ",");\n ---color-correct-dark: var(--color-correct-dark, ",");\n ---color-error-dark: var(--color-error-dark, ",");\n ---color-nr-dark: var(--color-nr-dark, ",");\n }\n "])),N(this.colors.h),N(this.colors.m),N(this.colors.fa),N(this.colors.cr),N(this.colors.hr),N(this.colors.far),N(this.colors.acc),N(this.colors.d),N(this.colors.c),N(this.colors.s),N(this.colors.present),N(this.colors.absent),N(this.colors.correct),N(this.colors.error),N(this.colors.nr),N(this.lights.h),N(this.lights.m),N(this.lights.fa),N(this.lights.cr),N(this.lights.hr),N(this.lights.far),N(this.lights.acc),N(this.lights.d),N(this.lights.c),N(this.lights.s),N(this.lights.present),N(this.lights.absent),N(this.lights.correct),N(this.lights.error),N(this.lights.nr),N(this.darks.h),N(this.darks.m),N(this.darks.fa),N(this.darks.cr),N(this.darks.hr),N(this.darks.far),N(this.darks.acc),N(this.darks.d),N(this.darks.c),N(this.darks.s),N(this.darks.present),N(this.darks.absent),N(this.darks.correct),N(this.darks.error),N(this.darks.nr))]}}]),n}(Ss),Xs=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.call(this)).coherence=.5,t.count=100,t.probability=.5,t.duration=2e3,t.wait=2e3,t.iti=2e3,t.trials=5,t.running=!1,t.direction=-1,t.lifetime=400,t.speed=50,t.width=NaN,t.height=NaN,t.rem=NaN,t.firstUpdate=!0,t.COHERENT=0,t.RANDOM=1,t.dots=[[],[]],t.trial=0,t.states=["resetted","iti","stimulus","wait","ended"],t.state="resetted",t.baseTime=0,t.pauseTime=0,t.startTime=0,t.lastTime=0,t.currentDirection=void 0,t.signals=["present","absent"],t.signal=void 0,t.runner=void 0,t.xScale=void 0,t.yScale=void 0,t}return i(n,[{key:"render",value:function(){return at(Ls||(Ls=g([""])))}},{key:"getDimensions",value:function(){this.width=parseFloat(this.getComputedStyleValue("width"),10),this.height=parseFloat(this.getComputedStyleValue("height"),10),this.rem=parseFloat(getComputedStyle(document.documentElement).getPropertyValue("font-size"),10)}},{key:"connectedCallback",value:function(){b(l(n.prototype),"connectedCallback",this).call(this),window.addEventListener("resize",this.getDimensions.bind(this))}},{key:"disconnectedCallback",value:function(){window.removeEventListener("resize",this.getDimensions.bind(this)),b(l(n.prototype),"disconnectedCallback",this).call(this)}},{key:"firstUpdated",value:function(t){b(l(n.prototype),"firstUpdated",this).call(this,t),window.setTimeout(this.getDimensions.bind(this),0)}},{key:"update",value:function(t){var e=this;if(b(l(n.prototype),"update",this).call(this,t),!(Number.isNaN(this.width)||Number.isNaN(this.height)||Number.isNaN(this.rem))){var r=this.width,a=this.height,i=Math.min(r,a),o={top:.25*this.rem,bottom:.25*this.rem,left:.25*this.rem,right:.25*this.rem},s=i-(o.top+o.bottom),c=i-(o.left+o.right);this.xScale=is().domain([-1,1]).range([0,c]),this.yScale=is().domain([1,-1]).range([0,s]);var u=An(this.renderRoot).selectAll(".main").data([{width:this.width,height:this.height,rem:this.rem}]),h=u.enter().append("svg").classed("main",!0),d=h.merge(u).attr("viewBox","0 0 ".concat(i," ").concat(i));h.append("clipPath").attr("id","clip-rdk-task").append("circle"),d.select("clipPath circle").attr("cx",this.xScale(0)).attr("cy",this.yScale(0)).attr("r",this.xScale(1)-this.xScale(0));var f=h.append("g").classed("plot",!0),p=d.select(".plot").attr("transform","translate(".concat(o.left,", ").concat(o.top,")")),v=f.append("g").classed("underlayer",!0),m=p.select(".underlayer");v.append("circle").classed("background",!0),m.select(".background").attr("cx",this.xScale(0)).attr("cy",this.yScale(0)).attr("r",this.xScale(1)-this.xScale(0)),f.append("g").classed("content",!0).attr("clip-path","url(#clip-rdk-task)"),p.select(".content").selectAll(".dots").data([[],[]]).enter().append("g").classed("dots",!0).classed("coherent",(function(t,n){return n===e.COHERENT})).classed("random",(function(t,n){return n===e.RANDOM}));var g=f.append("g").classed("overlayer",!0),y=p.select(".overlayer");g.append("circle").classed("outline",!0),y.select(".outline").attr("cx",this.xScale(0)).attr("cy",this.yScale(0)).attr("r",this.xScale(1)-this.yScale(0)),(this.firstUpdate||t.has("running"))&&(this.running?(this.pauseTime&&(this.baseTime+=Kr()-this.pauseTime,this.pauseTime=0),this.runner=function(t,e,n){var r=new Gr,a=e;return null==e?(r.restart(t,e,n),r):(r._restart=r.restart,r.restart=function(t,e,n){e=+e,n=null==n?Kr():+n,r._restart((function i(o){o+=a,r._restart(i,a+=e,n),t(o)}),e,n)},r.restart(t,e,n),r)}(this.run.bind(this),20)):void 0!==this.runner&&(this.runner.stop(),this.pauseTime=Kr())),this.firstUpdate=!1}}},{key:"reset",value:function(){void 0!==this.runner&&this.runner.stop(),this.running=!1,this.trial=0,this.state="resetted",this.baseTime=0,this.pauseTime=0,this.startTime=0,this.lastTime=0,this.signal=void 0,this.currentDirection=void 0;var t=An(this.renderRoot).select(".content").selectAll(".dots").data([[],[]]).selectAll(".dot").data((function(t){return t}));t.exit().remove(),An(this.renderRoot).select(".content").selectAll(".fixation").data([]).exit().remove(),An(this.renderRoot).select(".content").selectAll(".query").data([]).exit().remove()}},{key:"run",value:function(){var t=Kr(),e=this.baseTime?t-this.baseTime:0,n=this.baseTime?e-this.startTime:0,r=this.baseTime?e-this.lastTime:0;this.lastTime=e;var a=!1;if("resetted"===this.state?(this.state="iti",this.baseTime=t,this.startTime=0,this.dispatchEvent(new CustomEvent("rdk-block-start",{detail:{trials:this.trials},bubbles:!0}))):"iti"===this.state&&n>=this.iti?(a=!0,this.trial+=1,this.state="stimulus",this.startTime=e,this.signal=Math.random()<this.probability?"present":"absent",this.currentDirection="absent"===this.signal?void 0:this.direction>=0?this.direction:360*Math.random(),this.dispatchEvent(new CustomEvent("rdk-trial-start",{detail:{trials:this.trials,duration:this.duration,wait:this.wait,iti:this.iti,trial:this.trial,signal:this.signal},bubbles:!0}))):"stimulus"===this.state&&n>=this.duration?(this.state="wait",this.startTime=e,this.dispatchEvent(new CustomEvent("rdk-trial-middle",{detail:{trials:this.trials,duration:this.duration,wait:this.wait,iti:this.iti,trial:this.trial,signal:this.signal},bubbles:!0}))):"wait"===this.state&&n>=this.wait&&(this.dispatchEvent(new CustomEvent("rdk-trial-end",{detail:{trials:this.trials,duration:this.duration,wait:this.wait,iti:this.iti,trial:this.trial,signal:this.signal},bubbles:!0})),this.trial>=this.trials?(this.runner.stop(),this.running=!1,this.state="ended",this.baseTime=0,this.pauseTime=0,this.startTime=0,this.lastTime=0,this.signal=void 0,this.currentDirection=void 0,this.dispatchEvent(new CustomEvent("rdk-block-end",{detail:{trials:this.trial},bubbles:!0}))):(this.state="iti",this.startTime=e)),"stimulus"===this.state){this.dots[this.COHERENT].length="present"===this.signal?Math.round(this.count*this.coherence):0,this.dots[this.RANDOM].length="present"===this.signal?this.count-this.dots[this.COHERENT].length:this.count;for(var i=0;i<this.dots.length;i+=1)for(var o=0;o<this.dots[i].length;o+=1){var s=void 0===this.dots[i][o];s&&(this.dots[i][o]={});var l=this.dots[i][o];if(a||s){l.direction=i===this.RANDOM?360*Math.random():this.currentDirection,l.birth=e-Math.floor(Math.random()*this.lifetime);var c=2*Math.random()*Math.PI,u=Math.sqrt(Math.random());l.x=this.xScale(u*Math.cos(c)),l.y=this.yScale(u*Math.sin(c))}else if(e>l.birth+this.lifetime){l.birth+=this.lifetime,l.direction=i===this.RANDOM?360*Math.random():this.currentDirection;var h=2*Math.random()*Math.PI,d=Math.sqrt(Math.random());l.x=this.xScale(d*Math.cos(h)),l.y=this.yScale(d*Math.sin(h))}else{i===this.COHERENT&&(l.direction=this.currentDirection);var f=l.direction*(Math.PI/180);l.dx=this.speed*(r/1e3)*Math.cos(f),l.dy=this.speed*(r/1e3)*Math.sin(f),l.x+=l.dx,l.y+=l.dy,Math.pow(l.x-this.xScale(0),2)+Math.pow(l.y-this.yScale(0),2)>Math.pow(this.xScale(1)-this.xScale(0),2)&&(l.x=-(l.x-this.xScale(0))+this.xScale(0),l.y=-(l.y-this.yScale(0))+this.yScale(0))}}}var p=An(this.renderRoot).select(".content").selectAll(".fixation").data("iti"===this.state?[!0]:[]),v=p.enter().append("g").classed("fixation",!0);v.append("line").attr("x1",this.xScale(-.1)).attr("y1",this.xScale(0)).attr("x2",this.xScale(.1)).attr("y2",this.xScale(0)),v.append("line").attr("x1",this.xScale(0)).attr("y1",this.xScale(-.1)).attr("x2",this.xScale(0)).attr("y2",this.xScale(.1)),p.exit().remove();var m=An(this.renderRoot).select(".content").selectAll(".dots").data("stimulus"===this.state?this.dots:[[],[]]).selectAll(".dot").data((function(t){return t}));m.enter().append("circle").classed("dot",!0).attr("r",2).merge(m).attr("cx",(function(t){return t.x})).attr("cy",(function(t){return t.y})),m.exit().remove();var b=An(this.renderRoot).select(".content").selectAll(".query").data("wait"===this.state?[!0]:[]);b.enter().append("g").classed("query",!0).append("text").attr("x",this.xScale(0)).attr("y",this.xScale(0)).attr("text-anchor","middle").attr("alignment-baseline","middle").text("?"),b.exit().remove()}}],[{key:"properties",get:function(){return{coherence:{attribute:"coherence",type:Number,reflect:!0},count:{attribute:"count",type:Number,reflect:!0},probability:{attribute:"probability",type:Number,reflect:!0},duration:{attribute:"duration",type:Number,reflect:!0},wait:{attribute:"wait",type:Number,reflect:!0},iti:{attribute:"iti",type:Number,reflect:!0},trials:{attribute:"trials",type:Number,reflect:!0},running:{attribute:"running",type:Boolean,reflect:!0},direction:{attribute:!1,type:Number,reflect:!1},lifetime:{attribute:!1,type:Number,reflect:!1},speed:{attribute:!1,type:Number,reflect:!1},width:{attribute:!1,type:Number,reflect:!1},height:{attribute:!1,type:Number,reflect:!1},rem:{attribute:!1,type:Number,reflect:!1}}}},{key:"styles",get:function(){return[b(l(n),"styles",this),R(Vs||(Vs=g(["\n :host {\n display: inline-block;\n\n width: 10rem;\n height: 10rem;\n }\n\n .main {\n width: 100%;\n height: 100%;\n }\n\n .background {\n fill: var(---color-element-disabled);\n stroke: none;\n }\n\n .outline {\n fill: none;\n stroke: var(---color-element-emphasis);\n stroke-width: 2px;\n }\n\n .dot {\n /* r: 2px; HACK: Firefox does not support CSS SVG Geometry Properties */\n }\n\n .dots.coherent {\n fill: var(---color-background);\n }\n\n .dots.random {\n fill: var(---color-background);\n }\n\n .fixation {\n stroke: var(---color-text);\n stroke-width: 2px;\n }\n\n .query {\n font-size: 1.75rem;\n font-weight: 600;\n }\n "])))]}}]),n}(Ks);customElements.define("rdk-task",Xs);"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var Gs,Zs,Ys,Ws,Qs,Js,tl,el,nl,rl,al,il,ol,sl,ll,cl,ul,hl,dl,fl,pl,vl,ml,bl,gl=function(t){var e={exports:{}};return t(e,e.exports),e.exports}((function(t,e){var n;t.exports=(n=function(t,e){var n=Array.prototype.concat,r=Array.prototype.slice,a=Object.prototype.toString;function i(e,n){var r=e>n?e:n;return t.pow(10,17-~~(t.log(r>0?r:-r)*t.LOG10E))}var o=Array.isArray||function(t){return"[object Array]"===a.call(t)};function s(t){return"[object Function]"===a.call(t)}function l(t){return"number"==typeof t&&t-t==0}function c(t){return n.apply([],t)}function u(){return new u._init(arguments)}function h(){return 0}function d(){return 1}function f(t,e){return t===e?1:0}u.fn=u.prototype,u._init=function(t){if(o(t[0]))if(o(t[0][0])){s(t[1])&&(t[0]=u.map(t[0],t[1]));for(var e=0;e<t[0].length;e++)this[e]=t[0][e];this.length=t[0].length}else this[0]=s(t[1])?u.map(t[0],t[1]):t[0],this.length=1;else if(l(t[0]))this[0]=u.seq.apply(null,t),this.length=1;else{if(t[0]instanceof u)return u(t[0].toArray());this[0]=[],this.length=1}return this},u._init.prototype=u.prototype,u._init.constructor=u,u.utils={calcRdx:i,isArray:o,isFunction:s,isNumber:l,toVector:c},u._random_fn=t.random,u.setRandom=function(t){if("function"!=typeof t)throw new TypeError("fn is not a function");u._random_fn=t},u.extend=function(t){var e,n;if(1===arguments.length){for(n in t)u[n]=t[n];return this}for(e=1;e<arguments.length;e++)for(n in arguments[e])t[n]=arguments[e][n];return t},u.rows=function(t){return t.length||1},u.cols=function(t){return t[0].length||1},u.dimensions=function(t){return{rows:u.rows(t),cols:u.cols(t)}},u.row=function(t,e){return o(e)?e.map((function(e){return u.row(t,e)})):t[e]},u.rowa=function(t,e){return u.row(t,e)},u.col=function(t,e){if(o(e)){var n=u.arange(t.length).map((function(){return new Array(e.length)}));return e.forEach((function(e,r){u.arange(t.length).forEach((function(a){n[a][r]=t[a][e]}))})),n}for(var r=new Array(t.length),a=0;a<t.length;a++)r[a]=[t[a][e]];return r},u.cola=function(t,e){return u.col(t,e).map((function(t){return t[0]}))},u.diag=function(t){for(var e=u.rows(t),n=new Array(e),r=0;r<e;r++)n[r]=[t[r][r]];return n},u.antidiag=function(t){for(var e=u.rows(t)-1,n=new Array(e),r=0;e>=0;e--,r++)n[r]=[t[r][e]];return n},u.transpose=function(t){var e,n,r,a,i,s=[];for(o(t[0])||(t=[t]),n=t.length,r=t[0].length,i=0;i<r;i++){for(e=new Array(n),a=0;a<n;a++)e[a]=t[a][i];s.push(e)}return 1===s.length?s[0]:s},u.map=function(t,e,n){var r,a,i,s,l;for(o(t[0])||(t=[t]),a=t.length,i=t[0].length,s=n?t:new Array(a),r=0;r<a;r++)for(s[r]||(s[r]=new Array(i)),l=0;l<i;l++)s[r][l]=e(t[r][l],r,l);return 1===s.length?s[0]:s},u.cumreduce=function(t,e,n){var r,a,i,s,l;for(o(t[0])||(t=[t]),a=t.length,i=t[0].length,s=n?t:new Array(a),r=0;r<a;r++)for(s[r]||(s[r]=new Array(i)),i>0&&(s[r][0]=t[r][0]),l=1;l<i;l++)s[r][l]=e(s[r][l-1],t[r][l]);return 1===s.length?s[0]:s},u.alter=function(t,e){return u.map(t,e,!0)},u.create=function(t,e,n){var r,a,i=new Array(t);for(s(e)&&(n=e,e=t),r=0;r<t;r++)for(i[r]=new Array(e),a=0;a<e;a++)i[r][a]=n(r,a);return i},u.zeros=function(t,e){return l(e)||(e=t),u.create(t,e,h)},u.ones=function(t,e){return l(e)||(e=t),u.create(t,e,d)},u.rand=function(t,e){return l(e)||(e=t),u.create(t,e,u._random_fn)},u.identity=function(t,e){return l(e)||(e=t),u.create(t,e,f)},u.symmetric=function(t){var e,n,r=t.length;if(t.length!==t[0].length)return!1;for(e=0;e<r;e++)for(n=0;n<r;n++)if(t[n][e]!==t[e][n])return!1;return!0},u.clear=function(t){return u.alter(t,h)},u.seq=function(t,e,n,r){s(r)||(r=!1);var a,o=[],l=i(t,e),c=(e*l-t*l)/((n-1)*l),u=t;for(a=0;u<=e&&a<n;u=(t*l+c*l*++a)/l)o.push(r?r(u,a):u);return o},u.arange=function(t,n,r){var a,i=[];if(r=r||1,n===e&&(n=t,t=0),t===n||0===r)return[];if(t<n&&r<0)return[];if(t>n&&r>0)return[];if(r>0)for(a=t;a<n;a+=r)i.push(a);else for(a=t;a>n;a+=r)i.push(a);return i},u.slice=function(){function t(t,n,r,a){var i,o=[],s=t.length;if(n===e&&r===e&&a===e)return u.copy(t);if(a=a||1,(n=(n=n||0)>=0?n:s+n)===(r=(r=r||t.length)>=0?r:s+r)||0===a)return[];if(n<r&&a<0)return[];if(n>r&&a>0)return[];if(a>0)for(i=n;i<r;i+=a)o.push(t[i]);else for(i=n;i>r;i+=a)o.push(t[i]);return o}function n(e,n){var r,a;return l((n=n||{}).row)?l(n.col)?e[n.row][n.col]:t(u.rowa(e,n.row),(r=n.col||{}).start,r.end,r.step):l(n.col)?t(u.cola(e,n.col),(a=n.row||{}).start,a.end,a.step):(a=n.row||{},r=n.col||{},t(e,a.start,a.end,a.step).map((function(e){return t(e,r.start,r.end,r.step)})))}return n}(),u.sliceAssign=function(n,r,a){var i,o;if(l(r.row)){if(l(r.col))return n[r.row][r.col]=a;r.col=r.col||{},r.col.start=r.col.start||0,r.col.end=r.col.end||n[0].length,r.col.step=r.col.step||1,i=u.arange(r.col.start,t.min(n.length,r.col.end),r.col.step);var s=r.row;return i.forEach((function(t,e){n[s][t]=a[e]})),n}if(l(r.col)){r.row=r.row||{},r.row.start=r.row.start||0,r.row.end=r.row.end||n.length,r.row.step=r.row.step||1,o=u.arange(r.row.start,t.min(n[0].length,r.row.end),r.row.step);var c=r.col;return o.forEach((function(t,e){n[t][c]=a[e]})),n}return a[0].length===e&&(a=[a]),r.row.start=r.row.start||0,r.row.end=r.row.end||n.length,r.row.step=r.row.step||1,r.col.start=r.col.start||0,r.col.end=r.col.end||n[0].length,r.col.step=r.col.step||1,o=u.arange(r.row.start,t.min(n.length,r.row.end),r.row.step),i=u.arange(r.col.start,t.min(n[0].length,r.col.end),r.col.step),o.forEach((function(t,e){i.forEach((function(r,i){n[t][r]=a[e][i]}))})),n},u.diagonal=function(t){var e=u.zeros(t.length,t.length);return t.forEach((function(t,n){e[n][n]=t})),e},u.copy=function(t){return t.map((function(t){return l(t)?t:t.map((function(t){return t}))}))};var p=u.prototype;return p.length=0,p.push=Array.prototype.push,p.sort=Array.prototype.sort,p.splice=Array.prototype.splice,p.slice=Array.prototype.slice,p.toArray=function(){return this.length>1?r.call(this):r.call(this)[0]},p.map=function(t,e){return u(u.map(this,t,e))},p.cumreduce=function(t,e){return u(u.cumreduce(this,t,e))},p.alter=function(t){return u.alter(this,t),this},function(t){for(var e=0;e<t.length;e++)!function(t){p[t]=function(e){var n,r=this;return e?(setTimeout((function(){e.call(r,p[t].call(r))})),this):(n=u[t](this),o(n)?u(n):n)}}(t[e])}("transpose clear symmetric rows cols dimensions diag antidiag".split(" ")),function(t){for(var e=0;e<t.length;e++)!function(t){p[t]=function(e,n){var r=this;return n?(setTimeout((function(){n.call(r,p[t].call(r,e))})),this):u(u[t](this,e))}}(t[e])}("row col".split(" ")),function(t){for(var e=0;e<t.length;e++)!function(t){p[t]=function(){return u(u[t].apply(null,arguments))}}(t[e])}("create zeros ones rand identity".split(" ")),u}(Math),function(t,e){var n=t.utils.isFunction;function r(t,e){return t-e}function a(t,n,r){return e.max(n,e.min(t,r))}t.sum=function(t){for(var e=0,n=t.length;--n>=0;)e+=t[n];return e},t.sumsqrd=function(t){for(var e=0,n=t.length;--n>=0;)e+=t[n]*t[n];return e},t.sumsqerr=function(e){for(var n,r=t.mean(e),a=0,i=e.length;--i>=0;)a+=(n=e[i]-r)*n;return a},t.sumrow=function(t){for(var e=0,n=t.length;--n>=0;)e+=t[n];return e},t.product=function(t){for(var e=1,n=t.length;--n>=0;)e*=t[n];return e},t.min=function(t){for(var e=t[0],n=0;++n<t.length;)t[n]<e&&(e=t[n]);return e},t.max=function(t){for(var e=t[0],n=0;++n<t.length;)t[n]>e&&(e=t[n]);return e},t.unique=function(t){for(var e={},n=[],r=0;r<t.length;r++)e[t[r]]||(e[t[r]]=!0,n.push(t[r]));return n},t.mean=function(e){return t.sum(e)/e.length},t.meansqerr=function(e){return t.sumsqerr(e)/e.length},t.geomean=function(n){return e.pow(t.product(n),1/n.length)},t.median=function(t){var e=t.length,n=t.slice().sort(r);return 1&e?n[e/2|0]:(n[e/2-1]+n[e/2])/2},t.cumsum=function(e){return t.cumreduce(e,(function(t,e){return t+e}))},t.cumprod=function(e){return t.cumreduce(e,(function(t,e){return t*e}))},t.diff=function(t){var e,n=[],r=t.length;for(e=1;e<r;e++)n.push(t[e]-t[e-1]);return n},t.rank=function(t){var e,n=[],a={};for(e=0;e<t.length;e++)a[l=t[e]]?a[l]++:(a[l]=1,n.push(l));var i=n.sort(r),o={},s=1;for(e=0;e<i.length;e++){var l,c=a[l=i[e]],u=(s+(s+c-1))/2;o[l]=u,s+=c}return t.map((function(t){return o[t]}))},t.mode=function(t){var e,n=t.length,a=t.slice().sort(r),i=1,o=0,s=0,l=[];for(e=0;e<n;e++)a[e]===a[e+1]?i++:(i>o?(l=[a[e]],o=i,s=0):i===o&&(l.push(a[e]),s++),i=1);return 0===s?l[0]:l},t.range=function(e){return t.max(e)-t.min(e)},t.variance=function(e,n){return t.sumsqerr(e)/(e.length-(n?1:0))},t.pooledvariance=function(e){var n=e.reduce((function(e,n){return e+t.sumsqerr(n)}),0),r=e.reduce((function(t,e){return t+e.length}),0);return n/(r-e.length)},t.deviation=function(e){for(var n=t.mean(e),r=e.length,a=new Array(r),i=0;i<r;i++)a[i]=e[i]-n;return a},t.stdev=function(n,r){return e.sqrt(t.variance(n,r))},t.pooledstdev=function(n){return e.sqrt(t.pooledvariance(n))},t.meandev=function(n){for(var r=t.mean(n),a=[],i=n.length-1;i>=0;i--)a.push(e.abs(n[i]-r));return t.mean(a)},t.meddev=function(n){for(var r=t.median(n),a=[],i=n.length-1;i>=0;i--)a.push(e.abs(n[i]-r));return t.median(a)},t.coeffvar=function(e){return t.stdev(e)/t.mean(e)},t.quartiles=function(t){var n=t.length,a=t.slice().sort(r);return[a[e.round(n/4)-1],a[e.round(n/2)-1],a[e.round(3*n/4)-1]]},t.quantiles=function(t,n,i,o){var s,l,c,u,h,d=t.slice().sort(r),f=[n.length],p=t.length;for(void 0===i&&(i=3/8),void 0===o&&(o=3/8),s=0;s<n.length;s++)c=p*(l=n[s])+(i+l*(1-i-o)),u=e.floor(a(c,1,p-1)),h=a(c-u,0,1),f[s]=(1-h)*d[u-1]+h*d[u];return f},t.percentile=function(t,e,n){var a=t.slice().sort(r),i=e*(a.length+(n?1:-1))+(n?0:1),o=parseInt(i),s=i-o;return o+1<a.length?a[o-1]+s*(a[o]-a[o-1]):a[o-1]},t.percentileOfScore=function(t,e,n){var r,a,i=0,o=t.length,s=!1;for("strict"===n&&(s=!0),a=0;a<o;a++)r=t[a],(s&&r<e||!s&&r<=e)&&i++;return i/o},t.histogram=function(n,r){r=r||4;var a,i=t.min(n),o=(t.max(n)-i)/r,s=n.length,l=[];for(a=0;a<r;a++)l[a]=0;for(a=0;a<s;a++)l[e.min(e.floor((n[a]-i)/o),r-1)]+=1;return l},t.covariance=function(e,n){var r,a=t.mean(e),i=t.mean(n),o=e.length,s=new Array(o);for(r=0;r<o;r++)s[r]=(e[r]-a)*(n[r]-i);return t.sum(s)/(o-1)},t.corrcoeff=function(e,n){return t.covariance(e,n)/t.stdev(e,1)/t.stdev(n,1)},t.spearmancoeff=function(e,n){return e=t.rank(e),n=t.rank(n),t.corrcoeff(e,n)},t.stanMoment=function(n,r){for(var a=t.mean(n),i=t.stdev(n),o=n.length,s=0,l=0;l<o;l++)s+=e.pow((n[l]-a)/i,r);return s/n.length},t.skewness=function(e){return t.stanMoment(e,3)},t.kurtosis=function(e){return t.stanMoment(e,4)-3};var i=t.prototype;!function(e){for(var r=0;r<e.length;r++)!function(e){i[e]=function(r,a){var o=[],s=0,l=this;if(n(r)&&(a=r,r=!1),a)return setTimeout((function(){a.call(l,i[e].call(l,r))})),this;if(this.length>1){for(l=!0===r?this:this.transpose();s<l.length;s++)o[s]=t[e](l[s]);return o}return t[e](this[0],r)}}(e[r])}("cumsum cumprod".split(" ")),function(e){for(var r=0;r<e.length;r++)!function(e){i[e]=function(r,a){var o=[],s=0,l=this;if(n(r)&&(a=r,r=!1),a)return setTimeout((function(){a.call(l,i[e].call(l,r))})),this;if(this.length>1){for("sumrow"!==e&&(l=!0===r?this:this.transpose());s<l.length;s++)o[s]=t[e](l[s]);return!0===r?t[e](t.utils.toVector(o)):o}return t[e](this[0],r)}}(e[r])}("sum sumsqrd sumsqerr sumrow product min max unique mean meansqerr geomean median diff rank mode range variance deviation stdev meandev meddev coeffvar quartiles histogram skewness kurtosis".split(" ")),function(e){for(var r=0;r<e.length;r++)!function(e){i[e]=function(){var r,a=[],o=0,s=this,l=Array.prototype.slice.call(arguments);if(n(l[l.length-1])){r=l[l.length-1];var c=l.slice(0,l.length-1);return setTimeout((function(){r.call(s,i[e].apply(s,c))})),this}r=void 0;var u=function(n){return t[e].apply(s,[n].concat(l))};if(this.length>1){for(s=s.transpose();o<s.length;o++)a[o]=u(s[o]);return a}return u(this[0])}}(e[r])}("quantiles percentileOfScore".split(" "))}(n,Math),function(t,e){t.gammaln=function(t){var n,r,a,i=0,o=[76.18009172947146,-86.50532032941678,24.01409824083091,-1.231739572450155,.001208650973866179,-5395239384953e-18],s=1.000000000190015;for(a=(r=n=t)+5.5,a-=(n+.5)*e.log(a);i<6;i++)s+=o[i]/++r;return e.log(2.5066282746310007*s/n)-a},t.loggam=function(t){var n,r,a,i,o,s,l,c=[.08333333333333333,-.002777777777777778,.0007936507936507937,-.0005952380952380952,.0008417508417508418,-.001917526917526918,.00641025641025641,-.02955065359477124,.1796443723688307,-1.3924322169059];if(n=t,l=0,1==t||2==t)return 0;for(t<=7&&(n=t+(l=e.floor(7-t))),r=1/(n*n),a=2*e.PI,o=c[9],s=8;s>=0;s--)o*=r,o+=c[s];if(i=o/n+.5*e.log(a)+(n-.5)*e.log(n)-n,t<=7)for(s=1;s<=l;s++)i-=e.log(n-1),n-=1;return i},t.gammafn=function(t){var n,r,a,i,o=[-1.716185138865495,24.76565080557592,-379.80425647094563,629.3311553128184,866.9662027904133,-31451.272968848367,-36144.413418691176,66456.14382024054],s=[-30.8402300119739,315.35062697960416,-1015.1563674902192,-3107.771671572311,22538.11842098015,4755.846277527881,-134659.9598649693,-115132.2596755535],l=!1,c=0,u=0,h=0,d=t;if(t>171.6243769536076)return 1/0;if(d<=0){if(!(i=d%1+36e-17))return 1/0;l=(1&d?-1:1)*e.PI/e.sin(e.PI*i),d=1-d}for(a=d,r=d<1?d++:(d-=c=(0|d)-1)-1,n=0;n<8;++n)h=(h+o[n])*r,u=u*r+s[n];if(i=h/u+1,a<d)i/=a;else if(a>d)for(n=0;n<c;++n)i*=d,d++;return l&&(i=l/i),i},t.gammap=function(e,n){return t.lowRegGamma(e,n)*t.gammafn(e)},t.lowRegGamma=function(n,r){var a,i=t.gammaln(n),o=n,s=1/n,l=s,c=r+1-n,u=1/1e-30,h=1/c,d=h,f=1,p=-~(8.5*e.log(n>=1?n:1/n)+.4*n+17);if(r<0||n<=0)return NaN;if(r<n+1){for(;f<=p;f++)s+=l*=r/++o;return s*e.exp(-r+n*e.log(r)-i)}for(;f<=p;f++)d*=(h=1/(h=(a=-f*(f-n))*h+(c+=2)))*(u=c+a/u);return 1-d*e.exp(-r+n*e.log(r)-i)},t.factorialln=function(e){return e<0?NaN:t.gammaln(e+1)},t.factorial=function(e){return e<0?NaN:t.gammafn(e+1)},t.combination=function(n,r){return n>170||r>170?e.exp(t.combinationln(n,r)):t.factorial(n)/t.factorial(r)/t.factorial(n-r)},t.combinationln=function(e,n){return t.factorialln(e)-t.factorialln(n)-t.factorialln(e-n)},t.permutation=function(e,n){return t.factorial(e)/t.factorial(e-n)},t.betafn=function(n,r){if(!(n<=0||r<=0))return n+r>170?e.exp(t.betaln(n,r)):t.gammafn(n)*t.gammafn(r)/t.gammafn(n+r)},t.betaln=function(e,n){return t.gammaln(e)+t.gammaln(n)-t.gammaln(e+n)},t.betacf=function(t,n,r){var a,i,o,s,l=1e-30,c=1,u=n+r,h=n+1,d=n-1,f=1,p=1-u*t/h;for(e.abs(p)<l&&(p=l),s=p=1/p;c<=100&&(p=1+(i=c*(r-c)*t/((d+(a=2*c))*(n+a)))*p,e.abs(p)<l&&(p=l),f=1+i/f,e.abs(f)<l&&(f=l),s*=(p=1/p)*f,p=1+(i=-(n+c)*(u+c)*t/((n+a)*(h+a)))*p,e.abs(p)<l&&(p=l),f=1+i/f,e.abs(f)<l&&(f=l),s*=o=(p=1/p)*f,!(e.abs(o-1)<3e-7));c++);return s},t.gammapinv=function(n,r){var a,i,o,s,l,c,u=0,h=r-1,d=1e-8,f=t.gammaln(r);if(n>=1)return e.max(100,r+100*e.sqrt(r));if(n<=0)return 0;for(r>1?(l=e.log(h),c=e.exp(h*(l-1)-f),s=n<.5?n:1-n,a=(2.30753+.27061*(i=e.sqrt(-2*e.log(s))))/(1+i*(.99229+.04481*i))-i,n<.5&&(a=-a),a=e.max(.001,r*e.pow(1-1/(9*r)-a/(3*e.sqrt(r)),3))):a=n<(i=1-r*(.253+.12*r))?e.pow(n/i,1/r):1-e.log(1-(n-i)/(1-i));u<12;u++){if(a<=0)return 0;if((a-=i=(o=(t.lowRegGamma(r,a)-n)/(i=r>1?c*e.exp(-(a-h)+h*(e.log(a)-l)):e.exp(-a+h*e.log(a)-f)))/(1-.5*e.min(1,o*((r-1)/a-1))))<=0&&(a=.5*(a+i)),e.abs(i)<d*a)break}return a},t.erf=function(t){var n,r,a,i,o=[-1.3026537197817094,.6419697923564902,.019476473204185836,-.00956151478680863,-.000946595344482036,.000366839497852761,42523324806907e-18,-20278578112534e-18,-1624290004647e-18,130365583558e-17,1.5626441722e-8,-8.5238095915e-8,6.529054439e-9,5.059343495e-9,-9.91364156e-10,-2.27365122e-10,96467911e-18,2394038e-18,-6886027e-18,894487e-18,313092e-18,-112708e-18,381e-18,7106e-18,-1523e-18,-94e-18,121e-18,-28e-18],s=o.length-1,l=!1,c=0,u=0;for(t<0&&(t=-t,l=!0),r=4*(n=2/(2+t))-2;s>0;s--)a=c,c=r*c-u+o[s],u=a;return i=n*e.exp(-t*t+.5*(o[0]+r*c)-u),l?i-1:1-i},t.erfc=function(e){return 1-t.erf(e)},t.erfcinv=function(n){var r,a,i,o,s=0;if(n>=2)return-100;if(n<=0)return 100;for(o=n<1?n:2-n,r=-.70711*((2.30753+.27061*(i=e.sqrt(-2*e.log(o/2))))/(1+i*(.99229+.04481*i))-i);s<2;s++)r+=(a=t.erfc(r)-o)/(1.1283791670955126*e.exp(-r*r)-r*a);return n<1?r:-r},t.ibetainv=function(n,r,a){var i,o,s,l,c,u,h,d,f,p,v=1e-8,m=r-1,b=a-1,g=0;if(n<=0)return 0;if(n>=1)return 1;for(r>=1&&a>=1?(s=n<.5?n:1-n,u=(2.30753+.27061*(l=e.sqrt(-2*e.log(s))))/(1+l*(.99229+.04481*l))-l,n<.5&&(u=-u),h=(u*u-3)/6,d=2/(1/(2*r-1)+1/(2*a-1)),f=u*e.sqrt(h+d)/d-(1/(2*a-1)-1/(2*r-1))*(h+5/6-2/(3*d)),u=r/(r+a*e.exp(2*f))):(i=e.log(r/(r+a)),o=e.log(a/(r+a)),u=n<(l=e.exp(r*i)/r)/(f=l+(c=e.exp(a*o)/a))?e.pow(r*f*n,1/r):1-e.pow(a*f*(1-n),1/a)),p=-t.gammaln(r)-t.gammaln(a)+t.gammaln(r+a);g<10;g++){if(0===u||1===u)return u;if((u-=l=(c=(t.ibeta(u,r,a)-n)/(l=e.exp(m*e.log(u)+b*e.log(1-u)+p)))/(1-.5*e.min(1,c*(m/u-b/(1-u)))))<=0&&(u=.5*(u+l)),u>=1&&(u=.5*(u+l+1)),e.abs(l)<v*u&&g>0)break}return u},t.ibeta=function(n,r,a){var i=0===n||1===n?0:e.exp(t.gammaln(r+a)-t.gammaln(r)-t.gammaln(a)+r*e.log(n)+a*e.log(1-n));return!(n<0||n>1)&&(n<(r+1)/(r+a+2)?i*t.betacf(n,r,a)/r:1-i*t.betacf(1-n,a,r)/a)},t.randn=function(n,r){var a,i,o,s,l;if(r||(r=n),n)return t.create(n,r,(function(){return t.randn()}));do{a=t._random_fn(),i=1.7156*(t._random_fn()-.5),l=(o=a-.449871)*o+(s=e.abs(i)+.386595)*(.196*s-.25472*o)}while(l>.27597&&(l>.27846||i*i>-4*e.log(a)*a*a));return i/a},t.randg=function(n,r,a){var i,o,s,l,c,u,h=n;if(a||(a=r),n||(n=1),r)return(u=t.zeros(r,a)).alter((function(){return t.randg(n)})),u;n<1&&(n+=1),i=n-1/3,o=1/e.sqrt(9*i);do{do{l=1+o*(c=t.randn())}while(l<=0);l*=l*l,s=t._random_fn()}while(s>1-.331*e.pow(c,4)&&e.log(s)>.5*c*c+i*(1-l+e.log(l)));if(n==h)return i*l;do{s=t._random_fn()}while(0===s);return e.pow(s,1/h)*i*l},function(e){for(var n=0;n<e.length;n++)!function(e){t.fn[e]=function(){return t(t.map(this,(function(n){return t[e](n)})))}}(e[n])}("gammaln gammafn factorial factorialln".split(" ")),function(e){for(var n=0;n<e.length;n++)!function(e){t.fn[e]=function(){return t(t[e].apply(null,arguments))}}(e[n])}("randn".split(" "))}(n,Math),function(t,e){function n(t,n,r,a){for(var i,o=0,s=1,l=1,c=1,u=0,h=0;e.abs((l-h)/l)>a;)h=l,s=c+(i=-(n+u)*(n+r+u)*t/(n+2*u)/(n+2*u+1))*s,l=(o=l+i*o)+(i=(u+=1)*(r-u)*t/(n+2*u-1)/(n+2*u))*l,o/=c=s+i*c,s/=c,l/=c,c=1;return l/n}function r(t){return t/e.abs(t)}function a(n,r,a){var i=12,o=6,s=-30,l=-50,c=60,u=8,h=3,d=2,f=3,p=[.9815606342467192,.9041172563704749,.7699026741943047,.5873179542866175,.3678314989981802,.1252334085114689],v=[.04717533638651183,.10693932599531843,.16007832854334622,.20316742672306592,.2334925365383548,.24914704581340277],m=.5*n;if(m>=u)return 1;var b,g=2*t.normal.cdf(m,0,1,1,0)-1;g=g>=e.exp(l/a)?e.pow(g,a):0;for(var y=m,w=(u-m)/(b=n>h?d:f),k=y+w,x=0,_=a-1,S=1;S<=b;S++){for(var A=0,E=.5*(k+y),T=.5*(k-y),M=1;M<=i;M++){var C,N=E+T*(o<M?p[(C=i-M+1)-1]:-p[(C=M)-1]),R=N*N;if(R>c)break;var q=2*t.normal.cdf(N,0,1,1,0)*.5-2*t.normal.cdf(N,n,1,1,0)*.5;q>=e.exp(s/_)&&(A+=q=v[C-1]*e.exp(-.5*R)*e.pow(q,_))}x+=A*=2*T*a/e.sqrt(2*e.PI),y=k,k+=w}return(g+=x)<=e.exp(s/r)?0:(g=e.pow(g,r))>=1?1:g}function i(t,n,r){var a=.322232421088,i=.099348462606,o=-1,s=.588581570495,l=-.342242088547,c=.531103462366,u=-.204231210125,h=.10353775285,d=-453642210148e-16,f=.0038560700634,p=.8832,v=.2368,m=1.214,b=1.208,g=1.4142,y=120,w=.5-.5*t,k=e.sqrt(e.log(1/(w*w))),x=k+((((k*d+u)*k+l)*k+o)*k+a)/((((k*f+h)*k+c)*k+s)*k+i);r<y&&(x+=(x*x*x+x)/r/4);var _=p-v*x;return r<y&&(_+=-m/r+b*x/r),x*(_*e.log(n-1)+g)}!function(e){for(var n=0;n<e.length;n++)!function(e){t[e]=function t(e,n,r){return this instanceof t?(this._a=e,this._b=n,this._c=r,this):new t(e,n,r)},t.fn[e]=function(n,r,a){var i=t[e](n,r,a);return i.data=this,i},t[e].prototype.sample=function(n){var r=this._a,a=this._b,i=this._c;return n?t.alter(n,(function(){return t[e].sample(r,a,i)})):t[e].sample(r,a,i)},function(n){for(var r=0;r<n.length;r++)!function(n){t[e].prototype[n]=function(r){var a=this._a,i=this._b,o=this._c;return r||0===r||(r=this.data),"number"!=typeof r?t.fn.map.call(r,(function(r){return t[e][n](r,a,i,o)})):t[e][n](r,a,i,o)}}(n[r])}("pdf cdf inv".split(" ")),function(n){for(var r=0;r<n.length;r++)!function(n){t[e].prototype[n]=function(){return t[e][n](this._a,this._b,this._c)}}(n[r])}("mean median mode variance".split(" "))}(e[n])}("beta centralF cauchy chisquare exponential gamma invgamma kumaraswamy laplace lognormal noncentralt normal pareto studentt weibull uniform binomial negbin hypgeom poisson triangular tukey arcsine".split(" ")),t.extend(t.beta,{pdf:function(n,r,a){return n>1||n<0?0:1==r&&1==a?1:r<512&&a<512?e.pow(n,r-1)*e.pow(1-n,a-1)/t.betafn(r,a):e.exp((r-1)*e.log(n)+(a-1)*e.log(1-n)-t.betaln(r,a))},cdf:function(e,n,r){return e>1||e<0?1*(e>1):t.ibeta(e,n,r)},inv:function(e,n,r){return t.ibetainv(e,n,r)},mean:function(t,e){return t/(t+e)},median:function(e,n){return t.ibetainv(.5,e,n)},mode:function(t,e){return(t-1)/(t+e-2)},sample:function(e,n){var r=t.randg(e);return r/(r+t.randg(n))},variance:function(t,n){return t*n/(e.pow(t+n,2)*(t+n+1))}}),t.extend(t.centralF,{pdf:function(n,r,a){var i;return n<0?0:r<=2?0===n&&r<2?1/0:0===n&&2===r?1:1/t.betafn(r/2,a/2)*e.pow(r/a,r/2)*e.pow(n,r/2-1)*e.pow(1+r/a*n,-(r+a)/2):(i=r*n/(a+n*r),r*(a/(a+n*r))/2*t.binomial.pdf((r-2)/2,(r+a-2)/2,i))},cdf:function(e,n,r){return e<0?0:t.ibeta(n*e/(n*e+r),n/2,r/2)},inv:function(e,n,r){return r/(n*(1/t.ibetainv(e,n/2,r/2)-1))},mean:function(t,e){return e>2?e/(e-2):void 0},mode:function(t,e){return t>2?e*(t-2)/(t*(e+2)):void 0},sample:function(e,n){return 2*t.randg(e/2)/e/(2*t.randg(n/2)/n)},variance:function(t,e){if(!(e<=4))return 2*e*e*(t+e-2)/(t*(e-2)*(e-2)*(e-4))}}),t.extend(t.cauchy,{pdf:function(t,n,r){return r<0?0:r/(e.pow(t-n,2)+e.pow(r,2))/e.PI},cdf:function(t,n,r){return e.atan((t-n)/r)/e.PI+.5},inv:function(t,n,r){return n+r*e.tan(e.PI*(t-.5))},median:function(t){return t},mode:function(t){return t},sample:function(n,r){return t.randn()*e.sqrt(1/(2*t.randg(.5)))*r+n}}),t.extend(t.chisquare,{pdf:function(n,r){return n<0?0:0===n&&2===r?.5:e.exp((r/2-1)*e.log(n)-n/2-r/2*e.log(2)-t.gammaln(r/2))},cdf:function(e,n){return e<0?0:t.lowRegGamma(n/2,e/2)},inv:function(e,n){return 2*t.gammapinv(e,.5*n)},mean:function(t){return t},median:function(t){return t*e.pow(1-2/(9*t),3)},mode:function(t){return t-2>0?t-2:0},sample:function(e){return 2*t.randg(e/2)},variance:function(t){return 2*t}}),t.extend(t.exponential,{pdf:function(t,n){return t<0?0:n*e.exp(-n*t)},cdf:function(t,n){return t<0?0:1-e.exp(-n*t)},inv:function(t,n){return-e.log(1-t)/n},mean:function(t){return 1/t},median:function(t){return 1/t*e.log(2)},mode:function(){return 0},sample:function(n){return-1/n*e.log(t._random_fn())},variance:function(t){return e.pow(t,-2)}}),t.extend(t.gamma,{pdf:function(n,r,a){return n<0?0:0===n&&1===r?1/a:e.exp((r-1)*e.log(n)-n/a-t.gammaln(r)-r*e.log(a))},cdf:function(e,n,r){return e<0?0:t.lowRegGamma(n,e/r)},inv:function(e,n,r){return t.gammapinv(e,n)*r},mean:function(t,e){return t*e},mode:function(t,e){if(t>1)return(t-1)*e},sample:function(e,n){return t.randg(e)*n},variance:function(t,e){return t*e*e}}),t.extend(t.invgamma,{pdf:function(n,r,a){return n<=0?0:e.exp(-(r+1)*e.log(n)-a/n-t.gammaln(r)+r*e.log(a))},cdf:function(e,n,r){return e<=0?0:1-t.lowRegGamma(n,r/e)},inv:function(e,n,r){return r/t.gammapinv(1-e,n)},mean:function(t,e){return t>1?e/(t-1):void 0},mode:function(t,e){return e/(t+1)},sample:function(e,n){return n/t.randg(e)},variance:function(t,e){if(!(t<=2))return e*e/((t-1)*(t-1)*(t-2))}}),t.extend(t.kumaraswamy,{pdf:function(t,n,r){return 0===t&&1===n?r:1===t&&1===r?n:e.exp(e.log(n)+e.log(r)+(n-1)*e.log(t)+(r-1)*e.log(1-e.pow(t,n)))},cdf:function(t,n,r){return t<0?0:t>1?1:1-e.pow(1-e.pow(t,n),r)},inv:function(t,n,r){return e.pow(1-e.pow(1-t,1/r),1/n)},mean:function(e,n){return n*t.gammafn(1+1/e)*t.gammafn(n)/t.gammafn(1+1/e+n)},median:function(t,n){return e.pow(1-e.pow(2,-1/n),1/t)},mode:function(t,n){if(t>=1&&n>=1&&1!==t&&1!==n)return e.pow((t-1)/(t*n-1),1/t)},variance:function(){throw new Error("variance not yet implemented")}}),t.extend(t.lognormal,{pdf:function(t,n,r){return t<=0?0:e.exp(-e.log(t)-.5*e.log(2*e.PI)-e.log(r)-e.pow(e.log(t)-n,2)/(2*r*r))},cdf:function(n,r,a){return n<0?0:.5+.5*t.erf((e.log(n)-r)/e.sqrt(2*a*a))},inv:function(n,r,a){return e.exp(-1.4142135623730951*a*t.erfcinv(2*n)+r)},mean:function(t,n){return e.exp(t+n*n/2)},median:function(t){return e.exp(t)},mode:function(t,n){return e.exp(t-n*n)},sample:function(n,r){return e.exp(t.randn()*r+n)},variance:function(t,n){return(e.exp(n*n)-1)*e.exp(2*t+n*n)}}),t.extend(t.noncentralt,{pdf:function(n,r,a){var i=1e-14;return e.abs(a)<i?t.studentt.pdf(n,r):e.abs(n)<i?e.exp(t.gammaln((r+1)/2)-a*a/2-.5*e.log(e.PI*r)-t.gammaln(r/2)):r/n*(t.noncentralt.cdf(n*e.sqrt(1+2/r),r+2,a)-t.noncentralt.cdf(n,r,a))},cdf:function(n,r,a){var i=1e-14,o=200;if(e.abs(a)<i)return t.studentt.cdf(n,r);var s=!1;n<0&&(s=!0,a=-a);for(var l=t.normal.cdf(-a,0,1),c=i+1,u=c,h=n*n/(n*n+r),d=0,f=e.exp(-a*a/2),p=e.exp(-a*a/2-.5*e.log(2)-t.gammaln(1.5))*a;d<o||u>i||c>i;)u=c,d>0&&(f*=a*a/(2*d),p*=a*a/(2*(d+.5))),l+=.5*(c=f*t.beta.cdf(h,d+.5,r/2)+p*t.beta.cdf(h,d+1,r/2)),d++;return s?1-l:l}}),t.extend(t.normal,{pdf:function(t,n,r){return e.exp(-.5*e.log(2*e.PI)-e.log(r)-e.pow(t-n,2)/(2*r*r))},cdf:function(n,r,a){return.5*(1+t.erf((n-r)/e.sqrt(2*a*a)))},inv:function(e,n,r){return-1.4142135623730951*r*t.erfcinv(2*e)+n},mean:function(t){return t},median:function(t){return t},mode:function(t){return t},sample:function(e,n){return t.randn()*n+e},variance:function(t,e){return e*e}}),t.extend(t.pareto,{pdf:function(t,n,r){return t<n?0:r*e.pow(n,r)/e.pow(t,r+1)},cdf:function(t,n,r){return t<n?0:1-e.pow(n/t,r)},inv:function(t,n,r){return n/e.pow(1-t,1/r)},mean:function(t,n){if(!(n<=1))return n*e.pow(t,n)/(n-1)},median:function(t,n){return t*(n*e.SQRT2)},mode:function(t){return t},variance:function(t,n){if(!(n<=2))return t*t*n/(e.pow(n-1,2)*(n-2))}}),t.extend(t.studentt,{pdf:function(n,r){return r=r>1e100?1e100:r,1/(e.sqrt(r)*t.betafn(.5,r/2))*e.pow(1+n*n/r,-(r+1)/2)},cdf:function(n,r){var a=r/2;return t.ibeta((n+e.sqrt(n*n+r))/(2*e.sqrt(n*n+r)),a,a)},inv:function(n,r){var a=t.ibetainv(2*e.min(n,1-n),.5*r,.5);return a=e.sqrt(r*(1-a)/a),n>.5?a:-a},mean:function(t){return t>1?0:void 0},median:function(){return 0},mode:function(){return 0},sample:function(n){return t.randn()*e.sqrt(n/(2*t.randg(n/2)))},variance:function(t){return t>2?t/(t-2):t>1?1/0:void 0}}),t.extend(t.weibull,{pdf:function(t,n,r){return t<0||n<0||r<0?0:r/n*e.pow(t/n,r-1)*e.exp(-e.pow(t/n,r))},cdf:function(t,n,r){return t<0?0:1-e.exp(-e.pow(t/n,r))},inv:function(t,n,r){return n*e.pow(-e.log(1-t),1/r)},mean:function(e,n){return e*t.gammafn(1+1/n)},median:function(t,n){return t*e.pow(e.log(2),1/n)},mode:function(t,n){return n<=1?0:t*e.pow((n-1)/n,1/n)},sample:function(n,r){return n*e.pow(-e.log(t._random_fn()),1/r)},variance:function(n,r){return n*n*t.gammafn(1+2/r)-e.pow(t.weibull.mean(n,r),2)}}),t.extend(t.uniform,{pdf:function(t,e,n){return t<e||t>n?0:1/(n-e)},cdf:function(t,e,n){return t<e?0:t<n?(t-e)/(n-e):1},inv:function(t,e,n){return e+t*(n-e)},mean:function(t,e){return.5*(t+e)},median:function(e,n){return t.mean(e,n)},mode:function(){throw new Error("mode is not yet implemented")},sample:function(e,n){return e/2+n/2+(n/2-e/2)*(2*t._random_fn()-1)},variance:function(t,n){return e.pow(n-t,2)/12}}),t.extend(t.binomial,{pdf:function(n,r,a){return 0===a||1===a?r*a===n?1:0:t.combination(r,n)*e.pow(a,n)*e.pow(1-a,r-n)},cdf:function(r,a,i){var o,s=1e-10;if(r<0)return 0;if(r>=a)return 1;if(i<0||i>1||a<=0)return NaN;var l=i,c=(r=e.floor(r))+1,u=a-r,h=c+u,d=e.exp(t.gammaln(h)-t.gammaln(u)-t.gammaln(c)+c*e.log(l)+u*e.log(1-l));return o=l<(c+1)/(h+2)?d*n(l,c,u,s):1-d*n(1-l,u,c,s),e.round(1/s*(1-o))/(1/s)}}),t.extend(t.negbin,{pdf:function(n,r,a){return n===n>>>0&&(n<0?0:t.combination(n+r-1,r-1)*e.pow(1-a,n)*e.pow(a,r))},cdf:function(e,n,r){var a=0,i=0;if(e<0)return 0;for(;i<=e;i++)a+=t.negbin.pdf(i,n,r);return a}}),t.extend(t.hypgeom,{pdf:function(n,r,a,i){if(n!=n|0)return!1;if(n<0||n<a-(r-i))return 0;if(n>i||n>a)return 0;if(2*a>r)return 2*i>r?t.hypgeom.pdf(r-a-i+n,r,r-a,r-i):t.hypgeom.pdf(i-n,r,r-a,i);if(2*i>r)return t.hypgeom.pdf(a-n,r,a,r-i);if(a<i)return t.hypgeom.pdf(n,r,i,a);for(var o=1,s=0,l=0;l<n;l++){for(;o>1&&s<i;)o*=1-a/(r-s),s++;o*=(i-l)*(a-l)/((l+1)*(r-a-i+l+1))}for(;s<i;s++)o*=1-a/(r-s);return e.min(1,e.max(0,o))},cdf:function(n,r,a,i){if(n<0||n<a-(r-i))return 0;if(n>=i||n>=a)return 1;if(2*a>r)return 2*i>r?t.hypgeom.cdf(r-a-i+n,r,r-a,r-i):1-t.hypgeom.cdf(i-n-1,r,r-a,i);if(2*i>r)return 1-t.hypgeom.cdf(a-n-1,r,a,r-i);if(a<i)return t.hypgeom.cdf(n,r,i,a);for(var o=1,s=1,l=0,c=0;c<n;c++){for(;o>1&&l<i;){var u=1-a/(r-l);s*=u,o*=u,l++}o+=s*=(i-c)*(a-c)/((c+1)*(r-a-i+c+1))}for(;l<i;l++)o*=1-a/(r-l);return e.min(1,e.max(0,o))}}),t.extend(t.poisson,{pdf:function(n,r){return r<0||n%1!=0||n<0?0:e.pow(r,n)*e.exp(-r)/t.factorial(n)},cdf:function(e,n){var r=[],a=0;if(e<0)return 0;for(;a<=e;a++)r.push(t.poisson.pdf(a,n));return t.sum(r)},mean:function(t){return t},variance:function(t){return t},sampleSmall:function(n){var r=1,a=0,i=e.exp(-n);do{a++,r*=t._random_fn()}while(r>i);return a-1},sampleLarge:function(n){var r,a,i,o,s,l,c,u,h,d,f=n;for(o=e.sqrt(f),s=e.log(f),l=.02483*(c=.931+2.53*o)-.059,u=1.1239+1.1328/(c-3.4),h=.9277-3.6224/(c-2);;){if(a=e.random()-.5,i=e.random(),d=.5-e.abs(a),r=e.floor((2*l/d+c)*a+f+.43),d>=.07&&i<=h)return r;if(!(r<0||d<.013&&i>d)&&e.log(i)+e.log(u)-e.log(l/(d*d)+c)<=r*s-f-t.loggam(r+1))return r}},sample:function(t){return t<10?this.sampleSmall(t):this.sampleLarge(t)}}),t.extend(t.triangular,{pdf:function(t,e,n,r){return n<=e||r<e||r>n?NaN:t<e||t>n?0:t<r?2*(t-e)/((n-e)*(r-e)):t===r?2/(n-e):2*(n-t)/((n-e)*(n-r))},cdf:function(t,n,r,a){return r<=n||a<n||a>r?NaN:t<=n?0:t>=r?1:t<=a?e.pow(t-n,2)/((r-n)*(a-n)):1-e.pow(r-t,2)/((r-n)*(r-a))},inv:function(t,n,r,a){return r<=n||a<n||a>r?NaN:t<=(a-n)/(r-n)?n+(r-n)*e.sqrt(t*((a-n)/(r-n))):n+(r-n)*(1-e.sqrt((1-t)*(1-(a-n)/(r-n))))},mean:function(t,e,n){return(t+e+n)/3},median:function(t,n,r){return r<=(t+n)/2?n-e.sqrt((n-t)*(n-r))/e.sqrt(2):r>(t+n)/2?t+e.sqrt((n-t)*(r-t))/e.sqrt(2):void 0},mode:function(t,e,n){return n},sample:function(n,r,a){var i=t._random_fn();return i<(a-n)/(r-n)?n+e.sqrt(i*(r-n)*(a-n)):r-e.sqrt((1-i)*(r-n)*(r-a))},variance:function(t,e,n){return(t*t+e*e+n*n-t*e-t*n-e*n)/18}}),t.extend(t.arcsine,{pdf:function(t,n,r){return r<=n?NaN:t<=n||t>=r?0:2/e.PI*e.pow(e.pow(r-n,2)-e.pow(2*t-n-r,2),-.5)},cdf:function(t,n,r){return t<n?0:t<r?2/e.PI*e.asin(e.sqrt((t-n)/(r-n))):1},inv:function(t,n,r){return n+(.5-.5*e.cos(e.PI*t))*(r-n)},mean:function(t,e){return e<=t?NaN:(t+e)/2},median:function(t,e){return e<=t?NaN:(t+e)/2},mode:function(){throw new Error("mode is not yet implemented")},sample:function(n,r){return(n+r)/2+(r-n)/2*e.sin(2*e.PI*t.uniform.sample(0,1))},variance:function(t,n){return n<=t?NaN:e.pow(n-t,2)/8}}),t.extend(t.laplace,{pdf:function(t,n,r){return r<=0?0:e.exp(-e.abs(t-n)/r)/(2*r)},cdf:function(t,n,r){return r<=0?0:t<n?.5*e.exp((t-n)/r):1-.5*e.exp(-(t-n)/r)},mean:function(t){return t},median:function(t){return t},mode:function(t){return t},variance:function(t,e){return 2*e*e},sample:function(n,a){var i=t._random_fn()-.5;return n-a*r(i)*e.log(1-2*e.abs(i))}}),t.extend(t.tukey,{cdf:function(n,r,i){var o=1,s=r,l=16,c=8,u=-30,h=1e-14,d=100,f=800,p=5e3,v=25e3,m=1,b=.5,g=.25,y=.125,w=[.9894009349916499,.9445750230732326,.8656312023878318,.755404408355003,.6178762444026438,.45801677765722737,.2816035507792589,.09501250983763744],k=[.027152459411754096,.062253523938647894,.09515851168249279,.12462897125553388,.14959598881657674,.16915651939500254,.18260341504492358,.1894506104550685];if(n<=0)return 0;if(i<2||o<1||s<2)return NaN;if(!Number.isFinite(n))return 1;if(i>v)return a(n,o,s);var x,_=.5*i,S=_*e.log(i)-i*e.log(2)-t.gammaln(_),A=_-1,E=.25*i;x=i<=d?m:i<=f?b:i<=p?g:y,S+=e.log(x);for(var T=0,M=1;M<=50;M++){for(var C=0,N=(2*M-1)*x,R=1;R<=l;R++){var q,P;c<R?(q=R-c-1,P=S+A*e.log(N+w[q]*x)-(w[q]*x+N)*E):(q=R-1,P=S+A*e.log(N-w[q]*x)+(w[q]*x-N)*E),P>=u&&(C+=a(c<R?n*e.sqrt(.5*(w[q]*x+N)):n*e.sqrt(.5*(-w[q]*x+N)),o,s)*k[q]*e.exp(P))}if(M*x>=1&&C<=h)break;T+=C}if(C>h)throw new Error("tukey.cdf failed to converge");return T>1&&(T=1),T},inv:function(n,r,a){var o=1e-4,s=50;if(a<2||r<2)return NaN;if(n<0||n>1)return NaN;if(0===n)return 0;if(1===n)return 1/0;var l,c=i(n,r,a),u=t.tukey.cdf(c,r,a)-n;l=u>0?e.max(0,c-1):c+1;for(var h,d=t.tukey.cdf(l,r,a)-n,f=1;f<s;f++)if(h=l-d*(l-c)/(d-u),u=d,c=l,h<0&&(h=0,d=-n),d=t.tukey.cdf(h,r,a)-n,l=h,e.abs(l-c)<o)return h;throw new Error("tukey.inv failed to converge")}})}(n,Math),function(t,e){var n=Array.prototype.push,r=t.utils.isArray;function a(e){return r(e)||e instanceof t}t.extend({add:function(e,n){return a(n)?(a(n[0])||(n=[n]),t.map(e,(function(t,e,r){return t+n[e][r]}))):t.map(e,(function(t){return t+n}))},subtract:function(e,n){return a(n)?(a(n[0])||(n=[n]),t.map(e,(function(t,e,r){return t-n[e][r]||0}))):t.map(e,(function(t){return t-n}))},divide:function(e,n){return a(n)?(a(n[0])||(n=[n]),t.multiply(e,t.inv(n))):t.map(e,(function(t){return t/n}))},multiply:function(e,n){var r,i,o,s,l,c,u,h;if(void 0===e.length&&void 0===n.length)return e*n;if(l=e.length,c=e[0].length,u=t.zeros(l,o=a(n)?n[0].length:c),h=0,a(n)){for(;h<o;h++)for(r=0;r<l;r++){for(s=0,i=0;i<c;i++)s+=e[r][i]*n[i][h];u[r][h]=s}return 1===l&&1===h?u[0][0]:u}return t.map(e,(function(t){return t*n}))},outer:function(e,n){return t.multiply(e.map((function(t){return[t]})),[n])},dot:function(e,n){a(e[0])||(e=[e]),a(n[0])||(n=[n]);for(var r,i,o=1===e[0].length&&1!==e.length?t.transpose(e):e,s=1===n[0].length&&1!==n.length?t.transpose(n):n,l=[],c=0,u=o.length,h=o[0].length;c<u;c++){for(l[c]=[],r=0,i=0;i<h;i++)r+=o[c][i]*s[c][i];l[c]=r}return 1===l.length?l[0]:l},pow:function(n,r){return t.map(n,(function(t){return e.pow(t,r)}))},exp:function(n){return t.map(n,(function(t){return e.exp(t)}))},log:function(n){return t.map(n,(function(t){return e.log(t)}))},abs:function(n){return t.map(n,(function(t){return e.abs(t)}))},norm:function(t,n){var r=0,i=0;for(isNaN(n)&&(n=2),a(t[0])&&(t=t[0]);i<t.length;i++)r+=e.pow(e.abs(t[i]),n);return e.pow(r,1/n)},angle:function(n,r){return e.acos(t.dot(n,r)/(t.norm(n)*t.norm(r)))},aug:function(t,e){var r,a=[];for(r=0;r<t.length;r++)a.push(t[r].slice());for(r=0;r<a.length;r++)n.apply(a[r],e[r]);return a},inv:function(e){for(var n,r=e.length,a=e[0].length,i=t.identity(r,a),o=t.gauss_jordan(e,i),s=[],l=0;l<r;l++)for(s[l]=[],n=a;n<o[0].length;n++)s[l][n-a]=o[l][n];return s},det:function(t){var e,n=t.length,r=2*n,a=new Array(r),i=n-1,o=r-1,s=i-n+1,l=o,c=0,u=0;if(2===n)return t[0][0]*t[1][1]-t[0][1]*t[1][0];for(;c<r;c++)a[c]=1;for(c=0;c<n;c++){for(e=0;e<n;e++)a[s<0?s+n:s]*=t[c][e],a[l<n?l+n:l]*=t[c][e],s++,l--;s=--i-n+1,l=--o}for(c=0;c<n;c++)u+=a[c];for(;c<r;c++)u-=a[c];return u},gauss_elimination:function(n,r){var a,i,o,s,l=0,c=0,u=n.length,h=n[0].length,d=1,f=0,p=[];for(a=(n=t.aug(n,r))[0].length,l=0;l<u;l++){for(i=n[l][l],c=l,s=l+1;s<h;s++)i<e.abs(n[s][l])&&(i=n[s][l],c=s);if(c!=l)for(s=0;s<a;s++)o=n[l][s],n[l][s]=n[c][s],n[c][s]=o;for(c=l+1;c<u;c++)for(d=n[c][l]/n[l][l],s=l;s<a;s++)n[c][s]=n[c][s]-d*n[l][s]}for(l=u-1;l>=0;l--){for(f=0,c=l+1;c<=u-1;c++)f+=p[c]*n[l][c];p[l]=(n[l][a-1]-f)/n[l][l]}return p},gauss_jordan:function(n,r){var a,i,o,s=t.aug(n,r),l=s.length,c=s[0].length,u=0;for(i=0;i<l;i++){var h=i;for(o=i+1;o<l;o++)e.abs(s[o][i])>e.abs(s[h][i])&&(h=o);var d=s[i];for(s[i]=s[h],s[h]=d,o=i+1;o<l;o++)for(u=s[o][i]/s[i][i],a=i;a<c;a++)s[o][a]-=s[i][a]*u}for(i=l-1;i>=0;i--){for(u=s[i][i],o=0;o<i;o++)for(a=c-1;a>i-1;a--)s[o][a]-=s[i][a]*s[o][i]/u;for(s[i][i]/=u,a=l;a<c;a++)s[i][a]/=u}return s},triaUpSolve:function(e,n){var r,a=e[0].length,i=t.zeros(1,a)[0],o=!1;return null!=n[0].length&&(n=n.map((function(t){return t[0]})),o=!0),t.arange(a-1,-1,-1).forEach((function(o){r=t.arange(o+1,a).map((function(t){return i[t]*e[o][t]})),i[o]=(n[o]-t.sum(r))/e[o][o]})),o?i.map((function(t){return[t]})):i},triaLowSolve:function(e,n){var r,a=e[0].length,i=t.zeros(1,a)[0],o=!1;return null!=n[0].length&&(n=n.map((function(t){return t[0]})),o=!0),t.arange(a).forEach((function(a){r=t.arange(a).map((function(t){return e[a][t]*i[t]})),i[a]=(n[a]-t.sum(r))/e[a][a]})),o?i.map((function(t){return[t]})):i},lu:function(e){var n,r=e.length,a=t.identity(r),i=t.zeros(e.length,e[0].length);return t.arange(r).forEach((function(t){i[0][t]=e[0][t]})),t.arange(1,r).forEach((function(o){t.arange(o).forEach((function(r){n=t.arange(r).map((function(t){return a[o][t]*i[t][r]})),a[o][r]=(e[o][r]-t.sum(n))/i[r][r]})),t.arange(o,r).forEach((function(r){n=t.arange(o).map((function(t){return a[o][t]*i[t][r]})),i[o][r]=e[n.length][r]-t.sum(n)}))})),[a,i]},cholesky:function(n){var r,a=n.length,i=t.zeros(n.length,n[0].length);return t.arange(a).forEach((function(o){r=t.arange(o).map((function(t){return e.pow(i[o][t],2)})),i[o][o]=e.sqrt(n[o][o]-t.sum(r)),t.arange(o+1,a).forEach((function(e){r=t.arange(o).map((function(t){return i[o][t]*i[e][t]})),i[e][o]=(n[o][e]-t.sum(r))/i[o][o]}))})),i},gauss_jacobi:function(n,r,a,i){for(var o,s,l,c,u=0,h=0,d=n.length,f=[],p=[],v=[];u<d;u++)for(f[u]=[],p[u]=[],v[u]=[],h=0;h<d;h++)u>h?(f[u][h]=n[u][h],p[u][h]=v[u][h]=0):u<h?(p[u][h]=n[u][h],f[u][h]=v[u][h]=0):(v[u][h]=n[u][h],f[u][h]=p[u][h]=0);for(l=t.multiply(t.multiply(t.inv(v),t.add(f,p)),-1),s=t.multiply(t.inv(v),r),o=a,c=t.add(t.multiply(l,a),s),u=2;e.abs(t.norm(t.subtract(c,o)))>i;)o=c,c=t.add(t.multiply(l,o),s),u++;return c},gauss_seidel:function(n,r,a,i){for(var o,s,l,c,u,h=0,d=n.length,f=[],p=[],v=[];h<d;h++)for(f[h]=[],p[h]=[],v[h]=[],o=0;o<d;o++)h>o?(f[h][o]=n[h][o],p[h][o]=v[h][o]=0):h<o?(p[h][o]=n[h][o],f[h][o]=v[h][o]=0):(v[h][o]=n[h][o],f[h][o]=p[h][o]=0);for(c=t.multiply(t.multiply(t.inv(t.add(v,f)),p),-1),l=t.multiply(t.inv(t.add(v,f)),r),s=a,u=t.add(t.multiply(c,a),l),h=2;e.abs(t.norm(t.subtract(u,s)))>i;)s=u,u=t.add(t.multiply(c,s),l),h+=1;return u},SOR:function(n,r,a,i,o){for(var s,l,c,u,h,d=0,f=n.length,p=[],v=[],m=[];d<f;d++)for(p[d]=[],v[d]=[],m[d]=[],s=0;s<f;s++)d>s?(p[d][s]=n[d][s],v[d][s]=m[d][s]=0):d<s?(v[d][s]=n[d][s],p[d][s]=m[d][s]=0):(m[d][s]=n[d][s],p[d][s]=v[d][s]=0);for(u=t.multiply(t.inv(t.add(m,t.multiply(p,o))),t.subtract(t.multiply(m,1-o),t.multiply(v,o))),c=t.multiply(t.multiply(t.inv(t.add(m,t.multiply(p,o))),r),o),l=a,h=t.add(t.multiply(u,a),c),d=2;e.abs(t.norm(t.subtract(h,l)))>i;)l=h,h=t.add(t.multiply(u,l),c),d++;return h},householder:function(n){for(var r,a,i,o,s=n.length,l=n[0].length,c=0,u=[],h=[];c<s-1;c++){for(r=0,o=c+1;o<l;o++)r+=n[o][c]*n[o][c];for(r=(n[c+1][c]>0?-1:1)*e.sqrt(r),a=e.sqrt((r*r-n[c+1][c]*r)/2),(u=t.zeros(s,1))[c+1][0]=(n[c+1][c]-r)/(2*a),i=c+2;i<s;i++)u[i][0]=n[i][c]/(2*a);h=t.subtract(t.identity(s,l),t.multiply(t.multiply(u,t.transpose(u)),2)),n=t.multiply(h,t.multiply(n,h))}return n},QR:function(){var n=t.sum,r=t.arange;function a(a){var i,o,s,l=a.length,c=a[0].length,u=t.zeros(c,c);for(a=t.copy(a),o=0;o<c;o++){for(u[o][o]=e.sqrt(n(r(l).map((function(t){return a[t][o]*a[t][o]})))),i=0;i<l;i++)a[i][o]=a[i][o]/u[o][o];for(s=o+1;s<c;s++)for(u[o][s]=n(r(l).map((function(t){return a[t][o]*a[t][s]}))),i=0;i<l;i++)a[i][s]=a[i][s]-a[i][o]*u[o][s]}return[a,u]}return a}(),lstsq:function(){function e(e){var n=(e=t.copy(e)).length,r=t.identity(n);return t.arange(n-1,-1,-1).forEach((function(n){t.sliceAssign(r,{row:n},t.divide(t.slice(r,{row:n}),e[n][n])),t.sliceAssign(e,{row:n},t.divide(t.slice(e,{row:n}),e[n][n])),t.arange(n).forEach((function(a){var i=t.multiply(e[a][n],-1),o=t.slice(e,{row:a}),s=t.multiply(t.slice(e,{row:n}),i);t.sliceAssign(e,{row:a},t.add(o,s));var l=t.slice(r,{row:a}),c=t.multiply(t.slice(r,{row:n}),i);t.sliceAssign(r,{row:a},t.add(l,c))}))})),r}function n(n,r){var a=!1;void 0===r[0].length&&(r=r.map((function(t){return[t]})),a=!0);var i=t.QR(n),o=i[0],s=i[1],l=n[0].length,c=t.slice(o,{col:{end:l}}),u=e(t.slice(s,{row:{end:l}})),h=t.transpose(c);void 0===h[0].length&&(h=[h]);var d=t.multiply(t.multiply(u,h),r);return void 0===d.length&&(d=[[d]]),a?d.map((function(t){return t[0]})):d}return n}(),jacobi:function(n){for(var r,a,i,o,s,l,c,u=1,h=n.length,d=t.identity(h,h),f=[];1===u;){for(s=n[0][1],i=0,o=1,r=0;r<h;r++)for(a=0;a<h;a++)r!=a&&s<e.abs(n[r][a])&&(s=e.abs(n[r][a]),i=r,o=a);for(l=n[i][i]===n[o][o]?n[i][o]>0?e.PI/4:-e.PI/4:e.atan(2*n[i][o]/(n[i][i]-n[o][o]))/2,(c=t.identity(h,h))[i][i]=e.cos(l),c[i][o]=-e.sin(l),c[o][i]=e.sin(l),c[o][o]=e.cos(l),d=t.multiply(d,c),n=t.multiply(t.multiply(t.inv(c),n),c),u=0,r=1;r<h;r++)for(a=1;a<h;a++)r!=a&&e.abs(n[r][a])>.001&&(u=1)}for(r=0;r<h;r++)f.push(n[r][r]);return[d,f]},rungekutta:function(t,e,n,r,a,i){var o,s,l;if(2===i)for(;r<=n;)a+=((o=e*t(r,a))+(s=e*t(r+e,a+o)))/2,r+=e;if(4===i)for(;r<=n;)a+=((o=e*t(r,a))+2*(s=e*t(r+e/2,a+o/2))+2*(l=e*t(r+e/2,a+s/2))+e*t(r+e,a+l))/6,r+=e;return a},romberg:function(t,n,r,a){for(var i,o,s,l,c,u=0,h=(r-n)/2,d=[],f=[],p=[];u<a/2;){for(c=t(n),s=n,l=0;s<=r;s+=h,l++)d[l]=s;for(i=d.length,s=1;s<i-1;s++)c+=(s%2!=0?4:2)*t(d[s]);c=h/3*(c+t(r)),p[u]=c,h/=2,u++}for(o=p.length,i=1;1!==o;){for(s=0;s<o-1;s++)f[s]=(e.pow(4,i)*p[s+1]-p[s])/(e.pow(4,i)-1);o=f.length,p=f,f=[],i++}return p},richardson:function(t,n,r,a){function i(t,e){for(var n,r=0,a=t.length;r<a;r++)t[r]===e&&(n=r);return n}for(var o,s,l,c,u,h=e.abs(r-t[i(t,r)+1]),d=0,f=[],p=[];a>=h;)o=i(t,r+a),s=i(t,r),f[d]=(n[o]-2*n[s]+n[2*s-o])/(a*a),a/=2,d++;for(c=f.length,l=1;1!=c;){for(u=0;u<c-1;u++)p[u]=(e.pow(4,l)*f[u+1]-f[u])/(e.pow(4,l)-1);c=p.length,f=p,p=[],l++}return f},simpson:function(t,e,n,r){for(var a,i=(n-e)/r,o=t(e),s=[],l=e,c=0,u=1;l<=n;l+=i,c++)s[c]=l;for(a=s.length;u<a-1;u++)o+=(u%2!=0?4:2)*t(s[u]);return i/3*(o+t(n))},hermite:function(t,e,n,r){for(var a,i=t.length,o=0,s=0,l=[],c=[],u=[],h=[];s<i;s++){for(l[s]=1,a=0;a<i;a++)s!=a&&(l[s]*=(r-t[a])/(t[s]-t[a]));for(c[s]=0,a=0;a<i;a++)s!=a&&(c[s]+=1/(t[s]-t[a]));u[s]=(1-2*(r-t[s])*c[s])*(l[s]*l[s]),h[s]=(r-t[s])*(l[s]*l[s]),o+=u[s]*e[s]+h[s]*n[s]}return o},lagrange:function(t,e,n){for(var r,a,i=0,o=0,s=t.length;o<s;o++){for(a=e[o],r=0;r<s;r++)o!=r&&(a*=(n-t[r])/(t[o]-t[r]));i+=a}return i},cubic_spline:function(e,n,r){for(var a,i=e.length,o=0,s=[],l=[],c=[],u=[],h=[],d=[],f=[];o<i-1;o++)h[o]=e[o+1]-e[o];for(c[0]=0,o=1;o<i-1;o++)c[o]=3/h[o]*(n[o+1]-n[o])-3/h[o-1]*(n[o]-n[o-1]);for(o=1;o<i-1;o++)s[o]=[],l[o]=[],s[o][o-1]=h[o-1],s[o][o]=2*(h[o-1]+h[o]),s[o][o+1]=h[o],l[o][0]=c[o];for(u=t.multiply(t.inv(s),l),a=0;a<i-1;a++)d[a]=(n[a+1]-n[a])/h[a]-h[a]*(u[a+1][0]+2*u[a][0])/3,f[a]=(u[a+1][0]-u[a][0])/(3*h[a]);for(a=0;a<i&&!(e[a]>r);a++);return n[a-=1]+(r-e[a])*d[a]+t.sq(r-e[a])*u[a]+(r-e[a])*t.sq(r-e[a])*f[a]},gauss_quadrature:function(){throw new Error("gauss_quadrature not yet implemented")},PCA:function(e){var n,r,a=e.length,i=e[0].length,o=0,s=[],l=[],c=[],u=[],h=[],d=[],f=[],p=[],v=[],m=[];for(o=0;o<a;o++)s[o]=t.sum(e[o])/i;for(o=0;o<i;o++)for(f[o]=[],n=0;n<a;n++)f[o][n]=e[n][o]-s[n];for(f=t.transpose(f),o=0;o<a;o++)for(p[o]=[],n=0;n<a;n++)p[o][n]=t.dot([f[o]],[f[n]])/(i-1);for(v=(c=t.jacobi(p))[0],l=c[1],m=t.transpose(v),o=0;o<l.length;o++)for(n=o;n<l.length;n++)l[o]<l[n]&&(r=l[o],l[o]=l[n],l[n]=r,u=m[o],m[o]=m[n],m[n]=u);for(d=t.transpose(f),o=0;o<a;o++)for(h[o]=[],n=0;n<d.length;n++)h[o][n]=t.dot([m[o]],[d[n]]);return[e,l,m,h]}}),function(e){for(var n=0;n<e.length;n++)!function(e){t.fn[e]=function(n,r){var a=this;return r?(setTimeout((function(){r.call(a,t.fn[e].call(a,n))}),15),this):"number"==typeof t[e](this,n)?t[e](this,n):t(t[e](this,n))}}(e[n])}("add divide multiply subtract dot pow exp log abs norm angle".split(" "))}(n,Math),function(t,e){var n=[].slice,r=t.utils.isNumber,a=t.utils.isArray;function i(t,n,r,a){if(t>1||r>1||t<=0||r<=0)throw new Error("Proportions should be greater than 0 and less than 1");var i=(t*n+r*a)/(n+a);return(t-r)/e.sqrt(i*(1-i)*(1/n+1/a))}t.extend({zscore:function(){var e=n.call(arguments);return r(e[1])?(e[0]-e[1])/e[2]:(e[0]-t.mean(e[1]))/t.stdev(e[1],e[2])},ztest:function(){var r,i=n.call(arguments);return a(i[1])?(r=t.zscore(i[0],i[1],i[3]),1===i[2]?t.normal.cdf(-e.abs(r),0,1):2*t.normal.cdf(-e.abs(r),0,1)):i.length>2?(r=t.zscore(i[0],i[1],i[2]),1===i[3]?t.normal.cdf(-e.abs(r),0,1):2*t.normal.cdf(-e.abs(r),0,1)):(r=i[0],1===i[1]?t.normal.cdf(-e.abs(r),0,1):2*t.normal.cdf(-e.abs(r),0,1))}}),t.extend(t.fn,{zscore:function(t,e){return(t-this.mean())/this.stdev(e)},ztest:function(n,r,a){var i=e.abs(this.zscore(n,a));return 1===r?t.normal.cdf(-i,0,1):2*t.normal.cdf(-i,0,1)}}),t.extend({tscore:function(){var r=n.call(arguments);return 4===r.length?(r[0]-r[1])/(r[2]/e.sqrt(r[3])):(r[0]-t.mean(r[1]))/(t.stdev(r[1],!0)/e.sqrt(r[1].length))},ttest:function(){var a,i=n.call(arguments);return 5===i.length?(a=e.abs(t.tscore(i[0],i[1],i[2],i[3])),1===i[4]?t.studentt.cdf(-a,i[3]-1):2*t.studentt.cdf(-a,i[3]-1)):r(i[1])?(a=e.abs(i[0]),1==i[2]?t.studentt.cdf(-a,i[1]-1):2*t.studentt.cdf(-a,i[1]-1)):(a=e.abs(t.tscore(i[0],i[1])),1==i[2]?t.studentt.cdf(-a,i[1].length-1):2*t.studentt.cdf(-a,i[1].length-1))}}),t.extend(t.fn,{tscore:function(t){return(t-this.mean())/(this.stdev(!0)/e.sqrt(this.cols()))},ttest:function(n,r){return 1===r?1-t.studentt.cdf(e.abs(this.tscore(n)),this.cols()-1):2*t.studentt.cdf(-e.abs(this.tscore(n)),this.cols()-1)}}),t.extend({anovafscore:function(){var r,a,i,o,s,l,c,u,h=n.call(arguments);if(1===h.length){for(s=new Array(h[0].length),c=0;c<h[0].length;c++)s[c]=h[0][c];h=s}for(a=new Array,c=0;c<h.length;c++)a=a.concat(h[c]);for(i=t.mean(a),r=0,c=0;c<h.length;c++)r+=h[c].length*e.pow(t.mean(h[c])-i,2);for(r/=h.length-1,l=0,c=0;c<h.length;c++)for(o=t.mean(h[c]),u=0;u<h[c].length;u++)l+=e.pow(h[c][u]-o,2);return r/(l/=a.length-h.length)},anovaftest:function(){var e,a,i,o,s=n.call(arguments);if(r(s[0]))return 1-t.centralF.cdf(s[0],s[1],s[2]);var l=t.anovafscore(s);for(e=s.length-1,i=0,o=0;o<s.length;o++)i+=s[o].length;return a=i-e-1,1-t.centralF.cdf(l,e,a)},ftest:function(e,n,r){return 1-t.centralF.cdf(e,n,r)}}),t.extend(t.fn,{anovafscore:function(){return t.anovafscore(this.toArray())},anovaftes:function(){var e,n=0;for(e=0;e<this.length;e++)n+=this[e].length;return t.ftest(this.anovafscore(),this.length-1,n-this.length)}}),t.extend({qscore:function(){var a,i,o,s,l,c=n.call(arguments);return r(c[0])?(a=c[0],i=c[1],o=c[2],s=c[3],l=c[4]):(a=t.mean(c[0]),i=t.mean(c[1]),o=c[0].length,s=c[1].length,l=c[2]),e.abs(a-i)/(l*e.sqrt((1/o+1/s)/2))},qtest:function(){var e,r=n.call(arguments);3===r.length?(e=r[0],r=r.slice(1)):7===r.length?(e=t.qscore(r[0],r[1],r[2],r[3],r[4]),r=r.slice(5)):(e=t.qscore(r[0],r[1],r[2]),r=r.slice(3));var a=r[0],i=r[1];return 1-t.tukey.cdf(e,i,a-i)},tukeyhsd:function(e){for(var n=t.pooledstdev(e),r=e.map((function(e){return t.mean(e)})),a=e.reduce((function(t,e){return t+e.length}),0),i=[],o=0;o<e.length;++o)for(var s=o+1;s<e.length;++s){var l=t.qtest(r[o],r[s],e[o].length,e[s].length,n,a,e.length);i.push([[o,s],l])}return i}}),t.extend({normalci:function(){var r,a=n.call(arguments),i=new Array(2);return r=4===a.length?e.abs(t.normal.inv(a[1]/2,0,1)*a[2]/e.sqrt(a[3])):e.abs(t.normal.inv(a[1]/2,0,1)*t.stdev(a[2])/e.sqrt(a[2].length)),i[0]=a[0]-r,i[1]=a[0]+r,i},tci:function(){var r,a=n.call(arguments),i=new Array(2);return r=4===a.length?e.abs(t.studentt.inv(a[1]/2,a[3]-1)*a[2]/e.sqrt(a[3])):e.abs(t.studentt.inv(a[1]/2,a[2].length-1)*t.stdev(a[2],!0)/e.sqrt(a[2].length)),i[0]=a[0]-r,i[1]=a[0]+r,i},significant:function(t,e){return t<e}}),t.extend(t.fn,{normalci:function(e,n){return t.normalci(e,n,this.toArray())},tci:function(e,n){return t.tci(e,n,this.toArray())}}),t.extend(t.fn,{oneSidedDifferenceOfProportions:function(e,n,r,a){var o=i(e,n,r,a);return t.ztest(o,1)},twoSidedDifferenceOfProportions:function(e,n,r,a){var o=i(e,n,r,a);return t.ztest(o,2)}})}(n,Math),n.models=function(){function t(t){var r=t[0].length,a=n.arange(r).map((function(a){var i=n.arange(r).filter((function(t){return t!==a}));return e(n.col(t,a).map((function(t){return t[0]})),n.col(t,i))}));return a}function e(t,e){var r=t.length,a=e[0].length-1,i=r-a-1,o=n.lstsq(e,t),s=n.multiply(e,o.map((function(t){return[t]}))).map((function(t){return t[0]})),l=n.subtract(t,s),c=n.mean(t),u=n.sum(s.map((function(t){return Math.pow(t-c,2)}))),h=n.sum(t.map((function(t,e){return Math.pow(t-s[e],2)}))),d=u+h;return{exog:e,endog:t,nobs:r,df_model:a,df_resid:i,coef:o,predict:s,resid:l,ybar:c,SST:d,SSE:u,SSR:h,R2:u/d}}function r(e){var r=t(e.exog),a=Math.sqrt(e.SSR/e.df_resid),i=r.map((function(t){var e=t.SST,n=t.R2;return a/Math.sqrt(e*(1-n))})),o=e.coef.map((function(t,e){return(t-0)/i[e]})),s=o.map((function(t){var r=n.studentt.cdf(t,e.df_resid);return 2*(r>.5?1-r:r)})),l=n.studentt.inv(.975,e.df_resid),c=e.coef.map((function(t,e){var n=l*i[e];return[t-n,t+n]}));return{se:i,t:o,p:s,sigmaHat:a,interval95:c}}function a(t){var e=t.R2/t.df_model/((1-t.R2)/t.df_resid),r=function(t,e,r){return n.beta.cdf(t/(r/e+t),e/2,r/2)};return{F_statistic:e,pvalue:1-r(e,t.df_model,t.df_resid)}}function i(t,n){var i=e(t,n),o=r(i),s=a(i),l=1-(1-i.R2)*((i.nobs-1)/i.df_resid);return i.t=o,i.f=s,i.adjust_R2=l,i}return{ols:i}}(),n.extend({buildxmatrix:function(){for(var t=new Array(arguments.length),e=0;e<arguments.length;e++){var r=[1];t[e]=r.concat(arguments[e])}return n(t)},builddxmatrix:function(){for(var t=new Array(arguments[0].length),e=0;e<arguments[0].length;e++){var r=[1];t[e]=r.concat(arguments[0][e])}return n(t)},buildjxmatrix:function(t){for(var e=new Array(t.length),r=0;r<t.length;r++)e[r]=t[r];return n.builddxmatrix(e)},buildymatrix:function(t){return n(t).transpose()},buildjymatrix:function(t){return t.transpose()},matrixmult:function(t,e){var r,a,i,o,s;if(t.cols()==e.rows()){if(e.rows()>1){for(o=[],r=0;r<t.rows();r++)for(o[r]=[],a=0;a<e.cols();a++){for(s=0,i=0;i<t.cols();i++)s+=t.toArray()[r][i]*e.toArray()[i][a];o[r][a]=s}return n(o)}for(o=[],r=0;r<t.rows();r++)for(o[r]=[],a=0;a<e.cols();a++){for(s=0,i=0;i<t.cols();i++)s+=t.toArray()[r][i]*e.toArray()[a];o[r][a]=s}return n(o)}},regress:function(t,e){var r=n.xtranspxinv(t),a=t.transpose(),i=n.matrixmult(n(r),a);return n.matrixmult(i,e)},regresst:function(t,e,r){var a=n.regress(t,e),i={anova:{}},o=n.jMatYBar(t,a);i.yBar=o;var s=e.mean();i.anova.residuals=n.residuals(e,o),i.anova.ssr=n.ssr(o,s),i.anova.msr=i.anova.ssr/(t[0].length-1),i.anova.sse=n.sse(e,o),i.anova.mse=i.anova.sse/(e.length-(t[0].length-1)-1),i.anova.sst=n.sst(e,s),i.anova.mst=i.anova.sst/(e.length-1),i.anova.r2=1-i.anova.sse/i.anova.sst,i.anova.r2<0&&(i.anova.r2=0),i.anova.fratio=i.anova.msr/i.anova.mse,i.anova.pvalue=n.anovaftest(i.anova.fratio,t[0].length-1,e.length-(t[0].length-1)-1),i.anova.rmse=Math.sqrt(i.anova.mse),i.anova.r2adj=1-i.anova.mse/i.anova.mst,i.anova.r2adj<0&&(i.anova.r2adj=0),i.stats=new Array(t[0].length);for(var l,c,u,h=n.xtranspxinv(t),d=0;d<a.length;d++)l=Math.sqrt(i.anova.mse*Math.abs(h[d][d])),c=Math.abs(a[d]/l),u=n.ttest(c,e.length-t[0].length-1,r),i.stats[d]=[a[d],l,c,u];return i.regress=a,i},xtranspx:function(t){return n.matrixmult(t.transpose(),t)},xtranspxinv:function(t){var e=n.matrixmult(t.transpose(),t);return n.inv(e)},jMatYBar:function(t,e){var r=n.matrixmult(t,e);return new n(r)},residuals:function(t,e){return n.matrixsubtract(t,e)},ssr:function(t,e){for(var n=0,r=0;r<t.length;r++)n+=Math.pow(t[r]-e,2);return n},sse:function(t,e){for(var n=0,r=0;r<t.length;r++)n+=Math.pow(t[r]-e[r],2);return n},sst:function(t,e){for(var n=0,r=0;r<t.length;r++)n+=Math.pow(t[r]-e,2);return n},matrixsubtract:function(t,e){for(var r=new Array(t.length),a=0;a<t.length;a++){r[a]=new Array(t[a].length);for(var i=0;i<t[a].length;i++)r[a][i]=t[a][i]-e[a][i]}return n(r)}}),n.jStat=n,n)})),yl=function(){function t(){r(this,t)}return i(t,null,[{key:"hM2Hr",value:function(t,e){return 0===t&&0===e?0:t/(t+e)}},{key:"faCr2Far",value:function(t,e){return 0===t&&0===e?0:t/(t+e)}},{key:"hMFaCr2Acc",value:function(t,e,n,r){return 0===t&&0===e&&0===n&&0===r?0:(t+r)/(t+e+n+r)}},{key:"hrFar2Acc",value:function(t,e){return(t+(1-e))/2}},{key:"hFa2Ppv",value:function(t,e){return 0===t&&0===e?0:t/(t+e)}},{key:"mCr2Fomr",value:function(t,e){return 0===t&&0===e?0:t/(t+e)}},{key:"hrFar2D",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return 1===n?gl.normal.inv(t,0,1)-gl.normal.inv(e,0,1):Math.sqrt(2/(n*n+1))*(n*gl.normal.inv(t,0,1)-gl.normal.inv(e,0,1))}},{key:"hrFar2C",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return 1===n?-(gl.normal.inv(t,0,1)+gl.normal.inv(e,0,1))/2:Math.sqrt(2/(n*n+1))*(n/(n+1))*-(gl.normal.inv(t,0,1)+gl.normal.inv(e,0,1))}},{key:"dC2Hr",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return 1===n?gl.normal.cdf(t/2-e,0,1):gl.normal.cdf(Math.sqrt((n*n+1)/2)*(t/(1+n)-e/n),0,1)}},{key:"dC2Far",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return 1===n?gl.normal.cdf(-(t/2+e),0,1):gl.normal.cdf(Math.sqrt((n*n+1)/2)*-(t/(1+n)+e),0,1)}},{key:"dFar2Hr",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return 1===n?gl.normal.cdf(t+gl.normal.inv(e,0,1),0,1):gl.normal.cdf((Math.sqrt((n*n+1)/2)*t+gl.normal.inv(e,0,1))/n,0,1)}},{key:"cFar2Hr",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return 1===n?gl.normal.cdf(-2*t-gl.normal.inv(e,0,1),0,1):gl.normal.cdf(-Math.sqrt((n*n+1)/2)*((n+1)/n)*t-gl.normal.inv(e,0,1),0,1)}},{key:"d2MuN",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return 1===e?-t/2:-Math.sqrt((e*e+1)/2)*(1/(e+1))*t}},{key:"muN2D",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return 1===e?-2*t:-Math.sqrt(2/(e*e+1))*(e+1)*t}},{key:"d2MuS",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return 1===e?t/2:Math.sqrt((e*e+1)/2)*(e/(e+1))*t}},{key:"muS2D",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return 1===e?2*t:Math.sqrt(2/(e*e+1))*((e+1)/e)*t}},{key:"c2L",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return 1===e?t:Math.sqrt((e*e+1)/2)*t}},{key:"l2C",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return 1===e?t:Math.sqrt(2/(e*e+1))*t}},{key:"s2H",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return 1/(t*Math.sqrt(2*Math.PI))}},{key:"h2S",value:function(t){return 1/(t*Math.sqrt(2*Math.PI))}},{key:"hr2Zhr",value:function(t){return gl.normal.inv(t,0,1)}},{key:"far2Zfar",value:function(t){return gl.normal.inv(t,0,1)}},{key:"zhr2Hr",value:function(t){return gl.normal.cdf(t,0,1)}},{key:"zfar2Far",value:function(t){return gl.normal.cdf(t,0,1)}}]),t}(),wl=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.call(this)).firstUpdate=!0,t.drag=!1,t.sdt=!1,t.contours=["sensitivity","bias","accuracy"],t.contour=void 0,t.points=["all","first","rest","none"],t.point="all",t.isoDs=["all","first","rest","none"],t.isoD="first",t.isoCs=["all","first","rest","none"],t.isoC="first",t.zRoc=!1,t.far=.25,t.hr=.75,t.s=1,t.label="",t.locations=[{name:"default",far:t.far,hr:t.hr,s:t.s,label:""}],t.pointArray=[],t.isoDArray=[],t.isoCArray=[],t.width=NaN,t.height=NaN,t.rem=NaN,t.alignState(),t}return i(n,[{key:"alignState",value:function(){var t=this;this.locations[0].hr=this.hr,this.locations[0].far=this.far,this.locations[0].s=this.s,this.locations[0].label=this.label,this.d=yl.hrFar2D(this.hr,this.far,this.s),this.c=yl.hrFar2C(this.hr,this.far,this.s),this.pointArray=[],this.isoDArray=[],this.isoCArray=[],this.locations.forEach((function(e,n){e.d=yl.hrFar2D(e.hr,e.far,e.s),e.c=yl.hrFar2C(e.hr,e.far,e.s),0!==n||"first"!==t.point&&"all"!==t.point?n>0&&("rest"===t.point||"all"===t.point)&&t.pointArray.push(e):t.pointArray.push(e),0!==n||"first"!==t.isoD&&"all"!==t.isoD?n>0&&("rest"===t.isoD||"all"===t.isoD)&&t.isoDArray.push(e):t.isoDArray.push(e),0!==n||"first"!==t.isoC&&"all"!==t.isoC?n>0&&("rest"===t.isoC||"all"===t.isoC)&&t.isoCArray.push(e):t.isoCArray.push(e)}))}},{key:"set",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"default",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1;"default"===n&&(this.hr=t,this.far=e,this.s=a,this.label=r);var i=this.locations.find((function(t){return t.name===n}));void 0===i?this.locations.push({name:n,far:e,hr:t,s:a,label:r}):(i.hr=t,i.far=e,i.s=a,i.label=r),this.requestUpdate()}},{key:"setWithSDT",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"default",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1;"default"===n&&(this.hr=yl.dC2Hr(t,e,a),this.far=yl.dC2Far(t,e,a),this.s=a,this.label=r);var i=this.locations.find((function(t){return t.name===n}));void 0===i?this.locations.push({name:n,far:yl.dC2Far(t,e,a),hr:yl.dC2Hr(t,e,a),s:a,label:r}):(i.hr=yl.dC2Hr(t,e,a),i.far=yl.dC2Far(t,e,a),i.s=a,i.label=r),this.sdt=!0,this.requestUpdate()}},{key:"render",value:function(){return at(Gs||(Gs=g(["\n ","\n "])),Ks.svgFilters)}},{key:"getDimensions",value:function(){this.width=parseFloat(this.getComputedStyleValue("width"),10),this.height=parseFloat(this.getComputedStyleValue("height"),10),this.rem=parseFloat(getComputedStyle(document.documentElement).getPropertyValue("font-size"),10)}},{key:"connectedCallback",value:function(){b(l(n.prototype),"connectedCallback",this).call(this),window.addEventListener("resize",this.getDimensions.bind(this))}},{key:"disconnectedCallback",value:function(){window.removeEventListener("resize",this.getDimensions.bind(this)),b(l(n.prototype),"disconnectedCallback",this).call(this)}},{key:"firstUpdated",value:function(t){b(l(n.prototype),"firstUpdated",this).call(this,t),window.setTimeout(this.getDimensions.bind(this),0)}},{key:"update",value:function(t){var e=this;if(b(l(n.prototype),"update",this).call(this,t),this.alignState(),!(Number.isNaN(this.width)||Number.isNaN(this.height)||Number.isNaN(this.rem))){var r=this.width,a=this.height,i=Math.min(r,a),o={top:2*this.rem,bottom:3*this.rem,left:3*this.rem,right:2*this.rem},s=i-(o.top+o.bottom),c=i-(o.left+o.right),u=parseInt(this.getComputedStyleValue("---transition-duration"),10),h=is().domain(this.zRoc?[-3,3]:[0,1]).range([0,c]);this.xScale=h;var d=is().domain(this.zRoc?[3,-3]:[1,0]).range([0,s]);this.yScale=d;var f=On().subject((function(t,n){return{x:e.xScale(e.zRoc?yl.far2Zfar(n.far):n.far),y:e.yScale(e.zRoc?yl.hr2Zhr(n.hr):n.hr)}})).on("start",(function(t){An(t.currentTarget).classed("dragging",!0)})).on("drag",(function(t,n){e.drag=!0;var r=e.zRoc?yl.zfar2Far(e.xScale.invert(t.x)):e.xScale.invert(t.x),a=e.zRoc?yl.zhr2Hr(e.yScale.invert(t.y)):e.yScale.invert(t.y);n.far=r<.001?.001:r>.999?.999:r,n.hr=a<=.001?.001:a>=.999?.999:a,"default"===n.name&&(e.far=n.far,e.hr=n.hr),e.alignState(),e.requestUpdate(),e.dispatchEvent(new CustomEvent("roc-point-change",{detail:{name:n.name,far:n.far,hr:n.hr,d:n.d,c:n.c,s:n.s,label:n.label},bubbles:!0}))})).on("end",(function(t){An(t.currentTarget).classed("dragging",!1)})),p=ks().x((function(t){return h(e.zRoc?yl.far2Zfar(t.far):t.far)})).y((function(t){return d(e.zRoc?yl.hr2Zhr(t.hr):t.hr)})),v=An(this.renderRoot).selectAll(".main").data([{width:this.width,height:this.height,rem:this.rem}]),m=v.enter().append("svg").classed("main",!0),g=m.merge(v).attr("viewBox","0 0 ".concat(i," ").concat(i)),y=m.append("g").classed("plot",!0),w=g.select(".plot").attr("transform","translate(".concat(o.left,", ").concat(o.top,")"));y.append("clipPath").attr("id","clip-roc-space").append("rect"),w.select("clipPath rect").attr("height",s+1).attr("width",c+1);var k=y.append("g").classed("underlayer",!0),x=w.select(".underlayer");if(k.append("rect").classed("background",!0),x.select(".background").attr("height",s).attr("width",c),this.firstUpdate||t.has("contour")||t.has("zRoc")||t.has("width")||t.has("height")||t.has("rem")||t.has("s"))if(void 0!==this.contour){for(var _=100,S=[],A=.5,E=0;A<_;A+=1)for(var T=.5;T<_;T+=1,E+=1){var M=this.zRoc?yl.zhr2Hr(T/_*6-3):T/_,C=this.zRoc?yl.zfar2Far(6*(1-A/_)-3):1-A/_;S[E]="bias"===this.contour?yl.hrFar2C(M,C,this.s):"sensitivity"===this.contour?yl.hrFar2D(M,C,this.s):"accuracy"===this.contour?yl.hrFar2Acc(M,C):null}var N="bias"===this.contour?Bt(-3,3,.25):"sensitivity"===this.contour?Bt(-6,6,.5):"accuracy"===this.contour?Bt(0,1,.05):null,R=ei().size([_,_]).thresholds(N),q=this.getComputedStyleValue("bias"===this.contour?"---color-element-background":"sensitivity"===this.contour?"---color-d":"accuracy"===this.contour?"---color-acc-dark":null),P=this.getComputedStyleValue("bias"===this.contour?"---color-c":"sensitivity"===this.contour||"accuracy"===this.contour?"---color-element-background":null),z=is().domain(Nt(N)).interpolate((function(){return gr(q,P)})),F=x.selectAll(".plot-contour").data([this.contour]),$=F.enter().append("g").classed("plot-contour",!0).merge(F).selectAll(".contour").data(R(S));$.enter().append("path").classed("contour",!0).merge($).transition().duration(2*u).ease(Ia).attr("d",jo(Ko().scale(c/_))).attr("fill",(function(t){return z(t.value)})),$.exit().remove();var O=x.selectAll(".title-contour").data([this.contour]);O.enter().append("text").classed("title-contour",!0).attr("text-anchor","middle").merge(O).classed("math-var","bias"===this.contour||"sensitivity"===this.contour).attr("transform","bias"===this.contour||"sensitivity"===this.contour?"translate(".concat(c+1.25*this.rem,", ").concat(this.rem,")"):"accuracy"===this.contour?"translate(".concat(c+1.125*this.rem,", ").concat(this.rem,")"):null).text("bias"===this.contour?"c":"sensitivity"===this.contour?"d′":"accuracy"===this.contour?"Acc":null);for(var I=[],H=.5,D=0;H<100;H+=1,D+=4)I[D]="bias"===this.contour?-(H/_*6-3):"sensitivity"===this.contour?H/_*12-6:"accuracy"===this.contour?H/_:null,I[D+1]=I[D],I[D+2]=I[D],I[D+3]=I[D];var U=ei().size([4,100]).thresholds(N),j=is().domain("bias"===this.contour?[3,-3]:"sensitivity"===this.contour?[6,-6]:"accuracy"===this.contour?[1,0]:null).range([0,10*this.rem]),L=x.selectAll(".legend-contour").data([this.contour]),V=L.enter().append("g").classed("legend-contour",!0),B=V.merge(L).attr("transform","bias"===this.contour||"sensitivity"===this.contour?"translate(".concat(c+1.25*this.rem,", ").concat(1.5*this.rem,")"):"accuracy"===this.contour?"translate(".concat(c+1.5*this.rem,", ").concat(1.5*this.rem,")"):null);L.exit().remove(),V.append("g").classed("axis-contour",!0),B.select(".axis-contour").call(ee(j).ticks(7).tickSize(0)).attr("font-size",null).attr("font-family",null);var K=B.selectAll(".contour").data(U(I));K.enter().append("path").classed("contour",!0).merge(K).attr("d",jo(Ko().scale(10*this.rem/100))).attr("fill",(function(t){return z(t.value)})),K.exit().remove()}else{x.selectAll(".plot-contour").data([]).exit().remove(),x.selectAll(".title-contour").data([]).exit().remove(),x.selectAll(".legend-contour").data([]).exit().remove()}k.append("g").classed("axis-x",!0),x.select(".axis-x").attr("transform","translate(0, ".concat(s,")")).transition().duration(2*u).ease(Ia).call(te(h)).attr("font-size",null).attr("font-family",null).selectAll("line, path").attr("stroke",null);var X=k.append("text").classed("title-x",!0).attr("text-anchor","middle");X.append("tspan").classed("z math-var",!0),X.append("tspan").classed("name",!0);var G=x.select(".title-x").attr("transform","translate(".concat(c/2,", ").concat(s+2.25*this.rem,")"));G.select("tspan.z").text(this.zRoc?"z":""),G.select("tspan.name").text(this.zRoc?"(False Alarm Rate)":"False Alarm Rate"),k.append("g").classed("axis-y",!0),x.select(".axis-y").transition().duration(2*u).ease(Ia).call(ee(d)).attr("font-size",null).attr("font-family",null).selectAll("line, path").attr("stroke",null);var Z=k.append("text").classed("title-y",!0).attr("text-anchor","middle");Z.append("tspan").classed("z math-var",!0),Z.append("tspan").classed("name",!0);var Y=x.select(".title-y").attr("transform","translate(".concat(-2*this.rem,", ").concat(s/2,")rotate(-90)"));Y.select("tspan.z").text(this.zRoc?"z":""),Y.select("tspan.name").text(this.zRoc?"(Hit Rate)":"Hit Rate"),k.append("line").classed("diagonal",!0),x.select(".diagonal").attr("x1",this.zRoc?h(-3):h(0)).attr("y1",this.zRoc?d(-3):d(0)).attr("x2",this.zRoc?h(3):h(1)).attr("y2",this.zRoc?d(3):d(1)),y.append("g").classed("content",!0);var W=w.select(".content"),Q=W.selectAll(".curve-iso-d").data(this.isoDArray,(function(t){return t.name})),J=Q.enter().append("path").classed("curve-iso-d",!0).attr("clip-path","url(#clip-roc-space)").merge(Q);this.firstUpdate||t.has("zRoc")?J.transition().duration(this.drag?0:2*u).ease(Ia).attr("d",(function(t){return p(Bt(h.range()[0],h.range()[1]+1,1).map((function(n){return{far:e.zRoc?yl.zfar2Far(h.invert(n)):h.invert(n),hr:e.zRoc?yl.dFar2Hr(t.d,yl.zfar2Far(h.invert(n)),t.s):yl.dFar2Hr(t.d,h.invert(n),t.s)}})))})):this.sdt?J.transition().duration(this.drag?0:u).ease(Ia).attrTween("d",(function(t,n,r){var a=r[n];a.hr=void 0,a.far=void 0;var i=Tr(void 0!==a.d?a.d:t.d,t.d),o=Tr(void 0!==a.s?a.s:t.s,t.s);return function(t){a.d=i(t),a.s=o(t);var n=Bt(h.range()[0],h.range()[1]+1,1).map((function(t){return{far:e.zRoc?yl.zfar2Far(h.invert(t)):h.invert(t),hr:e.zRoc?yl.dFar2Hr(a.d,yl.zfar2Far(h.invert(t)),a.s):yl.dFar2Hr(a.d,h.invert(t),a.s)}}));return p(n)}})):J.transition().duration(this.drag?0:u).ease(Ia).attrTween("d",(function(t,n,r){var a=r[n];a.d=void 0,a.s=void 0;var i=Tr(void 0!==a.hr?a.hr:t.hr,t.hr),o=Tr(void 0!==a.far?a.far:t.far,t.far);return function(n){a.hr=i(n),a.far=o(n);var r=Bt(h.range()[0],h.range()[1]+1,1).map((function(n){return{far:e.zRoc?yl.zfar2Far(h.invert(n)):h.invert(n),hr:e.zRoc?yl.dFar2Hr(yl.hrFar2D(a.hr,a.far,t.s),yl.zfar2Far(h.invert(n)),t.s):yl.dFar2Hr(yl.hrFar2D(a.hr,a.far,t.s),h.invert(n),t.s)}}));return p(r)}})),Q.exit().remove();var tt=W.selectAll(".curve-iso-c").data(this.isoCArray,(function(t){return t.name})),et=tt.enter().append("path").classed("curve-iso-c",!0).attr("clip-path","url(#clip-roc-space)").merge(tt);this.firstUpdate||t.has("zRoc")?et.transition().duration(this.drag?0:2*u).ease(Ia).attr("d",(function(t){return p(Bt(h.range()[0],h.range()[1]+1,1).map((function(n){return{far:e.zRoc?yl.zfar2Far(h.invert(n)):h.invert(n),hr:e.zRoc?yl.cFar2Hr(t.c,yl.zfar2Far(h.invert(n)),t.s):yl.cFar2Hr(t.c,h.invert(n),t.s)}})))})):this.sdt?et.transition().duration(this.drag?0:u).ease(Ia).attrTween("d",(function(t,n,r){var a=r[n];a.hr=void 0,a.far=void 0;var i=Tr(void 0!==a.c?a.c:t.c,t.c),o=Tr(void 0!==a.s?a.s:t.s,t.s);return function(t){a.c=i(t),a.s=o(t);var n=Bt(h.range()[0],h.range()[1]+1,1).map((function(t){return{far:e.zRoc?yl.zfar2Far(h.invert(t)):h.invert(t),hr:e.zRoc?yl.cFar2Hr(a.c,yl.zfar2Far(h.invert(t)),a.s):yl.cFar2Hr(a.c,h.invert(t),a.s)}}));return p(n)}})):et.transition().duration(this.drag?0:u).ease(Ia).attrTween("d",(function(t,n,r){var a=r[n];a.c=void 0,a.s=void 0;var i=Tr(void 0!==a.hr?a.hr:t.hr,t.hr),o=Tr(void 0!==a.far?a.far:t.far,t.far);return function(n){a.hr=i(n),a.far=o(n);var r=Bt(h.range()[0],h.range()[1]+1,1).map((function(n){return{far:e.zRoc?yl.zfar2Far(h.invert(n)):h.invert(n),hr:e.zRoc?yl.cFar2Hr(yl.hrFar2C(a.hr,a.far,t.s),yl.zfar2Far(h.invert(n)),t.s):yl.cFar2Hr(yl.hrFar2C(a.hr,a.far,t.s),h.invert(n),t.s)}}));return p(r)}})),tt.exit().remove();var nt=W.selectAll(".point").data(this.pointArray,(function(t){return t.name})),rt=nt.enter().append("g").classed("point",!0);rt.append("circle").classed("circle",!0).attr("r",6),rt.append("text").classed("label",!0);var at=rt.merge(nt);at.select("text").text((function(t){return t.label})),(this.firstUpdate||t.has("interactive"))&&(this.interactive?at.attr("tabindex",0).classed("interactive",!0).call(f).on("keydown",(function(t,n){if(["ArrowUp","ArrowDown","ArrowRight","ArrowLeft"].includes(t.key)){var r=e.zRoc?yl.hr2Zhr(n.hr):n.hr,a=e.zRoc?yl.far2Zfar(n.far):n.far;switch(t.key){case"ArrowUp":r+=e.zRoc?t.shiftKey?.05:.25:t.shiftKey?.01:.05;break;case"ArrowDown":r-=e.zRoc?t.shiftKey?.05:.25:t.shiftKey?.01:.05;break;case"ArrowRight":a+=e.zRoc?t.shiftKey?.05:.25:t.shiftKey?.01:.05;break;case"ArrowLeft":a-=e.zRoc?t.shiftKey?.05:.25:t.shiftKey?.01:.05}r=e.zRoc?yl.zhr2Hr(r):r,a=(a=e.zRoc?yl.zfar2Far(a):a)<.001?.001:a>.999?.999:a,(r=r<.001?.001:r>.999?.999:r)===n.hr&&a===n.far||(n.hr=r,n.far=a,"default"===n.name&&(e.hr=n.hr,e.far=n.far),e.alignState(),e.requestUpdate(),e.dispatchEvent(new CustomEvent("roc-point-change",{detail:{name:n.name,far:n.far,hr:n.hr,d:n.d,c:n.c,s:n.s,label:n.label},bubbles:!0}))),t.preventDefault()}})):at.attr("tabindex",null).classed("interactive",!1).on("drag",null).on("keydown",null)),this.firstUpdate||t.has("zRoc")?at.transition().duration(this.drag?0:2*u).ease(Ia).attr("transform",(function(t,n,r){var a=r[n];return a.d=void 0,a.c=void 0,a.s=void 0,"translate(\n ".concat(h(e.zRoc?yl.far2Zfar(t.far):t.far),",\n ").concat(d(e.zRoc?yl.hr2Zhr(t.hr):t.hr),"\n )")})):this.sdt?at.transition().duration(this.drag?0:u).ease(Ia).attrTween("transform",(function(t,n,r){var a=r[n],i=Tr(void 0!==a.d?a.d:t.d,t.d),o=Tr(void 0!==a.c?a.c:t.c,t.c),s=Tr(void 0!==a.s?a.s:t.s,t.s);return function(t){return a.d=i(t),a.c=o(t),a.s=s(t),"translate(\n ".concat(h(e.zRoc?yl.far2Zfar(yl.dC2Far(a.d,a.c,a.s)):yl.dC2Far(a.d,a.c,a.s)),",\n ").concat(d(e.zRoc?yl.hr2Zhr(yl.dC2Hr(a.d,a.c,a.s)):yl.dC2Hr(a.d,a.c,a.s)),"\n )")}})):at.transition().duration(this.drag?0:u).ease(Ia).attr("transform",(function(t,n,r){var a=r[n];return a.d=void 0,a.c=void 0,a.s=void 0,"translate(\n ".concat(h(e.zRoc?yl.far2Zfar(t.far):t.far),",\n ").concat(d(e.zRoc?yl.hr2Zhr(t.hr):t.hr),"\n )")})),nt.exit().remove(),this.drag=!1,this.sdt=!1,this.firstUpdate=!1}}}],[{key:"properties",get:function(){return{contour:{attribute:"contour",type:String,reflect:!0},point:{attribute:"point",type:String,reflect:!0},isoD:{attribute:"iso-d",type:String,reflect:!0},isoC:{attribute:"iso-c",type:String,reflect:!0},zRoc:{attribute:"z-roc",type:Boolean,reflect:!0},far:{attribute:"far",type:Number,reflect:!0},hr:{attribute:"hr",type:Number,reflect:!0},d:{attribute:!1,type:Number,reflect:!1},c:{attribute:!1,type:Number,reflect:!1},s:{attribute:!1,type:Number,reflect:!1},width:{attribute:!1,type:Number,reflect:!1},height:{attribute:!1,type:Number,reflect:!1},rem:{attribute:!1,type:Number,reflect:!1}}}},{key:"styles",get:function(){return[b(l(n),"styles",this),R(Zs||(Zs=g(['\n :host {\n display: inline-block;\n\n width: 20rem;\n height: 20rem;\n }\n\n .main {\n width: 100%;\n height: 100%;\n }\n\n .plot-contour,\n .legend-contour .contour {\n stroke: var(---color-background);\n stroke-width: 0.5;\n }\n\n text {\n /* stylelint-disable property-no-vendor-prefix */\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n\n .point.interactive {\n cursor: move;\n\n filter: url("#shadow-2");\n outline: none;\n\n /* HACK: This gets Safari to correctly apply the filter! */\n /* https://github.com/emilbjorklund/svg-weirdness/issues/27 */\n stroke: #000000;\n stroke-opacity: 0;\n stroke-width: 0;\n }\n\n /* Make a larger target for touch users */\n @media (pointer: coarse) {\n .point.interactive .circle {\n stroke: #000000;\n stroke-opacity: 0;\n stroke-width: 12px;\n }\n }\n\n .point.interactive:hover {\n filter: url("#shadow-4");\n\n /* HACK: This gets Safari to correctly apply the filter! */\n stroke: #ff0000;\n }\n\n .point.interactive:active {\n filter: url("#shadow-8");\n\n /* HACK: This gets Safari to correctly apply the filter! */\n stroke: #00ff00;\n }\n\n :host(.keyboard) .point.interactive:focus {\n filter: url("#shadow-8");\n\n /* HACK: This gets Safari to correctly apply the filter! */\n stroke: #0000ff;\n }\n\n .background {\n fill: var(---color-element-background);\n stroke: var(---color-element-border);\n stroke-width: 1;\n shape-rendering: crispEdges;\n }\n\n .title-x,\n .title-y,\n .title-contour {\n font-weight: 600;\n\n fill: currentColor;\n }\n\n .tick {\n font-size: 0.75rem;\n }\n\n .axis-x path,\n .axis-x line,\n .axis-y path,\n .axis-y line {\n stroke: var(---color-element-border);\n }\n\n .axis-contour .domain {\n stroke: none;\n }\n\n .diagonal {\n stroke: var(---color-element-border);\n stroke-dasharray: 4;\n stroke-width: 1;\n }\n\n .curve-iso-d {\n fill: none;\n stroke: var(---color-d);\n stroke-width: 2;\n }\n\n .curve-iso-c {\n fill: none;\n stroke: var(---color-c);\n stroke-width: 2;\n }\n\n .point .circle {\n fill: var(---color-element-emphasis);\n\n /* r: 6; HACK: Firefox does not support CSS SVG Geometry Properties */\n }\n\n .point .label {\n font-size: 0.75rem;\n\n dominant-baseline: middle;\n text-anchor: middle;\n\n fill: var(---color-text-inverse);\n }\n '])))]}}]),n}(Ks);customElements.define("roc-space",wl);var kl,xl,_l=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.call(this)).trials=void 0,t.duration=void 0,t.coherence=void 0,t.payoff=void 0,t.colors=["none","accuracy","stimulus","response","outcome"],t.color=void 0,t.zRoc=void 0,t.run=!1,t.pause=!1,t.reset=!1,t.states=["resetted","running","paused","ended"],t.state="resetted",t}return i(n,[{key:"setTrials",value:function(t){this.trials=t.target.value,this.dispatchEvent(new CustomEvent("detectable-control-trials",{detail:{trials:this.trials},bubbles:!0}))}},{key:"setDuration",value:function(t){this.duration=t.target.value,this.dispatchEvent(new CustomEvent("detectable-control-duration",{detail:{duration:this.duration},bubbles:!0}))}},{key:"setCoherence",value:function(t){this.coherence=t.target.value,this.dispatchEvent(new CustomEvent("detectable-control-coherence",{detail:{coherence:this.coherence},bubbles:!0}))}},{key:"setPayoff",value:function(t){this.payoff=t.target.value,this.dispatchEvent(new CustomEvent("detectable-control-payoff",{detail:{payoff:this.payoff},bubbles:!0}))}},{key:"chooseColor",value:function(t){this.color=t.target.value,this.dispatchEvent(new CustomEvent("detectable-control-color",{detail:{color:this.color},bubbles:!0}))}},{key:"flipZRoc",value:function(t){this.zRoc=t.target.checked,this.dispatchEvent(new CustomEvent("detectable-control-z-roc",{detail:{zRoc:this.zRoc},bubbles:!0}))}},{key:"doRun",value:function(){this.state="running",this.dispatchEvent(new CustomEvent("detectable-control-run",{detail:{},bubbles:!0}))}},{key:"doPause",value:function(){this.state="paused",this.dispatchEvent(new CustomEvent("detectable-control-pause",{detail:{},bubbles:!0}))}},{key:"doReset",value:function(){this.state="resetted",this.dispatchEvent(new CustomEvent("detectable-control-reset",{detail:{},bubbles:!0}))}},{key:"complete",value:function(){this.state="ended"}},{key:"render",value:function(){return at(Ys||(Ys=g(['\n <div class="holder">\n ',"\n ","\n ","\n ","\n ","\n ","\n ","\n </div>"])),this.trials?at(Ws||(Ws=g(['<decidables-slider min="1" max="100" step="1" .value='," @change="," @input=",">Trials</decidables-slider>"])),this.trials,this.setTrials.bind(this),this.setTrials.bind(this)):at(Qs||(Qs=g([""]))),this.duration?at(Js||(Js=g(['<decidables-slider min="10" max="2000" step="10" .value='," @change="," @input=",">Duration</decidables-slider>"])),this.duration,this.setDuration.bind(this),this.setDuration.bind(this)):at(tl||(tl=g([""]))),this.coherence?at(el||(el=g(['<decidables-slider min="0" max="1" step=".01" .value='," @change="," @input=",">Coherence</decidables-slider>"])),this.coherence,this.setCoherence.bind(this),this.setCoherence.bind(this)):at(nl||(nl=g([""]))),this.payoff?at(rl||(rl=g(['<decidables-slider class="payoff" min="0" max="100" step="1" .value='," @change="," @input=",">Payoff</decidables-slider>"])),this.payoff,this.setPayoff.bind(this),this.setPayoff.bind(this)):at(al||(al=g([""]))),void 0!==this.color?at(il||(il=g(["\n <decidables-toggle @change=",'>\n <span slot="label">Emphasis</span>\n <decidables-toggle-option name=',' value="none" ?checked=',">None</decidables-toggle-option>\n <decidables-toggle-option name=",' value="accuracy" ?checked=',">Accuracy</decidables-toggle-option>\n <decidables-toggle-option name=",' value="stimulus" ?checked=',">Stimulus</decidables-toggle-option>\n <decidables-toggle-option name=",' value="response" ?checked=',">Response</decidables-toggle-option>\n <decidables-toggle-option name=",' value="outcome" ?checked=',">Outcome</decidables-toggle-option>\n </decidables-toggle>\n "])),this.chooseColor.bind(this),"".concat(this.uniqueId,"-color"),"none"===this.color,"".concat(this.uniqueId,"-color"),"accuracy"===this.color,"".concat(this.uniqueId,"-color"),"stimulus"===this.color,"".concat(this.uniqueId,"-color"),"response"===this.color,"".concat(this.uniqueId,"-color"),"outcome"===this.color):at(ol||(ol=g([""]))),void 0!==this.zRoc?at(sl||(sl=g(["\n <decidables-switch ?checked="," @change=",'>\n <span class="math-var">z</span>ROC\n <span slot="off-label">ROC</span>\n </decidables-switch>\n '])),this.zRoc,this.flipZRoc.bind(this)):at(ll||(ll=g([""]))),this.run||this.pause||this.reset?at(cl||(cl=g(['\n <div class="buttons">\n ',"\n ","\n ","\n </div>\n "])),this.run?at(ul||(ul=g(['<decidables-button name="run" ?disabled='," @click=",">Run</decidables-button>"])),"running"===this.state||"ended"===this.state,this.doRun.bind(this)):at(hl||(hl=g([""]))),this.pause?at(dl||(dl=g(['<decidables-button name="pause" ?disabled='," @click=",">Pause</decidables-button>"])),"running"!==this.state,this.doPause.bind(this)):at(fl||(fl=g([""]))),this.reset?at(pl||(pl=g(['<decidables-button name="reset" ?disabled='," @click=",">Reset</decidables-button>"])),"resetted"===this.state,this.doReset.bind(this)):at(vl||(vl=g([""])))):at(ml||(ml=g([""]))))}}],[{key:"properties",get:function(){return{trials:{attribute:"trials",type:Number,reflect:!0},duration:{attribute:"duration",type:Number,reflect:!0},coherence:{attribute:"coherence",type:Number,reflect:!0},payoff:{attribute:"payoff",type:Number,reflect:!0},color:{attribute:"color",type:String,reflect:!0},zRoc:{attribute:"z-roc",type:Boolean,reflect:!0},run:{attribute:"run",type:Boolean,reflect:!0},pause:{attribute:"pause",type:Boolean,reflect:!0},reset:{attribute:"reset",type:Boolean,reflect:!0},state:{atribute:!1,type:String,reflect:!1}}}},{key:"styles",get:function(){return[b(l(n),"styles",this),R(bl||(bl=g(['\n :host {\n display: inline-block;\n }\n\n .holder {\n display: flex;\n\n flex-direction: row;\n\n align-items: stretch;\n justify-content: center;\n }\n\n .buttons {\n display: flex;\n\n flex-direction: column;\n\n align-items: stretch;\n justify-content: center;\n }\n\n /* Payoff Slider */\n .payoff {\n --decidables-spinner-prefix: "$";\n }\n '])))]}}]),n}(Ks);customElements.define("detectable-control",_l);var Sl,Al,El,Tl,Ml,Cl,Nl,Rl,ql,Pl,zl,Fl,$l,Ol,Il,Hl,Dl,Ul,jl,Ll,Vl=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.call(this)).colors=["outcome","response","stimulus","none"],t.color="outcome",t.distributions=!1,t.threshold=!1,t.unequal=!1,t.sensitivity=!1,t.bias=!1,t.variance=!1,t.histogram=!1,t.d=1,t.c=0,t.s=1,t.binWidth=.25,t.signals=["present","absent"],t.responses=["present","absent"],t.trials=[],t.width=NaN,t.height=NaN,t.rem=NaN,t.muN=NaN,t.muS=NaN,t.l=NaN,t.hS=NaN,t.binRange=[-3,3],t.h=0,t.m=0,t.fa=0,t.cr=0,t.firstUpdate=!0,t.drag=!1,t.alignState(),t}return i(n,[{key:"reset",value:function(){this.trials=[],this.h=0,this.m=0,this.fa=0,this.cr=0}},{key:"trial",value:function(t,e,n,r,a){var i={new:!0,paused:!1};i.trial=t,i.signal=e,i.duration=n,i.wait=r,i.iti=a,i.evidence=gl.normal.sample(0,1),this.alignTrial(i),this.trials.push(i),this.requestUpdate()}},{key:"alignTrial",value:function(t){return"present"===t.signal?(t.trueEvidence=t.evidence*this.s+this.muS,t.response=t.trueEvidence>this.l?"present":"absent",t.outcome="present"===t.response?"h":"m"):(t.trueEvidence=t.evidence+this.muN,t.response=t.trueEvidence>this.l?"present":"absent",t.outcome="present"===t.response?"fa":"cr"),t.new||(this[t.outcome]+=1),t}},{key:"alignState",value:function(){this.far=yl.dC2Far(this.d,this.c,this.s),this.hr=yl.dC2Hr(this.d,this.c,this.s),this.muN=yl.d2MuN(this.d,this.s),this.muS=yl.d2MuS(this.d,this.s),this.l=yl.c2L(this.c,this.s),this.hS=yl.s2H(this.s),this.h=0,this.m=0,this.fa=0,this.cr=0;for(var t=0;t<this.trials.length;t+=1)this.alignTrial(this.trials[t])}},{key:"render",value:function(){return at(kl||(kl=g(["\n ","\n "])),Ks.svgFilters)}},{key:"sendEvent",value:function(){this.dispatchEvent(new CustomEvent("sdt-model-change",{detail:{d:this.d,c:this.c,s:this.s,far:this.far,hr:this.hr,h:this.h,m:this.m,fa:this.fa,cr:this.cr},bubbles:!0}))}},{key:"getDimensions",value:function(){this.width=parseFloat(this.getComputedStyleValue("width"),10),this.height=parseFloat(this.getComputedStyleValue("height"),10),this.rem=parseFloat(getComputedStyle(document.documentElement).getPropertyValue("font-size"),10)}},{key:"connectedCallback",value:function(){b(l(n.prototype),"connectedCallback",this).call(this),window.addEventListener("resize",this.getDimensions.bind(this))}},{key:"disconnectedCallback",value:function(){window.removeEventListener("resize",this.getDimensions.bind(this)),b(l(n.prototype),"disconnectedCallback",this).call(this)}},{key:"firstUpdated",value:function(t){b(l(n.prototype),"firstUpdated",this).call(this,t),window.setTimeout(this.getDimensions.bind(this),0)}},{key:"update",value:function(t){var e=this;if(b(l(n.prototype),"update",this).call(this,t),this.alignState(),!(Number.isNaN(this.width)||Number.isNaN(this.height)||Number.isNaN(this.rem))){var r,a,i=this.width,o=this.height;i/o>1.8?r=1.8*(a=o):a=(r=i)/1.8;var s={top:2*this.rem,bottom:3*this.rem,left:3*this.rem,right:(this.histogram&&this.distributions?3:.75)*this.rem},c=a-(s.top+s.bottom),u=r-(s.left+s.right),h=parseInt(this.getComputedStyleValue("---transition-duration"),10),d=is().domain([-3,3]).range([0,u]),f=is().domain([.5,0]).range([0,c]),p=d(this.binWidth)-d(0),v=is().domain([c/p,0]).range([0,c]),m=On().subject((function(){return{x:d(e.l),y:0}})).on("start",(function(t){An(t.currentTarget).classed("dragging",!0)})).on("drag",(function(t){e.drag=!0;var n=d.invert(t.x);n=n<d.domain()[0]?d.domain()[0]:n>d.domain()[1]?d.domain()[1]:n,e.c=yl.l2C(n,e.s),e.alignState(),e.sendEvent()})).on("end",(function(t){An(t.currentTarget).classed("dragging",!1)})),g=On().subject((function(){return{x:d(e.muN),y:0}})).on("start",(function(t){An(t.currentTarget).classed("dragging",!0)})).on("drag",(function(t){e.drag=!0;var n=d.invert(t.x);n=n<d.domain()[0]?d.domain()[0]:n>d.domain()[1]?d.domain()[1]:n,e.d=yl.muN2D(n,e.s),e.alignState(),e.sendEvent()})).on("end",(function(t){An(t.currentTarget).classed("dragging",!1)})),y=On().subject((function(){return{x:d(e.muS),y:f(e.hS)}})).on("start",(function(t,n){An(t.currentTarget).classed("dragging",!0),n.startX=t.x,n.startY=t.y,n.startHS=e.hS,n.startMuS=e.muS})).on("drag",(function(t,n){e.drag=!0;var r=e.muS;e.interactive&&(r=(r=d.invert(t.x))<d.domain()[0]?d.domain()[0]:r>d.domain()[1]?d.domain()[1]:r);var a=e.hS;e.unequal&&(a=(a=f.invert(t.y))<.01?.01:a>f.domain()[0]?f.domain()[0]:a),e.interactive&&e.unequal&&t.sourceEvent.shiftKey&&(Math.abs(t.x-n.startX)>Math.abs(t.y-n.startY)?a=n.startHS:r=n.startMuS),e.unequal&&(e.s=yl.h2S(a),e.c=yl.l2C(e.l,e.s)),e.d=yl.muS2D(r,e.s),e.alignState(),e.sendEvent()})).on("end",(function(t){An(t.currentTarget).classed("dragging",!1)})),w=ks().x((function(t){return d(t.e)})).y((function(t){return f(t.p)})),k=An(this.renderRoot).selectAll(".main").data([{width:this.width,height:this.height,rem:this.rem}]),x=k.enter().append("svg").classed("main",!0),_=x.merge(k).attr("viewBox","0 0 ".concat(r," ").concat(a)),S=x.append("g").classed("plot",!0),A=_.select(".plot").attr("transform","translate(".concat(s.left,", ").concat(s.top,")")),E=S.append("g").classed("underlayer",!0),T=A.select(".underlayer");E.append("rect").classed("background",!0),T.select(".background").attr("height",c).attr("width",u),E.append("g").classed("axis-x",!0),T.select(".axis-x").attr("transform","translate(0, ".concat(c,")")).call(te(d)).attr("font-size",null).attr("font-family",null).selectAll("line, path").attr("stroke",null),E.append("text").classed("title-x",!0).attr("text-anchor","middle").text("Evidence"),T.select(".title-x").attr("transform","translate(".concat(u/2,", ").concat(c+2.25*this.rem,")"));var M=T.selectAll(".axis-y").data(this.distributions?[{}]:[]);M.enter().append("g").classed("axis-y",!0).merge(M).call(ee(f).ticks(5)).attr("font-size",null).attr("font-family",null).selectAll("line, path").attr("stroke",null),M.exit().remove();var C=T.selectAll(".title-y").data(this.distributions?[{}]:[]);C.enter().append("text").classed("title-y",!0).attr("text-anchor","middle").text("Probability").merge(C).attr("transform","translate(".concat(-2*this.rem,", ").concat(c/2,")rotate(-90)")),C.exit().remove();var N,R=T.selectAll(".axis-y2").data(this.histogram?[{}]:[]);R.enter().append("g").classed("axis-y2",!0).merge(R).attr("transform",this.distributions?"translate(".concat(u,", 0)"):"").call(this.distributions?(N=v,Jt(2,N)).ticks(10):ee(v).ticks(10)).attr("font-size",null).attr("font-family",null).selectAll("line, path").attr("stroke",null),R.exit().remove();var q=T.selectAll(".title-y2").data(this.histogram?[{}]:[]);q.enter().append("text").classed("title-y2",!0).attr("text-anchor","middle").text("Count").merge(q).attr("transform",this.distributions?"translate(".concat(u+1.5*this.rem,", ").concat(c/2,")rotate(90)"):"translate(".concat(-1.5*this.rem,", ").concat(c/2,")rotate(-90)")),q.exit().remove(),S.append("g").classed("content",!0);var P=A.select(".content"),z=P.selectAll(".signal-noise").data(this.distributions?[{}]:[]),F=z.enter().append("g").classed("signal-noise",!0),$=F.merge(z);z.exit().remove();var O=F.append("g").classed("noise",!0),I=$.selectAll(".noise").attr("tabindex",this.interactive?0:null).classed("interactive",this.interactive).on("keydown",this.interactive?function(t){if(["ArrowRight","ArrowLeft"].includes(t.key)){var n=e.muN;switch(t.key){case"ArrowRight":n+=t.shiftKey?.01:.1;break;case"ArrowLeft":n-=t.shiftKey?.01:.1}(n=n<d.domain()[0]?d.domain()[0]:n>d.domain()[1]?d.domain()[1]:n)!==e.muN&&(e.d=yl.muN2D(n,e.s),e.alignState(),e.sendEvent()),t.preventDefault()}}:null);(this.firstUpdate||t.has("interactive"))&&(this.interactive?I.call(g):I.on(".drag",null)),O.append("path").classed("curve-cr",!0),I.select(".curve-cr").transition().duration(this.drag?0:h).ease(Ia).attrTween("d",(function(t,n,r){var a=r[n],i=Tr(void 0!==a.d?a.d:e.d,e.d),o=Tr(void 0!==a.c?a.c:e.c,e.c),s=Tr(void 0!==a.s?a.s:e.s,e.s);return function(t){a.d=i(t),a.c=o(t),a.s=s(t);var e=Bt(d.domain()[0],yl.c2L(a.c,a.s),.05).map((function(t){return{e:t,p:gl.normal.pdf(t,yl.d2MuN(a.d,a.s),1)}}));return e.push({e:yl.c2L(a.c,a.s),p:gl.normal.pdf(yl.c2L(a.c,a.s),yl.d2MuN(a.d,a.s),1)}),e.push({e:yl.c2L(a.c,a.s),p:0}),e.push({e:d.domain()[0],p:0}),w(e)}})),O.append("path").classed("curve-fa",!0),I.select(".curve-fa").transition().duration(this.drag?0:h).ease(Ia).attrTween("d",(function(t,n,r){var a=r[n],i=Tr(void 0!==a.d?a.d:e.d,e.d),o=Tr(void 0!==a.c?a.c:e.c,e.c),s=Tr(void 0!==a.s?a.s:e.s,e.s);return function(t){a.d=i(t),a.c=o(t),a.s=s(t);var e=Bt(yl.c2L(a.c,a.s),d.domain()[1],.05).map((function(t){return{e:t,p:gl.normal.pdf(t,yl.d2MuN(a.d,a.s),1)}}));return e.push({e:d.domain()[1],p:gl.normal.pdf(d.domain()[1],yl.d2MuN(a.d,a.s),1)}),e.push({e:d.domain()[1],p:0}),e.push({e:yl.c2L(a.c,a.s),p:0}),w(e)}})),O.append("path").classed("curve-noise",!0),I.select(".curve-noise").transition().duration(this.drag?0:h).ease(Ia).attrTween("d",(function(t,n,r){var a=r[n],i=Tr(void 0!==a.d?a.d:e.d,e.d),o=Tr(void 0!==a.s?a.s:e.s,e.s);return function(t){a.d=i(t),a.s=o(t);var e=Bt(d.domain()[0],d.domain()[1],.05).map((function(t){return{e:t,p:gl.normal.pdf(t,yl.d2MuN(a.d,a.s),1)}}));return e.push({e:d.domain()[1],p:gl.normal.pdf(d.domain()[1],yl.d2MuN(a.d,a.s),1)}),w(e)}}));var H=F.append("g").classed("signal",!0),D=$.selectAll(".signal").attr("tabindex",this.interactive||this.unequal?0:null).classed("interactive",this.interactive).classed("unequal",this.unequal).on("keydown.sensitivity",this.interactive?function(t){if(["ArrowRight","ArrowLeft"].includes(t.key)){var n=e.muS;switch(t.key){case"ArrowRight":n+=t.shiftKey?.01:.1;break;case"ArrowLeft":n-=t.shiftKey?.01:.1}(n=n<d.domain()[0]?d.domain()[0]:n>d.domain()[1]?d.domain()[1]:n)!==e.muS&&(e.d=yl.muS2D(n,e.s),e.alignState(),e.sendEvent()),t.preventDefault()}}:null).on("keydown.variance",this.unequal?function(t){if(["ArrowUp","ArrowDown"].includes(t.key)){var n=e.hS;switch(t.key){case"ArrowUp":n+=t.shiftKey?.002:.02;break;case"ArrowDown":n-=t.shiftKey?.002:.02}(n=n<.01?.01:n>f.domain()[0]?f.domain()[0]:n)!==e.hS&&(e.s=yl.h2S(n),e.d=yl.muN2D(e.muN,e.s),e.c=yl.l2C(e.l,e.s),e.alignState(),e.sendEvent()),t.preventDefault()}}:null);(this.firstUpdate||t.has("interactive")||t.has("unequal"))&&(this.interactive||this.unequal?D.call(y):D.on(".drag",null)),H.append("path").classed("curve-m",!0),D.select(".curve-m").transition().duration(this.drag?0:h).ease(Ia).attrTween("d",(function(t,n,r){var a=r[n],i=Tr(void 0!==a.d?a.d:e.d,e.d),o=Tr(void 0!==a.c?a.c:e.c,e.c),s=Tr(void 0!==a.s?a.s:e.s,e.s);return function(t){a.d=i(t),a.c=o(t),a.s=s(t);var e=Bt(d.domain()[0],yl.c2L(a.c,a.s),.05).map((function(t){return{e:t,p:gl.normal.pdf(t,yl.d2MuS(a.d,a.s),a.s)}}));return e.push({e:yl.c2L(a.c,a.s),p:gl.normal.pdf(yl.c2L(a.c,a.s),yl.d2MuS(a.d,a.s),a.s)}),e.push({e:yl.c2L(a.c,a.s),p:0}),e.push({e:d.domain()[0],p:0}),w(e)}})),H.append("path").classed("curve-h",!0),D.select(".curve-h").transition().duration(this.drag?0:h).ease(Ia).attrTween("d",(function(t,n,r){var a=r[n],i=Tr(void 0!==a.d?a.d:e.d,e.d),o=Tr(void 0!==a.c?a.c:e.c,e.c),s=Tr(void 0!==a.s?a.s:e.s,e.s);return function(t){a.d=i(t),a.c=o(t),a.s=s(t);var e=Bt(yl.c2L(a.c,a.s),d.domain()[1],.05).map((function(t){return{e:t,p:gl.normal.pdf(t,yl.d2MuS(a.d,a.s),a.s)}}));return e.push({e:d.domain()[1],p:gl.normal.pdf(d.domain()[1],yl.d2MuS(a.d,a.s),a.s)}),e.push({e:d.domain()[1],p:0}),e.push({e:yl.c2L(a.c,a.s),p:0}),w(e)}})),H.append("path").classed("curve-signal",!0),D.select(".curve-signal").transition().duration(this.drag?0:h).ease(Ia).attrTween("d",(function(t,n,r){var a=r[n],i=Tr(void 0!==a.d?a.d:e.d,e.d),o=Tr(void 0!==a.s?a.s:e.s,e.s);return function(t){a.d=i(t),a.s=o(t);var e=Bt(d.domain()[0],d.domain()[1],.05).map((function(t){return{e:t,p:gl.normal.pdf(t,yl.d2MuS(a.d,a.s),a.s)}}));return e.push({e:d.domain()[1],p:gl.normal.pdf(d.domain()[1],yl.d2MuS(a.d,a.s),a.s)}),w(e)}}));var U=P.selectAll(".measure-d").data(this.sensitivity?[{}]:[]),j=U.enter().append("g").classed("measure-d",!0);j.append("line").classed("line",!0),j.append("line").classed("cap-left",!0),j.append("line").classed("cap-right",!0);var L=j.append("text").classed("label",!0);L.append("tspan").classed("d math-var",!0).text("d′"),L.append("tspan").classed("equals",!0).text(" = "),L.append("tspan").classed("value",!0);var V=j.merge(U);V.select(".line").transition().duration(this.drag?0:h).ease(Ia).attr("x1",d(this.muN)).attr("y1",f(.43)).attr("x2",d(this.muS)).attr("y2",f(.43)),V.select(".cap-left").transition().duration(this.drag?0:h).ease(Ia).attr("x1",d(this.muN)).attr("y1",f(.43)+5).attr("x2",d(this.muN)).attr("y2",f(.43)-5),V.select(".cap-right").transition().duration(this.drag?0:h).ease(Ia).attr("x1",d(this.muS)).attr("y1",f(.43)+5).attr("x2",d(this.muS)).attr("y2",f(.43)-5),V.select(".label").transition().duration(this.drag?0:h).ease(Ia).attr("x",d(this.muN>this.muS?this.muN:this.muS)+5).attr("y",f(.43)+3).select(".value").tween("text",(function(t,n,r){var a=r[n],i=Tr(void 0!==a.d?a.d:e.d,e.d);return function(t){a.d=i(t),An(a).text(+a.d.toFixed(3))}})),U.exit().remove();var B=P.selectAll(".measure-c").data(this.bias?[{}]:[]),K=B.enter().append("g").classed("measure-c",!0);K.append("line").classed("line",!0),K.append("line").classed("cap-zero",!0);var X=K.append("text").classed("label",!0);X.append("tspan").classed("c math-var",!0).text("c"),X.append("tspan").classed("equals",!0).text(" = "),X.append("tspan").classed("value",!0);var G=K.merge(B);G.select(".line").transition().duration(this.drag?0:h).ease(Ia).attr("x1",d(this.l)).attr("y1",f(.47)).attr("x2",d(0)).attr("y2",f(.47)),G.select(".cap-zero").transition().duration(this.drag?0:h).ease(Ia).attr("x1",d(0)).attr("y1",f(.47)+5).attr("x2",d(0)).attr("y2",f(.47)-5),G.select(".label").transition().duration(this.drag?0:h).ease(Ia).attr("x",d(0)+(this.l<0?5:-5)).attr("y",f(.47)+3).attr("text-anchor",this.c<0?"start":"end").select(".value").tween("text",(function(t,n,r){var a=r[n],i=Tr(void 0!==a.c?a.c:e.c,e.c);return function(t){a.c=i(t),An(a).text(+a.c.toFixed(3))}})),B.exit().remove();var Z=P.selectAll(".measure-s").data(this.variance?[{}]:[]),Y=Z.enter().append("g").classed("measure-s",!0);Y.append("line").classed("line",!0),Y.append("line").classed("cap-left",!0),Y.append("line").classed("cap-right",!0);var W=Y.append("text").classed("label",!0);W.append("tspan").classed("s math-var",!0).text("σ"),W.append("tspan").classed("equals",!0).text(" = "),W.append("tspan").classed("value",!0);var Q=Y.merge(Z);Q.select(".line").transition().duration(this.drag?0:h).ease(Ia).attr("x1",d(this.muS-this.s)).attr("y1",f(gl.normal.pdf(this.s,0,this.s))+10/this.s).attr("x2",d(this.muS+this.s)).attr("y2",f(gl.normal.pdf(this.s,0,this.s))+10/this.s),Q.select(".cap-left").transition().duration(this.drag?0:h).ease(Ia).attr("x1",d(this.muS-this.s)).attr("y1",f(gl.normal.pdf(this.s,0,this.s))+10/this.s+5).attr("x2",d(this.muS-this.s)).attr("y2",f(gl.normal.pdf(this.s,0,this.s))+10/this.s-5),Q.select(".cap-right").transition().duration(this.drag?0:h).ease(Ia).attr("x1",d(this.muS+this.s)).attr("y1",f(gl.normal.pdf(this.s,0,this.s))+10/this.s+5).attr("x2",d(this.muS+this.s)).attr("y2",f(gl.normal.pdf(this.s,0,this.s))+10/this.s-5),Q.select(".label").transition().duration(this.drag?0:h).ease(Ia).attr("x",d(this.muS)).attr("y",f(gl.normal.pdf(this.s,0,this.s))+10/this.s-3).select(".value").tween("text",(function(t,n,r){var a=r[n],i=Tr(void 0!==a.s?a.s:e.s,e.s);return function(t){a.s=i(t),An(a).text(+a.s.toFixed(3))}})),Z.exit().remove();var J=P.selectAll(".threshold").data(this.threshold?[{}]:[]),tt=J.enter().append("g").classed("threshold",!0);tt.append("line").classed("line",!0),tt.append("circle").classed("handle",!0).attr("r",6);var et=tt.merge(J).attr("tabindex",this.interactive?0:null).classed("interactive",this.interactive);(this.firstUpdate||t.has("interactive"))&&(this.interactive?et.call(m).on("keydown",(function(t){if(["ArrowRight","ArrowLeft"].includes(t.key)){var n=e.l;switch(t.key){case"ArrowRight":n+=t.shiftKey?.01:.1;break;case"ArrowLeft":n-=t.shiftKey?.01:.1}(n=n<d.domain()[0]?d.domain()[0]:n>d.domain()[1]?d.domain()[1]:n)!==e.l&&(e.c=yl.l2C(n,e.s),e.alignState(),e.sendEvent()),t.preventDefault()}})):et.on("drag",null).on("keydown",null)),et.select(".line").transition().duration(this.drag?0:h).ease(Ia).attr("x1",d(this.l)).attr("y1",f(0)).attr("x2",d(this.l)).attr("y2",f(.54)),et.select(".handle").transition().duration(this.drag?0:h).ease(Ia).attr("cx",d(this.l)).attr("cy",f(.54)),J.exit().remove();var nt=P.selectAll(".histogram").data(this.histogram?[{}]:[]),rt=nt.enter().append("g").classed("histogram",!0).merge(nt);if(nt.exit().remove(),this.histogram){for(var at=jt().value((function(t){return t.trueEvidence})).domain(d.domain()).thresholds(Bt(this.binRange[0],this.binRange[1],this.binWidth)),it=at(this.trials),ot=-1,st=-1,lt=0;lt<it.length;lt+=1)for(var ct=0;ct<it[lt].length;ct+=1)it[lt][ct].binValue=it[lt].x0,it[lt][ct].binCount=ct,0===lt&&(ot=ct),lt===it.length-1&&(st=ct);for(var ut=0;ut<this.trials.length;ut+=1)this.trials[ut].trueEvidence<this.binRange[0]&&(ot+=1,this.trials[ut].binCount=ot,this.trials[ut].binValue=it[0].x0),this.trials[ut].trueEvidence>this.binRange[1]&&(st+=1,this.trials[ut].binCount=st,this.trials[ut].binValue=it[it.length-1].x0);var ht=rt.selectAll(".trial").data(this.trials,(function(t){return t.trial})),dt=ht.enter().append("rect").attr("stroke-width",3).attr("data-new-trial-ease-time",0).attr("stroke",this.getComputedStyleValue("---color-acc")).attr("fill",this.getComputedStyleValue("---color-acc-light")).merge(ht).attr("class",(function(t){return"trial ".concat(t.outcome)})).attr("width",p-3).attr("height",p-3),ft=dt.filter((function(t){return t.new&&!t.paused}));if(!ft.empty()){var pt=ft.attr("data-new-trial-ease-time"),vt=function(t){return function(e){return is().domain([t(pt),1]).range([0,1])(t(e))}};ft.transition("new").duration((function(t){return Math.floor((.75*t.duration+.25*t.wait)*(1-pt))})).ease((function(t){return is().domain([0,1]).range([pt,1])(t)})).attr("data-new-trial-ease-time",1).attrTween("stroke",(function(t,n,r){var a=r[n],i=gr(a.getAttribute("stroke"),"stimulus"===e.color?"present"===t.signal?e.getComputedStyleValue("---color-hr"):e.getComputedStyleValue("---color-far"):"response"===e.color?e.getComputedStyleValue("---color-".concat(t.response)):"outcome"===e.color?e.getComputedStyleValue("---color-".concat(t.outcome)):e.getComputedStyleValue("---color-acc"));return function(t){return i(vt(Oa)(t))}})).attrTween("fill",(function(t,n,r){var a=r[n],i=gr(a.getAttribute("fill"),"stimulus"===e.color?"present"===t.signal?e.getComputedStyleValue("---color-hr-light"):e.getComputedStyleValue("---color-far-light"):"response"===e.color?e.getComputedStyleValue("---color-".concat(t.response,"-light")):"outcome"===e.color?e.getComputedStyleValue("---color-".concat(t.outcome,"-light")):e.getComputedStyleValue("---color-acc-light"));return function(t){return i(vt(Oa)(t))}})).attrTween("x",(function(t,e,n){var r=Tr(n[e].getAttribute("x"),d(t.binValue)+1.5);return function(t){return r(vt(Ia)(t))}})).attrTween("y",(function(t,e,n){var r=Tr(n[e].getAttribute("y"),f(0)+1.5-(t.binCount+1)*p);return function(t){return r(vt(Oa)(t))}})).on("end",(function(t,n,r){r[n].removeAttribute("data-new-trial-ease-time"),t.new=!1,e.alignTrial(t),e.dispatchEvent(new CustomEvent("detectable-response",{detail:{stimulus:t.signal,response:t.response,outcome:t.outcome,h:e.h,m:e.m,fa:e.fa,cr:e.cr,nr:0},bubbles:!0}))}))}var mt=dt.filter((function(t){return t.new&&t.paused}));if(!mt.empty()){var bt=mt.attr("data-new-trial-ease-time");mt.transition().duration(h).ease(Ia).attr("x",(function(t){return Tr(0,d(t.binValue)+1.5)(Ia(bt))})).attr("y",(function(t){return Tr(0,f(0)+1.5-(t.binCount+1)*p)(Oa(bt))})).attr("stroke",(function(t){return gr(e.getComputedStyleValue("---color-acc"),"stimulus"===e.color?"present"===t.signal?e.getComputedStyleValue("---color-hr"):e.getComputedStyleValue("---color-far"):"response"===e.color?e.getComputedStyleValue("---color-".concat(t.response)):"outcome"===e.color?e.getComputedStyleValue("---color-".concat(t.outcome)):e.getComputedStyleValue("---color-acc"))(Oa(bt))})).attr("fill",(function(t){return gr(e.getComputedStyleValue("---color-acc-light"),"stimulus"===e.color?"present"===t.signal?e.getComputedStyleValue("---color-hr-light"):e.getComputedStyleValue("---color-far-light"):"response"===e.color?e.getComputedStyleValue("---color-".concat(t.response,"-light")):"outcome"===e.color?e.getComputedStyleValue("---color-".concat(t.outcome,"-light")):e.getComputedStyleValue("---color-acc-light"))(Oa(bt))}))}dt.filter((function(t){return!t.new})).transition().duration(h).ease(Ia).attr("x",(function(t){return d(t.binValue)+1.5})).attr("y",(function(t){return f(0)+1.5-(t.binCount+1)*p})).attr("stroke",(function(t){return"stimulus"===e.color?"present"===t.signal?e.getComputedStyleValue("---color-hr"):e.getComputedStyleValue("---color-far"):"response"===e.color?e.getComputedStyleValue("---color-".concat(t.response)):"outcome"===e.color?e.getComputedStyleValue("---color-".concat(t.outcome)):e.getComputedStyleValue("---color-acc")})).attr("fill",(function(t){return"stimulus"===e.color?"present"===t.signal?e.getComputedStyleValue("---color-hr-light"):e.getComputedStyleValue("---color-far-light"):"response"===e.color?e.getComputedStyleValue("---color-".concat(t.response,"-light")):"outcome"===e.color?e.getComputedStyleValue("---color-".concat(t.outcome,"-light")):e.getComputedStyleValue("---color-acc-light")})),ht.exit().transition().duration(h).ease($a).attrTween("stroke",(function(t,n,r){var a=r[n],i=gr(a.getAttribute("stroke"),e.getComputedStyleValue("---color-acc"));return function(t){return i(Oa(t))}})).attrTween("fill",(function(t,n,r){var a=r[n],i=gr(a.getAttribute("fill"),e.getComputedStyleValue("---color-acc-light"));return function(t){return i(Oa(t))}})).attrTween("x",(function(t,e,n){var r=Tr(n[e].getAttribute("x"),0);return function(t){return r(Oa(t))}})).attrTween("y",(function(t,e,n){var r=Tr(n[e].getAttribute("y"),0);return function(t){return r(Ia(t))}})).remove()}var gt=S.append("g").classed("overlayer",!0),yt=A.select(".overlayer");gt.append("rect").classed("background",!0),yt.select(".background").attr("height",c).attr("width",u),this.drag=!1,this.firstUpdate=!1}}},{key:"pauseTrial",value:function(){var t=An(this.renderRoot).select(".trial[data-new-trial-ease-time]");t.interrupt("new"),t.datum((function(t){return t.paused=!0,t}))}},{key:"resumeTrial",value:function(){An(this.renderRoot).select(".trial[data-new-trial-ease-time]").datum((function(t){return t.paused=!1,t})),this.requestUpdate()}}],[{key:"properties",get:function(){return{color:{attribute:"color",type:String,reflect:!0},distributions:{attribute:"distributions",type:Boolean,reflect:!0},threshold:{attribute:"threshold",type:Boolean,reflect:!0},unequal:{attribute:"unequal",type:Boolean,reflect:!0},sensitivity:{attribute:"sensitivity",type:Boolean,reflect:!0},bias:{attribute:"bias",type:Boolean,reflect:!0},variance:{attribute:"variance",type:Boolean,reflect:!0},histogram:{attribute:"histogram",type:Boolean,reflect:!0},d:{attribute:"d",type:Number,reflect:!0},c:{attribute:"c",type:Number,reflect:!0},s:{attribute:"s",type:Number,reflect:!0},far:{attribute:!1,type:Number,reflect:!1},hr:{attribute:!1,type:Number,reflect:!1},binWidth:{attribute:!1,type:Number,reflect:!1},trials:{attribute:!1,type:Array,reflect:!1},width:{attribute:!1,type:Number,reflect:!1},height:{attribute:!1,type:Number,reflect:!1},rem:{attribute:!1,type:Number,reflect:!1}}}},{key:"styles",get:function(){return[b(l(n),"styles",this),R(xl||(xl=g(['\n :host {\n display: inline-block;\n\n width: 27rem;\n height: 15rem;\n }\n\n .main {\n width: 100%;\n height: 100%;\n }\n\n text {\n /* stylelint-disable property-no-vendor-prefix */\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n\n .tick {\n font-size: 0.75rem;\n }\n\n .axis-x path,\n .axis-x line,\n .axis-y path,\n .axis-y line,\n .axis-y2 path,\n .axis-y2 line {\n stroke: var(---color-element-border);\n }\n\n .noise.interactive,\n .signal.interactive,\n .threshold.interactive {\n cursor: ew-resize;\n\n filter: url("#shadow-2");\n outline: none;\n }\n\n .signal.unequal {\n cursor: ns-resize;\n\n filter: url("#shadow-2");\n outline: none;\n }\n\n .signal.interactive.unequal {\n cursor: move;\n }\n\n .noise.interactive:hover,\n .signal.interactive:hover,\n .signal.unequal:hover,\n .threshold.interactive:hover {\n filter: url("#shadow-4");\n\n /* HACK: This gets Safari to correctly apply the filter! */\n transform: translateX(0);\n }\n\n .noise.interactive:active,\n .signal.interactive:active,\n .signal.unequal:active,\n .threshold.interactive:active {\n filter: url("#shadow-8");\n\n /* HACK: This gets Safari to correctly apply the filter! */\n transform: translateY(0);\n }\n\n :host(.keyboard) .noise.interactive:focus,\n :host(.keyboard) .signal.interactive:focus,\n :host(.keyboard) .signal.unequal:focus,\n :host(.keyboard) .threshold.interactive:focus {\n filter: url("#shadow-8");\n\n /* HACK: This gets Safari to correctly apply the filter! */\n transform: translateZ(0);\n }\n\n .underlayer .background {\n fill: var(---color-element-background);\n stroke: none;\n }\n\n .overlayer .background {\n fill: none;\n stroke: var(---color-element-border);\n stroke-width: 1;\n shape-rendering: crispEdges;\n }\n\n .title-x,\n .title-y,\n .title-y2 {\n font-weight: 600;\n\n fill: currentColor;\n }\n\n .curve-cr,\n .curve-fa,\n .curve-m,\n .curve-h {\n fill-opacity: 0.5;\n stroke: none;\n\n transition: fill var(---transition-duration) ease;\n }\n\n .curve-cr {\n fill: var(---color-cr);\n }\n\n .curve-fa {\n fill: var(---color-fa);\n }\n\n .curve-m {\n fill: var(---color-m);\n }\n\n .curve-h {\n fill: var(---color-h);\n }\n\n :host([color="accuracy"]) .curve-h,\n :host([color="accuracy"]) .curve-cr {\n fill: var(---color-correct);\n }\n\n :host([color="accuracy"]) .curve-m,\n :host([color="accuracy"]) .curve-fa {\n fill: var(---color-error);\n }\n\n :host([color="stimulus"]) .curve-cr,\n :host([color="stimulus"]) .curve-fa {\n fill: var(---color-far);\n }\n\n :host([color="stimulus"]) .curve-m,\n :host([color="stimulus"]) .curve-h {\n fill: var(---color-hr);\n }\n\n :host([color="response"]) .curve-cr,\n :host([color="response"]) .curve-m {\n fill: var(---color-absent);\n }\n\n :host([color="response"]) .curve-fa,\n :host([color="response"]) .curve-h {\n fill: var(---color-present);\n }\n\n :host([color="none"]) .curve-cr,\n :host([color="none"]) .curve-fa,\n :host([color="none"]) .curve-m,\n :host([color="none"]) .curve-h {\n fill: var(---color-element-enabled);\n }\n\n .curve-noise,\n .curve-signal {\n fill: none;\n stroke: var(---color-element-emphasis);\n stroke-width: 2;\n }\n\n .measure-d,\n .measure-c,\n .measure-s {\n pointer-events: none;\n }\n\n .threshold .line {\n stroke: var(---color-element-emphasis);\n stroke-width: 2;\n }\n\n .threshold .handle {\n fill: var(---color-element-emphasis);\n\n /* r: 6; HACK: Firefox does not support CSS SVG Geometry Properties */\n }\n\n /* Make a larger target for touch users */\n @media (pointer: coarse) {\n .threshold.interactive .handle {\n stroke: #000000;\n stroke-opacity: 0;\n stroke-width: 12px;\n }\n }\n\n .measure-d .line,\n .measure-d .cap-left,\n .measure-d .cap-right {\n stroke: var(---color-d);\n stroke-width: 2;\n shape-rendering: crispEdges;\n }\n\n .measure-d .label {\n font-size: 0.75rem;\n\n text-anchor: start;\n fill: currentColor;\n }\n\n .measure-c .line,\n .measure-c .cap-zero {\n stroke: var(---color-c);\n stroke-width: 2;\n shape-rendering: crispEdges;\n }\n\n .measure-c .label {\n font-size: 0.75rem;\n\n fill: currentColor;\n }\n\n .measure-s .line,\n .measure-s .cap-left,\n .measure-s .cap-right {\n stroke: var(---color-s);\n stroke-width: 2;\n shape-rendering: crispEdges;\n }\n\n .measure-s .label {\n font-size: 0.75rem;\n\n text-anchor: middle;\n fill: currentColor;\n }\n '])))]}}]),n}(Ks);customElements.define("sdt-model",Vl);var Bl,Kl,Xl,Gl,Zl,Yl,Wl,Ql,Jl,tc,ec,nc,rc,ac,ic,oc,sc,lc,cc,uc,hc,dc,fc,pc,vc,mc,bc,gc,yc,wc,kc,xc,_c,Sc,Ac,Ec,Tc,Mc,Cc,Nc,Rc,qc,Pc,zc,Fc,$c,Oc=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.call(this)).feedbacks=["none","accuracy","outcome"],t.feedback="outcome",t.trial=!1,t.payoffs=["none","trial","total"],t.payoff="none",t.hPayoff=0,t.mPayoff=0,t.crPayoff=0,t.faPayoff=0,t.nrPayoff=0,t.states=["off","waiting","feedback"],t.state="off",t.trialCount=0,t.trialTotal=0,t.signals=["present","absent"],t.signal=void 0,t.responses=["present","absent"],t.response=void 0,t.outcomes=["h","m","fa","cr","nr"],t.outcome=void 0,t.accuracies=["c","e","nr"],t.accuracy=void 0,t.h=0,t.m=0,t.cr=0,t.fa=0,t.c=0,t.e=0,t.nr=0,t}return i(n,[{key:"trialPayoff",get:function(){switch(this.outcome){case"h":return this.hPayoff;case"m":return this.mPayoff;case"fa":return this.faPayoff;case"cr":return this.crPayoff;case"nr":return this.nrPayoff;default:return}}},{key:"totalPayoff",get:function(){return this.h*this.hPayoff+this.m*this.mPayoff+this.cr*this.crPayoff+this.fa*this.faPayoff+this.nr*this.nrPayoff}},{key:"start",value:function(t,e){this.trialCount=e,this.state="waiting",this.signal=t,this.response=void 0,this.outcome=void 0}},{key:"stop",value:function(){this.state="feedback",void 0===this.response&&(this.outcome="nr",this.nr+=1,this.accuracy="nr")}},{key:"present",value:function(){this.responded("present")}},{key:"absent",value:function(){this.responded("absent")}},{key:"responded",value:function(t){this.state="feedback",this.response=t,"present"===this.signal&&"present"===this.response?(this.outcome="h",this.h+=1,this.accuracy="c",this.c+=1):"present"===this.signal&&"absent"===this.response?(this.outcome="m",this.m+=1,this.accuracy="e",this.e+=1):"absent"===this.signal&&"present"===this.response?(this.outcome="fa",this.fa+=1,this.accuracy="e",this.e+=1):"absent"===this.signal&&"absent"===this.response&&(this.outcome="cr",this.cr+=1,this.accuracy="c",this.c+=1),this.dispatchEvent(new CustomEvent("detectable-response",{detail:{trial:this.trialCount,signal:this.signal,response:this.response,outcome:this.outcome,payoff:this.trialPayoff,h:this.h,m:this.m,fa:this.fa,cr:this.cr,nr:this.nr,totalPayoff:this.totalPayoff},bubbles:!0}))}},{key:"reset",value:function(){this.state="off",this.trialCount=0,this.signal=void 0,this.response=void 0,this.outcome=void 0,this.accuracy=void 0,this.h=0,this.m=0,this.cr=0,this.fa=0,this.nr=0,this.c=0,this.e=0}},{key:"render",value:function(){return at(Sl||(Sl=g(['\n <div class="holder">\n <div class="responses">\n <decidables-button name="present" class='," ?disabled="," @click=",'>Present</decidables-button>\n <decidables-button name="absent" class='," ?disabled="," @click=",">Absent</decidables-button>\n </div>\n ","\n </div>"])),"feedback"===this.state&&"present"===this.response?"selected":"waiting"===this.state?"waiting":"","waiting"!==this.state||!0!==this.interactive,this.present.bind(this),"feedback"===this.state&&"absent"===this.response?"selected":"waiting"===this.state?"waiting":"","waiting"!==this.state||!0!==this.interactive,this.absent.bind(this),this.trial||"none"!==this.feedback||"total"===this.payoff?at(Al||(Al=g(['\n <div class="feedbacks">\n ',"\n ","\n ","\n </div>"])),this.trial?at(El||(El=g(['\n <div class="trial">\n <span class="label">Trial: </span><span class="count">','</span><span class="of"> of </span><span class="total">',"</span>\n </div>"])),this.trialCount,this.trialTotal):at(Tl||(Tl=g([""]))),"none"!==this.feedback?at(Ml||(Ml=g(["\n <div class=",">\n ","\n ","\n </div>"])),"feedback ".concat("feedback"===this.state?"outcome"===this.feedback?this.outcome:this.accuracy:""),"feedback"===this.state?"outcome"===this.feedback?"h"===this.outcome?at(Cl||(Cl=g(['<span class="outcome">Hit</span>']))):"m"===this.outcome?at(Nl||(Nl=g(['<span class="outcome">Miss</span>']))):"fa"===this.outcome?at(Rl||(Rl=g(['<span class="outcome">False<br>Alarm</span>']))):"cr"===this.outcome?at(ql||(ql=g(['<span class="outcome">Correct<br>Rejection</span>']))):at(Pl||(Pl=g(['<span class="outcome">No<br>Response</span>']))):"c"===this.accuracy?at(zl||(zl=g(['<span class="outcome">Correct</span>']))):"e"===this.accuracy?at(Fl||(Fl=g(['<span class="outcome">Error</span>']))):at($l||($l=g(['<span class="outcome">No<br>Response</span>']))):"","trial"===this.payoff||"total"===this.payoff?at(Ol||(Ol=g(['<span class="payoff">',"</span>"])),this.trialPayoff):at(Il||(Il=g([""])))):at(Hl||(Hl=g([""]))),"total"===this.payoff?at(Dl||(Dl=g(['\n <div class="payoff">\n <span class="label">Total: </span><span class="value">',"</span>\n </div>"])),this.totalPayoff):at(Ul||(Ul=g([""])))):at(jl||(jl=g([""]))))}}],[{key:"properties",get:function(){return{feedback:{attribute:"feedback",type:String,reflect:!0},trial:{attribute:"trial",type:Boolean,reflect:!0},payoff:{attribute:"payoff",type:String,reflect:!0},hPayoff:{attribute:"hit-payoff",type:Number,reflect:!0},mPayoff:{attribute:"miss-payoff",type:Number,reflect:!0},faPayoff:{attribute:"false-alarm-payoff",type:Number,reflect:!0},crPayoff:{attribute:"correct-rejection-payoff",type:Number,reflect:!0},nrPayoff:{attribute:"no-response-payoff",type:Number,reflect:!0},state:{attribute:!1,type:String,reflect:!1},trialCount:{attribute:!1,type:Number,reflect:!1},trialTotal:{attribute:!1,type:Number,reflect:!1}}}},{key:"styles",get:function(){return[b(l(n),"styles",this),R(Ll||(Ll=g(['\n :host {\n display: inline-block;\n }\n\n /* Overall container */\n .holder {\n display: flex;\n\n flex-direction: row;\n }\n\n /* Response buttons */\n .responses {\n display: flex;\n\n flex-direction: column;\n\n align-items: stretch;\n justify-content: center;\n }\n\n .waiting[disabled] {\n --decidables-button-background-color: var(---color-element-enabled);\n }\n\n .selected[disabled][name="present"] {\n --decidables-button-background-color: var(---color-present);\n }\n\n .selected[disabled][name="absent"] {\n --decidables-button-background-color: var(---color-absent);\n }\n\n /* Feedback messages */\n .feedbacks {\n display: flex;\n\n flex-direction: column;\n\n justify-content: center;\n }\n\n /* Trial feedback */\n .trial {\n text-align: center;\n }\n\n .trial .label {\n font-weight: 600;\n }\n\n /* Outcome feedback */\n .feedback {\n display: flex;\n\n flex-direction: column;\n\n align-items: center;\n justify-content: center;\n\n width: 6rem;\n height: 3.5rem;\n padding: 0.375rem 0.75rem;\n margin: 0.25rem;\n\n text-align: center;\n\n background-color: var(---color-element-background);\n border: 1px solid var(---color-element-border);\n }\n\n .feedback.h {\n background-color: var(---color-h-light);\n }\n\n .feedback.m {\n background-color: var(---color-m-light);\n }\n\n .feedback.fa {\n background-color: var(---color-fa-light);\n }\n\n .feedback.cr {\n background-color: var(---color-cr-light);\n }\n\n .feedback.nr {\n background-color: var(---color-nr-light);\n }\n\n .feedback.c {\n background-color: var(---color-correct-light);\n }\n\n .feedback.e {\n color: var(---color-text-inverse);\n\n background-color: var(---color-error-light);\n }\n\n .feedback .outcome {\n font-weight: 600;\n line-height: 1.15;\n }\n\n :host([payoff="trial"]) .feedback,\n :host([payoff="total"]) .feedback {\n height: 4rem;\n }\n\n /* Payoff feedback */\n .payoff {\n text-align: center;\n }\n\n .payoff .label {\n font-weight: 600;\n }\n '])))]}}]),n}(Ks);customElements.define("detectable-response",Oc);var Ic,Hc=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.call(this)).numeric=!1,t.summaries=["stimulusRates","responseRates","accuracy"],t.summary=new Set,t.colors=["none","accuracy","stimulus","response","outcome"],t.color="outcome",t.h=40,t.m=60,t.fa=75,t.cr=25,t.alignState(),t.payoff=!1,t.hPayoff=void 0,t.mPayoff=void 0,t.crPayoff=void 0,t.faPayoff=void 0,t}return i(n,[{key:"alignState",value:function(){this.hr=yl.hM2Hr(this.h,this.m),this.far=yl.faCr2Far(this.fa,this.cr),this.acc=yl.hMFaCr2Acc(this.h,this.m,this.fa,this.cr),this.ppv=yl.hFa2Ppv(this.h,this.fa),this.fomr=yl.mCr2Fomr(this.m,this.cr)}},{key:"sendEvent",value:function(){this.dispatchEvent(new CustomEvent("detectable-table-change",{detail:{h:this.h,m:this.m,hr:this.hr,fa:this.fa,cr:this.cr,far:this.far,acc:this.acc,ppv:this.ppv,fomr:this.fomr},bubbles:!0}))}},{key:"hInput",value:function(t){this.h=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}},{key:"mInput",value:function(t){this.m=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}},{key:"faInput",value:function(t){this.fa=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}},{key:"crInput",value:function(t){this.cr=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}},{key:"hrInput",value:function(t){var e=parseFloat(t.target.value),n=this.h+this.m;this.h=Math.round(e*n),this.m=n-this.h,this.alignState(),this.sendEvent()}},{key:"farInput",value:function(t){var e=parseFloat(t.target.value),n=this.fa+this.cr;this.fa=Math.round(e*n),this.cr=n-this.fa,this.alignState(),this.sendEvent()}},{key:"accInput",value:function(t){var e=parseFloat(t.target.value),n=this.h+this.m,r=this.fa+this.cr,a=(this.hr+this.far-1)/2,i=a+e,o=1+a-e;o>1&&(i=(o=1)+2*e-1),o<0&&(i=(o=0)+2*e-1),i>1&&(o=(i=1)-2*e+1),i<0&&(o=(i=0)-2*e+1),this.h=Math.round(i*n),this.m=n-this.h,this.fa=Math.round(o*r),this.cr=r-this.fa,this.alignState(),this.sendEvent()}},{key:"ppvInput",value:function(t){var e=parseFloat(t.target.value),n=this.h+this.fa;this.h=Math.round(e*n),this.fa=n-this.h,this.alignState(),this.sendEvent()}},{key:"fomrInput",value:function(t){var e=parseFloat(t.target.value),n=this.m+this.cr;this.m=Math.round(e*n),this.cr=n-this.m,this.alignState(),this.sendEvent()}},{key:"render",value:function(){var t,e,n,r,a,i,o,s,l,c=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:0,maximumFractionDigits:0});return this.alignState(),this.numeric?(t=at(Bl||(Bl=g(["\n <decidables-spinner ?disabled=",' min="0" .value="','" @input=',">\n <span>Hits</span>\n ","\n </decidables-spinner>\n "])),!this.interactive,this.h,this.hInput.bind(this),this.payoff?at(Kl||(Kl=g(['<span class="payoff">',"</span>"])),c.format(this.hPayoff)):at(Xl||(Xl=g([""])))),e=at(Gl||(Gl=g(["\n <decidables-spinner ?disabled=",' min="0" .value="','" @input=',">\n <span>Misses</span>\n ","\n </decidables-spinner>\n "])),!this.interactive,this.m,this.mInput.bind(this),this.payoff?at(Zl||(Zl=g(['<span class="payoff">',"</span>"])),c.format(this.mPayoff)):at(Yl||(Yl=g([""])))),n=at(Wl||(Wl=g(["\n <decidables-spinner ?disabled=",' min="0" .value="','" @input=',">\n <span>False Alarms</span>\n ","\n </decidables-spinner>\n "])),!this.interactive,this.fa,this.faInput.bind(this),this.payoff?at(Ql||(Ql=g(['<span class="payoff">',"</span>"])),c.format(this.faPayoff)):at(Jl||(Jl=g([""])))),r=at(tc||(tc=g(["\n <decidables-spinner ?disabled=",' min="0" .value="','" @input=',">\n <span>Correct Rejections</span>\n ","\n </decidables-spinner>\n "])),!this.interactive,this.cr,this.crInput.bind(this),this.payoff?at(ec||(ec=g(['<span class="payoff">',"</span>"])),c.format(this.crPayoff)):at(nc||(nc=g([""])))),a=at(rc||(rc=g(["\n <decidables-spinner ?disabled=",' min="0" max="1" step=".001" .value="','" @input=',">\n <span>Hit Rate</span>\n </decidables-spinner>\n "])),!this.interactive,+this.hr.toFixed(3),this.hrInput.bind(this)),i=at(ac||(ac=g(["\n <decidables-spinner ?disabled=",' min="0" max="1" step=".001" .value="','" @input=',">\n <span>False Alarm Rate</span>\n </decidables-spinner>\n "])),!this.interactive,+this.far.toFixed(3),this.farInput.bind(this)),o=at(ic||(ic=g(["\n <decidables-spinner ?disabled=",' min="0" max="1" step=".001" .value="','" @input=',">\n <span>Accuracy</span>\n </decidables-spinner>\n "])),!this.interactive,+this.acc.toFixed(3),this.accInput.bind(this)),s=at(oc||(oc=g(["\n <decidables-spinner ?disabled=",' min="0" max="1" step=".001" .value="','" @input=',">\n <span>Positive Predictive Value</span>\n </decidables-spinner>\n "])),!this.interactive,+this.ppv.toFixed(3),this.ppvInput.bind(this)),l=at(sc||(sc=g(["\n <decidables-spinner ?disabled=",' min="0" max="1" step=".001" .value="','" @input=',">\n <span>False Omission Rate</span>\n </decidables-spinner>\n "])),!this.interactive,+this.fomr.toFixed(3),this.fomrInput.bind(this))):(t=at(lc||(lc=g(["<span>Hits</span>\n ",""])),this.payoff?at(cc||(cc=g(['<span class="payoff">',"</span>"])),c.format(this.hPayoff)):at(uc||(uc=g([""])))),e=at(hc||(hc=g(["<span>Misses</span>\n ",""])),this.payoff?at(dc||(dc=g(['<span class="payoff">',"</span>"])),c.format(this.mPayoff)):at(fc||(fc=g([""])))),n=at(pc||(pc=g(["<span>False Alarms</span>\n ",""])),this.payoff?at(vc||(vc=g(['<span class="payoff">',"</span>"])),c.format(this.faPayoff)):at(mc||(mc=g([""])))),r=at(bc||(bc=g(["<span>Correct Rejections</span>\n ",""])),this.payoff?at(gc||(gc=g(['<span class="payoff">',"</span>"])),c.format(this.crPayoff)):at(yc||(yc=g([""])))),a=at(wc||(wc=g(["<span>Hit Rate</span>"]))),i=at(kc||(kc=g(["<span>False Alarm Rate</span>"]))),o=at(xc||(xc=g(["<span>Accuracy</span>"]))),s=at(_c||(_c=g(["<span>Positive Predictive Value</span>"]))),l=at(Sc||(Sc=g(["<span>False Omission Rate</span>"])))),at(Ac||(Ac=g(["\n <table class=",'>\n <thead>\n <tr>\n <th colspan="2" rowspan="2"></th>\n <th class="th th-main" colspan="2" scope="col">\n Response\n </th>\n </tr>\n <tr>\n <th class="th th-sub" scope="col">\n "Present"\n </th>\n <th class="th th-sub" scope="col">\n "Absent"\n </th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th class="th th-main" rowspan="2" scope="row">\n Signal\n </th>\n <th class="th th-sub th-left" scope="row">\n Present\n </th>\n <td class="td td-data h">\n ','\n </td>\n <td class="td td-data m">\n ',"\n </td>\n ",'\n </tr>\n <tr>\n <th class="th th-sub th-left" scope="row">\n Absent\n </th>\n <td class="td td-data fa">\n ','\n </td>\n <td class="td td-data cr">\n ',"\n </td>\n ","\n </tr>\n ","\n </tbody>\n </table>"])),this.numeric?"numeric":"",t,e,this.summary.has("stimulusRates")?at(Ec||(Ec=g(['\n <td class="td td-summary hr">\n ',"\n </td>"])),a):at(Tc||(Tc=g([""]))),n,r,this.summary.has("stimulusRates")?at(Mc||(Mc=g(['\n <td class="td td-summary far">\n ',"\n </td>"])),i):at(Cc||(Cc=g([""]))),this.summary.has("responseRates")||this.summary.has("accuracy")?at(Nc||(Nc=g(['\n <tr>\n <td colspan="2"></td>\n ',"\n ","\n </tr>"])),this.summary.has("responseRates")?at(Rc||(Rc=g(['\n <td class="td td-summary ppv">\n ','\n </td>\n <td class="td td-summary fomr">\n ',"\n </td>"])),s,l):at(qc||(qc=g(['\n <td colspan="2"></td>']))),this.summary.has("accuracy")?at(Pc||(Pc=g(['\n <td class="td td-summary acc" rowspan="2">\n ',"\n </td>"])),o):at(zc||(zc=g([""])))):at(Fc||(Fc=g([""]))))}}],[{key:"properties",get:function(){return{numeric:{attribute:"numeric",type:Boolean,reflect:!0},summary:{attribute:"summary",converter:Bs,reflect:!0},color:{attribute:"color",type:String,reflect:!0},h:{attribute:"hits",type:Number,reflect:!0},m:{attribute:"misses",type:Number,reflect:!0},fa:{attribute:"false-alarms",type:Number,reflect:!0},cr:{attribute:"correct-rejections",type:Number,reflect:!0},payoff:{attribute:"payoff",type:Boolean,reflect:!0},hPayoff:{attribute:"hit-payoff",type:Number,reflect:!0},mPayoff:{attribute:"miss-payoff",type:Number,reflect:!0},faPayoff:{attribute:"false-alarm-payoff",type:Number,reflect:!0},crPayoff:{attribute:"correct-rejection-payoff",type:Number,reflect:!0},far:{attribute:!1,type:Number,reflect:!1},hr:{attribute:!1,type:Number,reflect:!1},acc:{attribute:!1,type:Number,reflect:!1},ppv:{attribute:!1,type:Number,reflect:!1},fomr:{attribute:!1,type:Number,reflect:!1}}}},{key:"styles",get:function(){return[b(l(n),"styles",this),R($c||($c=g(['\n :host {\n display: inline-block;\n }\n\n /* Overall element */\n table {\n text-align: center;\n\n border-collapse: collapse;\n\n border: 0;\n }\n\n /* Headers */\n .th-main {\n padding: 0;\n\n font-weight: bold;\n }\n\n .th-sub {\n padding: 0 0.25rem;\n\n font-weight: 600;\n }\n\n .th-left {\n padding-left: 0;\n\n text-align: right;\n }\n\n /* Cells */\n .td {\n width: 10rem;\n\n padding: 0.25rem 0.25rem 0.375rem;\n\n transition: all var(---transition-duration) ease;\n }\n\n .numeric .td {\n width: 7rem;\n }\n\n /* Labels */\n .payoff {\n font-weight: 600;\n line-height: 0.75rem;\n }\n\n /* User interaction <input> */\n .td-data decidables-spinner {\n --decidables-spinner-input-width: 3.5rem;\n }\n\n .td-summary decidables-spinner {\n --decidables-spinner-input-width: 4.5rem;\n }\n\n /* Color schemes & Table emphasis */\n\n /* (Default) Outcome color scheme */\n .h {\n background: var(---color-h-light);\n border-top: 2px solid var(---color-element-emphasis);\n border-left: 2px solid var(---color-element-emphasis);\n }\n\n .m {\n background: var(---color-m-light);\n border-top: 2px solid var(---color-element-emphasis);\n border-right: 2px solid var(---color-element-emphasis);\n }\n\n .fa {\n background: var(---color-fa-light);\n border-bottom: 2px solid var(---color-element-emphasis);\n border-left: 2px solid var(---color-element-emphasis);\n }\n\n .cr {\n background: var(---color-cr-light);\n border-right: 2px solid var(---color-element-emphasis);\n border-bottom: 2px solid var(---color-element-emphasis);\n }\n\n .hr {\n background: var(---color-hr-light);\n }\n\n .far {\n background: var(---color-far-light);\n }\n\n .acc {\n background: var(---color-acc-light);\n }\n\n .ppv {\n background: var(---color-present-light);\n }\n\n .fomr {\n background: var(---color-absent-light);\n }\n\n /* Accuracy color scheme */\n :host([color="accuracy"]) .h,\n :host([color="accuracy"]) .cr {\n background: var(---color-correct-light);\n }\n\n :host([color="accuracy"]) .m,\n :host([color="accuracy"]) .fa {\n color: var(---color-text-inverse);\n\n background: var(---color-error-light);\n }\n\n :host([color="accuracy"]) .hr,\n :host([color="accuracy"]) .far,\n :host([color="accuracy"]) .ppv,\n :host([color="accuracy"]) .fomr {\n background: var(---color-element-background);\n }\n\n /* Stimulus color scheme */\n :host([color="stimulus"]) .cr,\n :host([color="stimulus"]) .fa {\n background: var(---color-far-light);\n }\n\n :host([color="stimulus"]) .m,\n :host([color="stimulus"]) .h {\n background: var(---color-hr-light);\n }\n\n :host([color="stimulus"]) .ppv,\n :host([color="stimulus"]) .fomr,\n :host([color="stimulus"]) .acc {\n background: var(---color-element-background);\n }\n\n /* Response color scheme */\n :host([color="response"]) .cr,\n :host([color="response"]) .m {\n background: var(---color-absent-light);\n }\n\n :host([color="response"]) .fa,\n :host([color="response"]) .h {\n background: var(---color-present-light);\n }\n\n :host([color="response"]) .hr,\n :host([color="response"]) .far,\n :host([color="response"]) .acc {\n background: var(---color-element-background);\n }\n\n /* No color scheme */\n :host([color="none"]) .cr,\n :host([color="none"]) .fa,\n :host([color="none"]) .m,\n :host([color="none"]) .h,\n :host([color="none"]) .hr,\n :host([color="none"]) .far,\n :host([color="none"]) .ppv,\n :host([color="none"]) .fomr,\n :host([color="none"]) .acc {\n background: var(---color-element-background);\n }\n '])))]}}]),n}(Ks);customElements.define("detectable-table",Hc);var Dc,Uc,jc,Lc,Vc,Bc,Kc,Xc,Gc,Zc,Yc,Wc,Qc,Jc,tu,eu,nu,ru,au,iu,ou,su,lu=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.call(this)).numeric=!1,t}return i(n,null,[{key:"properties",get:function(){return{numeric:{attribute:"numeric",type:Boolean,reflect:!0}}}},{key:"styles",get:function(){return[b(l(n),"styles",this),R(Ic||(Ic=g(["\n :host {\n display: block;\n\n margin: 1rem;\n }\n\n /* Containing <div> */\n .holder {\n display: flex;\n\n flex-direction: row;\n\n justify-content: left;\n }\n\n /* Overall <table> */\n .equation {\n text-align: center;\n\n border-collapse: collapse;\n\n border: 0;\n }\n\n /* Modifies <td> */\n .underline {\n border-bottom: 1px solid var(---color-text);\n }\n\n /* Basic <span> and <var> w/modifiers */\n span,\n var {\n padding: 0 0.25rem;\n\n font-style: normal;\n }\n\n .tight {\n padding: 0;\n }\n\n .paren {\n font-size: 150%;\n }\n\n .bracket {\n font-size: 175%;\n }\n\n .exp {\n font-size: 0.75rem;\n }\n\n /* Input wrapping <label> */\n decidables-spinner {\n --decidables-spinner-input-width: 4rem;\n\n display: inline-block;\n\n padding: 0.125rem 0.375rem 0.375rem;\n\n vertical-align: middle;\n }\n\n .bottom {\n vertical-align: bottom;\n }\n\n /* Color scheme */\n .h {\n background: var(---color-h-light);\n }\n\n .m {\n background: var(---color-m-light);\n }\n\n .hr {\n background: var(---color-hr-light);\n }\n\n .fa {\n background: var(---color-fa-light);\n }\n\n .acc {\n background: var(---color-acc-light);\n }\n\n .cr {\n background: var(---color-cr-light);\n }\n\n .far {\n background: var(---color-far-light);\n }\n\n .d {\n background: var(---color-d-light);\n }\n\n .c {\n background: var(---color-c-light);\n }\n\n .s {\n background: var(---color-s-light);\n }\n "])))]}}]),n}(Ks),cu=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.call(this)).unequal=!1,t.d=0,t.c=0,t.s=1,t.alignState(),t}return i(n,[{key:"alignState",value:function(){this.far=yl.dC2Far(this.d,this.c,this.s)}},{key:"sendEvent",value:function(){this.dispatchEvent(new CustomEvent("sdt-equation-dc2far-change",{detail:{d:this.d,c:this.c,s:this.s,far:this.far},bubbles:!0}))}},{key:"dInput",value:function(t){this.d=parseFloat(t.target.value),this.alignState(),this.sendEvent()}},{key:"cInput",value:function(t){this.c=parseFloat(t.target.value),this.alignState(),this.sendEvent()}},{key:"sInput",value:function(t){this.s=parseFloat(t.target.value),this.alignState(),this.sendEvent()}},{key:"render",value:function(){var t,e,n,r,a;return this.alignState(),this.numeric?(t=at(Dc||(Dc=g(['\n <decidables-spinner class="d bottom" ?disabled=',' step=".001" .value="','" @input=','>\n <var class="math-var">d′</var>\n </decidables-spinner>\n '])),!this.interactive,this.d,this.dInput.bind(this)),e=at(Uc||(Uc=g(['\n <decidables-spinner class="c bottom" ?disabled=',' step=".001" .value="','" @input=','>\n <var class="math-var">c</var>\n </decidables-spinner>\n '])),!this.interactive,this.c,this.cInput.bind(this)),n=at(jc||(jc=g(['\n <decidables-spinner class="s bottom" ?disabled=',' min="0" step=".001" .value="','" @input=','>\n <var class="math-var">σ</var>\n </decidables-spinner>\n '])),!this.interactive,this.s,this.sInput.bind(this)),r=at(Lc||(Lc=g(['\n <decidables-spinner class="far bottom" disabled min="0" max="1" step=".001" .value="','">\n <var>False Alarm Rate</var>\n </decidables-spinner>\n '])),+this.far.toFixed(3))):(t=at(Vc||(Vc=g(['<var class="math-var d">d′</var>']))),e=at(Bc||(Bc=g(['<var class="math-var c">c</var>']))),n=at(Kc||(Kc=g(['<var class="math-var s">σ</var>']))),r=at(Xc||(Xc=g(['<var class="far">False Alarm Rate</var>'])))),a=this.unequal?at(Gc||(Gc=g(['\n <tr>\n <td rowspan="2">\n ','<span class="equals">=</span><var class="math-greek phi tight">Φ</var><span class="paren tight">(</span><span class="bracket tight">[</span>\n </td>\n <td class="underline bottom">\n <span>1</span><span class="plus tight">+</span><span>','<sup class="exp">2</sup></span>\n </td>\n <td rowspan="2">\n <span class="bracket tight">]<sup class="exp">½</sup></span><span class="bracket tight">[</span>\n </td>\n <td class="underline">\n <span class="minus tight">−</span>','\n </td>\n <td rowspan="2">\n <span class="minus">−</span>','<span class="bracket tight">]</span><span class="paren tight">)</span>\n </td>\n </tr>\n <tr>\n <td>\n <span>2</span>\n </td>\n <td>\n <span><span>1</span><span class="plus">+</span>',"</span>\n </td>\n </tr>"])),r,n,t,e,n):at(Zc||(Zc=g(['\n <tr>\n <td rowspan="2">\n ','<span class="equals">=</span><var class="math-greek phi tight">Φ</var><span class="paren tight">(</span><span class="minus tight">−</span>\n </td>\n <td class="underline">\n ','\n </td>\n <td rowspan="2">\n <span class="minus">−</span>','<span class="paren tight">)</span>\n </td>\n </tr>\n <tr>\n <td>\n <span>2</span>\n </td>\n </tr>'])),r,t,e),at(Yc||(Yc=g(['\n <div class="holder">\n <table class="equation">\n <tbody>\n ',"\n </tbody>\n </table>\n </div>"])),a)}}],[{key:"properties",get:function(){return{unequal:{attribute:"unequal",type:Boolean,reflect:!0},d:{attribute:"d",type:Number,reflect:!0},c:{attribute:"c",type:Number,reflect:!0},s:{attribute:"s",type:Number,reflect:!0},far:{attribute:!1,type:Number,reflect:!1}}}}]),n}(lu);customElements.define("sdt-equation-dc2far",cu);var uu,hu,du,fu,pu,vu,mu,bu=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.call(this)).unequal=!1,t.d=0,t.c=0,t.s=1,t.alignState(),t}return i(n,[{key:"alignState",value:function(){this.hr=yl.dC2Hr(this.d,this.c,this.s)}},{key:"sendEvent",value:function(){this.dispatchEvent(new CustomEvent("sdt-equation-dc2hr-change",{detail:{d:this.d,c:this.c,s:this.s,hr:this.hr},bubbles:!0}))}},{key:"dInput",value:function(t){this.d=parseFloat(t.target.value),this.alignState(),this.sendEvent()}},{key:"cInput",value:function(t){this.c=parseFloat(t.target.value),this.alignState(),this.sendEvent()}},{key:"sInput",value:function(t){this.s=parseFloat(t.target.value),this.alignState(),this.sendEvent()}},{key:"render",value:function(){var t,e,n,r,a;return this.alignState(),this.numeric?(t=at(Wc||(Wc=g(['\n <decidables-spinner class="d bottom" ?disabled=',' step=".001" .value="','" @input=','>\n <var class="math-var">d′</var>\n </decidables-spinner>\n '])),!this.interactive,this.d,this.dInput.bind(this)),e=at(Qc||(Qc=g(['\n <decidables-spinner class="c bottom" ?disabled=',' step=".001" .value="','" @input=','>\n <var class="math-var">c</var>\n </decidables-spinner>\n '])),!this.interactive,this.c,this.cInput.bind(this)),n=at(Jc||(Jc=g(['\n <decidables-spinner class="s bottom" ?disabled=',' min="0" step=".001" .value="','" @input=','>\n <var class="math-var">σ</var>\n </decidables-spinner>\n '])),!this.interactive,this.s,this.sInput.bind(this)),r=at(tu||(tu=g(['\n <decidables-spinner class="hr bottom" disabled min="0" max="1" step=".001" .value="','">\n <var>Hit Rate</var>\n </decidables-spinner>\n '])),+this.hr.toFixed(3))):(t=at(eu||(eu=g(['<var class="math-var d">d′</var>']))),e=at(nu||(nu=g(['<var class="math-var c">c</var>']))),n=at(ru||(ru=g(['<var class="math-var s">σ</var>']))),r=at(au||(au=g(['<var class="hr">Hit Rate</var>'])))),a=this.unequal?at(iu||(iu=g(['\n <tr>\n <td rowspan="2">\n ','<span class="equals">=</span><var class="math-greek phi tight">Φ</var><span class="paren tight">(</span><span class="bracket tight">[</span>\n </td>\n <td class="underline bottom">\n <span>1</span><span class="plus tight">+</span><span>','<sup class="exp">2</sup></span>\n </td>\n <td rowspan="2">\n <span class="bracket tight">]<sup class="exp">½</sup></span><span class="bracket tight">[</span>\n </td>\n <td class="underline">\n ','\n </td>\n <td rowspan="2">\n <span class="minus">−</span>\n </td>\n <td class="underline">\n ','\n </td>\n <td rowspan="2">\n <span class="bracket tight">]</span><span class="paren tight">)</span>\n </td>\n </tr>\n <tr>\n <td>\n <span>2</span>\n </td>\n <td>\n <span><span>1</span><span class="plus">+</span>',"</span>\n </td>\n <td>\n ","\n </td>\n </tr>"])),r,n,t,e,n,n):at(ou||(ou=g(['\n <tr>\n <td rowspan="2">\n ','<span class="equals">=</span><var class="math-greek phi tight">Φ</var><span class="paren tight">(</span>\n </td>\n <td class="underline">\n ','\n </td>\n <td rowspan="2">\n <span class="minus">−</span>','<span class="paren tight">)</span>\n </td>\n </tr>\n <tr>\n <td>\n <span>2</span>\n </td>\n </tr>'])),r,t,e),at(su||(su=g(['\n <div class="holder">\n <table class="equation">\n <tbody>\n ',"\n </tbody>\n </table>\n </div>"])),a)}}],[{key:"properties",get:function(){return{unequal:{attribute:"unequal",type:Boolean,reflect:!0},d:{attribute:"d",type:Number,reflect:!0},c:{attribute:"c",type:Number,reflect:!0},s:{attribute:"s",type:Number,reflect:!0},hr:{attribute:!1,type:Number,reflect:!1}}}}]),n}(lu);customElements.define("sdt-equation-dc2hr",bu);var gu,yu,wu,ku,xu,_u,Su,Au=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.call(this)).fa=0,t.cr=0,t.alignState(),t}return i(n,[{key:"alignState",value:function(){this.far=yl.faCr2Far(this.fa,this.cr)}},{key:"sendEvent",value:function(){this.dispatchEvent(new CustomEvent("sdt-equation-facr2far-change",{detail:{fa:this.fa,cr:this.cr,far:this.far},bubbles:!0}))}},{key:"faInput",value:function(t){this.fa=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}},{key:"crInput",value:function(t){this.cr=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}},{key:"render",value:function(){var t,e,n;return this.alignState(),this.numeric?(t=at(uu||(uu=g(['\n <decidables-spinner class="fa" ?disabled=',' min="0" .value="','" @input=',">\n <var>False Alarms</var>\n </decidables-spinner>\n "])),!this.interactive,this.fa,this.faInput.bind(this)),e=at(hu||(hu=g(['\n <decidables-spinner class="cr" ?disabled=',' min="0" .value="','" @input=',">\n <var>Correct Rejections</var>\n </decidables-spinner>\n "])),!this.interactive,this.cr,this.crInput.bind(this)),n=at(du||(du=g(['\n <decidables-spinner class="far" disabled min="0" max="1" step=".001" .value="','">\n <var>False Alarm Rate</var>\n </decidables-spinner>\n '])),+this.far.toFixed(3))):(t=at(fu||(fu=g(['<var class="fa">False Alarms</var>']))),e=at(pu||(pu=g(['<var class="cr">Correct Rejections</var>']))),n=at(vu||(vu=g(['<var class="far">False Alarm Rate</var>'])))),at(mu||(mu=g(['\n <div class="holder">\n <table class="equation">\n <tbody>\n <tr>\n <td rowspan="2">\n ','<span class="equals">=</span>\n </td>\n <td class="underline">\n ',"\n </td>\n </tr>\n <tr>\n <td>\n ",'<span class="plus">+</span>',"\n </td>\n </tr>\n </tbody>\n </table>\n </div>"])),n,t,t,e)}}],[{key:"properties",get:function(){return{fa:{attribute:"false-alarms",type:Number,reflect:!0},cr:{attribute:"correct-rejections",type:Number,reflect:!0},far:{attribute:!1,type:Number,reflect:!1}}}}]),n}(lu);customElements.define("sdt-equation-facr2far",Au);var Eu,Tu,Mu,Cu,Nu,Ru,qu,Pu,zu,Fu,$u,Ou=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.call(this)).h=0,t.m=0,t.alignState(),t}return i(n,[{key:"alignState",value:function(){this.hr=yl.hM2Hr(this.h,this.m)}},{key:"sendEvent",value:function(){this.dispatchEvent(new CustomEvent("sdt-equation-hm2hr-change",{detail:{h:this.h,m:this.m,hr:this.hr},bubbles:!0}))}},{key:"hInput",value:function(t){this.h=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}},{key:"mInput",value:function(t){this.m=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}},{key:"render",value:function(){var t,e,n;return this.alignState(),this.numeric?(t=at(gu||(gu=g(['\n <decidables-spinner class="h" ?disabled=',' min="0" .value="','" @input=',">\n <var>Hits</var>\n </decidables-spinner>\n "])),!this.interactive,this.h,this.hInput.bind(this)),e=at(yu||(yu=g(['\n <decidables-spinner class="m" ?disabled=',' min="0" .value="','" @input=',">\n <var>Misses</var>\n </decidables-spinner>\n "])),!this.interactive,this.m,this.mInput.bind(this)),n=at(wu||(wu=g(['\n <decidables-spinner class="hr" disabled min="0" max="1" step=".001" .value="','">\n <var>Hit Rate</var>\n </decidables-spinner>\n '])),+this.hr.toFixed(3))):(t=at(ku||(ku=g(['<var class="h">Hits</var>']))),e=at(xu||(xu=g(['<var class="m">Misses</var>']))),n=at(_u||(_u=g(['<var class="hr">Hit Rate</var>'])))),at(Su||(Su=g(['\n <div class="holder">\n <table class="equation">\n <tbody>\n <tr>\n <td rowspan="2">\n ','<span class="equals">=</span>\n </td>\n <td class="underline">\n ',"\n </td>\n </tr>\n <tr>\n <td>\n ",'<span class="plus">+</span>',"\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n "])),n,t,t,e)}}],[{key:"properties",get:function(){return{h:{attribute:"hits",type:Number,reflect:!0},m:{attribute:"misses",type:Number,reflect:!0},hr:{attribute:!1,type:Number,reflect:!1}}}}]),n}(lu);customElements.define("sdt-equation-hm2hr",Ou);var Iu,Hu,Du,Uu,ju,Lu,Vu,Bu,Ku,Xu,Gu,Zu=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.call(this)).h=0,t.m=0,t.fa=0,t.cr=0,t.alignState(),t}return i(n,[{key:"alignState",value:function(){this.acc=yl.hMFaCr2Acc(this.h,this.m,this.fa,this.cr)}},{key:"sendEvent",value:function(){this.dispatchEvent(new CustomEvent("sdt-equation-hmfacr2acc-change",{detail:{h:this.h,m:this.m,fa:this.fa,cr:this.cr,acc:this.acc},bubbles:!0}))}},{key:"hInput",value:function(t){this.h=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}},{key:"mInput",value:function(t){this.m=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}},{key:"faInput",value:function(t){this.fa=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}},{key:"crInput",value:function(t){this.cr=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}},{key:"render",value:function(){var t,e,n,r,a;return this.alignState(),this.numeric?(t=at(Eu||(Eu=g(['\n <decidables-spinner class="h" ?disabled=',' min="0" .value="','" @input=',">\n <var>Hits</var>\n </decidables-spinner>\n "])),!this.interactive,this.h,this.hInput.bind(this)),e=at(Tu||(Tu=g(['\n <decidables-spinner class="m" ?disabled=',' min="0" .value="','" @input=',">\n <var>Misses</var>\n </decidables-spinner>\n "])),!this.interactive,this.m,this.mInput.bind(this)),n=at(Mu||(Mu=g(['\n <decidables-spinner class="fa" ?disabled=',' min="0" .value="','" @input=',">\n <var>False Alarms</var>\n </decidables-spinner>\n "])),!this.interactive,this.fa,this.faInput.bind(this)),r=at(Cu||(Cu=g(['\n <decidables-spinner class="cr" ?disabled=',' min="0" .value="','" @input=',">\n <var>Correct Rejections</var>\n </decidables-spinner>\n "])),!this.interactive,this.cr,this.crInput.bind(this)),a=at(Nu||(Nu=g(['\n <decidables-spinner class="acc" disabled min="0" max="1" step=".001" .value="','">\n <var>Accuracy</var>\n </decidables-spinner>\n '])),+this.acc.toFixed(3))):(t=at(Ru||(Ru=g(['<var class="h">Hits</var>']))),e=at(qu||(qu=g(['<var class="m">Misses</var>']))),n=at(Pu||(Pu=g(['<var class="fa">False Alarms</var>']))),r=at(zu||(zu=g(['<var class="cr">Correct Rejections</var>']))),a=at(Fu||(Fu=g(['<var class="acc">Accuracy</var>'])))),at($u||($u=g(['\n <div class="holder">\n <table class="equation">\n <tbody>\n <tr>\n <td rowspan="2">\n ','<span class="equals">=</span>\n </td>\n <td class="underline">\n ','<span class="plus">+</span>',"\n </td>\n </tr>\n <tr>\n <td>\n ",'<span class="plus">+</span>','<span class="plus">+</span>','<span class="plus">+</span>',"\n </td>\n </tr>\n </tbody>\n </table>\n </div>"])),a,t,r,t,e,n,r)}}],[{key:"properties",get:function(){return{h:{attribute:"hits",type:Number,reflect:!0},m:{attribute:"misses",type:Number,reflect:!0},fa:{attribute:"false-alarms",type:Number,reflect:!0},cr:{attribute:"correct-rejections",type:Number,reflect:!0},acc:{attribute:!1,type:Number,reflect:!1}}}}]),n}(lu);customElements.define("sdt-equation-hmfacr2acc",Zu);var Yu,Wu,Qu,Ju,th,eh,nh,rh,ah,ih,oh,sh=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.call(this)).unequal=!1,t.hr=0,t.far=0,t.s=1,t.alignState(),t}return i(n,[{key:"alignState",value:function(){this.c=yl.hrFar2C(this.hr,this.far,this.s)}},{key:"sendEvent",value:function(){this.dispatchEvent(new CustomEvent("sdt-equation-hrfar2c-change",{detail:{hr:this.hr,far:this.far,s:this.s,c:this.c},bubbles:!0}))}},{key:"hrInput",value:function(t){this.hr=parseFloat(t.target.value),this.alignState(),this.sendEvent()}},{key:"farInput",value:function(t){this.far=parseFloat(t.target.value),this.alignState(),this.sendEvent()}},{key:"sInput",value:function(t){this.s=parseFloat(t.target.value),this.alignState(),this.sendEvent()}},{key:"render",value:function(){var t,e,n,r,a;return this.alignState(),this.numeric?(t=at(Iu||(Iu=g(['\n <decidables-spinner class="hr bottom" ?disabled=',' min="0" max="1" step=".001" .value="','" @input=',">\n <var>Hit Rate</var>\n </decidables-spinner>\n "])),!this.interactive,this.hr,this.hrInput.bind(this)),e=at(Hu||(Hu=g(['\n <decidables-spinner class="far bottom" ?disabled=',' min="0" max="1" step=".001" .value="','" @input=',">\n <var>False Alarm Rate</var>\n </decidables-spinner>\n "])),!this.interactive,this.far,this.farInput.bind(this)),n=at(Du||(Du=g(['\n <decidables-spinner class="s bottom" ?disabled=',' min="0" step=".001" .value="','" @input=','>\n <var class="math-var">σ</var>\n </decidables-spinner>\n '])),!this.interactive,this.s,this.sInput.bind(this)),r=at(Uu||(Uu=g(['\n <decidables-spinner class="c bottom" disabled step=".001" .value="','">\n <var class="math-var">c</var>\n </decidables-spinner>\n '])),+this.c.toFixed(3))):(t=at(ju||(ju=g(['<var class="hr">Hit Rate</var>']))),e=at(Lu||(Lu=g(['<var class="far">False Alarm Rate</var>']))),n=at(Vu||(Vu=g(['<var class="math-var s">σ</var>']))),r=at(Bu||(Bu=g(['<var class="math-var c">c</var>'])))),a=this.unequal?at(Ku||(Ku=g(['\n <tr>\n <td rowspan="2">\n ','<span class="equals">=</span><span class="bracket tight">(</span>\n </td>\n <td class="underline bottom">\n <span>1</span><span class="plus tight">+</span><span>','<sup class="exp">2</sup></span>\n </td>\n <td rowspan="2">\n <span class="bracket tight">)<sup class="exp">−½</sup></span><span class="bracket tight">(</span>\n </td>\n <td class="underline bottom">\n <span class="minus tight">−</span>','\n </td>\n <td rowspan="2">\n <span class="bracket tight">)</span><span class="bracket">[</span><span class="tight"><var class="math-greek phi tight">Φ</var><sup class="exp">−1</sup></span><span class="paren tight">(</span>','<span class="paren tight">)</span><span class="plus">+</span><span class="tight"><var class="math-greek phi tight">Φ</var><sup class="exp">−1</sup></span><span class="paren tight">(</span>','<span class="paren tight">)</span><span class="bracket">]</span>\n </td>\n </tr>\n <tr>\n <td>\n <span>2</span>\n </td>\n <td>\n <span><span>1</span><span class="plus">+</span>',"</span>\n </td>\n </tr>"])),r,n,n,t,e,n):at(Xu||(Xu=g(['\n <tr>\n <td rowspan="2">\n ','<span class="equals">=</span>\n </td>\n <td class="underline">\n <span class="minus tight">−</span><span class="bracket tight">[</span><span class="tight"><var class="math-greek phi tight">Φ</var><sup class="exp">−1</sup></span><span class="paren tight">(</span>','<span class="paren tight">)</span><span class="plus">+</span><span class="tight"><var class="math-greek phi tight">Φ</var><sup class="exp">−1</sup></span><span class="paren tight">(</span>','<span class="paren tight">)</span><span class="bracket tight">]</span>\n </td>\n </tr>\n <tr>\n <td>\n <span>2</span>\n </td>\n </tr>'])),r,t,e),at(Gu||(Gu=g(['\n <div class="holder">\n <table class="equation">\n <tbody>\n ',"\n </tbody>\n </table>\n </div>"])),a)}}],[{key:"properties",get:function(){return{unequal:{attribute:"unequal",type:Boolean,reflect:!0},hr:{attribute:"hit-rate",type:Number,reflect:!0},far:{attribute:"false-alarm-rate",type:Number,reflect:!0},s:{attribute:"s",type:Number,reflect:!0},c:{attribute:!1,type:Number,reflect:!1}}}}]),n}(lu);customElements.define("sdt-equation-hrfar2c",sh);var lh,ch,uh=function(t){s(n,t);var e=v(n);function n(){var t;return r(this,n),(t=e.call(this)).unequal=!1,t.hr=0,t.far=0,t.s=1,t.alignState(),t}return i(n,[{key:"alignState",value:function(){this.d=yl.hrFar2D(this.hr,this.far,this.s)}},{key:"sendEvent",value:function(){this.dispatchEvent(new CustomEvent("sdt-equation-hrfar2d-change",{detail:{hr:this.hr,far:this.far,s:this.s,d:this.d},bubbles:!0}))}},{key:"hrInput",value:function(t){this.hr=parseFloat(t.target.value),this.alignState(),this.sendEvent()}},{key:"farInput",value:function(t){this.far=parseFloat(t.target.value),this.alignState(),this.sendEvent()}},{key:"sInput",value:function(t){this.s=parseFloat(t.target.value),this.alignState(),this.sendEvent()}},{key:"render",value:function(){var t,e,n,r,a;return this.alignState(),this.numeric?(t=at(Yu||(Yu=g(['\n <decidables-spinner class="hr bottom" ?disabled=',' min="0" max="1" step=".001" .value="','" @input=',">\n <var>Hit Rate</var>\n </decidables-spinner>\n "])),!this.interactive,this.hr,this.hrInput.bind(this)),e=at(Wu||(Wu=g(['\n <decidables-spinner class="far bottom" ?disabled=',' min="0" max="1" step=".001" .value="','" @input=',">\n <var>False Alarm Rate</var>\n </decidables-spinner>\n "])),!this.interactive,this.far,this.farInput.bind(this)),n=at(Qu||(Qu=g(['\n <decidables-spinner class="s bottom" ?disabled=',' min="0" step=".001" .value="','" @input=','>\n <var class="math-var">σ</var>\n </decidables-spinner>\n '])),!this.interactive,this.s,this.sInput.bind(this)),r=at(Ju||(Ju=g(['\n <decidables-spinner class="d bottom" disabled step=".001" .value="','">\n <var class="math-var">d′</var>\n </decidables-spinner>\n '])),+this.d.toFixed(3))):(t=at(th||(th=g(['<var class="hr">Hit Rate</var>']))),e=at(eh||(eh=g(['<var class="far">False Alarm Rate</var>']))),n=at(nh||(nh=g(['<var class="math-var s">σ</var>']))),r=at(rh||(rh=g(['<var class="math-var d">d′</var>'])))),a=this.unequal?at(ah||(ah=g(['\n <tr>\n <td rowspan="2">\n ','<span class="equals">=</span><span class="bracket tight">(</span>\n </td>\n <td class="underline bottom">\n <span>1</span><span class="plus tight">+</span><span>','<sup class="exp">2</sup></span>\n </td>\n <td rowspan="2">\n <span class="bracket tight">)<sup class="exp">−½</sup></span><span class="bracket">[</span>','<span class="tight"><var class="math-greek phi tight">Φ</var><sup class="exp">−1</sup></span><span class="paren tight">(</span>','<span class="paren tight">)</span><span class="minus">−</span><span class="tight"><var class="math-greek phi tight">Φ</var><sup class="exp">−1</sup></span><span class="paren tight">(</span>','<span class="paren tight">)</span><span class="bracket">]</span>\n </td>\n </tr>\n <tr>\n <td>\n <span>2</span>\n </td>\n </tr>'])),r,n,n,t,e):at(ih||(ih=g(["\n <tr>\n <td>\n ",'<span class="equals">=</span><span class="tight"><var class="math-greek phi tight">Φ</var><sup class="exp">−1</sup></span><span class="paren tight">(</span>','<span class="paren tight">)</span><span class="minus">−</span><span class="tight"><var class="math-greek phi tight">Φ</var><sup class="exp">−1</sup></span><span class="paren tight">(</span>','<span class="paren tight">)</span>\n </td>\n </tr>'])),r,t,e),at(oh||(oh=g(['\n <div class="holder">\n <table class="equation">\n <tbody>\n ',"\n </tbody>\n </table>\n </div>"])),a)}}],[{key:"properties",get:function(){return{unequal:{attribute:"unequal",type:Boolean,reflect:!0},hr:{attribute:"hit-rate",type:Number,reflect:!0},far:{attribute:"false-alarm-rate",type:Number,reflect:!0},s:{attribute:"s",type:Number,reflect:!0},d:{attribute:!1,type:Number,reflect:!1}}}}]),n}(lu);customElements.define("sdt-equation-hrfar2d",uh);var hh=function(t){s(n,t);var e=v(n);function n(){return r(this,n),e.apply(this,arguments)}return i(n,[{key:"render",value:function(){return at(lh||(lh=g(['\n <div class="holder">\n <div class="body">\n <slot>Empty!</slot>\n </div>\n </div>'])))}}],[{key:"styles",get:function(){return[b(l(n),"styles",this),R(ch||(ch=g(["\n :host {\n ---border: var(--border, 1px solid var(---color-border));\n display: inline-block;\n\n /* This makes IE11 happy */\n width: 100%;\n\n margin-bottom: 1rem;\n }\n\n .holder {\n display: flex;\n }\n\n .body {\n display: flex;\n\n flex-wrap: wrap;\n\n align-items: center;\n justify-content: left;\n\n padding: 0.625rem;\n\n border: var(---border);\n border-radius: 0.25rem;\n }\n\n .body ::slotted(*) {\n margin: 0.625rem;\n }\n\n /* HACK: Sibling selectors not working with ::slotted */\n /* .body > rdk-task + detectable-response,\n ::slotted(rdk-task) + ::slotted(detectable-response) { */\n .body ::slotted(detectable-response) {\n margin-left: 0;\n }\n\n /* HACK: Sibling selectors not working with ::slotted */\n /* .body > detectable-control + rdk-task,\n ::slotted(detectable-control) + ::slotted(rdk-task) {\n margin-left: 0;\n } */\n .body ::slotted(rdk-task) {\n margin-left: 0;\n }\n "])))]}}]),n}(Ks);customElements.define("sdt-example",hh);var dh=function(t){s(n,t);var e=v(n);function n(){return r(this,n),e.apply(this,arguments)}return i(n,[{key:"firstUpdated",value:function(){var t=this;this.one={},this.one.h=95,this.one.m=5,this.one.fa=35,this.one.cr=65,this.one.hr=yl.hM2Hr(this.one.h,this.one.m),this.one.far=yl.faCr2Far(this.one.fa,this.one.cr),this.one.d=yl.hrFar2D(this.one.hr,this.one.far),this.one.c=yl.hrFar2C(this.one.hr,this.one.far),this.two={},this.two.h=40,this.two.m=60,this.two.fa=20,this.two.cr=80,this.two.hr=yl.hM2Hr(this.two.h,this.two.m),this.two.far=yl.faCr2Far(this.two.fa,this.two.cr),this.two.d=yl.hrFar2D(this.two.hr,this.two.far),this.two.c=yl.hrFar2C(this.two.hr,this.two.far),this.detectableTableOne=this.querySelector("detectable-table:nth-of-type(1)"),this.detectableTableTwo=this.querySelector("detectable-table:nth-of-type(2)"),this.rocSpace=this.querySelector("roc-space"),this.sdtModelOne=this.querySelector("sdt-model:nth-of-type(1)"),this.sdtModelTwo=this.querySelector("sdt-model:nth-of-type(2)"),this.detectableTableOne&&(this.detectableTableOne.h=this.one.h,this.detectableTableOne.m=this.one.m,this.detectableTableOne.fa=this.one.fa,this.detectableTableOne.cr=this.one.cr,this.detectableTableOne.addEventListener("detectable-table-change",(function(e){t.rocSpace&&t.rocSpace.set(e.detail.hr,e.detail.far,"default","↑"),t.sdtModelOne&&(t.sdtModelOne.d=yl.hrFar2D(e.detail.hr,e.detail.far),t.sdtModelOne.c=yl.hrFar2C(e.detail.hr,e.detail.far))}))),this.detectableTableTwo&&(this.detectableTableTwo.h=this.two.h,this.detectableTableTwo.m=this.two.m,this.detectableTableTwo.fa=this.two.fa,this.detectableTableTwo.cr=this.two.cr,this.detectableTableTwo.addEventListener("detectable-table-change",(function(e){t.rocSpace&&t.rocSpace.set(e.detail.hr,e.detail.far,"two","↓"),t.sdtModelTwo&&(t.sdtModelTwo.d=yl.hrFar2D(e.detail.hr,e.detail.far),t.sdtModelTwo.c=yl.hrFar2C(e.detail.hr,e.detail.far))}))),this.rocSpace&&(this.rocSpace.set(this.one.hr,this.one.far,"default","↑"),this.rocSpace.set(this.two.hr,this.two.far,"two","↓"),this.rocSpace.addEventListener("roc-point-change",(function(e){if("default"===e.detail.name&&t.sdtModelOne?(t.sdtModelOne.d=e.detail.d,t.sdtModelOne.c=e.detail.c):"two"===e.detail.name&&t.sdtModelTwo&&(t.sdtModelTwo.d=e.detail.d,t.sdtModelTwo.c=e.detail.c),"default"===e.detail.name&&t.detectableTableOne){var n=Math.round((t.detectableTableOne.h+t.detectableTableOne.m)*e.detail.hr),r=t.detectableTableOne.h+t.detectableTableOne.m-n,a=Math.round((t.detectableTableOne.fa+t.detectableTableOne.cr)*e.detail.far),i=t.detectableTableOne.fa+t.detectableTableOne.cr-a;t.detectableTableOne.h=n,t.detectableTableOne.m=r,t.detectableTableOne.fa=a,t.detectableTableOne.cr=i}else if("two"===e.detail.name&&t.detectableTableTwo){var o=Math.round((t.detectableTableTwo.h+t.detectableTableTwo.m)*e.detail.hr),s=t.detectableTableTwo.h+t.detectableTableTwo.m-o,l=Math.round((t.detectableTableTwo.fa+t.detectableTableTwo.cr)*e.detail.far),c=t.detectableTableTwo.fa+t.detectableTableTwo.cr-l;t.detectableTableTwo.h=o,t.detectableTableTwo.m=s,t.detectableTableTwo.fa=l,t.detectableTableTwo.cr=c}}))),this.sdtModelOne&&(this.sdtModelOne.d=this.one.d,this.sdtModelOne.c=this.one.c,this.sdtModelOne.addEventListener("sdt-model-change",(function(e){if(t.rocSpace&&t.rocSpace.setWithSDT(e.detail.d,e.detail.c,"default","↑"),t.detectableTableOne){var n=Math.round((t.detectableTableOne.h+t.detectableTableOne.m)*e.detail.hr),r=t.detectableTableOne.h+t.detectableTableOne.m-n,a=Math.round((t.detectableTableOne.fa+t.detectableTableOne.cr)*e.detail.far),i=t.detectableTableOne.fa+t.detectableTableOne.cr-a;t.detectableTableOne.h=n,t.detectableTableOne.m=r,t.detectableTableOne.fa=a,t.detectableTableOne.cr=i}}))),this.sdtModelTwo&&(this.sdtModelTwo.d=this.two.d,this.sdtModelTwo.c=this.two.c,this.sdtModelTwo.addEventListener("sdt-model-change",(function(e){if(t.rocSpace&&t.rocSpace.setWithSDT(e.detail.d,e.detail.c,"two","↓"),t.detectableTableTwo){var n=Math.round((t.detectableTableTwo.h+t.detectableTableTwo.m)*e.detail.hr),r=t.detectableTableTwo.h+t.detectableTableTwo.m-n,a=Math.round((t.detectableTableTwo.fa+t.detectableTableTwo.cr)*e.detail.far),i=t.detectableTableTwo.fa+t.detectableTableTwo.cr-a;t.detectableTableTwo.h=n,t.detectableTableTwo.m=r,t.detectableTableTwo.fa=a,t.detectableTableTwo.cr=i}})))}}]),n}(hh);customElements.define("sdt-example-double-interactive",dh);var fh=function(t){s(n,t);var e=v(n);function n(){return r(this,n),e.apply(this,arguments)}return i(n,[{key:"firstUpdated",value:function(){var t=this;this.count=1,this.detectableControl=this.querySelector("detectable-control"),this.rdkTask=this.querySelector("rdk-task"),this.detectableResponse=this.querySelector("detectable-response"),this.detectableTable=this.querySelector("detectable-table"),this.rocSpace=this.querySelector("roc-space"),this.sdtModel=this.querySelector("sdt-model"),this.rocSpace&&this.rocSpace.hasAttribute("history")&&this.rocSpace.set(.5,.5,"default",this.count),this.detectableControl&&this.detectableControl.hasAttribute("trials")&&this.detectableControl.addEventListener("detectable-control-trials",(function(e){t.rdkTask&&(t.rdkTask.trials=e.detail.trials),t.detectableResponse&&(t.detectableResponse.trialTotal=e.detail.trials)})),this.detectableControl&&this.detectableControl.hasAttribute("duration")&&this.detectableControl.addEventListener("detectable-control-duration",(function(e){t.rdkTask&&(t.rdkTask.duration=e.detail.duration,t.rdkTask.wait=e.detail.duration,t.rdkTask.iti=e.detail.duration)})),this.detectableControl&&this.detectableControl.hasAttribute("coherence")&&this.detectableControl.addEventListener("detectable-control-coherence",(function(e){t.rdkTask&&(t.rdkTask.coherence=e.detail.coherence)})),this.detectableControl&&this.detectableControl.hasAttribute("payoff")&&this.detectableControl.addEventListener("detectable-control-payoff",(function(e){t.detectableResponse&&(t.detectableResponse.hPayoff=e.detail.payoff,t.detectableResponse.mPayoff=0-e.detail.payoff,t.detectableResponse.faPayoff=0-(100-e.detail.payoff),t.detectableResponse.crPayoff=100-e.detail.payoff),t.detectableTable&&(t.detectableTable.hPayoff=e.detail.payoff,t.detectableTable.mPayoff=0-e.detail.payoff,t.detectableTable.faPayoff=0-(100-e.detail.payoff),t.detectableTable.crPayoff=100-e.detail.payoff)})),this.detectableControl&&this.detectableControl.hasAttribute("run")&&this.detectableControl.addEventListener("detectable-control-run",(function(){t.rdkTask&&(t.rdkTask.running=!0)})),this.detectableControl&&this.detectableControl.hasAttribute("pause")&&this.detectableControl.addEventListener("detectable-control-pause",(function(){t.rdkTask&&(t.rdkTask.running=!1)})),this.detectableControl&&this.detectableControl.hasAttribute("reset")&&this.detectableControl.addEventListener("detectable-control-reset",(function(){t.rdkTask&&t.rdkTask.reset(),t.detectableResponse&&t.detectableResponse.reset(),t.detectableTable&&(t.detectableTable.h=0,t.detectableTable.m=0,t.detectableTable.fa=0,t.detectableTable.cr=0),t.rocSpace&&(t.rocSpace.hasAttribute("history")?(t.count+=1,t.rocSpace.set(.5,.5,"point".concat(t.count),t.count)):(t.rocSpace.hr=.5,t.rocSpace.far=.5)),t.sdtModel&&(t.sdtModel.d=0,t.sdtModel.c=0)})),this.rdkTask&&this.detectableResponse&&(this.detectableResponse.trialTotal=this.rdkTask.trials),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-start",(function(e){t.detectableResponse&&t.detectableResponse.start(e.detail.signal,e.detail.trial)})),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-end",(function(){t.detectableResponse&&t.detectableResponse.stop()})),this.rdkTask&&this.rdkTask.addEventListener("rdk-block-end",(function(){t.detectableControl&&t.detectableControl.complete()})),this.detectableResponse&&this.detectableResponse.addEventListener("detectable-response",(function(e){t.detectableTable&&(t.detectableTable.h=e.detail.h,t.detectableTable.m=e.detail.m,t.detectableTable.fa=e.detail.fa,t.detectableTable.cr=e.detail.cr);var n=yl.hM2Hr(e.detail.h+1,e.detail.m+1),r=yl.faCr2Far(e.detail.fa+1,e.detail.cr+1);t.rocSpace&&(t.rocSpace.hasAttribute("history")?t.rocSpace.set(n,r,1===t.count?"default":"point".concat(t.count),t.count):(t.rocSpace.hr=n,t.rocSpace.far=r)),t.sdtModel&&(t.sdtModel.d=yl.hrFar2D(n,r),t.sdtModel.c=yl.hrFar2C(n,r))}))}}]),n}(hh);customElements.define("sdt-example-human",fh);var ph=function(t){s(n,t);var e=v(n);function n(){return r(this,n),e.apply(this,arguments)}return i(n,[{key:"firstUpdated",value:function(){var t=this;this.detectableControl=this.querySelector("detectable-control"),this.detectableTable=this.querySelector("detectable-table"),this.rocSpace=this.querySelector("roc-space"),this.sdtModel=this.querySelector("sdt-model"),this.rocSpaces=this.querySelectorAll("roc-space"),this.detectableControl&&this.detectableControl.hasAttribute("color")&&this.detectableControl.addEventListener("detectable-control-color",(function(e){t.sdtModel&&(t.sdtModel.color=e.detail.color),t.detectableTable&&(t.detectableTable.color=e.detail.color)})),this.detectableControl&&this.detectableControl.addEventListener("detectable-control-z-roc",(function(e){t.rocSpaces.length>0&&t.rocSpaces.forEach((function(t){t.zRoc=e.detail.zRoc}))})),this.detectableTable&&(this.rocSpace&&(this.rocSpace.hr=yl.hM2Hr(this.detectableTable.h,this.detectableTable.m),this.rocSpace.far=yl.faCr2Far(this.detectableTable.fa,this.detectableTable.cr)),this.sdtModel&&(this.sdtModel.d=yl.hrFar2D(yl.hM2Hr(this.detectableTable.h,this.detectableTable.m),yl.faCr2Far(this.detectableTable.fa,this.detectableTable.cr),this.sdtModel.s),this.sdtModel.c=yl.hrFar2C(yl.hM2Hr(this.detectableTable.h,this.detectableTable.m),yl.faCr2Far(this.detectableTable.fa,this.detectableTable.cr),this.sdtModel.s)),this.detectableTable.addEventListener("detectable-table-change",(function(e){t.rocSpace&&(t.rocSpace.far=e.detail.far,t.rocSpace.hr=e.detail.hr),t.sdtModel&&(t.sdtModel.d=yl.hrFar2D(e.detail.hr,e.detail.far,t.sdtModel.s),t.sdtModel.c=yl.hrFar2C(e.detail.hr,e.detail.far,t.sdtModel.s))}))),this.rocSpace&&(this.sdtModel&&!this.detectableTable&&(this.sdtModel.d=yl.hrFar2D(this.rocSpace.hr,this.rocSpace.far,this.rocSpace.s),this.sdtModel.c=yl.hrFar2C(this.rocSpace.hr,this.rocSpace.far,this.rocSpace.s),this.sdtModel.s=this.rocSpace.s),this.rocSpace.addEventListener("roc-point-change",(function(e){if(t.sdtModel&&(t.sdtModel.d=e.detail.d,t.sdtModel.c=e.detail.c,t.sdtModel.s=e.detail.s),t.detectableTable){var n=Math.round((t.detectableTable.h+t.detectableTable.m)*e.detail.hr),r=t.detectableTable.h+t.detectableTable.m-n,a=Math.round((t.detectableTable.fa+t.detectableTable.cr)*e.detail.far),i=t.detectableTable.fa+t.detectableTable.cr-a;t.detectableTable.h=n,t.detectableTable.m=r,t.detectableTable.fa=a,t.detectableTable.cr=i}}))),this.sdtModel&&this.sdtModel.addEventListener("sdt-model-change",(function(e){if(t.rocSpaces.length>0&&t.rocSpaces.forEach((function(t){t.setWithSDT(e.detail.d,e.detail.c,"default","",e.detail.s)})),t.detectableTable){var n=Math.round((t.detectableTable.h+t.detectableTable.m)*e.detail.hr),r=t.detectableTable.h+t.detectableTable.m-n,a=Math.round((t.detectableTable.fa+t.detectableTable.cr)*e.detail.far),i=t.detectableTable.fa+t.detectableTable.cr-a;t.detectableTable.h=n,t.detectableTable.m=r,t.detectableTable.fa=a,t.detectableTable.cr=i}}))}}]),n}(hh);customElements.define("sdt-example-interactive",ph);var vh=function(t){s(n,t);var e=v(n);function n(){return r(this,n),e.apply(this,arguments)}return i(n,[{key:"firstUpdated",value:function(){var t=this;this.count=1,this.detectableControl=this.querySelector("detectable-control"),this.rdkTask=this.querySelector("rdk-task"),this.sdtModel=this.querySelector("sdt-model"),this.detectableResponse=this.querySelector("detectable-response"),this.detectableTable=this.querySelector("detectable-table"),this.rocSpace=this.querySelector("roc-space"),this.detectableControl&&this.detectableControl.hasAttribute("color")&&this.detectableControl.addEventListener("detectable-control-color",(function(e){t.sdtModel&&(t.sdtModel.color=e.detail.color),t.detectableTable&&(t.detectableTable.color=e.detail.color)})),this.detectableControl&&this.detectableControl.hasAttribute("duration")&&this.detectableControl.addEventListener("detectable-control-duration",(function(e){t.rdkTask&&(t.rdkTask.duration=e.detail.duration,t.rdkTask.wait=e.detail.duration,t.rdkTask.iti=e.detail.duration)})),this.detectableControl&&this.detectableControl.hasAttribute("trials")&&this.detectableControl.addEventListener("detectable-control-trials",(function(e){t.rdkTask&&(t.rdkTask.trials=e.detail.trials),t.detectableResponse&&(t.detectableResponse.trialTotal=e.detail.trials)})),this.detectableControl&&this.detectableControl.hasAttribute("coherence")&&this.detectableControl.addEventListener("detectable-control-coherence",(function(e){t.rdkTask&&(t.rdkTask.coherence=e.detail.coherence)})),this.detectableControl&&this.detectableControl.hasAttribute("run")&&this.detectableControl.addEventListener("detectable-control-run",(function(){t.rdkTask&&(t.rdkTask.running=!0),t.sdtModel&&t.sdtModel.resumeTrial()})),this.detectableControl&&this.detectableControl.hasAttribute("pause")&&this.detectableControl.addEventListener("detectable-control-pause",(function(){t.rdkTask&&(t.rdkTask.running=!1),t.sdtModel&&t.sdtModel.pauseTrial()})),this.detectableControl&&this.detectableControl.hasAttribute("reset")&&this.detectableControl.addEventListener("detectable-control-reset",(function(){t.rdkTask&&t.rdkTask.reset(),t.detectableResponse&&t.detectableResponse.reset(),t.sdtModel&&t.sdtModel.reset(),t.detectableTable&&(t.detectableTable.h=0,t.detectableTable.m=0,t.detectableTable.fa=0,t.detectableTable.cr=0),t.rocSpace&&(t.rocSpace.hasAttribute("history")?(t.count+=1,t.rocSpace.set(.5,.5,"point".concat(t.count),"",1)):(t.rocSpace.hr=.5,t.rocSpace.far=.5))})),this.rdkTask&&this.detectableResponse&&(this.detectableResponse.trialTotal=this.rdkTask.trials),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-start",(function(e){t.detectableResponse&&t.detectableResponse.start(e.detail.signal,e.detail.trial),t.sdtModel&&t.sdtModel.trial(e.detail.trial,e.detail.signal,e.detail.duration,e.detail.wait,e.detail.iti)})),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-middle",(function(){})),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-end",(function(){t.detectableResponse&&t.detectableResponse.stop()})),this.rdkTask&&this.rdkTask.addEventListener("rdk-block-end",(function(){t.detectableControl&&t.detectableControl.complete()})),this.sdtModel&&this.sdtModel.addEventListener("detectable-response",(function(e){t.detectableResponse&&t.detectableResponse.responded(e.detail.response),t.detectableTable&&(t.detectableTable.h=e.detail.h,t.detectableTable.m=e.detail.m,t.detectableTable.fa=e.detail.fa,t.detectableTable.cr=e.detail.cr),t.rocSpace&&(t.rocSpace.hr=yl.hM2Hr(e.detail.h,e.detail.m),t.rocSpace.far=yl.faCr2Far(e.detail.fa,e.detail.cr))})),this.sdtModel&&this.sdtModel.addEventListener("sdt-model-change",(function(e){t.detectableTable&&(t.detectableTable.h=e.detail.h,t.detectableTable.m=e.detail.m,t.detectableTable.fa=e.detail.fa,t.detectableTable.cr=e.detail.cr),t.rocSpace&&(t.rocSpace.hr=yl.hM2Hr(e.detail.h,e.detail.m),t.rocSpace.far=yl.faCr2Far(e.detail.fa,e.detail.cr))}))}}]),n}(hh);customElements.define("sdt-example-model",vh);var mh=function(t){s(n,t);var e=v(n);function n(){return r(this,n),e.apply(this,arguments)}return i(n,[{key:"firstUpdated",value:function(){var t=this;this.detectableControl=this.querySelector("detectable-control"),this.rocSpace=this.querySelector("roc-space"),this.sdtModel=this.querySelector("sdt-model"),this.detectableControl&&this.detectableControl.addEventListener("detectable-control-z-roc",(function(e){t.rocSpace.zRoc=e.detail.zRoc})),this.rocSpace&&this.rocSpace.setWithSDT(1,0,"default","",1),this.sdtModel&&(this.rocSpace&&Bt(-1.5,1.6,.5).forEach((function(e,n){t.rocSpace.setWithSDT(t.sdtModel.d,e,"point".concat(n),"",t.sdtModel.s)})),this.sdtModel.addEventListener("sdt-model-change",(function(e){t.rocSpace&&Bt(-1.5,1.6,.5).forEach((function(n,r){t.rocSpace.setWithSDT(e.detail.d,n,"point".concat(r),"",e.detail.s)}))})))}}]),n}(hh);customElements.define("sdt-example-unequal",mh),t.DetectableControl=_l,t.DetectableElement=Ks,t.DetectableResponse=Oc,t.DetectableTable=Hc,t.RDKTask=Xs,t.ROCSpace=wl,t.SDTEquationDC2Far=cu,t.SDTEquationDC2Hr=bu,t.SDTEquationFaCr2Far=Au,t.SDTEquationHM2Hr=Ou,t.SDTEquationHMFaCr2Acc=Zu,t.SDTEquationHrFar2C=sh,t.SDTEquationHrFar2D=uh,t.SDTExampleDoubleInteractive=dh,t.SDTExampleHuman=fh,t.SDTExampleInteractive=ph,t.SDTExampleModel=vh,t.SDTExampleUnequal=mh,t.SDTModel=Vl,Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
177
|
+
const Qa=t=>null!=t?t:O;let Ja,to,eo=t=>t;customElements.define("decidables-slider",class extends Za{static get properties(){return{disabled:{attribute:"disabled",type:Boolean,reflect:!0},max:{attribute:"max",type:Number,reflect:!0},min:{attribute:"min",type:Number,reflect:!0},step:{attribute:"step",type:Number,reflect:!0},value:{attribute:"value",type:Number,reflect:!0}}}constructor(){super(),this.disabled=!1,this.max=void 0,this.min=void 0,this.step=void 0,this.value=void 0}changed(t){this.value=t.target.value,this.dispatchEvent(new CustomEvent("change",{detail:{value:this.value},bubbles:!0}))}inputted(t){this.value=t.target.value}static get styles(){return[super.styles,a(Ja||(Ja=eo`
|
|
178
|
+
:host {
|
|
179
|
+
---shadow-2-rotate: var(--shadow-2-rotate, ${0});
|
|
180
|
+
---shadow-4-rotate: var(--shadow-4-rotate, ${0});
|
|
181
|
+
---shadow-8-rotate: var(--shadow-8-rotate, ${0});
|
|
182
|
+
|
|
183
|
+
display: flex;
|
|
184
|
+
|
|
185
|
+
flex-direction: column;
|
|
186
|
+
|
|
187
|
+
align-items: center;
|
|
188
|
+
justify-content: center;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
label {
|
|
192
|
+
margin: 0.25rem 0.25rem 0;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.range {
|
|
196
|
+
display: inline-block;
|
|
197
|
+
|
|
198
|
+
width: 3.5rem;
|
|
199
|
+
height: 4.75rem;
|
|
200
|
+
margin: 0 0.25rem 0.25rem;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
decidables-spinner {
|
|
204
|
+
--decidables-spinner-input-width: 3.5rem;
|
|
205
|
+
|
|
206
|
+
margin: 0 0.25rem 0.25rem;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/* Adapted from http://danielstern.ca/range.css/#/ */
|
|
210
|
+
/* Overall */
|
|
211
|
+
input[type=range] {
|
|
212
|
+
width: 4.75rem;
|
|
213
|
+
height: 3.5rem;
|
|
214
|
+
padding: 0;
|
|
215
|
+
margin: 0;
|
|
216
|
+
|
|
217
|
+
background-color: unset;
|
|
218
|
+
|
|
219
|
+
transform: rotate(-90deg);
|
|
220
|
+
transform-origin: 2.375rem 2.375rem;
|
|
221
|
+
|
|
222
|
+
/* stylelint-disable-next-line property-no-vendor-prefix */
|
|
223
|
+
-webkit-appearance: none;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
input[type=range]:enabled {
|
|
227
|
+
cursor: ns-resize;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
input[type=range]:focus {
|
|
231
|
+
outline: none;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
235
|
+
input[type=range]::-ms-tooltip {
|
|
236
|
+
display: none;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/* Track */
|
|
240
|
+
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
241
|
+
input[type=range]::-webkit-slider-runnable-track {
|
|
242
|
+
width: 100%;
|
|
243
|
+
height: 4px;
|
|
244
|
+
|
|
245
|
+
background: var(---color-element-disabled);
|
|
246
|
+
border: 0;
|
|
247
|
+
border-radius: 2px;
|
|
248
|
+
box-shadow: none;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
input[type=range]:focus::-webkit-slider-runnable-track {
|
|
252
|
+
background: var(---color-element-disabled);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
256
|
+
input[type=range]::-moz-range-track {
|
|
257
|
+
width: 100%;
|
|
258
|
+
height: 4px;
|
|
259
|
+
|
|
260
|
+
background: var(---color-element-disabled);
|
|
261
|
+
border: 0;
|
|
262
|
+
border-radius: 2px;
|
|
263
|
+
box-shadow: none;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
267
|
+
input[type=range]::-ms-track {
|
|
268
|
+
width: 100%;
|
|
269
|
+
height: 4px;
|
|
270
|
+
|
|
271
|
+
color: transparent;
|
|
272
|
+
|
|
273
|
+
background: transparent;
|
|
274
|
+
border-color: transparent;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
278
|
+
input[type=range]::-ms-fill-lower {
|
|
279
|
+
background: #cccccc;
|
|
280
|
+
/* background: var(---color-element-disabled); */
|
|
281
|
+
border: 0;
|
|
282
|
+
border-radius: 2px;
|
|
283
|
+
box-shadow: none;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
287
|
+
input[type=range]::-ms-fill-upper {
|
|
288
|
+
background: #cccccc;
|
|
289
|
+
/* background: var(---color-element-disabled); */
|
|
290
|
+
border: 0;
|
|
291
|
+
border-radius: 2px;
|
|
292
|
+
box-shadow: none;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
296
|
+
input[type=range]:focus::-ms-fill-lower {
|
|
297
|
+
background: var(---color-element-disabled);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
301
|
+
input[type=range]:focus::-ms-fill-upper {
|
|
302
|
+
background: var(---color-element-disabled);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
/* Thumb */
|
|
306
|
+
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
307
|
+
input[type=range]::-webkit-slider-thumb {
|
|
308
|
+
width: 10px;
|
|
309
|
+
height: 20px;
|
|
310
|
+
margin-top: -8px;
|
|
311
|
+
|
|
312
|
+
border: 0;
|
|
313
|
+
border-radius: 4px;
|
|
314
|
+
|
|
315
|
+
/* stylelint-disable-next-line property-no-vendor-prefix */
|
|
316
|
+
-webkit-appearance: none;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
input[type=range]:disabled::-webkit-slider-thumb {
|
|
320
|
+
background: var(---color-element-disabled);
|
|
321
|
+
box-shadow: none;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
input[type=range]:enabled::-webkit-slider-thumb {
|
|
325
|
+
background: var(---color-element-enabled);
|
|
326
|
+
box-shadow: var(---shadow-2-rotate);
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
input[type=range]:enabled:hover::-webkit-slider-thumb {
|
|
330
|
+
box-shadow: var(---shadow-4-rotate);
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
input[type=range]:enabled:active::-webkit-slider-thumb {
|
|
334
|
+
box-shadow: var(---shadow-8-rotate);
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
:host(.keyboard) input[type=range]:enabled:focus::-webkit-slider-thumb {
|
|
338
|
+
box-shadow: var(---shadow-4-rotate);
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
:host(.keyboard) input[type=range]:focus:active::-webkit-slider-thumb {
|
|
342
|
+
box-shadow: var(---shadow-8-rotate);
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
346
|
+
input[type=range]::-moz-range-thumb {
|
|
347
|
+
width: 10px;
|
|
348
|
+
height: 20px;
|
|
349
|
+
|
|
350
|
+
border: 0;
|
|
351
|
+
border-radius: 4px;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
355
|
+
input[type=range]:disabled::-moz-range-thumb {
|
|
356
|
+
background: var(---color-element-disabled);
|
|
357
|
+
box-shadow: none;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
361
|
+
input[type=range]:enabled::-moz-range-thumb {
|
|
362
|
+
background: var(---color-element-enabled);
|
|
363
|
+
box-shadow: var(---shadow-2-rotate);
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
367
|
+
input[type=range]:enabled:hover::-moz-range-thumb {
|
|
368
|
+
box-shadow: var(---shadow-4-rotate);
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
372
|
+
input[type=range]:enabled:active::-moz-range-thumb {
|
|
373
|
+
box-shadow: var(---shadow-8-rotate);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
:host(.keyboard) input[type=range]:enabled:focus::-moz-range-thumb {
|
|
377
|
+
box-shadow: var(---shadow-4-rotate);
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
:host(.keyboard) input[type=range]:enabled:focus:active::-moz-range-thumb {
|
|
381
|
+
box-shadow: var(---shadow-8-rotate);
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
385
|
+
input[type=range]::-ms-thumb {
|
|
386
|
+
width: 10px;
|
|
387
|
+
height: 20px;
|
|
388
|
+
margin-top: 0;
|
|
389
|
+
|
|
390
|
+
background: #999999;
|
|
391
|
+
/* background: var(---color-element-enabled); */
|
|
392
|
+
border: 0;
|
|
393
|
+
border-radius: 4px;
|
|
394
|
+
box-shadow: var(---shadow-2-rotate);
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
398
|
+
input[type=range]:disabled::-ms-thumb {
|
|
399
|
+
background: var(---color-element-disabled);
|
|
400
|
+
box-shadow: none;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
404
|
+
input[type=range]:enabled::-ms-thumb {
|
|
405
|
+
background: var(---color-element-enabled);
|
|
406
|
+
box-shadow: var(---shadow-2-rotate);
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
410
|
+
input[type=range]:enabled:hover::-ms-thumb {
|
|
411
|
+
box-shadow: var(---shadow-4-rotate);
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
415
|
+
input[type=range]:enabled:active::-ms-thumb {
|
|
416
|
+
box-shadow: var(---shadow-8-rotate);
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
/* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
|
|
420
|
+
:host(.keyboard) input[type=range]:enabled:focus::-ms-thumb {
|
|
421
|
+
box-shadow: var(---shadow-4-rotate);
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
:host(.keyboard) input[type=range]:enabled:focus:active::-ms-thumb {
|
|
425
|
+
box-shadow: var(---shadow-8-rotate);
|
|
426
|
+
}
|
|
427
|
+
`),s(this.cssBoxShadow(2,!0,!1)),s(this.cssBoxShadow(4,!0,!1)),s(this.cssBoxShadow(8,!0,!1)))]}render(){return z(to||(to=eo`
|
|
428
|
+
<label for="slider">
|
|
429
|
+
<slot></slot>
|
|
430
|
+
</label>
|
|
431
|
+
<div class="range">
|
|
432
|
+
<input type="range" id="slider" min=${0} max=${0} step=${0} .value=${0} @change=${0} @input=${0}>
|
|
433
|
+
</div>
|
|
434
|
+
<decidables-spinner min=${0} max=${0} step=${0} .value=${0} @input=${0}></decidables-spinner>
|
|
435
|
+
`),Qa(this.min),Qa(this.max),Qa(this.step),this.value,this.changed.bind(this),this.inputted.bind(this),Qa(this.min),Qa(this.max),Qa(this.step),this.value,this.inputted.bind(this))}});let ro,no,io=t=>t;customElements.define("decidables-spinner",class extends Za{static get properties(){return{disabled:{attribute:"disabled",type:Boolean,reflect:!0},max:{attribute:"max",type:Number,reflect:!0},min:{attribute:"min",type:Number,reflect:!0},step:{attribute:"step",type:Number,reflect:!0},value:{attribute:"value",type:Number,reflect:!0}}}constructor(){super(),this.disabled=!1,this.max=void 0,this.min=void 0,this.step=void 0,this.value=void 0}inputted(t){this.value=t.target.value}static get styles(){return[super.styles,a(ro||(ro=io`
|
|
436
|
+
:host {
|
|
437
|
+
---decidables-spinner-font-size: var(--decidables-spinner-font-size, 1.125rem);
|
|
438
|
+
---decidables-spinner-input-width: var(--decidables-spinner-input-width, 4rem);
|
|
439
|
+
---decidables-spinner-prefix: var(--decidables-spinner-prefix, "");
|
|
440
|
+
|
|
441
|
+
display: block;
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
label {
|
|
445
|
+
position: relative;
|
|
446
|
+
display: flex;
|
|
447
|
+
|
|
448
|
+
flex-direction: column;
|
|
449
|
+
|
|
450
|
+
align-items: center;
|
|
451
|
+
|
|
452
|
+
margin: 0;
|
|
453
|
+
|
|
454
|
+
font-size: 0.75rem;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
label::before {
|
|
458
|
+
position: absolute;
|
|
459
|
+
bottom: 1px;
|
|
460
|
+
left: calc(50% - var(---decidables-spinner-input-width) / 2 + 0.25rem);
|
|
461
|
+
|
|
462
|
+
font-size: var(---decidables-spinner-font-size);
|
|
463
|
+
line-height: normal;
|
|
464
|
+
|
|
465
|
+
content: var(---decidables-spinner-prefix);
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
input[type=number] {
|
|
469
|
+
width: var(---decidables-spinner-input-width);
|
|
470
|
+
|
|
471
|
+
font-family: var(---font-family-base);
|
|
472
|
+
font-size: var(---decidables-spinner-font-size);
|
|
473
|
+
color: inherit;
|
|
474
|
+
text-align: right;
|
|
475
|
+
|
|
476
|
+
background: none;
|
|
477
|
+
border: 0;
|
|
478
|
+
border-radius: 0;
|
|
479
|
+
outline: none;
|
|
480
|
+
box-shadow: var(---shadow-2);
|
|
481
|
+
|
|
482
|
+
-webkit-appearance: none; /* stylelint-disable-line property-no-vendor-prefix */
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
input[type=number]:hover {
|
|
486
|
+
box-shadow: var(---shadow-4);
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
input[type=number]:focus,
|
|
490
|
+
input[type=number]:active {
|
|
491
|
+
box-shadow: var(---shadow-8);
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
input[type=number]:disabled {
|
|
495
|
+
color: var(---color-text);
|
|
496
|
+
|
|
497
|
+
border: 0;
|
|
498
|
+
box-shadow: none;
|
|
499
|
+
|
|
500
|
+
/* HACK: Use correct text color in Safari */
|
|
501
|
+
-webkit-opacity: 1;
|
|
502
|
+
/* HACK: Hide spinners in disabled input for Firefox and Safari */
|
|
503
|
+
-moz-appearance: textfield; /* stylelint-disable-line property-no-vendor-prefix */
|
|
504
|
+
/* HACK: Use correct text color in Safari */
|
|
505
|
+
-webkit-text-fill-color: var(---color-text);
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
/* HACK: Hide spinners in disabled input for Firefox and Safari */
|
|
509
|
+
input[type=number]:disabled::-webkit-outer-spin-button,
|
|
510
|
+
input[type=number]:disabled::-webkit-inner-spin-button {
|
|
511
|
+
margin: 0;
|
|
512
|
+
-webkit-appearance: none; /* stylelint-disable-line property-no-vendor-prefix */
|
|
513
|
+
}
|
|
514
|
+
`))]}render(){return z(no||(no=io`
|
|
515
|
+
<label>
|
|
516
|
+
<slot></slot>
|
|
517
|
+
<input ?disabled=${0} type="number" min=${0} max=${0} step=${0} .value=${0} @input=${0}>
|
|
518
|
+
</label>
|
|
519
|
+
`),this.disabled,Qa(this.min),Qa(this.max),Qa(this.step),this.value,this.inputted.bind(this))}});let so,ao,oo=t=>t;customElements.define("decidables-switch",class extends Za{static get properties(){return{checked:{attribute:"checked",type:Boolean,reflect:!0},disabled:{attribute:"disabled",type:Boolean,reflect:!0}}}constructor(){super(),this.checked=!1,this.disabled=!1}changed(t){this.checked=t.target.checked,this.dispatchEvent(new CustomEvent("change",{detail:{checked:this.checked},bubbles:!0}))}static get styles(){return[super.styles,a(so||(so=oo`
|
|
520
|
+
:host {
|
|
521
|
+
display: flex;
|
|
522
|
+
|
|
523
|
+
flex-direction: column;
|
|
524
|
+
|
|
525
|
+
align-items: center;
|
|
526
|
+
justify-content: center;
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
/* Adapted from https://codepen.io/guuslieben/pen/YyPRVP */
|
|
530
|
+
input[type=checkbox] {
|
|
531
|
+
/* visuallyhidden: https://github.com/h5bp/html5-boilerplate/blob/master/dist/doc/css.md */
|
|
532
|
+
position: absolute;
|
|
533
|
+
|
|
534
|
+
width: 1px;
|
|
535
|
+
height: 1px;
|
|
536
|
+
padding: 0;
|
|
537
|
+
margin: -1px;
|
|
538
|
+
overflow: hidden;
|
|
539
|
+
clip: rect(0 0 0 0);
|
|
540
|
+
|
|
541
|
+
white-space: nowrap;
|
|
542
|
+
|
|
543
|
+
border: 0;
|
|
544
|
+
clip-path: inset(100%); /* May cause a performance issue: https://github.com/h5bp/html5-boilerplate/issues/2021 */
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
input[type=checkbox] + label {
|
|
548
|
+
order: 1;
|
|
549
|
+
|
|
550
|
+
margin: 0 0.25rem 0.25rem;
|
|
551
|
+
|
|
552
|
+
font-weight: 400;
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
input[type=checkbox] + label + label {
|
|
556
|
+
position: relative;
|
|
557
|
+
|
|
558
|
+
min-width: 24px;
|
|
559
|
+
padding: 0 0 36px;
|
|
560
|
+
margin: 0.25rem 0.25rem 0;
|
|
561
|
+
|
|
562
|
+
font-weight: 400;
|
|
563
|
+
|
|
564
|
+
outline: none;
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
input[type=checkbox] + label + label::before,
|
|
568
|
+
input[type=checkbox] + label + label::after {
|
|
569
|
+
position: absolute;
|
|
570
|
+
|
|
571
|
+
left: 50%;
|
|
572
|
+
|
|
573
|
+
margin: 0;
|
|
574
|
+
|
|
575
|
+
content: "";
|
|
576
|
+
|
|
577
|
+
outline: 0;
|
|
578
|
+
|
|
579
|
+
transition: all var(---transition-duration) ease;
|
|
580
|
+
transform: translate(-50%, 0);
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
input[type=checkbox] + label + label::before {
|
|
584
|
+
bottom: 1px;
|
|
585
|
+
|
|
586
|
+
width: 8px;
|
|
587
|
+
height: 34px;
|
|
588
|
+
|
|
589
|
+
background-color: var(---color-element-disabled);
|
|
590
|
+
border-radius: 4px;
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
input[type=checkbox] + label + label::after {
|
|
594
|
+
bottom: 0;
|
|
595
|
+
|
|
596
|
+
width: 18px;
|
|
597
|
+
height: 18px;
|
|
598
|
+
|
|
599
|
+
background-color: var(---color-element-enabled);
|
|
600
|
+
border-radius: 50%;
|
|
601
|
+
box-shadow: var(---shadow-2);
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
input[type=checkbox]:checked + label + label::after {
|
|
605
|
+
transform: translate(-50%, -100%);
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
input[type=checkbox]:disabled + label + label::after {
|
|
609
|
+
background-color: var(---color-element-disabled);
|
|
610
|
+
box-shadow: none;
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
input[type=checkbox]:enabled + label,
|
|
614
|
+
input[type=checkbox]:enabled + label + label {
|
|
615
|
+
cursor: pointer;
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
input[type=checkbox]:enabled + label:hover + label::after,
|
|
619
|
+
input[type=checkbox]:enabled + label + label:hover::after {
|
|
620
|
+
box-shadow: var(---shadow-4);
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
input[type=checkbox]:enabled + label:active + label::after,
|
|
624
|
+
input[type=checkbox]:enabled + label + label:active::after {
|
|
625
|
+
box-shadow: var(---shadow-8);
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
/* stylelint-disable-next-line selector-max-compound-selectors */
|
|
629
|
+
:host(.keyboard) input[type=checkbox]:enabled:focus + label + label::after {
|
|
630
|
+
box-shadow: var(---shadow-4);
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
/* stylelint-disable-next-line selector-max-compound-selectors */
|
|
634
|
+
:host(.keyboard) input[type=checkbox]:enabled:focus + label + label:active::after,
|
|
635
|
+
:host(.keyboard) input[type=checkbox]:enabled:focus:active + label + label::after {
|
|
636
|
+
box-shadow: var(---shadow-8);
|
|
637
|
+
}
|
|
638
|
+
`))]}render(){return z(ao||(ao=oo`
|
|
639
|
+
<input type="checkbox" id="switch" ?checked=${0} ?disabled=${0} @change=${0}>
|
|
640
|
+
<label for="switch">
|
|
641
|
+
<slot name="off-label"></slot>
|
|
642
|
+
</label>
|
|
643
|
+
<label for="switch">
|
|
644
|
+
<slot></slot>
|
|
645
|
+
</label>
|
|
646
|
+
`),this.checked,this.disabled,this.changed.bind(this))}});let lo,co,ho=t=>t;customElements.define("decidables-toggle",class extends Za{static get properties(){return{disabled:{attribute:"disabled",type:Boolean,reflect:!0}}}constructor(){super(),this.disabled=!1}static get styles(){return[super.styles,a(lo||(lo=ho`
|
|
647
|
+
fieldset {
|
|
648
|
+
display: flex;
|
|
649
|
+
|
|
650
|
+
flex-direction: column;
|
|
651
|
+
|
|
652
|
+
align-items: stretch;
|
|
653
|
+
justify-content: center;
|
|
654
|
+
|
|
655
|
+
margin: 0.25rem;
|
|
656
|
+
|
|
657
|
+
border: 0;
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
legend {
|
|
661
|
+
text-align: center;
|
|
662
|
+
}
|
|
663
|
+
`))]}render(){return z(co||(co=ho`
|
|
664
|
+
<fieldset ?disabled=${0}>
|
|
665
|
+
<legend><slot name="label"></slot></legend>
|
|
666
|
+
<slot></slot>
|
|
667
|
+
</fieldset>
|
|
668
|
+
`),this.disabled)}});let uo,fo,po=t=>t;customElements.define("decidables-toggle-option",class extends Za{static get properties(){return{checked:{attribute:"checked",type:Boolean,reflect:!0},disabled:{attribute:"disabled",type:Boolean,reflect:!0},name:{attribute:"name",type:String,reflect:!0},value:{attribute:"value",type:String,reflect:!0}}}constructor(){super(),this.checked=!1,this.disabled=!1,this.name=void 0,this.value=void 0}changed(t){this.checked=t.target.checked,this.dispatchEvent(new CustomEvent("change",{detail:{checked:this.checked,value:this.value},bubbles:!0}))}static get styles(){return[super.styles,a(uo||(uo=po`
|
|
669
|
+
:host {
|
|
670
|
+
display: flex;
|
|
671
|
+
}
|
|
672
|
+
|
|
673
|
+
input[type=radio] {
|
|
674
|
+
/* visuallyhidden: https://github.com/h5bp/html5-boilerplate/blob/master/dist/doc/css.md */
|
|
675
|
+
position: absolute;
|
|
676
|
+
|
|
677
|
+
width: 1px;
|
|
678
|
+
height: 1px;
|
|
679
|
+
padding: 0;
|
|
680
|
+
margin: -1px;
|
|
681
|
+
overflow: hidden;
|
|
682
|
+
clip: rect(0 0 0 0);
|
|
683
|
+
|
|
684
|
+
white-space: nowrap;
|
|
685
|
+
|
|
686
|
+
border: 0;
|
|
687
|
+
clip-path: inset(100%); /* May cause a performance issue: https://github.com/h5bp/html5-boilerplate/issues/2021 */
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
input[type=radio] + label {
|
|
691
|
+
width: 100%;
|
|
692
|
+
padding: 0.375rem 0.75rem;
|
|
693
|
+
|
|
694
|
+
font-family: var(---font-family-base);
|
|
695
|
+
font-size: 1.125rem;
|
|
696
|
+
line-height: 1.5;
|
|
697
|
+
color: var(---color-text-inverse);
|
|
698
|
+
text-align: center;
|
|
699
|
+
|
|
700
|
+
cursor: pointer;
|
|
701
|
+
|
|
702
|
+
background-color: var(---color-element-enabled);
|
|
703
|
+
border: 0;
|
|
704
|
+
border-radius: 0;
|
|
705
|
+
outline: none;
|
|
706
|
+
|
|
707
|
+
box-shadow: var(---shadow-2);
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
input[type=radio]:checked + label {
|
|
711
|
+
background-color: var(---color-element-selected);
|
|
712
|
+
outline: none;
|
|
713
|
+
box-shadow: var(---shadow-2);
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
input[type=radio] + label:hover {
|
|
717
|
+
z-index: 1;
|
|
718
|
+
|
|
719
|
+
outline: none;
|
|
720
|
+
box-shadow: var(---shadow-4);
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
input[type=radio] + label:active {
|
|
724
|
+
z-index: 2;
|
|
725
|
+
|
|
726
|
+
outline: none;
|
|
727
|
+
box-shadow: var(---shadow-8);
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
:host(:first-of-type) input[type=radio] + label {
|
|
731
|
+
border-top-left-radius: 0.25rem;
|
|
732
|
+
border-top-right-radius: 0.25rem;
|
|
733
|
+
}
|
|
734
|
+
|
|
735
|
+
:host(:last-of-type) input[type=radio] + label {
|
|
736
|
+
border-bottom-right-radius: 0.25rem;
|
|
737
|
+
border-bottom-left-radius: 0.25rem;
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
:host(.keyboard) input[type=radio]:focus + label {
|
|
741
|
+
z-index: 1;
|
|
742
|
+
|
|
743
|
+
outline: none;
|
|
744
|
+
box-shadow: var(---shadow-4);
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
:host(.keyboard) input[type=radio]:focus:checked + label {
|
|
748
|
+
z-index: 1;
|
|
749
|
+
|
|
750
|
+
background-color: var(---color-element-selected);
|
|
751
|
+
outline: none;
|
|
752
|
+
box-shadow: var(---shadow-4);
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
:host(.keyboard) input[type=radio]:focus + label:active {
|
|
756
|
+
z-index: 2;
|
|
757
|
+
|
|
758
|
+
outline: none;
|
|
759
|
+
box-shadow: var(---shadow-8);
|
|
760
|
+
}
|
|
761
|
+
`))]}render(){return z(fo||(fo=po`
|
|
762
|
+
<input type="radio" id="toggle-option" name=${0} value=${0} .checked=${0} @change=${0}>
|
|
763
|
+
<label for="toggle-option">
|
|
764
|
+
<slot></slot>
|
|
765
|
+
</label>
|
|
766
|
+
`),this.name,this.value,this.checked,this.changed.bind(this))}});const mo={fromAttribute:t=>new Set(t.split(/\s+/)),toAttribute:t=>t.size?[...t].join(" "):null};let bo,go=t=>t;class vo extends Za{static get properties(){return{interactive:{attribute:"interactive",type:Boolean,reflect:!0}}}constructor(){super(),this.interactive=!1}static get colors(){return{h:Na[2],m:Na[4],fa:Na[1],cr:Na[0],hr:Na[5],far:Na[3],acc:Na[8],d:Na[7],c:Na[6],s:"#4545d0",present:"#f032e6",absent:"#10dbc9",correct:"#ffffff",error:"#000000",nr:"#cccccc"}}static get lights(){return Object.keys(vo.colors).reduce(((t,e)=>(t[e]=jr(vo.colors[e],"#ffffff")(.5),t)),{})}static get darks(){return Object.keys(vo.colors).reduce(((t,e)=>(t[e]=jr(vo.colors[e],"#000000")(.5),t)),{})}static get styles(){return[super.styles,a(bo||(bo=go`
|
|
767
|
+
:host {
|
|
768
|
+
---color-h: var(--color-h, ${0});
|
|
769
|
+
---color-m: var(--color-m, ${0});
|
|
770
|
+
---color-fa: var(--color-fa, ${0});
|
|
771
|
+
---color-cr: var(--color-cr, ${0});
|
|
772
|
+
---color-hr: var(--color-hr, ${0});
|
|
773
|
+
---color-far: var(--color-far, ${0});
|
|
774
|
+
---color-acc: var(--color-acc, ${0});
|
|
775
|
+
---color-d: var(--color-d, ${0});
|
|
776
|
+
---color-c: var(--color-c, ${0});
|
|
777
|
+
---color-s: var(--color-s, ${0});
|
|
778
|
+
---color-present: var(--color-present, ${0});
|
|
779
|
+
---color-absent: var(--color-absent, ${0});
|
|
780
|
+
---color-correct: var(--color-correct, ${0});
|
|
781
|
+
---color-error: var(--color-error, ${0});
|
|
782
|
+
---color-nr: var(--color-nr, ${0});
|
|
783
|
+
|
|
784
|
+
---color-h-light: var(--color-h-light, ${0});
|
|
785
|
+
---color-m-light: var(--color-m-light, ${0});
|
|
786
|
+
---color-fa-light: var(--color-fa-light, ${0});
|
|
787
|
+
---color-cr-light: var(--color-cr-light, ${0});
|
|
788
|
+
---color-hr-light: var(--color-hr-light, ${0});
|
|
789
|
+
---color-far-light: var(--color-far-light, ${0});
|
|
790
|
+
---color-acc-light: var(--color-acc-light, ${0});
|
|
791
|
+
---color-d-light: var(--color-d-light, ${0});
|
|
792
|
+
---color-c-light: var(--color-c-light, ${0});
|
|
793
|
+
---color-s-light: var(--color-s-light, ${0});
|
|
794
|
+
---color-present-light: var(--color-present-light, ${0});
|
|
795
|
+
---color-absent-light: var(--color-absent-light, ${0});
|
|
796
|
+
---color-correct-light: var(--color-correct-light, ${0});
|
|
797
|
+
---color-error-light: var(--color-error-light, ${0});
|
|
798
|
+
---color-nr-light: var(--color-nr-light, ${0});
|
|
799
|
+
|
|
800
|
+
---color-h-dark: var(--color-h-dark, ${0});
|
|
801
|
+
---color-m-dark: var(--color-m-dark, ${0});
|
|
802
|
+
---color-fa-dark: var(--color-fa-dark, ${0});
|
|
803
|
+
---color-cr-dark: var(--color-cr-dark, ${0});
|
|
804
|
+
---color-hr-dark: var(--color-hr-dark, ${0});
|
|
805
|
+
---color-far-dark: var(--color-far-dark, ${0});
|
|
806
|
+
---color-acc-dark: var(--color-acc-dark, ${0});
|
|
807
|
+
---color-d-dark: var(--color-d-dark, ${0});
|
|
808
|
+
---color-c-dark: var(--color-c-dark, ${0});
|
|
809
|
+
---color-s-dark: var(--color-s-dark, ${0});
|
|
810
|
+
---color-present-dark: var(--color-present-dark, ${0});
|
|
811
|
+
---color-absent-dark: var(--color-absent-dark, ${0});
|
|
812
|
+
---color-correct-dark: var(--color-correct-dark, ${0});
|
|
813
|
+
---color-error-dark: var(--color-error-dark, ${0});
|
|
814
|
+
---color-nr-dark: var(--color-nr-dark, ${0});
|
|
815
|
+
}
|
|
816
|
+
`),s(this.colors.h),s(this.colors.m),s(this.colors.fa),s(this.colors.cr),s(this.colors.hr),s(this.colors.far),s(this.colors.acc),s(this.colors.d),s(this.colors.c),s(this.colors.s),s(this.colors.present),s(this.colors.absent),s(this.colors.correct),s(this.colors.error),s(this.colors.nr),s(this.lights.h),s(this.lights.m),s(this.lights.fa),s(this.lights.cr),s(this.lights.hr),s(this.lights.far),s(this.lights.acc),s(this.lights.d),s(this.lights.c),s(this.lights.s),s(this.lights.present),s(this.lights.absent),s(this.lights.correct),s(this.lights.error),s(this.lights.nr),s(this.darks.h),s(this.darks.m),s(this.darks.fa),s(this.darks.cr),s(this.darks.hr),s(this.darks.far),s(this.darks.acc),s(this.darks.d),s(this.darks.c),s(this.darks.s),s(this.darks.present),s(this.darks.absent),s(this.darks.correct),s(this.darks.error),s(this.darks.nr))]}}let yo,wo,xo=t=>t;class ko extends vo{static get properties(){return{coherence:{attribute:"coherence",type:Number,reflect:!0},count:{attribute:"count",type:Number,reflect:!0},probability:{attribute:"probability",type:Number,reflect:!0},duration:{attribute:"duration",type:Number,reflect:!0},wait:{attribute:"wait",type:Number,reflect:!0},iti:{attribute:"iti",type:Number,reflect:!0},trials:{attribute:"trials",type:Number,reflect:!0},running:{attribute:"running",type:Boolean,reflect:!0},direction:{attribute:!1,type:Number,reflect:!1},lifetime:{attribute:!1,type:Number,reflect:!1},speed:{attribute:!1,type:Number,reflect:!1},width:{attribute:!1,type:Number,reflect:!1},height:{attribute:!1,type:Number,reflect:!1},rem:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.coherence=.5,this.count=100,this.probability=.5,this.duration=2e3,this.wait=2e3,this.iti=2e3,this.trials=5,this.running=!1,this.direction=-1,this.lifetime=400,this.speed=50,this.width=NaN,this.height=NaN,this.rem=NaN,this.firstUpdate=!0,this.COHERENT=0,this.RANDOM=1,this.dots=[[],[]],this.trial=0,this.states=["resetted","iti","stimulus","wait","ended"],this.state="resetted",this.baseTime=0,this.pauseTime=0,this.startTime=0,this.lastTime=0,this.currentDirection=void 0,this.signals=["present","absent"],this.signal=void 0,this.runner=void 0,this.xScale=void 0,this.yScale=void 0}static get styles(){return[super.styles,a(yo||(yo=xo`
|
|
817
|
+
:host {
|
|
818
|
+
display: inline-block;
|
|
819
|
+
|
|
820
|
+
width: 10rem;
|
|
821
|
+
height: 10rem;
|
|
822
|
+
}
|
|
823
|
+
|
|
824
|
+
.main {
|
|
825
|
+
width: 100%;
|
|
826
|
+
height: 100%;
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
.background {
|
|
830
|
+
fill: var(---color-element-disabled);
|
|
831
|
+
stroke: none;
|
|
832
|
+
}
|
|
833
|
+
|
|
834
|
+
.outline {
|
|
835
|
+
fill: none;
|
|
836
|
+
stroke: var(---color-element-emphasis);
|
|
837
|
+
stroke-width: 2px;
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
.dot {
|
|
841
|
+
r: 2px;
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
.dots.coherent {
|
|
845
|
+
fill: var(---color-background);
|
|
846
|
+
}
|
|
847
|
+
|
|
848
|
+
.dots.random {
|
|
849
|
+
fill: var(---color-background);
|
|
850
|
+
}
|
|
851
|
+
|
|
852
|
+
.fixation {
|
|
853
|
+
stroke: var(---color-text);
|
|
854
|
+
stroke-width: 2px;
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
.query {
|
|
858
|
+
font-size: 1.75rem;
|
|
859
|
+
font-weight: 600;
|
|
860
|
+
}
|
|
861
|
+
`))]}render(){return z(wo||(wo=xo``))}getDimensions(){this.width=parseFloat(this.getComputedStyleValue("width"),10),this.height=parseFloat(this.getComputedStyleValue("height"),10),this.rem=parseFloat(getComputedStyle(document.documentElement).getPropertyValue("font-size"),10)}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.getDimensions.bind(this))}disconnectedCallback(){window.removeEventListener("resize",this.getDimensions.bind(this)),super.disconnectedCallback()}firstUpdated(t){super.firstUpdated(t),this.getDimensions()}update(t){if(super.update(t),Number.isNaN(this.width)||Number.isNaN(this.height)||Number.isNaN(this.rem))return;const e=this.width,r=this.height,n=Math.min(e,r),i=.25*this.rem,s=.25*this.rem,a=.25*this.rem,o=n-(i+s),l=n-(a+.25*this.rem);this.xScale=Ca().domain([-1,1]).range([0,l]),this.yScale=Ca().domain([1,-1]).range([0,o]);const c=Ge(this.renderRoot).selectAll(".main").data([{width:this.width,height:this.height,rem:this.rem}]),h=c.enter().append("svg").classed("main",!0),u=h.merge(c).attr("viewBox",`0 0 ${n} ${n}`);h.append("clipPath").attr("id","clip-rdk-task").append("circle"),u.select("clipPath circle").attr("cx",this.xScale(0)).attr("cy",this.yScale(0)).attr("r",this.xScale(1)-this.xScale(0));const d=h.append("g").classed("plot",!0),f=u.select(".plot").attr("transform",`translate(${a}, ${i})`),p=d.append("g").classed("underlayer",!0),m=f.select(".underlayer");p.append("circle").classed("background",!0),m.select(".background").attr("cx",this.xScale(0)).attr("cy",this.yScale(0)).attr("r",this.xScale(1)-this.xScale(0)),d.append("g").classed("content",!0).attr("clip-path","url(#clip-rdk-task)");f.select(".content").selectAll(".dots").data([[],[]]).enter().append("g").classed("dots",!0).classed("coherent",((t,e)=>e===this.COHERENT)).classed("random",((t,e)=>e===this.RANDOM));const b=d.append("g").classed("overlayer",!0),g=f.select(".overlayer");b.append("circle").classed("outline",!0),g.select(".outline").attr("cx",this.xScale(0)).attr("cy",this.yScale(0)).attr("r",this.xScale(1)-this.yScale(0)),(this.firstUpdate||t.has("running"))&&(this.running?(this.pauseTime&&(this.baseTime+=vn()-this.pauseTime,this.pauseTime=0),this.runner=function(t,e,r){var n=new wn,i=e;return null==e?(n.restart(t,e,r),n):(n._restart=n.restart,n.restart=function(t,e,r){e=+e,r=null==r?vn():+r,n._restart((function s(a){a+=i,n._restart(s,i+=e,r),t(a)}),e,r)},n.restart(t,e,r),n)}(this.run.bind(this),20)):void 0!==this.runner&&(this.runner.stop(),this.pauseTime=vn())),this.firstUpdate=!1}reset(){void 0!==this.runner&&this.runner.stop(),this.running=!1,this.trial=0,this.state="resetted",this.baseTime=0,this.pauseTime=0,this.startTime=0,this.lastTime=0,this.signal=void 0,this.currentDirection=void 0;const t=Ge(this.renderRoot).select(".content").selectAll(".dots").data([[],[]]).selectAll(".dot").data((t=>t));t.exit().remove();Ge(this.renderRoot).select(".content").selectAll(".fixation").data([]).exit().remove();Ge(this.renderRoot).select(".content").selectAll(".query").data([]).exit().remove()}run(){const t=vn(),e=this.baseTime?t-this.baseTime:0,r=this.baseTime?e-this.startTime:0,n=this.baseTime?e-this.lastTime:0;this.lastTime=e;let i=!1;if("resetted"===this.state?(this.state="iti",this.baseTime=t,this.startTime=0,this.dispatchEvent(new CustomEvent("rdk-block-start",{detail:{trials:this.trials},bubbles:!0}))):"iti"===this.state&&r>=this.iti?(i=!0,this.trial+=1,this.state="stimulus",this.startTime=e,this.signal=Math.random()<this.probability?"present":"absent",this.currentDirection="absent"===this.signal?void 0:this.direction>=0?this.direction:360*Math.random(),this.dispatchEvent(new CustomEvent("rdk-trial-start",{detail:{trials:this.trials,duration:this.duration,wait:this.wait,iti:this.iti,trial:this.trial,signal:this.signal},bubbles:!0}))):"stimulus"===this.state&&r>=this.duration?(this.state="wait",this.startTime=e,this.dispatchEvent(new CustomEvent("rdk-trial-middle",{detail:{trials:this.trials,duration:this.duration,wait:this.wait,iti:this.iti,trial:this.trial,signal:this.signal},bubbles:!0}))):"wait"===this.state&&r>=this.wait&&(this.dispatchEvent(new CustomEvent("rdk-trial-end",{detail:{trials:this.trials,duration:this.duration,wait:this.wait,iti:this.iti,trial:this.trial,signal:this.signal},bubbles:!0})),this.trial>=this.trials?(this.runner.stop(),this.running=!1,this.state="ended",this.baseTime=0,this.pauseTime=0,this.startTime=0,this.lastTime=0,this.signal=void 0,this.currentDirection=void 0,this.dispatchEvent(new CustomEvent("rdk-block-end",{detail:{trials:this.trial},bubbles:!0}))):(this.state="iti",this.startTime=e)),"stimulus"===this.state){this.dots[this.COHERENT].length="present"===this.signal?Math.round(this.count*this.coherence):0,this.dots[this.RANDOM].length="present"===this.signal?this.count-this.dots[this.COHERENT].length:this.count;for(let t=0;t<this.dots.length;t+=1)for(let r=0;r<this.dots[t].length;r+=1){const s=void 0===this.dots[t][r];s&&(this.dots[t][r]={});const a=this.dots[t][r];if(i||s){a.direction=t===this.RANDOM?360*Math.random():this.currentDirection,a.birth=e-Math.floor(Math.random()*this.lifetime);const r=2*Math.random()*Math.PI,n=Math.sqrt(Math.random());a.x=this.xScale(n*Math.cos(r)),a.y=this.yScale(n*Math.sin(r))}else if(e>a.birth+this.lifetime){a.birth+=this.lifetime,a.direction=t===this.RANDOM?360*Math.random():this.currentDirection;const e=2*Math.random()*Math.PI,r=Math.sqrt(Math.random());a.x=this.xScale(r*Math.cos(e)),a.y=this.yScale(r*Math.sin(e))}else{t===this.COHERENT&&(a.direction=this.currentDirection);const e=a.direction*(Math.PI/180);a.dx=this.speed*(n/1e3)*Math.cos(e),a.dy=this.speed*(n/1e3)*Math.sin(e),a.x+=a.dx,a.y+=a.dy;(a.x-this.xScale(0))**2+(a.y-this.yScale(0))**2>(this.xScale(1)-this.xScale(0))**2&&(a.x=-(a.x-this.xScale(0))+this.xScale(0),a.y=-(a.y-this.yScale(0))+this.yScale(0))}}}const s=Ge(this.renderRoot).select(".content").selectAll(".fixation").data("iti"===this.state?[!0]:[]),a=s.enter().append("g").classed("fixation",!0);a.append("line").attr("x1",this.xScale(-.1)).attr("y1",this.xScale(0)).attr("x2",this.xScale(.1)).attr("y2",this.xScale(0)),a.append("line").attr("x1",this.xScale(0)).attr("y1",this.xScale(-.1)).attr("x2",this.xScale(0)).attr("y2",this.xScale(.1)),s.exit().remove();const o=Ge(this.renderRoot).select(".content").selectAll(".dots").data("stimulus"===this.state?this.dots:[[],[]]).selectAll(".dot").data((t=>t));o.enter().append("circle").classed("dot",!0).merge(o).attr("cx",(t=>t.x)).attr("cy",(t=>t.y)),o.exit().remove();const l=Ge(this.renderRoot).select(".content").selectAll(".query").data("wait"===this.state?[!0]:[]);l.enter().append("g").classed("query",!0).append("text").attr("x",this.xScale(0)).attr("y",this.xScale(0)).attr("text-anchor","middle").attr("alignment-baseline","middle").text("?"),l.exit().remove()}}customElements.define("rdk-task",ko);"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var $o=function(t){var e={exports:{}};return t(e,e.exports),e.exports}((function(t,e){var r;t.exports=(r=function(t,e){var r=Array.prototype.concat,n=Array.prototype.slice,i=Object.prototype.toString;function s(e,r){var n=e>r?e:r;return t.pow(10,17-~~(t.log(n>0?n:-n)*t.LOG10E))}var a=Array.isArray||function(t){return"[object Array]"===i.call(t)};function o(t){return"[object Function]"===i.call(t)}function l(t){return"number"==typeof t&&t-t==0}function c(t){return r.apply([],t)}function h(){return new h._init(arguments)}function u(){return 0}function d(){return 1}function f(t,e){return t===e?1:0}h.fn=h.prototype,h._init=function(t){if(a(t[0]))if(a(t[0][0])){o(t[1])&&(t[0]=h.map(t[0],t[1]));for(var e=0;e<t[0].length;e++)this[e]=t[0][e];this.length=t[0].length}else this[0]=o(t[1])?h.map(t[0],t[1]):t[0],this.length=1;else if(l(t[0]))this[0]=h.seq.apply(null,t),this.length=1;else{if(t[0]instanceof h)return h(t[0].toArray());this[0]=[],this.length=1}return this},h._init.prototype=h.prototype,h._init.constructor=h,h.utils={calcRdx:s,isArray:a,isFunction:o,isNumber:l,toVector:c},h._random_fn=t.random,h.setRandom=function(t){if("function"!=typeof t)throw new TypeError("fn is not a function");h._random_fn=t},h.extend=function(t){var e,r;if(1===arguments.length){for(r in t)h[r]=t[r];return this}for(e=1;e<arguments.length;e++)for(r in arguments[e])t[r]=arguments[e][r];return t},h.rows=function(t){return t.length||1},h.cols=function(t){return t[0].length||1},h.dimensions=function(t){return{rows:h.rows(t),cols:h.cols(t)}},h.row=function(t,e){return a(e)?e.map((function(e){return h.row(t,e)})):t[e]},h.rowa=function(t,e){return h.row(t,e)},h.col=function(t,e){if(a(e)){var r=h.arange(t.length).map((function(){return new Array(e.length)}));return e.forEach((function(e,n){h.arange(t.length).forEach((function(i){r[i][n]=t[i][e]}))})),r}for(var n=new Array(t.length),i=0;i<t.length;i++)n[i]=[t[i][e]];return n},h.cola=function(t,e){return h.col(t,e).map((function(t){return t[0]}))},h.diag=function(t){for(var e=h.rows(t),r=new Array(e),n=0;n<e;n++)r[n]=[t[n][n]];return r},h.antidiag=function(t){for(var e=h.rows(t)-1,r=new Array(e),n=0;e>=0;e--,n++)r[n]=[t[n][e]];return r},h.transpose=function(t){var e,r,n,i,s,o=[];for(a(t[0])||(t=[t]),r=t.length,n=t[0].length,s=0;s<n;s++){for(e=new Array(r),i=0;i<r;i++)e[i]=t[i][s];o.push(e)}return 1===o.length?o[0]:o},h.map=function(t,e,r){var n,i,s,o,l;for(a(t[0])||(t=[t]),i=t.length,s=t[0].length,o=r?t:new Array(i),n=0;n<i;n++)for(o[n]||(o[n]=new Array(s)),l=0;l<s;l++)o[n][l]=e(t[n][l],n,l);return 1===o.length?o[0]:o},h.cumreduce=function(t,e,r){var n,i,s,o,l;for(a(t[0])||(t=[t]),i=t.length,s=t[0].length,o=r?t:new Array(i),n=0;n<i;n++)for(o[n]||(o[n]=new Array(s)),s>0&&(o[n][0]=t[n][0]),l=1;l<s;l++)o[n][l]=e(o[n][l-1],t[n][l]);return 1===o.length?o[0]:o},h.alter=function(t,e){return h.map(t,e,!0)},h.create=function(t,e,r){var n,i,s=new Array(t);for(o(e)&&(r=e,e=t),n=0;n<t;n++)for(s[n]=new Array(e),i=0;i<e;i++)s[n][i]=r(n,i);return s},h.zeros=function(t,e){return l(e)||(e=t),h.create(t,e,u)},h.ones=function(t,e){return l(e)||(e=t),h.create(t,e,d)},h.rand=function(t,e){return l(e)||(e=t),h.create(t,e,h._random_fn)},h.identity=function(t,e){return l(e)||(e=t),h.create(t,e,f)},h.symmetric=function(t){var e,r,n=t.length;if(t.length!==t[0].length)return!1;for(e=0;e<n;e++)for(r=0;r<n;r++)if(t[r][e]!==t[e][r])return!1;return!0},h.clear=function(t){return h.alter(t,u)},h.seq=function(t,e,r,n){o(n)||(n=!1);var i,a=[],l=s(t,e),c=(e*l-t*l)/((r-1)*l),h=t;for(i=0;h<=e&&i<r;h=(t*l+c*l*++i)/l)a.push(n?n(h,i):h);return a},h.arange=function(t,r,n){var i,s=[];if(n=n||1,r===e&&(r=t,t=0),t===r||0===n)return[];if(t<r&&n<0)return[];if(t>r&&n>0)return[];if(n>0)for(i=t;i<r;i+=n)s.push(i);else for(i=t;i>r;i+=n)s.push(i);return s},h.slice=function(){function t(t,r,n,i){var s,a=[],o=t.length;if(r===e&&n===e&&i===e)return h.copy(t);if(i=i||1,(r=(r=r||0)>=0?r:o+r)===(n=(n=n||t.length)>=0?n:o+n)||0===i)return[];if(r<n&&i<0)return[];if(r>n&&i>0)return[];if(i>0)for(s=r;s<n;s+=i)a.push(t[s]);else for(s=r;s>n;s+=i)a.push(t[s]);return a}function r(e,r){var n,i;return l((r=r||{}).row)?l(r.col)?e[r.row][r.col]:t(h.rowa(e,r.row),(n=r.col||{}).start,n.end,n.step):l(r.col)?t(h.cola(e,r.col),(i=r.row||{}).start,i.end,i.step):(i=r.row||{},n=r.col||{},t(e,i.start,i.end,i.step).map((function(e){return t(e,n.start,n.end,n.step)})))}return r}(),h.sliceAssign=function(r,n,i){var s,a;if(l(n.row)){if(l(n.col))return r[n.row][n.col]=i;n.col=n.col||{},n.col.start=n.col.start||0,n.col.end=n.col.end||r[0].length,n.col.step=n.col.step||1,s=h.arange(n.col.start,t.min(r.length,n.col.end),n.col.step);var o=n.row;return s.forEach((function(t,e){r[o][t]=i[e]})),r}if(l(n.col)){n.row=n.row||{},n.row.start=n.row.start||0,n.row.end=n.row.end||r.length,n.row.step=n.row.step||1,a=h.arange(n.row.start,t.min(r[0].length,n.row.end),n.row.step);var c=n.col;return a.forEach((function(t,e){r[t][c]=i[e]})),r}return i[0].length===e&&(i=[i]),n.row.start=n.row.start||0,n.row.end=n.row.end||r.length,n.row.step=n.row.step||1,n.col.start=n.col.start||0,n.col.end=n.col.end||r[0].length,n.col.step=n.col.step||1,a=h.arange(n.row.start,t.min(r.length,n.row.end),n.row.step),s=h.arange(n.col.start,t.min(r[0].length,n.col.end),n.col.step),a.forEach((function(t,e){s.forEach((function(n,s){r[t][n]=i[e][s]}))})),r},h.diagonal=function(t){var e=h.zeros(t.length,t.length);return t.forEach((function(t,r){e[r][r]=t})),e},h.copy=function(t){return t.map((function(t){return l(t)?t:t.map((function(t){return t}))}))};var p=h.prototype;return p.length=0,p.push=Array.prototype.push,p.sort=Array.prototype.sort,p.splice=Array.prototype.splice,p.slice=Array.prototype.slice,p.toArray=function(){return this.length>1?n.call(this):n.call(this)[0]},p.map=function(t,e){return h(h.map(this,t,e))},p.cumreduce=function(t,e){return h(h.cumreduce(this,t,e))},p.alter=function(t){return h.alter(this,t),this},function(t){for(var e=0;e<t.length;e++)!function(t){p[t]=function(e){var r,n=this;return e?(setTimeout((function(){e.call(n,p[t].call(n))})),this):(r=h[t](this),a(r)?h(r):r)}}(t[e])}("transpose clear symmetric rows cols dimensions diag antidiag".split(" ")),function(t){for(var e=0;e<t.length;e++)!function(t){p[t]=function(e,r){var n=this;return r?(setTimeout((function(){r.call(n,p[t].call(n,e))})),this):h(h[t](this,e))}}(t[e])}("row col".split(" ")),function(t){for(var e=0;e<t.length;e++)!function(t){p[t]=function(){return h(h[t].apply(null,arguments))}}(t[e])}("create zeros ones rand identity".split(" ")),h}(Math),function(t,e){var r=t.utils.isFunction;function n(t,e){return t-e}function i(t,r,n){return e.max(r,e.min(t,n))}t.sum=function(t){for(var e=0,r=t.length;--r>=0;)e+=t[r];return e},t.sumsqrd=function(t){for(var e=0,r=t.length;--r>=0;)e+=t[r]*t[r];return e},t.sumsqerr=function(e){for(var r,n=t.mean(e),i=0,s=e.length;--s>=0;)i+=(r=e[s]-n)*r;return i},t.sumrow=function(t){for(var e=0,r=t.length;--r>=0;)e+=t[r];return e},t.product=function(t){for(var e=1,r=t.length;--r>=0;)e*=t[r];return e},t.min=function(t){for(var e=t[0],r=0;++r<t.length;)t[r]<e&&(e=t[r]);return e},t.max=function(t){for(var e=t[0],r=0;++r<t.length;)t[r]>e&&(e=t[r]);return e},t.unique=function(t){for(var e={},r=[],n=0;n<t.length;n++)e[t[n]]||(e[t[n]]=!0,r.push(t[n]));return r},t.mean=function(e){return t.sum(e)/e.length},t.meansqerr=function(e){return t.sumsqerr(e)/e.length},t.geomean=function(r){return e.pow(t.product(r),1/r.length)},t.median=function(t){var e=t.length,r=t.slice().sort(n);return 1&e?r[e/2|0]:(r[e/2-1]+r[e/2])/2},t.cumsum=function(e){return t.cumreduce(e,(function(t,e){return t+e}))},t.cumprod=function(e){return t.cumreduce(e,(function(t,e){return t*e}))},t.diff=function(t){var e,r=[],n=t.length;for(e=1;e<n;e++)r.push(t[e]-t[e-1]);return r},t.rank=function(t){var e,r=[],i={};for(e=0;e<t.length;e++)i[l=t[e]]?i[l]++:(i[l]=1,r.push(l));var s=r.sort(n),a={},o=1;for(e=0;e<s.length;e++){var l,c=i[l=s[e]],h=(o+(o+c-1))/2;a[l]=h,o+=c}return t.map((function(t){return a[t]}))},t.mode=function(t){var e,r=t.length,i=t.slice().sort(n),s=1,a=0,o=0,l=[];for(e=0;e<r;e++)i[e]===i[e+1]?s++:(s>a?(l=[i[e]],a=s,o=0):s===a&&(l.push(i[e]),o++),s=1);return 0===o?l[0]:l},t.range=function(e){return t.max(e)-t.min(e)},t.variance=function(e,r){return t.sumsqerr(e)/(e.length-(r?1:0))},t.pooledvariance=function(e){var r=e.reduce((function(e,r){return e+t.sumsqerr(r)}),0),n=e.reduce((function(t,e){return t+e.length}),0);return r/(n-e.length)},t.deviation=function(e){for(var r=t.mean(e),n=e.length,i=new Array(n),s=0;s<n;s++)i[s]=e[s]-r;return i},t.stdev=function(r,n){return e.sqrt(t.variance(r,n))},t.pooledstdev=function(r){return e.sqrt(t.pooledvariance(r))},t.meandev=function(r){for(var n=t.mean(r),i=[],s=r.length-1;s>=0;s--)i.push(e.abs(r[s]-n));return t.mean(i)},t.meddev=function(r){for(var n=t.median(r),i=[],s=r.length-1;s>=0;s--)i.push(e.abs(r[s]-n));return t.median(i)},t.coeffvar=function(e){return t.stdev(e)/t.mean(e)},t.quartiles=function(t){var r=t.length,i=t.slice().sort(n);return[i[e.round(r/4)-1],i[e.round(r/2)-1],i[e.round(3*r/4)-1]]},t.quantiles=function(t,r,s,a){var o,l,c,h,u,d=t.slice().sort(n),f=[r.length],p=t.length;for(void 0===s&&(s=3/8),void 0===a&&(a=3/8),o=0;o<r.length;o++)c=p*(l=r[o])+(s+l*(1-s-a)),h=e.floor(i(c,1,p-1)),u=i(c-h,0,1),f[o]=(1-u)*d[h-1]+u*d[h];return f},t.percentile=function(t,e,r){var i=t.slice().sort(n),s=e*(i.length+(r?1:-1))+(r?0:1),a=parseInt(s),o=s-a;return a+1<i.length?i[a-1]+o*(i[a]-i[a-1]):i[a-1]},t.percentileOfScore=function(t,e,r){var n,i,s=0,a=t.length,o=!1;for("strict"===r&&(o=!0),i=0;i<a;i++)n=t[i],(o&&n<e||!o&&n<=e)&&s++;return s/a},t.histogram=function(r,n){n=n||4;var i,s=t.min(r),a=(t.max(r)-s)/n,o=r.length,l=[];for(i=0;i<n;i++)l[i]=0;for(i=0;i<o;i++)l[e.min(e.floor((r[i]-s)/a),n-1)]+=1;return l},t.covariance=function(e,r){var n,i=t.mean(e),s=t.mean(r),a=e.length,o=new Array(a);for(n=0;n<a;n++)o[n]=(e[n]-i)*(r[n]-s);return t.sum(o)/(a-1)},t.corrcoeff=function(e,r){return t.covariance(e,r)/t.stdev(e,1)/t.stdev(r,1)},t.spearmancoeff=function(e,r){return e=t.rank(e),r=t.rank(r),t.corrcoeff(e,r)},t.stanMoment=function(r,n){for(var i=t.mean(r),s=t.stdev(r),a=r.length,o=0,l=0;l<a;l++)o+=e.pow((r[l]-i)/s,n);return o/r.length},t.skewness=function(e){return t.stanMoment(e,3)},t.kurtosis=function(e){return t.stanMoment(e,4)-3};var s=t.prototype;!function(e){for(var n=0;n<e.length;n++)!function(e){s[e]=function(n,i){var a=[],o=0,l=this;if(r(n)&&(i=n,n=!1),i)return setTimeout((function(){i.call(l,s[e].call(l,n))})),this;if(this.length>1){for(l=!0===n?this:this.transpose();o<l.length;o++)a[o]=t[e](l[o]);return a}return t[e](this[0],n)}}(e[n])}("cumsum cumprod".split(" ")),function(e){for(var n=0;n<e.length;n++)!function(e){s[e]=function(n,i){var a=[],o=0,l=this;if(r(n)&&(i=n,n=!1),i)return setTimeout((function(){i.call(l,s[e].call(l,n))})),this;if(this.length>1){for("sumrow"!==e&&(l=!0===n?this:this.transpose());o<l.length;o++)a[o]=t[e](l[o]);return!0===n?t[e](t.utils.toVector(a)):a}return t[e](this[0],n)}}(e[n])}("sum sumsqrd sumsqerr sumrow product min max unique mean meansqerr geomean median diff rank mode range variance deviation stdev meandev meddev coeffvar quartiles histogram skewness kurtosis".split(" ")),function(e){for(var n=0;n<e.length;n++)!function(e){s[e]=function(){var n,i=[],a=0,o=this,l=Array.prototype.slice.call(arguments);if(r(l[l.length-1])){n=l[l.length-1];var c=l.slice(0,l.length-1);return setTimeout((function(){n.call(o,s[e].apply(o,c))})),this}n=void 0;var h=function(r){return t[e].apply(o,[r].concat(l))};if(this.length>1){for(o=o.transpose();a<o.length;a++)i[a]=h(o[a]);return i}return h(this[0])}}(e[n])}("quantiles percentileOfScore".split(" "))}(r,Math),function(t,e){t.gammaln=function(t){var r,n,i,s=0,a=[76.18009172947146,-86.50532032941678,24.01409824083091,-1.231739572450155,.001208650973866179,-5395239384953e-18],o=1.000000000190015;for(i=(n=r=t)+5.5,i-=(r+.5)*e.log(i);s<6;s++)o+=a[s]/++n;return e.log(2.5066282746310007*o/r)-i},t.loggam=function(t){var r,n,i,s,a,o,l,c=[.08333333333333333,-.002777777777777778,.0007936507936507937,-.0005952380952380952,.0008417508417508418,-.001917526917526918,.00641025641025641,-.02955065359477124,.1796443723688307,-1.3924322169059];if(r=t,l=0,1==t||2==t)return 0;for(t<=7&&(r=t+(l=e.floor(7-t))),n=1/(r*r),i=2*e.PI,a=c[9],o=8;o>=0;o--)a*=n,a+=c[o];if(s=a/r+.5*e.log(i)+(r-.5)*e.log(r)-r,t<=7)for(o=1;o<=l;o++)s-=e.log(r-1),r-=1;return s},t.gammafn=function(t){var r,n,i,s,a=[-1.716185138865495,24.76565080557592,-379.80425647094563,629.3311553128184,866.9662027904133,-31451.272968848367,-36144.413418691176,66456.14382024054],o=[-30.8402300119739,315.35062697960416,-1015.1563674902192,-3107.771671572311,22538.11842098015,4755.846277527881,-134659.9598649693,-115132.2596755535],l=!1,c=0,h=0,u=0,d=t;if(t>171.6243769536076)return 1/0;if(d<=0){if(!(s=d%1+36e-17))return 1/0;l=(1&d?-1:1)*e.PI/e.sin(e.PI*s),d=1-d}for(i=d,n=d<1?d++:(d-=c=(0|d)-1)-1,r=0;r<8;++r)u=(u+a[r])*n,h=h*n+o[r];if(s=u/h+1,i<d)s/=i;else if(i>d)for(r=0;r<c;++r)s*=d,d++;return l&&(s=l/s),s},t.gammap=function(e,r){return t.lowRegGamma(e,r)*t.gammafn(e)},t.lowRegGamma=function(r,n){var i,s=t.gammaln(r),a=r,o=1/r,l=o,c=n+1-r,h=1/1e-30,u=1/c,d=u,f=1,p=-~(8.5*e.log(r>=1?r:1/r)+.4*r+17);if(n<0||r<=0)return NaN;if(n<r+1){for(;f<=p;f++)o+=l*=n/++a;return o*e.exp(-n+r*e.log(n)-s)}for(;f<=p;f++)d*=(u=1/(u=(i=-f*(f-r))*u+(c+=2)))*(h=c+i/h);return 1-d*e.exp(-n+r*e.log(n)-s)},t.factorialln=function(e){return e<0?NaN:t.gammaln(e+1)},t.factorial=function(e){return e<0?NaN:t.gammafn(e+1)},t.combination=function(r,n){return r>170||n>170?e.exp(t.combinationln(r,n)):t.factorial(r)/t.factorial(n)/t.factorial(r-n)},t.combinationln=function(e,r){return t.factorialln(e)-t.factorialln(r)-t.factorialln(e-r)},t.permutation=function(e,r){return t.factorial(e)/t.factorial(e-r)},t.betafn=function(r,n){if(!(r<=0||n<=0))return r+n>170?e.exp(t.betaln(r,n)):t.gammafn(r)*t.gammafn(n)/t.gammafn(r+n)},t.betaln=function(e,r){return t.gammaln(e)+t.gammaln(r)-t.gammaln(e+r)},t.betacf=function(t,r,n){var i,s,a,o,l=1e-30,c=1,h=r+n,u=r+1,d=r-1,f=1,p=1-h*t/u;for(e.abs(p)<l&&(p=l),o=p=1/p;c<=100&&(p=1+(s=c*(n-c)*t/((d+(i=2*c))*(r+i)))*p,e.abs(p)<l&&(p=l),f=1+s/f,e.abs(f)<l&&(f=l),o*=(p=1/p)*f,p=1+(s=-(r+c)*(h+c)*t/((r+i)*(u+i)))*p,e.abs(p)<l&&(p=l),f=1+s/f,e.abs(f)<l&&(f=l),o*=a=(p=1/p)*f,!(e.abs(a-1)<3e-7));c++);return o},t.gammapinv=function(r,n){var i,s,a,o,l,c,h=0,u=n-1,d=1e-8,f=t.gammaln(n);if(r>=1)return e.max(100,n+100*e.sqrt(n));if(r<=0)return 0;for(n>1?(l=e.log(u),c=e.exp(u*(l-1)-f),o=r<.5?r:1-r,i=(2.30753+.27061*(s=e.sqrt(-2*e.log(o))))/(1+s*(.99229+.04481*s))-s,r<.5&&(i=-i),i=e.max(.001,n*e.pow(1-1/(9*n)-i/(3*e.sqrt(n)),3))):i=r<(s=1-n*(.253+.12*n))?e.pow(r/s,1/n):1-e.log(1-(r-s)/(1-s));h<12;h++){if(i<=0)return 0;if((i-=s=(a=(t.lowRegGamma(n,i)-r)/(s=n>1?c*e.exp(-(i-u)+u*(e.log(i)-l)):e.exp(-i+u*e.log(i)-f)))/(1-.5*e.min(1,a*((n-1)/i-1))))<=0&&(i=.5*(i+s)),e.abs(s)<d*i)break}return i},t.erf=function(t){var r,n,i,s,a=[-1.3026537197817094,.6419697923564902,.019476473204185836,-.00956151478680863,-.000946595344482036,.000366839497852761,42523324806907e-18,-20278578112534e-18,-1624290004647e-18,130365583558e-17,1.5626441722e-8,-8.5238095915e-8,6.529054439e-9,5.059343495e-9,-9.91364156e-10,-2.27365122e-10,96467911e-18,2394038e-18,-6886027e-18,894487e-18,313092e-18,-112708e-18,381e-18,7106e-18,-1523e-18,-94e-18,121e-18,-28e-18],o=a.length-1,l=!1,c=0,h=0;for(t<0&&(t=-t,l=!0),n=4*(r=2/(2+t))-2;o>0;o--)i=c,c=n*c-h+a[o],h=i;return s=r*e.exp(-t*t+.5*(a[0]+n*c)-h),l?s-1:1-s},t.erfc=function(e){return 1-t.erf(e)},t.erfcinv=function(r){var n,i,s,a,o=0;if(r>=2)return-100;if(r<=0)return 100;for(a=r<1?r:2-r,n=-.70711*((2.30753+.27061*(s=e.sqrt(-2*e.log(a/2))))/(1+s*(.99229+.04481*s))-s);o<2;o++)n+=(i=t.erfc(n)-a)/(1.1283791670955126*e.exp(-n*n)-n*i);return r<1?n:-n},t.ibetainv=function(r,n,i){var s,a,o,l,c,h,u,d,f,p,m=1e-8,b=n-1,g=i-1,v=0;if(r<=0)return 0;if(r>=1)return 1;for(n>=1&&i>=1?(o=r<.5?r:1-r,h=(2.30753+.27061*(l=e.sqrt(-2*e.log(o))))/(1+l*(.99229+.04481*l))-l,r<.5&&(h=-h),u=(h*h-3)/6,d=2/(1/(2*n-1)+1/(2*i-1)),f=h*e.sqrt(u+d)/d-(1/(2*i-1)-1/(2*n-1))*(u+5/6-2/(3*d)),h=n/(n+i*e.exp(2*f))):(s=e.log(n/(n+i)),a=e.log(i/(n+i)),h=r<(l=e.exp(n*s)/n)/(f=l+(c=e.exp(i*a)/i))?e.pow(n*f*r,1/n):1-e.pow(i*f*(1-r),1/i)),p=-t.gammaln(n)-t.gammaln(i)+t.gammaln(n+i);v<10;v++){if(0===h||1===h)return h;if((h-=l=(c=(t.ibeta(h,n,i)-r)/(l=e.exp(b*e.log(h)+g*e.log(1-h)+p)))/(1-.5*e.min(1,c*(b/h-g/(1-h)))))<=0&&(h=.5*(h+l)),h>=1&&(h=.5*(h+l+1)),e.abs(l)<m*h&&v>0)break}return h},t.ibeta=function(r,n,i){var s=0===r||1===r?0:e.exp(t.gammaln(n+i)-t.gammaln(n)-t.gammaln(i)+n*e.log(r)+i*e.log(1-r));return!(r<0||r>1)&&(r<(n+1)/(n+i+2)?s*t.betacf(r,n,i)/n:1-s*t.betacf(1-r,i,n)/i)},t.randn=function(r,n){var i,s,a,o,l;if(n||(n=r),r)return t.create(r,n,(function(){return t.randn()}));do{i=t._random_fn(),s=1.7156*(t._random_fn()-.5),l=(a=i-.449871)*a+(o=e.abs(s)+.386595)*(.196*o-.25472*a)}while(l>.27597&&(l>.27846||s*s>-4*e.log(i)*i*i));return s/i},t.randg=function(r,n,i){var s,a,o,l,c,h,u=r;if(i||(i=n),r||(r=1),n)return(h=t.zeros(n,i)).alter((function(){return t.randg(r)})),h;r<1&&(r+=1),s=r-1/3,a=1/e.sqrt(9*s);do{do{l=1+a*(c=t.randn())}while(l<=0);l*=l*l,o=t._random_fn()}while(o>1-.331*e.pow(c,4)&&e.log(o)>.5*c*c+s*(1-l+e.log(l)));if(r==u)return s*l;do{o=t._random_fn()}while(0===o);return e.pow(o,1/u)*s*l},function(e){for(var r=0;r<e.length;r++)!function(e){t.fn[e]=function(){return t(t.map(this,(function(r){return t[e](r)})))}}(e[r])}("gammaln gammafn factorial factorialln".split(" ")),function(e){for(var r=0;r<e.length;r++)!function(e){t.fn[e]=function(){return t(t[e].apply(null,arguments))}}(e[r])}("randn".split(" "))}(r,Math),function(t,e){function r(t,r,n,i){for(var s,a=0,o=1,l=1,c=1,h=0,u=0;e.abs((l-u)/l)>i;)u=l,o=c+(s=-(r+h)*(r+n+h)*t/(r+2*h)/(r+2*h+1))*o,l=(a=l+s*a)+(s=(h+=1)*(n-h)*t/(r+2*h-1)/(r+2*h))*l,a/=c=o+s*c,o/=c,l/=c,c=1;return l/r}function n(t){return t/e.abs(t)}function i(r,n,i){var s=12,a=6,o=-30,l=-50,c=60,h=8,u=3,d=2,f=3,p=[.9815606342467192,.9041172563704749,.7699026741943047,.5873179542866175,.3678314989981802,.1252334085114689],m=[.04717533638651183,.10693932599531843,.16007832854334622,.20316742672306592,.2334925365383548,.24914704581340277],b=.5*r;if(b>=h)return 1;var g,v=2*t.normal.cdf(b,0,1,1,0)-1;v=v>=e.exp(l/i)?e.pow(v,i):0;for(var y=b,w=(h-b)/(g=r>u?d:f),x=y+w,k=0,$=i-1,_=1;_<=g;_++){for(var S=0,A=.5*(x+y),E=.5*(x-y),T=1;T<=s;T++){var M,C=A+E*(a<T?p[(M=s-T+1)-1]:-p[(M=T)-1]),N=C*C;if(N>c)break;var R=2*t.normal.cdf(C,0,1,1,0)*.5-2*t.normal.cdf(C,r,1,1,0)*.5;R>=e.exp(o/$)&&(S+=R=m[M-1]*e.exp(-.5*N)*e.pow(R,$))}k+=S*=2*E*i/e.sqrt(2*e.PI),y=x,x+=w}return(v+=k)<=e.exp(o/n)?0:(v=e.pow(v,n))>=1?1:v}function s(t,r,n){var i=.322232421088,s=.099348462606,a=-1,o=.588581570495,l=-.342242088547,c=.531103462366,h=-.204231210125,u=.10353775285,d=-453642210148e-16,f=.0038560700634,p=.8832,m=.2368,b=1.214,g=1.208,v=1.4142,y=120,w=.5-.5*t,x=e.sqrt(e.log(1/(w*w))),k=x+((((x*d+h)*x+l)*x+a)*x+i)/((((x*f+u)*x+c)*x+o)*x+s);n<y&&(k+=(k*k*k+k)/n/4);var $=p-m*k;return n<y&&($+=-b/n+g*k/n),k*($*e.log(r-1)+v)}!function(e){for(var r=0;r<e.length;r++)!function(e){t[e]=function t(e,r,n){return this instanceof t?(this._a=e,this._b=r,this._c=n,this):new t(e,r,n)},t.fn[e]=function(r,n,i){var s=t[e](r,n,i);return s.data=this,s},t[e].prototype.sample=function(r){var n=this._a,i=this._b,s=this._c;return r?t.alter(r,(function(){return t[e].sample(n,i,s)})):t[e].sample(n,i,s)},function(r){for(var n=0;n<r.length;n++)!function(r){t[e].prototype[r]=function(n){var i=this._a,s=this._b,a=this._c;return n||0===n||(n=this.data),"number"!=typeof n?t.fn.map.call(n,(function(n){return t[e][r](n,i,s,a)})):t[e][r](n,i,s,a)}}(r[n])}("pdf cdf inv".split(" ")),function(r){for(var n=0;n<r.length;n++)!function(r){t[e].prototype[r]=function(){return t[e][r](this._a,this._b,this._c)}}(r[n])}("mean median mode variance".split(" "))}(e[r])}("beta centralF cauchy chisquare exponential gamma invgamma kumaraswamy laplace lognormal noncentralt normal pareto studentt weibull uniform binomial negbin hypgeom poisson triangular tukey arcsine".split(" ")),t.extend(t.beta,{pdf:function(r,n,i){return r>1||r<0?0:1==n&&1==i?1:n<512&&i<512?e.pow(r,n-1)*e.pow(1-r,i-1)/t.betafn(n,i):e.exp((n-1)*e.log(r)+(i-1)*e.log(1-r)-t.betaln(n,i))},cdf:function(e,r,n){return e>1||e<0?1*(e>1):t.ibeta(e,r,n)},inv:function(e,r,n){return t.ibetainv(e,r,n)},mean:function(t,e){return t/(t+e)},median:function(e,r){return t.ibetainv(.5,e,r)},mode:function(t,e){return(t-1)/(t+e-2)},sample:function(e,r){var n=t.randg(e);return n/(n+t.randg(r))},variance:function(t,r){return t*r/(e.pow(t+r,2)*(t+r+1))}}),t.extend(t.centralF,{pdf:function(r,n,i){var s;return r<0?0:n<=2?0===r&&n<2?1/0:0===r&&2===n?1:1/t.betafn(n/2,i/2)*e.pow(n/i,n/2)*e.pow(r,n/2-1)*e.pow(1+n/i*r,-(n+i)/2):(s=n*r/(i+r*n),n*(i/(i+r*n))/2*t.binomial.pdf((n-2)/2,(n+i-2)/2,s))},cdf:function(e,r,n){return e<0?0:t.ibeta(r*e/(r*e+n),r/2,n/2)},inv:function(e,r,n){return n/(r*(1/t.ibetainv(e,r/2,n/2)-1))},mean:function(t,e){return e>2?e/(e-2):void 0},mode:function(t,e){return t>2?e*(t-2)/(t*(e+2)):void 0},sample:function(e,r){return 2*t.randg(e/2)/e/(2*t.randg(r/2)/r)},variance:function(t,e){if(!(e<=4))return 2*e*e*(t+e-2)/(t*(e-2)*(e-2)*(e-4))}}),t.extend(t.cauchy,{pdf:function(t,r,n){return n<0?0:n/(e.pow(t-r,2)+e.pow(n,2))/e.PI},cdf:function(t,r,n){return e.atan((t-r)/n)/e.PI+.5},inv:function(t,r,n){return r+n*e.tan(e.PI*(t-.5))},median:function(t){return t},mode:function(t){return t},sample:function(r,n){return t.randn()*e.sqrt(1/(2*t.randg(.5)))*n+r}}),t.extend(t.chisquare,{pdf:function(r,n){return r<0?0:0===r&&2===n?.5:e.exp((n/2-1)*e.log(r)-r/2-n/2*e.log(2)-t.gammaln(n/2))},cdf:function(e,r){return e<0?0:t.lowRegGamma(r/2,e/2)},inv:function(e,r){return 2*t.gammapinv(e,.5*r)},mean:function(t){return t},median:function(t){return t*e.pow(1-2/(9*t),3)},mode:function(t){return t-2>0?t-2:0},sample:function(e){return 2*t.randg(e/2)},variance:function(t){return 2*t}}),t.extend(t.exponential,{pdf:function(t,r){return t<0?0:r*e.exp(-r*t)},cdf:function(t,r){return t<0?0:1-e.exp(-r*t)},inv:function(t,r){return-e.log(1-t)/r},mean:function(t){return 1/t},median:function(t){return 1/t*e.log(2)},mode:function(){return 0},sample:function(r){return-1/r*e.log(t._random_fn())},variance:function(t){return e.pow(t,-2)}}),t.extend(t.gamma,{pdf:function(r,n,i){return r<0?0:0===r&&1===n?1/i:e.exp((n-1)*e.log(r)-r/i-t.gammaln(n)-n*e.log(i))},cdf:function(e,r,n){return e<0?0:t.lowRegGamma(r,e/n)},inv:function(e,r,n){return t.gammapinv(e,r)*n},mean:function(t,e){return t*e},mode:function(t,e){if(t>1)return(t-1)*e},sample:function(e,r){return t.randg(e)*r},variance:function(t,e){return t*e*e}}),t.extend(t.invgamma,{pdf:function(r,n,i){return r<=0?0:e.exp(-(n+1)*e.log(r)-i/r-t.gammaln(n)+n*e.log(i))},cdf:function(e,r,n){return e<=0?0:1-t.lowRegGamma(r,n/e)},inv:function(e,r,n){return n/t.gammapinv(1-e,r)},mean:function(t,e){return t>1?e/(t-1):void 0},mode:function(t,e){return e/(t+1)},sample:function(e,r){return r/t.randg(e)},variance:function(t,e){if(!(t<=2))return e*e/((t-1)*(t-1)*(t-2))}}),t.extend(t.kumaraswamy,{pdf:function(t,r,n){return 0===t&&1===r?n:1===t&&1===n?r:e.exp(e.log(r)+e.log(n)+(r-1)*e.log(t)+(n-1)*e.log(1-e.pow(t,r)))},cdf:function(t,r,n){return t<0?0:t>1?1:1-e.pow(1-e.pow(t,r),n)},inv:function(t,r,n){return e.pow(1-e.pow(1-t,1/n),1/r)},mean:function(e,r){return r*t.gammafn(1+1/e)*t.gammafn(r)/t.gammafn(1+1/e+r)},median:function(t,r){return e.pow(1-e.pow(2,-1/r),1/t)},mode:function(t,r){if(t>=1&&r>=1&&1!==t&&1!==r)return e.pow((t-1)/(t*r-1),1/t)},variance:function(){throw new Error("variance not yet implemented")}}),t.extend(t.lognormal,{pdf:function(t,r,n){return t<=0?0:e.exp(-e.log(t)-.5*e.log(2*e.PI)-e.log(n)-e.pow(e.log(t)-r,2)/(2*n*n))},cdf:function(r,n,i){return r<0?0:.5+.5*t.erf((e.log(r)-n)/e.sqrt(2*i*i))},inv:function(r,n,i){return e.exp(-1.4142135623730951*i*t.erfcinv(2*r)+n)},mean:function(t,r){return e.exp(t+r*r/2)},median:function(t){return e.exp(t)},mode:function(t,r){return e.exp(t-r*r)},sample:function(r,n){return e.exp(t.randn()*n+r)},variance:function(t,r){return(e.exp(r*r)-1)*e.exp(2*t+r*r)}}),t.extend(t.noncentralt,{pdf:function(r,n,i){var s=1e-14;return e.abs(i)<s?t.studentt.pdf(r,n):e.abs(r)<s?e.exp(t.gammaln((n+1)/2)-i*i/2-.5*e.log(e.PI*n)-t.gammaln(n/2)):n/r*(t.noncentralt.cdf(r*e.sqrt(1+2/n),n+2,i)-t.noncentralt.cdf(r,n,i))},cdf:function(r,n,i){var s=1e-14,a=200;if(e.abs(i)<s)return t.studentt.cdf(r,n);var o=!1;r<0&&(o=!0,i=-i);for(var l=t.normal.cdf(-i,0,1),c=s+1,h=c,u=r*r/(r*r+n),d=0,f=e.exp(-i*i/2),p=e.exp(-i*i/2-.5*e.log(2)-t.gammaln(1.5))*i;d<a||h>s||c>s;)h=c,d>0&&(f*=i*i/(2*d),p*=i*i/(2*(d+.5))),l+=.5*(c=f*t.beta.cdf(u,d+.5,n/2)+p*t.beta.cdf(u,d+1,n/2)),d++;return o?1-l:l}}),t.extend(t.normal,{pdf:function(t,r,n){return e.exp(-.5*e.log(2*e.PI)-e.log(n)-e.pow(t-r,2)/(2*n*n))},cdf:function(r,n,i){return.5*(1+t.erf((r-n)/e.sqrt(2*i*i)))},inv:function(e,r,n){return-1.4142135623730951*n*t.erfcinv(2*e)+r},mean:function(t){return t},median:function(t){return t},mode:function(t){return t},sample:function(e,r){return t.randn()*r+e},variance:function(t,e){return e*e}}),t.extend(t.pareto,{pdf:function(t,r,n){return t<r?0:n*e.pow(r,n)/e.pow(t,n+1)},cdf:function(t,r,n){return t<r?0:1-e.pow(r/t,n)},inv:function(t,r,n){return r/e.pow(1-t,1/n)},mean:function(t,r){if(!(r<=1))return r*e.pow(t,r)/(r-1)},median:function(t,r){return t*(r*e.SQRT2)},mode:function(t){return t},variance:function(t,r){if(!(r<=2))return t*t*r/(e.pow(r-1,2)*(r-2))}}),t.extend(t.studentt,{pdf:function(r,n){return n=n>1e100?1e100:n,1/(e.sqrt(n)*t.betafn(.5,n/2))*e.pow(1+r*r/n,-(n+1)/2)},cdf:function(r,n){var i=n/2;return t.ibeta((r+e.sqrt(r*r+n))/(2*e.sqrt(r*r+n)),i,i)},inv:function(r,n){var i=t.ibetainv(2*e.min(r,1-r),.5*n,.5);return i=e.sqrt(n*(1-i)/i),r>.5?i:-i},mean:function(t){return t>1?0:void 0},median:function(){return 0},mode:function(){return 0},sample:function(r){return t.randn()*e.sqrt(r/(2*t.randg(r/2)))},variance:function(t){return t>2?t/(t-2):t>1?1/0:void 0}}),t.extend(t.weibull,{pdf:function(t,r,n){return t<0||r<0||n<0?0:n/r*e.pow(t/r,n-1)*e.exp(-e.pow(t/r,n))},cdf:function(t,r,n){return t<0?0:1-e.exp(-e.pow(t/r,n))},inv:function(t,r,n){return r*e.pow(-e.log(1-t),1/n)},mean:function(e,r){return e*t.gammafn(1+1/r)},median:function(t,r){return t*e.pow(e.log(2),1/r)},mode:function(t,r){return r<=1?0:t*e.pow((r-1)/r,1/r)},sample:function(r,n){return r*e.pow(-e.log(t._random_fn()),1/n)},variance:function(r,n){return r*r*t.gammafn(1+2/n)-e.pow(t.weibull.mean(r,n),2)}}),t.extend(t.uniform,{pdf:function(t,e,r){return t<e||t>r?0:1/(r-e)},cdf:function(t,e,r){return t<e?0:t<r?(t-e)/(r-e):1},inv:function(t,e,r){return e+t*(r-e)},mean:function(t,e){return.5*(t+e)},median:function(e,r){return t.mean(e,r)},mode:function(){throw new Error("mode is not yet implemented")},sample:function(e,r){return e/2+r/2+(r/2-e/2)*(2*t._random_fn()-1)},variance:function(t,r){return e.pow(r-t,2)/12}}),t.extend(t.binomial,{pdf:function(r,n,i){return 0===i||1===i?n*i===r?1:0:t.combination(n,r)*e.pow(i,r)*e.pow(1-i,n-r)},cdf:function(n,i,s){var a,o=1e-10;if(n<0)return 0;if(n>=i)return 1;if(s<0||s>1||i<=0)return NaN;var l=s,c=(n=e.floor(n))+1,h=i-n,u=c+h,d=e.exp(t.gammaln(u)-t.gammaln(h)-t.gammaln(c)+c*e.log(l)+h*e.log(1-l));return a=l<(c+1)/(u+2)?d*r(l,c,h,o):1-d*r(1-l,h,c,o),e.round(1/o*(1-a))/(1/o)}}),t.extend(t.negbin,{pdf:function(r,n,i){return r===r>>>0&&(r<0?0:t.combination(r+n-1,n-1)*e.pow(1-i,r)*e.pow(i,n))},cdf:function(e,r,n){var i=0,s=0;if(e<0)return 0;for(;s<=e;s++)i+=t.negbin.pdf(s,r,n);return i}}),t.extend(t.hypgeom,{pdf:function(r,n,i,s){if(r!=r|0)return!1;if(r<0||r<i-(n-s))return 0;if(r>s||r>i)return 0;if(2*i>n)return 2*s>n?t.hypgeom.pdf(n-i-s+r,n,n-i,n-s):t.hypgeom.pdf(s-r,n,n-i,s);if(2*s>n)return t.hypgeom.pdf(i-r,n,i,n-s);if(i<s)return t.hypgeom.pdf(r,n,s,i);for(var a=1,o=0,l=0;l<r;l++){for(;a>1&&o<s;)a*=1-i/(n-o),o++;a*=(s-l)*(i-l)/((l+1)*(n-i-s+l+1))}for(;o<s;o++)a*=1-i/(n-o);return e.min(1,e.max(0,a))},cdf:function(r,n,i,s){if(r<0||r<i-(n-s))return 0;if(r>=s||r>=i)return 1;if(2*i>n)return 2*s>n?t.hypgeom.cdf(n-i-s+r,n,n-i,n-s):1-t.hypgeom.cdf(s-r-1,n,n-i,s);if(2*s>n)return 1-t.hypgeom.cdf(i-r-1,n,i,n-s);if(i<s)return t.hypgeom.cdf(r,n,s,i);for(var a=1,o=1,l=0,c=0;c<r;c++){for(;a>1&&l<s;){var h=1-i/(n-l);o*=h,a*=h,l++}a+=o*=(s-c)*(i-c)/((c+1)*(n-i-s+c+1))}for(;l<s;l++)a*=1-i/(n-l);return e.min(1,e.max(0,a))}}),t.extend(t.poisson,{pdf:function(r,n){return n<0||r%1!=0||r<0?0:e.pow(n,r)*e.exp(-n)/t.factorial(r)},cdf:function(e,r){var n=[],i=0;if(e<0)return 0;for(;i<=e;i++)n.push(t.poisson.pdf(i,r));return t.sum(n)},mean:function(t){return t},variance:function(t){return t},sampleSmall:function(r){var n=1,i=0,s=e.exp(-r);do{i++,n*=t._random_fn()}while(n>s);return i-1},sampleLarge:function(r){var n,i,s,a,o,l,c,h,u,d,f=r;for(a=e.sqrt(f),o=e.log(f),l=.02483*(c=.931+2.53*a)-.059,h=1.1239+1.1328/(c-3.4),u=.9277-3.6224/(c-2);;){if(i=e.random()-.5,s=e.random(),d=.5-e.abs(i),n=e.floor((2*l/d+c)*i+f+.43),d>=.07&&s<=u)return n;if(!(n<0||d<.013&&s>d)&&e.log(s)+e.log(h)-e.log(l/(d*d)+c)<=n*o-f-t.loggam(n+1))return n}},sample:function(t){return t<10?this.sampleSmall(t):this.sampleLarge(t)}}),t.extend(t.triangular,{pdf:function(t,e,r,n){return r<=e||n<e||n>r?NaN:t<e||t>r?0:t<n?2*(t-e)/((r-e)*(n-e)):t===n?2/(r-e):2*(r-t)/((r-e)*(r-n))},cdf:function(t,r,n,i){return n<=r||i<r||i>n?NaN:t<=r?0:t>=n?1:t<=i?e.pow(t-r,2)/((n-r)*(i-r)):1-e.pow(n-t,2)/((n-r)*(n-i))},inv:function(t,r,n,i){return n<=r||i<r||i>n?NaN:t<=(i-r)/(n-r)?r+(n-r)*e.sqrt(t*((i-r)/(n-r))):r+(n-r)*(1-e.sqrt((1-t)*(1-(i-r)/(n-r))))},mean:function(t,e,r){return(t+e+r)/3},median:function(t,r,n){return n<=(t+r)/2?r-e.sqrt((r-t)*(r-n))/e.sqrt(2):n>(t+r)/2?t+e.sqrt((r-t)*(n-t))/e.sqrt(2):void 0},mode:function(t,e,r){return r},sample:function(r,n,i){var s=t._random_fn();return s<(i-r)/(n-r)?r+e.sqrt(s*(n-r)*(i-r)):n-e.sqrt((1-s)*(n-r)*(n-i))},variance:function(t,e,r){return(t*t+e*e+r*r-t*e-t*r-e*r)/18}}),t.extend(t.arcsine,{pdf:function(t,r,n){return n<=r?NaN:t<=r||t>=n?0:2/e.PI*e.pow(e.pow(n-r,2)-e.pow(2*t-r-n,2),-.5)},cdf:function(t,r,n){return t<r?0:t<n?2/e.PI*e.asin(e.sqrt((t-r)/(n-r))):1},inv:function(t,r,n){return r+(.5-.5*e.cos(e.PI*t))*(n-r)},mean:function(t,e){return e<=t?NaN:(t+e)/2},median:function(t,e){return e<=t?NaN:(t+e)/2},mode:function(){throw new Error("mode is not yet implemented")},sample:function(r,n){return(r+n)/2+(n-r)/2*e.sin(2*e.PI*t.uniform.sample(0,1))},variance:function(t,r){return r<=t?NaN:e.pow(r-t,2)/8}}),t.extend(t.laplace,{pdf:function(t,r,n){return n<=0?0:e.exp(-e.abs(t-r)/n)/(2*n)},cdf:function(t,r,n){return n<=0?0:t<r?.5*e.exp((t-r)/n):1-.5*e.exp(-(t-r)/n)},mean:function(t){return t},median:function(t){return t},mode:function(t){return t},variance:function(t,e){return 2*e*e},sample:function(r,i){var s=t._random_fn()-.5;return r-i*n(s)*e.log(1-2*e.abs(s))}}),t.extend(t.tukey,{cdf:function(r,n,s){var a=1,o=n,l=16,c=8,h=-30,u=1e-14,d=100,f=800,p=5e3,m=25e3,b=1,g=.5,v=.25,y=.125,w=[.9894009349916499,.9445750230732326,.8656312023878318,.755404408355003,.6178762444026438,.45801677765722737,.2816035507792589,.09501250983763744],x=[.027152459411754096,.062253523938647894,.09515851168249279,.12462897125553388,.14959598881657674,.16915651939500254,.18260341504492358,.1894506104550685];if(r<=0)return 0;if(s<2||a<1||o<2)return NaN;if(!Number.isFinite(r))return 1;if(s>m)return i(r,a,o);var k,$=.5*s,_=$*e.log(s)-s*e.log(2)-t.gammaln($),S=$-1,A=.25*s;k=s<=d?b:s<=f?g:s<=p?v:y,_+=e.log(k);for(var E=0,T=1;T<=50;T++){for(var M=0,C=(2*T-1)*k,N=1;N<=l;N++){var R,q;c<N?(R=N-c-1,q=_+S*e.log(C+w[R]*k)-(w[R]*k+C)*A):(R=N-1,q=_+S*e.log(C-w[R]*k)+(w[R]*k-C)*A),q>=h&&(M+=i(c<N?r*e.sqrt(.5*(w[R]*k+C)):r*e.sqrt(.5*(-w[R]*k+C)),a,o)*x[R]*e.exp(q))}if(T*k>=1&&M<=u)break;E+=M}if(M>u)throw new Error("tukey.cdf failed to converge");return E>1&&(E=1),E},inv:function(r,n,i){var a=1e-4,o=50;if(i<2||n<2)return NaN;if(r<0||r>1)return NaN;if(0===r)return 0;if(1===r)return 1/0;var l,c=s(r,n,i),h=t.tukey.cdf(c,n,i)-r;l=h>0?e.max(0,c-1):c+1;for(var u,d=t.tukey.cdf(l,n,i)-r,f=1;f<o;f++)if(u=l-d*(l-c)/(d-h),h=d,c=l,u<0&&(u=0,d=-r),d=t.tukey.cdf(u,n,i)-r,l=u,e.abs(l-c)<a)return u;throw new Error("tukey.inv failed to converge")}})}(r,Math),function(t,e){var r=Array.prototype.push,n=t.utils.isArray;function i(e){return n(e)||e instanceof t}t.extend({add:function(e,r){return i(r)?(i(r[0])||(r=[r]),t.map(e,(function(t,e,n){return t+r[e][n]}))):t.map(e,(function(t){return t+r}))},subtract:function(e,r){return i(r)?(i(r[0])||(r=[r]),t.map(e,(function(t,e,n){return t-r[e][n]||0}))):t.map(e,(function(t){return t-r}))},divide:function(e,r){return i(r)?(i(r[0])||(r=[r]),t.multiply(e,t.inv(r))):t.map(e,(function(t){return t/r}))},multiply:function(e,r){var n,s,a,o,l,c,h,u;if(void 0===e.length&&void 0===r.length)return e*r;if(l=e.length,c=e[0].length,h=t.zeros(l,a=i(r)?r[0].length:c),u=0,i(r)){for(;u<a;u++)for(n=0;n<l;n++){for(o=0,s=0;s<c;s++)o+=e[n][s]*r[s][u];h[n][u]=o}return 1===l&&1===u?h[0][0]:h}return t.map(e,(function(t){return t*r}))},outer:function(e,r){return t.multiply(e.map((function(t){return[t]})),[r])},dot:function(e,r){i(e[0])||(e=[e]),i(r[0])||(r=[r]);for(var n,s,a=1===e[0].length&&1!==e.length?t.transpose(e):e,o=1===r[0].length&&1!==r.length?t.transpose(r):r,l=[],c=0,h=a.length,u=a[0].length;c<h;c++){for(l[c]=[],n=0,s=0;s<u;s++)n+=a[c][s]*o[c][s];l[c]=n}return 1===l.length?l[0]:l},pow:function(r,n){return t.map(r,(function(t){return e.pow(t,n)}))},exp:function(r){return t.map(r,(function(t){return e.exp(t)}))},log:function(r){return t.map(r,(function(t){return e.log(t)}))},abs:function(r){return t.map(r,(function(t){return e.abs(t)}))},norm:function(t,r){var n=0,s=0;for(isNaN(r)&&(r=2),i(t[0])&&(t=t[0]);s<t.length;s++)n+=e.pow(e.abs(t[s]),r);return e.pow(n,1/r)},angle:function(r,n){return e.acos(t.dot(r,n)/(t.norm(r)*t.norm(n)))},aug:function(t,e){var n,i=[];for(n=0;n<t.length;n++)i.push(t[n].slice());for(n=0;n<i.length;n++)r.apply(i[n],e[n]);return i},inv:function(e){for(var r,n=e.length,i=e[0].length,s=t.identity(n,i),a=t.gauss_jordan(e,s),o=[],l=0;l<n;l++)for(o[l]=[],r=i;r<a[0].length;r++)o[l][r-i]=a[l][r];return o},det:function(t){var e,r=t.length,n=2*r,i=new Array(n),s=r-1,a=n-1,o=s-r+1,l=a,c=0,h=0;if(2===r)return t[0][0]*t[1][1]-t[0][1]*t[1][0];for(;c<n;c++)i[c]=1;for(c=0;c<r;c++){for(e=0;e<r;e++)i[o<0?o+r:o]*=t[c][e],i[l<r?l+r:l]*=t[c][e],o++,l--;o=--s-r+1,l=--a}for(c=0;c<r;c++)h+=i[c];for(;c<n;c++)h-=i[c];return h},gauss_elimination:function(r,n){var i,s,a,o,l=0,c=0,h=r.length,u=r[0].length,d=1,f=0,p=[];for(i=(r=t.aug(r,n))[0].length,l=0;l<h;l++){for(s=r[l][l],c=l,o=l+1;o<u;o++)s<e.abs(r[o][l])&&(s=r[o][l],c=o);if(c!=l)for(o=0;o<i;o++)a=r[l][o],r[l][o]=r[c][o],r[c][o]=a;for(c=l+1;c<h;c++)for(d=r[c][l]/r[l][l],o=l;o<i;o++)r[c][o]=r[c][o]-d*r[l][o]}for(l=h-1;l>=0;l--){for(f=0,c=l+1;c<=h-1;c++)f+=p[c]*r[l][c];p[l]=(r[l][i-1]-f)/r[l][l]}return p},gauss_jordan:function(r,n){var i,s,a,o=t.aug(r,n),l=o.length,c=o[0].length,h=0;for(s=0;s<l;s++){var u=s;for(a=s+1;a<l;a++)e.abs(o[a][s])>e.abs(o[u][s])&&(u=a);var d=o[s];for(o[s]=o[u],o[u]=d,a=s+1;a<l;a++)for(h=o[a][s]/o[s][s],i=s;i<c;i++)o[a][i]-=o[s][i]*h}for(s=l-1;s>=0;s--){for(h=o[s][s],a=0;a<s;a++)for(i=c-1;i>s-1;i--)o[a][i]-=o[s][i]*o[a][s]/h;for(o[s][s]/=h,i=l;i<c;i++)o[s][i]/=h}return o},triaUpSolve:function(e,r){var n,i=e[0].length,s=t.zeros(1,i)[0],a=!1;return null!=r[0].length&&(r=r.map((function(t){return t[0]})),a=!0),t.arange(i-1,-1,-1).forEach((function(a){n=t.arange(a+1,i).map((function(t){return s[t]*e[a][t]})),s[a]=(r[a]-t.sum(n))/e[a][a]})),a?s.map((function(t){return[t]})):s},triaLowSolve:function(e,r){var n,i=e[0].length,s=t.zeros(1,i)[0],a=!1;return null!=r[0].length&&(r=r.map((function(t){return t[0]})),a=!0),t.arange(i).forEach((function(i){n=t.arange(i).map((function(t){return e[i][t]*s[t]})),s[i]=(r[i]-t.sum(n))/e[i][i]})),a?s.map((function(t){return[t]})):s},lu:function(e){var r,n=e.length,i=t.identity(n),s=t.zeros(e.length,e[0].length);return t.arange(n).forEach((function(t){s[0][t]=e[0][t]})),t.arange(1,n).forEach((function(a){t.arange(a).forEach((function(n){r=t.arange(n).map((function(t){return i[a][t]*s[t][n]})),i[a][n]=(e[a][n]-t.sum(r))/s[n][n]})),t.arange(a,n).forEach((function(n){r=t.arange(a).map((function(t){return i[a][t]*s[t][n]})),s[a][n]=e[r.length][n]-t.sum(r)}))})),[i,s]},cholesky:function(r){var n,i=r.length,s=t.zeros(r.length,r[0].length);return t.arange(i).forEach((function(a){n=t.arange(a).map((function(t){return e.pow(s[a][t],2)})),s[a][a]=e.sqrt(r[a][a]-t.sum(n)),t.arange(a+1,i).forEach((function(e){n=t.arange(a).map((function(t){return s[a][t]*s[e][t]})),s[e][a]=(r[a][e]-t.sum(n))/s[a][a]}))})),s},gauss_jacobi:function(r,n,i,s){for(var a,o,l,c,h=0,u=0,d=r.length,f=[],p=[],m=[];h<d;h++)for(f[h]=[],p[h]=[],m[h]=[],u=0;u<d;u++)h>u?(f[h][u]=r[h][u],p[h][u]=m[h][u]=0):h<u?(p[h][u]=r[h][u],f[h][u]=m[h][u]=0):(m[h][u]=r[h][u],f[h][u]=p[h][u]=0);for(l=t.multiply(t.multiply(t.inv(m),t.add(f,p)),-1),o=t.multiply(t.inv(m),n),a=i,c=t.add(t.multiply(l,i),o),h=2;e.abs(t.norm(t.subtract(c,a)))>s;)a=c,c=t.add(t.multiply(l,a),o),h++;return c},gauss_seidel:function(r,n,i,s){for(var a,o,l,c,h,u=0,d=r.length,f=[],p=[],m=[];u<d;u++)for(f[u]=[],p[u]=[],m[u]=[],a=0;a<d;a++)u>a?(f[u][a]=r[u][a],p[u][a]=m[u][a]=0):u<a?(p[u][a]=r[u][a],f[u][a]=m[u][a]=0):(m[u][a]=r[u][a],f[u][a]=p[u][a]=0);for(c=t.multiply(t.multiply(t.inv(t.add(m,f)),p),-1),l=t.multiply(t.inv(t.add(m,f)),n),o=i,h=t.add(t.multiply(c,i),l),u=2;e.abs(t.norm(t.subtract(h,o)))>s;)o=h,h=t.add(t.multiply(c,o),l),u+=1;return h},SOR:function(r,n,i,s,a){for(var o,l,c,h,u,d=0,f=r.length,p=[],m=[],b=[];d<f;d++)for(p[d]=[],m[d]=[],b[d]=[],o=0;o<f;o++)d>o?(p[d][o]=r[d][o],m[d][o]=b[d][o]=0):d<o?(m[d][o]=r[d][o],p[d][o]=b[d][o]=0):(b[d][o]=r[d][o],p[d][o]=m[d][o]=0);for(h=t.multiply(t.inv(t.add(b,t.multiply(p,a))),t.subtract(t.multiply(b,1-a),t.multiply(m,a))),c=t.multiply(t.multiply(t.inv(t.add(b,t.multiply(p,a))),n),a),l=i,u=t.add(t.multiply(h,i),c),d=2;e.abs(t.norm(t.subtract(u,l)))>s;)l=u,u=t.add(t.multiply(h,l),c),d++;return u},householder:function(r){for(var n,i,s,a,o=r.length,l=r[0].length,c=0,h=[],u=[];c<o-1;c++){for(n=0,a=c+1;a<l;a++)n+=r[a][c]*r[a][c];for(n=(r[c+1][c]>0?-1:1)*e.sqrt(n),i=e.sqrt((n*n-r[c+1][c]*n)/2),(h=t.zeros(o,1))[c+1][0]=(r[c+1][c]-n)/(2*i),s=c+2;s<o;s++)h[s][0]=r[s][c]/(2*i);u=t.subtract(t.identity(o,l),t.multiply(t.multiply(h,t.transpose(h)),2)),r=t.multiply(u,t.multiply(r,u))}return r},QR:function(){var r=t.sum,n=t.arange;function i(i){var s,a,o,l=i.length,c=i[0].length,h=t.zeros(c,c);for(i=t.copy(i),a=0;a<c;a++){for(h[a][a]=e.sqrt(r(n(l).map((function(t){return i[t][a]*i[t][a]})))),s=0;s<l;s++)i[s][a]=i[s][a]/h[a][a];for(o=a+1;o<c;o++)for(h[a][o]=r(n(l).map((function(t){return i[t][a]*i[t][o]}))),s=0;s<l;s++)i[s][o]=i[s][o]-i[s][a]*h[a][o]}return[i,h]}return i}(),lstsq:function(){function e(e){var r=(e=t.copy(e)).length,n=t.identity(r);return t.arange(r-1,-1,-1).forEach((function(r){t.sliceAssign(n,{row:r},t.divide(t.slice(n,{row:r}),e[r][r])),t.sliceAssign(e,{row:r},t.divide(t.slice(e,{row:r}),e[r][r])),t.arange(r).forEach((function(i){var s=t.multiply(e[i][r],-1),a=t.slice(e,{row:i}),o=t.multiply(t.slice(e,{row:r}),s);t.sliceAssign(e,{row:i},t.add(a,o));var l=t.slice(n,{row:i}),c=t.multiply(t.slice(n,{row:r}),s);t.sliceAssign(n,{row:i},t.add(l,c))}))})),n}function r(r,n){var i=!1;void 0===n[0].length&&(n=n.map((function(t){return[t]})),i=!0);var s=t.QR(r),a=s[0],o=s[1],l=r[0].length,c=t.slice(a,{col:{end:l}}),h=e(t.slice(o,{row:{end:l}})),u=t.transpose(c);void 0===u[0].length&&(u=[u]);var d=t.multiply(t.multiply(h,u),n);return void 0===d.length&&(d=[[d]]),i?d.map((function(t){return t[0]})):d}return r}(),jacobi:function(r){for(var n,i,s,a,o,l,c,h=1,u=r.length,d=t.identity(u,u),f=[];1===h;){for(o=r[0][1],s=0,a=1,n=0;n<u;n++)for(i=0;i<u;i++)n!=i&&o<e.abs(r[n][i])&&(o=e.abs(r[n][i]),s=n,a=i);for(l=r[s][s]===r[a][a]?r[s][a]>0?e.PI/4:-e.PI/4:e.atan(2*r[s][a]/(r[s][s]-r[a][a]))/2,(c=t.identity(u,u))[s][s]=e.cos(l),c[s][a]=-e.sin(l),c[a][s]=e.sin(l),c[a][a]=e.cos(l),d=t.multiply(d,c),r=t.multiply(t.multiply(t.inv(c),r),c),h=0,n=1;n<u;n++)for(i=1;i<u;i++)n!=i&&e.abs(r[n][i])>.001&&(h=1)}for(n=0;n<u;n++)f.push(r[n][n]);return[d,f]},rungekutta:function(t,e,r,n,i,s){var a,o,l;if(2===s)for(;n<=r;)i+=((a=e*t(n,i))+(o=e*t(n+e,i+a)))/2,n+=e;if(4===s)for(;n<=r;)i+=((a=e*t(n,i))+2*(o=e*t(n+e/2,i+a/2))+2*(l=e*t(n+e/2,i+o/2))+e*t(n+e,i+l))/6,n+=e;return i},romberg:function(t,r,n,i){for(var s,a,o,l,c,h=0,u=(n-r)/2,d=[],f=[],p=[];h<i/2;){for(c=t(r),o=r,l=0;o<=n;o+=u,l++)d[l]=o;for(s=d.length,o=1;o<s-1;o++)c+=(o%2!=0?4:2)*t(d[o]);c=u/3*(c+t(n)),p[h]=c,u/=2,h++}for(a=p.length,s=1;1!==a;){for(o=0;o<a-1;o++)f[o]=(e.pow(4,s)*p[o+1]-p[o])/(e.pow(4,s)-1);a=f.length,p=f,f=[],s++}return p},richardson:function(t,r,n,i){function s(t,e){for(var r,n=0,i=t.length;n<i;n++)t[n]===e&&(r=n);return r}for(var a,o,l,c,h,u=e.abs(n-t[s(t,n)+1]),d=0,f=[],p=[];i>=u;)a=s(t,n+i),o=s(t,n),f[d]=(r[a]-2*r[o]+r[2*o-a])/(i*i),i/=2,d++;for(c=f.length,l=1;1!=c;){for(h=0;h<c-1;h++)p[h]=(e.pow(4,l)*f[h+1]-f[h])/(e.pow(4,l)-1);c=p.length,f=p,p=[],l++}return f},simpson:function(t,e,r,n){for(var i,s=(r-e)/n,a=t(e),o=[],l=e,c=0,h=1;l<=r;l+=s,c++)o[c]=l;for(i=o.length;h<i-1;h++)a+=(h%2!=0?4:2)*t(o[h]);return s/3*(a+t(r))},hermite:function(t,e,r,n){for(var i,s=t.length,a=0,o=0,l=[],c=[],h=[],u=[];o<s;o++){for(l[o]=1,i=0;i<s;i++)o!=i&&(l[o]*=(n-t[i])/(t[o]-t[i]));for(c[o]=0,i=0;i<s;i++)o!=i&&(c[o]+=1/(t[o]-t[i]));h[o]=(1-2*(n-t[o])*c[o])*(l[o]*l[o]),u[o]=(n-t[o])*(l[o]*l[o]),a+=h[o]*e[o]+u[o]*r[o]}return a},lagrange:function(t,e,r){for(var n,i,s=0,a=0,o=t.length;a<o;a++){for(i=e[a],n=0;n<o;n++)a!=n&&(i*=(r-t[n])/(t[a]-t[n]));s+=i}return s},cubic_spline:function(e,r,n){for(var i,s=e.length,a=0,o=[],l=[],c=[],h=[],u=[],d=[],f=[];a<s-1;a++)u[a]=e[a+1]-e[a];for(c[0]=0,a=1;a<s-1;a++)c[a]=3/u[a]*(r[a+1]-r[a])-3/u[a-1]*(r[a]-r[a-1]);for(a=1;a<s-1;a++)o[a]=[],l[a]=[],o[a][a-1]=u[a-1],o[a][a]=2*(u[a-1]+u[a]),o[a][a+1]=u[a],l[a][0]=c[a];for(h=t.multiply(t.inv(o),l),i=0;i<s-1;i++)d[i]=(r[i+1]-r[i])/u[i]-u[i]*(h[i+1][0]+2*h[i][0])/3,f[i]=(h[i+1][0]-h[i][0])/(3*u[i]);for(i=0;i<s&&!(e[i]>n);i++);return r[i-=1]+(n-e[i])*d[i]+t.sq(n-e[i])*h[i]+(n-e[i])*t.sq(n-e[i])*f[i]},gauss_quadrature:function(){throw new Error("gauss_quadrature not yet implemented")},PCA:function(e){var r,n,i=e.length,s=e[0].length,a=0,o=[],l=[],c=[],h=[],u=[],d=[],f=[],p=[],m=[],b=[];for(a=0;a<i;a++)o[a]=t.sum(e[a])/s;for(a=0;a<s;a++)for(f[a]=[],r=0;r<i;r++)f[a][r]=e[r][a]-o[r];for(f=t.transpose(f),a=0;a<i;a++)for(p[a]=[],r=0;r<i;r++)p[a][r]=t.dot([f[a]],[f[r]])/(s-1);for(m=(c=t.jacobi(p))[0],l=c[1],b=t.transpose(m),a=0;a<l.length;a++)for(r=a;r<l.length;r++)l[a]<l[r]&&(n=l[a],l[a]=l[r],l[r]=n,h=b[a],b[a]=b[r],b[r]=h);for(d=t.transpose(f),a=0;a<i;a++)for(u[a]=[],r=0;r<d.length;r++)u[a][r]=t.dot([b[a]],[d[r]]);return[e,l,b,u]}}),function(e){for(var r=0;r<e.length;r++)!function(e){t.fn[e]=function(r,n){var i=this;return n?(setTimeout((function(){n.call(i,t.fn[e].call(i,r))}),15),this):"number"==typeof t[e](this,r)?t[e](this,r):t(t[e](this,r))}}(e[r])}("add divide multiply subtract dot pow exp log abs norm angle".split(" "))}(r,Math),function(t,e){var r=[].slice,n=t.utils.isNumber,i=t.utils.isArray;function s(t,r,n,i){if(t>1||n>1||t<=0||n<=0)throw new Error("Proportions should be greater than 0 and less than 1");var s=(t*r+n*i)/(r+i);return(t-n)/e.sqrt(s*(1-s)*(1/r+1/i))}t.extend({zscore:function(){var e=r.call(arguments);return n(e[1])?(e[0]-e[1])/e[2]:(e[0]-t.mean(e[1]))/t.stdev(e[1],e[2])},ztest:function(){var n,s=r.call(arguments);return i(s[1])?(n=t.zscore(s[0],s[1],s[3]),1===s[2]?t.normal.cdf(-e.abs(n),0,1):2*t.normal.cdf(-e.abs(n),0,1)):s.length>2?(n=t.zscore(s[0],s[1],s[2]),1===s[3]?t.normal.cdf(-e.abs(n),0,1):2*t.normal.cdf(-e.abs(n),0,1)):(n=s[0],1===s[1]?t.normal.cdf(-e.abs(n),0,1):2*t.normal.cdf(-e.abs(n),0,1))}}),t.extend(t.fn,{zscore:function(t,e){return(t-this.mean())/this.stdev(e)},ztest:function(r,n,i){var s=e.abs(this.zscore(r,i));return 1===n?t.normal.cdf(-s,0,1):2*t.normal.cdf(-s,0,1)}}),t.extend({tscore:function(){var n=r.call(arguments);return 4===n.length?(n[0]-n[1])/(n[2]/e.sqrt(n[3])):(n[0]-t.mean(n[1]))/(t.stdev(n[1],!0)/e.sqrt(n[1].length))},ttest:function(){var i,s=r.call(arguments);return 5===s.length?(i=e.abs(t.tscore(s[0],s[1],s[2],s[3])),1===s[4]?t.studentt.cdf(-i,s[3]-1):2*t.studentt.cdf(-i,s[3]-1)):n(s[1])?(i=e.abs(s[0]),1==s[2]?t.studentt.cdf(-i,s[1]-1):2*t.studentt.cdf(-i,s[1]-1)):(i=e.abs(t.tscore(s[0],s[1])),1==s[2]?t.studentt.cdf(-i,s[1].length-1):2*t.studentt.cdf(-i,s[1].length-1))}}),t.extend(t.fn,{tscore:function(t){return(t-this.mean())/(this.stdev(!0)/e.sqrt(this.cols()))},ttest:function(r,n){return 1===n?1-t.studentt.cdf(e.abs(this.tscore(r)),this.cols()-1):2*t.studentt.cdf(-e.abs(this.tscore(r)),this.cols()-1)}}),t.extend({anovafscore:function(){var n,i,s,a,o,l,c,h,u=r.call(arguments);if(1===u.length){for(o=new Array(u[0].length),c=0;c<u[0].length;c++)o[c]=u[0][c];u=o}for(i=new Array,c=0;c<u.length;c++)i=i.concat(u[c]);for(s=t.mean(i),n=0,c=0;c<u.length;c++)n+=u[c].length*e.pow(t.mean(u[c])-s,2);for(n/=u.length-1,l=0,c=0;c<u.length;c++)for(a=t.mean(u[c]),h=0;h<u[c].length;h++)l+=e.pow(u[c][h]-a,2);return n/(l/=i.length-u.length)},anovaftest:function(){var e,i,s,a,o=r.call(arguments);if(n(o[0]))return 1-t.centralF.cdf(o[0],o[1],o[2]);var l=t.anovafscore(o);for(e=o.length-1,s=0,a=0;a<o.length;a++)s+=o[a].length;return i=s-e-1,1-t.centralF.cdf(l,e,i)},ftest:function(e,r,n){return 1-t.centralF.cdf(e,r,n)}}),t.extend(t.fn,{anovafscore:function(){return t.anovafscore(this.toArray())},anovaftes:function(){var e,r=0;for(e=0;e<this.length;e++)r+=this[e].length;return t.ftest(this.anovafscore(),this.length-1,r-this.length)}}),t.extend({qscore:function(){var i,s,a,o,l,c=r.call(arguments);return n(c[0])?(i=c[0],s=c[1],a=c[2],o=c[3],l=c[4]):(i=t.mean(c[0]),s=t.mean(c[1]),a=c[0].length,o=c[1].length,l=c[2]),e.abs(i-s)/(l*e.sqrt((1/a+1/o)/2))},qtest:function(){var e,n=r.call(arguments);3===n.length?(e=n[0],n=n.slice(1)):7===n.length?(e=t.qscore(n[0],n[1],n[2],n[3],n[4]),n=n.slice(5)):(e=t.qscore(n[0],n[1],n[2]),n=n.slice(3));var i=n[0],s=n[1];return 1-t.tukey.cdf(e,s,i-s)},tukeyhsd:function(e){for(var r=t.pooledstdev(e),n=e.map((function(e){return t.mean(e)})),i=e.reduce((function(t,e){return t+e.length}),0),s=[],a=0;a<e.length;++a)for(var o=a+1;o<e.length;++o){var l=t.qtest(n[a],n[o],e[a].length,e[o].length,r,i,e.length);s.push([[a,o],l])}return s}}),t.extend({normalci:function(){var n,i=r.call(arguments),s=new Array(2);return n=4===i.length?e.abs(t.normal.inv(i[1]/2,0,1)*i[2]/e.sqrt(i[3])):e.abs(t.normal.inv(i[1]/2,0,1)*t.stdev(i[2])/e.sqrt(i[2].length)),s[0]=i[0]-n,s[1]=i[0]+n,s},tci:function(){var n,i=r.call(arguments),s=new Array(2);return n=4===i.length?e.abs(t.studentt.inv(i[1]/2,i[3]-1)*i[2]/e.sqrt(i[3])):e.abs(t.studentt.inv(i[1]/2,i[2].length-1)*t.stdev(i[2],!0)/e.sqrt(i[2].length)),s[0]=i[0]-n,s[1]=i[0]+n,s},significant:function(t,e){return t<e}}),t.extend(t.fn,{normalci:function(e,r){return t.normalci(e,r,this.toArray())},tci:function(e,r){return t.tci(e,r,this.toArray())}}),t.extend(t.fn,{oneSidedDifferenceOfProportions:function(e,r,n,i){var a=s(e,r,n,i);return t.ztest(a,1)},twoSidedDifferenceOfProportions:function(e,r,n,i){var a=s(e,r,n,i);return t.ztest(a,2)}})}(r,Math),r.models=function(){function t(t){var n=t[0].length,i=r.arange(n).map((function(i){var s=r.arange(n).filter((function(t){return t!==i}));return e(r.col(t,i).map((function(t){return t[0]})),r.col(t,s))}));return i}function e(t,e){var n=t.length,i=e[0].length-1,s=n-i-1,a=r.lstsq(e,t),o=r.multiply(e,a.map((function(t){return[t]}))).map((function(t){return t[0]})),l=r.subtract(t,o),c=r.mean(t),h=r.sum(o.map((function(t){return Math.pow(t-c,2)}))),u=r.sum(t.map((function(t,e){return Math.pow(t-o[e],2)}))),d=h+u;return{exog:e,endog:t,nobs:n,df_model:i,df_resid:s,coef:a,predict:o,resid:l,ybar:c,SST:d,SSE:h,SSR:u,R2:h/d}}function n(e){var n=t(e.exog),i=Math.sqrt(e.SSR/e.df_resid),s=n.map((function(t){var e=t.SST,r=t.R2;return i/Math.sqrt(e*(1-r))})),a=e.coef.map((function(t,e){return(t-0)/s[e]})),o=a.map((function(t){var n=r.studentt.cdf(t,e.df_resid);return 2*(n>.5?1-n:n)})),l=r.studentt.inv(.975,e.df_resid),c=e.coef.map((function(t,e){var r=l*s[e];return[t-r,t+r]}));return{se:s,t:a,p:o,sigmaHat:i,interval95:c}}function i(t){var e=t.R2/t.df_model/((1-t.R2)/t.df_resid),n=function(t,e,n){return r.beta.cdf(t/(n/e+t),e/2,n/2)};return{F_statistic:e,pvalue:1-n(e,t.df_model,t.df_resid)}}function s(t,r){var s=e(t,r),a=n(s),o=i(s),l=1-(1-s.R2)*((s.nobs-1)/s.df_resid);return s.t=a,s.f=o,s.adjust_R2=l,s}return{ols:s}}(),r.extend({buildxmatrix:function(){for(var t=new Array(arguments.length),e=0;e<arguments.length;e++){var n=[1];t[e]=n.concat(arguments[e])}return r(t)},builddxmatrix:function(){for(var t=new Array(arguments[0].length),e=0;e<arguments[0].length;e++){var n=[1];t[e]=n.concat(arguments[0][e])}return r(t)},buildjxmatrix:function(t){for(var e=new Array(t.length),n=0;n<t.length;n++)e[n]=t[n];return r.builddxmatrix(e)},buildymatrix:function(t){return r(t).transpose()},buildjymatrix:function(t){return t.transpose()},matrixmult:function(t,e){var n,i,s,a,o;if(t.cols()==e.rows()){if(e.rows()>1){for(a=[],n=0;n<t.rows();n++)for(a[n]=[],i=0;i<e.cols();i++){for(o=0,s=0;s<t.cols();s++)o+=t.toArray()[n][s]*e.toArray()[s][i];a[n][i]=o}return r(a)}for(a=[],n=0;n<t.rows();n++)for(a[n]=[],i=0;i<e.cols();i++){for(o=0,s=0;s<t.cols();s++)o+=t.toArray()[n][s]*e.toArray()[i];a[n][i]=o}return r(a)}},regress:function(t,e){var n=r.xtranspxinv(t),i=t.transpose(),s=r.matrixmult(r(n),i);return r.matrixmult(s,e)},regresst:function(t,e,n){var i=r.regress(t,e),s={anova:{}},a=r.jMatYBar(t,i);s.yBar=a;var o=e.mean();s.anova.residuals=r.residuals(e,a),s.anova.ssr=r.ssr(a,o),s.anova.msr=s.anova.ssr/(t[0].length-1),s.anova.sse=r.sse(e,a),s.anova.mse=s.anova.sse/(e.length-(t[0].length-1)-1),s.anova.sst=r.sst(e,o),s.anova.mst=s.anova.sst/(e.length-1),s.anova.r2=1-s.anova.sse/s.anova.sst,s.anova.r2<0&&(s.anova.r2=0),s.anova.fratio=s.anova.msr/s.anova.mse,s.anova.pvalue=r.anovaftest(s.anova.fratio,t[0].length-1,e.length-(t[0].length-1)-1),s.anova.rmse=Math.sqrt(s.anova.mse),s.anova.r2adj=1-s.anova.mse/s.anova.mst,s.anova.r2adj<0&&(s.anova.r2adj=0),s.stats=new Array(t[0].length);for(var l,c,h,u=r.xtranspxinv(t),d=0;d<i.length;d++)l=Math.sqrt(s.anova.mse*Math.abs(u[d][d])),c=Math.abs(i[d]/l),h=r.ttest(c,e.length-t[0].length-1,n),s.stats[d]=[i[d],l,c,h];return s.regress=i,s},xtranspx:function(t){return r.matrixmult(t.transpose(),t)},xtranspxinv:function(t){var e=r.matrixmult(t.transpose(),t);return r.inv(e)},jMatYBar:function(t,e){var n=r.matrixmult(t,e);return new r(n)},residuals:function(t,e){return r.matrixsubtract(t,e)},ssr:function(t,e){for(var r=0,n=0;n<t.length;n++)r+=Math.pow(t[n]-e,2);return r},sse:function(t,e){for(var r=0,n=0;n<t.length;n++)r+=Math.pow(t[n]-e[n],2);return r},sst:function(t,e){for(var r=0,n=0;n<t.length;n++)r+=Math.pow(t[n]-e,2);return r},matrixsubtract:function(t,e){for(var n=new Array(t.length),i=0;i<t.length;i++){n[i]=new Array(t[i].length);for(var s=0;s<t[i].length;s++)n[i][s]=t[i][s]-e[i][s]}return r(n)}}),r.jStat=r,r)}));class _o{static hM2Hr(t,e){return 0===t&&0===e?0:t/(t+e)}static faCr2Far(t,e){return 0===t&&0===e?0:t/(t+e)}static hMFaCr2Acc(t,e,r,n){return 0===t&&0===e&&0===r&&0===n?0:(t+n)/(t+e+r+n)}static hrFar2Acc(t,e){return(t+(1-e))/2}static hFa2Ppv(t,e){return 0===t&&0===e?0:t/(t+e)}static mCr2Fomr(t,e){return 0===t&&0===e?0:t/(t+e)}static hrFar2D(t,e,r=1){return 1===r?$o.normal.inv(t,0,1)-$o.normal.inv(e,0,1):Math.sqrt(2/(r*r+1))*(r*$o.normal.inv(t,0,1)-$o.normal.inv(e,0,1))}static hrFar2C(t,e,r=1){return 1===r?-($o.normal.inv(t,0,1)+$o.normal.inv(e,0,1))/2:Math.sqrt(2/(r*r+1))*(r/(r+1))*-($o.normal.inv(t,0,1)+$o.normal.inv(e,0,1))}static dC2Hr(t,e,r=1){return 1===r?$o.normal.cdf(t/2-e,0,1):$o.normal.cdf(Math.sqrt((r*r+1)/2)*(t/(1+r)-e/r),0,1)}static dC2Far(t,e,r=1){return 1===r?$o.normal.cdf(-(t/2+e),0,1):$o.normal.cdf(Math.sqrt((r*r+1)/2)*-(t/(1+r)+e),0,1)}static dFar2Hr(t,e,r=1){return 1===r?$o.normal.cdf(t+$o.normal.inv(e,0,1),0,1):$o.normal.cdf((Math.sqrt((r*r+1)/2)*t+$o.normal.inv(e,0,1))/r,0,1)}static cFar2Hr(t,e,r=1){return 1===r?$o.normal.cdf(-2*t-$o.normal.inv(e,0,1),0,1):$o.normal.cdf(-Math.sqrt((r*r+1)/2)*((r+1)/r)*t-$o.normal.inv(e,0,1),0,1)}static d2MuN(t,e=1){return 1===e?-t/2:-Math.sqrt((e*e+1)/2)*(1/(e+1))*t}static muN2D(t,e=1){return 1===e?-2*t:-Math.sqrt(2/(e*e+1))*(e+1)*t}static d2MuS(t,e=1){return 1===e?t/2:Math.sqrt((e*e+1)/2)*(e/(e+1))*t}static muS2D(t,e=1){return 1===e?2*t:Math.sqrt(2/(e*e+1))*((e+1)/e)*t}static c2L(t,e=1){return 1===e?t:Math.sqrt((e*e+1)/2)*t}static l2C(t,e=1){return 1===e?t:Math.sqrt(2/(e*e+1))*t}static s2H(t=1){return 1/(t*Math.sqrt(2*Math.PI))}static h2S(t){return 1/(t*Math.sqrt(2*Math.PI))}static hr2Zhr(t){return $o.normal.inv(t,0,1)}static far2Zfar(t){return $o.normal.inv(t,0,1)}static zhr2Hr(t){return $o.normal.cdf(t,0,1)}static zfar2Far(t){return $o.normal.cdf(t,0,1)}}let So,Ao,Eo=t=>t;class To extends vo{static get properties(){return{contour:{attribute:"contour",type:String,reflect:!0},point:{attribute:"point",type:String,reflect:!0},isoD:{attribute:"iso-d",type:String,reflect:!0},isoC:{attribute:"iso-c",type:String,reflect:!0},zRoc:{attribute:"z-roc",type:Boolean,reflect:!0},far:{attribute:"far",type:Number,reflect:!0},hr:{attribute:"hr",type:Number,reflect:!0},d:{attribute:!1,type:Number,reflect:!1},c:{attribute:!1,type:Number,reflect:!1},s:{attribute:!1,type:Number,reflect:!1},width:{attribute:!1,type:Number,reflect:!1},height:{attribute:!1,type:Number,reflect:!1},rem:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.firstUpdate=!0,this.drag=!1,this.sdt=!1,this.contours=["sensitivity","bias","accuracy"],this.contour=void 0,this.points=["all","first","rest","none"],this.point="all",this.isoDs=["all","first","rest","none"],this.isoD="first",this.isoCs=["all","first","rest","none"],this.isoC="first",this.zRoc=!1,this.far=.25,this.hr=.75,this.s=1,this.label="",this.locations=[{name:"default",far:this.far,hr:this.hr,s:this.s,label:""}],this.pointArray=[],this.isoDArray=[],this.isoCArray=[],this.width=NaN,this.height=NaN,this.rem=NaN,this.alignState()}alignState(){this.locations[0].hr=this.hr,this.locations[0].far=this.far,this.locations[0].s=this.s,this.locations[0].label=this.label,this.d=_o.hrFar2D(this.hr,this.far,this.s),this.c=_o.hrFar2C(this.hr,this.far,this.s),this.pointArray=[],this.isoDArray=[],this.isoCArray=[],this.locations.forEach(((t,e)=>{t.d=_o.hrFar2D(t.hr,t.far,t.s),t.c=_o.hrFar2C(t.hr,t.far,t.s),0!==e||"first"!==this.point&&"all"!==this.point?e>0&&("rest"===this.point||"all"===this.point)&&this.pointArray.push(t):this.pointArray.push(t),0!==e||"first"!==this.isoD&&"all"!==this.isoD?e>0&&("rest"===this.isoD||"all"===this.isoD)&&this.isoDArray.push(t):this.isoDArray.push(t),0!==e||"first"!==this.isoC&&"all"!==this.isoC?e>0&&("rest"===this.isoC||"all"===this.isoC)&&this.isoCArray.push(t):this.isoCArray.push(t)}))}set(t,e,r="default",n="",i=1){"default"===r&&(this.hr=t,this.far=e,this.s=i,this.label=n);const s=this.locations.find((t=>t.name===r));void 0===s?this.locations.push({name:r,far:e,hr:t,s:i,label:n}):(s.hr=t,s.far=e,s.s=i,s.label=n),this.requestUpdate()}setWithSDT(t,e,r="default",n="",i=1){"default"===r&&(this.hr=_o.dC2Hr(t,e,i),this.far=_o.dC2Far(t,e,i),this.s=i,this.label=n);const s=this.locations.find((t=>t.name===r));void 0===s?this.locations.push({name:r,far:_o.dC2Far(t,e,i),hr:_o.dC2Hr(t,e,i),s:i,label:n}):(s.hr=_o.dC2Hr(t,e,i),s.far=_o.dC2Far(t,e,i),s.s=i,s.label=n),this.sdt=!0,this.requestUpdate()}static get styles(){return[super.styles,a(So||(So=Eo`
|
|
862
|
+
:host {
|
|
863
|
+
display: inline-block;
|
|
864
|
+
|
|
865
|
+
width: 20rem;
|
|
866
|
+
height: 20rem;
|
|
867
|
+
}
|
|
868
|
+
|
|
869
|
+
.main {
|
|
870
|
+
width: 100%;
|
|
871
|
+
height: 100%;
|
|
872
|
+
}
|
|
873
|
+
|
|
874
|
+
.plot-contour,
|
|
875
|
+
.legend-contour .contour {
|
|
876
|
+
stroke: var(---color-background);
|
|
877
|
+
stroke-width: 0.5;
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
text {
|
|
881
|
+
/* stylelint-disable property-no-vendor-prefix */
|
|
882
|
+
-webkit-user-select: none;
|
|
883
|
+
-moz-user-select: none;
|
|
884
|
+
-ms-user-select: none;
|
|
885
|
+
user-select: none;
|
|
886
|
+
}
|
|
887
|
+
|
|
888
|
+
.point.interactive {
|
|
889
|
+
cursor: move;
|
|
890
|
+
|
|
891
|
+
filter: url("#shadow-2");
|
|
892
|
+
outline: none;
|
|
893
|
+
|
|
894
|
+
/* HACK: This gets Safari to correctly apply the filter! */
|
|
895
|
+
/* https://github.com/emilbjorklund/svg-weirdness/issues/27 */
|
|
896
|
+
stroke: #000000;
|
|
897
|
+
stroke-opacity: 0;
|
|
898
|
+
stroke-width: 0;
|
|
899
|
+
}
|
|
900
|
+
|
|
901
|
+
/* Make a larger target for touch users */
|
|
902
|
+
@media (pointer: coarse) {
|
|
903
|
+
.point.interactive .circle {
|
|
904
|
+
stroke: #000000;
|
|
905
|
+
stroke-opacity: 0;
|
|
906
|
+
stroke-width: 12px;
|
|
907
|
+
}
|
|
908
|
+
}
|
|
909
|
+
|
|
910
|
+
.point.interactive:hover {
|
|
911
|
+
filter: url("#shadow-4");
|
|
912
|
+
|
|
913
|
+
/* HACK: This gets Safari to correctly apply the filter! */
|
|
914
|
+
stroke: #ff0000;
|
|
915
|
+
}
|
|
916
|
+
|
|
917
|
+
.point.interactive:active {
|
|
918
|
+
filter: url("#shadow-8");
|
|
919
|
+
|
|
920
|
+
/* HACK: This gets Safari to correctly apply the filter! */
|
|
921
|
+
stroke: #00ff00;
|
|
922
|
+
}
|
|
923
|
+
|
|
924
|
+
:host(.keyboard) .point.interactive:focus {
|
|
925
|
+
filter: url("#shadow-8");
|
|
926
|
+
|
|
927
|
+
/* HACK: This gets Safari to correctly apply the filter! */
|
|
928
|
+
stroke: #0000ff;
|
|
929
|
+
}
|
|
930
|
+
|
|
931
|
+
.background {
|
|
932
|
+
fill: var(---color-element-background);
|
|
933
|
+
stroke: var(---color-element-border);
|
|
934
|
+
stroke-width: 1;
|
|
935
|
+
shape-rendering: crispEdges;
|
|
936
|
+
}
|
|
937
|
+
|
|
938
|
+
.title-x,
|
|
939
|
+
.title-y,
|
|
940
|
+
.title-contour {
|
|
941
|
+
font-weight: 600;
|
|
942
|
+
|
|
943
|
+
fill: currentColor;
|
|
944
|
+
}
|
|
945
|
+
|
|
946
|
+
.tick {
|
|
947
|
+
font-size: 0.75rem;
|
|
948
|
+
}
|
|
949
|
+
|
|
950
|
+
.axis-x path,
|
|
951
|
+
.axis-x line,
|
|
952
|
+
.axis-y path,
|
|
953
|
+
.axis-y line {
|
|
954
|
+
stroke: var(---color-element-border);
|
|
955
|
+
}
|
|
956
|
+
|
|
957
|
+
.axis-contour .domain {
|
|
958
|
+
stroke: none;
|
|
959
|
+
}
|
|
960
|
+
|
|
961
|
+
.diagonal {
|
|
962
|
+
stroke: var(---color-element-border);
|
|
963
|
+
stroke-dasharray: 4;
|
|
964
|
+
stroke-width: 1;
|
|
965
|
+
}
|
|
966
|
+
|
|
967
|
+
.curve-iso-d {
|
|
968
|
+
fill: none;
|
|
969
|
+
stroke: var(---color-d);
|
|
970
|
+
stroke-width: 2;
|
|
971
|
+
}
|
|
972
|
+
|
|
973
|
+
.curve-iso-c {
|
|
974
|
+
fill: none;
|
|
975
|
+
stroke: var(---color-c);
|
|
976
|
+
stroke-width: 2;
|
|
977
|
+
}
|
|
978
|
+
|
|
979
|
+
.point .circle {
|
|
980
|
+
fill: var(---color-element-emphasis);
|
|
981
|
+
|
|
982
|
+
r: 6px;
|
|
983
|
+
}
|
|
984
|
+
|
|
985
|
+
.point .label {
|
|
986
|
+
font-size: 0.75rem;
|
|
987
|
+
|
|
988
|
+
dominant-baseline: middle;
|
|
989
|
+
text-anchor: middle;
|
|
990
|
+
|
|
991
|
+
fill: var(---color-text-inverse);
|
|
992
|
+
}
|
|
993
|
+
`))]}render(){return z(Ao||(Ao=Eo`
|
|
994
|
+
${0}
|
|
995
|
+
`),vo.svgFilters)}getDimensions(){this.width=parseFloat(this.getComputedStyleValue("width"),10),this.height=parseFloat(this.getComputedStyleValue("height"),10),this.rem=parseFloat(getComputedStyle(document.documentElement).getPropertyValue("font-size"),10)}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.getDimensions.bind(this))}disconnectedCallback(){window.removeEventListener("resize",this.getDimensions.bind(this)),super.disconnectedCallback()}firstUpdated(t){super.firstUpdated(t),this.getDimensions()}update(t){if(super.update(t),this.alignState(),Number.isNaN(this.width)||Number.isNaN(this.height)||Number.isNaN(this.rem))return;const e=this.width,r=this.height,n=Math.min(e,r),i=2*this.rem,s=3*this.rem,a=3*this.rem,o=n-(i+s),l=n-(a+2*this.rem),c=parseInt(this.getComputedStyleValue("---transition-duration"),10),h=Ca().domain(this.zRoc?[-3,3]:[0,1]).range([0,l]);this.xScale=h;const u=Ca().domain(this.zRoc?[3,-3]:[1,0]).range([0,o]);this.yScale=u;const d=lr().subject(((t,e)=>({x:this.xScale(this.zRoc?_o.far2Zfar(e.far):e.far),y:this.yScale(this.zRoc?_o.hr2Zhr(e.hr):e.hr)}))).on("start",(t=>{Ge(t.currentTarget).classed("dragging",!0)})).on("drag",((t,e)=>{this.drag=!0;const r=this.zRoc?_o.zfar2Far(this.xScale.invert(t.x)):this.xScale.invert(t.x),n=this.zRoc?_o.zhr2Hr(this.yScale.invert(t.y)):this.yScale.invert(t.y);e.far=r<.001?.001:r>.999?.999:r,e.hr=n<=.001?.001:n>=.999?.999:n,"default"===e.name&&(this.far=e.far,this.hr=e.hr),this.alignState(),this.requestUpdate(),this.dispatchEvent(new CustomEvent("roc-point-change",{detail:{name:e.name,far:e.far,hr:e.hr,d:e.d,c:e.c,s:e.s,label:e.label},bubbles:!0}))})).on("end",(t=>{Ge(t.currentTarget).classed("dragging",!1)})),f=Oa().x((t=>h(this.zRoc?_o.far2Zfar(t.far):t.far))).y((t=>u(this.zRoc?_o.hr2Zhr(t.hr):t.hr))),p=Ge(this.renderRoot).selectAll(".main").data([{width:this.width,height:this.height,rem:this.rem}]),m=p.enter().append("svg").classed("main",!0),b=m.merge(p).attr("viewBox",`0 0 ${n} ${n}`),g=m.append("g").classed("plot",!0),v=b.select(".plot").attr("transform",`translate(${a}, ${i})`);g.append("clipPath").attr("id","clip-roc-space").append("rect"),v.select("clipPath rect").attr("height",o+1).attr("width",l+1);const y=g.append("g").classed("underlayer",!0),w=v.select(".underlayer");if(y.append("rect").classed("background",!0),w.select(".background").attr("height",o).attr("width",l),this.firstUpdate||t.has("contour")||t.has("zRoc")||t.has("width")||t.has("height")||t.has("rem")||t.has("s"))if(void 0!==this.contour){const t=100,e=[];for(let r=.5,n=0;r<t;r+=1)for(let i=.5;i<t;i+=1,n+=1){const s=this.zRoc?_o.zhr2Hr(i/t*6-3):i/t,a=this.zRoc?_o.zfar2Far(6*(1-r/t)-3):1-r/t;e[n]="bias"===this.contour?_o.hrFar2C(s,a,this.s):"sensitivity"===this.contour?_o.hrFar2D(s,a,this.s):"accuracy"===this.contour?_o.hrFar2Acc(s,a):null}const r="bias"===this.contour?yt(-3,3,.25):"sensitivity"===this.contour?yt(-6,6,.5):"accuracy"===this.contour?yt(0,1,.05):null,n=Ei().size([t,t]).thresholds(r),i=this.getComputedStyleValue("bias"===this.contour?"---color-element-background":"sensitivity"===this.contour?"---color-d":"accuracy"===this.contour?"---color-acc-dark":null),s=this.getComputedStyleValue("bias"===this.contour?"---color-c":"sensitivity"===this.contour||"accuracy"===this.contour?"---color-element-background":null),a=Ca().domain(at(r)).interpolate((()=>jr(i,s))),o=w.selectAll(".plot-contour").data([this.contour]),h=o.enter().append("g").classed("plot-contour",!0).merge(o).selectAll(".contour").data(n(e));h.enter().append("path").classed("contour",!0).merge(h).transition().duration(2*c).ease(hi).attr("d",fa(ga().scale(l/t))).attr("fill",(t=>a(t.value))),h.exit().remove();const u=w.selectAll(".title-contour").data([this.contour]);u.enter().append("text").classed("title-contour",!0).attr("text-anchor","middle").merge(u).classed("math-var","bias"===this.contour||"sensitivity"===this.contour).attr("transform","bias"===this.contour||"sensitivity"===this.contour?`translate(${l+1.25*this.rem}, ${this.rem})`:"accuracy"===this.contour?`translate(${l+1.125*this.rem}, ${this.rem})`:null).text("bias"===this.contour?"c":"sensitivity"===this.contour?"d′":"accuracy"===this.contour?"Acc":null);const d=100,f=[];for(let e=.5,r=0;e<d;e+=1,r+=4)f[r]="bias"===this.contour?-(e/t*6-3):"sensitivity"===this.contour?e/t*12-6:"accuracy"===this.contour?e/t:null,f[r+1]=f[r],f[r+2]=f[r],f[r+3]=f[r];const p=Ei().size([4,d]).thresholds(r),m=Ca().domain("bias"===this.contour?[3,-3]:"sensitivity"===this.contour?[6,-6]:"accuracy"===this.contour?[1,0]:null).range([0,10*this.rem]),b=w.selectAll(".legend-contour").data([this.contour]),g=b.enter().append("g").classed("legend-contour",!0),v=g.merge(b).attr("transform","bias"===this.contour||"sensitivity"===this.contour?`translate(${l+1.25*this.rem}, ${1.5*this.rem})`:"accuracy"===this.contour?`translate(${l+1.5*this.rem}, ${1.5*this.rem})`:null);b.exit().remove(),g.append("g").classed("axis-contour",!0),v.select(".axis-contour").call(Mt(m).ticks(7).tickSize(0)).attr("font-size",null).attr("font-family",null);const y=v.selectAll(".contour").data(p(f));y.enter().append("path").classed("contour",!0).merge(y).attr("d",fa(ga().scale(10*this.rem/d))).attr("fill",(t=>a(t.value))),y.exit().remove()}else{w.selectAll(".plot-contour").data([]).exit().remove();w.selectAll(".title-contour").data([]).exit().remove();w.selectAll(".legend-contour").data([]).exit().remove()}y.append("g").classed("axis-x",!0);w.select(".axis-x").attr("transform",`translate(0, ${o})`).transition().duration(2*c).ease(hi).call(Tt(h)).attr("font-size",null).attr("font-family",null).selectAll("line, path").attr("stroke",null);const x=y.append("text").classed("title-x",!0).attr("text-anchor","middle");x.append("tspan").classed("z math-var",!0),x.append("tspan").classed("name",!0);const k=w.select(".title-x").attr("transform",`translate(${l/2}, ${o+2.25*this.rem})`);k.select("tspan.z").text(this.zRoc?"z":""),k.select("tspan.name").text(this.zRoc?"(False Alarm Rate)":"False Alarm Rate"),y.append("g").classed("axis-y",!0);w.select(".axis-y").transition().duration(2*c).ease(hi).call(Mt(u)).attr("font-size",null).attr("font-family",null).selectAll("line, path").attr("stroke",null);const $=y.append("text").classed("title-y",!0).attr("text-anchor","middle");$.append("tspan").classed("z math-var",!0),$.append("tspan").classed("name",!0);const _=w.select(".title-y").attr("transform",`translate(${-2*this.rem}, ${o/2})rotate(-90)`);_.select("tspan.z").text(this.zRoc?"z":""),_.select("tspan.name").text(this.zRoc?"(Hit Rate)":"Hit Rate"),y.append("line").classed("diagonal",!0),w.select(".diagonal").attr("x1",this.zRoc?h(-3):h(0)).attr("y1",this.zRoc?u(-3):u(0)).attr("x2",this.zRoc?h(3):h(1)).attr("y2",this.zRoc?u(3):u(1)),g.append("g").classed("content",!0);const S=v.select(".content"),A=S.selectAll(".curve-iso-d").data(this.isoDArray,(t=>t.name)),E=A.enter().append("path").classed("curve-iso-d",!0).attr("clip-path","url(#clip-roc-space)").merge(A);this.firstUpdate||t.has("zRoc")?E.transition().duration(this.drag?0:2*c).ease(hi).attr("d",(t=>f(yt(h.range()[0],h.range()[1]+1,1).map((e=>({far:this.zRoc?_o.zfar2Far(h.invert(e)):h.invert(e),hr:this.zRoc?_o.dFar2Hr(t.d,_o.zfar2Far(h.invert(e)),t.s):_o.dFar2Hr(t.d,h.invert(e),t.s)})))))):this.sdt?E.transition().duration(this.drag?0:c).ease(hi).attrTween("d",((t,e,r)=>{const n=r[e];n.hr=void 0,n.far=void 0;const i=Qr(void 0!==n.d?n.d:t.d,t.d),s=Qr(void 0!==n.s?n.s:t.s,t.s);return t=>{n.d=i(t),n.s=s(t);const e=yt(h.range()[0],h.range()[1]+1,1).map((t=>({far:this.zRoc?_o.zfar2Far(h.invert(t)):h.invert(t),hr:this.zRoc?_o.dFar2Hr(n.d,_o.zfar2Far(h.invert(t)),n.s):_o.dFar2Hr(n.d,h.invert(t),n.s)})));return f(e)}})):E.transition().duration(this.drag?0:c).ease(hi).attrTween("d",((t,e,r)=>{const n=r[e];n.d=void 0,n.s=void 0;const i=Qr(void 0!==n.hr?n.hr:t.hr,t.hr),s=Qr(void 0!==n.far?n.far:t.far,t.far);return e=>{n.hr=i(e),n.far=s(e);const r=yt(h.range()[0],h.range()[1]+1,1).map((e=>({far:this.zRoc?_o.zfar2Far(h.invert(e)):h.invert(e),hr:this.zRoc?_o.dFar2Hr(_o.hrFar2D(n.hr,n.far,t.s),_o.zfar2Far(h.invert(e)),t.s):_o.dFar2Hr(_o.hrFar2D(n.hr,n.far,t.s),h.invert(e),t.s)})));return f(r)}})),A.exit().remove();const T=S.selectAll(".curve-iso-c").data(this.isoCArray,(t=>t.name)),M=T.enter().append("path").classed("curve-iso-c",!0).attr("clip-path","url(#clip-roc-space)").merge(T);this.firstUpdate||t.has("zRoc")?M.transition().duration(this.drag?0:2*c).ease(hi).attr("d",(t=>f(yt(h.range()[0],h.range()[1]+1,1).map((e=>({far:this.zRoc?_o.zfar2Far(h.invert(e)):h.invert(e),hr:this.zRoc?_o.cFar2Hr(t.c,_o.zfar2Far(h.invert(e)),t.s):_o.cFar2Hr(t.c,h.invert(e),t.s)})))))):this.sdt?M.transition().duration(this.drag?0:c).ease(hi).attrTween("d",((t,e,r)=>{const n=r[e];n.hr=void 0,n.far=void 0;const i=Qr(void 0!==n.c?n.c:t.c,t.c),s=Qr(void 0!==n.s?n.s:t.s,t.s);return t=>{n.c=i(t),n.s=s(t);const e=yt(h.range()[0],h.range()[1]+1,1).map((t=>({far:this.zRoc?_o.zfar2Far(h.invert(t)):h.invert(t),hr:this.zRoc?_o.cFar2Hr(n.c,_o.zfar2Far(h.invert(t)),n.s):_o.cFar2Hr(n.c,h.invert(t),n.s)})));return f(e)}})):M.transition().duration(this.drag?0:c).ease(hi).attrTween("d",((t,e,r)=>{const n=r[e];n.c=void 0,n.s=void 0;const i=Qr(void 0!==n.hr?n.hr:t.hr,t.hr),s=Qr(void 0!==n.far?n.far:t.far,t.far);return e=>{n.hr=i(e),n.far=s(e);const r=yt(h.range()[0],h.range()[1]+1,1).map((e=>({far:this.zRoc?_o.zfar2Far(h.invert(e)):h.invert(e),hr:this.zRoc?_o.cFar2Hr(_o.hrFar2C(n.hr,n.far,t.s),_o.zfar2Far(h.invert(e)),t.s):_o.cFar2Hr(_o.hrFar2C(n.hr,n.far,t.s),h.invert(e),t.s)})));return f(r)}})),T.exit().remove();const C=S.selectAll(".point").data(this.pointArray,(t=>t.name)),N=C.enter().append("g").classed("point",!0);N.append("circle").classed("circle",!0),N.append("text").classed("label",!0);const R=N.merge(C);R.select("text").text((t=>t.label)),(this.firstUpdate||t.has("interactive"))&&(this.interactive?R.attr("tabindex",0).classed("interactive",!0).call(d).on("keydown",((t,e)=>{if(["ArrowUp","ArrowDown","ArrowRight","ArrowLeft"].includes(t.key)){let r=this.zRoc?_o.hr2Zhr(e.hr):e.hr,n=this.zRoc?_o.far2Zfar(e.far):e.far;switch(t.key){case"ArrowUp":r+=this.zRoc?t.shiftKey?.05:.25:t.shiftKey?.01:.05;break;case"ArrowDown":r-=this.zRoc?t.shiftKey?.05:.25:t.shiftKey?.01:.05;break;case"ArrowRight":n+=this.zRoc?t.shiftKey?.05:.25:t.shiftKey?.01:.05;break;case"ArrowLeft":n-=this.zRoc?t.shiftKey?.05:.25:t.shiftKey?.01:.05}r=this.zRoc?_o.zhr2Hr(r):r,n=this.zRoc?_o.zfar2Far(n):n,r=r<.001?.001:r>.999?.999:r,n=n<.001?.001:n>.999?.999:n,r===e.hr&&n===e.far||(e.hr=r,e.far=n,"default"===e.name&&(this.hr=e.hr,this.far=e.far),this.alignState(),this.requestUpdate(),this.dispatchEvent(new CustomEvent("roc-point-change",{detail:{name:e.name,far:e.far,hr:e.hr,d:e.d,c:e.c,s:e.s,label:e.label},bubbles:!0}))),t.preventDefault()}})):R.attr("tabindex",null).classed("interactive",!1).on("drag",null).on("keydown",null)),this.firstUpdate||t.has("zRoc")?R.transition().duration(this.drag?0:2*c).ease(hi).attr("transform",((t,e,r)=>{const n=r[e];return n.d=void 0,n.c=void 0,n.s=void 0,`translate(\n ${h(this.zRoc?_o.far2Zfar(t.far):t.far)},\n ${u(this.zRoc?_o.hr2Zhr(t.hr):t.hr)}\n )`})):this.sdt?R.transition().duration(this.drag?0:c).ease(hi).attrTween("transform",((t,e,r)=>{const n=r[e],i=Qr(void 0!==n.d?n.d:t.d,t.d),s=Qr(void 0!==n.c?n.c:t.c,t.c),a=Qr(void 0!==n.s?n.s:t.s,t.s);return t=>(n.d=i(t),n.c=s(t),n.s=a(t),`translate(\n ${h(this.zRoc?_o.far2Zfar(_o.dC2Far(n.d,n.c,n.s)):_o.dC2Far(n.d,n.c,n.s))},\n ${u(this.zRoc?_o.hr2Zhr(_o.dC2Hr(n.d,n.c,n.s)):_o.dC2Hr(n.d,n.c,n.s))}\n )`)})):R.transition().duration(this.drag?0:c).ease(hi).attr("transform",((t,e,r)=>{const n=r[e];return n.d=void 0,n.c=void 0,n.s=void 0,`translate(\n ${h(this.zRoc?_o.far2Zfar(t.far):t.far)},\n ${u(this.zRoc?_o.hr2Zhr(t.hr):t.hr)}\n )`})),C.exit().remove(),this.drag=!1,this.sdt=!1,this.firstUpdate=!1}}customElements.define("roc-space",To);let Mo,Co,No,Ro,qo,zo,Po,Fo,Oo,Ho,Do,Io,Uo,Lo,jo,Vo,Bo,Ko,Xo,Zo,Yo,Go,Wo=t=>t;class Qo extends vo{static get properties(){return{trials:{attribute:"trials",type:Number,reflect:!0},duration:{attribute:"duration",type:Number,reflect:!0},coherence:{attribute:"coherence",type:Number,reflect:!0},payoff:{attribute:"payoff",type:Number,reflect:!0},color:{attribute:"color",type:String,reflect:!0},zRoc:{attribute:"z-roc",type:Boolean,reflect:!0},run:{attribute:"run",type:Boolean,reflect:!0},pause:{attribute:"pause",type:Boolean,reflect:!0},reset:{attribute:"reset",type:Boolean,reflect:!0},state:{atribute:!1,type:String,reflect:!1}}}constructor(){super(),this.trials=void 0,this.duration=void 0,this.coherence=void 0,this.payoff=void 0,this.colors=["none","accuracy","stimulus","response","outcome"],this.color=void 0,this.zRoc=void 0,this.run=!1,this.pause=!1,this.reset=!1,this.states=["resetted","running","paused","ended"],this.state="resetted"}setTrials(t){this.trials=t.target.value,this.dispatchEvent(new CustomEvent("detectable-control-trials",{detail:{trials:this.trials},bubbles:!0}))}setDuration(t){this.duration=t.target.value,this.dispatchEvent(new CustomEvent("detectable-control-duration",{detail:{duration:this.duration},bubbles:!0}))}setCoherence(t){this.coherence=t.target.value,this.dispatchEvent(new CustomEvent("detectable-control-coherence",{detail:{coherence:this.coherence},bubbles:!0}))}setPayoff(t){this.payoff=t.target.value,this.dispatchEvent(new CustomEvent("detectable-control-payoff",{detail:{payoff:this.payoff},bubbles:!0}))}chooseColor(t){this.color=t.target.value,this.dispatchEvent(new CustomEvent("detectable-control-color",{detail:{color:this.color},bubbles:!0}))}flipZRoc(t){this.zRoc=t.target.checked,this.dispatchEvent(new CustomEvent("detectable-control-z-roc",{detail:{zRoc:this.zRoc},bubbles:!0}))}doRun(){this.state="running",this.dispatchEvent(new CustomEvent("detectable-control-run",{detail:{},bubbles:!0}))}doPause(){this.state="paused",this.dispatchEvent(new CustomEvent("detectable-control-pause",{detail:{},bubbles:!0}))}doReset(){this.state="resetted",this.dispatchEvent(new CustomEvent("detectable-control-reset",{detail:{},bubbles:!0}))}complete(){this.state="ended"}static get styles(){return[super.styles,a(Mo||(Mo=Wo`
|
|
996
|
+
:host {
|
|
997
|
+
display: inline-block;
|
|
998
|
+
}
|
|
999
|
+
|
|
1000
|
+
.holder {
|
|
1001
|
+
display: flex;
|
|
1002
|
+
|
|
1003
|
+
flex-direction: row;
|
|
1004
|
+
|
|
1005
|
+
align-items: stretch;
|
|
1006
|
+
justify-content: center;
|
|
1007
|
+
}
|
|
1008
|
+
|
|
1009
|
+
.buttons {
|
|
1010
|
+
display: flex;
|
|
1011
|
+
|
|
1012
|
+
flex-direction: column;
|
|
1013
|
+
|
|
1014
|
+
align-items: stretch;
|
|
1015
|
+
justify-content: center;
|
|
1016
|
+
}
|
|
1017
|
+
|
|
1018
|
+
/* Payoff Slider */
|
|
1019
|
+
.payoff {
|
|
1020
|
+
--decidables-spinner-prefix: "$";
|
|
1021
|
+
}
|
|
1022
|
+
`))]}render(){return z(Co||(Co=Wo`
|
|
1023
|
+
<div class="holder">
|
|
1024
|
+
${0}
|
|
1025
|
+
${0}
|
|
1026
|
+
${0}
|
|
1027
|
+
${0}
|
|
1028
|
+
${0}
|
|
1029
|
+
${0}
|
|
1030
|
+
${0}
|
|
1031
|
+
</div>`),this.trials?z(No||(No=Wo`<decidables-slider min="1" max="100" step="1" .value=${0} @change=${0} @input=${0}>Trials</decidables-slider>`),this.trials,this.setTrials.bind(this),this.setTrials.bind(this)):z(Ro||(Ro=Wo``)),this.duration?z(qo||(qo=Wo`<decidables-slider min="10" max="2000" step="10" .value=${0} @change=${0} @input=${0}>Duration</decidables-slider>`),this.duration,this.setDuration.bind(this),this.setDuration.bind(this)):z(zo||(zo=Wo``)),this.coherence?z(Po||(Po=Wo`<decidables-slider min="0" max="1" step=".01" .value=${0} @change=${0} @input=${0}>Coherence</decidables-slider>`),this.coherence,this.setCoherence.bind(this),this.setCoherence.bind(this)):z(Fo||(Fo=Wo``)),this.payoff?z(Oo||(Oo=Wo`<decidables-slider class="payoff" min="0" max="100" step="1" .value=${0} @change=${0} @input=${0}>Payoff</decidables-slider>`),this.payoff,this.setPayoff.bind(this),this.setPayoff.bind(this)):z(Ho||(Ho=Wo``)),void 0!==this.color?z(Do||(Do=Wo`
|
|
1032
|
+
<decidables-toggle @change=${0}>
|
|
1033
|
+
<span slot="label">Emphasis</span>
|
|
1034
|
+
<decidables-toggle-option name="toggle" value="none" ?checked=${0}>None</decidables-toggle-option>
|
|
1035
|
+
<decidables-toggle-option name="toggle" value="accuracy" ?checked=${0}>Accuracy</decidables-toggle-option>
|
|
1036
|
+
<decidables-toggle-option name="toggle" value="stimulus" ?checked=${0}>Stimulus</decidables-toggle-option>
|
|
1037
|
+
<decidables-toggle-option name="toggle" value="response" ?checked=${0}>Response</decidables-toggle-option>
|
|
1038
|
+
<decidables-toggle-option name="toggle" value="outcome" ?checked=${0}>Outcome</decidables-toggle-option>
|
|
1039
|
+
</decidables-toggle>
|
|
1040
|
+
`),this.chooseColor.bind(this),"none"===this.color,"accuracy"===this.color,"stimulus"===this.color,"response"===this.color,"outcome"===this.color):z(Io||(Io=Wo``)),void 0!==this.zRoc?z(Uo||(Uo=Wo`
|
|
1041
|
+
<decidables-switch ?checked=${0} @change=${0}>
|
|
1042
|
+
<span class="math-var">z</span>ROC
|
|
1043
|
+
<span slot="off-label">ROC</span>
|
|
1044
|
+
</decidables-switch>
|
|
1045
|
+
`),this.zRoc,this.flipZRoc.bind(this)):z(Lo||(Lo=Wo``)),this.run||this.pause||this.reset?z(jo||(jo=Wo`
|
|
1046
|
+
<div class="buttons">
|
|
1047
|
+
${0}
|
|
1048
|
+
${0}
|
|
1049
|
+
${0}
|
|
1050
|
+
</div>
|
|
1051
|
+
`),this.run?z(Vo||(Vo=Wo`<decidables-button name="run" ?disabled=${0} @click=${0}>Run</decidables-button>`),"running"===this.state||"ended"===this.state,this.doRun.bind(this)):z(Bo||(Bo=Wo``)),this.pause?z(Ko||(Ko=Wo`<decidables-button name="pause" ?disabled=${0} @click=${0}>Pause</decidables-button>`),"running"!==this.state,this.doPause.bind(this)):z(Xo||(Xo=Wo``)),this.reset?z(Zo||(Zo=Wo`<decidables-button name="reset" ?disabled=${0} @click=${0}>Reset</decidables-button>`),"resetted"===this.state,this.doReset.bind(this)):z(Yo||(Yo=Wo``))):z(Go||(Go=Wo``)))}}customElements.define("detectable-control",Qo);let Jo,tl,el=t=>t;class rl extends vo{static get properties(){return{color:{attribute:"color",type:String,reflect:!0},distributions:{attribute:"distributions",type:Boolean,reflect:!0},threshold:{attribute:"threshold",type:Boolean,reflect:!0},unequal:{attribute:"unequal",type:Boolean,reflect:!0},sensitivity:{attribute:"sensitivity",type:Boolean,reflect:!0},bias:{attribute:"bias",type:Boolean,reflect:!0},variance:{attribute:"variance",type:Boolean,reflect:!0},histogram:{attribute:"histogram",type:Boolean,reflect:!0},d:{attribute:"d",type:Number,reflect:!0},c:{attribute:"c",type:Number,reflect:!0},s:{attribute:"s",type:Number,reflect:!0},far:{attribute:!1,type:Number,reflect:!1},hr:{attribute:!1,type:Number,reflect:!1},binWidth:{attribute:!1,type:Number,reflect:!1},trials:{attribute:!1,type:Array,reflect:!1},width:{attribute:!1,type:Number,reflect:!1},height:{attribute:!1,type:Number,reflect:!1},rem:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.colors=["outcome","response","stimulus","none"],this.color="outcome",this.distributions=!1,this.threshold=!1,this.unequal=!1,this.sensitivity=!1,this.bias=!1,this.variance=!1,this.histogram=!1,this.d=1,this.c=0,this.s=1,this.binWidth=.25,this.signals=["present","absent"],this.responses=["present","absent"],this.trials=[],this.width=NaN,this.height=NaN,this.rem=NaN,this.muN=NaN,this.muS=NaN,this.l=NaN,this.hS=NaN,this.binRange=[-3,3],this.h=0,this.m=0,this.fa=0,this.cr=0,this.firstUpdate=!0,this.drag=!1,this.alignState()}reset(){this.trials=[],this.h=0,this.m=0,this.fa=0,this.cr=0}trial(t,e,r,n,i){const s={new:!0,paused:!1};s.trial=t,s.signal=e,s.duration=r,s.wait=n,s.iti=i,s.evidence=$o.normal.sample(0,1),this.alignTrial(s),this.trials.push(s),this.requestUpdate()}alignTrial(t){return"present"===t.signal?(t.trueEvidence=t.evidence*this.s+this.muS,t.response=t.trueEvidence>this.l?"present":"absent",t.outcome="present"===t.response?"h":"m"):(t.trueEvidence=t.evidence+this.muN,t.response=t.trueEvidence>this.l?"present":"absent",t.outcome="present"===t.response?"fa":"cr"),t.new||(this[t.outcome]+=1),t}alignState(){this.far=_o.dC2Far(this.d,this.c,this.s),this.hr=_o.dC2Hr(this.d,this.c,this.s),this.muN=_o.d2MuN(this.d,this.s),this.muS=_o.d2MuS(this.d,this.s),this.l=_o.c2L(this.c,this.s),this.hS=_o.s2H(this.s),this.h=0,this.m=0,this.fa=0,this.cr=0;for(let t=0;t<this.trials.length;t+=1)this.alignTrial(this.trials[t])}static get styles(){return[super.styles,a(Jo||(Jo=el`
|
|
1052
|
+
:host {
|
|
1053
|
+
display: inline-block;
|
|
1054
|
+
|
|
1055
|
+
width: 27rem;
|
|
1056
|
+
height: 15rem;
|
|
1057
|
+
}
|
|
1058
|
+
|
|
1059
|
+
.main {
|
|
1060
|
+
width: 100%;
|
|
1061
|
+
height: 100%;
|
|
1062
|
+
}
|
|
1063
|
+
|
|
1064
|
+
text {
|
|
1065
|
+
/* stylelint-disable property-no-vendor-prefix */
|
|
1066
|
+
-webkit-user-select: none;
|
|
1067
|
+
-moz-user-select: none;
|
|
1068
|
+
-ms-user-select: none;
|
|
1069
|
+
user-select: none;
|
|
1070
|
+
}
|
|
1071
|
+
|
|
1072
|
+
.tick {
|
|
1073
|
+
font-size: 0.75rem;
|
|
1074
|
+
}
|
|
1075
|
+
|
|
1076
|
+
.axis-x path,
|
|
1077
|
+
.axis-x line,
|
|
1078
|
+
.axis-y path,
|
|
1079
|
+
.axis-y line,
|
|
1080
|
+
.axis-y2 path,
|
|
1081
|
+
.axis-y2 line {
|
|
1082
|
+
stroke: var(---color-element-border);
|
|
1083
|
+
}
|
|
1084
|
+
|
|
1085
|
+
.noise.interactive,
|
|
1086
|
+
.signal.interactive,
|
|
1087
|
+
.threshold.interactive {
|
|
1088
|
+
cursor: ew-resize;
|
|
1089
|
+
|
|
1090
|
+
filter: url("#shadow-2");
|
|
1091
|
+
outline: none;
|
|
1092
|
+
}
|
|
1093
|
+
|
|
1094
|
+
.signal.unequal {
|
|
1095
|
+
cursor: ns-resize;
|
|
1096
|
+
|
|
1097
|
+
filter: url("#shadow-2");
|
|
1098
|
+
outline: none;
|
|
1099
|
+
}
|
|
1100
|
+
|
|
1101
|
+
.signal.interactive.unequal {
|
|
1102
|
+
cursor: move;
|
|
1103
|
+
}
|
|
1104
|
+
|
|
1105
|
+
.noise.interactive:hover,
|
|
1106
|
+
.signal.interactive:hover,
|
|
1107
|
+
.signal.unequal:hover,
|
|
1108
|
+
.threshold.interactive:hover {
|
|
1109
|
+
filter: url("#shadow-4");
|
|
1110
|
+
|
|
1111
|
+
/* HACK: This gets Safari to correctly apply the filter! */
|
|
1112
|
+
transform: translateX(0);
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
.noise.interactive:active,
|
|
1116
|
+
.signal.interactive:active,
|
|
1117
|
+
.signal.unequal:active,
|
|
1118
|
+
.threshold.interactive:active {
|
|
1119
|
+
filter: url("#shadow-8");
|
|
1120
|
+
|
|
1121
|
+
/* HACK: This gets Safari to correctly apply the filter! */
|
|
1122
|
+
transform: translateY(0);
|
|
1123
|
+
}
|
|
1124
|
+
|
|
1125
|
+
:host(.keyboard) .noise.interactive:focus,
|
|
1126
|
+
:host(.keyboard) .signal.interactive:focus,
|
|
1127
|
+
:host(.keyboard) .signal.unequal:focus,
|
|
1128
|
+
:host(.keyboard) .threshold.interactive:focus {
|
|
1129
|
+
filter: url("#shadow-8");
|
|
1130
|
+
|
|
1131
|
+
/* HACK: This gets Safari to correctly apply the filter! */
|
|
1132
|
+
transform: translateZ(0);
|
|
1133
|
+
}
|
|
1134
|
+
|
|
1135
|
+
.underlayer .background {
|
|
1136
|
+
fill: var(---color-element-background);
|
|
1137
|
+
stroke: none;
|
|
1138
|
+
}
|
|
1139
|
+
|
|
1140
|
+
.overlayer .background {
|
|
1141
|
+
fill: none;
|
|
1142
|
+
stroke: var(---color-element-border);
|
|
1143
|
+
stroke-width: 1;
|
|
1144
|
+
shape-rendering: crispEdges;
|
|
1145
|
+
}
|
|
1146
|
+
|
|
1147
|
+
.title-x,
|
|
1148
|
+
.title-y,
|
|
1149
|
+
.title-y2 {
|
|
1150
|
+
font-weight: 600;
|
|
1151
|
+
|
|
1152
|
+
fill: currentColor;
|
|
1153
|
+
}
|
|
1154
|
+
|
|
1155
|
+
.curve-cr,
|
|
1156
|
+
.curve-fa,
|
|
1157
|
+
.curve-m,
|
|
1158
|
+
.curve-h {
|
|
1159
|
+
fill-opacity: 0.5;
|
|
1160
|
+
stroke: none;
|
|
1161
|
+
|
|
1162
|
+
transition: fill var(---transition-duration) ease;
|
|
1163
|
+
}
|
|
1164
|
+
|
|
1165
|
+
.curve-cr {
|
|
1166
|
+
fill: var(---color-cr);
|
|
1167
|
+
}
|
|
1168
|
+
|
|
1169
|
+
.curve-fa {
|
|
1170
|
+
fill: var(---color-fa);
|
|
1171
|
+
}
|
|
1172
|
+
|
|
1173
|
+
.curve-m {
|
|
1174
|
+
fill: var(---color-m);
|
|
1175
|
+
}
|
|
1176
|
+
|
|
1177
|
+
.curve-h {
|
|
1178
|
+
fill: var(---color-h);
|
|
1179
|
+
}
|
|
1180
|
+
|
|
1181
|
+
:host([color="accuracy"]) .curve-h,
|
|
1182
|
+
:host([color="accuracy"]) .curve-cr {
|
|
1183
|
+
fill: var(---color-correct);
|
|
1184
|
+
}
|
|
1185
|
+
|
|
1186
|
+
:host([color="accuracy"]) .curve-m,
|
|
1187
|
+
:host([color="accuracy"]) .curve-fa {
|
|
1188
|
+
fill: var(---color-error);
|
|
1189
|
+
}
|
|
1190
|
+
|
|
1191
|
+
:host([color="stimulus"]) .curve-cr,
|
|
1192
|
+
:host([color="stimulus"]) .curve-fa {
|
|
1193
|
+
fill: var(---color-far);
|
|
1194
|
+
}
|
|
1195
|
+
|
|
1196
|
+
:host([color="stimulus"]) .curve-m,
|
|
1197
|
+
:host([color="stimulus"]) .curve-h {
|
|
1198
|
+
fill: var(---color-hr);
|
|
1199
|
+
}
|
|
1200
|
+
|
|
1201
|
+
:host([color="response"]) .curve-cr,
|
|
1202
|
+
:host([color="response"]) .curve-m {
|
|
1203
|
+
fill: var(---color-absent);
|
|
1204
|
+
}
|
|
1205
|
+
|
|
1206
|
+
:host([color="response"]) .curve-fa,
|
|
1207
|
+
:host([color="response"]) .curve-h {
|
|
1208
|
+
fill: var(---color-present);
|
|
1209
|
+
}
|
|
1210
|
+
|
|
1211
|
+
:host([color="none"]) .curve-cr,
|
|
1212
|
+
:host([color="none"]) .curve-fa,
|
|
1213
|
+
:host([color="none"]) .curve-m,
|
|
1214
|
+
:host([color="none"]) .curve-h {
|
|
1215
|
+
fill: var(---color-element-enabled);
|
|
1216
|
+
}
|
|
1217
|
+
|
|
1218
|
+
.curve-noise,
|
|
1219
|
+
.curve-signal {
|
|
1220
|
+
fill: none;
|
|
1221
|
+
stroke: var(---color-element-emphasis);
|
|
1222
|
+
stroke-width: 2;
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1225
|
+
.measure-d,
|
|
1226
|
+
.measure-c,
|
|
1227
|
+
.measure-s {
|
|
1228
|
+
pointer-events: none;
|
|
1229
|
+
}
|
|
1230
|
+
|
|
1231
|
+
.threshold .line {
|
|
1232
|
+
stroke: var(---color-element-emphasis);
|
|
1233
|
+
stroke-width: 2;
|
|
1234
|
+
}
|
|
1235
|
+
|
|
1236
|
+
.threshold .handle {
|
|
1237
|
+
fill: var(---color-element-emphasis);
|
|
1238
|
+
|
|
1239
|
+
r: 6px;
|
|
1240
|
+
}
|
|
1241
|
+
|
|
1242
|
+
/* Make a larger target for touch users */
|
|
1243
|
+
@media (pointer: coarse) {
|
|
1244
|
+
.threshold.interactive .handle {
|
|
1245
|
+
stroke: #000000;
|
|
1246
|
+
stroke-opacity: 0;
|
|
1247
|
+
stroke-width: 12px;
|
|
1248
|
+
}
|
|
1249
|
+
}
|
|
1250
|
+
|
|
1251
|
+
.measure-d .line,
|
|
1252
|
+
.measure-d .cap-left,
|
|
1253
|
+
.measure-d .cap-right {
|
|
1254
|
+
stroke: var(---color-d);
|
|
1255
|
+
stroke-width: 2;
|
|
1256
|
+
shape-rendering: crispEdges;
|
|
1257
|
+
}
|
|
1258
|
+
|
|
1259
|
+
.measure-d .label {
|
|
1260
|
+
font-size: 0.75rem;
|
|
1261
|
+
|
|
1262
|
+
text-anchor: start;
|
|
1263
|
+
fill: currentColor;
|
|
1264
|
+
}
|
|
1265
|
+
|
|
1266
|
+
.measure-c .line,
|
|
1267
|
+
.measure-c .cap-zero {
|
|
1268
|
+
stroke: var(---color-c);
|
|
1269
|
+
stroke-width: 2;
|
|
1270
|
+
shape-rendering: crispEdges;
|
|
1271
|
+
}
|
|
1272
|
+
|
|
1273
|
+
.measure-c .label {
|
|
1274
|
+
font-size: 0.75rem;
|
|
1275
|
+
|
|
1276
|
+
fill: currentColor;
|
|
1277
|
+
}
|
|
1278
|
+
|
|
1279
|
+
.measure-s .line,
|
|
1280
|
+
.measure-s .cap-left,
|
|
1281
|
+
.measure-s .cap-right {
|
|
1282
|
+
stroke: var(---color-s);
|
|
1283
|
+
stroke-width: 2;
|
|
1284
|
+
shape-rendering: crispEdges;
|
|
1285
|
+
}
|
|
1286
|
+
|
|
1287
|
+
.measure-s .label {
|
|
1288
|
+
font-size: 0.75rem;
|
|
1289
|
+
|
|
1290
|
+
text-anchor: middle;
|
|
1291
|
+
fill: currentColor;
|
|
1292
|
+
}
|
|
1293
|
+
`))]}render(){return z(tl||(tl=el`
|
|
1294
|
+
${0}
|
|
1295
|
+
`),vo.svgFilters)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-model-change",{detail:{d:this.d,c:this.c,s:this.s,far:this.far,hr:this.hr,h:this.h,m:this.m,fa:this.fa,cr:this.cr},bubbles:!0}))}getDimensions(){this.width=parseFloat(this.getComputedStyleValue("width"),10),this.height=parseFloat(this.getComputedStyleValue("height"),10),this.rem=parseFloat(getComputedStyle(document.documentElement).getPropertyValue("font-size"),10)}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.getDimensions.bind(this))}disconnectedCallback(){window.removeEventListener("resize",this.getDimensions.bind(this)),super.disconnectedCallback()}firstUpdated(t){super.firstUpdated(t),this.getDimensions()}update(t){if(super.update(t),this.alignState(),Number.isNaN(this.width)||Number.isNaN(this.height)||Number.isNaN(this.rem))return;const e=this.width,r=this.height;let n,i;e/r>1.8?(i=r,n=1.8*i):(n=e,i=n/1.8);const s=2*this.rem,a=3*this.rem,o=3*this.rem,l=i-(s+a),c=n-(o+(this.histogram&&this.distributions?3:.75)*this.rem),h=parseInt(this.getComputedStyleValue("---transition-duration"),10),u=Ca().domain([-3,3]).range([0,c]),d=Ca().domain([.5,0]).range([0,l]),f=u(this.binWidth)-u(0),p=Ca().domain([l/f,0]).range([0,l]),m=lr().subject((()=>({x:u(this.l),y:0}))).on("start",(t=>{Ge(t.currentTarget).classed("dragging",!0)})).on("drag",(t=>{this.drag=!0;let e=u.invert(t.x);e=e<u.domain()[0]?u.domain()[0]:e>u.domain()[1]?u.domain()[1]:e,this.c=_o.l2C(e,this.s),this.alignState(),this.sendEvent()})).on("end",(t=>{Ge(t.currentTarget).classed("dragging",!1)})),b=lr().subject((()=>({x:u(this.muN),y:0}))).on("start",(t=>{Ge(t.currentTarget).classed("dragging",!0)})).on("drag",(t=>{this.drag=!0;let e=u.invert(t.x);e=e<u.domain()[0]?u.domain()[0]:e>u.domain()[1]?u.domain()[1]:e,this.d=_o.muN2D(e,this.s),this.alignState(),this.sendEvent()})).on("end",(t=>{Ge(t.currentTarget).classed("dragging",!1)})),g=lr().subject((()=>({x:u(this.muS),y:d(this.hS)}))).on("start",((t,e)=>{Ge(t.currentTarget).classed("dragging",!0),e.startX=t.x,e.startY=t.y,e.startHS=this.hS,e.startMuS=this.muS})).on("drag",((t,e)=>{this.drag=!0;let r=this.muS;this.interactive&&(r=u.invert(t.x),r=r<u.domain()[0]?u.domain()[0]:r>u.domain()[1]?u.domain()[1]:r);let n=this.hS;this.unequal&&(n=d.invert(t.y),n=n<.01?.01:n>d.domain()[0]?d.domain()[0]:n),this.interactive&&this.unequal&&t.sourceEvent.shiftKey&&(Math.abs(t.x-e.startX)>Math.abs(t.y-e.startY)?n=e.startHS:r=e.startMuS),this.unequal&&(this.s=_o.h2S(n),this.c=_o.l2C(this.l,this.s)),this.d=_o.muS2D(r,this.s),this.alignState(),this.sendEvent()})).on("end",(t=>{Ge(t.currentTarget).classed("dragging",!1)})),v=Oa().x((t=>u(t.e))).y((t=>d(t.p))),y=Ge(this.renderRoot).selectAll(".main").data([{width:this.width,height:this.height,rem:this.rem}]),w=y.enter().append("svg").classed("main",!0),x=w.merge(y).attr("viewBox",`0 0 ${n} ${i}`),k=w.append("g").classed("plot",!0),$=x.select(".plot").attr("transform",`translate(${o}, ${s})`),_=k.append("g").classed("underlayer",!0),S=$.select(".underlayer");_.append("rect").classed("background",!0),S.select(".background").attr("height",l).attr("width",c),_.append("g").classed("axis-x",!0);S.select(".axis-x").attr("transform",`translate(0, ${l})`).call(Tt(u)).attr("font-size",null).attr("font-family",null).selectAll("line, path").attr("stroke",null),_.append("text").classed("title-x",!0).attr("text-anchor","middle").text("Evidence"),S.select(".title-x").attr("transform",`translate(${c/2}, ${l+2.25*this.rem})`);const A=S.selectAll(".axis-y").data(this.distributions?[{}]:[]);A.enter().append("g").classed("axis-y",!0).merge(A).call(Mt(d).ticks(5)).attr("font-size",null).attr("font-family",null).selectAll("line, path").attr("stroke",null),A.exit().remove();const E=S.selectAll(".title-y").data(this.distributions?[{}]:[]);E.enter().append("text").classed("title-y",!0).attr("text-anchor","middle").text("Probability").merge(E).attr("transform",`translate(${-2*this.rem}, ${l/2})rotate(-90)`),E.exit().remove();const T=S.selectAll(".axis-y2").data(this.histogram?[{}]:[]);var M;T.enter().append("g").classed("axis-y2",!0).merge(T).attr("transform",this.distributions?`translate(${c}, 0)`:"").call(this.distributions?(M=p,Et(2,M)).ticks(10):Mt(p).ticks(10)).attr("font-size",null).attr("font-family",null).selectAll("line, path").attr("stroke",null),T.exit().remove();const C=S.selectAll(".title-y2").data(this.histogram?[{}]:[]);C.enter().append("text").classed("title-y2",!0).attr("text-anchor","middle").text("Count").merge(C).attr("transform",this.distributions?`translate(${c+1.5*this.rem}, ${l/2})rotate(90)`:`translate(${-1.5*this.rem}, ${l/2})rotate(-90)`),C.exit().remove(),k.append("g").classed("content",!0);const N=$.select(".content"),R=N.selectAll(".signal-noise").data(this.distributions?[{}]:[]),q=R.enter().append("g").classed("signal-noise",!0),z=q.merge(R);R.exit().remove();const P=q.append("g").classed("noise",!0),F=z.selectAll(".noise").attr("tabindex",this.interactive?0:null).classed("interactive",this.interactive).on("keydown",this.interactive?t=>{if(["ArrowRight","ArrowLeft"].includes(t.key)){let e=this.muN;switch(t.key){case"ArrowRight":e+=t.shiftKey?.01:.1;break;case"ArrowLeft":e-=t.shiftKey?.01:.1}e=e<u.domain()[0]?u.domain()[0]:e>u.domain()[1]?u.domain()[1]:e,e!==this.muN&&(this.d=_o.muN2D(e,this.s),this.alignState(),this.sendEvent()),t.preventDefault()}}:null);(this.firstUpdate||t.has("interactive"))&&(this.interactive?F.call(b):F.on(".drag",null)),P.append("path").classed("curve-cr",!0),F.select(".curve-cr").transition().duration(this.drag?0:h).ease(hi).attrTween("d",((t,e,r)=>{const n=r[e],i=Qr(void 0!==n.d?n.d:this.d,this.d),s=Qr(void 0!==n.c?n.c:this.c,this.c),a=Qr(void 0!==n.s?n.s:this.s,this.s);return t=>{n.d=i(t),n.c=s(t),n.s=a(t);const e=yt(u.domain()[0],_o.c2L(n.c,n.s),.05).map((t=>({e:t,p:$o.normal.pdf(t,_o.d2MuN(n.d,n.s),1)})));return e.push({e:_o.c2L(n.c,n.s),p:$o.normal.pdf(_o.c2L(n.c,n.s),_o.d2MuN(n.d,n.s),1)}),e.push({e:_o.c2L(n.c,n.s),p:0}),e.push({e:u.domain()[0],p:0}),v(e)}})),P.append("path").classed("curve-fa",!0),F.select(".curve-fa").transition().duration(this.drag?0:h).ease(hi).attrTween("d",((t,e,r)=>{const n=r[e],i=Qr(void 0!==n.d?n.d:this.d,this.d),s=Qr(void 0!==n.c?n.c:this.c,this.c),a=Qr(void 0!==n.s?n.s:this.s,this.s);return t=>{n.d=i(t),n.c=s(t),n.s=a(t);const e=yt(_o.c2L(n.c,n.s),u.domain()[1],.05).map((t=>({e:t,p:$o.normal.pdf(t,_o.d2MuN(n.d,n.s),1)})));return e.push({e:u.domain()[1],p:$o.normal.pdf(u.domain()[1],_o.d2MuN(n.d,n.s),1)}),e.push({e:u.domain()[1],p:0}),e.push({e:_o.c2L(n.c,n.s),p:0}),v(e)}})),P.append("path").classed("curve-noise",!0),F.select(".curve-noise").transition().duration(this.drag?0:h).ease(hi).attrTween("d",((t,e,r)=>{const n=r[e],i=Qr(void 0!==n.d?n.d:this.d,this.d),s=Qr(void 0!==n.s?n.s:this.s,this.s);return t=>{n.d=i(t),n.s=s(t);const e=yt(u.domain()[0],u.domain()[1],.05).map((t=>({e:t,p:$o.normal.pdf(t,_o.d2MuN(n.d,n.s),1)})));return e.push({e:u.domain()[1],p:$o.normal.pdf(u.domain()[1],_o.d2MuN(n.d,n.s),1)}),v(e)}}));const O=q.append("g").classed("signal",!0),H=z.selectAll(".signal").attr("tabindex",this.interactive||this.unequal?0:null).classed("interactive",this.interactive).classed("unequal",this.unequal).on("keydown.sensitivity",this.interactive?t=>{if(["ArrowRight","ArrowLeft"].includes(t.key)){let e=this.muS;switch(t.key){case"ArrowRight":e+=t.shiftKey?.01:.1;break;case"ArrowLeft":e-=t.shiftKey?.01:.1}e=e<u.domain()[0]?u.domain()[0]:e>u.domain()[1]?u.domain()[1]:e,e!==this.muS&&(this.d=_o.muS2D(e,this.s),this.alignState(),this.sendEvent()),t.preventDefault()}}:null).on("keydown.variance",this.unequal?t=>{if(["ArrowUp","ArrowDown"].includes(t.key)){let e=this.hS;switch(t.key){case"ArrowUp":e+=t.shiftKey?.002:.02;break;case"ArrowDown":e-=t.shiftKey?.002:.02}e=e<.01?.01:e>d.domain()[0]?d.domain()[0]:e,e!==this.hS&&(this.s=_o.h2S(e),this.d=_o.muN2D(this.muN,this.s),this.c=_o.l2C(this.l,this.s),this.alignState(),this.sendEvent()),t.preventDefault()}}:null);(this.firstUpdate||t.has("interactive")||t.has("unequal"))&&(this.interactive||this.unequal?H.call(g):H.on(".drag",null)),O.append("path").classed("curve-m",!0),H.select(".curve-m").transition().duration(this.drag?0:h).ease(hi).attrTween("d",((t,e,r)=>{const n=r[e],i=Qr(void 0!==n.d?n.d:this.d,this.d),s=Qr(void 0!==n.c?n.c:this.c,this.c),a=Qr(void 0!==n.s?n.s:this.s,this.s);return t=>{n.d=i(t),n.c=s(t),n.s=a(t);const e=yt(u.domain()[0],_o.c2L(n.c,n.s),.05).map((t=>({e:t,p:$o.normal.pdf(t,_o.d2MuS(n.d,n.s),n.s)})));return e.push({e:_o.c2L(n.c,n.s),p:$o.normal.pdf(_o.c2L(n.c,n.s),_o.d2MuS(n.d,n.s),n.s)}),e.push({e:_o.c2L(n.c,n.s),p:0}),e.push({e:u.domain()[0],p:0}),v(e)}})),O.append("path").classed("curve-h",!0),H.select(".curve-h").transition().duration(this.drag?0:h).ease(hi).attrTween("d",((t,e,r)=>{const n=r[e],i=Qr(void 0!==n.d?n.d:this.d,this.d),s=Qr(void 0!==n.c?n.c:this.c,this.c),a=Qr(void 0!==n.s?n.s:this.s,this.s);return t=>{n.d=i(t),n.c=s(t),n.s=a(t);const e=yt(_o.c2L(n.c,n.s),u.domain()[1],.05).map((t=>({e:t,p:$o.normal.pdf(t,_o.d2MuS(n.d,n.s),n.s)})));return e.push({e:u.domain()[1],p:$o.normal.pdf(u.domain()[1],_o.d2MuS(n.d,n.s),n.s)}),e.push({e:u.domain()[1],p:0}),e.push({e:_o.c2L(n.c,n.s),p:0}),v(e)}})),O.append("path").classed("curve-signal",!0),H.select(".curve-signal").transition().duration(this.drag?0:h).ease(hi).attrTween("d",((t,e,r)=>{const n=r[e],i=Qr(void 0!==n.d?n.d:this.d,this.d),s=Qr(void 0!==n.s?n.s:this.s,this.s);return t=>{n.d=i(t),n.s=s(t);const e=yt(u.domain()[0],u.domain()[1],.05).map((t=>({e:t,p:$o.normal.pdf(t,_o.d2MuS(n.d,n.s),n.s)})));return e.push({e:u.domain()[1],p:$o.normal.pdf(u.domain()[1],_o.d2MuS(n.d,n.s),n.s)}),v(e)}}));const D=N.selectAll(".measure-d").data(this.sensitivity?[{}]:[]),I=D.enter().append("g").classed("measure-d",!0);I.append("line").classed("line",!0),I.append("line").classed("cap-left",!0),I.append("line").classed("cap-right",!0);const U=I.append("text").classed("label",!0);U.append("tspan").classed("d math-var",!0).text("d′"),U.append("tspan").classed("equals",!0).text(" = "),U.append("tspan").classed("value",!0);const L=I.merge(D);L.select(".line").transition().duration(this.drag?0:h).ease(hi).attr("x1",u(this.muN)).attr("y1",d(.43)).attr("x2",u(this.muS)).attr("y2",d(.43)),L.select(".cap-left").transition().duration(this.drag?0:h).ease(hi).attr("x1",u(this.muN)).attr("y1",d(.43)+5).attr("x2",u(this.muN)).attr("y2",d(.43)-5),L.select(".cap-right").transition().duration(this.drag?0:h).ease(hi).attr("x1",u(this.muS)).attr("y1",d(.43)+5).attr("x2",u(this.muS)).attr("y2",d(.43)-5);L.select(".label").transition().duration(this.drag?0:h).ease(hi).attr("x",u(this.muN>this.muS?this.muN:this.muS)+5).attr("y",d(.43)+3).select(".value").tween("text",((t,e,r)=>{const n=r[e],i=Qr(void 0!==n.d?n.d:this.d,this.d);return t=>{n.d=i(t),Ge(n).text(+n.d.toFixed(3))}})),D.exit().remove();const j=N.selectAll(".measure-c").data(this.bias?[{}]:[]),V=j.enter().append("g").classed("measure-c",!0);V.append("line").classed("line",!0),V.append("line").classed("cap-zero",!0);const B=V.append("text").classed("label",!0);B.append("tspan").classed("c math-var",!0).text("c"),B.append("tspan").classed("equals",!0).text(" = "),B.append("tspan").classed("value",!0);const K=V.merge(j);K.select(".line").transition().duration(this.drag?0:h).ease(hi).attr("x1",u(this.l)).attr("y1",d(.47)).attr("x2",u(0)).attr("y2",d(.47)),K.select(".cap-zero").transition().duration(this.drag?0:h).ease(hi).attr("x1",u(0)).attr("y1",d(.47)+5).attr("x2",u(0)).attr("y2",d(.47)-5);K.select(".label").transition().duration(this.drag?0:h).ease(hi).attr("x",u(0)+(this.l<0?5:-5)).attr("y",d(.47)+3).attr("text-anchor",this.c<0?"start":"end").select(".value").tween("text",((t,e,r)=>{const n=r[e],i=Qr(void 0!==n.c?n.c:this.c,this.c);return t=>{n.c=i(t),Ge(n).text(+n.c.toFixed(3))}})),j.exit().remove();const X=N.selectAll(".measure-s").data(this.variance?[{}]:[]),Z=X.enter().append("g").classed("measure-s",!0);Z.append("line").classed("line",!0),Z.append("line").classed("cap-left",!0),Z.append("line").classed("cap-right",!0);const Y=Z.append("text").classed("label",!0);Y.append("tspan").classed("s math-var",!0).text("σ"),Y.append("tspan").classed("equals",!0).text(" = "),Y.append("tspan").classed("value",!0);const G=Z.merge(X);G.select(".line").transition().duration(this.drag?0:h).ease(hi).attr("x1",u(this.muS-this.s)).attr("y1",d($o.normal.pdf(this.s,0,this.s))+10/this.s).attr("x2",u(this.muS+this.s)).attr("y2",d($o.normal.pdf(this.s,0,this.s))+10/this.s),G.select(".cap-left").transition().duration(this.drag?0:h).ease(hi).attr("x1",u(this.muS-this.s)).attr("y1",d($o.normal.pdf(this.s,0,this.s))+10/this.s+5).attr("x2",u(this.muS-this.s)).attr("y2",d($o.normal.pdf(this.s,0,this.s))+10/this.s-5),G.select(".cap-right").transition().duration(this.drag?0:h).ease(hi).attr("x1",u(this.muS+this.s)).attr("y1",d($o.normal.pdf(this.s,0,this.s))+10/this.s+5).attr("x2",u(this.muS+this.s)).attr("y2",d($o.normal.pdf(this.s,0,this.s))+10/this.s-5);G.select(".label").transition().duration(this.drag?0:h).ease(hi).attr("x",u(this.muS)).attr("y",d($o.normal.pdf(this.s,0,this.s))+10/this.s-3).select(".value").tween("text",((t,e,r)=>{const n=r[e],i=Qr(void 0!==n.s?n.s:this.s,this.s);return t=>{n.s=i(t),Ge(n).text(+n.s.toFixed(3))}})),X.exit().remove();const W=N.selectAll(".threshold").data(this.threshold?[{}]:[]),Q=W.enter().append("g").classed("threshold",!0);Q.append("line").classed("line",!0),Q.append("circle").classed("handle",!0);const J=Q.merge(W).attr("tabindex",this.interactive?0:null).classed("interactive",this.interactive);(this.firstUpdate||t.has("interactive"))&&(this.interactive?J.call(m).on("keydown",(t=>{if(["ArrowRight","ArrowLeft"].includes(t.key)){let e=this.l;switch(t.key){case"ArrowRight":e+=t.shiftKey?.01:.1;break;case"ArrowLeft":e-=t.shiftKey?.01:.1}e=e<u.domain()[0]?u.domain()[0]:e>u.domain()[1]?u.domain()[1]:e,e!==this.l&&(this.c=_o.l2C(e,this.s),this.alignState(),this.sendEvent()),t.preventDefault()}})):J.on("drag",null).on("keydown",null)),J.select(".line").transition().duration(this.drag?0:h).ease(hi).attr("x1",u(this.l)).attr("y1",d(0)).attr("x2",u(this.l)).attr("y2",d(.54)),J.select(".handle").transition().duration(this.drag?0:h).ease(hi).attr("cx",u(this.l)).attr("cy",d(.54)),W.exit().remove();const tt=N.selectAll(".histogram").data(this.histogram?[{}]:[]),et=tt.enter().append("g").classed("histogram",!0).merge(tt);if(tt.exit().remove(),this.histogram){const t=vt().value((t=>t.trueEvidence)).domain(u.domain()).thresholds(yt(this.binRange[0],this.binRange[1],this.binWidth)),e=t(this.trials);let r=-1,n=-1;for(let t=0;t<e.length;t+=1)for(let i=0;i<e[t].length;i+=1)e[t][i].binValue=e[t].x0,e[t][i].binCount=i,0===t&&(r=i),t===e.length-1&&(n=i);for(let t=0;t<this.trials.length;t+=1)this.trials[t].trueEvidence<this.binRange[0]&&(r+=1,this.trials[t].binCount=r,this.trials[t].binValue=e[0].x0),this.trials[t].trueEvidence>this.binRange[1]&&(n+=1,this.trials[t].binCount=n,this.trials[t].binValue=e[e.length-1].x0);const i=et.selectAll(".trial").data(this.trials,(t=>t.trial)),s=i.enter().append("rect").attr("stroke-width",3).attr("data-new-trial-ease-time",0).attr("stroke",this.getComputedStyleValue("---color-acc")).attr("fill",this.getComputedStyleValue("---color-acc-light")).merge(i).attr("class",(t=>`trial ${t.outcome}`)).attr("width",f-3).attr("height",f-3),a=s.filter((t=>t.new&&!t.paused));if(!a.empty()){const t=a.attr("data-new-trial-ease-time"),e=e=>Ca().domain([0,1]).range([t,1])(e),r=e=>r=>Ca().domain([e(t),1]).range([0,1])(e(r));a.transition("new").duration((e=>Math.floor((.75*e.duration+.25*e.wait)*(1-t)))).ease(e).attr("data-new-trial-ease-time",1).attrTween("stroke",((t,e,n)=>{const i=n[e],s=jr(i.getAttribute("stroke"),"stimulus"===this.color?"present"===t.signal?this.getComputedStyleValue("---color-hr"):this.getComputedStyleValue("---color-far"):"response"===this.color?this.getComputedStyleValue(`---color-${t.response}`):"outcome"===this.color?this.getComputedStyleValue(`---color-${t.outcome}`):this.getComputedStyleValue("---color-acc"));return t=>s(r(ci)(t))})).attrTween("fill",((t,e,n)=>{const i=n[e],s=jr(i.getAttribute("fill"),"stimulus"===this.color?"present"===t.signal?this.getComputedStyleValue("---color-hr-light"):this.getComputedStyleValue("---color-far-light"):"response"===this.color?this.getComputedStyleValue(`---color-${t.response}-light`):"outcome"===this.color?this.getComputedStyleValue(`---color-${t.outcome}-light`):this.getComputedStyleValue("---color-acc-light"));return t=>s(r(ci)(t))})).attrTween("x",((t,e,n)=>{const i=Qr(n[e].getAttribute("x"),u(t.binValue)+1.5);return t=>i(r(hi)(t))})).attrTween("y",((t,e,n)=>{const i=Qr(n[e].getAttribute("y"),d(0)+1.5-(t.binCount+1)*f);return t=>i(r(ci)(t))})).on("end",((t,e,r)=>{r[e].removeAttribute("data-new-trial-ease-time"),t.new=!1,this.alignTrial(t),this.dispatchEvent(new CustomEvent("detectable-response",{detail:{stimulus:t.signal,response:t.response,outcome:t.outcome,h:this.h,m:this.m,fa:this.fa,cr:this.cr,nr:0},bubbles:!0}))}))}const o=s.filter((t=>t.new&&t.paused));if(!o.empty()){const t=o.attr("data-new-trial-ease-time");o.transition().duration(h).ease(hi).attr("x",(e=>Qr(0,u(e.binValue)+1.5)(hi(t)))).attr("y",(e=>Qr(0,d(0)+1.5-(e.binCount+1)*f)(ci(t)))).attr("stroke",(e=>jr(this.getComputedStyleValue("---color-acc"),"stimulus"===this.color?"present"===e.signal?this.getComputedStyleValue("---color-hr"):this.getComputedStyleValue("---color-far"):"response"===this.color?this.getComputedStyleValue(`---color-${e.response}`):"outcome"===this.color?this.getComputedStyleValue(`---color-${e.outcome}`):this.getComputedStyleValue("---color-acc"))(ci(t)))).attr("fill",(e=>jr(this.getComputedStyleValue("---color-acc-light"),"stimulus"===this.color?"present"===e.signal?this.getComputedStyleValue("---color-hr-light"):this.getComputedStyleValue("---color-far-light"):"response"===this.color?this.getComputedStyleValue(`---color-${e.response}-light`):"outcome"===this.color?this.getComputedStyleValue(`---color-${e.outcome}-light`):this.getComputedStyleValue("---color-acc-light"))(ci(t))))}s.filter((t=>!t.new)).transition().duration(h).ease(hi).attr("x",(t=>u(t.binValue)+1.5)).attr("y",(t=>d(0)+1.5-(t.binCount+1)*f)).attr("stroke",(t=>"stimulus"===this.color?"present"===t.signal?this.getComputedStyleValue("---color-hr"):this.getComputedStyleValue("---color-far"):"response"===this.color?this.getComputedStyleValue(`---color-${t.response}`):"outcome"===this.color?this.getComputedStyleValue(`---color-${t.outcome}`):this.getComputedStyleValue("---color-acc"))).attr("fill",(t=>"stimulus"===this.color?"present"===t.signal?this.getComputedStyleValue("---color-hr-light"):this.getComputedStyleValue("---color-far-light"):"response"===this.color?this.getComputedStyleValue(`---color-${t.response}-light`):"outcome"===this.color?this.getComputedStyleValue(`---color-${t.outcome}-light`):this.getComputedStyleValue("---color-acc-light"))),i.exit().transition().duration(h).ease(li).attrTween("stroke",((t,e,r)=>{const n=r[e],i=jr(n.getAttribute("stroke"),this.getComputedStyleValue("---color-acc"));return t=>i(ci(t))})).attrTween("fill",((t,e,r)=>{const n=r[e],i=jr(n.getAttribute("fill"),this.getComputedStyleValue("---color-acc-light"));return t=>i(ci(t))})).attrTween("x",((t,e,r)=>{const n=Qr(r[e].getAttribute("x"),0);return t=>n(ci(t))})).attrTween("y",((t,e,r)=>{const n=Qr(r[e].getAttribute("y"),0);return t=>n(hi(t))})).remove()}const rt=k.append("g").classed("overlayer",!0),nt=$.select(".overlayer");rt.append("rect").classed("background",!0),nt.select(".background").attr("height",l).attr("width",c),this.drag=!1,this.firstUpdate=!1}pauseTrial(){const t=Ge(this.renderRoot).select(".trial[data-new-trial-ease-time]");t.interrupt("new"),t.datum((t=>(t.paused=!0,t)))}resumeTrial(){Ge(this.renderRoot).select(".trial[data-new-trial-ease-time]").datum((t=>(t.paused=!1,t))),this.requestUpdate()}}customElements.define("sdt-model",rl);let nl,il,sl,al,ol,ll,cl,hl,ul,dl,fl,pl,ml,bl,gl,vl,yl,wl,xl,kl,$l=t=>t;class _l extends vo{static get properties(){return{feedback:{attribute:"feedback",type:String,reflect:!0},trial:{attribute:"trial",type:Boolean,reflect:!0},payoff:{attribute:"payoff",type:String,reflect:!0},hPayoff:{attribute:"hit-payoff",type:Number,reflect:!0},mPayoff:{attribute:"miss-payoff",type:Number,reflect:!0},faPayoff:{attribute:"false-alarm-payoff",type:Number,reflect:!0},crPayoff:{attribute:"correct-rejection-payoff",type:Number,reflect:!0},nrPayoff:{attribute:"no-response-payoff",type:Number,reflect:!0},state:{attribute:!1,type:String,reflect:!1},trialCount:{attribute:!1,type:Number,reflect:!1},trialTotal:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.feedbacks=["none","accuracy","outcome"],this.feedback="outcome",this.trial=!1,this.payoffs=["none","trial","total"],this.payoff="none",this.hPayoff=0,this.mPayoff=0,this.crPayoff=0,this.faPayoff=0,this.nrPayoff=0,this.states=["off","waiting","feedback"],this.state="off",this.trialCount=0,this.trialTotal=0,this.signals=["present","absent"],this.signal=void 0,this.responses=["present","absent"],this.response=void 0,this.outcomes=["h","m","fa","cr","nr"],this.outcome=void 0,this.accuracies=["c","e","nr"],this.accuracy=void 0,this.h=0,this.m=0,this.cr=0,this.fa=0,this.c=0,this.e=0,this.nr=0}get trialPayoff(){switch(this.outcome){case"h":return this.hPayoff;case"m":return this.mPayoff;case"fa":return this.faPayoff;case"cr":return this.crPayoff;case"nr":return this.nrPayoff;default:return}}get totalPayoff(){return this.h*this.hPayoff+this.m*this.mPayoff+this.cr*this.crPayoff+this.fa*this.faPayoff+this.nr*this.nrPayoff}start(t,e){this.trialCount=e,this.state="waiting",this.signal=t,this.response=void 0,this.outcome=void 0}stop(){this.state="feedback",void 0===this.response&&(this.outcome="nr",this.nr+=1,this.accuracy="nr")}present(){this.responded("present")}absent(){this.responded("absent")}responded(t){this.state="feedback",this.response=t,"present"===this.signal&&"present"===this.response?(this.outcome="h",this.h+=1,this.accuracy="c",this.c+=1):"present"===this.signal&&"absent"===this.response?(this.outcome="m",this.m+=1,this.accuracy="e",this.e+=1):"absent"===this.signal&&"present"===this.response?(this.outcome="fa",this.fa+=1,this.accuracy="e",this.e+=1):"absent"===this.signal&&"absent"===this.response&&(this.outcome="cr",this.cr+=1,this.accuracy="c",this.c+=1),this.dispatchEvent(new CustomEvent("detectable-response",{detail:{trial:this.trialCount,signal:this.signal,response:this.response,outcome:this.outcome,payoff:this.trialPayoff,h:this.h,m:this.m,fa:this.fa,cr:this.cr,nr:this.nr,totalPayoff:this.totalPayoff},bubbles:!0}))}reset(){this.state="off",this.trialCount=0,this.signal=void 0,this.response=void 0,this.outcome=void 0,this.accuracy=void 0,this.h=0,this.m=0,this.cr=0,this.fa=0,this.nr=0,this.c=0,this.e=0}static get styles(){return[super.styles,a(nl||(nl=$l`
|
|
1296
|
+
:host {
|
|
1297
|
+
display: inline-block;
|
|
1298
|
+
}
|
|
1299
|
+
|
|
1300
|
+
/* Overall container */
|
|
1301
|
+
.holder {
|
|
1302
|
+
display: flex;
|
|
1303
|
+
|
|
1304
|
+
flex-direction: row;
|
|
1305
|
+
}
|
|
1306
|
+
|
|
1307
|
+
/* Response buttons */
|
|
1308
|
+
.responses {
|
|
1309
|
+
display: flex;
|
|
1310
|
+
|
|
1311
|
+
flex-direction: column;
|
|
1312
|
+
|
|
1313
|
+
align-items: stretch;
|
|
1314
|
+
justify-content: center;
|
|
1315
|
+
}
|
|
1316
|
+
|
|
1317
|
+
.waiting[disabled] {
|
|
1318
|
+
--decidables-button-background-color: var(---color-element-enabled);
|
|
1319
|
+
}
|
|
1320
|
+
|
|
1321
|
+
.selected[disabled][name="present"] {
|
|
1322
|
+
--decidables-button-background-color: var(---color-present);
|
|
1323
|
+
}
|
|
1324
|
+
|
|
1325
|
+
.selected[disabled][name="absent"] {
|
|
1326
|
+
--decidables-button-background-color: var(---color-absent);
|
|
1327
|
+
}
|
|
1328
|
+
|
|
1329
|
+
/* Feedback messages */
|
|
1330
|
+
.feedbacks {
|
|
1331
|
+
display: flex;
|
|
1332
|
+
|
|
1333
|
+
flex-direction: column;
|
|
1334
|
+
|
|
1335
|
+
justify-content: center;
|
|
1336
|
+
}
|
|
1337
|
+
|
|
1338
|
+
/* Trial feedback */
|
|
1339
|
+
.trial {
|
|
1340
|
+
text-align: center;
|
|
1341
|
+
}
|
|
1342
|
+
|
|
1343
|
+
.trial .label {
|
|
1344
|
+
font-weight: 600;
|
|
1345
|
+
}
|
|
1346
|
+
|
|
1347
|
+
/* Outcome feedback */
|
|
1348
|
+
.feedback {
|
|
1349
|
+
display: flex;
|
|
1350
|
+
|
|
1351
|
+
flex-direction: column;
|
|
1352
|
+
|
|
1353
|
+
align-items: center;
|
|
1354
|
+
justify-content: center;
|
|
1355
|
+
|
|
1356
|
+
width: 6rem;
|
|
1357
|
+
height: 3.5rem;
|
|
1358
|
+
padding: 0.375rem 0.75rem;
|
|
1359
|
+
margin: 0.25rem;
|
|
1360
|
+
|
|
1361
|
+
text-align: center;
|
|
1362
|
+
|
|
1363
|
+
background-color: var(---color-element-background);
|
|
1364
|
+
border: 1px solid var(---color-element-border);
|
|
1365
|
+
}
|
|
1366
|
+
|
|
1367
|
+
.feedback.h {
|
|
1368
|
+
background-color: var(---color-h-light);
|
|
1369
|
+
}
|
|
1370
|
+
|
|
1371
|
+
.feedback.m {
|
|
1372
|
+
background-color: var(---color-m-light);
|
|
1373
|
+
}
|
|
1374
|
+
|
|
1375
|
+
.feedback.fa {
|
|
1376
|
+
background-color: var(---color-fa-light);
|
|
1377
|
+
}
|
|
1378
|
+
|
|
1379
|
+
.feedback.cr {
|
|
1380
|
+
background-color: var(---color-cr-light);
|
|
1381
|
+
}
|
|
1382
|
+
|
|
1383
|
+
.feedback.nr {
|
|
1384
|
+
background-color: var(---color-nr-light);
|
|
1385
|
+
}
|
|
1386
|
+
|
|
1387
|
+
.feedback.c {
|
|
1388
|
+
background-color: var(---color-correct-light);
|
|
1389
|
+
}
|
|
1390
|
+
|
|
1391
|
+
.feedback.e {
|
|
1392
|
+
color: var(---color-text-inverse);
|
|
1393
|
+
|
|
1394
|
+
background-color: var(---color-error-light);
|
|
1395
|
+
}
|
|
1396
|
+
|
|
1397
|
+
.feedback .outcome {
|
|
1398
|
+
font-weight: 600;
|
|
1399
|
+
line-height: 1.15;
|
|
1400
|
+
}
|
|
1401
|
+
|
|
1402
|
+
:host([payoff="trial"]) .feedback,
|
|
1403
|
+
:host([payoff="total"]) .feedback {
|
|
1404
|
+
height: 4rem;
|
|
1405
|
+
}
|
|
1406
|
+
|
|
1407
|
+
/* Payoff feedback */
|
|
1408
|
+
.payoff {
|
|
1409
|
+
text-align: center;
|
|
1410
|
+
}
|
|
1411
|
+
|
|
1412
|
+
.payoff .label {
|
|
1413
|
+
font-weight: 600;
|
|
1414
|
+
}
|
|
1415
|
+
`))]}render(){return z(il||(il=$l`
|
|
1416
|
+
<div class="holder">
|
|
1417
|
+
<div class="responses">
|
|
1418
|
+
<decidables-button name="present" class=${0} ?disabled=${0} @click=${0}>Present</decidables-button>
|
|
1419
|
+
<decidables-button name="absent" class=${0} ?disabled=${0} @click=${0}>Absent</decidables-button>
|
|
1420
|
+
</div>
|
|
1421
|
+
${0}
|
|
1422
|
+
</div>`),"feedback"===this.state&&"present"===this.response?"selected":"waiting"===this.state?"waiting":"","waiting"!==this.state||!0!==this.interactive,this.present.bind(this),"feedback"===this.state&&"absent"===this.response?"selected":"waiting"===this.state?"waiting":"","waiting"!==this.state||!0!==this.interactive,this.absent.bind(this),this.trial||"none"!==this.feedback||"total"===this.payoff?z(sl||(sl=$l`
|
|
1423
|
+
<div class="feedbacks">
|
|
1424
|
+
${0}
|
|
1425
|
+
${0}
|
|
1426
|
+
${0}
|
|
1427
|
+
</div>`),this.trial?z(al||(al=$l`
|
|
1428
|
+
<div class="trial">
|
|
1429
|
+
<span class="label">Trial: </span><span class="count">${0}</span><span class="of"> of </span><span class="total">${0}</span>
|
|
1430
|
+
</div>`),this.trialCount,this.trialTotal):z(ol||(ol=$l``)),"none"!==this.feedback?z(ll||(ll=$l`
|
|
1431
|
+
<div class=${0}>
|
|
1432
|
+
${0}
|
|
1433
|
+
${0}
|
|
1434
|
+
</div>`),`feedback ${"feedback"===this.state?"outcome"===this.feedback?this.outcome:this.accuracy:""}`,"feedback"===this.state?"outcome"===this.feedback?"h"===this.outcome?z(cl||(cl=$l`<span class="outcome">Hit</span>`)):"m"===this.outcome?z(hl||(hl=$l`<span class="outcome">Miss</span>`)):"fa"===this.outcome?z(ul||(ul=$l`<span class="outcome">False<br>Alarm</span>`)):"cr"===this.outcome?z(dl||(dl=$l`<span class="outcome">Correct<br>Rejection</span>`)):z(fl||(fl=$l`<span class="outcome">No<br>Response</span>`)):"c"===this.accuracy?z(pl||(pl=$l`<span class="outcome">Correct</span>`)):"e"===this.accuracy?z(ml||(ml=$l`<span class="outcome">Error</span>`)):z(bl||(bl=$l`<span class="outcome">No<br>Response</span>`)):"","trial"===this.payoff||"total"===this.payoff?z(gl||(gl=$l`<span class="payoff">${0}</span>`),this.trialPayoff):z(vl||(vl=$l``))):z(yl||(yl=$l``)),"total"===this.payoff?z(wl||(wl=$l`
|
|
1435
|
+
<div class="payoff">
|
|
1436
|
+
<span class="label">Total: </span><span class="value">${0}</span>
|
|
1437
|
+
</div>`),this.totalPayoff):z(xl||(xl=$l``))):z(kl||(kl=$l``)))}}customElements.define("detectable-response",_l);let Sl,Al,El,Tl,Ml,Cl,Nl,Rl,ql,zl,Pl,Fl,Ol,Hl,Dl,Il,Ul,Ll,jl,Vl,Bl,Kl,Xl,Zl,Yl,Gl,Wl,Ql,Jl,tc,ec,rc,nc,ic,sc,ac,oc,lc,cc,hc,uc,dc,fc,pc,mc,bc,gc=t=>t;class vc extends vo{static get properties(){return{numeric:{attribute:"numeric",type:Boolean,reflect:!0},summary:{attribute:"summary",converter:mo,reflect:!0},color:{attribute:"color",type:String,reflect:!0},h:{attribute:"hits",type:Number,reflect:!0},m:{attribute:"misses",type:Number,reflect:!0},fa:{attribute:"false-alarms",type:Number,reflect:!0},cr:{attribute:"correct-rejections",type:Number,reflect:!0},payoff:{attribute:"payoff",type:Boolean,reflect:!0},hPayoff:{attribute:"hit-payoff",type:Number,reflect:!0},mPayoff:{attribute:"miss-payoff",type:Number,reflect:!0},faPayoff:{attribute:"false-alarm-payoff",type:Number,reflect:!0},crPayoff:{attribute:"correct-rejection-payoff",type:Number,reflect:!0},far:{attribute:!1,type:Number,reflect:!1},hr:{attribute:!1,type:Number,reflect:!1},acc:{attribute:!1,type:Number,reflect:!1},ppv:{attribute:!1,type:Number,reflect:!1},fomr:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.numeric=!1,this.summaries=["stimulusRates","responseRates","accuracy"],this.summary=new Set,this.colors=["none","accuracy","stimulus","response","outcome"],this.color="outcome",this.h=40,this.m=60,this.fa=75,this.cr=25,this.alignState(),this.payoff=!1,this.hPayoff=void 0,this.mPayoff=void 0,this.crPayoff=void 0,this.faPayoff=void 0}alignState(){this.hr=_o.hM2Hr(this.h,this.m),this.far=_o.faCr2Far(this.fa,this.cr),this.acc=_o.hMFaCr2Acc(this.h,this.m,this.fa,this.cr),this.ppv=_o.hFa2Ppv(this.h,this.fa),this.fomr=_o.mCr2Fomr(this.m,this.cr)}sendEvent(){this.dispatchEvent(new CustomEvent("detectable-table-change",{detail:{h:this.h,m:this.m,hr:this.hr,fa:this.fa,cr:this.cr,far:this.far,acc:this.acc,ppv:this.ppv,fomr:this.fomr},bubbles:!0}))}hInput(t){this.h=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}mInput(t){this.m=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}faInput(t){this.fa=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}crInput(t){this.cr=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}hrInput(t){const e=parseFloat(t.target.value),r=this.h+this.m;this.h=Math.round(e*r),this.m=r-this.h,this.alignState(),this.sendEvent()}farInput(t){const e=parseFloat(t.target.value),r=this.fa+this.cr;this.fa=Math.round(e*r),this.cr=r-this.fa,this.alignState(),this.sendEvent()}accInput(t){const e=parseFloat(t.target.value),r=this.h+this.m,n=this.fa+this.cr,i=(this.hr+this.far-1)/2;let s=i+e,a=1+i-e;a>1&&(a=1,s=a+2*e-1),a<0&&(a=0,s=a+2*e-1),s>1&&(s=1,a=s-2*e+1),s<0&&(s=0,a=s-2*e+1),this.h=Math.round(s*r),this.m=r-this.h,this.fa=Math.round(a*n),this.cr=n-this.fa,this.alignState(),this.sendEvent()}ppvInput(t){const e=parseFloat(t.target.value),r=this.h+this.fa;this.h=Math.round(e*r),this.fa=r-this.h,this.alignState(),this.sendEvent()}fomrInput(t){const e=parseFloat(t.target.value),r=this.m+this.cr;this.m=Math.round(e*r),this.cr=r-this.m,this.alignState(),this.sendEvent()}static get styles(){return[super.styles,a(Sl||(Sl=gc`
|
|
1438
|
+
:host {
|
|
1439
|
+
display: inline-block;
|
|
1440
|
+
}
|
|
1441
|
+
|
|
1442
|
+
/* Overall element */
|
|
1443
|
+
table {
|
|
1444
|
+
text-align: center;
|
|
1445
|
+
|
|
1446
|
+
border-collapse: collapse;
|
|
1447
|
+
|
|
1448
|
+
border: 0;
|
|
1449
|
+
}
|
|
1450
|
+
|
|
1451
|
+
/* Headers */
|
|
1452
|
+
.th-main {
|
|
1453
|
+
padding: 0;
|
|
1454
|
+
|
|
1455
|
+
font-weight: bold;
|
|
1456
|
+
}
|
|
1457
|
+
|
|
1458
|
+
.th-sub {
|
|
1459
|
+
padding: 0 0.25rem;
|
|
1460
|
+
|
|
1461
|
+
font-weight: 600;
|
|
1462
|
+
}
|
|
1463
|
+
|
|
1464
|
+
.th-left {
|
|
1465
|
+
padding-left: 0;
|
|
1466
|
+
|
|
1467
|
+
text-align: right;
|
|
1468
|
+
}
|
|
1469
|
+
|
|
1470
|
+
/* Cells */
|
|
1471
|
+
.td {
|
|
1472
|
+
width: 10rem;
|
|
1473
|
+
|
|
1474
|
+
padding: 0.25rem 0.25rem 0.375rem;
|
|
1475
|
+
|
|
1476
|
+
transition: all var(---transition-duration) ease;
|
|
1477
|
+
}
|
|
1478
|
+
|
|
1479
|
+
.numeric .td {
|
|
1480
|
+
width: 7rem;
|
|
1481
|
+
}
|
|
1482
|
+
|
|
1483
|
+
/* Labels */
|
|
1484
|
+
.payoff {
|
|
1485
|
+
font-weight: 600;
|
|
1486
|
+
line-height: 0.75rem;
|
|
1487
|
+
}
|
|
1488
|
+
|
|
1489
|
+
/* User interaction <input> */
|
|
1490
|
+
.td-data decidables-spinner {
|
|
1491
|
+
--decidables-spinner-input-width: 3.5rem;
|
|
1492
|
+
}
|
|
1493
|
+
|
|
1494
|
+
.td-summary decidables-spinner {
|
|
1495
|
+
--decidables-spinner-input-width: 4.5rem;
|
|
1496
|
+
}
|
|
1497
|
+
|
|
1498
|
+
/* Color schemes & Table emphasis */
|
|
1499
|
+
|
|
1500
|
+
/* (Default) Outcome color scheme */
|
|
1501
|
+
.h {
|
|
1502
|
+
background: var(---color-h-light);
|
|
1503
|
+
border-top: 2px solid var(---color-element-emphasis);
|
|
1504
|
+
border-left: 2px solid var(---color-element-emphasis);
|
|
1505
|
+
}
|
|
1506
|
+
|
|
1507
|
+
.m {
|
|
1508
|
+
background: var(---color-m-light);
|
|
1509
|
+
border-top: 2px solid var(---color-element-emphasis);
|
|
1510
|
+
border-right: 2px solid var(---color-element-emphasis);
|
|
1511
|
+
}
|
|
1512
|
+
|
|
1513
|
+
.fa {
|
|
1514
|
+
background: var(---color-fa-light);
|
|
1515
|
+
border-bottom: 2px solid var(---color-element-emphasis);
|
|
1516
|
+
border-left: 2px solid var(---color-element-emphasis);
|
|
1517
|
+
}
|
|
1518
|
+
|
|
1519
|
+
.cr {
|
|
1520
|
+
background: var(---color-cr-light);
|
|
1521
|
+
border-right: 2px solid var(---color-element-emphasis);
|
|
1522
|
+
border-bottom: 2px solid var(---color-element-emphasis);
|
|
1523
|
+
}
|
|
1524
|
+
|
|
1525
|
+
.hr {
|
|
1526
|
+
background: var(---color-hr-light);
|
|
1527
|
+
}
|
|
1528
|
+
|
|
1529
|
+
.far {
|
|
1530
|
+
background: var(---color-far-light);
|
|
1531
|
+
}
|
|
1532
|
+
|
|
1533
|
+
.acc {
|
|
1534
|
+
background: var(---color-acc-light);
|
|
1535
|
+
}
|
|
1536
|
+
|
|
1537
|
+
.ppv {
|
|
1538
|
+
background: var(---color-present-light);
|
|
1539
|
+
}
|
|
1540
|
+
|
|
1541
|
+
.fomr {
|
|
1542
|
+
background: var(---color-absent-light);
|
|
1543
|
+
}
|
|
1544
|
+
|
|
1545
|
+
/* Accuracy color scheme */
|
|
1546
|
+
:host([color="accuracy"]) .h,
|
|
1547
|
+
:host([color="accuracy"]) .cr {
|
|
1548
|
+
background: var(---color-correct-light);
|
|
1549
|
+
}
|
|
1550
|
+
|
|
1551
|
+
:host([color="accuracy"]) .m,
|
|
1552
|
+
:host([color="accuracy"]) .fa {
|
|
1553
|
+
color: var(---color-text-inverse);
|
|
1554
|
+
|
|
1555
|
+
background: var(---color-error-light);
|
|
1556
|
+
}
|
|
1557
|
+
|
|
1558
|
+
:host([color="accuracy"]) .hr,
|
|
1559
|
+
:host([color="accuracy"]) .far,
|
|
1560
|
+
:host([color="accuracy"]) .ppv,
|
|
1561
|
+
:host([color="accuracy"]) .fomr {
|
|
1562
|
+
background: var(---color-element-background);
|
|
1563
|
+
}
|
|
1564
|
+
|
|
1565
|
+
/* Stimulus color scheme */
|
|
1566
|
+
:host([color="stimulus"]) .cr,
|
|
1567
|
+
:host([color="stimulus"]) .fa {
|
|
1568
|
+
background: var(---color-far-light);
|
|
1569
|
+
}
|
|
1570
|
+
|
|
1571
|
+
:host([color="stimulus"]) .m,
|
|
1572
|
+
:host([color="stimulus"]) .h {
|
|
1573
|
+
background: var(---color-hr-light);
|
|
1574
|
+
}
|
|
1575
|
+
|
|
1576
|
+
:host([color="stimulus"]) .ppv,
|
|
1577
|
+
:host([color="stimulus"]) .fomr,
|
|
1578
|
+
:host([color="stimulus"]) .acc {
|
|
1579
|
+
background: var(---color-element-background);
|
|
1580
|
+
}
|
|
1581
|
+
|
|
1582
|
+
/* Response color scheme */
|
|
1583
|
+
:host([color="response"]) .cr,
|
|
1584
|
+
:host([color="response"]) .m {
|
|
1585
|
+
background: var(---color-absent-light);
|
|
1586
|
+
}
|
|
1587
|
+
|
|
1588
|
+
:host([color="response"]) .fa,
|
|
1589
|
+
:host([color="response"]) .h {
|
|
1590
|
+
background: var(---color-present-light);
|
|
1591
|
+
}
|
|
1592
|
+
|
|
1593
|
+
:host([color="response"]) .hr,
|
|
1594
|
+
:host([color="response"]) .far,
|
|
1595
|
+
:host([color="response"]) .acc {
|
|
1596
|
+
background: var(---color-element-background);
|
|
1597
|
+
}
|
|
1598
|
+
|
|
1599
|
+
/* No color scheme */
|
|
1600
|
+
:host([color="none"]) .cr,
|
|
1601
|
+
:host([color="none"]) .fa,
|
|
1602
|
+
:host([color="none"]) .m,
|
|
1603
|
+
:host([color="none"]) .h,
|
|
1604
|
+
:host([color="none"]) .hr,
|
|
1605
|
+
:host([color="none"]) .far,
|
|
1606
|
+
:host([color="none"]) .ppv,
|
|
1607
|
+
:host([color="none"]) .fomr,
|
|
1608
|
+
:host([color="none"]) .acc {
|
|
1609
|
+
background: var(---color-element-background);
|
|
1610
|
+
}
|
|
1611
|
+
`))]}render(){const t=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:0,maximumFractionDigits:0});let e,r,n,i,s,a,o,l,c;return this.alignState(),this.numeric?(e=z(Al||(Al=gc`
|
|
1612
|
+
<decidables-spinner ?disabled=${0} min="0" .value="${0}" @input=${0}>
|
|
1613
|
+
<span>Hits</span>
|
|
1614
|
+
${0}
|
|
1615
|
+
</decidables-spinner>
|
|
1616
|
+
`),!this.interactive,this.h,this.hInput.bind(this),this.payoff?z(El||(El=gc`<span class="payoff">${0}</span>`),t.format(this.hPayoff)):z(Tl||(Tl=gc``))),r=z(Ml||(Ml=gc`
|
|
1617
|
+
<decidables-spinner ?disabled=${0} min="0" .value="${0}" @input=${0}>
|
|
1618
|
+
<span>Misses</span>
|
|
1619
|
+
${0}
|
|
1620
|
+
</decidables-spinner>
|
|
1621
|
+
`),!this.interactive,this.m,this.mInput.bind(this),this.payoff?z(Cl||(Cl=gc`<span class="payoff">${0}</span>`),t.format(this.mPayoff)):z(Nl||(Nl=gc``))),n=z(Rl||(Rl=gc`
|
|
1622
|
+
<decidables-spinner ?disabled=${0} min="0" .value="${0}" @input=${0}>
|
|
1623
|
+
<span>False Alarms</span>
|
|
1624
|
+
${0}
|
|
1625
|
+
</decidables-spinner>
|
|
1626
|
+
`),!this.interactive,this.fa,this.faInput.bind(this),this.payoff?z(ql||(ql=gc`<span class="payoff">${0}</span>`),t.format(this.faPayoff)):z(zl||(zl=gc``))),i=z(Pl||(Pl=gc`
|
|
1627
|
+
<decidables-spinner ?disabled=${0} min="0" .value="${0}" @input=${0}>
|
|
1628
|
+
<span>Correct Rejections</span>
|
|
1629
|
+
${0}
|
|
1630
|
+
</decidables-spinner>
|
|
1631
|
+
`),!this.interactive,this.cr,this.crInput.bind(this),this.payoff?z(Fl||(Fl=gc`<span class="payoff">${0}</span>`),t.format(this.crPayoff)):z(Ol||(Ol=gc``))),s=z(Hl||(Hl=gc`
|
|
1632
|
+
<decidables-spinner ?disabled=${0} min="0" max="1" step=".001" .value="${0}" @input=${0}>
|
|
1633
|
+
<span>Hit Rate</span>
|
|
1634
|
+
</decidables-spinner>
|
|
1635
|
+
`),!this.interactive,+this.hr.toFixed(3),this.hrInput.bind(this)),a=z(Dl||(Dl=gc`
|
|
1636
|
+
<decidables-spinner ?disabled=${0} min="0" max="1" step=".001" .value="${0}" @input=${0}>
|
|
1637
|
+
<span>False Alarm Rate</span>
|
|
1638
|
+
</decidables-spinner>
|
|
1639
|
+
`),!this.interactive,+this.far.toFixed(3),this.farInput.bind(this)),o=z(Il||(Il=gc`
|
|
1640
|
+
<decidables-spinner ?disabled=${0} min="0" max="1" step=".001" .value="${0}" @input=${0}>
|
|
1641
|
+
<span>Accuracy</span>
|
|
1642
|
+
</decidables-spinner>
|
|
1643
|
+
`),!this.interactive,+this.acc.toFixed(3),this.accInput.bind(this)),l=z(Ul||(Ul=gc`
|
|
1644
|
+
<decidables-spinner ?disabled=${0} min="0" max="1" step=".001" .value="${0}" @input=${0}>
|
|
1645
|
+
<span>Positive Predictive Value</span>
|
|
1646
|
+
</decidables-spinner>
|
|
1647
|
+
`),!this.interactive,+this.ppv.toFixed(3),this.ppvInput.bind(this)),c=z(Ll||(Ll=gc`
|
|
1648
|
+
<decidables-spinner ?disabled=${0} min="0" max="1" step=".001" .value="${0}" @input=${0}>
|
|
1649
|
+
<span>False Omission Rate</span>
|
|
1650
|
+
</decidables-spinner>
|
|
1651
|
+
`),!this.interactive,+this.fomr.toFixed(3),this.fomrInput.bind(this))):(e=z(jl||(jl=gc`<span>Hits</span>
|
|
1652
|
+
${0}`),this.payoff?z(Vl||(Vl=gc`<span class="payoff">${0}</span>`),t.format(this.hPayoff)):z(Bl||(Bl=gc``))),r=z(Kl||(Kl=gc`<span>Misses</span>
|
|
1653
|
+
${0}`),this.payoff?z(Xl||(Xl=gc`<span class="payoff">${0}</span>`),t.format(this.mPayoff)):z(Zl||(Zl=gc``))),n=z(Yl||(Yl=gc`<span>False Alarms</span>
|
|
1654
|
+
${0}`),this.payoff?z(Gl||(Gl=gc`<span class="payoff">${0}</span>`),t.format(this.faPayoff)):z(Wl||(Wl=gc``))),i=z(Ql||(Ql=gc`<span>Correct Rejections</span>
|
|
1655
|
+
${0}`),this.payoff?z(Jl||(Jl=gc`<span class="payoff">${0}</span>`),t.format(this.crPayoff)):z(tc||(tc=gc``))),s=z(ec||(ec=gc`<span>Hit Rate</span>`)),a=z(rc||(rc=gc`<span>False Alarm Rate</span>`)),o=z(nc||(nc=gc`<span>Accuracy</span>`)),l=z(ic||(ic=gc`<span>Positive Predictive Value</span>`)),c=z(sc||(sc=gc`<span>False Omission Rate</span>`))),z(ac||(ac=gc`
|
|
1656
|
+
<table class=${0}>
|
|
1657
|
+
<thead>
|
|
1658
|
+
<tr>
|
|
1659
|
+
<th colspan="2" rowspan="2"></th>
|
|
1660
|
+
<th class="th th-main" colspan="2" scope="col">
|
|
1661
|
+
Response
|
|
1662
|
+
</th>
|
|
1663
|
+
</tr>
|
|
1664
|
+
<tr>
|
|
1665
|
+
<th class="th th-sub" scope="col">
|
|
1666
|
+
"Present"
|
|
1667
|
+
</th>
|
|
1668
|
+
<th class="th th-sub" scope="col">
|
|
1669
|
+
"Absent"
|
|
1670
|
+
</th>
|
|
1671
|
+
</tr>
|
|
1672
|
+
</thead>
|
|
1673
|
+
<tbody>
|
|
1674
|
+
<tr>
|
|
1675
|
+
<th class="th th-main" rowspan="2" scope="row">
|
|
1676
|
+
Signal
|
|
1677
|
+
</th>
|
|
1678
|
+
<th class="th th-sub th-left" scope="row">
|
|
1679
|
+
Present
|
|
1680
|
+
</th>
|
|
1681
|
+
<td class="td td-data h">
|
|
1682
|
+
${0}
|
|
1683
|
+
</td>
|
|
1684
|
+
<td class="td td-data m">
|
|
1685
|
+
${0}
|
|
1686
|
+
</td>
|
|
1687
|
+
${0}
|
|
1688
|
+
</tr>
|
|
1689
|
+
<tr>
|
|
1690
|
+
<th class="th th-sub th-left" scope="row">
|
|
1691
|
+
Absent
|
|
1692
|
+
</th>
|
|
1693
|
+
<td class="td td-data fa">
|
|
1694
|
+
${0}
|
|
1695
|
+
</td>
|
|
1696
|
+
<td class="td td-data cr">
|
|
1697
|
+
${0}
|
|
1698
|
+
</td>
|
|
1699
|
+
${0}
|
|
1700
|
+
</tr>
|
|
1701
|
+
${0}
|
|
1702
|
+
</tbody>
|
|
1703
|
+
</table>`),this.numeric?"numeric":"",e,r,this.summary.has("stimulusRates")?z(oc||(oc=gc`
|
|
1704
|
+
<td class="td td-summary hr">
|
|
1705
|
+
${0}
|
|
1706
|
+
</td>`),s):z(lc||(lc=gc``)),n,i,this.summary.has("stimulusRates")?z(cc||(cc=gc`
|
|
1707
|
+
<td class="td td-summary far">
|
|
1708
|
+
${0}
|
|
1709
|
+
</td>`),a):z(hc||(hc=gc``)),this.summary.has("responseRates")||this.summary.has("accuracy")?z(uc||(uc=gc`
|
|
1710
|
+
<tr>
|
|
1711
|
+
<td colspan="2"></td>
|
|
1712
|
+
${0}
|
|
1713
|
+
${0}
|
|
1714
|
+
</tr>`),this.summary.has("responseRates")?z(dc||(dc=gc`
|
|
1715
|
+
<td class="td td-summary ppv">
|
|
1716
|
+
${0}
|
|
1717
|
+
</td>
|
|
1718
|
+
<td class="td td-summary fomr">
|
|
1719
|
+
${0}
|
|
1720
|
+
</td>`),l,c):z(fc||(fc=gc`
|
|
1721
|
+
<td colspan="2"></td>`)),this.summary.has("accuracy")?z(pc||(pc=gc`
|
|
1722
|
+
<td class="td td-summary acc" rowspan="2">
|
|
1723
|
+
${0}
|
|
1724
|
+
</td>`),o):z(mc||(mc=gc``))):z(bc||(bc=gc``)))}}customElements.define("detectable-table",vc);let yc,wc=t=>t;class xc extends vo{static get properties(){return{numeric:{attribute:"numeric",type:Boolean,reflect:!0}}}constructor(){super(),this.numeric=!1}static get styles(){return[super.styles,a(yc||(yc=wc`
|
|
1725
|
+
:host {
|
|
1726
|
+
display: block;
|
|
1727
|
+
|
|
1728
|
+
margin: 1rem;
|
|
1729
|
+
}
|
|
1730
|
+
|
|
1731
|
+
/* Containing <div> */
|
|
1732
|
+
.holder {
|
|
1733
|
+
display: flex;
|
|
1734
|
+
|
|
1735
|
+
flex-direction: row;
|
|
1736
|
+
|
|
1737
|
+
justify-content: left;
|
|
1738
|
+
}
|
|
1739
|
+
|
|
1740
|
+
/* Overall <table> */
|
|
1741
|
+
.equation {
|
|
1742
|
+
text-align: center;
|
|
1743
|
+
|
|
1744
|
+
border-collapse: collapse;
|
|
1745
|
+
|
|
1746
|
+
border: 0;
|
|
1747
|
+
}
|
|
1748
|
+
|
|
1749
|
+
/* Modifies <td> */
|
|
1750
|
+
.underline {
|
|
1751
|
+
border-bottom: 1px solid var(---color-text);
|
|
1752
|
+
}
|
|
1753
|
+
|
|
1754
|
+
/* Basic <span> and <var> w/modifiers */
|
|
1755
|
+
span,
|
|
1756
|
+
var {
|
|
1757
|
+
padding: 0 0.25rem;
|
|
1758
|
+
|
|
1759
|
+
font-style: normal;
|
|
1760
|
+
}
|
|
1761
|
+
|
|
1762
|
+
.tight {
|
|
1763
|
+
padding: 0;
|
|
1764
|
+
}
|
|
1765
|
+
|
|
1766
|
+
.paren {
|
|
1767
|
+
font-size: 150%;
|
|
1768
|
+
}
|
|
1769
|
+
|
|
1770
|
+
.bracket {
|
|
1771
|
+
font-size: 175%;
|
|
1772
|
+
}
|
|
1773
|
+
|
|
1774
|
+
.exp {
|
|
1775
|
+
font-size: 0.75rem;
|
|
1776
|
+
}
|
|
1777
|
+
|
|
1778
|
+
/* Input wrapping <label> */
|
|
1779
|
+
decidables-spinner {
|
|
1780
|
+
--decidables-spinner-input-width: 4rem;
|
|
1781
|
+
|
|
1782
|
+
display: inline-block;
|
|
1783
|
+
|
|
1784
|
+
padding: 0.125rem 0.375rem 0.375rem;
|
|
1785
|
+
|
|
1786
|
+
vertical-align: middle;
|
|
1787
|
+
}
|
|
1788
|
+
|
|
1789
|
+
.bottom {
|
|
1790
|
+
vertical-align: bottom;
|
|
1791
|
+
}
|
|
1792
|
+
|
|
1793
|
+
/* Color scheme */
|
|
1794
|
+
.h {
|
|
1795
|
+
background: var(---color-h-light);
|
|
1796
|
+
}
|
|
1797
|
+
|
|
1798
|
+
.m {
|
|
1799
|
+
background: var(---color-m-light);
|
|
1800
|
+
}
|
|
1801
|
+
|
|
1802
|
+
.hr {
|
|
1803
|
+
background: var(---color-hr-light);
|
|
1804
|
+
}
|
|
1805
|
+
|
|
1806
|
+
.fa {
|
|
1807
|
+
background: var(---color-fa-light);
|
|
1808
|
+
}
|
|
1809
|
+
|
|
1810
|
+
.acc {
|
|
1811
|
+
background: var(---color-acc-light);
|
|
1812
|
+
}
|
|
1813
|
+
|
|
1814
|
+
.cr {
|
|
1815
|
+
background: var(---color-cr-light);
|
|
1816
|
+
}
|
|
1817
|
+
|
|
1818
|
+
.far {
|
|
1819
|
+
background: var(---color-far-light);
|
|
1820
|
+
}
|
|
1821
|
+
|
|
1822
|
+
.d {
|
|
1823
|
+
background: var(---color-d-light);
|
|
1824
|
+
}
|
|
1825
|
+
|
|
1826
|
+
.c {
|
|
1827
|
+
background: var(---color-c-light);
|
|
1828
|
+
}
|
|
1829
|
+
|
|
1830
|
+
.s {
|
|
1831
|
+
background: var(---color-s-light);
|
|
1832
|
+
}
|
|
1833
|
+
`))]}}let kc,$c,_c,Sc,Ac,Ec,Tc,Mc,Cc,Nc,Rc,qc=t=>t;class zc extends xc{static get properties(){return{unequal:{attribute:"unequal",type:Boolean,reflect:!0},d:{attribute:"d",type:Number,reflect:!0},c:{attribute:"c",type:Number,reflect:!0},s:{attribute:"s",type:Number,reflect:!0},far:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.unequal=!1,this.d=0,this.c=0,this.s=1,this.alignState()}alignState(){this.far=_o.dC2Far(this.d,this.c,this.s)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-dc2far-change",{detail:{d:this.d,c:this.c,s:this.s,far:this.far},bubbles:!0}))}dInput(t){this.d=parseFloat(t.target.value),this.alignState(),this.sendEvent()}cInput(t){this.c=parseFloat(t.target.value),this.alignState(),this.sendEvent()}sInput(t){this.s=parseFloat(t.target.value),this.alignState(),this.sendEvent()}render(){let t,e,r,n,i;return this.alignState(),this.numeric?(t=z(kc||(kc=qc`
|
|
1834
|
+
<decidables-spinner class="d bottom" ?disabled=${0} step=".001" .value="${0}" @input=${0}>
|
|
1835
|
+
<var class="math-var">d′</var>
|
|
1836
|
+
</decidables-spinner>
|
|
1837
|
+
`),!this.interactive,this.d,this.dInput.bind(this)),e=z($c||($c=qc`
|
|
1838
|
+
<decidables-spinner class="c bottom" ?disabled=${0} step=".001" .value="${0}" @input=${0}>
|
|
1839
|
+
<var class="math-var">c</var>
|
|
1840
|
+
</decidables-spinner>
|
|
1841
|
+
`),!this.interactive,this.c,this.cInput.bind(this)),r=z(_c||(_c=qc`
|
|
1842
|
+
<decidables-spinner class="s bottom" ?disabled=${0} min="0" step=".001" .value="${0}" @input=${0}>
|
|
1843
|
+
<var class="math-var">σ</var>
|
|
1844
|
+
</decidables-spinner>
|
|
1845
|
+
`),!this.interactive,this.s,this.sInput.bind(this)),n=z(Sc||(Sc=qc`
|
|
1846
|
+
<decidables-spinner class="far bottom" disabled min="0" max="1" step=".001" .value="${0}">
|
|
1847
|
+
<var>False Alarm Rate</var>
|
|
1848
|
+
</decidables-spinner>
|
|
1849
|
+
`),+this.far.toFixed(3))):(t=z(Ac||(Ac=qc`<var class="math-var d">d′</var>`)),e=z(Ec||(Ec=qc`<var class="math-var c">c</var>`)),r=z(Tc||(Tc=qc`<var class="math-var s">σ</var>`)),n=z(Mc||(Mc=qc`<var class="far">False Alarm Rate</var>`))),i=this.unequal?z(Cc||(Cc=qc`
|
|
1850
|
+
<tr>
|
|
1851
|
+
<td rowspan="2">
|
|
1852
|
+
${0}<span class="equals">=</span><var class="math-greek phi tight">Φ</var><span class="paren tight">(</span><span class="bracket tight">[</span>
|
|
1853
|
+
</td>
|
|
1854
|
+
<td class="underline bottom">
|
|
1855
|
+
<span>1</span><span class="plus tight">+</span><span>${0}<sup class="exp">2</sup></span>
|
|
1856
|
+
</td>
|
|
1857
|
+
<td rowspan="2">
|
|
1858
|
+
<span class="bracket tight">]<sup class="exp">½</sup></span><span class="bracket tight">[</span>
|
|
1859
|
+
</td>
|
|
1860
|
+
<td class="underline">
|
|
1861
|
+
<span class="minus tight">−</span>${0}
|
|
1862
|
+
</td>
|
|
1863
|
+
<td rowspan="2">
|
|
1864
|
+
<span class="minus">−</span>${0}<span class="bracket tight">]</span><span class="paren tight">)</span>
|
|
1865
|
+
</td>
|
|
1866
|
+
</tr>
|
|
1867
|
+
<tr>
|
|
1868
|
+
<td>
|
|
1869
|
+
<span>2</span>
|
|
1870
|
+
</td>
|
|
1871
|
+
<td>
|
|
1872
|
+
<span><span>1</span><span class="plus">+</span>${0}</span>
|
|
1873
|
+
</td>
|
|
1874
|
+
</tr>`),n,r,t,e,r):z(Nc||(Nc=qc`
|
|
1875
|
+
<tr>
|
|
1876
|
+
<td rowspan="2">
|
|
1877
|
+
${0}<span class="equals">=</span><var class="math-greek phi tight">Φ</var><span class="paren tight">(</span><span class="minus tight">−</span>
|
|
1878
|
+
</td>
|
|
1879
|
+
<td class="underline">
|
|
1880
|
+
${0}
|
|
1881
|
+
</td>
|
|
1882
|
+
<td rowspan="2">
|
|
1883
|
+
<span class="minus">−</span>${0}<span class="paren tight">)</span>
|
|
1884
|
+
</td>
|
|
1885
|
+
</tr>
|
|
1886
|
+
<tr>
|
|
1887
|
+
<td>
|
|
1888
|
+
<span>2</span>
|
|
1889
|
+
</td>
|
|
1890
|
+
</tr>`),n,t,e),z(Rc||(Rc=qc`
|
|
1891
|
+
<div class="holder">
|
|
1892
|
+
<table class="equation">
|
|
1893
|
+
<tbody>
|
|
1894
|
+
${0}
|
|
1895
|
+
</tbody>
|
|
1896
|
+
</table>
|
|
1897
|
+
</div>`),i)}}customElements.define("sdt-equation-dc2far",zc);let Pc,Fc,Oc,Hc,Dc,Ic,Uc,Lc,jc,Vc,Bc,Kc=t=>t;class Xc extends xc{static get properties(){return{unequal:{attribute:"unequal",type:Boolean,reflect:!0},d:{attribute:"d",type:Number,reflect:!0},c:{attribute:"c",type:Number,reflect:!0},s:{attribute:"s",type:Number,reflect:!0},hr:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.unequal=!1,this.d=0,this.c=0,this.s=1,this.alignState()}alignState(){this.hr=_o.dC2Hr(this.d,this.c,this.s)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-dc2hr-change",{detail:{d:this.d,c:this.c,s:this.s,hr:this.hr},bubbles:!0}))}dInput(t){this.d=parseFloat(t.target.value),this.alignState(),this.sendEvent()}cInput(t){this.c=parseFloat(t.target.value),this.alignState(),this.sendEvent()}sInput(t){this.s=parseFloat(t.target.value),this.alignState(),this.sendEvent()}render(){let t,e,r,n,i;return this.alignState(),this.numeric?(t=z(Pc||(Pc=Kc`
|
|
1898
|
+
<decidables-spinner class="d bottom" ?disabled=${0} step=".001" .value="${0}" @input=${0}>
|
|
1899
|
+
<var class="math-var">d′</var>
|
|
1900
|
+
</decidables-spinner>
|
|
1901
|
+
`),!this.interactive,this.d,this.dInput.bind(this)),e=z(Fc||(Fc=Kc`
|
|
1902
|
+
<decidables-spinner class="c bottom" ?disabled=${0} step=".001" .value="${0}" @input=${0}>
|
|
1903
|
+
<var class="math-var">c</var>
|
|
1904
|
+
</decidables-spinner>
|
|
1905
|
+
`),!this.interactive,this.c,this.cInput.bind(this)),r=z(Oc||(Oc=Kc`
|
|
1906
|
+
<decidables-spinner class="s bottom" ?disabled=${0} min="0" step=".001" .value="${0}" @input=${0}>
|
|
1907
|
+
<var class="math-var">σ</var>
|
|
1908
|
+
</decidables-spinner>
|
|
1909
|
+
`),!this.interactive,this.s,this.sInput.bind(this)),n=z(Hc||(Hc=Kc`
|
|
1910
|
+
<decidables-spinner class="hr bottom" disabled min="0" max="1" step=".001" .value="${0}">
|
|
1911
|
+
<var>Hit Rate</var>
|
|
1912
|
+
</decidables-spinner>
|
|
1913
|
+
`),+this.hr.toFixed(3))):(t=z(Dc||(Dc=Kc`<var class="math-var d">d′</var>`)),e=z(Ic||(Ic=Kc`<var class="math-var c">c</var>`)),r=z(Uc||(Uc=Kc`<var class="math-var s">σ</var>`)),n=z(Lc||(Lc=Kc`<var class="hr">Hit Rate</var>`))),i=this.unequal?z(jc||(jc=Kc`
|
|
1914
|
+
<tr>
|
|
1915
|
+
<td rowspan="2">
|
|
1916
|
+
${0}<span class="equals">=</span><var class="math-greek phi tight">Φ</var><span class="paren tight">(</span><span class="bracket tight">[</span>
|
|
1917
|
+
</td>
|
|
1918
|
+
<td class="underline bottom">
|
|
1919
|
+
<span>1</span><span class="plus tight">+</span><span>${0}<sup class="exp">2</sup></span>
|
|
1920
|
+
</td>
|
|
1921
|
+
<td rowspan="2">
|
|
1922
|
+
<span class="bracket tight">]<sup class="exp">½</sup></span><span class="bracket tight">[</span>
|
|
1923
|
+
</td>
|
|
1924
|
+
<td class="underline">
|
|
1925
|
+
${0}
|
|
1926
|
+
</td>
|
|
1927
|
+
<td rowspan="2">
|
|
1928
|
+
<span class="minus">−</span>
|
|
1929
|
+
</td>
|
|
1930
|
+
<td class="underline">
|
|
1931
|
+
${0}
|
|
1932
|
+
</td>
|
|
1933
|
+
<td rowspan="2">
|
|
1934
|
+
<span class="bracket tight">]</span><span class="paren tight">)</span>
|
|
1935
|
+
</td>
|
|
1936
|
+
</tr>
|
|
1937
|
+
<tr>
|
|
1938
|
+
<td>
|
|
1939
|
+
<span>2</span>
|
|
1940
|
+
</td>
|
|
1941
|
+
<td>
|
|
1942
|
+
<span><span>1</span><span class="plus">+</span>${0}</span>
|
|
1943
|
+
</td>
|
|
1944
|
+
<td>
|
|
1945
|
+
${0}
|
|
1946
|
+
</td>
|
|
1947
|
+
</tr>`),n,r,t,e,r,r):z(Vc||(Vc=Kc`
|
|
1948
|
+
<tr>
|
|
1949
|
+
<td rowspan="2">
|
|
1950
|
+
${0}<span class="equals">=</span><var class="math-greek phi tight">Φ</var><span class="paren tight">(</span>
|
|
1951
|
+
</td>
|
|
1952
|
+
<td class="underline">
|
|
1953
|
+
${0}
|
|
1954
|
+
</td>
|
|
1955
|
+
<td rowspan="2">
|
|
1956
|
+
<span class="minus">−</span>${0}<span class="paren tight">)</span>
|
|
1957
|
+
</td>
|
|
1958
|
+
</tr>
|
|
1959
|
+
<tr>
|
|
1960
|
+
<td>
|
|
1961
|
+
<span>2</span>
|
|
1962
|
+
</td>
|
|
1963
|
+
</tr>`),n,t,e),z(Bc||(Bc=Kc`
|
|
1964
|
+
<div class="holder">
|
|
1965
|
+
<table class="equation">
|
|
1966
|
+
<tbody>
|
|
1967
|
+
${0}
|
|
1968
|
+
</tbody>
|
|
1969
|
+
</table>
|
|
1970
|
+
</div>`),i)}}customElements.define("sdt-equation-dc2hr",Xc);let Zc,Yc,Gc,Wc,Qc,Jc,th,eh=t=>t;class rh extends xc{static get properties(){return{fa:{attribute:"false-alarms",type:Number,reflect:!0},cr:{attribute:"correct-rejections",type:Number,reflect:!0},far:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.fa=0,this.cr=0,this.alignState()}alignState(){this.far=_o.faCr2Far(this.fa,this.cr)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-facr2far-change",{detail:{fa:this.fa,cr:this.cr,far:this.far},bubbles:!0}))}faInput(t){this.fa=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}crInput(t){this.cr=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}render(){let t,e,r;return this.alignState(),this.numeric?(t=z(Zc||(Zc=eh`
|
|
1971
|
+
<decidables-spinner class="fa" ?disabled=${0} min="0" .value="${0}" @input=${0}>
|
|
1972
|
+
<var>False Alarms</var>
|
|
1973
|
+
</decidables-spinner>
|
|
1974
|
+
`),!this.interactive,this.fa,this.faInput.bind(this)),e=z(Yc||(Yc=eh`
|
|
1975
|
+
<decidables-spinner class="cr" ?disabled=${0} min="0" .value="${0}" @input=${0}>
|
|
1976
|
+
<var>Correct Rejections</var>
|
|
1977
|
+
</decidables-spinner>
|
|
1978
|
+
`),!this.interactive,this.cr,this.crInput.bind(this)),r=z(Gc||(Gc=eh`
|
|
1979
|
+
<decidables-spinner class="far" disabled min="0" max="1" step=".001" .value="${0}">
|
|
1980
|
+
<var>False Alarm Rate</var>
|
|
1981
|
+
</decidables-spinner>
|
|
1982
|
+
`),+this.far.toFixed(3))):(t=z(Wc||(Wc=eh`<var class="fa">False Alarms</var>`)),e=z(Qc||(Qc=eh`<var class="cr">Correct Rejections</var>`)),r=z(Jc||(Jc=eh`<var class="far">False Alarm Rate</var>`))),z(th||(th=eh`
|
|
1983
|
+
<div class="holder">
|
|
1984
|
+
<table class="equation">
|
|
1985
|
+
<tbody>
|
|
1986
|
+
<tr>
|
|
1987
|
+
<td rowspan="2">
|
|
1988
|
+
${0}<span class="equals">=</span>
|
|
1989
|
+
</td>
|
|
1990
|
+
<td class="underline">
|
|
1991
|
+
${0}
|
|
1992
|
+
</td>
|
|
1993
|
+
</tr>
|
|
1994
|
+
<tr>
|
|
1995
|
+
<td>
|
|
1996
|
+
${0}<span class="plus">+</span>${0}
|
|
1997
|
+
</td>
|
|
1998
|
+
</tr>
|
|
1999
|
+
</tbody>
|
|
2000
|
+
</table>
|
|
2001
|
+
</div>`),r,t,t,e)}}customElements.define("sdt-equation-facr2far",rh);let nh,ih,sh,ah,oh,lh,ch,hh=t=>t;class uh extends xc{static get properties(){return{h:{attribute:"hits",type:Number,reflect:!0},m:{attribute:"misses",type:Number,reflect:!0},hr:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.h=0,this.m=0,this.alignState()}alignState(){this.hr=_o.hM2Hr(this.h,this.m)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-hm2hr-change",{detail:{h:this.h,m:this.m,hr:this.hr},bubbles:!0}))}hInput(t){this.h=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}mInput(t){this.m=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}render(){let t,e,r;return this.alignState(),this.numeric?(t=z(nh||(nh=hh`
|
|
2002
|
+
<decidables-spinner class="h" ?disabled=${0} min="0" .value="${0}" @input=${0}>
|
|
2003
|
+
<var>Hits</var>
|
|
2004
|
+
</decidables-spinner>
|
|
2005
|
+
`),!this.interactive,this.h,this.hInput.bind(this)),e=z(ih||(ih=hh`
|
|
2006
|
+
<decidables-spinner class="m" ?disabled=${0} min="0" .value="${0}" @input=${0}>
|
|
2007
|
+
<var>Misses</var>
|
|
2008
|
+
</decidables-spinner>
|
|
2009
|
+
`),!this.interactive,this.m,this.mInput.bind(this)),r=z(sh||(sh=hh`
|
|
2010
|
+
<decidables-spinner class="hr" disabled min="0" max="1" step=".001" .value="${0}">
|
|
2011
|
+
<var>Hit Rate</var>
|
|
2012
|
+
</decidables-spinner>
|
|
2013
|
+
`),+this.hr.toFixed(3))):(t=z(ah||(ah=hh`<var class="h">Hits</var>`)),e=z(oh||(oh=hh`<var class="m">Misses</var>`)),r=z(lh||(lh=hh`<var class="hr">Hit Rate</var>`))),z(ch||(ch=hh`
|
|
2014
|
+
<div class="holder">
|
|
2015
|
+
<table class="equation">
|
|
2016
|
+
<tbody>
|
|
2017
|
+
<tr>
|
|
2018
|
+
<td rowspan="2">
|
|
2019
|
+
${0}<span class="equals">=</span>
|
|
2020
|
+
</td>
|
|
2021
|
+
<td class="underline">
|
|
2022
|
+
${0}
|
|
2023
|
+
</td>
|
|
2024
|
+
</tr>
|
|
2025
|
+
<tr>
|
|
2026
|
+
<td>
|
|
2027
|
+
${0}<span class="plus">+</span>${0}
|
|
2028
|
+
</td>
|
|
2029
|
+
</tr>
|
|
2030
|
+
</tbody>
|
|
2031
|
+
</table>
|
|
2032
|
+
</div>
|
|
2033
|
+
`),r,t,t,e)}}customElements.define("sdt-equation-hm2hr",uh);let dh,fh,ph,mh,bh,gh,vh,yh,wh,xh,kh,$h=t=>t;class _h extends xc{static get properties(){return{h:{attribute:"hits",type:Number,reflect:!0},m:{attribute:"misses",type:Number,reflect:!0},fa:{attribute:"false-alarms",type:Number,reflect:!0},cr:{attribute:"correct-rejections",type:Number,reflect:!0},acc:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.h=0,this.m=0,this.fa=0,this.cr=0,this.alignState()}alignState(){this.acc=_o.hMFaCr2Acc(this.h,this.m,this.fa,this.cr)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-hmfacr2acc-change",{detail:{h:this.h,m:this.m,fa:this.fa,cr:this.cr,acc:this.acc},bubbles:!0}))}hInput(t){this.h=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}mInput(t){this.m=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}faInput(t){this.fa=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}crInput(t){this.cr=parseInt(t.target.value,10),this.alignState(),this.sendEvent()}render(){let t,e,r,n,i;return this.alignState(),this.numeric?(t=z(dh||(dh=$h`
|
|
2034
|
+
<decidables-spinner class="h" ?disabled=${0} min="0" .value="${0}" @input=${0}>
|
|
2035
|
+
<var>Hits</var>
|
|
2036
|
+
</decidables-spinner>
|
|
2037
|
+
`),!this.interactive,this.h,this.hInput.bind(this)),e=z(fh||(fh=$h`
|
|
2038
|
+
<decidables-spinner class="m" ?disabled=${0} min="0" .value="${0}" @input=${0}>
|
|
2039
|
+
<var>Misses</var>
|
|
2040
|
+
</decidables-spinner>
|
|
2041
|
+
`),!this.interactive,this.m,this.mInput.bind(this)),r=z(ph||(ph=$h`
|
|
2042
|
+
<decidables-spinner class="fa" ?disabled=${0} min="0" .value="${0}" @input=${0}>
|
|
2043
|
+
<var>False Alarms</var>
|
|
2044
|
+
</decidables-spinner>
|
|
2045
|
+
`),!this.interactive,this.fa,this.faInput.bind(this)),n=z(mh||(mh=$h`
|
|
2046
|
+
<decidables-spinner class="cr" ?disabled=${0} min="0" .value="${0}" @input=${0}>
|
|
2047
|
+
<var>Correct Rejections</var>
|
|
2048
|
+
</decidables-spinner>
|
|
2049
|
+
`),!this.interactive,this.cr,this.crInput.bind(this)),i=z(bh||(bh=$h`
|
|
2050
|
+
<decidables-spinner class="acc" disabled min="0" max="1" step=".001" .value="${0}">
|
|
2051
|
+
<var>Accuracy</var>
|
|
2052
|
+
</decidables-spinner>
|
|
2053
|
+
`),+this.acc.toFixed(3))):(t=z(gh||(gh=$h`<var class="h">Hits</var>`)),e=z(vh||(vh=$h`<var class="m">Misses</var>`)),r=z(yh||(yh=$h`<var class="fa">False Alarms</var>`)),n=z(wh||(wh=$h`<var class="cr">Correct Rejections</var>`)),i=z(xh||(xh=$h`<var class="acc">Accuracy</var>`))),z(kh||(kh=$h`
|
|
2054
|
+
<div class="holder">
|
|
2055
|
+
<table class="equation">
|
|
2056
|
+
<tbody>
|
|
2057
|
+
<tr>
|
|
2058
|
+
<td rowspan="2">
|
|
2059
|
+
${0}<span class="equals">=</span>
|
|
2060
|
+
</td>
|
|
2061
|
+
<td class="underline">
|
|
2062
|
+
${0}<span class="plus">+</span>${0}
|
|
2063
|
+
</td>
|
|
2064
|
+
</tr>
|
|
2065
|
+
<tr>
|
|
2066
|
+
<td>
|
|
2067
|
+
${0}<span class="plus">+</span>${0}<span class="plus">+</span>${0}<span class="plus">+</span>${0}
|
|
2068
|
+
</td>
|
|
2069
|
+
</tr>
|
|
2070
|
+
</tbody>
|
|
2071
|
+
</table>
|
|
2072
|
+
</div>`),i,t,n,t,e,r,n)}}customElements.define("sdt-equation-hmfacr2acc",_h);let Sh,Ah,Eh,Th,Mh,Ch,Nh,Rh,qh,zh,Ph,Fh=t=>t;class Oh extends xc{static get properties(){return{unequal:{attribute:"unequal",type:Boolean,reflect:!0},hr:{attribute:"hit-rate",type:Number,reflect:!0},far:{attribute:"false-alarm-rate",type:Number,reflect:!0},s:{attribute:"s",type:Number,reflect:!0},c:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.unequal=!1,this.hr=0,this.far=0,this.s=1,this.alignState()}alignState(){this.c=_o.hrFar2C(this.hr,this.far,this.s)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-hrfar2c-change",{detail:{hr:this.hr,far:this.far,s:this.s,c:this.c},bubbles:!0}))}hrInput(t){this.hr=parseFloat(t.target.value),this.alignState(),this.sendEvent()}farInput(t){this.far=parseFloat(t.target.value),this.alignState(),this.sendEvent()}sInput(t){this.s=parseFloat(t.target.value),this.alignState(),this.sendEvent()}render(){let t,e,r,n,i;return this.alignState(),this.numeric?(t=z(Sh||(Sh=Fh`
|
|
2073
|
+
<decidables-spinner class="hr bottom" ?disabled=${0} min="0" max="1" step=".001" .value="${0}" @input=${0}>
|
|
2074
|
+
<var>Hit Rate</var>
|
|
2075
|
+
</decidables-spinner>
|
|
2076
|
+
`),!this.interactive,this.hr,this.hrInput.bind(this)),e=z(Ah||(Ah=Fh`
|
|
2077
|
+
<decidables-spinner class="far bottom" ?disabled=${0} min="0" max="1" step=".001" .value="${0}" @input=${0}>
|
|
2078
|
+
<var>False Alarm Rate</var>
|
|
2079
|
+
</decidables-spinner>
|
|
2080
|
+
`),!this.interactive,this.far,this.farInput.bind(this)),r=z(Eh||(Eh=Fh`
|
|
2081
|
+
<decidables-spinner class="s bottom" ?disabled=${0} min="0" step=".001" .value="${0}" @input=${0}>
|
|
2082
|
+
<var class="math-var">σ</var>
|
|
2083
|
+
</decidables-spinner>
|
|
2084
|
+
`),!this.interactive,this.s,this.sInput.bind(this)),n=z(Th||(Th=Fh`
|
|
2085
|
+
<decidables-spinner class="c bottom" disabled step=".001" .value="${0}">
|
|
2086
|
+
<var class="math-var">c</var>
|
|
2087
|
+
</decidables-spinner>
|
|
2088
|
+
`),+this.c.toFixed(3))):(t=z(Mh||(Mh=Fh`<var class="hr">Hit Rate</var>`)),e=z(Ch||(Ch=Fh`<var class="far">False Alarm Rate</var>`)),r=z(Nh||(Nh=Fh`<var class="math-var s">σ</var>`)),n=z(Rh||(Rh=Fh`<var class="math-var c">c</var>`))),i=this.unequal?z(qh||(qh=Fh`
|
|
2089
|
+
<tr>
|
|
2090
|
+
<td rowspan="2">
|
|
2091
|
+
${0}<span class="equals">=</span><span class="bracket tight">(</span>
|
|
2092
|
+
</td>
|
|
2093
|
+
<td class="underline bottom">
|
|
2094
|
+
<span>1</span><span class="plus tight">+</span><span>${0}<sup class="exp">2</sup></span>
|
|
2095
|
+
</td>
|
|
2096
|
+
<td rowspan="2">
|
|
2097
|
+
<span class="bracket tight">)<sup class="exp">−½</sup></span><span class="bracket tight">(</span>
|
|
2098
|
+
</td>
|
|
2099
|
+
<td class="underline bottom">
|
|
2100
|
+
<span class="minus tight">−</span>${0}
|
|
2101
|
+
</td>
|
|
2102
|
+
<td rowspan="2">
|
|
2103
|
+
<span class="bracket tight">)</span><span class="bracket">[</span><span class="tight"><var class="math-greek phi tight">Φ</var><sup class="exp">−1</sup></span><span class="paren tight">(</span>${0}<span class="paren tight">)</span><span class="plus">+</span><span class="tight"><var class="math-greek phi tight">Φ</var><sup class="exp">−1</sup></span><span class="paren tight">(</span>${0}<span class="paren tight">)</span><span class="bracket">]</span>
|
|
2104
|
+
</td>
|
|
2105
|
+
</tr>
|
|
2106
|
+
<tr>
|
|
2107
|
+
<td>
|
|
2108
|
+
<span>2</span>
|
|
2109
|
+
</td>
|
|
2110
|
+
<td>
|
|
2111
|
+
<span><span>1</span><span class="plus">+</span>${0}</span>
|
|
2112
|
+
</td>
|
|
2113
|
+
</tr>`),n,r,r,t,e,r):z(zh||(zh=Fh`
|
|
2114
|
+
<tr>
|
|
2115
|
+
<td rowspan="2">
|
|
2116
|
+
${0}<span class="equals">=</span>
|
|
2117
|
+
</td>
|
|
2118
|
+
<td class="underline">
|
|
2119
|
+
<span class="minus tight">−</span><span class="bracket tight">[</span><span class="tight"><var class="math-greek phi tight">Φ</var><sup class="exp">−1</sup></span><span class="paren tight">(</span>${0}<span class="paren tight">)</span><span class="plus">+</span><span class="tight"><var class="math-greek phi tight">Φ</var><sup class="exp">−1</sup></span><span class="paren tight">(</span>${0}<span class="paren tight">)</span><span class="bracket tight">]</span>
|
|
2120
|
+
</td>
|
|
2121
|
+
</tr>
|
|
2122
|
+
<tr>
|
|
2123
|
+
<td>
|
|
2124
|
+
<span>2</span>
|
|
2125
|
+
</td>
|
|
2126
|
+
</tr>`),n,t,e),z(Ph||(Ph=Fh`
|
|
2127
|
+
<div class="holder">
|
|
2128
|
+
<table class="equation">
|
|
2129
|
+
<tbody>
|
|
2130
|
+
${0}
|
|
2131
|
+
</tbody>
|
|
2132
|
+
</table>
|
|
2133
|
+
</div>`),i)}}customElements.define("sdt-equation-hrfar2c",Oh);let Hh,Dh,Ih,Uh,Lh,jh,Vh,Bh,Kh,Xh,Zh,Yh=t=>t;class Gh extends xc{static get properties(){return{unequal:{attribute:"unequal",type:Boolean,reflect:!0},hr:{attribute:"hit-rate",type:Number,reflect:!0},far:{attribute:"false-alarm-rate",type:Number,reflect:!0},s:{attribute:"s",type:Number,reflect:!0},d:{attribute:!1,type:Number,reflect:!1}}}constructor(){super(),this.unequal=!1,this.hr=0,this.far=0,this.s=1,this.alignState()}alignState(){this.d=_o.hrFar2D(this.hr,this.far,this.s)}sendEvent(){this.dispatchEvent(new CustomEvent("sdt-equation-hrfar2d-change",{detail:{hr:this.hr,far:this.far,s:this.s,d:this.d},bubbles:!0}))}hrInput(t){this.hr=parseFloat(t.target.value),this.alignState(),this.sendEvent()}farInput(t){this.far=parseFloat(t.target.value),this.alignState(),this.sendEvent()}sInput(t){this.s=parseFloat(t.target.value),this.alignState(),this.sendEvent()}render(){let t,e,r,n,i;return this.alignState(),this.numeric?(t=z(Hh||(Hh=Yh`
|
|
2134
|
+
<decidables-spinner class="hr bottom" ?disabled=${0} min="0" max="1" step=".001" .value="${0}" @input=${0}>
|
|
2135
|
+
<var>Hit Rate</var>
|
|
2136
|
+
</decidables-spinner>
|
|
2137
|
+
`),!this.interactive,this.hr,this.hrInput.bind(this)),e=z(Dh||(Dh=Yh`
|
|
2138
|
+
<decidables-spinner class="far bottom" ?disabled=${0} min="0" max="1" step=".001" .value="${0}" @input=${0}>
|
|
2139
|
+
<var>False Alarm Rate</var>
|
|
2140
|
+
</decidables-spinner>
|
|
2141
|
+
`),!this.interactive,this.far,this.farInput.bind(this)),r=z(Ih||(Ih=Yh`
|
|
2142
|
+
<decidables-spinner class="s bottom" ?disabled=${0} min="0" step=".001" .value="${0}" @input=${0}>
|
|
2143
|
+
<var class="math-var">σ</var>
|
|
2144
|
+
</decidables-spinner>
|
|
2145
|
+
`),!this.interactive,this.s,this.sInput.bind(this)),n=z(Uh||(Uh=Yh`
|
|
2146
|
+
<decidables-spinner class="d bottom" disabled step=".001" .value="${0}">
|
|
2147
|
+
<var class="math-var">d′</var>
|
|
2148
|
+
</decidables-spinner>
|
|
2149
|
+
`),+this.d.toFixed(3))):(t=z(Lh||(Lh=Yh`<var class="hr">Hit Rate</var>`)),e=z(jh||(jh=Yh`<var class="far">False Alarm Rate</var>`)),r=z(Vh||(Vh=Yh`<var class="math-var s">σ</var>`)),n=z(Bh||(Bh=Yh`<var class="math-var d">d′</var>`))),i=this.unequal?z(Kh||(Kh=Yh`
|
|
2150
|
+
<tr>
|
|
2151
|
+
<td rowspan="2">
|
|
2152
|
+
${0}<span class="equals">=</span><span class="bracket tight">(</span>
|
|
2153
|
+
</td>
|
|
2154
|
+
<td class="underline bottom">
|
|
2155
|
+
<span>1</span><span class="plus tight">+</span><span>${0}<sup class="exp">2</sup></span>
|
|
2156
|
+
</td>
|
|
2157
|
+
<td rowspan="2">
|
|
2158
|
+
<span class="bracket tight">)<sup class="exp">−½</sup></span><span class="bracket">[</span>${0}<span class="tight"><var class="math-greek phi tight">Φ</var><sup class="exp">−1</sup></span><span class="paren tight">(</span>${0}<span class="paren tight">)</span><span class="minus">−</span><span class="tight"><var class="math-greek phi tight">Φ</var><sup class="exp">−1</sup></span><span class="paren tight">(</span>${0}<span class="paren tight">)</span><span class="bracket">]</span>
|
|
2159
|
+
</td>
|
|
2160
|
+
</tr>
|
|
2161
|
+
<tr>
|
|
2162
|
+
<td>
|
|
2163
|
+
<span>2</span>
|
|
2164
|
+
</td>
|
|
2165
|
+
</tr>`),n,r,r,t,e):z(Xh||(Xh=Yh`
|
|
2166
|
+
<tr>
|
|
2167
|
+
<td>
|
|
2168
|
+
${0}<span class="equals">=</span><span class="tight"><var class="math-greek phi tight">Φ</var><sup class="exp">−1</sup></span><span class="paren tight">(</span>${0}<span class="paren tight">)</span><span class="minus">−</span><span class="tight"><var class="math-greek phi tight">Φ</var><sup class="exp">−1</sup></span><span class="paren tight">(</span>${0}<span class="paren tight">)</span>
|
|
2169
|
+
</td>
|
|
2170
|
+
</tr>`),n,t,e),z(Zh||(Zh=Yh`
|
|
2171
|
+
<div class="holder">
|
|
2172
|
+
<table class="equation">
|
|
2173
|
+
<tbody>
|
|
2174
|
+
${0}
|
|
2175
|
+
</tbody>
|
|
2176
|
+
</table>
|
|
2177
|
+
</div>`),i)}}customElements.define("sdt-equation-hrfar2d",Gh);let Wh,Qh,Jh=t=>t;class tu extends vo{static get styles(){return[super.styles,a(Wh||(Wh=Jh`
|
|
2178
|
+
:host {
|
|
2179
|
+
---border: var(--border, 1px solid var(---color-border));
|
|
2180
|
+
display: inline-block;
|
|
2181
|
+
|
|
2182
|
+
margin-bottom: 1rem;
|
|
2183
|
+
}
|
|
2184
|
+
|
|
2185
|
+
.holder {
|
|
2186
|
+
display: flex;
|
|
2187
|
+
}
|
|
2188
|
+
|
|
2189
|
+
.body {
|
|
2190
|
+
display: flex;
|
|
2191
|
+
|
|
2192
|
+
flex-wrap: wrap;
|
|
2193
|
+
|
|
2194
|
+
align-items: center;
|
|
2195
|
+
justify-content: left;
|
|
2196
|
+
|
|
2197
|
+
padding: 0.625rem;
|
|
2198
|
+
|
|
2199
|
+
border: var(---border);
|
|
2200
|
+
border-radius: 0.25rem;
|
|
2201
|
+
}
|
|
2202
|
+
|
|
2203
|
+
.body ::slotted(*) {
|
|
2204
|
+
margin: 0.625rem;
|
|
2205
|
+
}
|
|
2206
|
+
|
|
2207
|
+
/* HACK: Sibling selectors not working with ::slotted */
|
|
2208
|
+
/* .body > rdk-task + detectable-response,
|
|
2209
|
+
::slotted(rdk-task) + ::slotted(detectable-response) { */
|
|
2210
|
+
.body ::slotted(detectable-response) {
|
|
2211
|
+
margin-left: 0;
|
|
2212
|
+
}
|
|
2213
|
+
|
|
2214
|
+
/* HACK: Sibling selectors not working with ::slotted */
|
|
2215
|
+
/* .body > detectable-control + rdk-task,
|
|
2216
|
+
::slotted(detectable-control) + ::slotted(rdk-task) {
|
|
2217
|
+
margin-left: 0;
|
|
2218
|
+
} */
|
|
2219
|
+
.body ::slotted(rdk-task) {
|
|
2220
|
+
margin-left: 0;
|
|
2221
|
+
}
|
|
2222
|
+
`))]}render(){return z(Qh||(Qh=Jh`
|
|
2223
|
+
<div class="holder">
|
|
2224
|
+
<div class="body">
|
|
2225
|
+
<slot>Empty!</slot>
|
|
2226
|
+
</div>
|
|
2227
|
+
</div>`))}}customElements.define("sdt-example",tu);class eu extends tu{firstUpdated(){this.one={},this.one.h=95,this.one.m=5,this.one.fa=35,this.one.cr=65,this.one.hr=_o.hM2Hr(this.one.h,this.one.m),this.one.far=_o.faCr2Far(this.one.fa,this.one.cr),this.one.d=_o.hrFar2D(this.one.hr,this.one.far),this.one.c=_o.hrFar2C(this.one.hr,this.one.far),this.two={},this.two.h=40,this.two.m=60,this.two.fa=20,this.two.cr=80,this.two.hr=_o.hM2Hr(this.two.h,this.two.m),this.two.far=_o.faCr2Far(this.two.fa,this.two.cr),this.two.d=_o.hrFar2D(this.two.hr,this.two.far),this.two.c=_o.hrFar2C(this.two.hr,this.two.far),this.detectableTableOne=this.querySelector("detectable-table:nth-of-type(1)"),this.detectableTableTwo=this.querySelector("detectable-table:nth-of-type(2)"),this.rocSpace=this.querySelector("roc-space"),this.sdtModelOne=this.querySelector("sdt-model:nth-of-type(1)"),this.sdtModelTwo=this.querySelector("sdt-model:nth-of-type(2)"),this.detectableTableOne&&(this.detectableTableOne.h=this.one.h,this.detectableTableOne.m=this.one.m,this.detectableTableOne.fa=this.one.fa,this.detectableTableOne.cr=this.one.cr,this.detectableTableOne.addEventListener("detectable-table-change",(t=>{this.rocSpace&&this.rocSpace.set(t.detail.hr,t.detail.far,"default","↑"),this.sdtModelOne&&(this.sdtModelOne.d=_o.hrFar2D(t.detail.hr,t.detail.far),this.sdtModelOne.c=_o.hrFar2C(t.detail.hr,t.detail.far))}))),this.detectableTableTwo&&(this.detectableTableTwo.h=this.two.h,this.detectableTableTwo.m=this.two.m,this.detectableTableTwo.fa=this.two.fa,this.detectableTableTwo.cr=this.two.cr,this.detectableTableTwo.addEventListener("detectable-table-change",(t=>{this.rocSpace&&this.rocSpace.set(t.detail.hr,t.detail.far,"two","↓"),this.sdtModelTwo&&(this.sdtModelTwo.d=_o.hrFar2D(t.detail.hr,t.detail.far),this.sdtModelTwo.c=_o.hrFar2C(t.detail.hr,t.detail.far))}))),this.rocSpace&&(this.rocSpace.set(this.one.hr,this.one.far,"default","↑"),this.rocSpace.set(this.two.hr,this.two.far,"two","↓"),this.rocSpace.addEventListener("roc-point-change",(t=>{if("default"===t.detail.name&&this.sdtModelOne?(this.sdtModelOne.d=t.detail.d,this.sdtModelOne.c=t.detail.c):"two"===t.detail.name&&this.sdtModelTwo&&(this.sdtModelTwo.d=t.detail.d,this.sdtModelTwo.c=t.detail.c),"default"===t.detail.name&&this.detectableTableOne){const e=Math.round((this.detectableTableOne.h+this.detectableTableOne.m)*t.detail.hr),r=this.detectableTableOne.h+this.detectableTableOne.m-e,n=Math.round((this.detectableTableOne.fa+this.detectableTableOne.cr)*t.detail.far),i=this.detectableTableOne.fa+this.detectableTableOne.cr-n;this.detectableTableOne.h=e,this.detectableTableOne.m=r,this.detectableTableOne.fa=n,this.detectableTableOne.cr=i}else if("two"===t.detail.name&&this.detectableTableTwo){const e=Math.round((this.detectableTableTwo.h+this.detectableTableTwo.m)*t.detail.hr),r=this.detectableTableTwo.h+this.detectableTableTwo.m-e,n=Math.round((this.detectableTableTwo.fa+this.detectableTableTwo.cr)*t.detail.far),i=this.detectableTableTwo.fa+this.detectableTableTwo.cr-n;this.detectableTableTwo.h=e,this.detectableTableTwo.m=r,this.detectableTableTwo.fa=n,this.detectableTableTwo.cr=i}}))),this.sdtModelOne&&(this.sdtModelOne.d=this.one.d,this.sdtModelOne.c=this.one.c,this.sdtModelOne.addEventListener("sdt-model-change",(t=>{if(this.rocSpace&&this.rocSpace.setWithSDT(t.detail.d,t.detail.c,"default","↑"),this.detectableTableOne){const e=Math.round((this.detectableTableOne.h+this.detectableTableOne.m)*t.detail.hr),r=this.detectableTableOne.h+this.detectableTableOne.m-e,n=Math.round((this.detectableTableOne.fa+this.detectableTableOne.cr)*t.detail.far),i=this.detectableTableOne.fa+this.detectableTableOne.cr-n;this.detectableTableOne.h=e,this.detectableTableOne.m=r,this.detectableTableOne.fa=n,this.detectableTableOne.cr=i}}))),this.sdtModelTwo&&(this.sdtModelTwo.d=this.two.d,this.sdtModelTwo.c=this.two.c,this.sdtModelTwo.addEventListener("sdt-model-change",(t=>{if(this.rocSpace&&this.rocSpace.setWithSDT(t.detail.d,t.detail.c,"two","↓"),this.detectableTableTwo){const e=Math.round((this.detectableTableTwo.h+this.detectableTableTwo.m)*t.detail.hr),r=this.detectableTableTwo.h+this.detectableTableTwo.m-e,n=Math.round((this.detectableTableTwo.fa+this.detectableTableTwo.cr)*t.detail.far),i=this.detectableTableTwo.fa+this.detectableTableTwo.cr-n;this.detectableTableTwo.h=e,this.detectableTableTwo.m=r,this.detectableTableTwo.fa=n,this.detectableTableTwo.cr=i}})))}}customElements.define("sdt-example-double-interactive",eu);class ru extends tu{firstUpdated(){this.count=1,this.detectableControl=this.querySelector("detectable-control"),this.rdkTask=this.querySelector("rdk-task"),this.detectableResponse=this.querySelector("detectable-response"),this.detectableTable=this.querySelector("detectable-table"),this.rocSpace=this.querySelector("roc-space"),this.sdtModel=this.querySelector("sdt-model"),this.rocSpace&&this.rocSpace.hasAttribute("history")&&this.rocSpace.set(.5,.5,"default",this.count),this.detectableControl&&this.detectableControl.hasAttribute("trials")&&this.detectableControl.addEventListener("detectable-control-trials",(t=>{this.rdkTask&&(this.rdkTask.trials=t.detail.trials),this.detectableResponse&&(this.detectableResponse.trialTotal=t.detail.trials)})),this.detectableControl&&this.detectableControl.hasAttribute("duration")&&this.detectableControl.addEventListener("detectable-control-duration",(t=>{this.rdkTask&&(this.rdkTask.duration=t.detail.duration,this.rdkTask.wait=t.detail.duration,this.rdkTask.iti=t.detail.duration)})),this.detectableControl&&this.detectableControl.hasAttribute("coherence")&&this.detectableControl.addEventListener("detectable-control-coherence",(t=>{this.rdkTask&&(this.rdkTask.coherence=t.detail.coherence)})),this.detectableControl&&this.detectableControl.hasAttribute("payoff")&&this.detectableControl.addEventListener("detectable-control-payoff",(t=>{this.detectableResponse&&(this.detectableResponse.hPayoff=t.detail.payoff,this.detectableResponse.mPayoff=0-t.detail.payoff,this.detectableResponse.faPayoff=0-(100-t.detail.payoff),this.detectableResponse.crPayoff=100-t.detail.payoff),this.detectableTable&&(this.detectableTable.hPayoff=t.detail.payoff,this.detectableTable.mPayoff=0-t.detail.payoff,this.detectableTable.faPayoff=0-(100-t.detail.payoff),this.detectableTable.crPayoff=100-t.detail.payoff)})),this.detectableControl&&this.detectableControl.hasAttribute("run")&&this.detectableControl.addEventListener("detectable-control-run",(()=>{this.rdkTask&&(this.rdkTask.running=!0)})),this.detectableControl&&this.detectableControl.hasAttribute("pause")&&this.detectableControl.addEventListener("detectable-control-pause",(()=>{this.rdkTask&&(this.rdkTask.running=!1)})),this.detectableControl&&this.detectableControl.hasAttribute("reset")&&this.detectableControl.addEventListener("detectable-control-reset",(()=>{this.rdkTask&&this.rdkTask.reset(),this.detectableResponse&&this.detectableResponse.reset(),this.detectableTable&&(this.detectableTable.h=0,this.detectableTable.m=0,this.detectableTable.fa=0,this.detectableTable.cr=0),this.rocSpace&&(this.rocSpace.hasAttribute("history")?(this.count+=1,this.rocSpace.set(.5,.5,`point${this.count}`,this.count)):(this.rocSpace.hr=.5,this.rocSpace.far=.5)),this.sdtModel&&(this.sdtModel.d=0,this.sdtModel.c=0)})),this.rdkTask&&this.detectableResponse&&(this.detectableResponse.trialTotal=this.rdkTask.trials),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-start",(t=>{this.detectableResponse&&this.detectableResponse.start(t.detail.signal,t.detail.trial)})),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-end",(()=>{this.detectableResponse&&this.detectableResponse.stop()})),this.rdkTask&&this.rdkTask.addEventListener("rdk-block-end",(()=>{this.detectableControl&&this.detectableControl.complete()})),this.detectableResponse&&this.detectableResponse.addEventListener("detectable-response",(t=>{this.detectableTable&&(this.detectableTable.h=t.detail.h,this.detectableTable.m=t.detail.m,this.detectableTable.fa=t.detail.fa,this.detectableTable.cr=t.detail.cr);const e=_o.hM2Hr(t.detail.h+1,t.detail.m+1),r=_o.faCr2Far(t.detail.fa+1,t.detail.cr+1);this.rocSpace&&(this.rocSpace.hasAttribute("history")?this.rocSpace.set(e,r,1===this.count?"default":`point${this.count}`,this.count):(this.rocSpace.hr=e,this.rocSpace.far=r)),this.sdtModel&&(this.sdtModel.d=_o.hrFar2D(e,r),this.sdtModel.c=_o.hrFar2C(e,r))}))}}customElements.define("sdt-example-human",ru);class nu extends tu{firstUpdated(){this.detectableControl=this.querySelector("detectable-control"),this.detectableTable=this.querySelector("detectable-table"),this.rocSpace=this.querySelector("roc-space"),this.sdtModel=this.querySelector("sdt-model"),this.rocSpaces=this.querySelectorAll("roc-space"),this.detectableControl&&this.detectableControl.hasAttribute("color")&&this.detectableControl.addEventListener("detectable-control-color",(t=>{this.sdtModel&&(this.sdtModel.color=t.detail.color),this.detectableTable&&(this.detectableTable.color=t.detail.color)})),this.detectableControl&&this.detectableControl.addEventListener("detectable-control-z-roc",(t=>{this.rocSpaces.length>0&&this.rocSpaces.forEach((e=>{e.zRoc=t.detail.zRoc}))})),this.detectableTable&&(this.rocSpace&&(this.rocSpace.hr=_o.hM2Hr(this.detectableTable.h,this.detectableTable.m),this.rocSpace.far=_o.faCr2Far(this.detectableTable.fa,this.detectableTable.cr)),this.sdtModel&&(this.sdtModel.d=_o.hrFar2D(_o.hM2Hr(this.detectableTable.h,this.detectableTable.m),_o.faCr2Far(this.detectableTable.fa,this.detectableTable.cr),this.sdtModel.s),this.sdtModel.c=_o.hrFar2C(_o.hM2Hr(this.detectableTable.h,this.detectableTable.m),_o.faCr2Far(this.detectableTable.fa,this.detectableTable.cr),this.sdtModel.s)),this.detectableTable.addEventListener("detectable-table-change",(t=>{this.rocSpace&&(this.rocSpace.far=t.detail.far,this.rocSpace.hr=t.detail.hr),this.sdtModel&&(this.sdtModel.d=_o.hrFar2D(t.detail.hr,t.detail.far,this.sdtModel.s),this.sdtModel.c=_o.hrFar2C(t.detail.hr,t.detail.far,this.sdtModel.s))}))),this.rocSpace&&(this.sdtModel&&!this.detectableTable&&(this.sdtModel.d=_o.hrFar2D(this.rocSpace.hr,this.rocSpace.far,this.rocSpace.s),this.sdtModel.c=_o.hrFar2C(this.rocSpace.hr,this.rocSpace.far,this.rocSpace.s),this.sdtModel.s=this.rocSpace.s),this.rocSpace.addEventListener("roc-point-change",(t=>{if(this.sdtModel&&(this.sdtModel.d=t.detail.d,this.sdtModel.c=t.detail.c,this.sdtModel.s=t.detail.s),this.detectableTable){const e=Math.round((this.detectableTable.h+this.detectableTable.m)*t.detail.hr),r=this.detectableTable.h+this.detectableTable.m-e,n=Math.round((this.detectableTable.fa+this.detectableTable.cr)*t.detail.far),i=this.detectableTable.fa+this.detectableTable.cr-n;this.detectableTable.h=e,this.detectableTable.m=r,this.detectableTable.fa=n,this.detectableTable.cr=i}}))),this.sdtModel&&this.sdtModel.addEventListener("sdt-model-change",(t=>{if(this.rocSpaces.length>0&&this.rocSpaces.forEach((e=>{e.setWithSDT(t.detail.d,t.detail.c,"default","",t.detail.s)})),this.detectableTable){const e=Math.round((this.detectableTable.h+this.detectableTable.m)*t.detail.hr),r=this.detectableTable.h+this.detectableTable.m-e,n=Math.round((this.detectableTable.fa+this.detectableTable.cr)*t.detail.far),i=this.detectableTable.fa+this.detectableTable.cr-n;this.detectableTable.h=e,this.detectableTable.m=r,this.detectableTable.fa=n,this.detectableTable.cr=i}}))}}customElements.define("sdt-example-interactive",nu);class iu extends tu{firstUpdated(){this.count=1,this.detectableControl=this.querySelector("detectable-control"),this.rdkTask=this.querySelector("rdk-task"),this.sdtModel=this.querySelector("sdt-model"),this.detectableResponse=this.querySelector("detectable-response"),this.detectableTable=this.querySelector("detectable-table"),this.rocSpace=this.querySelector("roc-space"),this.detectableControl&&this.detectableControl.hasAttribute("color")&&this.detectableControl.addEventListener("detectable-control-color",(t=>{this.sdtModel&&(this.sdtModel.color=t.detail.color),this.detectableTable&&(this.detectableTable.color=t.detail.color)})),this.detectableControl&&this.detectableControl.hasAttribute("duration")&&this.detectableControl.addEventListener("detectable-control-duration",(t=>{this.rdkTask&&(this.rdkTask.duration=t.detail.duration,this.rdkTask.wait=t.detail.duration,this.rdkTask.iti=t.detail.duration)})),this.detectableControl&&this.detectableControl.hasAttribute("trials")&&this.detectableControl.addEventListener("detectable-control-trials",(t=>{this.rdkTask&&(this.rdkTask.trials=t.detail.trials),this.detectableResponse&&(this.detectableResponse.trialTotal=t.detail.trials)})),this.detectableControl&&this.detectableControl.hasAttribute("coherence")&&this.detectableControl.addEventListener("detectable-control-coherence",(t=>{this.rdkTask&&(this.rdkTask.coherence=t.detail.coherence)})),this.detectableControl&&this.detectableControl.hasAttribute("run")&&this.detectableControl.addEventListener("detectable-control-run",(()=>{this.rdkTask&&(this.rdkTask.running=!0),this.sdtModel&&this.sdtModel.resumeTrial()})),this.detectableControl&&this.detectableControl.hasAttribute("pause")&&this.detectableControl.addEventListener("detectable-control-pause",(()=>{this.rdkTask&&(this.rdkTask.running=!1),this.sdtModel&&this.sdtModel.pauseTrial()})),this.detectableControl&&this.detectableControl.hasAttribute("reset")&&this.detectableControl.addEventListener("detectable-control-reset",(()=>{this.rdkTask&&this.rdkTask.reset(),this.detectableResponse&&this.detectableResponse.reset(),this.sdtModel&&this.sdtModel.reset(),this.detectableTable&&(this.detectableTable.h=0,this.detectableTable.m=0,this.detectableTable.fa=0,this.detectableTable.cr=0),this.rocSpace&&(this.rocSpace.hasAttribute("history")?(this.count+=1,this.rocSpace.set(.5,.5,`point${this.count}`,"",1)):(this.rocSpace.hr=.5,this.rocSpace.far=.5))})),this.rdkTask&&this.detectableResponse&&(this.detectableResponse.trialTotal=this.rdkTask.trials),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-start",(t=>{this.detectableResponse&&this.detectableResponse.start(t.detail.signal,t.detail.trial),this.sdtModel&&this.sdtModel.trial(t.detail.trial,t.detail.signal,t.detail.duration,t.detail.wait,t.detail.iti)})),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-middle",(()=>{})),this.rdkTask&&this.rdkTask.addEventListener("rdk-trial-end",(()=>{this.detectableResponse&&this.detectableResponse.stop()})),this.rdkTask&&this.rdkTask.addEventListener("rdk-block-end",(()=>{this.detectableControl&&this.detectableControl.complete()})),this.sdtModel&&this.sdtModel.addEventListener("detectable-response",(t=>{this.detectableResponse&&this.detectableResponse.responded(t.detail.response),this.detectableTable&&(this.detectableTable.h=t.detail.h,this.detectableTable.m=t.detail.m,this.detectableTable.fa=t.detail.fa,this.detectableTable.cr=t.detail.cr),this.rocSpace&&(this.rocSpace.hr=_o.hM2Hr(t.detail.h,t.detail.m),this.rocSpace.far=_o.faCr2Far(t.detail.fa,t.detail.cr))})),this.sdtModel&&this.sdtModel.addEventListener("sdt-model-change",(t=>{this.detectableTable&&(this.detectableTable.h=t.detail.h,this.detectableTable.m=t.detail.m,this.detectableTable.fa=t.detail.fa,this.detectableTable.cr=t.detail.cr),this.rocSpace&&(this.rocSpace.hr=_o.hM2Hr(t.detail.h,t.detail.m),this.rocSpace.far=_o.faCr2Far(t.detail.fa,t.detail.cr))}))}}customElements.define("sdt-example-model",iu);class su extends tu{firstUpdated(){this.detectableControl=this.querySelector("detectable-control"),this.rocSpace=this.querySelector("roc-space"),this.sdtModel=this.querySelector("sdt-model"),this.detectableControl&&this.detectableControl.addEventListener("detectable-control-z-roc",(t=>{this.rocSpace.zRoc=t.detail.zRoc})),this.rocSpace&&this.rocSpace.setWithSDT(1,0,"default","",1),this.sdtModel&&(this.rocSpace&&yt(-1.5,1.6,.5).forEach(((t,e)=>{this.rocSpace.setWithSDT(this.sdtModel.d,t,`point${e}`,"",this.sdtModel.s)})),this.sdtModel.addEventListener("sdt-model-change",(t=>{this.rocSpace&&yt(-1.5,1.6,.5).forEach(((e,r)=>{this.rocSpace.setWithSDT(t.detail.d,e,`point${r}`,"",t.detail.s)}))})))}}customElements.define("sdt-example-unequal",su),t.DetectableControl=Qo,t.DetectableElement=vo,t.DetectableResponse=_l,t.DetectableTable=vc,t.RDKTask=ko,t.ROCSpace=To,t.SDTEquationDC2Far=zc,t.SDTEquationDC2Hr=Xc,t.SDTEquationFaCr2Far=rh,t.SDTEquationHM2Hr=uh,t.SDTEquationHMFaCr2Acc=_h,t.SDTEquationHrFar2C=Oh,t.SDTEquationHrFar2D=Gh,t.SDTExampleDoubleInteractive=eu,t.SDTExampleHuman=ru,t.SDTExampleInteractive=nu,t.SDTExampleModel=iu,t.SDTExampleUnequal=su,t.SDTModel=rl,Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
13
2228
|
//# sourceMappingURL=detectableElements.umd.min.js.map
|