@decidables/accumulable-elements 0.3.4 → 0.3.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"accumulableElements.umd.js","sources":["../../../node_modules/@lit/reactive-element/css-tag.js","../../../node_modules/@lit/reactive-element/reactive-element.js","../../../node_modules/lit-html/lit-html.js","../../../node_modules/lit-element/lit-element.js","../../../node_modules/d3-array/src/ascending.js","../../../node_modules/d3-array/src/descending.js","../../../node_modules/d3-array/src/bisector.js","../../../node_modules/d3-array/src/number.js","../../../node_modules/d3-array/src/bisect.js","../../../node_modules/d3-array/src/ticks.js","../../../node_modules/d3-axis/src/identity.js","../../../node_modules/d3-axis/src/axis.js","../../../node_modules/d3-dispatch/src/dispatch.js","../../../node_modules/d3-selection/src/namespaces.js","../../../node_modules/d3-selection/src/namespace.js","../../../node_modules/d3-selection/src/creator.js","../../../node_modules/d3-selection/src/selector.js","../../../node_modules/d3-selection/src/selection/select.js","../../../node_modules/d3-selection/src/array.js","../../../node_modules/d3-selection/src/selectorAll.js","../../../node_modules/d3-selection/src/selection/selectAll.js","../../../node_modules/d3-selection/src/matcher.js","../../../node_modules/d3-selection/src/selection/selectChild.js","../../../node_modules/d3-selection/src/selection/selectChildren.js","../../../node_modules/d3-selection/src/selection/filter.js","../../../node_modules/d3-selection/src/selection/sparse.js","../../../node_modules/d3-selection/src/selection/enter.js","../../../node_modules/d3-selection/src/constant.js","../../../node_modules/d3-selection/src/selection/data.js","../../../node_modules/d3-selection/src/selection/exit.js","../../../node_modules/d3-selection/src/selection/join.js","../../../node_modules/d3-selection/src/selection/merge.js","../../../node_modules/d3-selection/src/selection/order.js","../../../node_modules/d3-selection/src/selection/sort.js","../../../node_modules/d3-selection/src/selection/call.js","../../../node_modules/d3-selection/src/selection/nodes.js","../../../node_modules/d3-selection/src/selection/node.js","../../../node_modules/d3-selection/src/selection/size.js","../../../node_modules/d3-selection/src/selection/empty.js","../../../node_modules/d3-selection/src/selection/each.js","../../../node_modules/d3-selection/src/selection/attr.js","../../../node_modules/d3-selection/src/window.js","../../../node_modules/d3-selection/src/selection/style.js","../../../node_modules/d3-selection/src/selection/property.js","../../../node_modules/d3-selection/src/selection/classed.js","../../../node_modules/d3-selection/src/selection/text.js","../../../node_modules/d3-selection/src/selection/html.js","../../../node_modules/d3-selection/src/selection/raise.js","../../../node_modules/d3-selection/src/selection/lower.js","../../../node_modules/d3-selection/src/selection/append.js","../../../node_modules/d3-selection/src/selection/insert.js","../../../node_modules/d3-selection/src/selection/remove.js","../../../node_modules/d3-selection/src/selection/clone.js","../../../node_modules/d3-selection/src/selection/datum.js","../../../node_modules/d3-selection/src/selection/on.js","../../../node_modules/d3-selection/src/selection/dispatch.js","../../../node_modules/d3-selection/src/selection/iterator.js","../../../node_modules/d3-selection/src/selection/index.js","../../../node_modules/d3-selection/src/select.js","../../../node_modules/d3-selection/src/local.js","../../../node_modules/d3-selection/src/sourceEvent.js","../../../node_modules/d3-selection/src/pointer.js","../../../node_modules/d3-drag/src/noevent.js","../../../node_modules/d3-drag/src/nodrag.js","../../../node_modules/d3-drag/src/constant.js","../../../node_modules/d3-drag/src/event.js","../../../node_modules/d3-drag/src/drag.js","../../../node_modules/d3-color/src/define.js","../../../node_modules/d3-color/src/color.js","../../../node_modules/d3-interpolate/src/constant.js","../../../node_modules/d3-interpolate/src/color.js","../../../node_modules/d3-interpolate/src/rgb.js","../../../node_modules/d3-interpolate/src/numberArray.js","../../../node_modules/d3-interpolate/src/array.js","../../../node_modules/d3-interpolate/src/date.js","../../../node_modules/d3-interpolate/src/number.js","../../../node_modules/d3-interpolate/src/object.js","../../../node_modules/d3-interpolate/src/string.js","../../../node_modules/d3-interpolate/src/value.js","../../../node_modules/d3-interpolate/src/round.js","../../../node_modules/d3-interpolate/src/transform/decompose.js","../../../node_modules/d3-interpolate/src/transform/parse.js","../../../node_modules/d3-interpolate/src/transform/index.js","../../../node_modules/d3-timer/src/timer.js","../../../node_modules/d3-timer/src/timeout.js","../../../node_modules/d3-timer/src/interval.js","../../../node_modules/d3-transition/src/transition/schedule.js","../../../node_modules/d3-transition/src/interrupt.js","../../../node_modules/d3-transition/src/selection/interrupt.js","../../../node_modules/d3-transition/src/transition/tween.js","../../../node_modules/d3-transition/src/transition/interpolate.js","../../../node_modules/d3-transition/src/transition/attr.js","../../../node_modules/d3-transition/src/transition/attrTween.js","../../../node_modules/d3-transition/src/transition/delay.js","../../../node_modules/d3-transition/src/transition/duration.js","../../../node_modules/d3-transition/src/transition/ease.js","../../../node_modules/d3-transition/src/transition/easeVarying.js","../../../node_modules/d3-transition/src/transition/filter.js","../../../node_modules/d3-transition/src/transition/merge.js","../../../node_modules/d3-transition/src/transition/on.js","../../../node_modules/d3-transition/src/transition/remove.js","../../../node_modules/d3-transition/src/transition/select.js","../../../node_modules/d3-transition/src/transition/selectAll.js","../../../node_modules/d3-transition/src/transition/selection.js","../../../node_modules/d3-transition/src/transition/style.js","../../../node_modules/d3-transition/src/transition/styleTween.js","../../../node_modules/d3-transition/src/transition/text.js","../../../node_modules/d3-transition/src/transition/textTween.js","../../../node_modules/d3-transition/src/transition/transition.js","../../../node_modules/d3-transition/src/transition/end.js","../../../node_modules/d3-transition/src/transition/index.js","../../../node_modules/d3-ease/src/linear.js","../../../node_modules/d3-ease/src/cubic.js","../../../node_modules/d3-transition/src/selection/transition.js","../../../node_modules/d3-transition/src/selection/index.js","../../../node_modules/d3-path/src/path.js","../../../node_modules/d3-format/src/formatDecimal.js","../../../node_modules/d3-format/src/exponent.js","../../../node_modules/d3-format/src/formatGroup.js","../../../node_modules/d3-format/src/formatNumerals.js","../../../node_modules/d3-format/src/formatSpecifier.js","../../../node_modules/d3-format/src/formatTrim.js","../../../node_modules/d3-format/src/formatPrefixAuto.js","../../../node_modules/d3-format/src/formatRounded.js","../../../node_modules/d3-format/src/formatTypes.js","../../../node_modules/d3-format/src/identity.js","../../../node_modules/d3-format/src/locale.js","../../../node_modules/d3-format/src/defaultLocale.js","../../../node_modules/d3-format/src/precisionFixed.js","../../../node_modules/d3-format/src/precisionPrefix.js","../../../node_modules/d3-format/src/precisionRound.js","../../../node_modules/d3-random/src/defaultSource.js","../../../node_modules/d3-random/src/uniform.js","../../../node_modules/d3-random/src/normal.js","../../../node_modules/d3-random/src/lcg.js","../../../node_modules/d3-scale/src/init.js","../../../node_modules/d3-scale/src/constant.js","../../../node_modules/d3-scale/src/number.js","../../../node_modules/d3-scale/src/continuous.js","../../../node_modules/d3-scale/src/tickFormat.js","../../../node_modules/d3-scale/src/linear.js","../../../node_modules/d3/node_modules/d3-shape/src/constant.js","../../../node_modules/d3/node_modules/d3-shape/src/path.js","../../../node_modules/d3/node_modules/d3-shape/src/array.js","../../../node_modules/d3/node_modules/d3-shape/src/curve/linear.js","../../../node_modules/d3/node_modules/d3-shape/src/point.js","../../../node_modules/d3/node_modules/d3-shape/src/line.js","../../../node_modules/d3-zoom/src/transform.js","../../decidables-elements/src/decidables-element.js","../../decidables-elements/src/button.js","../../../node_modules/lit-html/directives/if-defined.js","../../decidables-elements/src/slider.js","../../decidables-elements/src/spinner.js","../../decidables-elements/src/switch.js","../../decidables-elements/src/toggle.js","../../decidables-elements/src/toggle-option.js","../../decidables-elements/src/mixin-resizeable.js","../src/accumulable-element.js","../src/components/accumulable-control.js","../../accumulable-math/src/ddm-math.js","../src/components/accumulable-response.js","../src/components/accumulable-table.js","../src/components/ddm-fit.js","../src/components/ddm-parameters.js","../src/components/ddm-model.js","../src/components/rdk-2afc-task.js","../src/equations/ddm-equation.js","../src/equations/azv2pc.js","../src/equations/azvt02m.js","../src/examples/ddm-example.js","../src/examples/human.js","../src/examples/interactive.js","../src/examples/model.js"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>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.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.1\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=S(t,h._$AS(t,i.values),h,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new R(this.O(l()),this.O(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.1\");const B=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.1\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function(x) {\n return x;\n}\n","import identity from \"./identity.js\";\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + x + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + y + \")\";\n}\n\nfunction number(scale) {\n return d => +scale(d);\n}\n\nfunction center(scale, offset) {\n offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;\n if (scale.round()) offset = Math.round(offset);\n return d => +scale(d) + offset;\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n offset = typeof window !== \"undefined\" && window.devicePixelRatio > 1 ? 0 : 0.5,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + offset,\n range1 = +range[range.length - 1] + offset,\n position = (scale.bandwidth ? center : number)(scale.copy(), offset),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"currentColor\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"currentColor\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"currentColor\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient === right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H\" + offset + \"V\" + range1 + \"H\" + k * tickSizeOuter : \"M\" + offset + \",\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V\" + offset + \"H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",\" + offset + \"H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d) + offset); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = Array.from(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n axis.offset = function(_) {\n return arguments.length ? (offset = +_, axis) : offset;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\n\nexport function axisRight(scale) {\n return axis(right, scale);\n}\n\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nexport function axisLeft(scale) {\n return axis(left, scale);\n}\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","var nextId = 0;\n\nexport default function local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n","// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent, {nonpassivecapture} from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, nonpassivecapture);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, nonpassivecapture);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, nonpassivecapture);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","export default x => () => x;\n","export default function DragEvent(type, {\n sourceEvent,\n subject,\n target,\n identifier,\n active,\n x, y, dx, dy,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n subject: {value: subject, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n identifier: {value: identifier, enumerable: true, configurable: true},\n active: {value: active, enumerable: true, configurable: true},\n x: {value: x, enumerable: true, configurable: true},\n y: {value: y, enumerable: true, configurable: true},\n dx: {value: dx, enumerable: true, configurable: true},\n dy: {value: dy, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","import {dispatch} from \"d3-dispatch\";\nimport {select, pointer} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nonpassive, nonpassivecapture, nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(event, d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved, nonpassive)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned(event, d) {\n if (touchending || !filter.call(this, event, d)) return;\n var gesture = beforestart(this, container.call(this, event, d), event, d, \"mouse\");\n if (!gesture) return;\n select(event.view)\n .on(\"mousemove.drag\", mousemoved, nonpassivecapture)\n .on(\"mouseup.drag\", mouseupped, nonpassivecapture);\n nodrag(event.view);\n nopropagation(event);\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\", event);\n }\n\n function mousemoved(event) {\n noevent(event);\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\", event);\n }\n\n function mouseupped(event) {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent(event);\n gestures.mouse(\"end\", event);\n }\n\n function touchstarted(event, d) {\n if (!filter.call(this, event, d)) return;\n var touches = event.changedTouches,\n c = container.call(this, event, d),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) {\n nopropagation(event);\n gesture(\"start\", event, touches[i]);\n }\n }\n }\n\n function touchmoved(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent(event);\n gesture(\"drag\", event, touches[i]);\n }\n }\n }\n\n function touchended(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation(event);\n gesture(\"end\", event, touches[i]);\n }\n }\n }\n\n function beforestart(that, container, event, d, identifier, touch) {\n var dispatch = listeners.copy(),\n p = pointer(touch || event, container), dx, dy,\n s;\n\n if ((s = subject.call(that, new DragEvent(\"beforestart\", {\n sourceEvent: event,\n target: drag,\n identifier,\n active,\n x: p[0],\n y: p[1],\n dx: 0,\n dy: 0,\n dispatch\n }), d)) == null) return;\n\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n\n return function gesture(type, event, touch) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[identifier] = gesture, n = active++; break;\n case \"end\": delete gestures[identifier], --active; // falls through\n case \"drag\": p = pointer(touch || event, container), n = active; break;\n }\n dispatch.call(\n type,\n that,\n new DragEvent(type, {\n sourceEvent: event,\n subject: s,\n target: drag,\n identifier,\n active: n,\n x: p[0] + dx,\n y: p[1] + dy,\n dx: p[0] - p0[0],\n dy: p[1] - p0[1],\n dispatch\n }),\n d\n );\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {Timer, now} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer, total = delay;\n if (delay == null) return t.restart(callback, delay, time), t;\n t._restart = t.restart;\n t.restart = function(callback, delay, time) {\n delay = +delay, time = time == null ? now() : +time;\n t._restart(function tick(elapsed) {\n elapsed += total;\n t._restart(tick, total += delay, time);\n callback(elapsed);\n }, delay, time);\n }\n t.restart(callback, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export const linear = t => +t;\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","export default Math.random;\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomUniform(source) {\n function randomUniform(min, max) {\n min = min == null ? 0 : +min;\n max = max == null ? 1 : +max;\n if (arguments.length === 1) max = min, min = 0;\n else max -= min;\n return function() {\n return source() * max + min;\n };\n }\n\n randomUniform.source = sourceRandomUniform;\n\n return randomUniform;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomNormal(source) {\n function randomNormal(mu, sigma) {\n var x, r;\n mu = mu == null ? 0 : +mu;\n sigma = sigma == null ? 1 : +sigma;\n return function() {\n var y;\n\n // If available, use the second previously-generated uniform random.\n if (x != null) y = x, x = null;\n\n // Otherwise, generate a new x and y.\n else do {\n x = source() * 2 - 1;\n y = source() * 2 - 1;\n r = x * x + y * y;\n } while (!r || r > 1);\n\n return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);\n };\n }\n\n randomNormal.source = sourceRandomNormal;\n\n return randomNormal;\n})(defaultSource);\n","// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use\nconst mul = 0x19660D;\nconst inc = 0x3C6EF35F;\nconst eps = 1 / 0x100000000;\n\nexport default function lcg(seed = Math.random()) {\n let state = (0 <= seed && seed < 1 ? seed / eps : Math.abs(seed)) | 0;\n return () => (state = mul * state + inc | 0, eps * (state >>> 0));\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","\nimport {\n LitElement,\n css,\n svg,\n unsafeCSS,\n} from 'lit';\nimport * as d3 from 'd3';\n\n/*\n DecidablesElement Base Class - Not intended for instantiation!\n <decidables-element>\n*/\nexport default class DecidablesElement extends LitElement {\n getComputedStyleValue(property) {\n return getComputedStyle(this).getPropertyValue(property).trim();\n }\n\n firstUpdated(changedProperties) {\n super.firstUpdated(changedProperties);\n\n // Use focus highlighting if keyboard is used at all\n d3.select(this.renderRoot.host)\n .classed('keyboard', true)\n .on('mousemove.keyboard touchstart.keyboard', (event) => {\n const element = event.currentTarget;\n d3.select(element.renderRoot.host)\n .classed('keyboard', false)\n .on('mousemove.keyboard touchstart.keyboard', null);\n })\n .on('keydown.keyboard', (event) => {\n const element = event.currentTarget;\n d3.select(element.renderRoot.host)\n .classed('keyboard', true)\n .on('keydown.keyboard mousemove.keyboard touchstart.keyboard', null);\n });\n }\n\n static get greys() {\n const grey = '#999999';\n const greys = {};\n greys.white = '#ffffff';\n greys.light75 = d3.interpolateRgb(grey, '#ffffff')(0.75);\n greys.light50 = d3.interpolateRgb(grey, '#ffffff')(0.5);\n greys.light25 = d3.interpolateRgb(grey, '#ffffff')(0.25);\n greys.grey = grey;\n greys.dark25 = d3.interpolateRgb(grey, '#000000')(0.25);\n greys.dark50 = d3.interpolateRgb(grey, '#000000')(0.5);\n greys.dark75 = d3.interpolateRgb(grey, '#000000')(0.75);\n greys.black = '#000000';\n return greys;\n }\n\n static get shadows() {\n // Material Design elevation styles\n // References:\n // https://github.com/material-components/material-components-web/tree/master/packages/mdc-elevation\n // https://codepen.io/hanger/pen/yOGvQp\n /* eslint-disable key-spacing, object-curly-newline */\n return {\n elevations: [0, 2, 4, 8, 16],\n baselineColor: '#000000',\n baselineColorString: '0, 0, 0',\n inverseBaselineColor: '#FFFFFF',\n inverseBaselineColorString: '255, 255, 255',\n opacityUmbra: 0.2,\n opacityPenumbra: 0.14,\n opacityAmbient: 0.12,\n opacityBoost: 0.2,\n mapUmbra: {// $mdc-elevation-umbra-map\n 0: {x: 0, y: 0, b: 0, s: 0}, // offset-x, offset-y, blur-radius, spread-radius\n 2: {x: 0, y: 3, b: 1, s: -2},\n 4: {x: 0, y: 2, b: 4, s: -1},\n 8: {x: 0, y: 5, b: 5, s: -3},\n 16: {x: 0, y: 8, b: 10, s: -5},\n },\n mapPenumbra: {// $mdc-elevation-penumbra-map\n 0: {x: 0, y: 0, b: 0, s: 0}, // offset-x, offset-y, blur-radius, spread-radius\n 2: {x: 0, y: 2, b: 2, s: 0},\n 4: {x: 0, y: 4, b: 5, s: 0},\n 8: {x: 0, y: 8, b: 10, s: 1},\n 16: {x: 0, y: 16, b: 24, s: 2},\n },\n mapAmbient: {// $mdc-elevation-ambient-map\n 0: {x: 0, y: 0, b: 0, s: 0}, // offset-x, offset-y, blur-radius, spread-radius\n 2: {x: 0, y: 1, b: 5, s: 0},\n 4: {x: 0, y: 1, b: 10, s: 0},\n 8: {x: 0, y: 3, b: 14, s: 2},\n 16: {x: 0, y: 6, b: 30, s: 5},\n },\n };\n /* eslint-enable key-spacing, object-curly-newline */\n }\n\n static cssBoxShadow(elevation, rotate = false, inverse = false) {\n const umbraO = this.shadows.opacityUmbra + this.shadows.opacityBoost;\n const penumbraO = this.shadows.opacityPenumbra + this.shadows.opacityBoost;\n const ambientO = this.shadows.opacityAmbient + this.shadows.opacityBoost;\n\n const umbraC = (inverse)\n ? `rgba(${this.shadows.inverseBaselineColorString}, ${umbraO})`\n : `rgba(${this.shadows.baselineColorString}, ${umbraO})`;\n const penumbraC = (inverse)\n ? `rgba(${this.shadows.inverseBaselineColorString}, ${penumbraO})`\n : `rgba(${this.shadows.baselineColorString}, ${penumbraO})`;\n const ambientC = (inverse)\n ? `rgba(${this.shadows.inverseBaselineColorString}, ${ambientO})`\n : `rgba(${this.shadows.baselineColorString}, ${ambientO})`;\n\n const umbraM = this.shadows.mapUmbra[elevation];\n const penumbraM = this.shadows.mapPenumbra[elevation];\n const ambientM = this.shadows.mapAmbient[elevation];\n\n const umbraS = (rotate)\n ? `${-umbraM.y}px ${umbraM.y / 2}px ${umbraM.b}px ${umbraM.s}px`\n : `${umbraM.y / 2}px ${umbraM.y}px ${umbraM.b}px ${umbraM.s}px`;\n const penumbraS = (rotate)\n ? `${-penumbraM.y}px ${penumbraM.y / 2}px ${penumbraM.b}px ${penumbraM.s}px`\n : `${penumbraM.y / 2}px ${penumbraM.y}px ${penumbraM.b}px ${penumbraM.s}px`;\n const ambientS = (rotate)\n ? `${-ambientM.y}px ${ambientM.y / 2}px ${ambientM.b}px ${ambientM.s}px`\n : `${ambientM.y / 2}px ${ambientM.y}px ${ambientM.b}px ${ambientM.s}px`;\n\n return `${umbraS} ${umbraC}, ${penumbraS} ${penumbraC}, ${ambientS} ${ambientC}`;\n }\n\n static get svgDefs() {\n const shadows = DecidablesElement.shadows; /* eslint-disable-line prefer-destructuring */\n\n const filters = shadows.elevations.map((z) => {\n return `\n <filter id=${`shadow-${z}`} filterUnits=\"userSpaceOnUse\" x=\"-100%\" y=\"-100%\" width=\"200%\" height=\"200%\">\n <feComponentTransfer in=\"SourceAlpha\" result=\"solid\">\n <feFuncA type=\"table\" tableValues=\"0 1 1\"/>\n </feComponentTransfer>\n <feOffset in=\"solid\" result=\"offU\" dx=${shadows.mapUmbra[z].y / 2} dy=${shadows.mapUmbra[z].y} />\n <feOffset in=\"solid\" result=\"offP\" dx=${shadows.mapPenumbra[z].y / 2} dy=${shadows.mapPenumbra[z].y} />\n <feOffset in=\"solid\" result=\"offA\" dx=${shadows.mapAmbient[z].y / 2} dy=${shadows.mapAmbient[z].y} />\n ${(shadows.mapUmbra[z].s === 0)\n ? ''\n : `<feMorphology in=\"offU\" result=\"spreadU\" operator=${(shadows.mapUmbra[z].s > 0) ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapUmbra[z].s)} />`\n }\n ${(shadows.mapPenumbra[z].s === 0)\n ? ''\n : `<feMorphology in=\"offP\" result=\"spreadP\" operator=${(shadows.mapPenumbra[z].s > 0) ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapPenumbra[z].s)} />`\n }\n ${(shadows.mapAmbient[z].s === 0)\n ? ''\n : `<feMorphology in=\"offA\" result=\"spreadA\" operator=${(shadows.mapAmbient[z].s > 0) ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapAmbient[z].s)} />`\n }\n <feGaussianBlur in=${(shadows.mapUmbra[z].s === 0) ? 'offU' : 'spreadU'} result=\"blurU\" stdDeviation=${shadows.mapUmbra[z].b / 2} />\n <feGaussianBlur in=${(shadows.mapPenumbra[z].s === 0) ? 'offP' : 'spreadP'} result=\"blurP\" stdDeviation=${shadows.mapPenumbra[z].b / 2} />\n <feGaussianBlur in=${(shadows.mapAmbient[z].s === 0) ? 'offA' : 'spreadA'} result=\"blurA\" stdDeviation=${shadows.mapAmbient[z].b / 2} />\n <feFlood in=\"SourceGraphic\" result=\"opU\" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityUmbra + shadows.opacityBoost} />\n <feFlood in=\"SourceGraphic\" result=\"opP\" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityPenumbra + shadows.opacityBoost} />\n <feFlood in=\"SourceGraphic\" result=\"opA\" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityAmbient + shadows.opacityBoost} />\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 <feMorphology in=\"solid\" result=\"smaller\" operator=\"erode\" radius=\"1\" />\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>`;\n });\n\n return `\n <defs>\n ${filters}\n </defs>\n `;\n }\n\n static get svgFilters() {\n const shadows = DecidablesElement.shadows; /* eslint-disable-line prefer-destructuring */\n\n const filters = shadows.elevations.map((z) => {\n return svg`\n <filter id=${`shadow-${z}`} 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=${shadows.mapUmbra[z].y / 2} dy=${shadows.mapUmbra[z].y} />\n <feOffset in=\"solid\" result=\"offP\" dx=${shadows.mapPenumbra[z].y / 2} dy=${shadows.mapPenumbra[z].y} />\n <feOffset in=\"solid\" result=\"offA\" dx=${shadows.mapAmbient[z].y / 2} dy=${shadows.mapAmbient[z].y} />\n ${(shadows.mapUmbra[z].s === 0)\n ? svg``\n : svg`<feMorphology in=\"offU\" result=\"spreadU\" operator=${(shadows.mapUmbra[z].s > 0) ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapUmbra[z].s)} />`\n }\n ${(shadows.mapPenumbra[z].s === 0)\n ? svg``\n : svg`<feMorphology in=\"offP\" result=\"spreadP\" operator=${(shadows.mapPenumbra[z].s > 0) ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapPenumbra[z].s)} />`\n }\n ${(shadows.mapAmbient[z].s === 0)\n ? svg``\n : svg`<feMorphology in=\"offA\" result=\"spreadA\" operator=${(shadows.mapAmbient[z].s > 0) ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapAmbient[z].s)} />`\n }\n <feGaussianBlur in=${(shadows.mapUmbra[z].s === 0) ? 'offU' : 'spreadU'} result=\"blurU\" stdDeviation=${shadows.mapUmbra[z].b / 2} />\n <feGaussianBlur in=${(shadows.mapPenumbra[z].s === 0) ? 'offP' : 'spreadP'} result=\"blurP\" stdDeviation=${shadows.mapPenumbra[z].b / 2} />\n <feGaussianBlur in=${(shadows.mapAmbient[z].s === 0) ? 'offA' : 'spreadA'} result=\"blurA\" stdDeviation=${shadows.mapAmbient[z].b / 2} />\n <feFlood in=\"SourceGraphic\" result=\"opU\" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityUmbra + shadows.opacityBoost} />\n <feFlood in=\"SourceGraphic\" result=\"opP\" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityPenumbra + shadows.opacityBoost} />\n <feFlood in=\"SourceGraphic\" result=\"opA\" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityAmbient + shadows.opacityBoost} />\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 <feMorphology in=\"solid\" result=\"smaller\" operator=\"erode\" radius=\"1\" />\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>`;\n });\n\n return svg`\n <svg class=\"defs\">\n <defs>\n ${filters}\n </defs>\n </svg>\n `;\n }\n\n static get styles() {\n return css`\n :host {\n ---shadow-0: var(--shadow-0, ${unsafeCSS(this.cssBoxShadow(0))});\n ---shadow-2: var(--shadow-2, ${unsafeCSS(this.cssBoxShadow(2))});\n ---shadow-4: var(--shadow-4, ${unsafeCSS(this.cssBoxShadow(4))});\n ---shadow-8: var(--shadow-8, ${unsafeCSS(this.cssBoxShadow(8))});\n\n ---color-background: var(--color-background, ${unsafeCSS(this.greys.white)});\n ---color-border: var(--color-border, ${unsafeCSS(this.greys.light75)});\n ---color-text: var(--color-text, ${unsafeCSS(this.greys.dark75)});\n ---color-text-inverse: var(--color-text-inverse, ${unsafeCSS(this.greys.white)});\n ---color-link: var(--color-link, ${unsafeCSS(this.greys.dark25)});\n ---color-element-background: var(--color-element-background, ${unsafeCSS(this.greys.light75)});\n ---color-element-disabled: var(--color-element-disabled, ${unsafeCSS(this.greys.light50)});\n ---color-element-enabled: var(--color-element-enabled, ${unsafeCSS(this.greys.dark25)});\n ---color-element-selected: var(--color-element-selected, ${unsafeCSS(this.greys.grey)});\n ---color-element-border: var(--color-element-border, ${unsafeCSS(this.greys.dark50)});\n ---color-element-emphasis: var(--color-element-emphasis, ${unsafeCSS(this.greys.dark75)});\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 ---border: var(--border, 1px solid var(---color-border));\n ---border-radius: var(--border-radius, 0.25rem);\n ---transition-duration: var(--transition-duration, 500ms);\n\n font-family: var(---font-family-base);\n font-weight: normal;\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 }\n}\n","\nimport {html, css} from 'lit';\n\nimport DecidablesElement from './decidables-element';\n\nexport default class DecidablesButton extends DecidablesElement {\n static get properties() {\n return {\n disabled: {\n attribute: 'disabled',\n type: Boolean,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.disabled = false;\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n ---decidables-button-background-color-disabled: var(--decidables-button-background-color, var(---color-element-disabled));\n ---decidables-button-background-color-enabled: var(--decidables-button-background-color, var(---color-element-enabled));\n\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: var(---border-radius);\n outline: none;\n }\n\n button:disabled {\n background-color: var(---decidables-button-background-color-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-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 ];\n }\n\n render() {\n return html`\n <button ?disabled=${this.disabled}>\n <slot></slot>\n </button>\n `;\n }\n}\n\ncustomElements.define('decidables-button', DecidablesButton);\n","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=o=>o??t;export{o as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","\nimport {ifDefined} from 'lit/directives/if-defined.js'; /* eslint-disable-line import/extensions */\nimport {html, css, unsafeCSS} from 'lit';\n\nimport DecidablesElement from './decidables-element';\n\nexport default class DecidablesSlider extends DecidablesElement {\n static get properties() {\n return {\n disabled: {\n attribute: 'disabled',\n type: Boolean,\n reflect: true,\n },\n\n scale: {\n attribute: 'scale',\n type: Boolean,\n reflect: true,\n },\n\n max: {\n attribute: 'max',\n type: Number,\n reflect: true,\n },\n min: {\n attribute: 'min',\n type: Number,\n reflect: true,\n },\n step: {\n attribute: 'step',\n type: Number,\n reflect: true,\n },\n value: {\n attribute: 'value',\n type: Number,\n reflect: true,\n },\n\n nonlinear: {\n attribute: false,\n type: Boolean,\n reflect: false,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.disabled = false;\n\n this.scale = false;\n\n this.max = undefined;\n this.min = undefined;\n this.step = undefined;\n this.value = undefined;\n\n this.nonlinear = false;\n\n // Properties\n this.rangeMax = undefined;\n this.rangeMin = undefined;\n this.rangeStep = undefined;\n this.rangeValue = undefined;\n\n // Transform\n this.toRange = undefined;\n this.fromRange = undefined;\n }\n\n nonlinearRange(nonlinear, toRange, fromRange) {\n this.nonlinear = nonlinear;\n\n this.toRange = nonlinear ? toRange : undefined;\n this.fromRange = nonlinear ? fromRange : undefined;\n }\n\n rangeChanged(event) {\n this.value = this.nonlinear ? this.fromRange(event.target.value) : event.target.value;\n this.dispatchEvent(new CustomEvent('change', {\n detail: {\n value: this.value,\n },\n bubbles: true,\n }));\n }\n\n rangeInputted(event) {\n this.value = this.nonlinear ? this.fromRange(event.target.value) : event.target.value;\n }\n\n spinnerInputted(event) {\n this.value = event.target.value;\n }\n\n willUpdate() {\n this.rangeMax = (this.max === undefined)\n ? undefined\n : this.nonlinear\n ? this.toRange(this.max)\n : this.max;\n this.rangeMin = (this.min === undefined)\n ? undefined\n : this.nonlinear\n ? this.toRange(this.min)\n : this.min;\n this.rangeStep = (this.step === undefined)\n ? undefined\n : this.nonlinear\n ? 'any'\n : this.step;\n this.rangeValue = (this.value === undefined)\n ? undefined\n : this.nonlinear\n ? this.toRange(this.value)\n : this.value;\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n ---decidables-slider-background-color: var(--decidables-slider-background-color, var(---color-element-disabled));\n ---decidables-slider-color: var(--decidables-slider-color, var(---color-element-enabled));\n ---decidables-spinner-background-color: var(--decidables-slider-background-color, none);\n\n ---shadow-2-rotate: var(--shadow-2-rotate, ${unsafeCSS(this.cssBoxShadow(2, true, false))});\n ---shadow-4-rotate: var(--shadow-4-rotate, ${unsafeCSS(this.cssBoxShadow(4, true, false))});\n ---shadow-8-rotate: var(--shadow-8-rotate, ${unsafeCSS(this.cssBoxShadow(8, true, false))});\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 position: relative;\n display: flex;\n\n flex-direction: row;\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 background: var(---decidables-spinner-background-color);\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(---decidables-slider-background-color);\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(---decidables-slider-background-color);\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(---decidables-slider-background-color);\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(---decidables-slider-background-color); */\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(---decidables-slider-background-color); */\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(---decidables-slider-background-color);\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]:focus::-ms-fill-upper {\n background: var(---decidables-slider-background-color);\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(---decidables-slider-background-color);\n box-shadow: none;\n }\n\n input[type=range]:enabled::-webkit-slider-thumb {\n background: var(---decidables-slider-color);\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(---decidables-slider-background-color);\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(---decidables-slider-color);\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(---decidables-slider-background-color);\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(---decidables-slider-color);\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 datalist {\n position: absolute;\n left: 2rem;\n z-index: -1;\n display: flex;\n\n flex-direction: column;\n\n align-items: flex-start;\n justify-content: space-between;\n\n height: 4.75rem;\n\n font-size: 0.75rem;\n }\n\n option {\n padding: 0;\n\n line-height: 0.8;\n min-block-size: 0;\n }\n\n option::before {\n content: \"– \";\n }\n `,\n ];\n }\n\n render() {\n return html`\n <label for=\"slider\">\n <slot></slot>\n </label>\n <div class=\"range\">\n <input ?disabled=${this.disabled} type=\"range\" id=\"slider\" min=${ifDefined(this.rangeMin)} max=${ifDefined(this.rangeMax)} step=${ifDefined(this.rangeStep)} .value=${this.rangeValue} @change=${this.rangeChanged.bind(this)} @input=${this.rangeInputted.bind(this)}>\n ${this.scale\n ? html`\n <datalist id=\"ticks\">\n <option value=${ifDefined(this.rangeMax)} label=${ifDefined(this.max)}></option>\n <option value=${ifDefined(this.rangeMin)} label=${ifDefined(this.min)}></option>\n </datalist>\n `\n : html``\n }\n </div>\n <decidables-spinner ?disabled=${this.disabled} min=${ifDefined(this.min)} max=${ifDefined(this.max)} step=${ifDefined(this.step)} .value=${this.value} @input=${this.spinnerInputted.bind(this)}></decidables-spinner>\n `;\n }\n}\n\ncustomElements.define('decidables-slider', DecidablesSlider);\n","\nimport {ifDefined} from 'lit/directives/if-defined.js'; /* eslint-disable-line import/extensions */\nimport {html, css} from 'lit';\n\nimport DecidablesElement from './decidables-element';\n\nexport default class DecidablesSpinner extends DecidablesElement {\n static get properties() {\n return {\n disabled: {\n attribute: 'disabled',\n type: Boolean,\n reflect: true,\n },\n max: {\n attribute: 'max',\n type: Number,\n reflect: true,\n },\n min: {\n attribute: 'min',\n type: Number,\n reflect: true,\n },\n step: {\n attribute: 'step',\n type: Number,\n reflect: true,\n },\n value: {\n attribute: 'value',\n type: Number,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.disabled = false;\n this.max = undefined;\n this.min = undefined;\n this.step = undefined;\n this.value = undefined;\n }\n\n inputted(event) {\n this.value = event.target.value;\n }\n\n static get styles() {\n return [\n super.styles,\n css`\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 ---decidables-spinner-postfix: var(--decidables-spinner-postfix, \"\");\n ---decidables-spinner-postfix-padding: var(--decidables-spinner-postfix-padding, 0);\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 label::after {\n position: absolute;\n right: 0.25rem;\n bottom: 1px;\n\n font-size: var(---decidables-spinner-font-size);\n line-height: normal;\n\n content: var(---decidables-spinner-postfix);\n }\n\n input[type=number] {\n width: var(---decidables-spinner-input-width);\n padding-right: var(---decidables-spinner-postfix-padding);\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 ];\n }\n\n render() {\n return html`\n <label>\n <slot></slot>\n <input ?disabled=${this.disabled} type=\"number\" min=${ifDefined(this.min)} max=${ifDefined(this.max)} step=${ifDefined(this.step)} .value=${this.value} @input=${this.inputted.bind(this)}>\n </label>\n `;\n }\n}\n\ncustomElements.define('decidables-spinner', DecidablesSpinner);\n","\nimport {html, css} from 'lit';\n\nimport DecidablesElement from './decidables-element';\n\nexport default class DecidablesSwitch extends DecidablesElement {\n static get properties() {\n return {\n checked: {\n attribute: 'checked',\n type: Boolean,\n reflect: true,\n },\n disabled: {\n attribute: 'disabled',\n type: Boolean,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.checked = false;\n this.disabled = false;\n }\n\n changed(event) {\n this.checked = event.target.checked;\n this.dispatchEvent(new CustomEvent('change', {\n detail: {\n checked: this.checked,\n },\n bubbles: true,\n }));\n }\n\n static get styles() {\n return [\n super.styles,\n css`\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\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 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 /* stylelint-enable selector-max-compound-selectors */\n `,\n ];\n }\n\n render() {\n return html`\n <input type=\"checkbox\" id=\"switch\" ?checked=${this.checked} ?disabled=${this.disabled} @change=${this.changed.bind(this)}>\n <label for=\"switch\">\n <slot name=\"off-label\"></slot>\n </label>\n <label for=\"switch\">\n <slot></slot>\n </label>\n `;\n }\n}\n\ncustomElements.define('decidables-switch', DecidablesSwitch);\n","\nimport {html, css} from 'lit';\n\nimport DecidablesElement from './decidables-element';\n\nexport default class DecidablesToggle extends DecidablesElement {\n static get properties() {\n return {\n disabled: {\n attribute: 'disabled',\n type: Boolean,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.disabled = false;\n }\n\n static get styles() {\n return [\n super.styles,\n css`\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 ];\n }\n\n render() {\n return html`\n <fieldset ?disabled=${this.disabled}>\n <legend><slot name=\"label\"></slot></legend>\n <slot></slot>\n </fieldset>\n `;\n }\n}\n\ncustomElements.define('decidables-toggle', DecidablesToggle);\n","\nimport {html, css} from 'lit';\n\nimport DecidablesElement from './decidables-element';\n\nexport default class DecidablesToggleOption extends DecidablesElement {\n static get properties() {\n return {\n checked: {\n attribute: 'checked',\n type: Boolean,\n reflect: true,\n },\n disabled: {\n attribute: 'disabled',\n type: Boolean,\n reflect: true,\n },\n name: {\n attribute: 'name',\n type: String,\n reflect: true,\n },\n value: {\n attribute: 'value',\n type: String,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.checked = false;\n this.disabled = false;\n this.name = undefined;\n this.value = undefined;\n }\n\n changed(event) {\n this.checked = event.target.checked;\n this.dispatchEvent(new CustomEvent('change', {\n detail: {\n checked: this.checked,\n value: this.value,\n },\n bubbles: true,\n }));\n }\n\n static get styles() {\n return [\n super.styles,\n css`\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\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 ];\n }\n\n render() {\n return html`\n <input type=\"radio\" id=\"toggle-option\" name=${this.name} value=${this.value} .checked=${this.checked} @change=${this.changed.bind(this)}>\n <label for=\"toggle-option\">\n <slot></slot>\n </label>\n `;\n }\n}\n\ncustomElements.define('decidables-toggle-option', DecidablesToggleOption);\n","\nexport default function DecidablesMixinResizeable(superClass) {\n return class extends superClass {\n static get properties() {\n return {\n width: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n height: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n rem: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n };\n }\n\n constructor() {\n super();\n\n this.width = NaN;\n this.height = NaN;\n this.rem = NaN;\n }\n\n getDimensions() {\n this.width = parseFloat(this.getComputedStyleValue('width'), 10);\n this.height = parseFloat(this.getComputedStyleValue('height'), 10);\n this.rem = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('font-size'), 10);\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n this.resizeObserver = new ResizeObserver(this.getDimensions.bind(this));\n this.resizeObserver.observe(this);\n }\n\n disconnectedCallback() {\n this.resizeObserver.unobserve(this);\n\n super.disconnectedCallback();\n }\n };\n}\n","\nimport {\n css,\n unsafeCSS,\n} from 'lit';\nimport * as d3 from 'd3';\n\nimport {DecidablesElement} from '@decidables/decidables-elements';\n\nimport {colors} from './colors.yml';\n\n/*\n AccumulableElement Base Class - Not intended for instantiation!\n*/\nexport default class AccumulableElement extends DecidablesElement {\n static get properties() {\n return {\n interactive: {\n attribute: 'interactive',\n type: Boolean,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n this.interactive = false;\n }\n\n static get colors() {\n return colors;\n }\n\n static get lights() {\n return Object.keys(AccumulableElement.colors).reduce((acc, cur) => {\n acc[cur] = d3.interpolateRgb(AccumulableElement.colors[cur], '#ffffff')(0.5);\n return acc;\n }, {});\n }\n\n static get darks() {\n return Object.keys(AccumulableElement.colors).reduce((acc, cur) => {\n acc[cur] = d3.interpolateRgb(AccumulableElement.colors[cur], '#000000')(0.5);\n return acc;\n }, {});\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n /* Declare base colors */\n ${\n unsafeCSS(Object.keys(AccumulableElement.colors).map((color) => {\n return `---color-${color}: var(--color-${color}, ${this.colors[color]});`;\n }).join('\\n'))\n }\n\n /* Declare light colors */\n ${\n unsafeCSS(Object.keys(AccumulableElement.colors).map((color) => {\n return `---color-${color}-light: var(--color-${color}-light, ${this.lights[color]});`;\n }).join('\\n'))\n }\n\n /* Declare dark colors */\n ${\n unsafeCSS(Object.keys(AccumulableElement.colors).map((color) => {\n return `---color-${color}-dark: var(--color-${color}-dark, ${this.darks[color]});`;\n }).join('\\n'))\n }\n }\n `,\n ];\n }\n}\n","\nimport {html, css} from 'lit';\n\nimport '@decidables/decidables-elements/button';\nimport '@decidables/decidables-elements/slider';\nimport '@decidables/decidables-elements/switch';\nimport '@decidables/decidables-elements/toggle';\nimport '@decidables/decidables-elements/toggle-option';\n\nimport AccumulableElement from '../accumulable-element';\n\n/*\n AccumulableControl element\n <accumulable-control>\n\n Attributes:\n\n*/\nexport default class AccumulableControl extends AccumulableElement {\n static get properties() {\n return {\n trials: {\n attribute: 'trials',\n type: Number,\n reflect: true,\n },\n resample: {\n attribute: 'resample',\n type: Boolean,\n reflect: true,\n },\n\n duration: {\n attribute: 'duration',\n type: Number,\n reflect: true,\n },\n coherence: {\n attribute: 'coherence',\n type: Number,\n reflect: true,\n },\n color: {\n attribute: 'color',\n type: String,\n reflect: true,\n },\n\n run: {\n attribute: 'run',\n type: Boolean,\n reflect: true,\n },\n pause: {\n attribute: 'pause',\n type: Boolean,\n reflect: true,\n },\n reset: {\n attribute: 'reset',\n type: Boolean,\n reflect: true,\n },\n\n state: {\n attribute: false,\n type: String,\n reflect: false,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.trials = undefined;\n this.resample = false;\n\n this.duration = undefined;\n this.coherence = undefined;\n this.colors = ['none', 'measure', 'outcome', 'all'];\n this.color = undefined;\n\n this.run = false;\n this.pause = false;\n this.reset = false;\n\n // Properties\n this.states = ['resetted', 'running', 'paused', 'ended'];\n this.state = 'resetted';\n }\n\n setTrials(e) {\n this.trials = e.target.value;\n this.dispatchEvent(new CustomEvent('accumulable-control-trials', {\n detail: {\n trials: this.trials,\n },\n bubbles: true,\n }));\n }\n\n doResample() {\n this.dispatchEvent(new CustomEvent('accumulable-control-resample', {\n detail: {},\n bubbles: true,\n }));\n }\n\n setDuration(e) {\n this.duration = e.target.value;\n this.dispatchEvent(new CustomEvent('accumulable-control-duration', {\n detail: {\n duration: this.duration,\n },\n bubbles: true,\n }));\n }\n\n setCoherence(e) {\n this.coherence = e.target.value;\n this.dispatchEvent(new CustomEvent('accumulable-control-coherence', {\n detail: {\n coherence: this.coherence,\n },\n bubbles: true,\n }));\n }\n\n chooseColor(e) {\n this.color = e.target.value;\n this.dispatchEvent(new CustomEvent('accumulable-control-color', {\n detail: {\n color: this.color,\n },\n bubbles: true,\n }));\n }\n\n doRun() {\n this.state = 'running';\n this.dispatchEvent(new CustomEvent('accumulable-control-run', {\n detail: {},\n bubbles: true,\n }));\n }\n\n doPause() {\n this.state = 'paused';\n this.dispatchEvent(new CustomEvent('accumulable-control-pause', {\n detail: {},\n bubbles: true,\n }));\n }\n\n doReset() {\n this.state = 'resetted';\n this.dispatchEvent(new CustomEvent('accumulable-control-reset', {\n detail: {},\n bubbles: true,\n }));\n }\n\n complete() {\n this.state = 'ended';\n }\n\n static get styles() {\n return [\n super.styles,\n css`\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 ];\n }\n\n render() {\n return html`\n <div class=\"holder\">\n ${this.trials != null\n ? html`<decidables-slider class=\"trials\" min=\"1\" max=\"100\" step=\"1\" .value=${this.trials} @change=${this.setTrials.bind(this)} @input=${this.setTrials.bind(this)}>Trials</decidables-slider>`\n : html``}\n ${this.resample\n ? html`\n <div class=\"buttons\">\n ${this.resample\n ? html`<decidables-button name=\"resample\" @click=${this.doResample.bind(this)}>Resample</decidables-button>`\n : html``}\n </div>\n `\n : html``}\n ${this.duration != null\n ? html`<decidables-slider class=\"duration\" min=\"10\" max=\"2000\" step=\"10\" .value=${this.duration} @change=${this.setDuration.bind(this)} @input=${this.setDuration.bind(this)}>Duration</decidables-slider>`\n : html``}\n ${this.coherence != null\n ? html`<decidables-slider class=\"coherence\" min=\"0\" max=\"1\" step=\".01\" .value=${this.coherence} @change=${this.setCoherence.bind(this)} @input=${this.setCoherence.bind(this)}>Coherence</decidables-slider>`\n : html``}\n ${this.color != null\n ? html`\n <decidables-toggle class=\"color\" @change=${this.chooseColor.bind(this)}>\n <span slot=\"label\">Emphasis</span>\n <decidables-toggle-option name=\"toggle\" value=\"none\" ?checked=${this.color === 'none'}>None</decidables-toggle-option>\n <decidables-toggle-option name=\"toggle\" value=\"measure\" ?checked=${this.color === 'measure'}>Measure</decidables-toggle-option>\n <decidables-toggle-option name=\"toggle\" value=\"outcome\" ?checked=${this.color === 'outcome'}>Outcome</decidables-toggle-option>\n <decidables-toggle-option name=\"toggle\" value=\"all\" ?checked=${this.color === 'all'}>All</decidables-toggle-option>\n </decidables-toggle>\n `\n : html``}\n ${this.run || this.pause || this.reset\n ? html`\n <div class=\"buttons\">\n ${this.run\n ? html`<decidables-button name=\"run\" ?disabled=${this.state === 'running' || this.state === 'ended'} @click=${this.doRun.bind(this)}>Run</decidables-button>`\n : html``}\n ${this.pause\n ? html`<decidables-button name=\"pause\" ?disabled=${this.state !== 'running'} @click=${this.doPause.bind(this)}>Pause</decidables-button>`\n : html``}\n ${this.reset\n ? html`<decidables-button name=\"reset\" ?disabled=${this.state === 'resetted'} @click=${this.doReset.bind(this)}>Reset</decidables-button>`\n : html``}\n </div>\n `\n : html``}\n </div>`;\n }\n}\n\ncustomElements.define('accumulable-control', AccumulableControl);\n","\n/*\n DDMMath Static Class - Not intended for instantiation!\n\n Model parameters:\n a = boundary separation [0, Infinity)\n z = starting point as a proportion of a (0, 1)\n v = drift rate (per second) (-Infinity, Infinity)\n t0 = non-decision time (in milliseconds) (0, Infinity)\n s = within-trial variability in drift rate (s^2 = infinitesimal variance) [0, Infinity)\n\n zPrime = starting point on a 0-to-a scale (typically used in published equations) [0, Infinity)\n\n Behavioral variables:\n pE = proportion of error trials\n pC = proportion of correct trials\n m = mean of overall RTs (in milliseconds)\n mE = mean of error RTs (in milliseconds)\n mC = mean correct RTs (in milliseconds)\n sd = standard deviation of overall RTs (in milliseconds)\n sdE = standard deviation of error RTs (in milliseconds)\n sdC = standard deviation of correct RTs (in milliseconds)\n\n Equations:\n Probability of correct and error responses (Alexandrowicz, 2020)\n Mean of overall, error, and correct RTs (Grasman et al., 2009)\n Standard deviation of overall, error, and correct RTs (Grasman et al., 2009)\n Density of error and correct RT distributions (Alexandrowicz, 2020)\n EZ-diffusion model (Wagenmakers et al., 2007)\n*/\nexport default class DDMMath {\n static s = {\n DEFAULT: 1,\n };\n\n static a = {\n DEFAULT: 1.2,\n MIN: 0.01,\n MAX: 2.0,\n STEP: 0.01,\n JUMP: 0.1,\n };\n\n static z = {\n DEFAULT: 0.55,\n MIN: 0.01,\n MAX: 0.99,\n STEP: 0.01,\n JUMP: 0.1,\n };\n\n static v = {\n DEFAULT: 1.5,\n MIN: 0.01,\n MAX: 5.0,\n STEP: 0.01,\n JUMP: 0.1,\n };\n\n static t0 = {\n DEFAULT: 150,\n MIN: 0,\n MAX: 500,\n STEP: 1,\n JUMP: 10,\n };\n\n // Calculate a bunch of statistics for an array of trials\n static trials2stats(trials) {\n const stats = {};\n\n // First-order sums\n const sums = trials.reduce(\n (accumulator, trial) => {\n switch (trial.outcome) {\n case 'correct':\n accumulator.correctCount += 1;\n accumulator.correctRTSum += trial.rt;\n break;\n case 'error':\n accumulator.errorCount += 1;\n accumulator.errorRTSum += trial.rt;\n break;\n case 'nr':\n accumulator.nrCount += 1;\n break;\n default:\n // No-op\n }\n return accumulator;\n },\n {\n correctCount: 0,\n errorCount: 0,\n nrCount: 0,\n\n correctRTSum: 0,\n errorRTSum: 0,\n },\n );\n\n // First-order stats\n stats.correctCount = sums.correctCount;\n stats.errorCount = sums.errorCount;\n stats.nrCount = sums.nrCount;\n stats.accuracy = sums.correctCount / (sums.correctCount + sums.errorCount + sums.nrCount);\n\n stats.correctMeanRT = sums.correctRTSum / sums.correctCount;\n stats.errorMeanRT = sums.errorRTSum / sums.errorCount;\n stats.meanRT = (sums.correctRTSum + sums.errorRTSum) / (sums.correctCount + sums.errorCount);\n\n // Second-order sums\n const sums2 = trials.reduce(\n (accumulator, trial) => {\n switch (trial.outcome) {\n case 'correct':\n accumulator.ss += (trial.rt - stats.meanRT) ** 2;\n accumulator.correctSS += (trial.rt - stats.correctMeanRT) ** 2;\n break;\n case 'error':\n accumulator.ss += (trial.rt - stats.meanRT) ** 2;\n accumulator.errorSS += (trial.rt - stats.errorMeanRT) ** 2;\n break;\n default:\n // No-op\n }\n return accumulator;\n },\n {\n ss: 0,\n correctSS: 0,\n errorSS: 0,\n },\n );\n\n // Second-order stats\n stats.correctSDRT = (stats.correctCount > 1)\n ? Math.sqrt(sums2.correctSS / (stats.correctCount - 1))\n : NaN;\n stats.errorSDRT = (stats.errorCount > 1)\n ? Math.sqrt(sums2.errorSS / (stats.errorCount - 1))\n : NaN;\n stats.sdRT = (stats.correctCount + stats.errorCount > 1)\n ? Math.sqrt(sums2.ss / (stats.correctCount + stats.errorCount - 1))\n : NaN;\n\n return stats;\n }\n\n // Probability of an Error Response\n static azv2pE(a, z, v, s = DDMMath.s.DEFAULT) {\n const zPrime = a * z;\n\n const A = Math.exp((-2 * v * a) / s ** 2);\n const Z = Math.exp((-2 * v * zPrime) / s ** 2);\n\n return (A - Z) / (A - 1);\n }\n\n // Probability of a Correct Response\n static azv2pC(a, z, v, s = DDMMath.s.DEFAULT) {\n return DDMMath.azv2pE(a, 1 - z, -v, s);\n }\n\n // Mean Overall RT\n // Equation 5 (Grasman et al., 2009)\n static azvt02m(a, z, v, t0, s = DDMMath.s.DEFAULT) {\n const zPrime = a * z;\n const A = Math.exp((-2 * v * a) / s ** 2) - 1;\n const Z = Math.exp((-2 * v * zPrime) / s ** 2) - 1;\n\n const mean = -(zPrime / v) + (a / v) * (Z / A);\n return t0 + mean * 1000;\n }\n\n // SD Overall RT\n // Equation 6 (Grasman et al., 2009)\n static azv2sd(a, z, v, s = DDMMath.s.DEFAULT) {\n const zPrime = a * z;\n const A = Math.exp((-2 * v * a) / s ** 2) - 1;\n const Z = Math.exp((-2 * v * zPrime) / s ** 2) - 1;\n\n const variance = (\n (\n (-v * a ** 2 * (Z + 4) * Z) / A ** 2\n ) + (\n ((-3 * v * a ** 2 + 4 * v * zPrime * a + s ** 2 * a) * Z + 4 * v * zPrime * a) / A\n ) - (\n s ** 2 * zPrime\n )\n ) / v ** 3;\n\n return Math.sqrt(variance) * 1000;\n }\n\n // Mean Error RT\n // Equation 13 (Grasman et al., 2009)\n static azvt02mE(a, z, v, t0, s = DDMMath.s.DEFAULT) {\n function phi(x, y) {\n return Math.exp((2 * v * y) / (s ** 2)) - Math.exp((2 * v * x) / (s ** 2));\n }\n const zPrime = a * z;\n\n const mean = (zPrime * (phi(zPrime - a, a) + phi(0, zPrime)) + 2 * a * phi(zPrime, 0))\n / (v * phi(zPrime, a) * phi(-a, 0));\n return t0 + mean * 1000;\n }\n\n // SD Error RT\n // Equation 14 (Grasman et al., 2009)\n static azv2sdE(a, z, v, s = DDMMath.s.DEFAULT) {\n function phi(x, y) {\n return Math.exp((2 * v * y) / (s ** 2)) - Math.exp((2 * v * x) / (s ** 2));\n }\n const zPrime = a * z;\n\n const variance = (\n (\n -2 * a * phi(0, zPrime)\n * ((2 * v * a * phi(zPrime, 2 * a)) + (s ** 2 * phi(0, a) * phi(zPrime, a)))\n * Math.exp((2 * v * a) / s ** 2)\n ) / (\n v ** 3 * phi(0, a) ** 2 * phi(zPrime, a) ** 2\n )\n ) + (\n (\n 4 * v * zPrime * (2 * a - zPrime) * Math.exp((2 * v * (zPrime + a)) / s ** 2)\n + zPrime * s ** 2 * phi(2 * zPrime, 2 * a)\n ) / (\n v ** 3 * phi(zPrime, a) ** 2\n )\n );\n\n return Math.sqrt(variance) * 1000;\n }\n\n // Mean Correct RT\n static azvt02mC(a, z, v, t0, s = DDMMath.s.DEFAULT) {\n return DDMMath.azvt02mE(a, 1 - z, -v, t0, s);\n }\n\n // SD Correct RT\n static azv2sdC(a, z, v, s = DDMMath.s.DEFAULT) {\n return DDMMath.azv2sdE(a, 1 - z, -v, s);\n }\n\n // Density of Error RT\n static tazv2gE(t, a, z, v, s = DDMMath.s.DEFAULT) {\n if (!t) return 0;\n\n const zPrime = a * z;\n const base = ((Math.PI * s ** 2) / a ** 2) * Math.exp((-zPrime * v) / s ** 2);\n\n let k = 0;\n let term = 0;\n let sum = 0;\n do {\n k += 1;\n\n term = k\n * Math.sin((Math.PI * zPrime * k) / a)\n * Math.exp(-0.5 * ((v ** 2 / s ** 2) + ((Math.PI ** 2 * k ** 2 * s ** 2) / a ** 2)) * t);\n\n sum += term;\n } while (k < 200); // ?? HACK\n\n return base * sum;\n }\n\n // Density of Correct RT\n static tazv2gC(t, a, z, v, s = DDMMath.s.DEFAULT) {\n return DDMMath.tazv2gE(t, a, 1 - z, -v, s);\n }\n\n // Adapted from https://raoul.socsci.uva.nl/EZ2/EZ2_new.html\n // EZ-function for starting values\n // input: obj - Object with properties\n // pC - Proportion correct\n // sd - sample standard deviation of the RT's in ms\n // m - sample mean of the RT's in ms\n // s - diffusion standard deviation\n // returns: Object with properties v, a, and t0, containing EZ-estimates of these parameters\n static data2ez({\n accuracy: pC,\n sdRT: sd,\n meanRT: m,\n s,\n }) {\n function sign(r) {\n return ((r > 0) ? 1 : ((r === 0) ? 0 : -1));\n }\n\n function logit(p) {\n return Math.log(p / (1 - p));\n }\n\n const vrt = (sd / 1000) ** 2;\n const mrt = m / 1000;\n\n const s2 = s ** 2;\n const l = logit(pC);\n const x = (l * (l * pC ** 2 - l * pC + pC - 0.5)) / vrt;\n const v = sign(pC - 0.5) * s * x ** (1 / 4);\n const a = (s2 * logit(pC)) / v;\n const y = (-v * a) / s2;\n const mdt = ((a / (2 * v)) * (1 - Math.exp(y))) / (1 + Math.exp(y));\n const t0 = (mrt ? mrt - mdt : null); // compute Ter only if MRT was provided\n\n const t0Prime = t0 * 1000;\n return {\n v,\n a,\n t0: t0Prime,\n s,\n };\n }\n\n static data2ez2() {\n throw new Error('data2ez2 is not implemented!');\n }\n}\n","\nimport {html, css} from 'lit';\n\nimport DDMMath from '@decidables/accumulable-math';\nimport '@decidables/decidables-elements/button';\n\nimport AccumulableElement from '../accumulable-element';\n\n/*\n AccumulableResponse element\n <accumulable-response>\n\n Attributes:\n\n*/\nexport default class AccumulableResponse extends AccumulableElement {\n static get properties() {\n return {\n feedback: {\n attribute: 'feedback',\n type: Boolean,\n reflect: true,\n },\n trial: {\n attribute: 'trial',\n type: Boolean,\n reflect: true,\n },\n payoff: {\n attribute: 'payoff',\n type: String,\n reflect: true,\n },\n correctPayoff: {\n attribute: 'correct-payoff',\n type: Number,\n reflect: true,\n },\n errorPayoff: {\n attribute: 'error-payoff',\n type: Number,\n reflect: true,\n },\n nrPayoff: {\n attribute: 'no-response-payoff',\n type: Number,\n reflect: true,\n },\n\n state: {\n attribute: false,\n type: String,\n reflect: false,\n },\n trialCount: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n trialTotal: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.feedback = false; // Display feedback?\n this.trial = false; // Show trial count?\n this.payoffs = ['none', 'trial', 'total']; // Possible types of 'payoff' info\n this.payoff = 'none'; // What payoff info to display\n\n this.correctPayoff = 0; // Correct payoff\n this.errorPayoff = 0; // Error payoff\n this.nrPayoff = 0; // No Response payoff\n\n // Properties\n this.states = ['off', 'waiting', 'feedback']; // Possible states\n this.state = 'off'; // Current state\n\n this.trialCount = 0; // Current trial\n this.trialTotal = 0; // Total trials\n\n // Private\n this.signals = ['left', 'right']; // Possible values of 'signal'\n this.signal = undefined; // Signal for current trial\n this.responses = ['left', 'right']; // Possible values of 'response'\n this.response = undefined; // Response for current trial\n this.outcomes = ['correct', 'error', 'nr']; // Possible values of 'outcome'\n this.outcome = undefined; // Outcome for current trial\n this.startTime = undefined; // Start time of current trial\n this.rt = undefined; // RT for current trial\n\n this.data = {};\n\n this.trials = []; // Record of trials in block\n this.alignState();\n }\n\n get trialPayoff() {\n switch (this.outcome) {\n case 'correct':\n return this.correctPayoff;\n case 'error':\n return this.errorPayoff;\n case 'nr':\n return this.nrPayoff;\n default:\n return undefined;\n }\n }\n\n get totalPayoff() {\n return ((this.data.correctCount * this.correctPayoff)\n + (this.data.errorCount * this.errorPayoff)\n + (this.data.nrCount * this.nrPayoff));\n }\n\n alignState() {\n this.data = DDMMath.trials2stats(this.trials);\n }\n\n start(signal, trial) {\n this.startTime = Date.now();\n this.trialCount = trial;\n this.state = 'waiting';\n this.signal = signal;\n this.response = undefined;\n this.outcome = undefined;\n this.rt = undefined;\n }\n\n stop() {\n this.state = 'feedback';\n if (this.response === undefined) {\n this.outcome = 'nr';\n this.rt = undefined;\n\n this.trials.push({\n trial: this.trialCount,\n rt: this.rt,\n signal: this.signal,\n response: this.response,\n outcome: this.outcome,\n payoff: this.trialPayoff,\n });\n this.alignState();\n }\n }\n\n left() {\n this.responded('left');\n }\n\n right() {\n this.responded('right');\n }\n\n responded(response) {\n this.rt = Date.now() - this.startTime;\n this.state = 'feedback';\n this.response = response;\n if (this.signal === this.response) {\n this.outcome = 'correct';\n } else if (this.signal !== this.response) {\n this.outcome = 'error';\n }\n this.trials.push({\n trial: this.trialCount,\n rt: this.rt,\n signal: this.signal,\n response: this.response,\n outcome: this.outcome,\n payoff: this.trialPayoff,\n });\n this.alignState();\n\n this.dispatchEvent(new CustomEvent('accumulable-response', {\n detail: {\n trial: this.trialCount,\n rt: this.rt,\n signal: this.signal,\n response: this.response,\n outcome: this.outcome,\n payoff: this.trialPayoff,\n\n data: this.data,\n\n totalPayoff: this.totalPayoff,\n },\n bubbles: true,\n }));\n }\n\n reset() {\n this.state = 'off';\n this.trialCount = 0;\n this.rt = undefined;\n this.signal = undefined;\n this.response = undefined;\n this.outcome = undefined;\n\n this.trials = [];\n this.alignState();\n }\n\n keydown(event) {\n if (this.state === 'waiting') {\n if (event.key === 'ArrowLeft') {\n this.responded('left');\n event.preventDefault();\n } else if (event.key === 'ArrowRight') {\n this.responded('right');\n event.preventDefault();\n }\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n window.addEventListener('keydown', this.keydown.bind(this));\n }\n\n disconnectedCallback() {\n window.removeEventListener('keydown', this.keydown.bind(this));\n\n super.disconnectedCallback();\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n display: inline-block;\n }\n\n /* Overall container */\n .holder {\n display: flex;\n\n flex-direction: column;\n }\n\n /* Response buttons */\n .responses {\n display: flex;\n\n flex-direction: row;\n\n align-items: stretch;\n justify-content: center;\n }\n\n .response {\n flex: 1 0 50%;\n }\n\n .waiting[disabled] {\n --decidables-button-background-color: var(---color-element-enabled);\n }\n\n .selected[disabled][name=\"left\"] {\n --decidables-button-background-color: var(---color-left);\n }\n\n .selected[disabled][name=\"right\"] {\n --decidables-button-background-color: var(---color-right);\n }\n\n /* Feedback messages */\n .feedbacks {\n display: flex;\n\n flex-direction: column;\n\n align-items: center;\n\n margin: 0.25rem;\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 :host([payoff=\"trial\"]) .feedback,\n :host([payoff=\"total\"]) .feedback {\n height: 5rem;\n }\n\n .feedback.correct {\n background-color: var(---color-correct-light);\n }\n\n .feedback.error {\n background-color: var(---color-error-light);\n }\n\n .feedback.nr {\n background-color: var(---color-nr-light);\n }\n\n .feedback .outcome {\n font-weight: 600;\n line-height: 1.15;\n }\n\n /* Payoff feedback */\n .total {\n text-align: center;\n }\n\n .total .label {\n font-weight: 600;\n }\n `,\n ];\n }\n\n render() {\n const payoffFormatter = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n });\n const payoffFormat = (number) => {\n return payoffFormatter.formatToParts(number).map(({type, value}) => {\n if (type === 'minusSign') {\n return '−';\n }\n return value;\n }).reduce((string, part) => { return string + part; });\n };\n\n return html`\n <div class=\"holder\">\n <div class=\"responses\">\n <decidables-button name=\"left\" class=${`response ${(this.state === 'feedback' && this.response === 'left') ? 'selected' : ((this.state === 'waiting') ? 'waiting' : '')}`} ?disabled=${this.state !== 'waiting' || this.interactive !== true} @click=${this.left.bind(this)}>Left</decidables-button>\n <decidables-button name=\"right\" class=${`response ${(this.state === 'feedback' && this.response === 'right') ? 'selected' : ((this.state === 'waiting') ? 'waiting' : '')}`} ?disabled=${this.state !== 'waiting' || this.interactive !== true} @click=${this.right.bind(this)}>Right</decidables-button>\n </div>\n ${(this.trial || this.feedback || this.payoff === 'total')\n ? html`\n <div class=\"feedbacks\">\n ${(this.trial)\n ? html`\n <div class=\"trial\">\n <span class=\"label\">Trial: </span><span class=\"count\">${this.trialCount}</span><span class=\"of\"> of </span><span class=\"total\">${this.trialTotal}</span>\n </div>`\n : html``}\n ${(this.feedback)\n ? html`\n <div class=${`feedback ${((this.state === 'feedback') && this.feedback)\n ? this.outcome\n : ''}`}>\n ${((this.state === 'feedback') && this.feedback)\n ? (this.outcome === 'correct')\n ? html`<span class=\"outcome\">Correct</span>`\n : (this.outcome === 'error')\n ? html`<span class=\"outcome\">Error</span>`\n : html`<span class=\"outcome\">No<br>Response</span>`\n : ''}\n ${((this.state === 'feedback') && (this.payoff === 'trial' || this.payoff === 'total'))\n ? html`<span class=\"payoff\">${payoffFormat(this.trialPayoff)}</span>`\n : html``}\n </div>`\n : html``}\n ${(this.payoff === 'total')\n ? html`\n <div class=\"total\">\n <span class=\"label\">Total: </span><span class=\"value\">${payoffFormat(this.totalPayoff)}</span>\n </div>`\n : html``}\n </div>`\n : html``}\n </div>`;\n }\n}\n\ncustomElements.define('accumulable-response', AccumulableResponse);\n","\nimport {html, css} from 'lit';\n\nimport '@decidables/decidables-elements/spinner';\n\nimport AccumulableElement from '../accumulable-element';\n\n/*\n AccumulableTable element\n <accumulable-table>\n\n Attributes:\n ????Hit; Miss; FalseAlarm; CorrectRejection;\n*/\nexport default class AccumulableTable extends AccumulableElement {\n static get properties() {\n return {\n numeric: {\n attribute: 'numeric',\n type: Boolean,\n reflect: true,\n },\n summary: {\n attribute: 'summary',\n type: Boolean,\n reflect: true,\n },\n color: {\n attribute: 'color',\n type: String,\n reflect: true,\n },\n\n correctCount: {\n attribute: 'correct-count',\n type: Number,\n reflect: true,\n },\n errorCount: {\n attribute: 'error-count',\n type: Number,\n reflect: true,\n },\n nrCount: {\n attribute: 'nr-count',\n type: Number,\n reflect: true,\n },\n accuracy: {\n attribute: 'accuracy',\n type: Number,\n reflect: true,\n },\n correctMeanRT: {\n attribute: 'correct-mean-rt',\n type: Number,\n reflect: true,\n },\n errorMeanRT: {\n attribute: 'error-mean-rt',\n type: Number,\n reflect: true,\n },\n meanRT: {\n attribute: 'mean-rt',\n type: Number,\n reflect: true,\n },\n correctSDRT: {\n attribute: 'correct-sd-rt',\n type: Number,\n reflect: true,\n },\n errorSDRT: {\n attribute: 'error-sd-rt',\n type: Number,\n reflect: true,\n },\n sdRT: {\n attribute: 'sd-rt',\n type: Number,\n reflect: true,\n },\n\n payoff: {\n attribute: 'payoff',\n type: Boolean,\n reflect: true,\n },\n correctPayoff: {\n attribute: 'correct-payoff',\n type: Number,\n reflect: true,\n },\n errorPayoff: {\n attribute: 'error-payoff',\n type: Number,\n reflect: true,\n },\n nrPayoff: {\n attribute: 'no-response-payoff',\n type: Number,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n this.numeric = false;\n this.summary = false;\n\n this.colors = ['none', 'measure', 'outcome', 'all'];\n this.color = 'all';\n\n this.payoff = false;\n this.correctPayoff = undefined; // Correct payoff\n this.errorPayoff = undefined; // Error payoff\n this.nrPayoff = undefined; // No Response payoff\n\n this.correctCount = NaN;\n this.errorCount = NaN;\n this.nrCount = NaN;\n this.accuracy = NaN;\n this.correctMeanRT = NaN;\n this.errorMeanRT = NaN;\n this.meanRT = NaN;\n this.correctSDRT = NaN;\n this.errorSDRT = NaN;\n this.sdRT = NaN;\n }\n\n sendEvent() {\n this.dispatchEvent(new CustomEvent('accumulable-table-change', {\n detail: {\n correctCount: this.correctCount,\n errorCount: this.errorCount,\n nrCount: this.nrCount,\n accuracy: this.accuracy,\n correctMeanRT: this.correctMeanRT,\n errorMeanRT: this.errorMeanRT,\n meanRT: this.meanRT,\n correctSDRT: this.correctSDRT,\n errorSDRT: this.errorSDRT,\n sdRT: this.sdRT,\n },\n bubbles: true,\n }));\n }\n\n correctCountInput(e) {\n this.correctCount = parseInt(e.target.value, 10);\n this.sendEvent();\n }\n\n errorCountInput(e) {\n this.errorCount = parseInt(e.target.value, 10);\n this.sendEvent();\n }\n\n accuracyInput(e) {\n this.accuracy = parseFloat(e.target.value);\n this.sendEvent();\n }\n\n correctMeanRTInput(e) {\n this.correctMeanRT = parseFloat(e.target.value);\n this.sendEvent();\n }\n\n errorMeanRTInput(e) {\n this.errorMeanRT = parseFloat(e.target.value);\n this.sendEvent();\n }\n\n meanRTInput(e) {\n this.meanRT = parseFloat(e.target.value);\n this.sendEvent();\n }\n\n correctSDRTInput(e) {\n this.correctSDRT = parseFloat(e.target.value);\n this.sendEvent();\n }\n\n errorSDRTInput(e) {\n this.errorSDRT = parseFloat(e.target.value);\n this.sendEvent();\n }\n\n sdRTInput(e) {\n this.sdRT = parseFloat(e.target.value);\n this.sendEvent();\n }\n\n static get styles() {\n return [\n super.styles,\n css`\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 /* Table emphasis */\n .td-data.correct {\n border-left: 2px solid var(---color-element-emphasis);\n }\n\n .td-data.error {\n border-right: 2px solid var(---color-element-emphasis);\n }\n\n .td-data.count {\n border-top: 2px solid var(---color-element-emphasis);\n }\n\n .td-data.sd-rt {\n border-bottom: 2px solid var(---color-element-emphasis);\n }\n\n /* Color schemes */\n\n /* (Default) All color scheme */\n .correct.count {\n background: var(---color-element-background); /* ###### */\n }\n\n .error.count {\n background: var(---color-element-background); /* ###### */\n }\n\n .overall.proportion-correct {\n background: var(---color-element-background); /* ###### */\n }\n\n .correct.mean-rt {\n background: var(---color-element-background); /* ###### */\n }\n\n .error.mean-rt {\n background: var(---color-element-background); /* ###### */\n }\n\n .overall.mean-rt {\n background: var(---color-element-background); /* ###### */\n }\n\n .correct.sd-rt {\n background: var(---color-element-background); /* ###### */\n }\n\n .error.sd-rt {\n background: var(---color-element-background); /* ###### */\n }\n\n .overall.sd-rt {\n background: var(---color-element-background); /* ###### */\n }\n\n /* Outcome color scheme */\n :host([color=\"outcome\"]) .correct {\n background: var(---color-correct-light);\n }\n\n :host([color=\"outcome\"]) .error {\n background: var(---color-error-light);\n }\n\n :host([color=\"outcome\"]) .overall {\n background: var(---color-element-background);\n }\n\n /* Measure color scheme */\n :host([color=\"measure\"]) .count,\n :host([color=\"measure\"]) .proportion-correct {\n background: var(---color-element-background); /* ###### */\n }\n\n :host([color=\"measure\"]) .mean-rt {\n background: var(---color-element-background); /* ###### */\n }\n\n :host([color=\"measure\"]) .sd-rt {\n background: var(---color-element-background); /* ###### */\n }\n\n /* No color scheme */\n :host([color=\"none\"]) .td-data,\n :host([color=\"none\"]) .td-summary {\n background: var(---color-element-background);\n }\n `,\n ];\n }\n\n render() {\n const payoffFormatter = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n });\n const payoffFormat = (number) => {\n return payoffFormatter.formatToParts(number).map(({type, value}) => {\n if (type === 'minusSign') {\n return '−';\n }\n return value;\n }).reduce((string, part) => { return string + part; });\n };\n\n let correctCount;\n let errorCount;\n let accuracy;\n let correctMeanRT;\n let errorMeanRT;\n let meanRT;\n let correctSDRT;\n let errorSDRT;\n let sdRT;\n if (this.numeric) {\n correctCount = html`\n <decidables-spinner ?disabled=${!this.interactive} min=\"0\" .value=\"${+this.correctCount}\" @input=${this.correctCountInput.bind(this)}>\n <span>Correct Count</span>\n ${this.payoff ? html`<span class=\"payoff\">${payoffFormat(this.correctPayoff)}</span>` : html``}\n </decidables-spinner>\n `;\n errorCount = html`\n <decidables-spinner ?disabled=${!this.interactive} min=\"0\" .value=\"${+this.errorCount}\" @input=${this.errorCountInput.bind(this)}>\n <span>Error Count</span>\n ${this.payoff ? html`<span class=\"payoff\">${payoffFormat(this.errorPayoff)}</span>` : html``}\n </decidables-spinner>\n `;\n accuracy = html`\n <decidables-spinner ?disabled=${!this.interactive} min=\"0\" max=\"1\" step=\".01\" .value=\"${+this.accuracy.toFixed(2)}\" @input=${this.accuracyInput.bind(this)}>\n <span>Accuracy</span>\n </decidables-spinner>\n `;\n correctMeanRT = html`\n <decidables-spinner ?disabled=${!this.interactive} min=\"0\" .value=\"${+this.correctMeanRT.toFixed(0)}\" @input=${this.correctMeanRTInput.bind(this)}>\n <span>Correct Mean RT</span>\n </decidables-spinner>\n `;\n errorMeanRT = html`\n <decidables-spinner ?disabled=${!this.interactive} min=\"0\" .value=\"${+this.errorMeanRT.toFixed(0)}\" @input=${this.errorMeanRTInput.bind(this)}>\n <span>Error Mean RT</span>\n </decidables-spinner>\n `;\n meanRT = html`\n <decidables-spinner ?disabled=${!this.interactive} min=\"0\" .value=\"${+this.meanRT.toFixed(0)}\" @input=${this.meanRTInput.bind(this)}>\n <span>Mean RT</span>\n </decidables-spinner>\n `;\n correctSDRT = html`\n <decidables-spinner ?disabled=${!this.interactive} min=\"0\" .value=\"${+this.correctSDRT.toFixed(0)}\" @input=${this.correctSDRTInput.bind(this)}>\n <span>Correct SD RT</span>\n </decidables-spinner>\n `;\n errorSDRT = html`\n <decidables-spinner ?disabled=${!this.interactive} min=\"0\" .value=\"${+this.errorSDRT.toFixed(0)}\" @input=${this.errorSDRTInput.bind(this)}>\n <span>Error SD RT</span>\n </decidables-spinner>\n `;\n sdRT = html`\n <decidables-spinner ?disabled=${!this.interactive} min=\"0\" .value=\"${+this.sdRT.toFixed(0)}\" @input=${this.sdRTInput.bind(this)}>\n <span>SD RT</span>\n </decidables-spinner>\n `;\n } else {\n correctCount = html`<span>Correct Count</span>\n ${this.payoff ? html`<span class=\"payoff\">${payoffFormat(this.correctPayoff)}</span>` : html``}`;\n errorCount = html`<span>Error Count</span>\n ${this.payoff ? html`<span class=\"payoff\">${payoffFormat(this.errorPayoff)}</span>` : html``}`;\n accuracy = html`<span>Accuracy</span>`;\n correctMeanRT = html`<span>Correct Mean RT</span>`;\n errorMeanRT = html`<span>Error Mean RT</span>`;\n meanRT = html`<span>Mean RT</span>`;\n correctSDRT = html`<span>Correct SD RT</span>`;\n errorSDRT = html`<span>Error SD RT</span>`;\n sdRT = html`<span>SD RT</span>`;\n }\n return html`\n <table class=${this.numeric ? 'numeric' : ''}>\n <thead>\n <tr>\n <th rowspan=\"2\"></th>\n <th class=\"th th-main\" colspan=\"2\" scope=\"col\">\n Outcome\n </th>\n </tr>\n <tr>\n <th class=\"th th-sub\" scope=\"col\">\n Correct\n </th>\n <th class=\"th th-sub\" scope=\"col\">\n Error\n </th>\n ${(this.summary)\n ? html`\n <th class=\"th th-main\" scope=\"col\">\n Overall\n </th>`\n : html``}\n </tr>\n </thead>\n <tbody>\n <tr>\n <th class=\"th th-sub th-left\" scope=\"row\">\n Count\n </th>\n <td class=\"td td-data correct count\">\n ${correctCount}\n </td>\n <td class=\"td td-data error count\">\n ${errorCount}\n </td>\n ${(this.summary)\n ? html`\n <td class=\"td td-summary overall proportion-correct\">\n ${accuracy}\n </td>`\n : html``}\n </tr>\n <tr>\n <th class=\"th th-sub th-left\" scope=\"row\">\n Mean RT\n </th>\n <td class=\"td td-data correct mean-rt\">\n ${correctMeanRT}\n </td>\n <td class=\"td td-data error mean-rt\">\n ${errorMeanRT}\n </td>\n ${(this.summary)\n ? html`\n <td class=\"td td-summary overall mean-rt\">\n ${meanRT}\n </td>`\n : html``}\n </tr>\n <tr>\n <th class=\"th th-sub th-left\" scope=\"row\">\n SD RT\n </th>\n <td class=\"td td-data correct sd-rt\">\n ${correctSDRT}\n </td>\n <td class=\"td td-data error sd-rt\">\n ${errorSDRT}\n </td>\n ${(this.summary)\n ? html`\n <td class=\"td td-summary overall sd-rt\">\n ${sdRT}\n </td>`\n : html``}\n </tr>\n </tbody>\n </table>`;\n }\n}\n\ncustomElements.define('accumulable-table', AccumulableTable);\n","\nimport {html, css} from 'lit';\n\nimport DDMMath from '@decidables/accumulable-math';\n\n// Special Web Worker import for rollup-plugin-web-worker-loader\nimport DDMFitWorker from 'web-worker:./ddm-fit-worker'; /* eslint-disable-line import/no-unresolved */\n\nimport AccumulableElement from '../accumulable-element';\n\n/*\n DDMFit element\n <ddm-fit>\n\n Attributes:\n interactive: true/false\n*/\nexport default class DDMFit extends AccumulableElement {\n static get properties() {\n return {\n };\n }\n\n constructor() {\n super();\n\n this.a = DDMMath.a.DEFAULT;\n this.z = DDMMath.z.DEFAULT;\n this.v = DDMMath.v.DEFAULT;\n this.t0 = DDMMath.t0.DEFAULT;\n\n this.observed = {};\n this.predicted = {};\n\n this.working = false;\n this.queued = false;\n this.worker = new DDMFitWorker();\n\n this.worker.onmessage = (event) => {\n this.working = false;\n this.predicted = event.data.predicted;\n this.a = event.data.params.a;\n this.z = event.data.params.z;\n this.v = event.data.params.v;\n this.t0 = event.data.params.t0;\n this.requestUpdate();\n\n this.dispatchEvent(new CustomEvent('ddm-fit-update', {\n detail: {\n a: this.a,\n z: this.z,\n v: this.v,\n t0: this.t0,\n },\n bubbles: true,\n }));\n\n if (this.queued) {\n this.fit();\n }\n };\n\n this.fit();\n }\n\n fit() {\n if (!this.working) {\n this.worker.postMessage(this.observed);\n this.working = true;\n this.queued = false;\n } else {\n this.queued = true;\n }\n }\n\n clear() {\n this.observed = {};\n\n this.fit();\n }\n\n set(data) {\n // Deep copy\n this.observed = structuredClone(data);\n\n this.fit();\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n display: inline-block;\n }\n `,\n ];\n }\n\n render() {\n return html`\n <div>\n <div><b>Observed:</b>\n <br/>Accuracy = ${this.observed.accuracy?.toFixed(2)},\n <br/>Correct Mean RT = ${this.observed.correctMeanRT?.toFixed(0)},\n Error Mean RT = ${this.observed.errorMeanRT?.toFixed(0)},\n Mean RT = ${this.observed.meanRT?.toFixed(0)},\n <br/>Correct SD RT = ${this.observed.correctSDRT?.toFixed(0)},\n Error SD RT = ${this.observed.errorSDRT?.toFixed(0)},\n SD RT = ${this.observed.sdRT?.toFixed(0)},\n </div>\n <div><b>Parameters:</b>\n <br/><var class=\"math-var a\">a</var> = ${this.a.toFixed(2)},\n <var class=\"math-var z\">z</var> = ${this.z.toFixed(2)},\n <var class=\"math-var v\">v</var> = ${this.v.toFixed(2)},\n <var class=\"math-var t0\">t0</var> = ${this.t0.toFixed(0)}\n </div>\n <div><b>Predicted:</b>\n <br/>Accuracy = ${this.predicted.accuracy?.toFixed(2)},\n <br/>Correct Mean RT = ${this.predicted.correctMeanRT?.toFixed(0)},\n Error Mean RT = ${this.predicted.errorMeanRT?.toFixed(0)},\n Mean RT = ${this.predicted.meanRT?.toFixed(0)},\n <br/>Correct SD RT = ${this.predicted.correctSDRT?.toFixed(0)},\n Error SD RT = ${this.predicted.errorSDRT?.toFixed(0)},\n SD RT = ${this.predicted.sdRT?.toFixed(0)},\n </div>\n </div>\n `;\n }\n}\n\ncustomElements.define('ddm-fit', DDMFit);\n","\nimport {html, css} from 'lit';\n\nimport '@decidables/decidables-elements/slider';\nimport DDMMath from '@decidables/accumulable-math';\n\nimport AccumulableElement from '../accumulable-element';\n\n/*\n DDMParameters element\n <ddm-paramters>\n\n Attributes:\n\n*/\nexport default class DDMParameters extends AccumulableElement {\n static get properties() {\n return {\n a: {\n attribute: 'boundary-separation',\n type: Number,\n reflect: true,\n },\n z: {\n attribute: 'starting-point',\n type: Number,\n reflect: true,\n },\n v: {\n attribute: 'drift-rate',\n type: Number,\n reflect: true,\n },\n t0: {\n attribute: 'nondecision-time',\n type: Number,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.a = undefined;\n this.z = undefined;\n this.v = undefined;\n this.t0 = undefined;\n }\n\n setBoundarySeparation(e) {\n this.a = +e.target.value;\n this.dispatchEvent(new CustomEvent('ddm-parameters-a', {\n detail: {\n a: this.a,\n },\n bubbles: true,\n }));\n }\n\n setStartingPoint(e) {\n this.z = +e.target.value;\n this.dispatchEvent(new CustomEvent('ddm-parameters-z', {\n detail: {\n z: this.z,\n },\n bubbles: true,\n }));\n }\n\n setDriftRate(e) {\n this.v = +e.target.value;\n this.dispatchEvent(new CustomEvent('ddm-parameters-v', {\n detail: {\n v: this.v,\n },\n bubbles: true,\n }));\n }\n\n setNondecisionTime(e) {\n this.t0 = +e.target.value;\n this.dispatchEvent(new CustomEvent('ddm-parameters-t0', {\n detail: {\n t0: this.t0,\n },\n bubbles: true,\n }));\n }\n\n static get styles() {\n return [\n super.styles,\n css`\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 decidables-slider {\n line-height: 1;\n text-align: center;\n }\n\n decidables-slider div {\n margin-bottom: 0.25rem;\n }\n\n .a {\n --decidables-slider-background-color: var(---color-a-light);\n --decidables-slider-color: var(---color-a);\n }\n\n .z {\n --decidables-slider-background-color: var(---color-z-light);\n --decidables-slider-color: var(---color-z);\n }\n\n .v {\n --decidables-slider-background-color: var(---color-v-light);\n --decidables-slider-color: var(---color-v);\n }\n\n .t0 {\n --decidables-slider-background-color: var(---color-t0-light);\n --decidables-slider-color: var(---color-t0);\n }\n `,\n ];\n }\n\n render() {\n return html`\n <div class=\"holder\">\n ${this.a != null\n ? html`<decidables-slider class=\"a\"\n ?disabled=${!this.interactive}\n scale\n min=${DDMMath.a.MIN}\n max=${DDMMath.a.MAX}\n step=${DDMMath.a.STEP}\n .value=${+this.a.toFixed(2)}\n @change=${this.setBoundarySeparation.bind(this)}\n @input=${this.setBoundarySeparation.bind(this)}\n ><div>Boundary Separation<br><span class=\"math-var\">a</span></div></decidables-slider>`\n : html``}\n ${this.z != null\n ? html`<decidables-slider class=\"z\"\n ?disabled=${!this.interactive}\n scale\n min=${DDMMath.z.MIN}\n max=${DDMMath.z.MAX}\n step=${DDMMath.z.STEP}\n .value=${+this.z.toFixed(2)}\n @change=${this.setStartingPoint.bind(this)}\n @input=${this.setStartingPoint.bind(this)}\n ><div>Starting Point<br><span class=\"math-var\">z</span></div></decidables-slider>`\n : html``}\n ${this.v != null\n ? html`<decidables-slider class=\"v\"\n ?disabled=${!this.interactive}\n scale\n min=${DDMMath.v.MIN}\n max=${DDMMath.v.MAX}\n step=${DDMMath.v.STEP}\n .value=${+this.v.toFixed(2)}\n @change=${this.setDriftRate.bind(this)}\n @input=${this.setDriftRate.bind(this)}\n ><div>Drift Rate<br><span class=\"math-var\">v</span></div></decidables-slider>`\n : html``}\n ${this.t0 != null\n ? html`<decidables-slider class=\"t0\" \n ?disabled=${!this.interactive}\n scale\n min=${DDMMath.t0.MIN}\n max=${DDMMath.t0.MAX}\n step=${DDMMath.t0.STEP}\n .value=${+this.t0.toFixed(0)}\n @change=${this.setNondecisionTime.bind(this)}\n @input=${this.setNondecisionTime.bind(this)}\n ><div>Nondecision Time<br><span class=\"math-var\">t₀</span></div></decidables-slider>`\n : html``}\n </div>`;\n }\n}\n\ncustomElements.define('ddm-parameters', DDMParameters);\n","\nimport {css, html} from 'lit';\nimport * as d3 from 'd3';\n\nimport DDMMath from '@decidables/accumulable-math';\nimport {DecidablesMixinResizeable} from '@decidables/decidables-elements';\n\nimport AccumulableElement from '../accumulable-element';\n\n/*\n DDMModel element\n <ddm-model>\n\n Attributes:\n interactive: true/false\n\n measures: boolean\n means: boolean\n\n seed: numeric\n trials: numeric\n\n a: numeric\n z: numeric\n v: numeric\n t0: numeric\n\n // s: numeric\n // sz: numeric\n // eta: numeric\n // st: numeric\n\n Styles:\n ??\n*/\nexport default class DDMModel extends DecidablesMixinResizeable(AccumulableElement) {\n static get properties() {\n return {\n measures: {\n attribute: 'measures',\n type: Boolean,\n reflect: true,\n },\n means: {\n attribute: 'means',\n type: Boolean,\n reflect: true,\n },\n sds: {\n attribute: 'sds',\n type: Boolean,\n reflect: true,\n },\n\n human: {\n attribute: 'human',\n type: Boolean,\n reflect: true,\n },\n trials: {\n attribute: 'trials',\n type: Number,\n reflect: true,\n },\n seed: {\n attribute: 'seed',\n type: Number,\n reflect: true,\n },\n\n a: {\n attribute: 'boundary-separation',\n type: Number,\n reflect: true,\n },\n z: {\n attribute: 'starting-point',\n type: Number,\n reflect: true,\n },\n v: {\n attribute: 'drift-rate',\n type: Number,\n reflect: true,\n },\n t0: {\n attribute: 'nondecision-time',\n type: Number,\n reflect: true,\n },\n\n // s: {\n // attribute: false, // within-trial variability in drift rate\n // type: Number,\n // reflect: false,\n // },\n // sz: {\n // attribute: false, // starting point range\n // type: Number,\n // reflect: false,\n // },\n // eta: {\n // attribute: false, // standard deviation for across-trial variability in drift rate\n // type: Number,\n // reflect: false,\n // },\n // st: {\n // attribute: false, // nondecision-time range\n // type: Number,\n // reflect: false,\n // },\n };\n }\n\n constructor() {\n super();\n\n this.firstUpdate = true;\n this.drag = false;\n\n this.scale = {\n time: {\n min: 0,\n max: 1000,\n step: 1,\n round: Math.round,\n },\n evidence: {\n min: -1,\n max: 1,\n step: 0.01,\n round: Math.round,\n },\n density: {\n min: 0,\n max: 10,\n step: 0.01,\n round: Math.round,\n },\n };\n\n this.measures = false;\n this.means = false;\n this.sds = false;\n\n this.resample();\n this.human = false;\n this.trials = 10;\n\n this.a = DDMMath.a.DEFAULT;\n this.z = DDMMath.z.DEFAULT;\n this.v = DDMMath.v.DEFAULT;\n this.t0 = DDMMath.t0.DEFAULT;\n\n // this.s = null;\n // this.sz = null;\n // this.eta = null;\n // this.st = null;\n\n this.precision = 0.005;\n this.random = null;\n\n this.bounds = null;\n this.startingPoint = null;\n\n this.data = {};\n this.model = {};\n this.animate = false;\n this.paused = false;\n\n this.alignState();\n }\n\n clear() {\n this.trials = 0;\n this.data.trials = [];\n }\n\n trial(trial = {}) {\n this.trials += 1;\n if (this.human) {\n this.data.trials.push(trial);\n } else {\n this.animate = true;\n }\n }\n\n // Called to pause trial animations!\n pauseTrial() {\n const pathNew = d3.select(this.renderRoot).select('.path[data-new-trial-ease-time]');\n pathNew.interrupt('new').select('.curve').interrupt('new');\n this.paused = true;\n }\n\n // Called to resume trial animations!\n resumeTrial() {\n this.paused = false;\n this.requestUpdate();\n }\n\n resample() {\n this.seed = d3.randomUniform(0, 1)();\n }\n\n alignPath(seed, a, z, v, t0) {\n const random = d3.randomNormal.source(d3.randomLcg(seed))(0, this.precision ** 0.5);\n const bounds = {\n lower: -a / 2,\n upper: a / 2,\n };\n const startingPoint = a * z - a / 2;\n const drift = v * this.precision;\n\n const path = [];\n path.push(\n {t: t0, e: startingPoint},\n );\n while ((path.at(-1).e > bounds.lower) && (path.at(-1).e < bounds.upper)) {\n path.push({\n t: path.at(-1).t + (this.precision * 1000),\n e: path.at(-1).e + drift + DDMMath.s.DEFAULT * random(),\n });\n }\n return path;\n }\n\n alignCorrectDistribution(a, z, v, t0) {\n const proportionCorrect = DDMMath.azv2pC(a, z, v);\n\n const dist = [\n {t: 0, d: 0},\n {t: this.t0, d: 0},\n ];\n for (\n let i = this.scale.time.min;\n i <= (this.scale.time.max - (t0));\n i += this.scale.time.step) {\n if (i > 0) {\n dist.push({\n t: t0 + i,\n d: DDMMath.tazv2gC(i / 1000, a, z, v) / proportionCorrect,\n });\n }\n }\n\n return dist;\n }\n\n alignErrorDistribution(a, z, v, t0) {\n const proportionError = DDMMath.azv2pE(a, z, v);\n\n const dist = [\n {t: 0, d: 0},\n {t: this.t0, d: 0},\n ];\n for (\n let i = this.scale.time.min;\n i <= (this.scale.time.max - (t0));\n i += this.scale.time.step) {\n if (i > 0) {\n dist.push({\n t: t0 + i,\n d: DDMMath.tazv2gE(i / 1000, a, z, v) / proportionError,\n });\n }\n }\n\n return dist;\n }\n\n alignState() {\n this.random = d3.randomUniform.source(d3.randomLcg(this.seed))(0, 1);\n\n this.bounds = {\n lower: -this.a / 2,\n upper: this.a / 2,\n };\n this.startingPoint = this.a * this.z - this.a / 2;\n\n // Data Trials\n if (this.human) {\n this.trials = this.data.trials.length;\n } else {\n this.data.trials = Array.from({length: this.trials}, (element, index) => {\n const seed = (this.random() / 1000) * 997; // HACK to avoid randomLcg repetition\n const animate = this.animate && (index === (this.trials - 1));\n\n // Sample Paths\n const path = this.alignPath(seed, this.a, this.z, this.v, this.t0);\n const outcome = (path.at(-1).e <= this.bounds.lower)\n ? 'error'\n : (path.at(-1).e >= this.bounds.upper)\n ? 'correct'\n : 'nr';\n const rt = (outcome === 'error')\n ? path.at(-2).t + (\n ((this.bounds.lower - path.at(-2).e) / (path.at(-1).e - path.at(-2).e))\n * (this.precision * 1000)\n )\n : (outcome === 'correct')\n ? path.at(-2).t + (\n ((this.bounds.upper - path.at(-2).e) / (path.at(-1).e - path.at(-2).e))\n * (this.precision * 1000)\n )\n : null;\n\n return {\n index, seed, path, rt, outcome, animate,\n };\n });\n }\n\n // Data Summary Stats\n const dataStats = DDMMath.trials2stats(\n this.data.trials.filter((path) => { return !path.animate; }),\n );\n this.data = {...this.data, ...dataStats};\n\n // Model Summary Stats\n this.model.accuracy = DDMMath.azv2pC(this.a, this.z, this.v);\n\n this.model.correctMeanRT = DDMMath.azvt02mC(this.a, this.z, this.v, this.t0);\n this.model.errorMeanRT = DDMMath.azvt02mE(this.a, this.z, this.v, this.t0);\n\n this.model.correctSDRT = DDMMath.azv2sdC(this.a, this.z, this.v);\n this.model.errorSDRT = DDMMath.azv2sdE(this.a, this.z, this.v);\n\n // Model Distributions\n this.model.correctDist = this.alignCorrectDistribution(this.a, this.z, this.v, this.t0);\n this.model.errorDist = this.alignErrorDistribution(this.a, this.z, this.v, this.t0);\n\n this.dispatchEvent(new CustomEvent('ddm-model-output', {\n detail: {\n data: this.data,\n model: this.model,\n },\n bubbles: true,\n }));\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n display: inline-block;\n\n width: 27rem;\n height: 18rem;\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 /* \n UNDERLAYER\n */\n .background {\n fill: var(---color-element-background);\n stroke: none;\n stroke-width: 1;\n shape-rendering: crispEdges;\n }\n\n .title {\n font-weight: 600;\n\n fill: currentColor;\n }\n\n .axis path,\n .axis line {\n stroke: var(---color-element-border);\n /* shape-rendering: crispEdges; */\n }\n\n .tick {\n font-size: 0.75rem;\n }\n\n /* \n CONTENT\n */\n .line {\n fill: none;\n stroke: var(---color-element-emphasis);\n stroke-width: 2;\n }\n\n .curve {\n stroke-width: 2;\n }\n\n .path .curve {\n opacity: 0.5;\n\n fill: none;\n\n transition: opacity 0.5s;\n }\n\n .path.highlight .curve {\n filter: url(\"#shadow-2\");\n opacity: 1;\n }\n\n .path.correct .curve {\n /* stroke: var(---color-correct); */\n }\n\n .path.error .curve {\n /* stroke: var(---color-error); */\n }\n\n .stop-0 {\n stop-color: var(---color-correct);\n }\n\n .stop-100 {\n stop-color: var(---color-error);\n }\n\n .path.animate .curve {\n opacity: 1;\n\n stroke: url(\"#path-animate\");\n }\n\n .dist.correct .curve {\n fill: var(---color-correct-light);\n stroke: var(---color-correct);\n }\n\n .dist.error .curve {\n fill: var(---color-error-light);\n stroke: var(---color-error);\n }\n\n .rt .mark {\n stroke-width: 1;\n }\n\n .accuracy.model .bar {\n stroke: none;\n }\n\n .accuracy.model.correct .bar {\n fill: var(---color-correct);\n }\n\n .accuracy.model.error .bar {\n fill: var(---color-error);\n }\n\n .accuracy.data .mark {\n stroke-width: 2;\n }\n\n .accuracy.data.correct .mark {\n stroke: var(---color-correct-light);\n }\n\n .accuracy.data.error .mark {\n stroke: var(---color-error-light);\n }\n\n /*\n OVERLAYER\n */\n .interactive {\n filter: url(\"#shadow-2\");\n outline: none;\n }\n\n .interactive:hover {\n filter: url(\"#shadow-4\");\n }\n\n .interactive:active {\n filter: url(\"#shadow-8\");\n }\n\n :host(.keyboard) .interactive:focus {\n filter: url(\"#shadow-8\");\n }\n\n .boundary {\n fill: none;\n stroke: var(---color-element-emphasis);\n stroke-width: 2;\n }\n\n .boundary.interactive {\n cursor: ns-resize;\n }\n\n .drift {\n pointer-events: visible;\n\n fill: none;\n stroke: var(---color-element-emphasis);\n stroke-dasharray: 8 4;\n stroke-width: 2;\n }\n\n .drift.interactive {\n cursor: ns-resize;\n }\n\n .drift .arrow {\n stroke-dasharray: none;\n }\n\n .t0z.interactive {\n cursor: move;\n }\n\n .t0z .point {\n fill: var(---color-element-emphasis);\n stroke-width: 0;\n\n r: 6px;\n }\n\n /* Make larger targets for touch users */\n .interactive .touch {\n stroke: #000000;\n stroke-dasharray: none;\n stroke-opacity: 0;\n }\n\n @media (pointer: coarse) {\n .interactive .touch {\n stroke-linecap: round;\n stroke-width: 12;\n }\n }\n\n .measure {\n stroke-width: 2;\n }\n\n .measure .label {\n font-size: 0.75rem;\n\n fill: currentColor;\n }\n\n .measure.a .line {\n stroke: var(---color-a);\n }\n\n .measure.a .label {\n dominant-baseline: auto;\n text-anchor: end;\n }\n\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .measure-arrow.a {\n fill: var(---color-a);\n stroke: var(---color-a);\n }\n\n .measure.z .line {\n stroke: var(---color-z);\n }\n\n .measure.z .label,\n /* Hack to avoid Safari weirdness */\n .measure.z .label tspan {\n dominant-baseline: hanging;\n text-anchor: start;\n }\n\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .measure-arrow.z {\n fill: var(---color-z);\n stroke: var(---color-z);\n }\n\n .measure.v .line {\n stroke: var(---color-v);\n }\n\n .measure.v .label {\n dominant-baseline: auto;\n text-anchor: start;\n }\n\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .measure-arrow.v {\n fill: var(---color-v);\n stroke: var(---color-v);\n }\n\n .measure.t0 .line {\n stroke: var(---color-t0);\n }\n\n .measure.t0 .label {\n dominant-baseline: auto;\n text-anchor: middle;\n }\n\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .measure-arrow.t0 {\n fill: var(---color-t0);\n stroke: var(---color-t0);\n }\n\n .sd .indicator,\n .mean .indicator {\n stroke-width: 2;\n }\n\n .sd.model .indicator,\n .mean.model .indicator {\n stroke-dasharray: 2 2;\n }\n\n .sd.data .indicator,\n .mean.data .indicator {\n stroke-dasharray: 1 1;\n }\n\n .sd.correct .indicator,\n .mean.correct .indicator {\n stroke: var(---color-correct-dark);\n }\n\n .sd.error .indicator,\n .mean.error .indicator {\n stroke: var(---color-error-dark);\n }\n\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .cap.correct {\n fill: var(---color-correct-dark);\n stroke: var(---color-correct-dark);\n stroke-dasharray: 100%;\n }\n\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .cap.error {\n fill: var(---color-error-dark);\n stroke: var(---color-error-dark);\n stroke-dasharray: 100%;\n }\n\n .rt-label rect {\n filter: url(\"#shadow-2\");\n\n fill: var(--color-background);\n rx: 4;\n }\n\n .rt-label text {\n font-size: 0.75rem;\n \n text-anchor: middle;\n }\n\n .rt-label.correct text {\n dominant-baseline: auto;\n }\n\n .rt-label.error text {\n dominant-baseline: hanging;\n }\n `,\n ];\n }\n\n render() { /* eslint-disable-line class-methods-use-this */\n return html``;\n }\n\n willUpdate() {\n this.alignState();\n }\n\n update(changedProperties) {\n super.update(changedProperties);\n\n // Bail out if we can't get the width/height\n if (Number.isNaN(this.width) || Number.isNaN(this.height) || Number.isNaN(this.rem)) {\n return;\n }\n\n const hostWidth = this.width;\n const hostHeight = this.height;\n const hostAspectRatio = hostWidth / hostHeight;\n\n const elementAspectRatio = 1.5;\n let elementWidth;\n let elementHeight;\n\n if (hostAspectRatio > elementAspectRatio) {\n elementHeight = hostHeight;\n elementWidth = elementHeight * elementAspectRatio;\n } else {\n elementWidth = hostWidth;\n elementHeight = elementWidth / elementAspectRatio;\n }\n\n const margin = {\n top: 1 * this.rem,\n bottom: 3 * this.rem,\n left: 3.75 * this.rem,\n right: 3.25 * this.rem,\n };\n const height = elementHeight - (margin.top + margin.bottom);\n const width = elementWidth - (margin.left + margin.right);\n\n const gapHeight = 0.75 * this.rem;\n const evidenceHeight = height * 0.5;\n const densityHeight = height * 0.25 - gapHeight;\n\n const gapWidth = 0.75 * this.rem;\n const timeWidth = width * 0.90;\n const accuracyWidth = width * 0.10 - gapWidth;\n\n const transitionDuration = parseInt(this.getComputedStyleValue('---transition-duration'), 10);\n\n //\n // SCALES\n //\n\n // Time Scale\n const timeScale = d3.scaleLinear()\n .domain([this.scale.time.min, this.scale.time.max])\n .range([0, timeWidth]);\n\n // Evidence Scale\n const evidenceScale = d3.scaleLinear()\n .domain([this.scale.evidence.min, this.scale.evidence.max])\n .range([evidenceHeight, 0]);\n\n // Correct Density Scale\n const correctDensityScale = d3.scaleLinear()\n .domain([this.scale.density.min, this.scale.density.max])\n .range([densityHeight, 0]);\n\n // Error Density Scale\n const errorDensityScale = d3.scaleLinear()\n .domain([this.scale.density.min, this.scale.density.max])\n .range([0, densityHeight]);\n\n // Accuracy Scale\n const accuracyScale = d3.scaleLinear()\n .domain([0, 1])\n .range([0, height]);\n\n //\n // DRAG BEHAVIORS\n //\n\n // Nondecision Time/Starting Point Drag behavior\n const dragT0z = d3.drag()\n .subject((event, datum) => {\n return {x: timeScale(datum.t0), y: evidenceScale(datum.startingPoint)};\n })\n .on('start', (event) => {\n const element = event.currentTarget;\n d3.select(element).classed('dragging', true);\n })\n .on('drag', (event) => {\n this.drag = true;\n const shift = event.sourceEvent.shiftKey\n ? (Math.abs(event.x - event.subject.x) > Math.abs(event.y - event.subject.y))\n ? 't0'\n : 'z'\n : false;\n let t0 = timeScale.invert(event.x);\n let z = (evidenceScale.invert(event.y) + (this.a / 2)) / this.a;\n // Clamp t0\n t0 = (shift === 'z')\n ? timeScale.invert(event.subject.x)\n : (t0 < DDMMath.t0.MIN)\n ? DDMMath.t0.MIN\n : (t0 > DDMMath.t0.MAX)\n ? DDMMath.t0.MAX\n : t0;\n // Clamp z\n z = (shift === 't0')\n ? (evidenceScale.invert(event.subject.y) + (this.a / 2)) / this.a\n : (z < DDMMath.z.MIN)\n ? DDMMath.z.MIN\n : (z > DDMMath.z.MAX)\n ? DDMMath.z.MAX\n : z;\n this.t0 = t0;\n this.z = z;\n this.alignState();\n this.dispatchEvent(new CustomEvent('ddm-model-t0', {\n detail: {\n t0: this.t0,\n },\n bubbles: true,\n }));\n this.dispatchEvent(new CustomEvent('ddm-model-z', {\n detail: {\n z: this.z,\n },\n bubbles: true,\n }));\n })\n .on('end', (event) => {\n const element = event.currentTarget;\n d3.select(element).classed('dragging', false);\n this.drag = false;\n });\n\n // Drift Rate Drag behavior\n const dragDrift = d3.drag()\n .on('start', (event) => {\n const element = event.currentTarget;\n d3.select(element).classed('dragging', true);\n })\n .on('drag', (event) => {\n this.drag = true;\n let v = ((evidenceScale.invert(event.y) - this.startingPoint)\n / (timeScale.invert(event.x) - this.t0)) * 1000;\n // Clamp drift rate\n v = (v < DDMMath.v.MIN)\n ? DDMMath.v.MIN\n : (v > DDMMath.v.MAX)\n ? DDMMath.v.MAX\n : v;\n this.v = v;\n this.alignState();\n this.dispatchEvent(new CustomEvent('ddm-model-v', {\n detail: {\n v: this.v,\n },\n bubbles: true,\n }));\n })\n .on('end', (event) => {\n const element = event.currentTarget;\n d3.select(element).classed('dragging', false);\n this.drag = false;\n });\n\n // Boundary Drag behavior\n const dragBoundary = d3.drag()\n .subject((event, datum) => {\n return {x: 0, y: evidenceScale(datum.value)};\n })\n .on('start', (event) => {\n const element = event.currentTarget;\n d3.select(element).classed('dragging', true);\n })\n .on('drag', (event) => {\n this.drag = true;\n const boundary = evidenceScale.invert(event.y);\n let a = Math.abs(boundary * 2);\n // Clamp a\n a = (a < DDMMath.a.MIN)\n ? DDMMath.a.MIN\n : (a > DDMMath.a.MAX)\n ? DDMMath.a.MAX\n : a;\n this.a = a;\n this.alignState();\n this.dispatchEvent(new CustomEvent('ddm-model-a', {\n detail: {\n a: this.a,\n },\n bubbles: true,\n }));\n })\n .on('end', (event) => {\n const element = event.currentTarget;\n d3.select(element).classed('dragging', false);\n this.drag = false;\n });\n\n //\n // LINES\n //\n\n // Line for time/evidence space\n const evidenceLine = d3.line()\n .x((datum) => { return timeScale(datum.t); })\n .y((datum) => { return evidenceScale(datum.e); });\n\n // Line for correct time/density space\n const correctDensityLine = d3.line()\n .x((datum) => { return timeScale(datum.t); })\n .y((datum) => { return correctDensityScale(datum.d); });\n\n // Line for error time/density space\n const errorDensityLine = d3.line()\n .x((datum) => { return timeScale(datum.t); })\n .y((datum) => { return errorDensityScale(datum.d); });\n\n //\n // PLOTS\n //\n\n // Svg\n // DATA-JOIN\n const svgUpdate = d3.select(this.renderRoot).selectAll('.main')\n .data([{\n width: this.width,\n height: this.height,\n rem: this.rem,\n }]);\n // ENTER\n const svgEnter = svgUpdate.enter().append('svg')\n .classed('main', true)\n .html(AccumulableElement.svgDefs);\n const svgDefs = svgEnter.append('defs');\n // Arrowhead marker for measures\n const measureArrow = (parameter) => {\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n svgDefs.append('marker')\n .attr('id', `measure-arrow-${parameter}`)\n .attr('class', `measure-arrow ${parameter}`)\n .attr('orient', 'auto-start-reverse')\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('viewBox', '-5 -5 10 10')\n .attr('refX', '2')\n .attr('refY', '0')\n .attr('markerWidth', '10')\n .attr('markerHeight', '10')\n .append('path')\n .attr('stroke', 'context-stroke')\n .attr('fill', 'context-stroke')\n .attr('d', 'M -3 -3 l 6 3 l -6 3 z');\n };\n const measureArrowCap = (parameter) => {\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n const marker = svgDefs.append('marker')\n .attr('id', `measure-arrow-cap-${parameter}`)\n .attr('class', `measure-arrow cap ${parameter}`)\n .attr('orient', 'auto-start-reverse')\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('viewBox', '-5 -5 10 10')\n .attr('refX', '2')\n .attr('refY', '0')\n .attr('markerWidth', '10')\n .attr('markerHeight', '10');\n marker\n .append('path')\n .attr('stroke', 'context-stroke')\n .attr('fill', 'context-stroke')\n .attr('d', 'M -3 -3 l 6 3 l -6 3 z');\n marker\n .append('path')\n .attr('stroke', 'context-stroke')\n .attr('fill', 'context-stroke')\n .attr('stroke-width', '2')\n .attr('d', 'M 4 -4 l 0 8');\n };\n measureArrow('a');\n measureArrow('z');\n measureArrowCap('v');\n measureArrow('t0');\n measureArrowCap('t0');\n // Flat markers for SDs\n const sdCap = (outcome) => {\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n svgDefs.append('marker')\n .attr('id', `model-sd-cap-${outcome}`)\n .attr('class', `model-sd cap ${outcome}`)\n .attr('orient', 'auto-start-reverse')\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('viewBox', '-5 -5 10 10')\n .attr('refX', '0')\n .attr('refY', '0')\n .attr('markerWidth', '10')\n .attr('markerHeight', '10')\n .append('path')\n .attr('stroke', 'context-stroke')\n .attr('fill', 'context-stroke')\n .attr('stroke-width', '2')\n .attr('d', 'M 0 -4 l 0 8');\n svgDefs.append('marker')\n .attr('id', `data-sd-cap-${outcome}`)\n .attr('class', `data-sd cap ${outcome}`)\n .attr('orient', 'auto-start-reverse')\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('viewBox', '-5 -5 10 10')\n .attr('refX', '0')\n .attr('refY', '0')\n .attr('markerWidth', '10')\n .attr('markerHeight', '10')\n .append('path')\n .attr('stroke', 'context-stroke')\n .attr('fill', 'context-stroke')\n .attr('stroke-width', '2')\n .attr('d', 'M 0 -3 l 0 6');\n };\n sdCap('error');\n sdCap('correct');\n const gradient = svgDefs.append('linearGradient')\n .attr('id', 'path-animate')\n .attr('gradientUnits', 'userSpaceOnUse')\n .attr('color-interpolation', 'linearRGB')\n .attr('x1', '0')\n .attr('x2', '0')\n .attr('y1', evidenceScale(this.bounds.upper))\n .attr('y2', evidenceScale(this.bounds.lower));\n gradient.append('stop')\n .classed('stop-0', true)\n .attr('offset', '0%');\n gradient.append('stop')\n .classed('stop-100', true)\n .attr('offset', '100%');\n // MERGE\n const svgMerge = svgEnter.merge(svgUpdate)\n .attr('viewBox', `0 0 ${elementWidth} ${elementHeight}`);\n\n // Plots\n // DATA-JOIN\n const densityPlotUpdate = svgMerge.selectAll('.plot.density')\n .data([\n {\n outcome: 'correct',\n data: {\n meanRT: this.data.correctMeanRT,\n sdRT: this.data.correctSDRT,\n },\n model: {\n meanRT: this.model.correctMeanRT,\n sdRT: this.model.correctSDRT,\n dist: this.model.correctDist,\n },\n densityScale: correctDensityScale,\n densityLine: correctDensityLine,\n alignDistribution: this.alignCorrectDistribution.bind(this),\n },\n {\n outcome: 'error',\n data: {\n meanRT: this.data.errorMeanRT,\n sdRT: this.data.errorSDRT,\n },\n model: {\n meanRT: this.model.errorMeanRT,\n sdRT: this.model.errorSDRT,\n dist: this.model.errorDist,\n },\n densityScale: errorDensityScale,\n densityLine: errorDensityLine,\n alignDistribution: this.alignErrorDistribution.bind(this),\n },\n ]);\n // ENTER\n const evidencePlotEnter = svgEnter.append('g')\n .classed('plot evidence', true);\n const densityPlotEnter = densityPlotUpdate.enter().append('g')\n .attr('class', (datum) => { return `plot density ${datum.outcome}`; });\n const accuracyPlotEnter = svgEnter.append('g')\n .classed('plot accuracy', true);\n // MERGE\n const evidencePlotMerge = svgMerge.select('.plot.evidence')\n .attr('transform', `translate(${margin.left}, ${margin.top + densityHeight + gapHeight})`);\n const densityPlotMerge = densityPlotEnter.merge(densityPlotUpdate)\n .attr('transform', (datum) => {\n return `translate(${margin.left}, ${\n (datum.outcome === 'correct')\n ? margin.top\n : margin.top + densityHeight + evidenceHeight + 2 * gapHeight\n })`;\n });\n const accuracyPlotMerge = svgMerge.select('.plot.accuracy')\n .attr('transform', `translate(${margin.left + timeWidth + gapWidth}, ${margin.top})`);\n\n // Clippaths\n // ENTER\n evidencePlotEnter.append('clipPath')\n .attr('id', 'clip-evidence')\n .append('rect');\n // MERGE\n evidencePlotMerge.select('clipPath rect')\n .attr('y', evidenceScale(this.bounds.upper))\n .attr('height', evidenceScale(this.bounds.lower) - evidenceScale(this.bounds.upper) + 1)\n .attr('width', timeWidth + 1);\n\n //\n // LAYERS\n //\n\n // Underlayers\n // ENTER\n const evidenceUnderlayerEnter = evidencePlotEnter.append('g')\n .classed('underlayer', true);\n const densityUnderlayerEnter = densityPlotEnter.append('g')\n .classed('underlayer', true);\n const accuracyUnderlayerEnter = accuracyPlotEnter.append('g')\n .classed('underlayer', true);\n // MERGE\n const evidenceUnderlayerMerge = evidencePlotMerge.select('.underlayer');\n const densityUnderlayerMerge = densityPlotMerge.select('.underlayer');\n const accuracyUnderlayerMerge = accuracyPlotMerge.select('.underlayer');\n\n // Contents\n // ENTER\n evidencePlotEnter.append('g')\n .classed('content', true)\n .append('g').classed('paths', true);\n const densityContentEnter = densityPlotEnter.append('g')\n .classed('content', true);\n accuracyPlotEnter.append('g')\n .classed('content', true);\n // MERGE\n const evidenceContentMerge = evidencePlotMerge.select('.content');\n const densityContentMerge = densityPlotMerge.select('.content');\n const accuracyContentMerge = accuracyPlotMerge.select('.content');\n\n // Overlayers\n // ENTER\n evidencePlotEnter.append('g')\n .classed('overlayer', true);\n densityPlotEnter.append('g')\n .classed('overlayer', true);\n accuracyPlotEnter.append('g')\n .classed('overlayer', true);\n // MERGE\n const evidenceOverlayerMerge = evidencePlotMerge.select('.overlayer');\n const densityOverlayerMerge = densityPlotMerge.select('.overlayer');\n // const accuracyOverlayerMerge = accuracyPlotMerge.select('.overlayer');\n\n //\n // UNDERLAYERS\n //\n\n // Backgrounds\n // ENTER\n evidenceUnderlayerEnter.append('rect')\n .classed('background', true);\n densityUnderlayerEnter.append('rect')\n .classed('background', true);\n // MERGE\n evidenceUnderlayerMerge.select('.background')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('y', evidenceScale(this.bounds.upper))\n .attr('height', evidenceScale(this.bounds.lower) - evidenceScale(this.bounds.upper))\n .attr('width', timeWidth);\n densityUnderlayerMerge.select('.background')\n .transition()\n .duration(transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('height', densityHeight)\n .attr('width', timeWidth);\n\n // X Axes (Time)\n // ENTER\n densityUnderlayerEnter\n .filter((datum) => { return datum.outcome === 'error'; })\n .append('g')\n .classed('axis time', true);\n // MERGE\n const timeScaleMerge = densityUnderlayerMerge\n .filter((datum) => { return datum.outcome === 'error'; })\n .select('.axis.time')\n .attr('transform', `translate(0, ${densityHeight + (0.25 * this.rem)})`);\n const timeScaleTransition = timeScaleMerge.transition()\n .duration(transitionDuration)\n .ease(d3.easeCubicOut)\n .call(d3.axisBottom(timeScale))\n .attr('font-size', null)\n .attr('font-family', null);\n timeScaleTransition.selectAll('line, path')\n .attr('stroke', null);\n\n // X Axes Titles\n // ENTER\n const timeTitleEnter = densityUnderlayerEnter\n .filter((datum) => { return datum.outcome === 'error'; })\n .append('text')\n .classed('title time', true)\n .attr('text-anchor', 'middle');\n timeTitleEnter.append('tspan')\n .classed('name', true)\n .text('Time (ms)');\n // MERGE\n densityUnderlayerMerge\n .filter((datum) => { return datum.outcome === 'error'; })\n .select('.title.time')\n .transition()\n .duration(transitionDuration)\n .ease(d3.easeCubicOut)\n .attr(\n 'transform',\n `translate(${(timeWidth / 2)}, ${(densityHeight + (2.5 * this.rem))})`,\n );\n\n // Y Axes (Evidence, Density, Accuracy)\n // ENTER\n evidenceUnderlayerEnter.append('g')\n .classed('axis evidence', true);\n densityUnderlayerEnter.append('g')\n .attr('class', (datum) => { return `axis density ${datum.outcome}`; });\n accuracyUnderlayerEnter.append('g')\n .classed('axis accuracy', true);\n // MERGE\n const evidenceScaleMerge = evidenceUnderlayerMerge.select('.axis.evidence')\n .attr('transform', `translate(${-0.25 * this.rem}, 0)`);\n const densityScaleMerge = densityUnderlayerMerge.select('.axis.density')\n .attr('transform', `translate(${-0.25 * this.rem}, 0)`);\n const accuracyScaleMerge = accuracyUnderlayerMerge.select('.axis.accuracy')\n .attr('transform', `translate(${accuracyWidth + (0.25 * this.rem)}, 0)`);\n const evidenceScaleTransition = evidenceScaleMerge.transition()\n .duration(transitionDuration)\n .ease(d3.easeCubicOut)\n .call(d3.axisLeft(evidenceScale))\n .attr('font-size', null)\n .attr('font-family', null);\n const densityScaleTransition = densityScaleMerge.transition()\n .duration(transitionDuration)\n .ease(d3.easeCubicOut)\n .each((datum, index, elements) => {\n d3.axisLeft(datum.densityScale).ticks(2)(d3.select(elements[index]));\n })\n .attr('font-size', null)\n .attr('font-family', null);\n const accuracyScaleTransition = accuracyScaleMerge.transition()\n .duration(transitionDuration)\n .ease(d3.easeCubicOut)\n .call(d3.axisRight(accuracyScale))\n .attr('font-size', null)\n .attr('font-family', null);\n evidenceScaleTransition.selectAll('line, path')\n .attr('stroke', null);\n densityScaleTransition.selectAll('line, path')\n .attr('stroke', null);\n accuracyScaleTransition.selectAll('line, path')\n .attr('stroke', null);\n\n // Y Axes Titles (Evidence & Density)\n // ENTER\n const evidenceTitleEnter = evidenceUnderlayerEnter.append('text')\n .classed('title evidence', true)\n .attr('text-anchor', 'middle');\n const densityTitleEnter = densityUnderlayerEnter.append('text')\n .attr('class', (datum) => { return `title density ${datum.outcome}`; })\n .attr('text-anchor', 'middle');\n const accuracyTitleEnter = accuracyUnderlayerEnter.append('text')\n .classed('title accuracy', true)\n .attr('text-anchor', 'middle');\n evidenceTitleEnter.append('tspan')\n .classed('name', true)\n .text('Evidence');\n densityTitleEnter.append('tspan')\n .classed('name', true)\n .text('Density');\n accuracyTitleEnter.append('tspan')\n .classed('name', true)\n .text('Accuracy');\n // MERGE\n evidenceUnderlayerMerge.select('.title.evidence')\n .transition()\n .duration(transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('transform', `translate(${-2.5 * this.rem}, ${(evidenceHeight / 2)})rotate(-90)`);\n densityUnderlayerMerge.select('.title.density')\n .transition()\n .duration(transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('transform', `translate(${-2.5 * this.rem}, ${(densityHeight / 2)})rotate(-90)`);\n accuracyUnderlayerMerge.select('.title.accuracy')\n .transition()\n .duration(transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('transform', `translate(${accuracyWidth + 2.25 * this.rem}, ${(height / 2)})rotate(90)`);\n\n //\n // CONTENTS\n //\n\n // Paths\n // DATA-JOIN\n const pathUpdate = evidenceContentMerge.select('.paths').selectAll('.path')\n .data(\n this.data.trials.filter((trial) => { return trial.path !== undefined; }),\n );\n // ENTER\n const rtLabel = d3.local();\n const pathEnter = pathUpdate.enter().append('g')\n .classed('path', true)\n .attr('data-new-trial-ease-time', 0)\n .on('pointerenter', (event, datum) => {\n if (!this.drag) {\n d3.select(event.currentTarget)\n .classed('highlight', true)\n .raise();\n const myRtLabel = evidenceOverlayerMerge.append('g')\n .classed(`rt-label ${datum.outcome}`, true);\n const rect = myRtLabel.append('rect');\n const text = myRtLabel.append('text')\n .text(`RT = ${datum.rt.toFixed()}`)\n .attr('x', timeScale(datum.rt))\n .attr('y', datum.outcome === 'correct'\n ? evidenceScale(this.bounds.upper) - this.rem * 0.25\n : evidenceScale(this.bounds.lower) + this.rem * 0.125);\n const bbox = text.node().getBBox();\n rect\n .attr('x', bbox.x - this.rem * 0.125)\n .attr('y', bbox.y + this.rem * 0.125)\n .attr('width', bbox.width + this.rem * 0.25)\n .attr('height', bbox.height - this.rem * 0.25);\n rtLabel.set(event.currentTarget, myRtLabel);\n }\n })\n .on('pointerout', (event, datum) => {\n if (!this.drag) {\n d3.select(event.currentTarget)\n .classed('highlight', false)\n .lower();\n event.currentTarget.parentNode.insertBefore(\n event.currentTarget,\n event.currentTarget.parentNode.children[datum.index],\n );\n rtLabel.get(event.currentTarget).remove();\n }\n });\n pathEnter.append('path')\n .classed('curve', true)\n .attr('clip-path', 'url(#clip-evidence)')\n .attr('pathLength', 1)\n .attr('stroke-dashoffset', 1);\n // MERGE\n const pathMerge = pathEnter.merge(pathUpdate)\n .attr('class', (datum) => {\n return `path ${datum.outcome}`;\n });\n pathMerge.select('.curve')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('stroke', (datum) => {\n return this.getComputedStyleValue(`---color-${datum.outcome}`);\n })\n .attrTween('d', (datum, index, elements) => {\n const element = elements[index];\n const interpolateA = d3.interpolate(\n (element.a !== undefined) ? element.a : this.a,\n this.a,\n );\n const interpolateZ = d3.interpolate(\n (element.z !== undefined) ? element.z : this.z,\n this.z,\n );\n const interpolateV = d3.interpolate(\n (element.v !== undefined) ? element.v : this.v,\n this.v,\n );\n const interpolateT0 = d3.interpolate(\n (element.t0 !== undefined) ? element.t0 : this.t0,\n this.t0,\n );\n return (time) => {\n element.a = interpolateA(time);\n element.z = interpolateZ(time);\n element.v = interpolateV(time);\n element.t0 = interpolateT0(time);\n const path = this.alignPath(datum.seed, element.a, element.z, element.v, element.t0);\n return evidenceLine(path);\n };\n });\n // MERGE - Active Animate Paths\n const pathMergeNewActive = pathMerge.filter((datum) => {\n return (datum.animate && !this.paused);\n });\n if (!pathMergeNewActive.empty()) {\n const easeTime = pathMergeNewActive.attr('data-new-trial-ease-time');\n const scaleIn = (time) => {\n return d3.scaleLinear().domain([0, 1]).range([easeTime, 1])(time);\n };\n const scaleOutGenerator = (easeFunction) => {\n return (time) => {\n return d3.scaleLinear()\n .domain([easeFunction(easeTime), 1]).range([0, 1])(easeFunction(time));\n };\n };\n pathMergeNewActive\n .classed('animate', true)\n .select('.curve')\n .attr('stroke-dasharray', 1);\n pathMergeNewActive\n .transition('new')\n .duration((datum) => {\n // scale the RT for viewing pleasure\n return Math.floor((datum.rt * 1.5) * (1 - easeTime));\n })\n .ease(scaleIn)\n .attr('data-new-trial-ease-time', 1)\n .select('.curve')\n .attrTween('stroke-dashoffset', (datum, index, elements) => {\n const element = elements[index];\n const interpolator = d3.interpolate(\n element.getAttribute('stroke-dashoffset'),\n 0,\n );\n return (time) => { return interpolator(scaleOutGenerator(d3.easeLinear)(time)); };\n })\n .on('end', (datum, index, elements) => {\n const element = elements[index];\n d3.select(element.parentElement)\n .classed('animate', false)\n .attr('data-new-trial-ease-time', null);\n datum.animate = false;\n this.animate = false;\n this.alignState();\n this.requestUpdate();\n this.dispatchEvent(new CustomEvent('accumulable-response', {\n detail: {\n outcome: datum.outcome,\n data: this.data,\n model: this.model,\n },\n bubbles: true,\n }));\n });\n }\n // MERGE - Paused Animate Paths\n const pathMergeNewPaused = pathMerge.filter((datum) => {\n return (datum.animate && this.paused);\n });\n if (!pathMergeNewPaused.empty()) {\n const easeTime = pathMergeNewPaused.attr('data-new-trial-ease-time');\n pathMergeNewPaused\n .classed('animate', true)\n .select('.curve')\n .attr('stroke-dasharray', 1)\n .attr('stroke-dashoffset', () => {\n const interpolator = d3.interpolate(1, 0);\n return interpolator(d3.easeLinear(easeTime));\n });\n }\n // MERGE - Non-Animate Paths\n pathMerge.filter((datum) => { return (!datum.animate); })\n .attr('data-new-trial-ease-time', null);\n // EXIT\n pathUpdate.exit().remove();\n\n // Distributions\n // ENTER\n const distEnter = densityContentEnter.append('g')\n .attr('class', (datum) => { return `dist ${datum.outcome}`; });\n distEnter.append('path')\n .classed('curve', true);\n // MERGE\n densityContentMerge.select('.dist').select('.curve')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attrTween('d', (datum, index, elements) => {\n const element = elements[index];\n const interpolateA = d3.interpolate(\n (element.a !== undefined) ? element.a : this.a,\n this.a,\n );\n const interpolateZ = d3.interpolate(\n (element.z !== undefined) ? element.z : this.z,\n this.z,\n );\n const interpolateV = d3.interpolate(\n (element.v !== undefined) ? element.v : this.v,\n this.v,\n );\n const interpolateT0 = d3.interpolate(\n (element.t0 !== undefined) ? element.t0 : this.t0,\n this.t0,\n );\n return (time) => {\n element.a = interpolateA(time);\n element.z = interpolateZ(time);\n element.v = interpolateV(time);\n element.t0 = interpolateT0(time);\n const path = datum.alignDistribution(element.a, element.z, element.v, element.t0);\n return datum.densityLine(path);\n };\n });\n\n // RTs\n // DATA-JOIN\n const rtUpdate = evidenceContentMerge.selectAll('.rt')\n .data(this.data.trials);\n // ENTER\n const rtEnter = rtUpdate.enter().append('g');\n rtEnter.append('line')\n .classed('mark', true)\n .attr('x1', (datum) => {\n return timeScale(datum.rt);\n })\n .attr('x2', (datum) => {\n return timeScale(datum.rt);\n })\n .attr('y1', (datum) => {\n return (datum.outcome === 'correct')\n ? evidenceScale(1) - 0.125 * this.rem\n : evidenceScale(-1) + 0.125 * this.rem;\n })\n .attr('y2', (datum) => {\n return (datum.outcome === 'correct')\n ? evidenceScale(1) - 0.675 * this.rem\n : evidenceScale(-1) + 0.675 * this.rem;\n });\n // MERGE\n const rtMerge = rtEnter.merge(rtUpdate)\n .attr('class', (datum) => { return `rt ${datum.outcome}`; });\n rtMerge.filter((datum) => { return (!datum.animate); }).select('.mark')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('stroke', (datum) => {\n return this.getComputedStyleValue(`---color-${datum.outcome}`);\n })\n .attr('x1', (datum) => {\n return timeScale(datum.rt);\n })\n .attr('x2', (datum) => {\n return timeScale(datum.rt);\n })\n .attr('y1', (datum) => {\n return (datum.outcome === 'correct')\n ? evidenceScale(1) - 0.125 * this.rem\n : evidenceScale(-1) + 0.125 * this.rem;\n })\n .attr('y2', (datum) => {\n return (datum.outcome === 'correct')\n ? evidenceScale(1) - 0.675 * this.rem\n : evidenceScale(-1) + 0.675 * this.rem;\n });\n // EXIT\n rtUpdate.exit().remove();\n\n // Model Accuracy\n // DATA-JOIN\n const accuracyUpdate = accuracyContentMerge.selectAll('.accuracy.model')\n .data(\n [this.model.accuracy, 1 - this.model.accuracy],\n );\n // ENTER\n const accuracyEnter = accuracyUpdate.enter().append('g')\n .attr('class', (_, index) => {\n return `accuracy model ${(index === 0) ? 'correct' : 'error'}`;\n });\n accuracyEnter.append('rect')\n .classed('bar', true)\n .attr('x', 0);\n // MERGE\n accuracyEnter.merge(accuracyUpdate).select('rect')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n // ## Tween based on params?\n .attr('y', (datum, index) => {\n return (index === 0) ? accuracyScale(0) : accuracyScale(1 - datum);\n })\n .attr('width', accuracyWidth)\n .attr('height', (datum) => {\n return accuracyScale(datum);\n });\n // EXIT\n accuracyUpdate.exit().remove();\n\n // Data Accuracy\n // DATA-JOIN\n const dataAccuracyUpdate = accuracyContentMerge.selectAll('.accuracy.data')\n .data(\n !Number.isNaN(this.data.accuracy) ? [this.data.accuracy] : [],\n );\n // ENTER\n const dataAccuracyEnter = dataAccuracyUpdate.enter().append('g')\n .classed('accuracy data', true);\n dataAccuracyEnter.append('line')\n .classed('mark', true);\n // MERGE\n const dataAccuracyMerge = dataAccuracyEnter.merge(dataAccuracyUpdate)\n .attr('class', (datum) => {\n return `accuracy data ${(datum < this.model.accuracy.correct) ? 'correct' : 'error'}`;\n });\n dataAccuracyMerge.select('.mark')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n // ## Tween based on params?\n .attr('x1', 0 + 0.25 * this.rem)\n .attr('x2', accuracyWidth - 0.25 * this.rem)\n .attr('y1', (datum) => {\n return accuracyScale(datum) - 1;\n })\n .attr('y2', (datum) => {\n return accuracyScale(datum) - 1;\n });\n // EXIT\n dataAccuracyUpdate.exit().remove();\n\n //\n // OVERLAYERS\n //\n\n // Boundaries\n // DATA-JOIN\n const boundaryUpdate = evidenceOverlayerMerge.selectAll('.boundary')\n .data([\n {bound: 'upper', value: this.bounds.upper},\n {bound: 'lower', value: this.bounds.lower},\n ]);\n // ENTER\n const boundaryEnter = boundaryUpdate.enter().append('g')\n .attr('class', (_, index) => {\n return `boundary ${(index === 0) ? 'correct' : 'error'}`;\n });\n boundaryEnter.append('line')\n .classed('line', true);\n boundaryEnter.append('line')\n .classed('line touch', true);\n // MERGE\n const boundaryMerge = boundaryEnter.merge(boundaryUpdate)\n .attr('tabindex', this.interactive ? 0 : null)\n .classed('interactive', this.interactive)\n .on('keydown', this.interactive\n ? (event, datum) => {\n if (['ArrowUp', 'ArrowDown'].includes(event.key)) {\n let {a} = this;\n switch (event.key) {\n case 'ArrowUp':\n a += (datum.bound === 'upper')\n ? event.shiftKey\n ? DDMMath.a.STEP\n : DDMMath.a.JUMP\n : event.shiftKey\n ? -DDMMath.a.STEP\n : -DDMMath.a.JUMP;\n break;\n case 'ArrowDown':\n a += (datum.bound === 'upper')\n ? event.shiftKey\n ? -DDMMath.a.STEP\n : -DDMMath.a.JUMP\n : event.shiftKey\n ? DDMMath.a.STEP\n : DDMMath.a.JUMP;\n break;\n default:\n }\n // Clamp a\n a = (a < DDMMath.a.MIN)\n ? DDMMath.a.MIN\n : (a > DDMMath.a.MAX)\n ? DDMMath.a.MAX\n : a;\n this.a = a;\n this.alignState();\n this.dispatchEvent(new CustomEvent('ddm-model-a', {\n detail: {\n a: this.a,\n },\n bubbles: true,\n }));\n event.preventDefault();\n }\n }\n : null);\n if (\n this.firstUpdate\n || changedProperties.has('interactive')\n ) {\n if (this.interactive) {\n boundaryMerge.call(dragBoundary);\n } else {\n boundaryMerge.on('.drag', null);\n }\n }\n boundaryMerge.select('.line')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', timeScale(this.scale.time.min))\n .attr('x2', timeScale(this.scale.time.max))\n .attr('y1', (datum) => {\n return evidenceScale(datum.value);\n })\n .attr('y2', (datum) => {\n return evidenceScale(datum.value);\n });\n boundaryMerge.select('.line.touch')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', timeScale(this.scale.time.min))\n .attr('x2', timeScale(this.scale.time.max))\n .attr('y1', (datum) => {\n return evidenceScale(datum.value);\n })\n .attr('y2', (datum) => {\n return evidenceScale(datum.value);\n });\n // EXIT\n boundaryUpdate.exit().remove();\n\n // Drift Rate\n // DATA-JOIN\n const driftUpdate = evidenceOverlayerMerge.selectAll('.drift')\n .data([\n {v: this.v, t0: this.t0, startingPoint: this.startingPoint},\n ]);\n // ENTER\n const driftEnter = driftUpdate.enter().append('g')\n .classed('drift', true);\n driftEnter.append('line')\n .classed('line', true);\n driftEnter.append('line')\n .classed('line touch', true);\n driftEnter.append('path')\n .classed('arrow', true);\n driftEnter.append('path')\n .classed('arrow touch', true);\n // MERGE\n const driftMerge = driftEnter.merge(driftUpdate)\n .attr('tabindex', this.interactive ? 0 : null)\n .classed('interactive', this.interactive)\n .on('keydown', this.interactive\n ? (event) => {\n if (['ArrowUp', 'ArrowDown'].includes(event.key)) {\n let {v} = this;\n switch (event.key) {\n case 'ArrowUp':\n v += event.shiftKey\n ? DDMMath.v.STEP\n : DDMMath.v.JUMP;\n break;\n case 'ArrowDown':\n v -= event.shiftKey\n ? DDMMath.v.STEP\n : DDMMath.v.JUMP;\n break;\n default:\n }\n // Clamp z\n v = (v < DDMMath.v.MIN)\n ? DDMMath.v.MIN\n : (v > DDMMath.v.MAX)\n ? DDMMath.v.MAX\n : v;\n this.v = v;\n this.alignState();\n this.dispatchEvent(new CustomEvent('ddm-model-v', {\n detail: {\n v: this.v,\n },\n bubbles: true,\n }));\n event.preventDefault();\n }\n }\n : null);\n if (\n this.firstUpdate\n || changedProperties.has('interactive')\n ) {\n if (this.interactive) {\n driftMerge.call(dragDrift);\n } else {\n driftMerge.on('.drag', null);\n }\n }\n const scaleRatio = (evidenceScale(0) - evidenceScale(1)) / (timeScale(1) - timeScale(0));\n driftMerge\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('transform', (datum) => {\n return `translate(${timeScale(datum.t0)}, ${evidenceScale(datum.startingPoint)})\n rotate(${-Math.atan((datum.v / 1000) * scaleRatio) * (180 / Math.PI)})`;\n });\n driftMerge.select('.line')\n .attr('x2', timeScale(200));\n driftMerge.select('.line.touch')\n .attr('x2', timeScale(200));\n driftMerge.select('.arrow')\n .attr('d', `\n M ${timeScale(200) - this.rem * 0.5},${-this.rem * 0.5}\n l ${this.rem * 0.5},${this.rem * 0.5}\n l ${-this.rem * 0.5},${this.rem * 0.5}\n `);\n driftMerge.select('.arrow.touch')\n .attr('d', `\n M ${timeScale(200) - this.rem * 0.5},${-this.rem * 0.5}\n l ${this.rem * 0.5},${this.rem * 0.5}\n l ${-this.rem * 0.5},${this.rem * 0.5}\n `);\n // EXIT\n driftUpdate.exit().remove();\n\n // Nondecision Time/Starting Point\n // DATA-JOIN\n const t0zUpdate = evidenceOverlayerMerge.selectAll('.t0z')\n .data([\n {t0: this.t0, startingPoint: this.startingPoint},\n ]);\n // ENTER\n const t0zEnter = t0zUpdate.enter().append('g')\n .classed('t0z', true);\n t0zEnter.append('line')\n .classed('line', true);\n t0zEnter.append('line')\n .classed('line touch', true);\n t0zEnter.append('circle')\n .classed('point touch', true);\n // MERGE\n const t0zMerge = t0zEnter.merge(t0zUpdate)\n .attr('tabindex', this.interactive ? 0 : null)\n .classed('interactive', this.interactive)\n .on('keydown', this.interactive\n ? (event) => {\n if (['ArrowUp', 'ArrowDown'].includes(event.key)) {\n let {z} = this;\n switch (event.key) {\n case 'ArrowUp':\n z += event.shiftKey\n ? DDMMath.z.STEP\n : DDMMath.z.JUMP;\n break;\n case 'ArrowDown':\n z -= event.shiftKey\n ? DDMMath.z.STEP\n : DDMMath.z.JUMP;\n break;\n default:\n }\n // Clamp z\n z = (z < DDMMath.z.MIN)\n ? DDMMath.z.MIN\n : (z > DDMMath.z.MAX)\n ? DDMMath.z.MAX\n : z;\n this.z = z;\n this.alignState();\n this.dispatchEvent(new CustomEvent('ddm-model-z', {\n detail: {\n z: this.z,\n },\n bubbles: true,\n }));\n event.preventDefault();\n }\n if (['ArrowLeft', 'ArrowRight'].includes(event.key)) {\n let t0 = this.t0; /* eslint-disable-line prefer-destructuring */\n switch (event.key) {\n case 'ArrowRight':\n t0 += event.shiftKey\n ? DDMMath.t0.STEP\n : DDMMath.t0.JUMP;\n break;\n case 'ArrowLeft':\n t0 -= event.shiftKey\n ? DDMMath.t0.STEP\n : DDMMath.t0.JUMP;\n break;\n default:\n }\n // Clamp t0\n t0 = (t0 < DDMMath.t0.MIN)\n ? DDMMath.t0.MIN\n : (t0 > DDMMath.t0.MAX)\n ? DDMMath.t0.MAX\n : t0;\n this.t0 = t0;\n this.alignState();\n this.dispatchEvent(new CustomEvent('ddm-model-t0', {\n detail: {\n t0: this.t0,\n },\n bubbles: true,\n }));\n event.preventDefault();\n }\n }\n : null);\n if (\n this.firstUpdate\n || changedProperties.has('interactive')\n ) {\n if (this.interactive) {\n t0zMerge.call(dragT0z);\n } else {\n t0zMerge.on('.drag', null);\n }\n }\n t0zMerge.select('.line')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', timeScale(0))\n .attr('x2', (datum) => { return timeScale(datum.t0); })\n .attr('y1', (datum) => { return evidenceScale(datum.startingPoint); })\n .attr('y2', (datum) => { return evidenceScale(datum.startingPoint); });\n t0zMerge.select('.line.touch')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', timeScale(0))\n .attr('x2', (datum) => { return timeScale(datum.t0); })\n .attr('y1', (datum) => { return evidenceScale(datum.startingPoint); })\n .attr('y2', (datum) => { return evidenceScale(datum.startingPoint); });\n t0zMerge.select('.point')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('cx', (datum) => { return timeScale(datum.t0); })\n .attr('cy', (datum) => { return evidenceScale(datum.startingPoint); });\n // EXIT\n t0zUpdate.exit().remove();\n\n // a Measure\n // DATA-JOIN\n const aUpdate = evidenceOverlayerMerge.selectAll('.measure.a')\n .data(this.measures ? [this.a] : []);\n // ENTER\n const aEnter = aUpdate.enter().append('g')\n .classed('measure a', true);\n aEnter.append('line')\n .classed('line', true)\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .attr('marker-start', 'url(#measure-arrow-a)')\n .attr('marker-end', 'url(#measure-arrow-a)');\n const aLabel = aEnter.append('text')\n .classed('label', true);\n aLabel.append('tspan')\n .classed('a math-var', true)\n .text('a');\n aLabel.append('tspan')\n .classed('equals', true)\n .text(' = ');\n aLabel.append('tspan')\n .classed('value', true);\n // MERGE\n const aMerge = aEnter.merge(aUpdate);\n aMerge.select('.line')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', timeScale(this.scale.time.max) - this.rem * 0.75)\n .attr('y1', evidenceScale(this.bounds.upper) + 2)\n .attr('x2', timeScale(this.scale.time.max) - this.rem * 0.75)\n .attr('y2', evidenceScale(this.bounds.lower) - 2);\n const aLabelMerge = aMerge.select('.label')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x', timeScale(this.scale.time.max))\n .attr('y', evidenceScale(this.bounds.upper) - this.rem * 0.25);\n aLabelMerge.select('.value')\n .text(d3.format('.2f')(this.a));\n // EXIT\n aUpdate.exit().remove();\n\n // z Measure\n // DATA-JOIN\n const zUpdate = evidenceOverlayerMerge.selectAll('.measure.z')\n .data(this.measures ? [this.z] : []);\n // ENTER\n const zEnter = zUpdate.enter().append('g')\n .classed('measure z', true);\n zEnter.append('line')\n .classed('line', true)\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .attr('marker-start', 'url(#measure-arrow-z)')\n .attr('marker-end', 'url(#measure-arrow-z)');\n const zLabel = zEnter.append('text')\n .classed('label', true);\n zLabel.append('tspan')\n .classed('z math-var', true)\n .text('z');\n zLabel.append('tspan')\n .classed('equals', true)\n .text(' = ');\n zLabel.append('tspan')\n .classed('value', true);\n // MERGE\n const zMerge = zEnter.merge(zUpdate);\n zMerge.select('.line')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', timeScale(this.scale.time.min) + this.rem * 0.75)\n .attr('y1', evidenceScale(this.startingPoint) + 2)\n .attr('x2', timeScale(this.scale.time.min) + this.rem * 0.75)\n .attr('y2', evidenceScale(this.bounds.lower) - 2);\n const zLabelMerge = zMerge.select('.label')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x', timeScale(this.scale.time.min))\n .attr('y', evidenceScale(this.bounds.lower) + this.rem * 0.125);\n zLabelMerge.select('.value')\n .text(d3.format('.0%')(this.z));\n // EXIT\n zUpdate.exit().remove();\n\n // v Measure\n // DATA-JOIN\n const vUpdate = evidenceOverlayerMerge.selectAll('.measure.v')\n .data(this.measures ? [this.v] : []);\n // ENTER\n const vEnter = vUpdate.enter().append('g')\n .classed('measure v', true);\n vEnter.append('path')\n .classed('line', true)\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .attr('marker-start', 'url(#measure-arrow-cap-v)')\n .attr('marker-end', 'url(#measure-arrow-cap-v)');\n const vLabel = vEnter.append('text')\n .classed('label', true);\n vLabel.append('tspan')\n .classed('v math-var', true)\n .text('v');\n vLabel.append('tspan')\n .classed('equals', true)\n .text(' = ');\n vLabel.append('tspan')\n .classed('value', true);\n // MERGE\n const driftHypotenuse = timeScale(200) - timeScale(0) + this.rem * 0.75;\n const driftCorrection = 2 / driftHypotenuse;\n const driftAngle = Math.atan((this.v / 1000) * scaleRatio) - driftCorrection;\n const driftX = Math.cos(driftAngle) * driftHypotenuse;\n const driftY = Math.sin(driftAngle) * driftHypotenuse;\n const vMerge = vEnter.merge(vUpdate);\n vMerge.select('.line')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('d', `\n M ${timeScale(this.t0 + 200) + this.rem * 0.75}, ${evidenceScale(this.startingPoint) - 2}\n A ${timeScale(200) - timeScale(0)} ${timeScale(200) - timeScale(0)} 0 0 0 ${timeScale(this.t0) + driftX} ${evidenceScale(this.startingPoint) - driftY}\n `);\n const vLabelMerge = vMerge.select('.label')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x', timeScale(this.t0 + 200) + this.rem * 0.5)\n .attr('y', evidenceScale(this.bounds.upper) - this.rem * 0.25);\n vLabelMerge.select('.value')\n .text(d3.format('.2f')(this.v));\n // EXIT\n vUpdate.exit().remove();\n\n // t0 Measure\n // DATA-JOIN\n const t0Update = evidenceOverlayerMerge.selectAll('.measure.t0')\n .data(this.measures ? [this.t0] : []);\n // ENTER\n const t0Enter = t0Update.enter().append('g')\n .classed('measure t0', true);\n t0Enter.append('line')\n .classed('line', true)\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .attr('marker-start', 'url(#measure-arrow-t0)')\n .attr('marker-end', 'url(#measure-arrow-cap-t0)');\n const t0Label = t0Enter.append('text')\n .classed('label', true);\n t0Label.append('tspan')\n .classed('t0 math-var', true)\n .text('t₀');\n t0Label.append('tspan')\n .classed('equals', true)\n .text(' = ');\n t0Label.append('tspan')\n .classed('value', true);\n // MERGE\n const t0Merge = t0Enter.merge(t0Update);\n t0Merge.select('.line')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', timeScale(0) + 2)\n .attr('y1', evidenceScale(this.startingPoint) - this.rem * 0.75)\n .attr('x2', timeScale(this.t0) - 2)\n .attr('y2', evidenceScale(this.startingPoint) - this.rem * 0.75);\n const t0LabelMerge = t0Merge.select('.label')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x', timeScale(this.t0) + this.rem * 0.25)\n .attr('y', evidenceScale(this.bounds.upper) - this.rem * 0.25);\n t0LabelMerge.select('.value')\n .text(d3.format('d')(this.t0));\n // EXIT\n t0Update.exit().remove();\n\n // Means\n // DATA-JOIN\n const meanUpdate = densityOverlayerMerge.selectAll('.model.mean')\n .data((datum) => {\n return this.means ? [datum] : [];\n });\n // ENTER\n const meanEnter = meanUpdate.enter().append('g')\n .attr('class', (datum) => { return `model mean ${datum.outcome}`; });\n meanEnter.append('line')\n .classed('indicator', true);\n // MERGE\n const meanMerge = meanEnter.merge(meanUpdate);\n meanMerge.select('.indicator')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', (datum) => { return timeScale(datum.model.meanRT); })\n .attr('x2', (datum) => { return timeScale(datum.model.meanRT); })\n .attr('y1', (datum) => { return datum.densityScale(this.scale.density.min); })\n .attr('y2', (datum) => { return datum.densityScale(this.scale.density.max); });\n // EXIT\n meanUpdate.exit().remove();\n\n // Data Means\n // DATA-JOIN\n const dataMeanUpdate = densityOverlayerMerge.selectAll('.data.mean')\n .data((datum) => {\n return (this.means && !Number.isNaN(datum.data.meanRT)) ? [datum] : [];\n });\n // ENTER\n const dataMeanEnter = dataMeanUpdate.enter().append('g')\n .attr('class', (datum) => { return `data mean ${datum.outcome}`; });\n dataMeanEnter.append('line')\n .classed('indicator', true)\n .attr('y1', (datum) => {\n return datum.densityScale(0) + ((datum.outcome === 'correct') ? 0.125 : -0.125) * this.rem;\n })\n .attr('y2', (datum) => {\n return datum.densityScale(0) + ((datum.outcome === 'correct') ? 0.675 : -0.675) * this.rem;\n });\n // MERGE\n const dataMeanMerge = dataMeanEnter.merge(dataMeanUpdate);\n dataMeanMerge.select('.indicator')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', (datum) => { return timeScale(datum.data.meanRT); })\n .attr('x2', (datum) => { return timeScale(datum.data.meanRT); })\n .attr('y1', (datum) => {\n return datum.densityScale(0) + ((datum.outcome === 'correct') ? 0.125 : -0.125) * this.rem;\n })\n .attr('y2', (datum) => {\n return datum.densityScale(0) + ((datum.outcome === 'correct') ? 0.675 : -0.675) * this.rem;\n });\n // EXIT\n dataMeanUpdate.exit().select('.indicator')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', 0)\n .attr('x2', 0)\n .on('end', (datum, index, elements) => {\n d3.select(elements[index].parentElement).remove();\n });\n\n // Standard Deviations\n // DATA-JOIN\n const sdUpdate = densityOverlayerMerge.selectAll('.model.sd')\n .data((datum) => {\n return this.sds ? [datum] : [];\n });\n // ENTER\n const sdEnter = sdUpdate.enter().append('g')\n .attr('class', (datum) => { return `model sd ${datum.outcome}`; });\n sdEnter.append('line')\n .classed('indicator', true)\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .attr('marker-start', (datum) => { return `url(#model-sd-cap-${datum.outcome})`; })\n .attr('marker-end', (datum) => { return `url(#model-sd-cap-${datum.outcome})`; });\n // MERGE\n const sdMerge = sdEnter.merge(sdUpdate);\n sdMerge.select('.indicator')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', (datum) => { return timeScale(datum.model.meanRT - (datum.model.sdRT / 2)); })\n .attr('x2', (datum) => { return timeScale(datum.model.meanRT + (datum.model.sdRT / 2)); })\n .attr('y1', (datum) => { return datum.densityScale(5); })\n .attr('y2', (datum) => { return datum.densityScale(5); });\n // EXIT\n sdUpdate.exit().remove();\n\n // Data Standard Deviation\n // DATA-JOIN\n const dataSDUpdate = densityOverlayerMerge.selectAll('.data.sd')\n .data((datum) => {\n return (this.sds && !Number.isNaN(datum.data.meanRT) && !Number.isNaN(datum.data.sdRT))\n ? [datum]\n : [];\n });\n // ENTER\n const dataSDEnter = dataSDUpdate.enter().append('g')\n .attr('class', (datum) => { return `data sd ${datum.outcome}`; });\n dataSDEnter.append('line')\n .classed('indicator', true)\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .attr('marker-start', (datum) => { return `url(#data-sd-cap-${datum.outcome})`; })\n .attr('marker-end', (datum) => { return `url(#data-sd-cap-${datum.outcome})`; })\n .attr('y1', (datum) => {\n return datum.densityScale(0) + ((datum.outcome === 'correct') ? 0.375 : -0.375) * this.rem;\n })\n .attr('y2', (datum) => {\n return datum.densityScale(0) + ((datum.outcome === 'correct') ? 0.375 : -0.375) * this.rem;\n });\n // MERGE\n const dataSDMerge = dataSDEnter.merge(dataSDUpdate);\n dataSDMerge.select('.indicator')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', (datum) => {\n return timeScale(datum.data.meanRT - (datum.data.sdRT / 2));\n })\n .attr('x2', (datum) => {\n return timeScale(datum.data.meanRT + (datum.data.sdRT / 2));\n })\n .attr('y1', (datum) => {\n return datum.densityScale(0) + ((datum.outcome === 'correct') ? 0.375 : -0.375) * this.rem;\n })\n .attr('y2', (datum) => {\n return datum.densityScale(0) + ((datum.outcome === 'correct') ? 0.375 : -0.375) * this.rem;\n });\n // EXIT\n dataSDUpdate.exit().select('.indicator')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', 0)\n .attr('x2', 0)\n .on('end', (datum, index, elements) => {\n d3.select(elements[index].parentElement).remove();\n });\n\n this.firstUpdate = false;\n }\n}\n\ncustomElements.define('ddm-model', DDMModel);\n","\nimport {html, css} from 'lit';\nimport * as d3 from 'd3';\n\nimport {DecidablesMixinResizeable} from '@decidables/decidables-elements';\n\nimport AccumulableElement from '../accumulable-element';\n\n/*\n RDK2AFCTask element\n <rdk-2afc-task>\n\n Attributes:\n Dots; Coherence;\n # Direction, Speed, Lifetime\n*/\nexport default class RDK2AFCTask extends DecidablesMixinResizeable(AccumulableElement) {\n static get properties() {\n return {\n coherence: {\n attribute: 'coherence',\n type: Number,\n reflect: true,\n },\n count: {\n attribute: 'count',\n type: Number,\n reflect: true,\n },\n probability: {\n attribute: 'probability',\n type: Number,\n reflect: true,\n },\n duration: {\n attribute: 'duration',\n type: Number,\n reflect: true,\n },\n wait: {\n attribute: 'wait',\n type: Number,\n reflect: true,\n },\n iti: {\n attribute: 'iti',\n type: Number,\n reflect: true,\n },\n trials: {\n attribute: 'trials',\n type: Number,\n reflect: true,\n },\n running: {\n attribute: 'running',\n type: Boolean,\n reflect: true,\n },\n\n lifetime: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n speed: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.coherence = 0.5; // Proportion of dots moving coherently\n this.count = 100; // Number of dots\n this.probability = 0.5; // Probability of left (as opposed to right)\n this.duration = 2000; // Duration of stimulus in milliseconds\n this.wait = 2000; // Duration of wait period for response in milliseconds\n this.iti = 2000; // Duration of inter-trial interval in milliseconds\n this.trials = 5; // Number of trials per block\n this.running = false; // Currently executing block of trials\n\n // Properties\n this.lifetime = 400; // Lifetime of each dot in milliseconds\n this.speed = 50; // Rate of dot movement in pixels per second\n\n // Private\n this.firstUpdate = true;\n this.COHERENT = 0; // \"Constant\" for index to coherent dots\n this.RANDOM = 1; // \"Constant\" for index to random dots\n this.dots = [[], []]; // Array of array of dots\n this.trial = 0; // Count of current trial\n\n this.states = ['resetted', 'iti', 'stimulus', 'wait', 'ended']; // Possible states of task\n this.state = 'resetted'; // Current state of task\n\n this.baseTime = 0; // Real time, in milliseconds, that the current block started\n this.pauseTime = 0; // Real time, in milliseconds, that block was paused at\n this.startTime = 0; // Virtual time, in milliseconds, that current stage of trial started\n this.lastTime = 0; // Virtual time, in milliseconds, of the most recent frame\n\n this.LEFT = 180; // \"Constant\" for left stimulus direction\n this.RIGHT = 0; // \"Constant\" for right stimulus direction\n this.currentDirection = undefined; // Direction in degrees for current trial\n\n this.signals = ['left', 'right']; // Possible trial types\n this.signal = undefined; // Current trial type\n\n this.runner = undefined; // D3 Interval for frame timing\n this.xScale = undefined; // D3 Scale for x-axis\n this.yScale = undefined; // D3 Scale for y-axis\n }\n\n static get styles() {\n return [\n super.styles,\n css`\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;\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 ];\n }\n\n render() { /* eslint-disable-line class-methods-use-this */\n return html``;\n }\n\n update(changedProperties) {\n super.update(changedProperties);\n\n // Bail out if we can't get the width/height/rem\n if (Number.isNaN(this.width) || Number.isNaN(this.height) || Number.isNaN(this.rem)) {\n return;\n }\n\n const elementWidth = this.width;\n const elementHeight = this.height;\n const elementSize = Math.min(elementWidth, elementHeight);\n\n const margin = {\n top: 0.25 * this.rem,\n bottom: 0.25 * this.rem,\n left: 0.25 * this.rem,\n right: 0.25 * this.rem,\n };\n const height = elementSize - (margin.top + margin.bottom);\n const width = elementSize - (margin.left + margin.right);\n\n // X Scale\n this.xScale = d3.scaleLinear()\n .domain([-1, 1])\n .range([0, width]);\n\n // Y Scale\n this.yScale = d3.scaleLinear()\n .domain([1, -1])\n .range([0, height]);\n\n // Svg\n // DATA-JOIN\n const svgUpdate = d3.select(this.renderRoot).selectAll('.main')\n .data([{\n width: this.width,\n height: this.height,\n rem: this.rem,\n }]);\n // ENTER\n const svgEnter = svgUpdate.enter().append('svg')\n .classed('main', true);\n // MERGE\n const svgMerge = svgEnter.merge(svgUpdate)\n .attr('viewBox', `0 0 ${elementSize} ${elementSize}`);\n\n // Clippath\n // ENTER\n svgEnter.append('clipPath')\n .attr('id', 'clip-rdk-task')\n .append('circle');\n // MERGE\n svgMerge.select('clipPath circle')\n .attr('cx', this.xScale(0))\n .attr('cy', this.yScale(0))\n .attr('r', this.xScale(1) - this.xScale(0));\n\n // Plot\n // ENTER\n const plotEnter = svgEnter.append('g')\n .classed('plot', true);\n // MERGE\n const plotMerge = svgMerge.select('.plot')\n .attr('transform', `translate(${margin.left}, ${margin.top})`);\n\n // Underlayer\n // ENTER\n const underlayerEnter = plotEnter.append('g')\n .classed('underlayer', true);\n // MERGE\n const underlayerMerge = plotMerge.select('.underlayer');\n\n // Background\n // ENTER\n underlayerEnter.append('circle')\n .classed('background', true);\n // MERGE\n underlayerMerge.select('.background')\n .attr('cx', this.xScale(0))\n .attr('cy', this.yScale(0))\n .attr('r', this.xScale(1) - this.xScale(0));\n\n // Content\n // ENTER\n plotEnter.append('g')\n .classed('content', true)\n .attr('clip-path', 'url(#clip-rdk-task)');\n // MERGE\n const contentMerge = plotMerge.select('.content');\n\n // Dot Groups\n // DATA-JOIN\n const dotsUpdate = contentMerge.selectAll('.dots')\n .data([[], []]);\n // ENTER\n dotsUpdate.enter().append('g')\n .classed('dots', true)\n .classed('coherent', (datum, index) => { return index === this.COHERENT; })\n .classed('random', (datum, index) => { return index === this.RANDOM; });\n\n // Overlayer\n // ENTER\n const overlayerEnter = plotEnter.append('g')\n .classed('overlayer', true);\n // MERGE\n const overlayerMerge = plotMerge.select('.overlayer');\n\n // Outline\n // ENTER\n overlayerEnter.append('circle')\n .classed('outline', true);\n // MERGE\n overlayerMerge.select('.outline')\n .attr('cx', this.xScale(0))\n .attr('cy', this.yScale(0))\n .attr('r', this.xScale(1) - this.yScale(0));\n\n // Start or stop trial block\n if (this.firstUpdate || changedProperties.has('running')) {\n if (this.running) {\n // (Re)Start\n if (this.pauseTime) {\n // Shift timeline forward as if paused time never happened\n this.baseTime += (d3.now() - this.pauseTime);\n this.pauseTime = 0;\n }\n this.runner = d3.interval(this.run.bind(this), 20); // FIXME??\n } else if (this.runner !== undefined) {\n // Pause\n this.runner.stop();\n this.pauseTime = d3.now();\n }\n }\n\n this.firstUpdate = false;\n }\n\n reset() {\n if (this.runner !== undefined) {\n this.runner.stop();\n }\n this.running = false;\n this.trial = 0;\n this.state = 'resetted';\n this.baseTime = 0;\n this.pauseTime = 0;\n this.startTime = 0;\n this.lastTime = 0;\n this.signal = undefined;\n this.currentDirection = undefined;\n\n const dotsUpdate = d3.select(this.renderRoot).select('.content').selectAll('.dots')\n .data([[], []]);\n const dotUpdate = dotsUpdate.selectAll('.dot')\n .data((datum) => { return datum; });\n dotUpdate.exit()\n .remove();\n\n const fixationUpdate = d3.select(this.renderRoot).select('.content').selectAll('.fixation')\n .data([]);\n fixationUpdate.exit()\n .remove();\n const queryUpdate = d3.select(this.renderRoot).select('.content').selectAll('.query')\n .data([]);\n queryUpdate.exit()\n .remove();\n }\n\n run(/* elapsed */) {\n const realTime = d3.now();\n const currentTime = (this.baseTime) ? (realTime - this.baseTime) : 0;\n const elapsedTime = (this.baseTime) ? (currentTime - this.startTime) : 0;\n const frameTime = (this.baseTime) ? (currentTime - this.lastTime) : 0;\n this.lastTime = currentTime;\n let newTrial = false;\n if (this.state === 'resetted') {\n // Start block with an ITI\n this.state = 'iti';\n this.baseTime = realTime;\n this.startTime = 0;\n this.dispatchEvent(new CustomEvent('rdk-block-start', {\n detail: {\n trials: this.trials,\n },\n bubbles: true,\n }));\n } else if ((this.state === 'iti') && (elapsedTime >= this.iti)) {\n // Start new trial with a stimulus\n newTrial = true;\n this.trial += 1;\n this.state = 'stimulus';\n this.startTime = currentTime;\n this.signal = (Math.random() < this.probability) ? 'left' : 'right';\n this.currentDirection = (this.signal === 'left')\n ? this.LEFT\n : this.RIGHT;\n this.dispatchEvent(new CustomEvent('rdk-trial-start', {\n detail: {\n trials: this.trials,\n duration: this.duration,\n wait: this.wait,\n iti: this.iti,\n trial: this.trial,\n signal: this.signal,\n },\n bubbles: true,\n }));\n } else if ((this.state === 'stimulus') && (elapsedTime >= this.duration)) {\n // Stimulus is over, now wait\n this.state = 'wait';\n this.startTime = currentTime;\n this.dispatchEvent(new CustomEvent('rdk-trial-middle', {\n detail: {\n trials: this.trials,\n duration: this.duration,\n wait: this.wait,\n iti: this.iti,\n trial: this.trial,\n signal: this.signal,\n },\n bubbles: true,\n }));\n } else if ((this.state === 'wait') && (elapsedTime >= this.wait)) {\n // Wait is over, end of trial\n this.dispatchEvent(new CustomEvent('rdk-trial-end', {\n detail: {\n trials: this.trials,\n duration: this.duration,\n wait: this.wait,\n iti: this.iti,\n trial: this.trial,\n signal: this.signal,\n },\n bubbles: true,\n }));\n if (this.trial >= this.trials) {\n // End of block\n this.runner.stop();\n this.running = false;\n this.state = 'ended';\n this.baseTime = 0;\n this.pauseTime = 0;\n this.startTime = 0;\n this.lastTime = 0;\n this.signal = undefined;\n this.currentDirection = undefined;\n this.dispatchEvent(new CustomEvent('rdk-block-end', {\n detail: {\n trials: this.trial,\n },\n bubbles: true,\n }));\n } else {\n // ITI\n this.state = 'iti';\n this.startTime = currentTime;\n }\n }\n\n // Dots\n if (this.state === 'stimulus') {\n this.dots[this.COHERENT].length = Math.round(this.count * this.coherence);\n this.dots[this.RANDOM].length = (this.count - this.dots[this.COHERENT].length);\n\n for (let t = 0; t < this.dots.length; t += 1) {\n for (let i = 0; i < this.dots[t].length; i += 1) {\n const newDot = (this.dots[t][i] === undefined);\n if (newDot) {\n this.dots[t][i] = {};\n }\n const dot = this.dots[t][i];\n if (newTrial || newDot) {\n dot.direction = (t === this.RANDOM) ? (Math.random() * 360) : this.currentDirection;\n dot.birth = currentTime - Math.floor(Math.random() * this.lifetime);\n const angle = Math.random() * 2 * Math.PI;\n const radius = Math.sqrt(Math.random());\n dot.x = this.xScale(radius * Math.cos(angle));\n dot.y = this.yScale(radius * Math.sin(angle));\n } else if (currentTime > (dot.birth + this.lifetime)) {\n // Dot has died, so rebirth\n dot.birth += this.lifetime;\n dot.direction = (t === this.RANDOM) ? (Math.random() * 360) : this.currentDirection;\n const angle = Math.random() * 2 * Math.PI;\n const radius = Math.sqrt(Math.random());\n dot.x = this.xScale(radius * Math.cos(angle));\n dot.y = this.yScale(radius * Math.sin(angle));\n } else {\n if (t === this.COHERENT) {\n dot.direction = this.currentDirection;\n }\n const directionR = dot.direction * (Math.PI / 180);\n dot.dx = this.speed * (frameTime / 1000) * Math.cos(directionR);\n dot.dy = this.speed * (frameTime / 1000) * Math.sin(directionR);\n // Update position\n dot.x += dot.dx;\n dot.y += dot.dy;\n // Calculate squared distance from center\n const distance2 = ((dot.x - this.xScale(0)) ** 2) + ((dot.y - this.yScale(0)) ** 2);\n const radius2 = (this.xScale(1) - this.xScale(0)) ** 2;\n if (distance2 > radius2) {\n // Dot has exited so move to other side\n dot.x = -(dot.x - this.xScale(0)) + this.xScale(0);\n dot.y = -(dot.y - this.yScale(0)) + this.yScale(0);\n }\n }\n }\n }\n }\n\n // Fixation\n // DATA-JOIN\n const fixationUpdate = d3.select(this.renderRoot).select('.content').selectAll('.fixation')\n .data((this.state === 'iti') ? [true] : []);\n // ENTER\n const fixationEnter = fixationUpdate.enter().append('g')\n .classed('fixation', true);\n fixationEnter.append('line')\n .attr('x1', this.xScale(-0.1))\n .attr('y1', this.xScale(0))\n .attr('x2', this.xScale(0.1))\n .attr('y2', this.xScale(0));\n fixationEnter.append('line')\n .attr('x1', this.xScale(0))\n .attr('y1', this.xScale(-0.1))\n .attr('x2', this.xScale(0))\n .attr('y2', this.xScale(0.1));\n // EXIT\n fixationUpdate.exit().remove();\n\n // Dots\n // DATA-JOIN\n const dotsUpdate = d3.select(this.renderRoot).select('.content').selectAll('.dots')\n .data((this.state === 'stimulus') ? this.dots : [[], []]);\n const dotUpdate = dotsUpdate.selectAll('.dot')\n .data((datum) => { return datum; });\n // ENTER\n const dotEnter = dotUpdate.enter().append('circle')\n .classed('dot', true);\n // MERGE\n dotEnter.merge(dotUpdate)\n .attr('cx', (datum) => { return datum.x; })\n .attr('cy', (datum) => { return datum.y; });\n // EXIT\n dotUpdate.exit().remove();\n\n // Query\n // DATA-JOIN\n const queryUpdate = d3.select(this.renderRoot).select('.content').selectAll('.query')\n .data((this.state === 'wait') ? [true] : []);\n // ENTER\n const queryEnter = queryUpdate.enter().append('g')\n .classed('query', true);\n queryEnter.append('text')\n .attr('x', this.xScale(0))\n .attr('y', this.xScale(0))\n .attr('text-anchor', 'middle')\n .attr('alignment-baseline', 'middle')\n .text('?');\n // EXIT\n queryUpdate.exit().remove();\n }\n}\n\ncustomElements.define('rdk-2afc-task', RDK2AFCTask);\n","\nimport {css} from 'lit';\n\nimport AccumulableElement from '../accumulable-element';\n\n/*\n DDMEquation Base Class - Not intended for instantiation!\n*/\nexport default class DDMEquation extends AccumulableElement {\n static get properties() {\n return {\n numeric: {\n attribute: 'numeric',\n type: Boolean,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n this.numeric = false;\n }\n\n static get styles() {\n return [\n super.styles,\n css`\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 white-space: nowrap;\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 var {\n border-radius: var(---border-radius);\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 .brace {\n font-size: 200%;\n }\n\n .addend {\n position: relative;\n display: inline-block;\n }\n\n .comparison {\n position: relative;\n display: inline-block;\n\n font-size: 125%;\n font-weight: 600;\n }\n\n .function {\n display: inline-block;\n\n border-radius: var(---border-radius);\n }\n\n :host([numeric]) .function {\n padding: 0.25rem;\n }\n\n .exp {\n display: inline-block;\n\n font-size: 0.75rem;\n }\n\n .subscript {\n display: inline-block;\n\n font-size: 66.667%;\n }\n\n .summation {\n display: flex;\n\n flex-direction: column;\n\n line-height: 0.8;\n }\n\n .sigma {\n display: inline-block;\n\n font-size: 200%;\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 line-height: 1.5;\n vertical-align: middle;\n\n border-radius: var(---border-radius);\n }\n\n .n {\n --decidables-spinner-input-width: 2rem;\n }\n\n .left {\n text-align: left;\n }\n\n .right {\n text-align: right;\n }\n\n .bottom {\n vertical-align: bottom;\n }\n\n .top {\n vertical-align: top;\n }\n\n /* Color scheme */\n .a {\n background: var(---color-a-light);\n }\n\n .z {\n background: var(---color-z-light);\n }\n\n .v {\n background: var(---color-v-light);\n }\n\n .t0 {\n background: var(---color-t0-light);\n }\n\n .s {\n background: var(---color-s-light);\n }\n `,\n ];\n }\n}\n","\nimport {html} from 'lit';\n\nimport '@decidables/decidables-elements/spinner';\nimport DDMMath from '@decidables/accumulable-math';\n\nimport DDMEquation from './ddm-equation';\n\n/*\n DDMEquationAZV2PC element\n <ddm-equation-azv2pc>\n\n Attributes:\n*/\nexport default class DDMEquationAZV2PC extends DDMEquation {\n static get properties() {\n return {\n a: {\n attribute: 'boundary-separation',\n type: Number,\n reflect: true,\n },\n z: {\n attribute: 'starting-point',\n type: Number,\n reflect: true,\n },\n v: {\n attribute: 'drift-rate',\n type: Number,\n reflect: true,\n },\n\n accuracy: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n };\n }\n\n constructor() {\n super();\n this.a = DDMMath.a.DEFAULT;\n this.z = DDMMath.z.DEFAULT;\n this.v = DDMMath.v.DEFAULT;\n this.alignState();\n }\n\n alignState() {\n this.accuracy = DDMMath.azv2pC(this.a, this.z, this.v);\n }\n\n sendEvent() {\n this.dispatchEvent(new CustomEvent('ddm-equation-azv2pc-change', {\n detail: {\n a: this.a,\n z: this.z,\n v: this.v,\n accuracy: this.accuracy,\n },\n bubbles: true,\n }));\n }\n\n aInput(event) {\n this.a = parseFloat(event.target.value);\n this.alignState();\n this.sendEvent();\n }\n\n zInput(event) {\n this.z = parseFloat(event.target.value);\n this.alignState();\n this.sendEvent();\n }\n\n vInput(event) {\n this.v = parseFloat(event.target.value);\n this.alignState();\n this.sendEvent();\n }\n\n willUpdate() {\n this.alignState();\n }\n\n render() {\n let a;\n let z;\n let v;\n let s;\n let accuracy;\n if (this.numeric) {\n a = html`<decidables-spinner class=\"a bottom\"\n ?disabled=${!this.interactive}\n min=${DDMMath.a.MIN}\n max=${DDMMath.a.MAX}\n step=${DDMMath.a.STEP}\n .value=${this.a}\n @input=${this.aInput.bind(this)}\n >\n <var class=\"math-var\">a</var>\n </decidables-spinner>`;\n z = html`<decidables-spinner class=\"z bottom\"\n ?disabled=${!this.interactive}\n min=${DDMMath.z.MIN}\n max=${DDMMath.z.MAX}\n step=${DDMMath.z.STEP}\n .value=${this.z}\n @input=${this.zInput.bind(this)}\n >\n <var class=\"math-var\">z</var>\n </decidables-spinner>`;\n v = html`<decidables-spinner class=\"v bottom\"\n ?disabled=${!this.interactive}\n min=${DDMMath.v.MIN}\n max=${DDMMath.v.MAX}\n step=${DDMMath.v.STEP}\n .value=${this.v}\n @input=${this.vInput.bind(this)}\n >\n <var class=\"math-var\">v</var>\n </decidables-spinner>`;\n s = html`<decidables-spinner class=\"s bottom\"\n disabled\n .value=${DDMMath.s.DEFAULT}\n >\n <var class=\"math-var\">s</var>\n </decidables-spinner>`;\n accuracy = html`<decidables-spinner class=\"accuracy bottom\"\n disabled\n .value=${+this.accuracy.toFixed(2)}\n >\n <var>Accuracy</var>\n </decidables-spinner>`;\n } else {\n a = html`<var class=\"math-var a\">a</var>`;\n z = html`<var class=\"math-var z\">z</var>`;\n v = html`<var class=\"math-var v\">v</var>`;\n s = html`<var class=\"math-var s\">s</var>`;\n accuracy = html`<var class=\"accuracy\">Accuracy</var>`;\n }\n const equation = html`\n <tr>\n <td rowspan=\"2\">\n ${accuracy}<span class=\"equals\">=</span>\n </td>\n <td class=\"underline\">\n <var class=\"math-greek e tight\">e</var><sup class=\"exp\"><span class=\"minus tight\">−</span><span class=\"paren tight\">(</span>2${v}${a} / ${s}<sup class=\"exp\">2</sup><span class=\"paren tight\">)</span></sup>\n <span class=\"minus\">−</span>\n <var class=\"math-greek e tight\">e</var><sup class=\"exp\"><span class=\"minus tight\">−</span><span class=\"paren tight\">(</span>2${v}${z} / ${s}<sup class=\"exp\">2</sup><span class=\"paren tight\">)</span></sup>\n </td>\n </tr>\n <tr>\n <td>\n <var class=\"math-greek e tight\">e</var><sup class=\"exp\"><span class=\"minus tight\">−</span><span class=\"paren tight\">(</span>2${v}${a} / ${s}<sup class=\"exp\">2</sup><span class=\"paren tight\">)</span></sup>\n <span class=\"minus\">−</span>\n 1\n </td>\n </tr>`;\n return html`\n <div class=\"holder\">\n <table class=\"equation\">\n <tbody>\n ${equation}\n </tbody>\n </table>\n </div>`;\n }\n}\n\ncustomElements.define('ddm-equation-azv2pc', DDMEquationAZV2PC);\n","\nimport {html} from 'lit';\n\nimport '@decidables/decidables-elements/spinner';\nimport DDMMath from '@decidables/accumulable-math';\n\nimport DDMEquation from './ddm-equation';\n\n/*\n DDMEquationAZVT02M element\n <ddm-equation-azvt02m>\n\n Attributes:\n*/\nexport default class DDMEquationAZVT02M extends DDMEquation {\n static get properties() {\n return {\n a: {\n attribute: 'boundary-separation',\n type: Number,\n reflect: true,\n },\n z: {\n attribute: 'starting-point',\n type: Number,\n reflect: true,\n },\n v: {\n attribute: 'drift-rate',\n type: Number,\n reflect: true,\n },\n t0: {\n attribute: 'nondecision-time',\n type: Number,\n reflect: true,\n },\n\n meanRT: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n };\n }\n\n constructor() {\n super();\n this.a = DDMMath.a.DEFAULT;\n this.z = DDMMath.z.DEFAULT;\n this.v = DDMMath.v.DEFAULT;\n this.t0 = DDMMath.t0.DEFAULT;\n this.alignState();\n }\n\n alignState() {\n this.meanRT = DDMMath.azvt02m(this.a, this.z, this.v, this.t0);\n }\n\n sendEvent() {\n this.dispatchEvent(new CustomEvent('ddm-equation-azvt02m-change', {\n detail: {\n a: this.a,\n z: this.z,\n v: this.v,\n t0: this.t0,\n meanRT: this.meanRT,\n },\n bubbles: true,\n }));\n }\n\n aInput(event) {\n this.a = parseFloat(event.target.value);\n this.alignState();\n this.sendEvent();\n }\n\n zInput(event) {\n this.z = parseFloat(event.target.value);\n this.alignState();\n this.sendEvent();\n }\n\n vInput(event) {\n this.v = parseFloat(event.target.value);\n this.alignState();\n this.sendEvent();\n }\n\n t0Input(event) {\n this.t0 = parseFloat(event.target.value);\n this.alignState();\n this.sendEvent();\n }\n\n willUpdate() {\n this.alignState();\n }\n\n render() {\n let a;\n let z;\n let v;\n let t0;\n let s;\n let meanRT;\n if (this.numeric) {\n a = html`<decidables-spinner class=\"a bottom\"\n ?disabled=${!this.interactive}\n min=${DDMMath.a.MIN}\n max=${DDMMath.a.MAX}\n step=${DDMMath.a.STEP}\n .value=${this.a}\n @input=${this.aInput.bind(this)}\n >\n <var class=\"math-var\">a</var>\n </decidables-spinner>`;\n z = html`<decidables-spinner class=\"z bottom\"\n ?disabled=${!this.interactive}\n min=${DDMMath.z.MIN}\n max=${DDMMath.z.MAX}\n step=${DDMMath.z.STEP}\n .value=${this.z}\n @input=${this.zInput.bind(this)}\n >\n <var class=\"math-var\">z</var>\n </decidables-spinner>`;\n v = html`<decidables-spinner class=\"v bottom\"\n ?disabled=${!this.interactive}\n min=${DDMMath.v.MIN}\n max=${DDMMath.v.MAX}\n step=${DDMMath.v.STEP}\n .value=${this.v}\n @input=${this.vInput.bind(this)}\n >\n <var class=\"math-var\">v</var>\n </decidables-spinner>`;\n t0 = html`<decidables-spinner class=\"t0 bottom\"\n ?disabled=${!this.interactive}\n min=${DDMMath.t0.MIN}\n max=${DDMMath.t0.MAX}\n step=${DDMMath.t0.STEP}\n .value=${this.t0}\n @input=${this.t0Input.bind(this)}\n >\n <var class=\"math-var\">t<sub>0</sub></var>\n </decidables-spinner>`;\n s = html`<decidables-spinner class=\"s bottom\"\n disabled\n .value=${DDMMath.s.DEFAULT}\n >\n <var class=\"math-var\">s</var>\n </decidables-spinner>`;\n meanRT = html`<decidables-spinner class=\"mean-rt bottom\"\n disabled\n .value=${+this.meanRT.toFixed(0)}\n >\n <var>Mean RT</var>\n </decidables-spinner>`;\n } else {\n a = html`<var class=\"math-var a\">a</var>`;\n z = html`<var class=\"math-var z\">z</var>`;\n v = html`<var class=\"math-var v\">v</var>`;\n t0 = html`<var class=\"math-var t0\">t<sub>0</sub></var>`;\n s = html`<var class=\"math-var s\">s</var>`;\n meanRT = html`<var class=\"mean-rt\">Mean RT</var>`;\n }\n const equation = html`\n <tr>\n <td rowspan=\"2\">\n ${meanRT}<span class=\"equals\">=</span>\n ${t0}\n <span class=\"minus\">−</span>\n </td>\n <td class=\"underline\">\n ${z}\n </td>\n <td rowspan=\"2\">\n <span class=\"plus\">+</span>\n </td>\n <td class=\"underline\">\n ${a}\n </td>\n <td rowspan=\"2\">&nbsp;</td>\n <td class=\"underline\">\n <var class=\"math-greek e tight\">e</var><sup class=\"exp\"><span class=\"minus tight\">−</span><span class=\"paren tight\">(</span>2${v}${z} / ${s}<sup class=\"exp\">2</sup><span class=\"paren tight\">)</span></sup>\n <span class=\"minus\">−</span>\n 1\n </td>\n </tr>\n <tr>\n <td>\n ${v}\n </td>\n <td>\n ${v}\n </td>\n <td>\n <var class=\"math-greek e tight\">e</var><sup class=\"exp\"><span class=\"minus tight\">−</span><span class=\"paren tight\">(</span>2${v}${a} / ${s}<sup class=\"exp\">2</sup><span class=\"paren tight\">)</span></sup>\n <span class=\"minus\">−</span>\n 1\n </td>\n </tr>`;\n return html`\n <div class=\"holder\">\n <table class=\"equation\">\n <tbody>\n ${equation}\n </tbody>\n </table>\n </div>`;\n }\n}\n\ncustomElements.define('ddm-equation-azvt02m', DDMEquationAZVT02M);\n","\nimport {html, css} from 'lit';\n\nimport AccumulableElement from '../accumulable-element';\n\n/*\n DDMExample Base Class - Not intended for instantiation!\n*/\nexport default class DDMExample extends AccumulableElement {\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n ---border: var(--border, 1px solid var(---color-border));\n display: inline-block;\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 + sdt-response,\n ::slotted(rdk-task) + ::slotted(sdt-response) { */\n /* .body ::slotted(sdt-response) {\n margin-left: 0;\n } */\n\n /* HACK: Sibling selectors not working with ::slotted */\n /* .body > sdt-control + rdk-task,\n ::slotted(sdt-control) + ::slotted(rdk-task) {\n margin-left: 0;\n } */\n /* .body ::slotted(rdk-task) {\n margin-left: 0;\n } */\n `,\n ];\n }\n\n render() { /* eslint-disable-line class-methods-use-this */\n return html`\n <div class=\"holder\">\n <div class=\"body\">\n <slot>Empty!</slot>\n </div>\n </div>`;\n }\n}\n\ncustomElements.define('ddm-example', DDMExample);\n","\nimport DDMMath from '@decidables/accumulable-math';\n\nimport DDMExample from './ddm-example';\n\n/*\n DDMExampleHuman element\n <ddm-example-human>\n*/\nexport default class DDMExampleHuman extends DDMExample {\n static get properties() {\n return {\n trials: {\n attribute: 'trials',\n type: Number,\n reflect: true,\n },\n duration: {\n attribute: 'duration',\n type: Number,\n reflect: true,\n },\n coherence: {\n attribute: 'coherence',\n type: Number,\n reflect: true,\n },\n color: {\n attribute: 'color',\n type: String,\n reflect: true,\n },\n\n a: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n z: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n v: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n t0: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n };\n }\n\n constructor() {\n super();\n\n this.trials = 10;\n this.duration = 2000;\n this.coherence = 0.5;\n this.colors = ['none', 'measure', 'outcome', 'all'];\n this.color = 'outcome';\n\n this.a = DDMMath.a.DEFAULT;\n this.z = DDMMath.z.DEFAULT;\n this.v = DDMMath.v.DEFAULT;\n this.t0 = DDMMath.t0.DEFAULT;\n\n this.accumulableControl = null;\n this.rdkTask = null;\n this.accumulableResponse = null;\n this.accumulableTable = null;\n this.ddmParameters = null;\n this.ddmModel = null;\n this.ddmFit = null;\n\n this.data = undefined;\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n this.accumulableControl = this.querySelector('accumulable-control');\n this.rdkTask = this.querySelector('rdk-2afc-task');\n this.accumulableResponse = this.querySelector('accumulable-response');\n this.accumulableTable = this.querySelector('accumulable-table');\n this.ddmParameters = this.querySelector('ddm-parameters');\n this.ddmModel = this.querySelector('ddm-model');\n this.ddmFit = this.querySelector('ddm-fit');\n\n // Initialize\n this.ddmModel.clear();\n\n if (this.accumulableControl) {\n this.accumulableControl.addEventListener('accumulable-control-trials', (event) => {\n this.trials = event.detail.trials;\n });\n\n this.accumulableControl.addEventListener('accumulable-control-duration', (event) => {\n this.duration = event.detail.duration;\n });\n\n this.accumulableControl.addEventListener('accumulable-control-coherence', (event) => {\n this.coherence = event.detail.coherence;\n });\n\n this.accumulableControl.addEventListener('accumulable-control-color', (event) => {\n this.color = event.detail.color;\n });\n\n this.accumulableControl.addEventListener('accumulable-control-run', (/* event */) => {\n if (this.rdkTask) {\n this.rdkTask.running = true;\n }\n });\n\n this.accumulableControl.addEventListener('accumulable-control-pause', (/* event */) => {\n if (this.rdkTask) {\n this.rdkTask.running = false;\n }\n });\n\n this.accumulableControl.addEventListener('accumulable-control-reset', (/* event */) => {\n if (this.rdkTask) {\n this.rdkTask.reset();\n }\n\n if (this.accumulableResponse) {\n this.accumulableResponse.reset();\n }\n\n if (this.accumulableTable) {\n this.accumulableTable.correctCount = NaN;\n this.accumulableTable.errorCount = NaN;\n this.accumulableTable.nrCount = NaN;\n this.accumulableTable.accuracy = NaN;\n this.accumulableTable.correctMeanRT = NaN;\n this.accumulableTable.errorMeanRT = NaN;\n this.accumulableTable.meanRT = NaN;\n this.accumulableTable.correctSDRT = NaN;\n this.accumulableTable.errorSDRT = NaN;\n this.accumulableTable.sdRT = NaN;\n }\n\n // if (this.ddmParameters) {\n // }\n\n if (this.ddmModel) {\n this.ddmModel.clear();\n }\n\n if (this.ddmFit) {\n this.ddmFit.clear();\n }\n });\n }\n\n if (this.rdkTask) {\n this.rdkTask.addEventListener('rdk-trial-start', (event) => {\n if (this.accumulableResponse) {\n this.accumulableResponse.start(event.detail.signal, event.detail.trial);\n }\n });\n }\n\n if (this.rdkTask) {\n this.rdkTask.addEventListener('rdk-trial-end', (/* event */) => {\n if (this.accumulableResponse) {\n this.accumulableResponse.stop();\n }\n });\n }\n\n if (this.rdkTask) {\n this.rdkTask.addEventListener('rdk-block-end', (/* event */) => {\n if (this.accumulableControl) {\n this.accumulableControl.complete();\n }\n });\n }\n\n if (this.accumulableResponse) {\n this.accumulableResponse.addEventListener('accumulable-response', (event) => {\n this.data = event.detail.data;\n\n if (this.ddmModel) {\n this.ddmModel.trial({\n index: event.detail.trial,\n rt: event.detail.rt,\n outcome: event.detail.outcome,\n });\n }\n\n if (this.ddmFit) {\n this.ddmFit.set({\n accuracy: event.detail.data.accuracy,\n correctMeanRT: event.detail.data.correctMeanRT,\n errorMeanRT: event.detail.data.errorMeanRT,\n meanRT: event.detail.data.meanRT,\n correctSDRT: event.detail.data.correctSDRT,\n errorSDRT: event.detail.data.errorSDRT,\n sdRT: event.detail.data.sdRT,\n });\n }\n\n this.requestUpdate();\n });\n }\n\n if (this.ddmFit) {\n this.ddmFit.addEventListener('ddm-fit-update', (event) => {\n this.a = event.detail.a;\n this.z = 0.5; // event.detail.z;\n this.v = event.detail.v;\n this.t0 = event.detail.t0;\n });\n }\n }\n\n update(changedProperties) {\n super.update(changedProperties);\n\n if (this.accumulableControl) {\n this.accumulableControl.trials = (this.accumulableControl.trials != null)\n ? this.trials\n : undefined;\n this.accumulableControl.duration = (this.accumulableControl.duration != null)\n ? this.duration\n : undefined;\n this.accumulableControl.coherence = (this.accumulableControl.coherence != null)\n ? this.coherence\n : undefined;\n this.accumulableControl.color = (this.accumulableControl.color != null)\n ? this.color\n : undefined;\n }\n\n if (this.rdkTask) {\n this.rdkTask.trials = this.trials;\n this.rdkTask.duration = this.duration;\n this.rdkTask.wait = this.duration;\n this.rdkTask.iti = this.duration;\n this.rdkTask.coherence = this.coherence;\n }\n\n if (this.ddmParameters) {\n this.ddmParameters.a = (this.ddmParameters.a != null)\n ? this.a\n : undefined;\n this.ddmParameters.z = (this.ddmParameters.z != null)\n ? this.z\n : undefined;\n this.ddmParameters.v = (this.ddmParameters.a != null)\n ? this.v\n : undefined;\n this.ddmParameters.t0 = (this.ddmParameters.t0 != null)\n ? this.t0\n : undefined;\n }\n\n if (this.ddmModel) {\n this.ddmModel.a = +this.a;\n this.ddmModel.z = +this.z;\n this.ddmModel.v = +this.v;\n this.ddmModel.t0 = +this.t0;\n }\n\n if (this.accumulableResponse) {\n this.accumulableResponse.trialTotal = this.trials;\n }\n\n if (this.accumulableTable) {\n this.accumulableTable.color = this.color;\n }\n\n if (this.accumulableTable && this.data) {\n this.accumulableTable.correctCount = this.data.correctCount;\n this.accumulableTable.errorCount = this.data.errorCount;\n this.accumulableTable.nrCount = this.data.nrCount;\n this.accumulableTable.accuracy = this.data.accuracy;\n this.accumulableTable.correctMeanRT = this.data.correctMeanRT;\n this.accumulableTable.errorMeanRT = this.data.errorMeanRT;\n this.accumulableTable.meanRT = this.data.meanRT;\n this.accumulableTable.correctSDRT = this.data.correctSDRT;\n this.accumulableTable.errorSDRT = this.data.errorSDRT;\n this.accumulableTable.sdRT = this.data.sdRT;\n }\n }\n}\n\ncustomElements.define('ddm-example-human', DDMExampleHuman);\n","\nimport DDMMath from '@decidables/accumulable-math';\n\nimport DDMExample from './ddm-example';\n\n/*\n DDMExampleInteractive element\n <ddm-example-interactive>\n*/\nexport default class DDMExampleInteractive extends DDMExample {\n static get properties() {\n return {\n trials: {\n attribute: 'trials',\n type: Number,\n reflect: true,\n },\n color: {\n attribute: 'color',\n type: String,\n reflect: true,\n },\n a: {\n attribute: 'boundary-separation',\n type: Number,\n reflect: true,\n },\n z: {\n attribute: 'starting-point',\n type: Number,\n reflect: true,\n },\n v: {\n attribute: 'drift-rate',\n type: Number,\n reflect: true,\n },\n t0: {\n attribute: 'nondecision-time',\n type: Number,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n this.trials = 10;\n this.colors = ['none', 'measure', 'outcome', 'all'];\n this.color = 'outcome';\n\n this.a = DDMMath.a.DEFAULT;\n this.z = DDMMath.z.DEFAULT;\n this.v = DDMMath.v.DEFAULT;\n this.t0 = DDMMath.t0.DEFAULT;\n\n this.accumulableControl = null;\n this.accumulableTable = null;\n this.ddmParameters = null;\n this.ddmModel = null;\n\n this.data = undefined;\n this.model = undefined;\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n this.accumulableControl = this.querySelector('accumulable-control');\n this.accumulableTable = this.querySelector('accumulable-table');\n this.ddmParameters = this.querySelector('ddm-parameters');\n this.ddmModel = this.querySelector('ddm-model');\n\n if (this.accumulableControl) {\n this.accumulableControl.addEventListener('accumulable-control-resample', (/* event */) => {\n this.ddmModel?.resample();\n this.requestUpdate();\n });\n this.accumulableControl.addEventListener('accumulable-control-trials', (event) => {\n this.trials = event.detail.trials;\n });\n this.accumulableControl.addEventListener('accumulable-control-color', (event) => {\n this.color = event.detail.color;\n });\n }\n\n if (this.ddmParameters) {\n this.ddmParameters.addEventListener('ddm-parameters-a', (event) => {\n this.a = event.detail.a;\n });\n this.ddmParameters.addEventListener('ddm-parameters-z', (event) => {\n this.z = event.detail.z;\n });\n this.ddmParameters.addEventListener('ddm-parameters-v', (event) => {\n this.v = event.detail.v;\n });\n this.ddmParameters.addEventListener('ddm-parameters-t0', (event) => {\n this.t0 = event.detail.t0;\n });\n }\n\n if (this.ddmModel) {\n this.ddmModel.addEventListener('ddm-model-a', (event) => {\n this.a = event.detail.a;\n });\n this.ddmModel.addEventListener('ddm-model-z', (event) => {\n this.z = event.detail.z;\n });\n this.ddmModel.addEventListener('ddm-model-v', (event) => {\n this.v = event.detail.v;\n });\n this.ddmModel.addEventListener('ddm-model-t0', (event) => {\n this.t0 = event.detail.t0;\n });\n this.ddmModel.addEventListener('ddm-model-output', (event) => {\n this.data = event.detail.data;\n this.model = event.detail.model;\n this.requestUpdate();\n });\n }\n\n this.requestUpdate();\n }\n\n update(changedProperties) {\n super.update(changedProperties);\n\n if (this.accumulableControl) {\n this.accumulableControl.trials = (this.accumulableControl.trials != null)\n ? this.trials\n : undefined;\n this.accumulableControl.color = (this.accumulableControl.color != null)\n ? this.color\n : undefined;\n }\n\n if (this.accumulableTable) {\n this.accumulableTable.color = this.color;\n }\n\n if (this.accumulableTable && this.data) {\n this.accumulableTable.correctCount = this.data.correctCount;\n this.accumulableTable.errorCount = this.data.errorCount;\n this.accumulableTable.nrCount = this.data.nrCount;\n this.accumulableTable.accuracy = this.data.accuracy;\n this.accumulableTable.correctMeanRT = this.data.correctMeanRT;\n this.accumulableTable.errorMeanRT = this.data.errorMeanRT;\n this.accumulableTable.meanRT = this.data.meanRT;\n this.accumulableTable.correctSDRT = this.data.correctSDRT;\n this.accumulableTable.errorSDRT = this.data.errorSDRT;\n this.accumulableTable.sdRT = this.data.sdRT;\n }\n\n if (this.ddmParameters) {\n this.ddmParameters.a = (this.ddmParameters.a != null)\n ? this.a\n : undefined;\n this.ddmParameters.z = (this.ddmParameters.z != null)\n ? this.z\n : undefined;\n this.ddmParameters.v = (this.ddmParameters.a != null)\n ? this.v\n : undefined;\n this.ddmParameters.t0 = (this.ddmParameters.t0 != null)\n ? this.t0\n : undefined;\n }\n\n if (this.ddmModel) {\n this.ddmModel.trials = this.trials;\n this.ddmModel.a = +this.a;\n this.ddmModel.z = +this.z;\n this.ddmModel.v = +this.v;\n this.ddmModel.t0 = +this.t0;\n }\n }\n}\n\ncustomElements.define('ddm-example-interactive', DDMExampleInteractive);\n","\nimport DDMMath from '@decidables/accumulable-math';\n\nimport DDMExample from './ddm-example';\n\n/*\n DDMExampleModel element\n <ddm-example-model>\n*/\nexport default class DDMExampleModel extends DDMExample {\n static get properties() {\n return {\n trials: {\n attribute: 'trials',\n type: Number,\n reflect: true,\n },\n duration: {\n attribute: 'duration',\n type: Number,\n reflect: true,\n },\n coherence: {\n attribute: 'coherence',\n type: Number,\n reflect: true,\n },\n color: {\n attribute: 'color',\n type: String,\n reflect: true,\n },\n\n a: {\n attribute: 'boundary-separation',\n type: Number,\n reflect: true,\n },\n z: {\n attribute: 'starting-point',\n type: Number,\n reflect: true,\n },\n v: {\n attribute: 'drift-rate',\n type: Number,\n reflect: true,\n },\n t0: {\n attribute: 'nondecision-time',\n type: Number,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n this.trials = 10;\n this.duration = 2000;\n this.coherence = 0.5;\n this.colors = ['none', 'measure', 'outcome', 'all'];\n this.color = 'outcome';\n\n this.a = DDMMath.a.DEFAULT;\n this.z = DDMMath.z.DEFAULT;\n this.v = DDMMath.v.DEFAULT;\n this.t0 = DDMMath.t0.DEFAULT;\n\n this.accumulableControl = null;\n this.rdkTask = null;\n this.ddmParameters = null;\n this.ddmModel = null;\n this.accumulableResponse = null;\n this.accumulableTable = null;\n\n this.trialCount = 0;\n this.signals = ['left', 'right']; // Possible values of 'signal'\n this.signal = undefined; // Signal for current trial\n this.data = undefined;\n this.model = undefined;\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n this.accumulableControl = this.querySelector('accumulable-control');\n this.rdkTask = this.querySelector('rdk-2afc-task');\n this.ddmParameters = this.querySelector('ddm-parameters');\n this.ddmModel = this.querySelector('ddm-model');\n this.accumulableResponse = this.querySelector('accumulable-response');\n this.accumulableTable = this.querySelector('accumulable-table');\n\n if (this.accumulableControl) {\n this.accumulableControl.addEventListener('accumulable-control-trials', (event) => {\n this.trials = event.detail.trials;\n });\n\n this.accumulableControl.addEventListener('accumulable-control-duration', (event) => {\n this.duration = event.detail.duration;\n });\n\n this.accumulableControl.addEventListener('accumulable-control-color', (event) => {\n this.color = event.detail.color;\n });\n\n this.accumulableControl.addEventListener('accumulable-control-run', (/* event */) => {\n if (this.rdkTask) {\n this.rdkTask.running = true;\n }\n\n if (this.ddmModel) {\n this.ddmModel.resumeTrial();\n }\n });\n\n this.accumulableControl.addEventListener('accumulable-control-pause', (/* event */) => {\n if (this.rdkTask) {\n this.rdkTask.running = false;\n }\n\n if (this.ddmModel) {\n this.ddmModel.pauseTrial();\n }\n });\n\n this.accumulableControl.addEventListener('accumulable-control-reset', (/* event */) => {\n this.trialCount = 0;\n this.signal = undefined;\n\n if (this.rdkTask) {\n this.rdkTask.reset();\n }\n\n if (this.ddmModel) {\n this.ddmModel.trials = this.trialCount;\n }\n\n if (this.accumulableResponse) {\n this.accumulableResponse.reset();\n }\n\n if (this.accumulableTable) {\n // this.accumulableTable.clear();\n }\n });\n }\n\n if (this.rdkTask) {\n this.rdkTask.addEventListener('rdk-trial-start', (event) => {\n this.signal = event.detail.signal;\n\n if (this.accumulableResponse) {\n this.accumulableResponse.start(\n event.detail.signal,\n event.detail.trial,\n );\n }\n\n if (this.ddmModel) {\n this.trialCount += 1;\n this.ddmModel.trial();\n }\n });\n\n this.rdkTask.addEventListener('rdk-trial-end', (/* event */) => {\n this.signal = undefined;\n\n if (this.accumulableResponse) {\n this.accumulableResponse.stop();\n }\n });\n\n this.rdkTask.addEventListener('rdk-block-end', (/* event */) => {\n if (this.accumulableControl) {\n this.accumulableControl.complete();\n }\n });\n }\n\n if (this.ddmParameters) {\n this.ddmParameters.addEventListener('ddm-parameters-a', (event) => {\n this.a = event.detail.a;\n });\n this.ddmParameters.addEventListener('ddm-parameters-z', (event) => {\n this.z = event.detail.z;\n });\n this.ddmParameters.addEventListener('ddm-parameters-v', (event) => {\n this.v = event.detail.v;\n });\n this.ddmParameters.addEventListener('ddm-parameters-t0', (event) => {\n this.t0 = event.detail.t0;\n });\n }\n\n if (this.ddmModel) {\n this.ddmModel.addEventListener('ddm-model-a', (event) => {\n this.a = event.detail.a;\n });\n this.ddmModel.addEventListener('ddm-model-z', (event) => {\n this.z = event.detail.z;\n });\n this.ddmModel.addEventListener('ddm-model-v', (event) => {\n this.v = event.detail.v;\n });\n this.ddmModel.addEventListener('ddm-model-t0', (event) => {\n this.t0 = event.detail.t0;\n });\n this.ddmModel.addEventListener('ddm-model-output', (event) => {\n this.data = event.detail.data;\n this.model = event.detail.model;\n this.requestUpdate();\n });\n\n this.ddmModel.addEventListener('accumulable-response', (event) => {\n if (this.accumulableResponse) {\n const response = (event.detail.outcome === 'correct')\n ? this.signal\n : (this.signal === 'left')\n ? 'right'\n : 'left';\n this.accumulableResponse.responded(response);\n }\n\n this.data = event.detail.data;\n this.model = event.detail.model;\n this.requestUpdate();\n });\n }\n\n this.requestUpdate();\n }\n\n update(changedProperties) {\n super.update(changedProperties);\n\n if (this.trialCount > this.trials) {\n this.trialCount = this.trials;\n }\n\n if (this.accumulableControl) {\n this.accumulableControl.trials = (this.accumulableControl.trials != null)\n ? this.trials\n : undefined;\n this.accumulableControl.duration = (this.accumulableControl.duration != null)\n ? this.duration\n : undefined;\n this.accumulableControl.coherence = (this.accumulableControl.coherence != null)\n ? this.coherence\n : undefined;\n this.accumulableControl.color = (this.accumulableControl.color != null)\n ? this.color\n : undefined;\n }\n\n if (this.rdkTask) {\n this.rdkTask.trials = this.trials;\n this.rdkTask.duration = this.duration;\n this.rdkTask.coherence = this.coherence;\n }\n\n if (this.ddmParameters) {\n this.ddmParameters.a = (this.ddmParameters.a != null)\n ? this.a\n : undefined;\n this.ddmParameters.z = (this.ddmParameters.z != null)\n ? this.z\n : undefined;\n this.ddmParameters.v = (this.ddmParameters.a != null)\n ? this.v\n : undefined;\n this.ddmParameters.t0 = (this.ddmParameters.t0 != null)\n ? this.t0\n : undefined;\n }\n\n if (this.ddmModel) {\n this.ddmModel.trials = this.trialCount;\n this.ddmModel.a = +this.a;\n this.ddmModel.z = +this.z;\n this.ddmModel.v = +this.v;\n this.ddmModel.t0 = +this.t0;\n }\n\n if (this.accumulableResponse) {\n this.accumulableResponse.trialTotal = this.trials;\n }\n\n if (this.accumulableTable) {\n this.accumulableTable.color = this.color;\n }\n\n if (this.accumulableTable && this.data) {\n this.accumulableTable.correctCount = this.data.correctCount;\n this.accumulableTable.errorCount = this.data.errorCount;\n this.accumulableTable.nrCount = this.data.nrCount;\n this.accumulableTable.accuracy = this.data.accuracy;\n this.accumulableTable.correctMeanRT = this.data.correctMeanRT;\n this.accumulableTable.errorMeanRT = this.data.errorMeanRT;\n this.accumulableTable.meanRT = this.data.meanRT;\n this.accumulableTable.correctSDRT = this.data.correctSDRT;\n this.accumulableTable.errorSDRT = this.data.errorSDRT;\n this.accumulableTable.sdRT = this.data.sdRT;\n }\n }\n}\n\ncustomElements.define('ddm-example-model', DDMExampleModel);\n"],"names":["t","globalThis","e","ShadowRoot","ShadyCSS","nativeShadow","Document","prototype","CSSStyleSheet","s","Symbol","o","WeakMap","n","constructor","_$cssResult$","Error","cssText","styleSheet","length","get","replaceSync","set","toString","r","i","css","reduce","S","adoptStyles","adoptedStyleSheets","map","document","createElement","litNonce","setAttribute","textContent","appendChild","c","cssRules","is","defineProperty","getOwnPropertyDescriptor","h","getOwnPropertyNames","getOwnPropertySymbols","getPrototypeOf","Object","a","trustedTypes","l","emptyScript","p","reactiveElementPolyfillSupport","d","JSCompiler_renameProperty","u","toAttribute","Boolean","Array","JSON","stringify","fromAttribute","Number","parse","f","notEqual","b","attribute","type","String","converter","reflect","useDefault","hasChanged","metadata","litPropertyMetadata","y","HTMLElement","addInitializer","_$Ei","push","observedAttributes","finalize","_$Eh","keys","createProperty","state","hasOwnProperty","create","wrapped","elementProperties","noAccessor","getPropertyDescriptor","call","requestUpdate","configurable","enumerable","getPropertyOptions","Map","finalized","properties","_$Eu","elementStyles","finalizeStyles","styles","isArray","Set","flat","reverse","unshift","toLowerCase","_$Ep","isUpdatePending","hasUpdated","_$Em","_$Ev","_$ES","Promise","enableUpdating","_$AL","_$E_","forEach","addController","_$EO","add","renderRoot","isConnected","hostConnected","removeController","delete","size","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$ET","removeAttribute","_$Ej","hasAttribute","C","_$EP","has","_$Eq","reject","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","update","_$EM","_$AE","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","mode","ReactiveElement","reactiveElementVersions","createPolicy","createHTML","Math","random","toFixed","slice","createMarker","createComment","iterator","v","_","m","RegExp","g","$","_$litType$","strings","values","x","T","for","E","A","createTreeWalker","P","V","getTemplateHtml","lastIndex","exec","test","startsWith","N","parts","el","currentNode","content","firstChild","replaceWith","childNodes","nextNode","nodeType","hasAttributes","getAttributeNames","endsWith","getAttribute","split","index","name","ctor","H","I","L","k","tagName","append","data","indexOf","innerHTML","_$Co","_$Cl","_$litDirective$","_$AO","_$AT","_$AS","M","_$AV","_$AN","_$AD","_$AM","parentNode","_$AU","creationScope","importNode","R","nextSibling","z","_$AI","_$Cv","_$AH","_$AA","_$AB","options","startNode","endNode","_$AR","O","insertBefore","createTextNode","_$AC","_$AP","remove","setConnected","element","fill","j","arguments","toggleAttribute","capture","once","passive","removeEventListener","addEventListener","handleEvent","host","litHtmlPolyfillSupport","litHtmlVersions","B","render","renderBefore","_$litPart$","renderOptions","_$Do","_$litElement$","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","ascending","NaN","descending","bisector","compare1","compare2","delta","zero","left","lo","hi","mid","right","center","number","ascendingBisect","bisectRight","e10","sqrt","e5","e2","tickSpec","start","stop","count","step","max","power","floor","log10","error","pow","factor","i1","i2","inc","round","ticks","tickIncrement","tickStep","top","bottom","epsilon","translateX","translateY","scale","offset","bandwidth","entering","__axis","axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","window","devicePixelRatio","transform","context","apply","domain","format","identity","spacing","range","range0","range1","position","copy","selection","path","selectAll","tick","order","tickExit","exit","tickEnter","enter","attr","line","select","text","merge","insert","transition","isFinite","filter","each","from","tickSize","axisRight","axisBottom","axisLeft","noop","value","dispatch","Dispatch","parseTypenames","typenames","types","trim","on","typename","callback","that","args","concat","xhtml","svg","xlink","xml","xmlns","prefix","namespaces","space","local","creatorInherit","ownerDocument","uri","namespaceURI","documentElement","createElementNS","creatorFixed","fullname","namespace","none","selector","querySelector","groups","_groups","subgroups","group","subgroup","node","subnode","__data__","Selection","_parents","array","empty","querySelectorAll","arrayAll","selectorAll","parents","matches","childMatcher","find","childFind","match","children","childFirst","firstElementChild","childrenFilter","matcher","_enter","sparse","EnterNode","parent","datum","_next","_parent","child","next","bindIndex","groupLength","dataLength","bindKey","key","nodeByKeyValue","keyValues","keyValue","bind","constant","arraylike","enterGroup","updateGroup","exitGroup","i0","previous","_exit","onenter","onupdate","onexit","groups0","groups1","m0","m1","min","merges","group0","group1","compareDocumentPosition","compare","compareNode","sortgroups","sortgroup","sort","attrRemove","attrRemoveNS","removeAttributeNS","attrConstant","attrConstantNS","setAttributeNS","attrFunction","attrFunctionNS","getAttributeNS","defaultView","styleRemove","style","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","string","classList","ClassList","_node","_names","join","splice","contains","classedAdd","names","list","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textConstant","textFunction","htmlRemove","htmlConstant","htmlFunction","raise","lower","previousSibling","creator","constantNull","before","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","deep","property","contextListener","listener","event","onRemove","__on","onAdd","dispatchEvent","params","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","root","selection_selection","selection_select","selection_selectAll","selectChild","selection_selectChild","selectChildren","selection_selectChildren","selection_filter","selection_data","selection_enter","selection_exit","selection_join","selection_merge","selection_order","selection_sort","selection_call","nodes","selection_nodes","selection_node","selection_size","selection_empty","selection_each","selection_attr","selection_style","selection_property","classed","selection_classed","selection_text","html","selection_html","selection_raise","selection_lower","selection_append","selection_insert","selection_remove","selection_clone","selection_datum","selection_on","selection_dispatch","selection_iterator","nextId","Local","id","sourceEvent","undefined","currentTarget","ownerSVGElement","createSVGPoint","point","clientX","clientY","matrixTransform","getScreenCTM","inverse","getBoundingClientRect","rect","clientLeft","clientTop","pageX","pageY","nonpassive","nonpassivecapture","nopropagation","stopImmediatePropagation","preventDefault","view","noevent","__noselect","MozUserSelect","yesdrag","noclick","setTimeout","DragEvent","subject","target","identifier","active","dx","dy","defineProperties","defaultFilter","ctrlKey","button","defaultContainer","defaultSubject","defaultTouchable","navigator","maxTouchPoints","container","touchable","gestures","listeners","mousedownx","mousedowny","mousemoving","touchending","clickDistance2","drag","mousedowned","touchstarted","touchmoved","touchended","gesture","beforestart","mousemoved","mouseupped","nodrag","mouse","touches","changedTouches","clearTimeout","touch","pointer","p0","clickDistance","factory","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","define","color","channels","assign","displayable","rgb","hex","color_formatHex","formatHex","formatHex8","color_formatHex8","formatHsl","color_formatHsl","formatRgb","color_formatRgb","hslConvert","parseInt","rgbn","Rgb","rgba","hsla","rgbConvert","opacity","clamp","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","isNaN","Hsl","hsl","m2","hsl2rgb","clamph","clampt","linear","exponential","gamma","nogamma","rgbGamma","end","colorRgb","isNumberArray","ArrayBuffer","isView","DataView","genericArray","nb","na","Date","setTime","reA","reB","source","one","bi","am","bm","bs","q","date","numberArray","valueOf","object","degrees","PI","rotate","skewX","scaleX","scaleY","atan2","atan","svgNode","parseCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","parseSvg","baseVal","consolidate","matrix","interpolateTransform","pxComma","pxParen","degParen","pop","translate","xa","ya","xb","yb","interpolateTransformCss","interpolateTransformSvg","frame","timeout","interval","pokeDelay","taskHead","taskTail","clockLast","clockNow","clockSkew","clock","performance","now","setFrame","requestAnimationFrame","clearNow","Timer","_call","_time","timer","restart","delay","time","TypeError","sleep","Infinity","timerFlush","wake","nap","poke","t0","t1","t2","clearInterval","setInterval","elapsed","total","_restart","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","timing","schedules","__transition","tween","duration","ease","init","schedule","self","interrupt","tweenRemove","tween0","tween1","tweenFunction","_id","tweenValue","interpolateNumber","interpolateRgb","interpolateString","interpolate","value1","string00","string1","interpolate0","string0","string10","attrTween","attrInterpolate","attrInterpolateNS","attrTweenNS","_value","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","easeVarying","Transition","_name","every","onFunction","on0","on1","sit","removeFunction","inherit","styleNull","styleMaybeRemove","listener0","styleTween","styleInterpolate","textInterpolate","textTween","id0","id1","newId","resolve","cancel","selection_prototype","transition_select","transition_selectAll","transition_filter","transition_merge","transition_selection","transition_transition","transition_on","transition_attr","transition_attrTween","transition_style","transition_styleTween","transition_text","transition_textTween","transition_remove","transition_tween","transition_delay","transition_duration","transition_ease","transition_easeVarying","transition_end","cubicOut","cubicInOut","defaultTiming","easeCubicInOut","selection_interrupt","selection_transition","pi","tau","tauEpsilon","appendRound","digits","Path","_x0","_y0","_x1","_y1","_append","moveTo","closePath","lineTo","quadraticCurveTo","x1","y1","bezierCurveTo","x2","y2","arcTo","x0","y0","x21","y21","x01","y01","l01_2","abs","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","arc","a0","a1","ccw","cos","sin","cw","da","w","toLocaleString","replace","formatDecimalParts","toExponential","coefficient","grouping","thousands","width","substring","numerals","re","formatSpecifier","specifier","FormatSpecifier","align","sign","symbol","comma","precision","out","prefixExponent","exponent","%","formatDecimal","toPrecision","formatRounded","formatPrefixAuto","toUpperCase","prefixes","locale","formatGroup","currencyPrefix","currency","currencySuffix","decimal","formatNumerals","percent","minus","nan","newFormat","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","charCodeAt","padding","formatPrefix","defaultLocale","formatLocale","sourceRandomUniform","randomUniform","defaultSource","sourceRandomNormal","randomNormal","mu","sigma","log","mul","eps","lcg","seed","initRange","constants","unit","normalize","clamper","bimap","d0","d1","r0","r1","polymap","bisect","unknown","transformer","interpolateValue","untransform","piecewise","output","input","rescale","invert","rangeRound","interpolateRound","continuous","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","maxIter","ceil","withPath","shape","RangeError","Linear","_context","areaStart","_line","areaEnd","lineStart","_point","lineEnd","defined","curve","curveLinear","pointX","pointY","defined0","buffer","Transform","applyX","applyY","location","invertX","invertY","rescaleX","rescaleY","DecidablesElement","getComputedStyleValue","changedProperties","d3","greys","light75","light50","light25","dark25","dark50","dark75","shadows","elevations","baselineColor","baselineColorString","inverseBaselineColor","inverseBaselineColorString","opacityUmbra","opacityPenumbra","opacityAmbient","opacityBoost","mapUmbra","mapPenumbra","mapAmbient","cssBoxShadow","elevation","umbraO","penumbraO","ambientO","umbraC","penumbraC","ambientC","umbraM","penumbraM","ambientM","umbraS","penumbraS","ambientS","svgDefs","filters","svgFilters","unsafeCSS","DecidablesButton","disabled","customElements","DecidablesSlider","nonlinear","rangeMax","rangeMin","rangeStep","rangeValue","toRange","fromRange","nonlinearRange","rangeChanged","rangeInputted","spinnerInputted","ifDefined","DecidablesSpinner","inputted","DecidablesSwitch","checked","changed","DecidablesToggle","DecidablesToggleOption","DecidablesMixinResizeable","superClass","height","rem","getDimensions","parseFloat","resizeObserver","ResizeObserver","observe","unobserve","AccumulableElement","interactive","colors","lights","acc","cur","darks","AccumulableControl","trials","resample","coherence","run","pause","reset","states","setTrials","doResample","setDuration","setCoherence","chooseColor","doRun","doPause","doReset","complete","DDMMath","DEFAULT","MIN","MAX","STEP","JUMP","trials2stats","stats","sums","accumulator","trial","outcome","correctCount","correctRTSum","rt","errorCount","errorRTSum","nrCount","accuracy","correctMeanRT","errorMeanRT","meanRT","sums2","ss","correctSS","errorSS","correctSDRT","errorSDRT","sdRT","azv2pE","zPrime","exp","Z","azv2pC","azvt02m","mean","azv2sd","variance","azvt02mE","phi","azv2sdE","azvt02mC","azv2sdC","tazv2gE","base","term","sum","tazv2gC","data2ez","pC","sd","logit","vrt","mrt","s2","mdt","t0Prime","data2ez2","AccumulableResponse","feedback","payoff","correctPayoff","errorPayoff","nrPayoff","trialCount","trialTotal","payoffs","signals","signal","responses","response","outcomes","startTime","alignState","trialPayoff","totalPayoff","responded","keydown","payoffFormatter","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","payoffFormat","formatToParts","part","AccumulableTable","numeric","summary","sendEvent","correctCountInput","errorCountInput","accuracyInput","correctMeanRTInput","errorMeanRTInput","meanRTInput","correctSDRTInput","errorSDRTInput","sdRTInput","DDMFit","observed","predicted","working","queued","worker","DDMFitWorker","onmessage","fit","postMessage","clear","structuredClone","DDMParameters","setBoundarySeparation","setStartingPoint","setDriftRate","setNondecisionTime","DDMModel","measures","means","sds","human","firstUpdate","evidence","density","bounds","startingPoint","model","animate","paused","pauseTrial","pathNew","resumeTrial","alignPath","upper","drift","at","alignCorrectDistribution","proportionCorrect","dist","alignErrorDistribution","proportionError","dataStats","correctDist","errorDist","hostWidth","hostHeight","hostAspectRatio","elementAspectRatio","elementWidth","elementHeight","margin","gapHeight","evidenceHeight","densityHeight","gapWidth","timeWidth","accuracyWidth","transitionDuration","timeScale","evidenceScale","correctDensityScale","errorDensityScale","accuracyScale","dragT0z","shift","shiftKey","dragDrift","dragBoundary","boundary","evidenceLine","correctDensityLine","errorDensityLine","svgUpdate","svgEnter","measureArrow","parameter","measureArrowCap","marker","sdCap","gradient","svgMerge","densityPlotUpdate","densityScale","densityLine","alignDistribution","evidencePlotEnter","densityPlotEnter","accuracyPlotEnter","evidencePlotMerge","densityPlotMerge","accuracyPlotMerge","evidenceUnderlayerEnter","densityUnderlayerEnter","accuracyUnderlayerEnter","evidenceUnderlayerMerge","densityUnderlayerMerge","accuracyUnderlayerMerge","densityContentEnter","evidenceContentMerge","densityContentMerge","accuracyContentMerge","evidenceOverlayerMerge","densityOverlayerMerge","timeScaleMerge","timeScaleTransition","timeTitleEnter","evidenceScaleMerge","densityScaleMerge","accuracyScaleMerge","evidenceScaleTransition","densityScaleTransition","elements","accuracyScaleTransition","evidenceTitleEnter","densityTitleEnter","accuracyTitleEnter","pathUpdate","rtLabel","pathEnter","myRtLabel","bbox","getBBox","pathMerge","interpolateA","interpolateZ","interpolateV","interpolateT0","pathMergeNewActive","easeTime","scaleIn","scaleOutGenerator","easeFunction","interpolator","parentElement","pathMergeNewPaused","distEnter","rtUpdate","rtEnter","rtMerge","accuracyUpdate","accuracyEnter","dataAccuracyUpdate","dataAccuracyEnter","dataAccuracyMerge","correct","boundaryUpdate","bound","boundaryEnter","boundaryMerge","includes","driftUpdate","driftEnter","driftMerge","scaleRatio","t0zUpdate","t0zEnter","t0zMerge","aUpdate","aEnter","aLabel","aMerge","aLabelMerge","zUpdate","zEnter","zLabel","zMerge","zLabelMerge","vUpdate","vEnter","vLabel","driftHypotenuse","driftCorrection","driftAngle","driftX","driftY","vMerge","vLabelMerge","t0Update","t0Enter","t0Label","t0Merge","t0LabelMerge","meanUpdate","meanEnter","meanMerge","dataMeanUpdate","dataMeanEnter","dataMeanMerge","sdUpdate","sdEnter","sdMerge","dataSDUpdate","dataSDEnter","dataSDMerge","RDK2AFCTask","probability","wait","iti","running","lifetime","speed","COHERENT","RANDOM","dots","baseTime","pauseTime","lastTime","LEFT","RIGHT","currentDirection","runner","xScale","yScale","elementSize","plotEnter","plotMerge","underlayerEnter","underlayerMerge","contentMerge","dotsUpdate","overlayerEnter","overlayerMerge","dotUpdate","fixationUpdate","queryUpdate","realTime","currentTime","elapsedTime","frameTime","newTrial","newDot","dot","direction","birth","angle","radius","directionR","distance2","radius2","fixationEnter","dotEnter","queryEnter","DDMEquation","DDMEquationAZV2PC","aInput","zInput","vInput","equation","DDMEquationAZVT02M","t0Input","DDMExample","DDMExampleHuman","accumulableControl","rdkTask","accumulableResponse","accumulableTable","ddmParameters","ddmModel","ddmFit","DDMExampleInteractive","DDMExampleModel"],"mappings":"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ACg9B,UAAU,GAAI,IAAI,CAACx4B,KAAK,KAAK8N,SAAS,GACvCA,SAAS,GACT,IAAI,CAACsqB,SAAS,GACZ,IAAI,CAACK,OAAO,CAAC,IAAI,CAACz4B,KAAK,CAAC,GACxB,IAAI,CAACA,KAAK;EAClB,EAAA;IAEA,WAAWnR,MAAMA,GAAG;EAClB,IAAA,OAAO,CACL,KAAK,CAACA,MAAM,EACZ/E,GAAG;AACT;AACA;AACA;AACA;;AAEA,qDAAA,EAAuDiuC,GAAS,CAAC,IAAI,CAACjB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;AACnG,qDAAA,EAAuDiB,GAAS,CAAC,IAAI,CAACjB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;AACnG,qDAAA,EAAuDiB,GAAS,CAAC,IAAI,CAACjB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;;AAEnG;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;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ACJ,sBAAsB,CAAC,IAAI,CAACh5C,CAAC,EAAE,IAAI,CAACiM,CAAC,EAAE,IAAI,CAAClE,CAAC,EAAE,IAAI,CAACmxB,EAAE,CAAC;EAEnF,IAAA,IAAI,CAAC/Z,aAAa,CAAC,IAAIE,WAAW,CAAC,kBAAkB,EAAE;EACrDK,MAAAA,MAAM,EAAE;UACN7U,IAAI,EAAE,IAAI,CAACA,IAAI;UACfstC,KAAK,EAAE,IAAI,CAACA;SACb;EACD34B,MAAAA,OAAO,EAAE;EACX,KAAC,CAAC,CAAC;EACL,EAAA;IAEA,WAAW/b,MAAMA,GAAG;EAClB,IAAA,OAAO,CACL,KAAK,CAACA,MAAM,EACZ/E,GAAG;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAC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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,150]}
1
+ {"version":3,"file":"accumulableElements.umd.js","sources":["../../../node_modules/@lit/reactive-element/css-tag.js","../../../node_modules/@lit/reactive-element/reactive-element.js","../../../node_modules/lit-html/lit-html.js","../../../node_modules/lit-element/lit-element.js","../../../node_modules/d3-array/src/ascending.js","../../../node_modules/d3-array/src/descending.js","../../../node_modules/d3-array/src/bisector.js","../../../node_modules/d3-array/src/number.js","../../../node_modules/d3-array/src/bisect.js","../../../node_modules/d3-array/src/ticks.js","../../../node_modules/d3-axis/src/identity.js","../../../node_modules/d3-axis/src/axis.js","../../../node_modules/d3-dispatch/src/dispatch.js","../../../node_modules/d3-selection/src/namespaces.js","../../../node_modules/d3-selection/src/namespace.js","../../../node_modules/d3-selection/src/creator.js","../../../node_modules/d3-selection/src/selector.js","../../../node_modules/d3-selection/src/selection/select.js","../../../node_modules/d3-selection/src/array.js","../../../node_modules/d3-selection/src/selectorAll.js","../../../node_modules/d3-selection/src/selection/selectAll.js","../../../node_modules/d3-selection/src/matcher.js","../../../node_modules/d3-selection/src/selection/selectChild.js","../../../node_modules/d3-selection/src/selection/selectChildren.js","../../../node_modules/d3-selection/src/selection/filter.js","../../../node_modules/d3-selection/src/selection/sparse.js","../../../node_modules/d3-selection/src/selection/enter.js","../../../node_modules/d3-selection/src/constant.js","../../../node_modules/d3-selection/src/selection/data.js","../../../node_modules/d3-selection/src/selection/exit.js","../../../node_modules/d3-selection/src/selection/join.js","../../../node_modules/d3-selection/src/selection/merge.js","../../../node_modules/d3-selection/src/selection/order.js","../../../node_modules/d3-selection/src/selection/sort.js","../../../node_modules/d3-selection/src/selection/call.js","../../../node_modules/d3-selection/src/selection/nodes.js","../../../node_modules/d3-selection/src/selection/node.js","../../../node_modules/d3-selection/src/selection/size.js","../../../node_modules/d3-selection/src/selection/empty.js","../../../node_modules/d3-selection/src/selection/each.js","../../../node_modules/d3-selection/src/selection/attr.js","../../../node_modules/d3-selection/src/window.js","../../../node_modules/d3-selection/src/selection/style.js","../../../node_modules/d3-selection/src/selection/property.js","../../../node_modules/d3-selection/src/selection/classed.js","../../../node_modules/d3-selection/src/selection/text.js","../../../node_modules/d3-selection/src/selection/html.js","../../../node_modules/d3-selection/src/selection/raise.js","../../../node_modules/d3-selection/src/selection/lower.js","../../../node_modules/d3-selection/src/selection/append.js","../../../node_modules/d3-selection/src/selection/insert.js","../../../node_modules/d3-selection/src/selection/remove.js","../../../node_modules/d3-selection/src/selection/clone.js","../../../node_modules/d3-selection/src/selection/datum.js","../../../node_modules/d3-selection/src/selection/on.js","../../../node_modules/d3-selection/src/selection/dispatch.js","../../../node_modules/d3-selection/src/selection/iterator.js","../../../node_modules/d3-selection/src/selection/index.js","../../../node_modules/d3-selection/src/select.js","../../../node_modules/d3-selection/src/local.js","../../../node_modules/d3-selection/src/sourceEvent.js","../../../node_modules/d3-selection/src/pointer.js","../../../node_modules/d3-drag/src/noevent.js","../../../node_modules/d3-drag/src/nodrag.js","../../../node_modules/d3-drag/src/constant.js","../../../node_modules/d3-drag/src/event.js","../../../node_modules/d3-drag/src/drag.js","../../../node_modules/d3-color/src/define.js","../../../node_modules/d3-color/src/color.js","../../../node_modules/d3-interpolate/src/constant.js","../../../node_modules/d3-interpolate/src/color.js","../../../node_modules/d3-interpolate/src/rgb.js","../../../node_modules/d3-interpolate/src/numberArray.js","../../../node_modules/d3-interpolate/src/array.js","../../../node_modules/d3-interpolate/src/date.js","../../../node_modules/d3-interpolate/src/number.js","../../../node_modules/d3-interpolate/src/object.js","../../../node_modules/d3-interpolate/src/string.js","../../../node_modules/d3-interpolate/src/value.js","../../../node_modules/d3-interpolate/src/round.js","../../../node_modules/d3-interpolate/src/transform/decompose.js","../../../node_modules/d3-interpolate/src/transform/parse.js","../../../node_modules/d3-interpolate/src/transform/index.js","../../../node_modules/d3-timer/src/timer.js","../../../node_modules/d3-timer/src/timeout.js","../../../node_modules/d3-timer/src/interval.js","../../../node_modules/d3-transition/src/transition/schedule.js","../../../node_modules/d3-transition/src/interrupt.js","../../../node_modules/d3-transition/src/selection/interrupt.js","../../../node_modules/d3-transition/src/transition/tween.js","../../../node_modules/d3-transition/src/transition/interpolate.js","../../../node_modules/d3-transition/src/transition/attr.js","../../../node_modules/d3-transition/src/transition/attrTween.js","../../../node_modules/d3-transition/src/transition/delay.js","../../../node_modules/d3-transition/src/transition/duration.js","../../../node_modules/d3-transition/src/transition/ease.js","../../../node_modules/d3-transition/src/transition/easeVarying.js","../../../node_modules/d3-transition/src/transition/filter.js","../../../node_modules/d3-transition/src/transition/merge.js","../../../node_modules/d3-transition/src/transition/on.js","../../../node_modules/d3-transition/src/transition/remove.js","../../../node_modules/d3-transition/src/transition/select.js","../../../node_modules/d3-transition/src/transition/selectAll.js","../../../node_modules/d3-transition/src/transition/selection.js","../../../node_modules/d3-transition/src/transition/style.js","../../../node_modules/d3-transition/src/transition/styleTween.js","../../../node_modules/d3-transition/src/transition/text.js","../../../node_modules/d3-transition/src/transition/textTween.js","../../../node_modules/d3-transition/src/transition/transition.js","../../../node_modules/d3-transition/src/transition/end.js","../../../node_modules/d3-transition/src/transition/index.js","../../../node_modules/d3-ease/src/linear.js","../../../node_modules/d3-ease/src/cubic.js","../../../node_modules/d3-transition/src/selection/transition.js","../../../node_modules/d3-transition/src/selection/index.js","../../../node_modules/d3-path/src/path.js","../../../node_modules/d3-format/src/formatDecimal.js","../../../node_modules/d3-format/src/exponent.js","../../../node_modules/d3-format/src/formatGroup.js","../../../node_modules/d3-format/src/formatNumerals.js","../../../node_modules/d3-format/src/formatSpecifier.js","../../../node_modules/d3-format/src/formatTrim.js","../../../node_modules/d3-format/src/formatPrefixAuto.js","../../../node_modules/d3-format/src/formatRounded.js","../../../node_modules/d3-format/src/formatTypes.js","../../../node_modules/d3-format/src/identity.js","../../../node_modules/d3-format/src/locale.js","../../../node_modules/d3-format/src/defaultLocale.js","../../../node_modules/d3-format/src/precisionFixed.js","../../../node_modules/d3-format/src/precisionPrefix.js","../../../node_modules/d3-format/src/precisionRound.js","../../../node_modules/d3-random/src/defaultSource.js","../../../node_modules/d3-random/src/uniform.js","../../../node_modules/d3-random/src/normal.js","../../../node_modules/d3-random/src/lcg.js","../../../node_modules/d3-scale/src/init.js","../../../node_modules/d3-scale/src/constant.js","../../../node_modules/d3-scale/src/number.js","../../../node_modules/d3-scale/src/continuous.js","../../../node_modules/d3-scale/src/tickFormat.js","../../../node_modules/d3-scale/src/linear.js","../../../node_modules/d3/node_modules/d3-shape/src/constant.js","../../../node_modules/d3/node_modules/d3-shape/src/path.js","../../../node_modules/d3/node_modules/d3-shape/src/array.js","../../../node_modules/d3/node_modules/d3-shape/src/curve/linear.js","../../../node_modules/d3/node_modules/d3-shape/src/point.js","../../../node_modules/d3/node_modules/d3-shape/src/line.js","../../../node_modules/d3-zoom/src/transform.js","../../decidables-elements/src/decidables-element.js","../../decidables-elements/src/button.js","../../../node_modules/lit-html/directives/if-defined.js","../../decidables-elements/src/slider.js","../../decidables-elements/src/spinner.js","../../decidables-elements/src/switch.js","../../decidables-elements/src/toggle.js","../../decidables-elements/src/toggle-option.js","../../decidables-elements/src/mixin-resizeable.js","../src/accumulable-element.js","../src/components/accumulable-control.js","../../accumulable-math/src/ddm-math.js","../src/components/accumulable-response.js","../src/components/accumulable-table.js","../src/components/ddm-fit.js","../src/components/ddm-parameters.js","../src/components/ddm-model.js","../src/components/rdk-2afc-task.js","../src/equations/ddm-equation.js","../src/equations/azv2pc.js","../src/equations/azvt02m.js","../src/examples/ddm-example.js","../src/examples/human.js","../src/examples/interactive.js","../src/examples/model.js"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>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.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.1\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=S(t,h._$AS(t,i.values),h,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new R(this.O(l()),this.O(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.1\");const B=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.1\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function(x) {\n return x;\n}\n","import identity from \"./identity.js\";\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + x + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + y + \")\";\n}\n\nfunction number(scale) {\n return d => +scale(d);\n}\n\nfunction center(scale, offset) {\n offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;\n if (scale.round()) offset = Math.round(offset);\n return d => +scale(d) + offset;\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n offset = typeof window !== \"undefined\" && window.devicePixelRatio > 1 ? 0 : 0.5,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + offset,\n range1 = +range[range.length - 1] + offset,\n position = (scale.bandwidth ? center : number)(scale.copy(), offset),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"currentColor\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"currentColor\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"currentColor\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d + offset) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform((p && isFinite(p = p(d)) ? p : position(d)) + offset); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient === right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H\" + offset + \"V\" + range1 + \"H\" + k * tickSizeOuter : \"M\" + offset + \",\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V\" + offset + \"H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",\" + offset + \"H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d) + offset); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = Array.from(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : Array.from(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n axis.offset = function(_) {\n return arguments.length ? (offset = +_, axis) : offset;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\n\nexport function axisRight(scale) {\n return axis(right, scale);\n}\n\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nexport function axisLeft(scale) {\n return axis(left, scale);\n}\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","var nextId = 0;\n\nexport default function local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n","// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent, {nonpassivecapture} from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, nonpassivecapture);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, nonpassivecapture);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, nonpassivecapture);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","export default x => () => x;\n","export default function DragEvent(type, {\n sourceEvent,\n subject,\n target,\n identifier,\n active,\n x, y, dx, dy,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n subject: {value: subject, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n identifier: {value: identifier, enumerable: true, configurable: true},\n active: {value: active, enumerable: true, configurable: true},\n x: {value: x, enumerable: true, configurable: true},\n y: {value: y, enumerable: true, configurable: true},\n dx: {value: dx, enumerable: true, configurable: true},\n dy: {value: dy, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","import {dispatch} from \"d3-dispatch\";\nimport {select, pointer} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nonpassive, nonpassivecapture, nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(event, d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved, nonpassive)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned(event, d) {\n if (touchending || !filter.call(this, event, d)) return;\n var gesture = beforestart(this, container.call(this, event, d), event, d, \"mouse\");\n if (!gesture) return;\n select(event.view)\n .on(\"mousemove.drag\", mousemoved, nonpassivecapture)\n .on(\"mouseup.drag\", mouseupped, nonpassivecapture);\n nodrag(event.view);\n nopropagation(event);\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\", event);\n }\n\n function mousemoved(event) {\n noevent(event);\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\", event);\n }\n\n function mouseupped(event) {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent(event);\n gestures.mouse(\"end\", event);\n }\n\n function touchstarted(event, d) {\n if (!filter.call(this, event, d)) return;\n var touches = event.changedTouches,\n c = container.call(this, event, d),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) {\n nopropagation(event);\n gesture(\"start\", event, touches[i]);\n }\n }\n }\n\n function touchmoved(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent(event);\n gesture(\"drag\", event, touches[i]);\n }\n }\n }\n\n function touchended(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation(event);\n gesture(\"end\", event, touches[i]);\n }\n }\n }\n\n function beforestart(that, container, event, d, identifier, touch) {\n var dispatch = listeners.copy(),\n p = pointer(touch || event, container), dx, dy,\n s;\n\n if ((s = subject.call(that, new DragEvent(\"beforestart\", {\n sourceEvent: event,\n target: drag,\n identifier,\n active,\n x: p[0],\n y: p[1],\n dx: 0,\n dy: 0,\n dispatch\n }), d)) == null) return;\n\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n\n return function gesture(type, event, touch) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[identifier] = gesture, n = active++; break;\n case \"end\": delete gestures[identifier], --active; // falls through\n case \"drag\": p = pointer(touch || event, container), n = active; break;\n }\n dispatch.call(\n type,\n that,\n new DragEvent(type, {\n sourceEvent: event,\n subject: s,\n target: drag,\n identifier,\n active: n,\n x: p[0] + dx,\n y: p[1] + dy,\n dx: p[0] - p0[0],\n dy: p[1] - p0[1],\n dispatch\n }),\n d\n );\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {Timer, now} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer, total = delay;\n if (delay == null) return t.restart(callback, delay, time), t;\n t._restart = t.restart;\n t.restart = function(callback, delay, time) {\n delay = +delay, time = time == null ? now() : +time;\n t._restart(function tick(elapsed) {\n elapsed += total;\n t._restart(tick, total += delay, time);\n callback(elapsed);\n }, delay, time);\n }\n t.restart(callback, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export const linear = t => +t;\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","export default Math.random;\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomUniform(source) {\n function randomUniform(min, max) {\n min = min == null ? 0 : +min;\n max = max == null ? 1 : +max;\n if (arguments.length === 1) max = min, min = 0;\n else max -= min;\n return function() {\n return source() * max + min;\n };\n }\n\n randomUniform.source = sourceRandomUniform;\n\n return randomUniform;\n})(defaultSource);\n","import defaultSource from \"./defaultSource.js\";\n\nexport default (function sourceRandomNormal(source) {\n function randomNormal(mu, sigma) {\n var x, r;\n mu = mu == null ? 0 : +mu;\n sigma = sigma == null ? 1 : +sigma;\n return function() {\n var y;\n\n // If available, use the second previously-generated uniform random.\n if (x != null) y = x, x = null;\n\n // Otherwise, generate a new x and y.\n else do {\n x = source() * 2 - 1;\n y = source() * 2 - 1;\n r = x * x + y * y;\n } while (!r || r > 1);\n\n return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);\n };\n }\n\n randomNormal.source = sourceRandomNormal;\n\n return randomNormal;\n})(defaultSource);\n","// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use\nconst mul = 0x19660D;\nconst inc = 0x3C6EF35F;\nconst eps = 1 / 0x100000000;\n\nexport default function lcg(seed = Math.random()) {\n let state = (0 <= seed && seed < 1 ? seed / eps : Math.abs(seed)) | 0;\n return () => (state = mul * state + inc | 0, eps * (state >>> 0));\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","\nimport {\n LitElement,\n css,\n svg,\n unsafeCSS,\n} from 'lit';\nimport * as d3 from 'd3';\n\n/*\n DecidablesElement Base Class - Not intended for instantiation!\n <decidables-element>\n*/\nexport default class DecidablesElement extends LitElement {\n getComputedStyleValue(property) {\n return getComputedStyle(this).getPropertyValue(property).trim();\n }\n\n firstUpdated(changedProperties) {\n super.firstUpdated(changedProperties);\n\n // Use focus highlighting if keyboard is used at all\n d3.select(this.renderRoot.host)\n .classed('keyboard', true)\n .on('mousemove.keyboard touchstart.keyboard', (event) => {\n const element = event.currentTarget;\n d3.select(element.renderRoot.host)\n .classed('keyboard', false)\n .on('mousemove.keyboard touchstart.keyboard', null);\n })\n .on('keydown.keyboard', (event) => {\n const element = event.currentTarget;\n d3.select(element.renderRoot.host)\n .classed('keyboard', true)\n .on('keydown.keyboard mousemove.keyboard touchstart.keyboard', null);\n });\n }\n\n static get greys() {\n const grey = '#999999';\n const greys = {};\n greys.white = '#ffffff';\n greys.light75 = d3.interpolateRgb(grey, '#ffffff')(0.75);\n greys.light50 = d3.interpolateRgb(grey, '#ffffff')(0.5);\n greys.light25 = d3.interpolateRgb(grey, '#ffffff')(0.25);\n greys.grey = grey;\n greys.dark25 = d3.interpolateRgb(grey, '#000000')(0.25);\n greys.dark50 = d3.interpolateRgb(grey, '#000000')(0.5);\n greys.dark75 = d3.interpolateRgb(grey, '#000000')(0.75);\n greys.black = '#000000';\n return greys;\n }\n\n static get shadows() {\n // Material Design elevation styles\n // References:\n // https://github.com/material-components/material-components-web/tree/master/packages/mdc-elevation\n // https://codepen.io/hanger/pen/yOGvQp\n /* eslint-disable key-spacing, object-curly-newline */\n return {\n elevations: [0, 2, 4, 8, 16],\n baselineColor: '#000000',\n baselineColorString: '0, 0, 0',\n inverseBaselineColor: '#FFFFFF',\n inverseBaselineColorString: '255, 255, 255',\n opacityUmbra: 0.2,\n opacityPenumbra: 0.14,\n opacityAmbient: 0.12,\n opacityBoost: 0.2,\n mapUmbra: {// $mdc-elevation-umbra-map\n 0: {x: 0, y: 0, b: 0, s: 0}, // offset-x, offset-y, blur-radius, spread-radius\n 2: {x: 0, y: 3, b: 1, s: -2},\n 4: {x: 0, y: 2, b: 4, s: -1},\n 8: {x: 0, y: 5, b: 5, s: -3},\n 16: {x: 0, y: 8, b: 10, s: -5},\n },\n mapPenumbra: {// $mdc-elevation-penumbra-map\n 0: {x: 0, y: 0, b: 0, s: 0}, // offset-x, offset-y, blur-radius, spread-radius\n 2: {x: 0, y: 2, b: 2, s: 0},\n 4: {x: 0, y: 4, b: 5, s: 0},\n 8: {x: 0, y: 8, b: 10, s: 1},\n 16: {x: 0, y: 16, b: 24, s: 2},\n },\n mapAmbient: {// $mdc-elevation-ambient-map\n 0: {x: 0, y: 0, b: 0, s: 0}, // offset-x, offset-y, blur-radius, spread-radius\n 2: {x: 0, y: 1, b: 5, s: 0},\n 4: {x: 0, y: 1, b: 10, s: 0},\n 8: {x: 0, y: 3, b: 14, s: 2},\n 16: {x: 0, y: 6, b: 30, s: 5},\n },\n };\n /* eslint-enable key-spacing, object-curly-newline */\n }\n\n static cssBoxShadow(elevation, rotate = false, inverse = false) {\n const umbraO = this.shadows.opacityUmbra + this.shadows.opacityBoost;\n const penumbraO = this.shadows.opacityPenumbra + this.shadows.opacityBoost;\n const ambientO = this.shadows.opacityAmbient + this.shadows.opacityBoost;\n\n const umbraC = (inverse)\n ? `rgba(${this.shadows.inverseBaselineColorString}, ${umbraO})`\n : `rgba(${this.shadows.baselineColorString}, ${umbraO})`;\n const penumbraC = (inverse)\n ? `rgba(${this.shadows.inverseBaselineColorString}, ${penumbraO})`\n : `rgba(${this.shadows.baselineColorString}, ${penumbraO})`;\n const ambientC = (inverse)\n ? `rgba(${this.shadows.inverseBaselineColorString}, ${ambientO})`\n : `rgba(${this.shadows.baselineColorString}, ${ambientO})`;\n\n const umbraM = this.shadows.mapUmbra[elevation];\n const penumbraM = this.shadows.mapPenumbra[elevation];\n const ambientM = this.shadows.mapAmbient[elevation];\n\n const umbraS = (rotate)\n ? `${-umbraM.y}px ${umbraM.y / 2}px ${umbraM.b}px ${umbraM.s}px`\n : `${umbraM.y / 2}px ${umbraM.y}px ${umbraM.b}px ${umbraM.s}px`;\n const penumbraS = (rotate)\n ? `${-penumbraM.y}px ${penumbraM.y / 2}px ${penumbraM.b}px ${penumbraM.s}px`\n : `${penumbraM.y / 2}px ${penumbraM.y}px ${penumbraM.b}px ${penumbraM.s}px`;\n const ambientS = (rotate)\n ? `${-ambientM.y}px ${ambientM.y / 2}px ${ambientM.b}px ${ambientM.s}px`\n : `${ambientM.y / 2}px ${ambientM.y}px ${ambientM.b}px ${ambientM.s}px`;\n\n return `${umbraS} ${umbraC}, ${penumbraS} ${penumbraC}, ${ambientS} ${ambientC}`;\n }\n\n static get svgDefs() {\n const shadows = DecidablesElement.shadows; /* eslint-disable-line prefer-destructuring */\n\n const filters = shadows.elevations.map((z) => {\n return `\n <filter id=${`shadow-${z}`} filterUnits=\"userSpaceOnUse\" x=\"-100%\" y=\"-100%\" width=\"200%\" height=\"200%\">\n <feComponentTransfer in=\"SourceAlpha\" result=\"solid\">\n <feFuncA type=\"table\" tableValues=\"0 1 1\"/>\n </feComponentTransfer>\n <feOffset in=\"solid\" result=\"offU\" dx=${shadows.mapUmbra[z].y / 2} dy=${shadows.mapUmbra[z].y} />\n <feOffset in=\"solid\" result=\"offP\" dx=${shadows.mapPenumbra[z].y / 2} dy=${shadows.mapPenumbra[z].y} />\n <feOffset in=\"solid\" result=\"offA\" dx=${shadows.mapAmbient[z].y / 2} dy=${shadows.mapAmbient[z].y} />\n ${(shadows.mapUmbra[z].s === 0)\n ? ''\n : `<feMorphology in=\"offU\" result=\"spreadU\" operator=${(shadows.mapUmbra[z].s > 0) ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapUmbra[z].s)} />`\n }\n ${(shadows.mapPenumbra[z].s === 0)\n ? ''\n : `<feMorphology in=\"offP\" result=\"spreadP\" operator=${(shadows.mapPenumbra[z].s > 0) ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapPenumbra[z].s)} />`\n }\n ${(shadows.mapAmbient[z].s === 0)\n ? ''\n : `<feMorphology in=\"offA\" result=\"spreadA\" operator=${(shadows.mapAmbient[z].s > 0) ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapAmbient[z].s)} />`\n }\n <feGaussianBlur in=${(shadows.mapUmbra[z].s === 0) ? 'offU' : 'spreadU'} result=\"blurU\" stdDeviation=${shadows.mapUmbra[z].b / 2} />\n <feGaussianBlur in=${(shadows.mapPenumbra[z].s === 0) ? 'offP' : 'spreadP'} result=\"blurP\" stdDeviation=${shadows.mapPenumbra[z].b / 2} />\n <feGaussianBlur in=${(shadows.mapAmbient[z].s === 0) ? 'offA' : 'spreadA'} result=\"blurA\" stdDeviation=${shadows.mapAmbient[z].b / 2} />\n <feFlood in=\"SourceGraphic\" result=\"opU\" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityUmbra + shadows.opacityBoost} />\n <feFlood in=\"SourceGraphic\" result=\"opP\" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityPenumbra + shadows.opacityBoost} />\n <feFlood in=\"SourceGraphic\" result=\"opA\" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityAmbient + shadows.opacityBoost} />\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 <feMorphology in=\"solid\" result=\"smaller\" operator=\"erode\" radius=\"1\" />\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>`;\n });\n\n return `\n <defs>\n ${filters}\n </defs>\n `;\n }\n\n static get svgFilters() {\n const shadows = DecidablesElement.shadows; /* eslint-disable-line prefer-destructuring */\n\n const filters = shadows.elevations.map((z) => {\n return svg`\n <filter id=${`shadow-${z}`} 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=${shadows.mapUmbra[z].y / 2} dy=${shadows.mapUmbra[z].y} />\n <feOffset in=\"solid\" result=\"offP\" dx=${shadows.mapPenumbra[z].y / 2} dy=${shadows.mapPenumbra[z].y} />\n <feOffset in=\"solid\" result=\"offA\" dx=${shadows.mapAmbient[z].y / 2} dy=${shadows.mapAmbient[z].y} />\n ${(shadows.mapUmbra[z].s === 0)\n ? svg``\n : svg`<feMorphology in=\"offU\" result=\"spreadU\" operator=${(shadows.mapUmbra[z].s > 0) ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapUmbra[z].s)} />`\n }\n ${(shadows.mapPenumbra[z].s === 0)\n ? svg``\n : svg`<feMorphology in=\"offP\" result=\"spreadP\" operator=${(shadows.mapPenumbra[z].s > 0) ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapPenumbra[z].s)} />`\n }\n ${(shadows.mapAmbient[z].s === 0)\n ? svg``\n : svg`<feMorphology in=\"offA\" result=\"spreadA\" operator=${(shadows.mapAmbient[z].s > 0) ? 'dilate' : 'erode'} radius=${Math.abs(shadows.mapAmbient[z].s)} />`\n }\n <feGaussianBlur in=${(shadows.mapUmbra[z].s === 0) ? 'offU' : 'spreadU'} result=\"blurU\" stdDeviation=${shadows.mapUmbra[z].b / 2} />\n <feGaussianBlur in=${(shadows.mapPenumbra[z].s === 0) ? 'offP' : 'spreadP'} result=\"blurP\" stdDeviation=${shadows.mapPenumbra[z].b / 2} />\n <feGaussianBlur in=${(shadows.mapAmbient[z].s === 0) ? 'offA' : 'spreadA'} result=\"blurA\" stdDeviation=${shadows.mapAmbient[z].b / 2} />\n <feFlood in=\"SourceGraphic\" result=\"opU\" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityUmbra + shadows.opacityBoost} />\n <feFlood in=\"SourceGraphic\" result=\"opP\" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityPenumbra + shadows.opacityBoost} />\n <feFlood in=\"SourceGraphic\" result=\"opA\" flood-color=${shadows.baselineColor} flood-opacity=${shadows.opacityAmbient + shadows.opacityBoost} />\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 <feMorphology in=\"solid\" result=\"smaller\" operator=\"erode\" radius=\"1\" />\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>`;\n });\n\n return svg`\n <svg class=\"defs\">\n <defs>\n ${filters}\n </defs>\n </svg>\n `;\n }\n\n static get styles() {\n return css`\n :host {\n ---shadow-0: var(--shadow-0, ${unsafeCSS(this.cssBoxShadow(0))});\n ---shadow-2: var(--shadow-2, ${unsafeCSS(this.cssBoxShadow(2))});\n ---shadow-4: var(--shadow-4, ${unsafeCSS(this.cssBoxShadow(4))});\n ---shadow-8: var(--shadow-8, ${unsafeCSS(this.cssBoxShadow(8))});\n\n ---color-background: var(--color-background, ${unsafeCSS(this.greys.white)});\n ---color-border: var(--color-border, ${unsafeCSS(this.greys.light75)});\n ---color-text: var(--color-text, ${unsafeCSS(this.greys.dark75)});\n ---color-text-inverse: var(--color-text-inverse, ${unsafeCSS(this.greys.white)});\n ---color-link: var(--color-link, ${unsafeCSS(this.greys.dark25)});\n ---color-element-background: var(--color-element-background, ${unsafeCSS(this.greys.light75)});\n ---color-element-disabled: var(--color-element-disabled, ${unsafeCSS(this.greys.light50)});\n ---color-element-enabled: var(--color-element-enabled, ${unsafeCSS(this.greys.dark25)});\n ---color-element-selected: var(--color-element-selected, ${unsafeCSS(this.greys.grey)});\n ---color-element-border: var(--color-element-border, ${unsafeCSS(this.greys.dark50)});\n ---color-element-emphasis: var(--color-element-emphasis, ${unsafeCSS(this.greys.dark75)});\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 ---border: var(--border, 1px solid var(---color-border));\n ---border-radius: var(--border-radius, 0.25rem);\n ---transition-duration: var(--transition-duration, 500ms);\n\n font-family: var(---font-family-base);\n font-weight: normal;\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 }\n}\n","\nimport {html, css} from 'lit';\n\nimport DecidablesElement from './decidables-element';\n\nexport default class DecidablesButton extends DecidablesElement {\n static get properties() {\n return {\n disabled: {\n attribute: 'disabled',\n type: Boolean,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.disabled = false;\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n ---decidables-button-background-color-disabled: var(--decidables-button-background-color, var(---color-element-disabled));\n ---decidables-button-background-color-enabled: var(--decidables-button-background-color, var(---color-element-enabled));\n\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: var(---border-radius);\n outline: none;\n }\n\n button:disabled {\n background-color: var(---decidables-button-background-color-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-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 ];\n }\n\n render() {\n return html`\n <button ?disabled=${this.disabled}>\n <slot></slot>\n </button>\n `;\n }\n}\n\ncustomElements.define('decidables-button', DecidablesButton);\n","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=o=>o??t;export{o as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","\nimport {ifDefined} from 'lit/directives/if-defined.js'; /* eslint-disable-line import/extensions */\nimport {html, css, unsafeCSS} from 'lit';\n\nimport DecidablesElement from './decidables-element';\n\nexport default class DecidablesSlider extends DecidablesElement {\n static get properties() {\n return {\n disabled: {\n attribute: 'disabled',\n type: Boolean,\n reflect: true,\n },\n\n scale: {\n attribute: 'scale',\n type: Boolean,\n reflect: true,\n },\n\n max: {\n attribute: 'max',\n type: Number,\n reflect: true,\n },\n min: {\n attribute: 'min',\n type: Number,\n reflect: true,\n },\n step: {\n attribute: 'step',\n type: Number,\n reflect: true,\n },\n value: {\n attribute: 'value',\n type: Number,\n reflect: true,\n },\n\n nonlinear: {\n attribute: false,\n type: Boolean,\n reflect: false,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.disabled = false;\n\n this.scale = false;\n\n this.max = undefined;\n this.min = undefined;\n this.step = undefined;\n this.value = undefined;\n\n this.nonlinear = false;\n\n // Properties\n this.rangeMax = undefined;\n this.rangeMin = undefined;\n this.rangeStep = undefined;\n this.rangeValue = undefined;\n\n // Transform\n this.toRange = undefined;\n this.fromRange = undefined;\n }\n\n nonlinearRange(nonlinear, toRange, fromRange) {\n this.nonlinear = nonlinear;\n\n this.toRange = nonlinear ? toRange : undefined;\n this.fromRange = nonlinear ? fromRange : undefined;\n }\n\n rangeChanged(event) {\n this.value = this.nonlinear ? this.fromRange(event.target.value) : event.target.value;\n this.dispatchEvent(new CustomEvent('change', {\n detail: {\n value: this.value,\n },\n bubbles: true,\n }));\n }\n\n rangeInputted(event) {\n this.value = this.nonlinear ? this.fromRange(event.target.value) : event.target.value;\n }\n\n spinnerInputted(event) {\n this.value = event.target.value;\n }\n\n willUpdate() {\n this.rangeMax = (this.max === undefined)\n ? undefined\n : this.nonlinear\n ? this.toRange(this.max)\n : this.max;\n this.rangeMin = (this.min === undefined)\n ? undefined\n : this.nonlinear\n ? this.toRange(this.min)\n : this.min;\n this.rangeStep = (this.step === undefined)\n ? undefined\n : this.nonlinear\n ? 'any'\n : this.step;\n this.rangeValue = (this.value === undefined)\n ? undefined\n : this.nonlinear\n ? this.toRange(this.value)\n : this.value;\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n ---decidables-slider-background-color: var(--decidables-slider-background-color, var(---color-element-disabled));\n ---decidables-slider-color: var(--decidables-slider-color, var(---color-element-enabled));\n ---decidables-spinner-background-color: var(--decidables-slider-background-color, none);\n\n ---shadow-2-rotate: var(--shadow-2-rotate, ${unsafeCSS(this.cssBoxShadow(2, true, false))});\n ---shadow-4-rotate: var(--shadow-4-rotate, ${unsafeCSS(this.cssBoxShadow(4, true, false))});\n ---shadow-8-rotate: var(--shadow-8-rotate, ${unsafeCSS(this.cssBoxShadow(8, true, false))});\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 position: relative;\n display: flex;\n\n flex-direction: row;\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 background: var(---decidables-spinner-background-color);\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(---decidables-slider-background-color);\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(---decidables-slider-background-color);\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(---decidables-slider-background-color);\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(---decidables-slider-background-color); */\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(---decidables-slider-background-color); */\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(---decidables-slider-background-color);\n }\n\n /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */\n input[type=range]:focus::-ms-fill-upper {\n background: var(---decidables-slider-background-color);\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(---decidables-slider-background-color);\n box-shadow: none;\n }\n\n input[type=range]:enabled::-webkit-slider-thumb {\n background: var(---decidables-slider-color);\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(---decidables-slider-background-color);\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(---decidables-slider-color);\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(---decidables-slider-background-color);\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(---decidables-slider-color);\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 datalist {\n position: absolute;\n left: 2rem;\n z-index: -1;\n display: flex;\n\n flex-direction: column;\n\n align-items: flex-start;\n justify-content: space-between;\n\n height: 4.75rem;\n\n font-size: 0.75rem;\n }\n\n option {\n padding: 0;\n\n line-height: 0.8;\n min-block-size: 0;\n }\n\n option::before {\n content: \"– \";\n }\n `,\n ];\n }\n\n render() {\n return html`\n <label for=\"slider\">\n <slot></slot>\n </label>\n <div class=\"range\">\n <input ?disabled=${this.disabled} type=\"range\" id=\"slider\" min=${ifDefined(this.rangeMin)} max=${ifDefined(this.rangeMax)} step=${ifDefined(this.rangeStep)} .value=${this.rangeValue} @change=${this.rangeChanged.bind(this)} @input=${this.rangeInputted.bind(this)}>\n ${this.scale\n ? html`\n <datalist id=\"ticks\">\n <option value=${ifDefined(this.rangeMax)} label=${ifDefined(this.max)}></option>\n <option value=${ifDefined(this.rangeMin)} label=${ifDefined(this.min)}></option>\n </datalist>\n `\n : html``\n }\n </div>\n <decidables-spinner ?disabled=${this.disabled} min=${ifDefined(this.min)} max=${ifDefined(this.max)} step=${ifDefined(this.step)} .value=${this.value} @input=${this.spinnerInputted.bind(this)}></decidables-spinner>\n `;\n }\n}\n\ncustomElements.define('decidables-slider', DecidablesSlider);\n","\nimport {ifDefined} from 'lit/directives/if-defined.js'; /* eslint-disable-line import/extensions */\nimport {html, css} from 'lit';\n\nimport DecidablesElement from './decidables-element';\n\nexport default class DecidablesSpinner extends DecidablesElement {\n static get properties() {\n return {\n disabled: {\n attribute: 'disabled',\n type: Boolean,\n reflect: true,\n },\n max: {\n attribute: 'max',\n type: Number,\n reflect: true,\n },\n min: {\n attribute: 'min',\n type: Number,\n reflect: true,\n },\n step: {\n attribute: 'step',\n type: Number,\n reflect: true,\n },\n value: {\n attribute: 'value',\n type: Number,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.disabled = false;\n this.max = undefined;\n this.min = undefined;\n this.step = undefined;\n this.value = undefined;\n }\n\n inputted(event) {\n this.value = event.target.value;\n }\n\n static get styles() {\n return [\n super.styles,\n css`\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 ---decidables-spinner-postfix: var(--decidables-spinner-postfix, \"\");\n ---decidables-spinner-postfix-padding: var(--decidables-spinner-postfix-padding, 0);\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 label::after {\n position: absolute;\n right: 0.25rem;\n bottom: 1px;\n\n font-size: var(---decidables-spinner-font-size);\n line-height: normal;\n\n content: var(---decidables-spinner-postfix);\n }\n\n input[type=number] {\n width: var(---decidables-spinner-input-width);\n padding-right: var(---decidables-spinner-postfix-padding);\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 ];\n }\n\n render() {\n return html`\n <label>\n <slot></slot>\n <input ?disabled=${this.disabled} type=\"number\" min=${ifDefined(this.min)} max=${ifDefined(this.max)} step=${ifDefined(this.step)} .value=${this.value} @input=${this.inputted.bind(this)}>\n </label>\n `;\n }\n}\n\ncustomElements.define('decidables-spinner', DecidablesSpinner);\n","\nimport {html, css} from 'lit';\n\nimport DecidablesElement from './decidables-element';\n\nexport default class DecidablesSwitch extends DecidablesElement {\n static get properties() {\n return {\n checked: {\n attribute: 'checked',\n type: Boolean,\n reflect: true,\n },\n disabled: {\n attribute: 'disabled',\n type: Boolean,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.checked = false;\n this.disabled = false;\n }\n\n changed(event) {\n this.checked = event.target.checked;\n this.dispatchEvent(new CustomEvent('change', {\n detail: {\n checked: this.checked,\n },\n bubbles: true,\n }));\n }\n\n static get styles() {\n return [\n super.styles,\n css`\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\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 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 /* stylelint-enable selector-max-compound-selectors */\n `,\n ];\n }\n\n render() {\n return html`\n <input type=\"checkbox\" id=\"switch\" ?checked=${this.checked} ?disabled=${this.disabled} @change=${this.changed.bind(this)}>\n <label for=\"switch\">\n <slot name=\"off-label\"></slot>\n </label>\n <label for=\"switch\">\n <slot></slot>\n </label>\n `;\n }\n}\n\ncustomElements.define('decidables-switch', DecidablesSwitch);\n","\nimport {html, css} from 'lit';\n\nimport DecidablesElement from './decidables-element';\n\nexport default class DecidablesToggle extends DecidablesElement {\n static get properties() {\n return {\n disabled: {\n attribute: 'disabled',\n type: Boolean,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.disabled = false;\n }\n\n static get styles() {\n return [\n super.styles,\n css`\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 ];\n }\n\n render() {\n return html`\n <fieldset ?disabled=${this.disabled}>\n <legend><slot name=\"label\"></slot></legend>\n <slot></slot>\n </fieldset>\n `;\n }\n}\n\ncustomElements.define('decidables-toggle', DecidablesToggle);\n","\nimport {html, css} from 'lit';\n\nimport DecidablesElement from './decidables-element';\n\nexport default class DecidablesToggleOption extends DecidablesElement {\n static get properties() {\n return {\n checked: {\n attribute: 'checked',\n type: Boolean,\n reflect: true,\n },\n disabled: {\n attribute: 'disabled',\n type: Boolean,\n reflect: true,\n },\n name: {\n attribute: 'name',\n type: String,\n reflect: true,\n },\n value: {\n attribute: 'value',\n type: String,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.checked = false;\n this.disabled = false;\n this.name = undefined;\n this.value = undefined;\n }\n\n changed(event) {\n this.checked = event.target.checked;\n this.dispatchEvent(new CustomEvent('change', {\n detail: {\n checked: this.checked,\n value: this.value,\n },\n bubbles: true,\n }));\n }\n\n static get styles() {\n return [\n super.styles,\n css`\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\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 ];\n }\n\n render() {\n return html`\n <input type=\"radio\" id=\"toggle-option\" name=${this.name} value=${this.value} .checked=${this.checked} @change=${this.changed.bind(this)}>\n <label for=\"toggle-option\">\n <slot></slot>\n </label>\n `;\n }\n}\n\ncustomElements.define('decidables-toggle-option', DecidablesToggleOption);\n","\nexport default function DecidablesMixinResizeable(superClass) {\n return class extends superClass {\n static get properties() {\n return {\n width: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n height: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n rem: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n };\n }\n\n constructor() {\n super();\n\n this.width = NaN;\n this.height = NaN;\n this.rem = NaN;\n }\n\n getDimensions() {\n this.width = parseFloat(this.getComputedStyleValue('width'), 10);\n this.height = parseFloat(this.getComputedStyleValue('height'), 10);\n this.rem = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('font-size'), 10);\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n this.resizeObserver = new ResizeObserver(this.getDimensions.bind(this));\n this.resizeObserver.observe(this);\n }\n\n disconnectedCallback() {\n this.resizeObserver.unobserve(this);\n\n super.disconnectedCallback();\n }\n };\n}\n","\nimport {\n css,\n unsafeCSS,\n} from 'lit';\nimport * as d3 from 'd3';\n\nimport {DecidablesElement} from '@decidables/decidables-elements';\n\nimport {colors} from './colors.yml';\n\n/*\n AccumulableElement Base Class - Not intended for instantiation!\n*/\nexport default class AccumulableElement extends DecidablesElement {\n static get properties() {\n return {\n interactive: {\n attribute: 'interactive',\n type: Boolean,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n this.interactive = false;\n }\n\n static get colors() {\n return colors;\n }\n\n static get lights() {\n return Object.keys(AccumulableElement.colors).reduce((acc, cur) => {\n acc[cur] = d3.interpolateRgb(AccumulableElement.colors[cur], '#ffffff')(0.5);\n return acc;\n }, {});\n }\n\n static get darks() {\n return Object.keys(AccumulableElement.colors).reduce((acc, cur) => {\n acc[cur] = d3.interpolateRgb(AccumulableElement.colors[cur], '#000000')(0.5);\n return acc;\n }, {});\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n /* Declare base colors */\n ${\n unsafeCSS(Object.keys(AccumulableElement.colors).map((color) => {\n return `---color-${color}: var(--color-${color}, ${this.colors[color]});`;\n }).join('\\n'))\n }\n\n /* Declare light colors */\n ${\n unsafeCSS(Object.keys(AccumulableElement.colors).map((color) => {\n return `---color-${color}-light: var(--color-${color}-light, ${this.lights[color]});`;\n }).join('\\n'))\n }\n\n /* Declare dark colors */\n ${\n unsafeCSS(Object.keys(AccumulableElement.colors).map((color) => {\n return `---color-${color}-dark: var(--color-${color}-dark, ${this.darks[color]});`;\n }).join('\\n'))\n }\n }\n `,\n ];\n }\n}\n","\nimport {html, css} from 'lit';\n\nimport '@decidables/decidables-elements/button';\nimport '@decidables/decidables-elements/slider';\nimport '@decidables/decidables-elements/switch';\nimport '@decidables/decidables-elements/toggle';\nimport '@decidables/decidables-elements/toggle-option';\n\nimport AccumulableElement from '../accumulable-element';\n\n/*\n AccumulableControl element\n <accumulable-control>\n\n Attributes:\n\n*/\nexport default class AccumulableControl extends AccumulableElement {\n static get properties() {\n return {\n trials: {\n attribute: 'trials',\n type: Number,\n reflect: true,\n },\n resample: {\n attribute: 'resample',\n type: Boolean,\n reflect: true,\n },\n\n duration: {\n attribute: 'duration',\n type: Number,\n reflect: true,\n },\n coherence: {\n attribute: 'coherence',\n type: Number,\n reflect: true,\n },\n color: {\n attribute: 'color',\n type: String,\n reflect: true,\n },\n\n run: {\n attribute: 'run',\n type: Boolean,\n reflect: true,\n },\n pause: {\n attribute: 'pause',\n type: Boolean,\n reflect: true,\n },\n reset: {\n attribute: 'reset',\n type: Boolean,\n reflect: true,\n },\n\n state: {\n attribute: false,\n type: String,\n reflect: false,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.trials = undefined;\n this.resample = false;\n\n this.duration = undefined;\n this.coherence = undefined;\n this.colors = ['none', 'measure', 'outcome', 'all'];\n this.color = undefined;\n\n this.run = false;\n this.pause = false;\n this.reset = false;\n\n // Properties\n this.states = ['resetted', 'running', 'paused', 'ended'];\n this.state = 'resetted';\n }\n\n setTrials(e) {\n this.trials = e.target.value;\n this.dispatchEvent(new CustomEvent('accumulable-control-trials', {\n detail: {\n trials: this.trials,\n },\n bubbles: true,\n }));\n }\n\n doResample() {\n this.dispatchEvent(new CustomEvent('accumulable-control-resample', {\n detail: {},\n bubbles: true,\n }));\n }\n\n setDuration(e) {\n this.duration = e.target.value;\n this.dispatchEvent(new CustomEvent('accumulable-control-duration', {\n detail: {\n duration: this.duration,\n },\n bubbles: true,\n }));\n }\n\n setCoherence(e) {\n this.coherence = e.target.value;\n this.dispatchEvent(new CustomEvent('accumulable-control-coherence', {\n detail: {\n coherence: this.coherence,\n },\n bubbles: true,\n }));\n }\n\n chooseColor(e) {\n this.color = e.target.value;\n this.dispatchEvent(new CustomEvent('accumulable-control-color', {\n detail: {\n color: this.color,\n },\n bubbles: true,\n }));\n }\n\n doRun() {\n this.state = 'running';\n this.dispatchEvent(new CustomEvent('accumulable-control-run', {\n detail: {},\n bubbles: true,\n }));\n }\n\n doPause() {\n this.state = 'paused';\n this.dispatchEvent(new CustomEvent('accumulable-control-pause', {\n detail: {},\n bubbles: true,\n }));\n }\n\n doReset() {\n this.state = 'resetted';\n this.dispatchEvent(new CustomEvent('accumulable-control-reset', {\n detail: {},\n bubbles: true,\n }));\n }\n\n complete() {\n this.state = 'ended';\n }\n\n static get styles() {\n return [\n super.styles,\n css`\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 ];\n }\n\n render() {\n return html`\n <div class=\"holder\">\n ${this.trials != null\n ? html`<decidables-slider class=\"trials\" min=\"1\" max=\"100\" step=\"1\" .value=${this.trials} @change=${this.setTrials.bind(this)} @input=${this.setTrials.bind(this)}>Trials</decidables-slider>`\n : html``}\n ${this.resample\n ? html`\n <div class=\"buttons\">\n ${this.resample\n ? html`<decidables-button name=\"resample\" @click=${this.doResample.bind(this)}>Resample</decidables-button>`\n : html``}\n </div>\n `\n : html``}\n ${this.duration != null\n ? html`<decidables-slider class=\"duration\" min=\"10\" max=\"2000\" step=\"10\" .value=${this.duration} @change=${this.setDuration.bind(this)} @input=${this.setDuration.bind(this)}>Duration</decidables-slider>`\n : html``}\n ${this.coherence != null\n ? html`<decidables-slider class=\"coherence\" min=\"0\" max=\"1\" step=\".01\" .value=${this.coherence} @change=${this.setCoherence.bind(this)} @input=${this.setCoherence.bind(this)}>Coherence</decidables-slider>`\n : html``}\n ${this.color != null\n ? html`\n <decidables-toggle class=\"color\" @change=${this.chooseColor.bind(this)}>\n <span slot=\"label\">Emphasis</span>\n <decidables-toggle-option name=\"toggle\" value=\"none\" ?checked=${this.color === 'none'}>None</decidables-toggle-option>\n <decidables-toggle-option name=\"toggle\" value=\"measure\" ?checked=${this.color === 'measure'}>Measure</decidables-toggle-option>\n <decidables-toggle-option name=\"toggle\" value=\"outcome\" ?checked=${this.color === 'outcome'}>Outcome</decidables-toggle-option>\n <decidables-toggle-option name=\"toggle\" value=\"all\" ?checked=${this.color === 'all'}>All</decidables-toggle-option>\n </decidables-toggle>\n `\n : html``}\n ${this.run || this.pause || this.reset\n ? html`\n <div class=\"buttons\">\n ${this.run\n ? html`<decidables-button name=\"run\" ?disabled=${this.state === 'running' || this.state === 'ended'} @click=${this.doRun.bind(this)}>Run</decidables-button>`\n : html``}\n ${this.pause\n ? html`<decidables-button name=\"pause\" ?disabled=${this.state !== 'running'} @click=${this.doPause.bind(this)}>Pause</decidables-button>`\n : html``}\n ${this.reset\n ? html`<decidables-button name=\"reset\" ?disabled=${this.state === 'resetted'} @click=${this.doReset.bind(this)}>Reset</decidables-button>`\n : html``}\n </div>\n `\n : html``}\n </div>`;\n }\n}\n\ncustomElements.define('accumulable-control', AccumulableControl);\n","\n/*\n DDMMath Static Class - Not intended for instantiation!\n\n Model parameters:\n a = boundary separation [0, Infinity)\n z = starting point as a proportion of a (0, 1)\n v = drift rate (per second) (-Infinity, Infinity)\n t0 = non-decision time (in milliseconds) (0, Infinity)\n s = within-trial variability in drift rate (s^2 = infinitesimal variance) [0, Infinity)\n\n zPrime = starting point on a 0-to-a scale (typically used in published equations) [0, Infinity)\n\n Behavioral variables:\n pE = proportion of error trials\n pC = proportion of correct trials\n m = mean of overall RTs (in milliseconds)\n mE = mean of error RTs (in milliseconds)\n mC = mean correct RTs (in milliseconds)\n sd = standard deviation of overall RTs (in milliseconds)\n sdE = standard deviation of error RTs (in milliseconds)\n sdC = standard deviation of correct RTs (in milliseconds)\n\n Equations:\n Probability of correct and error responses (Alexandrowicz, 2020)\n Mean of overall, error, and correct RTs (Grasman et al., 2009)\n Standard deviation of overall, error, and correct RTs (Grasman et al., 2009)\n Density of error and correct RT distributions (Alexandrowicz, 2020)\n EZ-diffusion model (Wagenmakers et al., 2007)\n*/\nexport default class DDMMath {\n static s = {\n DEFAULT: 1,\n };\n\n static a = {\n DEFAULT: 1.2,\n MIN: 0.01,\n MAX: 2.0,\n STEP: 0.01,\n JUMP: 0.1,\n };\n\n static z = {\n DEFAULT: 0.55,\n MIN: 0.01,\n MAX: 0.99,\n STEP: 0.01,\n JUMP: 0.1,\n };\n\n static v = {\n DEFAULT: 1.5,\n MIN: 0.01,\n MAX: 5.0,\n STEP: 0.01,\n JUMP: 0.1,\n };\n\n static t0 = {\n DEFAULT: 150,\n MIN: 0,\n MAX: 500,\n STEP: 1,\n JUMP: 10,\n };\n\n // Calculate a bunch of statistics for an array of trials\n static trials2stats(trials) {\n const stats = {};\n\n // First-order sums\n const sums = trials.reduce(\n (accumulator, trial) => {\n switch (trial.outcome) {\n case 'correct':\n accumulator.correctCount += 1;\n accumulator.correctRTSum += trial.rt;\n break;\n case 'error':\n accumulator.errorCount += 1;\n accumulator.errorRTSum += trial.rt;\n break;\n case 'nr':\n accumulator.nrCount += 1;\n break;\n default:\n // No-op\n }\n return accumulator;\n },\n {\n correctCount: 0,\n errorCount: 0,\n nrCount: 0,\n\n correctRTSum: 0,\n errorRTSum: 0,\n },\n );\n\n // First-order stats\n stats.correctCount = sums.correctCount;\n stats.errorCount = sums.errorCount;\n stats.nrCount = sums.nrCount;\n stats.accuracy = sums.correctCount / (sums.correctCount + sums.errorCount + sums.nrCount);\n\n stats.correctMeanRT = sums.correctRTSum / sums.correctCount;\n stats.errorMeanRT = sums.errorRTSum / sums.errorCount;\n stats.meanRT = (sums.correctRTSum + sums.errorRTSum) / (sums.correctCount + sums.errorCount);\n\n // Second-order sums\n const sums2 = trials.reduce(\n (accumulator, trial) => {\n switch (trial.outcome) {\n case 'correct':\n accumulator.ss += (trial.rt - stats.meanRT) ** 2;\n accumulator.correctSS += (trial.rt - stats.correctMeanRT) ** 2;\n break;\n case 'error':\n accumulator.ss += (trial.rt - stats.meanRT) ** 2;\n accumulator.errorSS += (trial.rt - stats.errorMeanRT) ** 2;\n break;\n default:\n // No-op\n }\n return accumulator;\n },\n {\n ss: 0,\n correctSS: 0,\n errorSS: 0,\n },\n );\n\n // Second-order stats\n stats.correctSDRT = (stats.correctCount > 1)\n ? Math.sqrt(sums2.correctSS / (stats.correctCount - 1))\n : NaN;\n stats.errorSDRT = (stats.errorCount > 1)\n ? Math.sqrt(sums2.errorSS / (stats.errorCount - 1))\n : NaN;\n stats.sdRT = (stats.correctCount + stats.errorCount > 1)\n ? Math.sqrt(sums2.ss / (stats.correctCount + stats.errorCount - 1))\n : NaN;\n\n return stats;\n }\n\n // Probability of an Error Response\n static azv2pE(a, z, v, s = DDMMath.s.DEFAULT) {\n const zPrime = a * z;\n\n const A = Math.exp((-2 * v * a) / s ** 2);\n const Z = Math.exp((-2 * v * zPrime) / s ** 2);\n\n return (A - Z) / (A - 1);\n }\n\n // Probability of a Correct Response\n static azv2pC(a, z, v, s = DDMMath.s.DEFAULT) {\n return DDMMath.azv2pE(a, 1 - z, -v, s);\n }\n\n // Mean Overall RT\n // Equation 5 (Grasman et al., 2009)\n static azvt02m(a, z, v, t0, s = DDMMath.s.DEFAULT) {\n const zPrime = a * z;\n const A = Math.exp((-2 * v * a) / s ** 2) - 1;\n const Z = Math.exp((-2 * v * zPrime) / s ** 2) - 1;\n\n const mean = -(zPrime / v) + (a / v) * (Z / A);\n return t0 + mean * 1000;\n }\n\n // SD Overall RT\n // Equation 6 (Grasman et al., 2009)\n static azv2sd(a, z, v, s = DDMMath.s.DEFAULT) {\n const zPrime = a * z;\n const A = Math.exp((-2 * v * a) / s ** 2) - 1;\n const Z = Math.exp((-2 * v * zPrime) / s ** 2) - 1;\n\n const variance = (\n (\n (-v * a ** 2 * (Z + 4) * Z) / A ** 2\n ) + (\n ((-3 * v * a ** 2 + 4 * v * zPrime * a + s ** 2 * a) * Z + 4 * v * zPrime * a) / A\n ) - (\n s ** 2 * zPrime\n )\n ) / v ** 3;\n\n return Math.sqrt(variance) * 1000;\n }\n\n // Mean Error RT\n // Equation 13 (Grasman et al., 2009)\n static azvt02mE(a, z, v, t0, s = DDMMath.s.DEFAULT) {\n function phi(x, y) {\n return Math.exp((2 * v * y) / (s ** 2)) - Math.exp((2 * v * x) / (s ** 2));\n }\n const zPrime = a * z;\n\n const mean = (zPrime * (phi(zPrime - a, a) + phi(0, zPrime)) + 2 * a * phi(zPrime, 0))\n / (v * phi(zPrime, a) * phi(-a, 0));\n return t0 + mean * 1000;\n }\n\n // SD Error RT\n // Equation 14 (Grasman et al., 2009)\n static azv2sdE(a, z, v, s = DDMMath.s.DEFAULT) {\n function phi(x, y) {\n return Math.exp((2 * v * y) / (s ** 2)) - Math.exp((2 * v * x) / (s ** 2));\n }\n const zPrime = a * z;\n\n const variance = (\n (\n -2 * a * phi(0, zPrime)\n * ((2 * v * a * phi(zPrime, 2 * a)) + (s ** 2 * phi(0, a) * phi(zPrime, a)))\n * Math.exp((2 * v * a) / s ** 2)\n ) / (\n v ** 3 * phi(0, a) ** 2 * phi(zPrime, a) ** 2\n )\n ) + (\n (\n 4 * v * zPrime * (2 * a - zPrime) * Math.exp((2 * v * (zPrime + a)) / s ** 2)\n + zPrime * s ** 2 * phi(2 * zPrime, 2 * a)\n ) / (\n v ** 3 * phi(zPrime, a) ** 2\n )\n );\n\n return Math.sqrt(variance) * 1000;\n }\n\n // Mean Correct RT\n static azvt02mC(a, z, v, t0, s = DDMMath.s.DEFAULT) {\n return DDMMath.azvt02mE(a, 1 - z, -v, t0, s);\n }\n\n // SD Correct RT\n static azv2sdC(a, z, v, s = DDMMath.s.DEFAULT) {\n return DDMMath.azv2sdE(a, 1 - z, -v, s);\n }\n\n // Density of Error RT\n static tazv2gE(t, a, z, v, s = DDMMath.s.DEFAULT) {\n if (!t) return 0;\n\n const zPrime = a * z;\n const base = ((Math.PI * s ** 2) / a ** 2) * Math.exp((-zPrime * v) / s ** 2);\n\n let k = 0;\n let term = 0;\n let sum = 0;\n do {\n k += 1;\n\n term = k\n * Math.sin((Math.PI * zPrime * k) / a)\n * Math.exp(-0.5 * ((v ** 2 / s ** 2) + ((Math.PI ** 2 * k ** 2 * s ** 2) / a ** 2)) * t);\n\n sum += term;\n } while (k < 200); // ?? HACK\n\n return base * sum;\n }\n\n // Density of Correct RT\n static tazv2gC(t, a, z, v, s = DDMMath.s.DEFAULT) {\n return DDMMath.tazv2gE(t, a, 1 - z, -v, s);\n }\n\n // Adapted from https://raoul.socsci.uva.nl/EZ2/EZ2_new.html\n // EZ-function for starting values\n // input: obj - Object with properties\n // pC - Proportion correct\n // sd - sample standard deviation of the RT's in ms\n // m - sample mean of the RT's in ms\n // s - diffusion standard deviation\n // returns: Object with properties v, a, and t0, containing EZ-estimates of these parameters\n static data2ez({\n accuracy: pC,\n sdRT: sd,\n meanRT: m,\n s,\n }) {\n function sign(r) {\n return ((r > 0) ? 1 : ((r === 0) ? 0 : -1));\n }\n\n function logit(p) {\n return Math.log(p / (1 - p));\n }\n\n const vrt = (sd / 1000) ** 2;\n const mrt = m / 1000;\n\n const s2 = s ** 2;\n const l = logit(pC);\n const x = (l * (l * pC ** 2 - l * pC + pC - 0.5)) / vrt;\n const v = sign(pC - 0.5) * s * x ** (1 / 4);\n const a = (s2 * logit(pC)) / v;\n const y = (-v * a) / s2;\n const mdt = ((a / (2 * v)) * (1 - Math.exp(y))) / (1 + Math.exp(y));\n const t0 = (mrt ? mrt - mdt : null); // compute Ter only if MRT was provided\n\n const t0Prime = t0 * 1000;\n return {\n v,\n a,\n t0: t0Prime,\n s,\n };\n }\n\n static data2ez2() {\n throw new Error('data2ez2 is not implemented!');\n }\n}\n","\nimport {html, css} from 'lit';\n\nimport DDMMath from '@decidables/accumulable-math';\nimport '@decidables/decidables-elements/button';\n\nimport AccumulableElement from '../accumulable-element';\n\n/*\n AccumulableResponse element\n <accumulable-response>\n\n Attributes:\n\n*/\nexport default class AccumulableResponse extends AccumulableElement {\n static get properties() {\n return {\n feedback: {\n attribute: 'feedback',\n type: Boolean,\n reflect: true,\n },\n trial: {\n attribute: 'trial',\n type: Boolean,\n reflect: true,\n },\n payoff: {\n attribute: 'payoff',\n type: String,\n reflect: true,\n },\n correctPayoff: {\n attribute: 'correct-payoff',\n type: Number,\n reflect: true,\n },\n errorPayoff: {\n attribute: 'error-payoff',\n type: Number,\n reflect: true,\n },\n nrPayoff: {\n attribute: 'no-response-payoff',\n type: Number,\n reflect: true,\n },\n\n state: {\n attribute: false,\n type: String,\n reflect: false,\n },\n trialCount: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n trialTotal: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.feedback = false; // Display feedback?\n this.trial = false; // Show trial count?\n this.payoffs = ['none', 'trial', 'total']; // Possible types of 'payoff' info\n this.payoff = 'none'; // What payoff info to display\n\n this.correctPayoff = 0; // Correct payoff\n this.errorPayoff = 0; // Error payoff\n this.nrPayoff = 0; // No Response payoff\n\n // Properties\n this.states = ['off', 'waiting', 'feedback']; // Possible states\n this.state = 'off'; // Current state\n\n this.trialCount = 0; // Current trial\n this.trialTotal = 0; // Total trials\n\n // Private\n this.signals = ['left', 'right']; // Possible values of 'signal'\n this.signal = undefined; // Signal for current trial\n this.responses = ['left', 'right']; // Possible values of 'response'\n this.response = undefined; // Response for current trial\n this.outcomes = ['correct', 'error', 'nr']; // Possible values of 'outcome'\n this.outcome = undefined; // Outcome for current trial\n this.startTime = undefined; // Start time of current trial\n this.rt = undefined; // RT for current trial\n\n this.data = {};\n\n this.trials = []; // Record of trials in block\n this.alignState();\n }\n\n get trialPayoff() {\n switch (this.outcome) {\n case 'correct':\n return this.correctPayoff;\n case 'error':\n return this.errorPayoff;\n case 'nr':\n return this.nrPayoff;\n default:\n return undefined;\n }\n }\n\n get totalPayoff() {\n return ((this.data.correctCount * this.correctPayoff)\n + (this.data.errorCount * this.errorPayoff)\n + (this.data.nrCount * this.nrPayoff));\n }\n\n alignState() {\n this.data = DDMMath.trials2stats(this.trials);\n }\n\n start(signal, trial) {\n this.startTime = Date.now();\n this.trialCount = trial;\n this.state = 'waiting';\n this.signal = signal;\n this.response = undefined;\n this.outcome = undefined;\n this.rt = undefined;\n }\n\n stop() {\n this.state = 'feedback';\n if (this.response === undefined) {\n this.outcome = 'nr';\n this.rt = undefined;\n\n this.trials.push({\n trial: this.trialCount,\n rt: this.rt,\n signal: this.signal,\n response: this.response,\n outcome: this.outcome,\n payoff: this.trialPayoff,\n });\n this.alignState();\n }\n }\n\n left() {\n this.responded('left');\n }\n\n right() {\n this.responded('right');\n }\n\n responded(response) {\n this.rt = Date.now() - this.startTime;\n this.state = 'feedback';\n this.response = response;\n if (this.signal === this.response) {\n this.outcome = 'correct';\n } else if (this.signal !== this.response) {\n this.outcome = 'error';\n }\n this.trials.push({\n trial: this.trialCount,\n rt: this.rt,\n signal: this.signal,\n response: this.response,\n outcome: this.outcome,\n payoff: this.trialPayoff,\n });\n this.alignState();\n\n this.dispatchEvent(new CustomEvent('accumulable-response', {\n detail: {\n trial: this.trialCount,\n rt: this.rt,\n signal: this.signal,\n response: this.response,\n outcome: this.outcome,\n payoff: this.trialPayoff,\n\n data: this.data,\n\n totalPayoff: this.totalPayoff,\n },\n bubbles: true,\n }));\n }\n\n reset() {\n this.state = 'off';\n this.trialCount = 0;\n this.rt = undefined;\n this.signal = undefined;\n this.response = undefined;\n this.outcome = undefined;\n\n this.trials = [];\n this.alignState();\n }\n\n keydown(event) {\n if (this.state === 'waiting') {\n if (event.key === 'ArrowLeft') {\n this.responded('left');\n event.preventDefault();\n } else if (event.key === 'ArrowRight') {\n this.responded('right');\n event.preventDefault();\n }\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n window.addEventListener('keydown', this.keydown.bind(this));\n }\n\n disconnectedCallback() {\n window.removeEventListener('keydown', this.keydown.bind(this));\n\n super.disconnectedCallback();\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n display: inline-block;\n }\n\n /* Overall container */\n .holder {\n display: flex;\n\n flex-direction: column;\n }\n\n /* Response buttons */\n .responses {\n display: flex;\n\n flex-direction: row;\n\n align-items: stretch;\n justify-content: center;\n }\n\n .response {\n flex: 1 0 50%;\n }\n\n .waiting[disabled] {\n --decidables-button-background-color: var(---color-element-enabled);\n }\n\n .selected[disabled][name=\"left\"] {\n --decidables-button-background-color: var(---color-left);\n }\n\n .selected[disabled][name=\"right\"] {\n --decidables-button-background-color: var(---color-right);\n }\n\n /* Feedback messages */\n .feedbacks {\n display: flex;\n\n flex-direction: column;\n\n align-items: center;\n\n margin: 0.25rem;\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 :host([payoff=\"trial\"]) .feedback,\n :host([payoff=\"total\"]) .feedback {\n height: 5rem;\n }\n\n .feedback.correct {\n background-color: var(---color-correct-light);\n }\n\n .feedback.error {\n background-color: var(---color-error-light);\n }\n\n .feedback.nr {\n background-color: var(---color-nr-light);\n }\n\n .feedback .outcome {\n font-weight: 600;\n line-height: 1.15;\n }\n\n /* Payoff feedback */\n .total {\n text-align: center;\n }\n\n .total .label {\n font-weight: 600;\n }\n `,\n ];\n }\n\n render() {\n const payoffFormatter = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n });\n const payoffFormat = (number) => {\n return payoffFormatter.formatToParts(number).map(({type, value}) => {\n if (type === 'minusSign') {\n return '−';\n }\n return value;\n }).reduce((string, part) => { return string + part; });\n };\n\n return html`\n <div class=\"holder\">\n <div class=\"responses\">\n <decidables-button name=\"left\" class=${`response ${(this.state === 'feedback' && this.response === 'left') ? 'selected' : ((this.state === 'waiting') ? 'waiting' : '')}`} ?disabled=${this.state !== 'waiting' || this.interactive !== true} @click=${this.left.bind(this)}>Left</decidables-button>\n <decidables-button name=\"right\" class=${`response ${(this.state === 'feedback' && this.response === 'right') ? 'selected' : ((this.state === 'waiting') ? 'waiting' : '')}`} ?disabled=${this.state !== 'waiting' || this.interactive !== true} @click=${this.right.bind(this)}>Right</decidables-button>\n </div>\n ${(this.trial || this.feedback || this.payoff === 'total')\n ? html`\n <div class=\"feedbacks\">\n ${(this.trial)\n ? html`\n <div class=\"trial\">\n <span class=\"label\">Trial: </span><span class=\"count\">${this.trialCount}</span><span class=\"of\"> of </span><span class=\"total\">${this.trialTotal}</span>\n </div>`\n : html``}\n ${(this.feedback)\n ? html`\n <div class=${`feedback ${((this.state === 'feedback') && this.feedback)\n ? this.outcome\n : ''}`}>\n ${((this.state === 'feedback') && this.feedback)\n ? (this.outcome === 'correct')\n ? html`<span class=\"outcome\">Correct</span>`\n : (this.outcome === 'error')\n ? html`<span class=\"outcome\">Error</span>`\n : html`<span class=\"outcome\">No<br>Response</span>`\n : ''}\n ${((this.state === 'feedback') && (this.payoff === 'trial' || this.payoff === 'total'))\n ? html`<span class=\"payoff\">${payoffFormat(this.trialPayoff)}</span>`\n : html``}\n </div>`\n : html``}\n ${(this.payoff === 'total')\n ? html`\n <div class=\"total\">\n <span class=\"label\">Total: </span><span class=\"value\">${payoffFormat(this.totalPayoff)}</span>\n </div>`\n : html``}\n </div>`\n : html``}\n </div>`;\n }\n}\n\ncustomElements.define('accumulable-response', AccumulableResponse);\n","\nimport {html, css} from 'lit';\n\nimport '@decidables/decidables-elements/spinner';\n\nimport AccumulableElement from '../accumulable-element';\n\n/*\n AccumulableTable element\n <accumulable-table>\n\n Attributes:\n ????Hit; Miss; FalseAlarm; CorrectRejection;\n*/\nexport default class AccumulableTable extends AccumulableElement {\n static get properties() {\n return {\n numeric: {\n attribute: 'numeric',\n type: Boolean,\n reflect: true,\n },\n summary: {\n attribute: 'summary',\n type: Boolean,\n reflect: true,\n },\n color: {\n attribute: 'color',\n type: String,\n reflect: true,\n },\n\n correctCount: {\n attribute: 'correct-count',\n type: Number,\n reflect: true,\n },\n errorCount: {\n attribute: 'error-count',\n type: Number,\n reflect: true,\n },\n nrCount: {\n attribute: 'nr-count',\n type: Number,\n reflect: true,\n },\n accuracy: {\n attribute: 'accuracy',\n type: Number,\n reflect: true,\n },\n correctMeanRT: {\n attribute: 'correct-mean-rt',\n type: Number,\n reflect: true,\n },\n errorMeanRT: {\n attribute: 'error-mean-rt',\n type: Number,\n reflect: true,\n },\n meanRT: {\n attribute: 'mean-rt',\n type: Number,\n reflect: true,\n },\n correctSDRT: {\n attribute: 'correct-sd-rt',\n type: Number,\n reflect: true,\n },\n errorSDRT: {\n attribute: 'error-sd-rt',\n type: Number,\n reflect: true,\n },\n sdRT: {\n attribute: 'sd-rt',\n type: Number,\n reflect: true,\n },\n\n payoff: {\n attribute: 'payoff',\n type: Boolean,\n reflect: true,\n },\n correctPayoff: {\n attribute: 'correct-payoff',\n type: Number,\n reflect: true,\n },\n errorPayoff: {\n attribute: 'error-payoff',\n type: Number,\n reflect: true,\n },\n nrPayoff: {\n attribute: 'no-response-payoff',\n type: Number,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n this.numeric = false;\n this.summary = false;\n\n this.colors = ['none', 'measure', 'outcome', 'all'];\n this.color = 'all';\n\n this.payoff = false;\n this.correctPayoff = undefined; // Correct payoff\n this.errorPayoff = undefined; // Error payoff\n this.nrPayoff = undefined; // No Response payoff\n\n this.correctCount = NaN;\n this.errorCount = NaN;\n this.nrCount = NaN;\n this.accuracy = NaN;\n this.correctMeanRT = NaN;\n this.errorMeanRT = NaN;\n this.meanRT = NaN;\n this.correctSDRT = NaN;\n this.errorSDRT = NaN;\n this.sdRT = NaN;\n }\n\n sendEvent() {\n this.dispatchEvent(new CustomEvent('accumulable-table-change', {\n detail: {\n correctCount: this.correctCount,\n errorCount: this.errorCount,\n nrCount: this.nrCount,\n accuracy: this.accuracy,\n correctMeanRT: this.correctMeanRT,\n errorMeanRT: this.errorMeanRT,\n meanRT: this.meanRT,\n correctSDRT: this.correctSDRT,\n errorSDRT: this.errorSDRT,\n sdRT: this.sdRT,\n },\n bubbles: true,\n }));\n }\n\n correctCountInput(e) {\n this.correctCount = parseInt(e.target.value, 10);\n this.sendEvent();\n }\n\n errorCountInput(e) {\n this.errorCount = parseInt(e.target.value, 10);\n this.sendEvent();\n }\n\n accuracyInput(e) {\n this.accuracy = parseFloat(e.target.value);\n this.sendEvent();\n }\n\n correctMeanRTInput(e) {\n this.correctMeanRT = parseFloat(e.target.value);\n this.sendEvent();\n }\n\n errorMeanRTInput(e) {\n this.errorMeanRT = parseFloat(e.target.value);\n this.sendEvent();\n }\n\n meanRTInput(e) {\n this.meanRT = parseFloat(e.target.value);\n this.sendEvent();\n }\n\n correctSDRTInput(e) {\n this.correctSDRT = parseFloat(e.target.value);\n this.sendEvent();\n }\n\n errorSDRTInput(e) {\n this.errorSDRT = parseFloat(e.target.value);\n this.sendEvent();\n }\n\n sdRTInput(e) {\n this.sdRT = parseFloat(e.target.value);\n this.sendEvent();\n }\n\n static get styles() {\n return [\n super.styles,\n css`\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 /* Table emphasis */\n .td-data.correct {\n border-left: 2px solid var(---color-element-emphasis);\n }\n\n .td-data.error {\n border-right: 2px solid var(---color-element-emphasis);\n }\n\n .td-data.count {\n border-top: 2px solid var(---color-element-emphasis);\n }\n\n .td-data.sd-rt {\n border-bottom: 2px solid var(---color-element-emphasis);\n }\n\n /* Color schemes */\n\n /* (Default) All color scheme */\n .correct.count {\n background: var(---color-element-background); /* ###### */\n }\n\n .error.count {\n background: var(---color-element-background); /* ###### */\n }\n\n .overall.proportion-correct {\n background: var(---color-element-background); /* ###### */\n }\n\n .correct.mean-rt {\n background: var(---color-element-background); /* ###### */\n }\n\n .error.mean-rt {\n background: var(---color-element-background); /* ###### */\n }\n\n .overall.mean-rt {\n background: var(---color-element-background); /* ###### */\n }\n\n .correct.sd-rt {\n background: var(---color-element-background); /* ###### */\n }\n\n .error.sd-rt {\n background: var(---color-element-background); /* ###### */\n }\n\n .overall.sd-rt {\n background: var(---color-element-background); /* ###### */\n }\n\n /* Outcome color scheme */\n :host([color=\"outcome\"]) .correct {\n background: var(---color-correct-light);\n }\n\n :host([color=\"outcome\"]) .error {\n background: var(---color-error-light);\n }\n\n :host([color=\"outcome\"]) .overall {\n background: var(---color-element-background);\n }\n\n /* Measure color scheme */\n :host([color=\"measure\"]) .count,\n :host([color=\"measure\"]) .proportion-correct {\n background: var(---color-element-background); /* ###### */\n }\n\n :host([color=\"measure\"]) .mean-rt {\n background: var(---color-element-background); /* ###### */\n }\n\n :host([color=\"measure\"]) .sd-rt {\n background: var(---color-element-background); /* ###### */\n }\n\n /* No color scheme */\n :host([color=\"none\"]) .td-data,\n :host([color=\"none\"]) .td-summary {\n background: var(---color-element-background);\n }\n `,\n ];\n }\n\n render() {\n const payoffFormatter = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n });\n const payoffFormat = (number) => {\n return payoffFormatter.formatToParts(number).map(({type, value}) => {\n if (type === 'minusSign') {\n return '−';\n }\n return value;\n }).reduce((string, part) => { return string + part; });\n };\n\n let correctCount;\n let errorCount;\n let accuracy;\n let correctMeanRT;\n let errorMeanRT;\n let meanRT;\n let correctSDRT;\n let errorSDRT;\n let sdRT;\n if (this.numeric) {\n correctCount = html`\n <decidables-spinner ?disabled=${!this.interactive} min=\"0\" .value=\"${+this.correctCount}\" @input=${this.correctCountInput.bind(this)}>\n <span>Correct Count</span>\n ${this.payoff ? html`<span class=\"payoff\">${payoffFormat(this.correctPayoff)}</span>` : html``}\n </decidables-spinner>\n `;\n errorCount = html`\n <decidables-spinner ?disabled=${!this.interactive} min=\"0\" .value=\"${+this.errorCount}\" @input=${this.errorCountInput.bind(this)}>\n <span>Error Count</span>\n ${this.payoff ? html`<span class=\"payoff\">${payoffFormat(this.errorPayoff)}</span>` : html``}\n </decidables-spinner>\n `;\n accuracy = html`\n <decidables-spinner ?disabled=${!this.interactive} min=\"0\" max=\"1\" step=\".01\" .value=\"${+this.accuracy.toFixed(2)}\" @input=${this.accuracyInput.bind(this)}>\n <span>Accuracy</span>\n </decidables-spinner>\n `;\n correctMeanRT = html`\n <decidables-spinner ?disabled=${!this.interactive} min=\"0\" .value=\"${+this.correctMeanRT.toFixed(0)}\" @input=${this.correctMeanRTInput.bind(this)}>\n <span>Correct Mean RT</span>\n </decidables-spinner>\n `;\n errorMeanRT = html`\n <decidables-spinner ?disabled=${!this.interactive} min=\"0\" .value=\"${+this.errorMeanRT.toFixed(0)}\" @input=${this.errorMeanRTInput.bind(this)}>\n <span>Error Mean RT</span>\n </decidables-spinner>\n `;\n meanRT = html`\n <decidables-spinner ?disabled=${!this.interactive} min=\"0\" .value=\"${+this.meanRT.toFixed(0)}\" @input=${this.meanRTInput.bind(this)}>\n <span>Mean RT</span>\n </decidables-spinner>\n `;\n correctSDRT = html`\n <decidables-spinner ?disabled=${!this.interactive} min=\"0\" .value=\"${+this.correctSDRT.toFixed(0)}\" @input=${this.correctSDRTInput.bind(this)}>\n <span>Correct SD RT</span>\n </decidables-spinner>\n `;\n errorSDRT = html`\n <decidables-spinner ?disabled=${!this.interactive} min=\"0\" .value=\"${+this.errorSDRT.toFixed(0)}\" @input=${this.errorSDRTInput.bind(this)}>\n <span>Error SD RT</span>\n </decidables-spinner>\n `;\n sdRT = html`\n <decidables-spinner ?disabled=${!this.interactive} min=\"0\" .value=\"${+this.sdRT.toFixed(0)}\" @input=${this.sdRTInput.bind(this)}>\n <span>SD RT</span>\n </decidables-spinner>\n `;\n } else {\n correctCount = html`<span>Correct Count</span>\n ${this.payoff ? html`<span class=\"payoff\">${payoffFormat(this.correctPayoff)}</span>` : html``}`;\n errorCount = html`<span>Error Count</span>\n ${this.payoff ? html`<span class=\"payoff\">${payoffFormat(this.errorPayoff)}</span>` : html``}`;\n accuracy = html`<span>Accuracy</span>`;\n correctMeanRT = html`<span>Correct Mean RT</span>`;\n errorMeanRT = html`<span>Error Mean RT</span>`;\n meanRT = html`<span>Mean RT</span>`;\n correctSDRT = html`<span>Correct SD RT</span>`;\n errorSDRT = html`<span>Error SD RT</span>`;\n sdRT = html`<span>SD RT</span>`;\n }\n return html`\n <table class=${this.numeric ? 'numeric' : ''}>\n <thead>\n <tr>\n <th rowspan=\"2\"></th>\n <th class=\"th th-main\" colspan=\"2\" scope=\"col\">\n Outcome\n </th>\n </tr>\n <tr>\n <th class=\"th th-sub\" scope=\"col\">\n Correct\n </th>\n <th class=\"th th-sub\" scope=\"col\">\n Error\n </th>\n ${(this.summary)\n ? html`\n <th class=\"th th-main\" scope=\"col\">\n Overall\n </th>`\n : html``}\n </tr>\n </thead>\n <tbody>\n <tr>\n <th class=\"th th-sub th-left\" scope=\"row\">\n Count\n </th>\n <td class=\"td td-data correct count\">\n ${correctCount}\n </td>\n <td class=\"td td-data error count\">\n ${errorCount}\n </td>\n ${(this.summary)\n ? html`\n <td class=\"td td-summary overall proportion-correct\">\n ${accuracy}\n </td>`\n : html``}\n </tr>\n <tr>\n <th class=\"th th-sub th-left\" scope=\"row\">\n Mean RT\n </th>\n <td class=\"td td-data correct mean-rt\">\n ${correctMeanRT}\n </td>\n <td class=\"td td-data error mean-rt\">\n ${errorMeanRT}\n </td>\n ${(this.summary)\n ? html`\n <td class=\"td td-summary overall mean-rt\">\n ${meanRT}\n </td>`\n : html``}\n </tr>\n <tr>\n <th class=\"th th-sub th-left\" scope=\"row\">\n SD RT\n </th>\n <td class=\"td td-data correct sd-rt\">\n ${correctSDRT}\n </td>\n <td class=\"td td-data error sd-rt\">\n ${errorSDRT}\n </td>\n ${(this.summary)\n ? html`\n <td class=\"td td-summary overall sd-rt\">\n ${sdRT}\n </td>`\n : html``}\n </tr>\n </tbody>\n </table>`;\n }\n}\n\ncustomElements.define('accumulable-table', AccumulableTable);\n","\nimport {html, css} from 'lit';\n\nimport DDMMath from '@decidables/accumulable-math';\n\n// Special Web Worker import for rollup-plugin-web-worker-loader\nimport DDMFitWorker from 'web-worker:./ddm-fit-worker'; /* eslint-disable-line import/no-unresolved */\n\nimport AccumulableElement from '../accumulable-element';\n\n/*\n DDMFit element\n <ddm-fit>\n\n Attributes:\n interactive: true/false\n*/\nexport default class DDMFit extends AccumulableElement {\n static get properties() {\n return {\n };\n }\n\n constructor() {\n super();\n\n this.a = DDMMath.a.DEFAULT;\n this.z = DDMMath.z.DEFAULT;\n this.v = DDMMath.v.DEFAULT;\n this.t0 = DDMMath.t0.DEFAULT;\n\n this.observed = {};\n this.predicted = {};\n\n this.working = false;\n this.queued = false;\n this.worker = new DDMFitWorker();\n\n this.worker.onmessage = (event) => {\n this.working = false;\n this.predicted = event.data.predicted;\n this.a = event.data.params.a;\n this.z = event.data.params.z;\n this.v = event.data.params.v;\n this.t0 = event.data.params.t0;\n this.requestUpdate();\n\n this.dispatchEvent(new CustomEvent('ddm-fit-update', {\n detail: {\n a: this.a,\n z: this.z,\n v: this.v,\n t0: this.t0,\n },\n bubbles: true,\n }));\n\n if (this.queued) {\n this.fit();\n }\n };\n\n this.fit();\n }\n\n fit() {\n if (!this.working) {\n this.worker.postMessage(this.observed);\n this.working = true;\n this.queued = false;\n } else {\n this.queued = true;\n }\n }\n\n clear() {\n this.observed = {};\n\n this.fit();\n }\n\n set(data) {\n // Deep copy\n this.observed = structuredClone(data);\n\n this.fit();\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n display: inline-block;\n }\n `,\n ];\n }\n\n render() {\n return html`\n <div>\n <div><b>Observed:</b>\n <br/>Accuracy = ${this.observed.accuracy?.toFixed(2)},\n <br/>Correct Mean RT = ${this.observed.correctMeanRT?.toFixed(0)},\n Error Mean RT = ${this.observed.errorMeanRT?.toFixed(0)},\n Mean RT = ${this.observed.meanRT?.toFixed(0)},\n <br/>Correct SD RT = ${this.observed.correctSDRT?.toFixed(0)},\n Error SD RT = ${this.observed.errorSDRT?.toFixed(0)},\n SD RT = ${this.observed.sdRT?.toFixed(0)},\n </div>\n <div><b>Parameters:</b>\n <br/><var class=\"math-var a\">a</var> = ${this.a.toFixed(2)},\n <var class=\"math-var z\">z</var> = ${this.z.toFixed(2)},\n <var class=\"math-var v\">v</var> = ${this.v.toFixed(2)},\n <var class=\"math-var t0\">t0</var> = ${this.t0.toFixed(0)}\n </div>\n <div><b>Predicted:</b>\n <br/>Accuracy = ${this.predicted.accuracy?.toFixed(2)},\n <br/>Correct Mean RT = ${this.predicted.correctMeanRT?.toFixed(0)},\n Error Mean RT = ${this.predicted.errorMeanRT?.toFixed(0)},\n Mean RT = ${this.predicted.meanRT?.toFixed(0)},\n <br/>Correct SD RT = ${this.predicted.correctSDRT?.toFixed(0)},\n Error SD RT = ${this.predicted.errorSDRT?.toFixed(0)},\n SD RT = ${this.predicted.sdRT?.toFixed(0)},\n </div>\n </div>\n `;\n }\n}\n\ncustomElements.define('ddm-fit', DDMFit);\n","\nimport {html, css} from 'lit';\n\nimport '@decidables/decidables-elements/slider';\nimport DDMMath from '@decidables/accumulable-math';\n\nimport AccumulableElement from '../accumulable-element';\n\n/*\n DDMParameters element\n <ddm-paramters>\n\n Attributes:\n\n*/\nexport default class DDMParameters extends AccumulableElement {\n static get properties() {\n return {\n a: {\n attribute: 'boundary-separation',\n type: Number,\n reflect: true,\n },\n z: {\n attribute: 'starting-point',\n type: Number,\n reflect: true,\n },\n v: {\n attribute: 'drift-rate',\n type: Number,\n reflect: true,\n },\n t0: {\n attribute: 'nondecision-time',\n type: Number,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.a = undefined;\n this.z = undefined;\n this.v = undefined;\n this.t0 = undefined;\n }\n\n setBoundarySeparation(e) {\n this.a = +e.target.value;\n this.dispatchEvent(new CustomEvent('ddm-parameters-a', {\n detail: {\n a: this.a,\n },\n bubbles: true,\n }));\n }\n\n setStartingPoint(e) {\n this.z = +e.target.value;\n this.dispatchEvent(new CustomEvent('ddm-parameters-z', {\n detail: {\n z: this.z,\n },\n bubbles: true,\n }));\n }\n\n setDriftRate(e) {\n this.v = +e.target.value;\n this.dispatchEvent(new CustomEvent('ddm-parameters-v', {\n detail: {\n v: this.v,\n },\n bubbles: true,\n }));\n }\n\n setNondecisionTime(e) {\n this.t0 = +e.target.value;\n this.dispatchEvent(new CustomEvent('ddm-parameters-t0', {\n detail: {\n t0: this.t0,\n },\n bubbles: true,\n }));\n }\n\n static get styles() {\n return [\n super.styles,\n css`\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 decidables-slider {\n line-height: 1;\n text-align: center;\n }\n\n decidables-slider div {\n margin-bottom: 0.25rem;\n }\n\n .a {\n --decidables-slider-background-color: var(---color-a-light);\n --decidables-slider-color: var(---color-a);\n }\n\n .z {\n --decidables-slider-background-color: var(---color-z-light);\n --decidables-slider-color: var(---color-z);\n }\n\n .v {\n --decidables-slider-background-color: var(---color-v-light);\n --decidables-slider-color: var(---color-v);\n }\n\n .t0 {\n --decidables-slider-background-color: var(---color-t0-light);\n --decidables-slider-color: var(---color-t0);\n }\n `,\n ];\n }\n\n render() {\n return html`\n <div class=\"holder\">\n ${this.a != null\n ? html`<decidables-slider class=\"a\"\n ?disabled=${!this.interactive}\n scale\n min=${DDMMath.a.MIN}\n max=${DDMMath.a.MAX}\n step=${DDMMath.a.STEP}\n .value=${+this.a.toFixed(2)}\n @change=${this.setBoundarySeparation.bind(this)}\n @input=${this.setBoundarySeparation.bind(this)}\n ><div>Boundary Separation<br><span class=\"math-var\">a</span></div></decidables-slider>`\n : html``}\n ${this.z != null\n ? html`<decidables-slider class=\"z\"\n ?disabled=${!this.interactive}\n scale\n min=${DDMMath.z.MIN}\n max=${DDMMath.z.MAX}\n step=${DDMMath.z.STEP}\n .value=${+this.z.toFixed(2)}\n @change=${this.setStartingPoint.bind(this)}\n @input=${this.setStartingPoint.bind(this)}\n ><div>Starting Point<br><span class=\"math-var\">z</span></div></decidables-slider>`\n : html``}\n ${this.v != null\n ? html`<decidables-slider class=\"v\"\n ?disabled=${!this.interactive}\n scale\n min=${DDMMath.v.MIN}\n max=${DDMMath.v.MAX}\n step=${DDMMath.v.STEP}\n .value=${+this.v.toFixed(2)}\n @change=${this.setDriftRate.bind(this)}\n @input=${this.setDriftRate.bind(this)}\n ><div>Drift Rate<br><span class=\"math-var\">v</span></div></decidables-slider>`\n : html``}\n ${this.t0 != null\n ? html`<decidables-slider class=\"t0\" \n ?disabled=${!this.interactive}\n scale\n min=${DDMMath.t0.MIN}\n max=${DDMMath.t0.MAX}\n step=${DDMMath.t0.STEP}\n .value=${+this.t0.toFixed(0)}\n @change=${this.setNondecisionTime.bind(this)}\n @input=${this.setNondecisionTime.bind(this)}\n ><div>Nondecision Time<br><span class=\"math-var\">t₀</span></div></decidables-slider>`\n : html``}\n </div>`;\n }\n}\n\ncustomElements.define('ddm-parameters', DDMParameters);\n","\nimport {css, html} from 'lit';\nimport * as d3 from 'd3';\n\nimport DDMMath from '@decidables/accumulable-math';\nimport {DecidablesMixinResizeable} from '@decidables/decidables-elements';\n\nimport AccumulableElement from '../accumulable-element';\n\n/*\n DDMModel element\n <ddm-model>\n\n Attributes:\n interactive: true/false\n\n measures: boolean\n means: boolean\n\n seed: numeric\n trials: numeric\n\n a: numeric\n z: numeric\n v: numeric\n t0: numeric\n\n // s: numeric\n // sz: numeric\n // eta: numeric\n // st: numeric\n\n Styles:\n ??\n*/\nexport default class DDMModel extends DecidablesMixinResizeable(AccumulableElement) {\n static get properties() {\n return {\n measures: {\n attribute: 'measures',\n type: Boolean,\n reflect: true,\n },\n means: {\n attribute: 'means',\n type: Boolean,\n reflect: true,\n },\n sds: {\n attribute: 'sds',\n type: Boolean,\n reflect: true,\n },\n\n human: {\n attribute: 'human',\n type: Boolean,\n reflect: true,\n },\n trials: {\n attribute: 'trials',\n type: Number,\n reflect: true,\n },\n seed: {\n attribute: 'seed',\n type: Number,\n reflect: true,\n },\n\n a: {\n attribute: 'boundary-separation',\n type: Number,\n reflect: true,\n },\n z: {\n attribute: 'starting-point',\n type: Number,\n reflect: true,\n },\n v: {\n attribute: 'drift-rate',\n type: Number,\n reflect: true,\n },\n t0: {\n attribute: 'nondecision-time',\n type: Number,\n reflect: true,\n },\n\n // s: {\n // attribute: false, // within-trial variability in drift rate\n // type: Number,\n // reflect: false,\n // },\n // sz: {\n // attribute: false, // starting point range\n // type: Number,\n // reflect: false,\n // },\n // eta: {\n // attribute: false, // standard deviation for across-trial variability in drift rate\n // type: Number,\n // reflect: false,\n // },\n // st: {\n // attribute: false, // nondecision-time range\n // type: Number,\n // reflect: false,\n // },\n };\n }\n\n constructor() {\n super();\n\n this.firstUpdate = true;\n this.drag = false;\n\n this.scale = {\n time: {\n min: 0,\n max: 1000,\n step: 1,\n round: Math.round,\n },\n evidence: {\n min: -1,\n max: 1,\n step: 0.01,\n round: Math.round,\n },\n density: {\n min: 0,\n max: 10,\n step: 0.01,\n round: Math.round,\n },\n };\n\n this.measures = false;\n this.means = false;\n this.sds = false;\n\n this.resample();\n this.human = false;\n this.trials = 10;\n\n this.a = DDMMath.a.DEFAULT;\n this.z = DDMMath.z.DEFAULT;\n this.v = DDMMath.v.DEFAULT;\n this.t0 = DDMMath.t0.DEFAULT;\n\n // this.s = null;\n // this.sz = null;\n // this.eta = null;\n // this.st = null;\n\n this.precision = 0.005;\n this.random = null;\n\n this.bounds = null;\n this.startingPoint = null;\n\n this.data = {};\n this.model = {};\n this.animate = false;\n this.paused = false;\n\n this.alignState();\n }\n\n clear() {\n this.trials = 0;\n this.data.trials = [];\n }\n\n trial(trial = {}) {\n this.trials += 1;\n if (this.human) {\n this.data.trials.push(trial);\n } else {\n this.animate = true;\n }\n }\n\n // Called to pause trial animations!\n pauseTrial() {\n const pathNew = d3.select(this.renderRoot).select('.path[data-new-trial-ease-time]');\n pathNew.interrupt('new').select('.curve').interrupt('new');\n this.paused = true;\n }\n\n // Called to resume trial animations!\n resumeTrial() {\n this.paused = false;\n this.requestUpdate();\n }\n\n resample() {\n this.seed = d3.randomUniform(0, 1)();\n }\n\n alignPath(seed, a, z, v, t0) {\n const random = d3.randomNormal.source(d3.randomLcg(seed))(0, this.precision ** 0.5);\n const bounds = {\n lower: -a / 2,\n upper: a / 2,\n };\n const startingPoint = a * z - a / 2;\n const drift = v * this.precision;\n\n const path = [];\n path.push(\n {t: t0, e: startingPoint},\n );\n while ((path.at(-1).e > bounds.lower) && (path.at(-1).e < bounds.upper)) {\n path.push({\n t: path.at(-1).t + (this.precision * 1000),\n e: path.at(-1).e + drift + DDMMath.s.DEFAULT * random(),\n });\n }\n return path;\n }\n\n alignCorrectDistribution(a, z, v, t0) {\n const proportionCorrect = DDMMath.azv2pC(a, z, v);\n\n const dist = [\n {t: 0, d: 0},\n {t: this.t0, d: 0},\n ];\n for (\n let i = this.scale.time.min;\n i <= (this.scale.time.max - (t0));\n i += this.scale.time.step) {\n if (i > 0) {\n dist.push({\n t: t0 + i,\n d: DDMMath.tazv2gC(i / 1000, a, z, v) / proportionCorrect,\n });\n }\n }\n\n return dist;\n }\n\n alignErrorDistribution(a, z, v, t0) {\n const proportionError = DDMMath.azv2pE(a, z, v);\n\n const dist = [\n {t: 0, d: 0},\n {t: this.t0, d: 0},\n ];\n for (\n let i = this.scale.time.min;\n i <= (this.scale.time.max - (t0));\n i += this.scale.time.step) {\n if (i > 0) {\n dist.push({\n t: t0 + i,\n d: DDMMath.tazv2gE(i / 1000, a, z, v) / proportionError,\n });\n }\n }\n\n return dist;\n }\n\n alignState() {\n this.random = d3.randomUniform.source(d3.randomLcg(this.seed))(0, 1);\n\n this.bounds = {\n lower: -this.a / 2,\n upper: this.a / 2,\n };\n this.startingPoint = this.a * this.z - this.a / 2;\n\n // Data Trials\n if (this.human) {\n this.trials = this.data.trials.length;\n } else {\n this.data.trials = Array.from({length: this.trials}, (element, index) => {\n const seed = (this.random() / 1000) * 997; // HACK to avoid randomLcg repetition\n const animate = this.animate && (index === (this.trials - 1));\n\n // Sample Paths\n const path = this.alignPath(seed, this.a, this.z, this.v, this.t0);\n const outcome = (path.at(-1).e <= this.bounds.lower)\n ? 'error'\n : (path.at(-1).e >= this.bounds.upper)\n ? 'correct'\n : 'nr';\n const rt = (outcome === 'error')\n ? path.at(-2).t + (\n ((this.bounds.lower - path.at(-2).e) / (path.at(-1).e - path.at(-2).e))\n * (this.precision * 1000)\n )\n : (outcome === 'correct')\n ? path.at(-2).t + (\n ((this.bounds.upper - path.at(-2).e) / (path.at(-1).e - path.at(-2).e))\n * (this.precision * 1000)\n )\n : null;\n\n return {\n index, seed, path, rt, outcome, animate,\n };\n });\n }\n\n // Data Summary Stats\n const dataStats = DDMMath.trials2stats(\n this.data.trials.filter((path) => { return !path.animate; }),\n );\n this.data = {...this.data, ...dataStats};\n\n // Model Summary Stats\n this.model.accuracy = DDMMath.azv2pC(this.a, this.z, this.v);\n\n this.model.correctMeanRT = DDMMath.azvt02mC(this.a, this.z, this.v, this.t0);\n this.model.errorMeanRT = DDMMath.azvt02mE(this.a, this.z, this.v, this.t0);\n\n this.model.correctSDRT = DDMMath.azv2sdC(this.a, this.z, this.v);\n this.model.errorSDRT = DDMMath.azv2sdE(this.a, this.z, this.v);\n\n // Model Distributions\n this.model.correctDist = this.alignCorrectDistribution(this.a, this.z, this.v, this.t0);\n this.model.errorDist = this.alignErrorDistribution(this.a, this.z, this.v, this.t0);\n\n this.dispatchEvent(new CustomEvent('ddm-model-output', {\n detail: {\n data: this.data,\n model: this.model,\n },\n bubbles: true,\n }));\n }\n\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n display: inline-block;\n\n width: 27rem;\n height: 18rem;\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 /* \n UNDERLAYER\n */\n .background {\n fill: var(---color-element-background);\n stroke: none;\n stroke-width: 1;\n shape-rendering: crispEdges;\n }\n\n .title {\n font-weight: 600;\n\n fill: currentColor;\n }\n\n .axis path,\n .axis line {\n stroke: var(---color-element-border);\n /* shape-rendering: crispEdges; */\n }\n\n .tick {\n font-size: 0.75rem;\n }\n\n /* \n CONTENT\n */\n .line {\n fill: none;\n stroke: var(---color-element-emphasis);\n stroke-width: 2;\n }\n\n .curve {\n stroke-width: 2;\n }\n\n .path .curve {\n opacity: 0.5;\n\n fill: none;\n\n transition: opacity 0.5s;\n }\n\n .path.highlight .curve {\n filter: url(\"#shadow-2\");\n opacity: 1;\n }\n\n .path.correct .curve {\n /* stroke: var(---color-correct); */\n }\n\n .path.error .curve {\n /* stroke: var(---color-error); */\n }\n\n .stop-0 {\n stop-color: var(---color-correct);\n }\n\n .stop-100 {\n stop-color: var(---color-error);\n }\n\n .path.animate .curve {\n opacity: 1;\n\n stroke: url(\"#path-animate\");\n }\n\n .dist.correct .curve {\n fill: var(---color-correct-light);\n stroke: var(---color-correct);\n }\n\n .dist.error .curve {\n fill: var(---color-error-light);\n stroke: var(---color-error);\n }\n\n .rt .mark {\n stroke-width: 1;\n }\n\n .accuracy.model .bar {\n stroke: none;\n }\n\n .accuracy.model.correct .bar {\n fill: var(---color-correct);\n }\n\n .accuracy.model.error .bar {\n fill: var(---color-error);\n }\n\n .accuracy.data .mark {\n stroke-width: 2;\n }\n\n .accuracy.data.correct .mark {\n stroke: var(---color-correct-light);\n }\n\n .accuracy.data.error .mark {\n stroke: var(---color-error-light);\n }\n\n /*\n OVERLAYER\n */\n .interactive {\n filter: url(\"#shadow-2\");\n outline: none;\n }\n\n .interactive:hover {\n filter: url(\"#shadow-4\");\n }\n\n .interactive:active {\n filter: url(\"#shadow-8\");\n }\n\n :host(.keyboard) .interactive:focus {\n filter: url(\"#shadow-8\");\n }\n\n .boundary {\n fill: none;\n stroke: var(---color-element-emphasis);\n stroke-width: 2;\n }\n\n .boundary.interactive {\n cursor: ns-resize;\n }\n\n .drift {\n pointer-events: visible;\n\n fill: none;\n stroke: var(---color-element-emphasis);\n stroke-dasharray: 8 4;\n stroke-width: 2;\n }\n\n .drift.interactive {\n cursor: ns-resize;\n }\n\n .drift .arrow {\n stroke-dasharray: none;\n }\n\n .t0z.interactive {\n cursor: move;\n }\n\n .t0z .point {\n fill: var(---color-element-emphasis);\n stroke-width: 0;\n\n r: 6px;\n }\n\n /* Make larger targets for touch users */\n .interactive .touch {\n stroke: #000000;\n stroke-dasharray: none;\n stroke-opacity: 0;\n }\n\n @media (pointer: coarse) {\n .interactive .touch {\n stroke-linecap: round;\n stroke-width: 12;\n }\n }\n\n .measure .line.short {\n stroke-width: 0;\n }\n\n .measure .markers {\n fill: none;\n stroke-width: 0;\n }\n\n .measure .label {\n font-size: 0.75rem;\n\n fill: currentColor;\n }\n\n .measure.a .line {\n stroke: var(---color-a);\n }\n\n .measure.a .label {\n dominant-baseline: auto;\n text-anchor: end;\n }\n\n .measure.z .line {\n stroke: var(---color-z);\n }\n\n .measure.z .label,\n /* Hack to avoid Safari weirdness */\n .measure.z .label tspan {\n dominant-baseline: hanging;\n text-anchor: start;\n }\n\n .measure.v .line {\n stroke: var(---color-v);\n }\n\n .measure.v .label {\n dominant-baseline: auto;\n text-anchor: start;\n }\n\n .measure.t0 .line {\n stroke: var(---color-t0);\n }\n\n .measure.t0 .label {\n dominant-baseline: auto;\n text-anchor: middle;\n }\n\n .measure-arrow {\n fill: context-stroke;\n stroke: context-stroke;\n }\n\n .measure-arrow .arrow {\n stroke-width: 1;\n }\n\n .measure-arrow.capped .cap {\n stroke-width: 2;\n }\n\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .measure-arrow.a {\n fill: var(---color-a);\n stroke: var(---color-a);\n }\n\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .measure-arrow.z {\n fill: var(---color-z);\n stroke: var(---color-z);\n }\n\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .measure-arrow.v {\n fill: var(---color-v);\n stroke: var(---color-v);\n }\n\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .measure-arrow.t0 {\n fill: var(---color-t0);\n stroke: var(---color-t0);\n }\n\n .sd .indicator,\n .mean .indicator {\n stroke-width: 2;\n }\n\n .sd.model .indicator,\n .mean.model .indicator {\n stroke-dasharray: 2 2;\n }\n\n .sd.data .indicator,\n .mean.data .indicator {\n stroke-dasharray: 1 1;\n }\n\n .sd.correct .indicator,\n .mean.correct .indicator {\n stroke: var(---color-correct-dark);\n }\n\n .sd.error .indicator,\n .mean.error .indicator {\n stroke: var(---color-error-dark);\n }\n\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .cap.correct {\n fill: var(---color-correct-dark);\n stroke: var(---color-correct-dark);\n stroke-dasharray: 100%;\n }\n\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .cap.error {\n fill: var(---color-error-dark);\n stroke: var(---color-error-dark);\n stroke-dasharray: 100%;\n }\n\n .rt-label rect {\n filter: url(\"#shadow-2\");\n\n fill: var(--color-background);\n rx: 4;\n }\n\n .rt-label text {\n font-size: 0.75rem;\n \n text-anchor: middle;\n }\n\n .rt-label.correct text {\n dominant-baseline: auto;\n }\n\n .rt-label.error text {\n dominant-baseline: hanging;\n }\n `,\n ];\n }\n\n render() { /* eslint-disable-line class-methods-use-this */\n return html``;\n }\n\n willUpdate() {\n this.alignState();\n }\n\n update(changedProperties) {\n super.update(changedProperties);\n\n // Bail out if we can't get the width/height\n if (Number.isNaN(this.width) || Number.isNaN(this.height) || Number.isNaN(this.rem)) {\n return;\n }\n\n const hostWidth = this.width;\n const hostHeight = this.height;\n const hostAspectRatio = hostWidth / hostHeight;\n\n const elementAspectRatio = 1.5;\n let elementWidth;\n let elementHeight;\n\n if (hostAspectRatio > elementAspectRatio) {\n elementHeight = hostHeight;\n elementWidth = elementHeight * elementAspectRatio;\n } else {\n elementWidth = hostWidth;\n elementHeight = elementWidth / elementAspectRatio;\n }\n\n const margin = {\n top: 1 * this.rem,\n bottom: 3 * this.rem,\n left: 3.75 * this.rem,\n right: 3.25 * this.rem,\n };\n const height = elementHeight - (margin.top + margin.bottom);\n const width = elementWidth - (margin.left + margin.right);\n\n const gapHeight = 0.75 * this.rem;\n const evidenceHeight = height * 0.5;\n const densityHeight = height * 0.25 - gapHeight;\n\n const gapWidth = 0.75 * this.rem;\n const timeWidth = width * 0.90;\n const accuracyWidth = width * 0.10 - gapWidth;\n\n const transitionDuration = parseInt(this.getComputedStyleValue('---transition-duration'), 10);\n\n //\n // SCALES\n //\n\n // Time Scale\n const timeScale = d3.scaleLinear()\n .domain([this.scale.time.min, this.scale.time.max])\n .range([0, timeWidth]);\n\n // Evidence Scale\n const evidenceScale = d3.scaleLinear()\n .domain([this.scale.evidence.min, this.scale.evidence.max])\n .range([evidenceHeight, 0]);\n\n // Correct Density Scale\n const correctDensityScale = d3.scaleLinear()\n .domain([this.scale.density.min, this.scale.density.max])\n .range([densityHeight, 0]);\n\n // Error Density Scale\n const errorDensityScale = d3.scaleLinear()\n .domain([this.scale.density.min, this.scale.density.max])\n .range([0, densityHeight]);\n\n // Accuracy Scale\n const accuracyScale = d3.scaleLinear()\n .domain([0, 1])\n .range([0, height]);\n\n //\n // DRAG BEHAVIORS\n //\n\n // Nondecision Time/Starting Point Drag behavior\n const dragT0z = d3.drag()\n .subject((event, datum) => {\n return {x: timeScale(datum.t0), y: evidenceScale(datum.startingPoint)};\n })\n .on('start', (event) => {\n const element = event.currentTarget;\n d3.select(element).classed('dragging', true);\n })\n .on('drag', (event) => {\n this.drag = true;\n const shift = event.sourceEvent.shiftKey\n ? (Math.abs(event.x - event.subject.x) > Math.abs(event.y - event.subject.y))\n ? 't0'\n : 'z'\n : false;\n let t0 = timeScale.invert(event.x);\n let z = (evidenceScale.invert(event.y) + (this.a / 2)) / this.a;\n // Clamp t0\n t0 = (shift === 'z')\n ? timeScale.invert(event.subject.x)\n : (t0 < DDMMath.t0.MIN)\n ? DDMMath.t0.MIN\n : (t0 > DDMMath.t0.MAX)\n ? DDMMath.t0.MAX\n : t0;\n // Clamp z\n z = (shift === 't0')\n ? (evidenceScale.invert(event.subject.y) + (this.a / 2)) / this.a\n : (z < DDMMath.z.MIN)\n ? DDMMath.z.MIN\n : (z > DDMMath.z.MAX)\n ? DDMMath.z.MAX\n : z;\n this.t0 = t0;\n this.z = z;\n this.alignState();\n this.dispatchEvent(new CustomEvent('ddm-model-t0', {\n detail: {\n t0: this.t0,\n },\n bubbles: true,\n }));\n this.dispatchEvent(new CustomEvent('ddm-model-z', {\n detail: {\n z: this.z,\n },\n bubbles: true,\n }));\n })\n .on('end', (event) => {\n const element = event.currentTarget;\n d3.select(element).classed('dragging', false);\n this.drag = false;\n });\n\n // Drift Rate Drag behavior\n const dragDrift = d3.drag()\n .on('start', (event) => {\n const element = event.currentTarget;\n d3.select(element).classed('dragging', true);\n })\n .on('drag', (event) => {\n this.drag = true;\n let v = ((evidenceScale.invert(event.y) - this.startingPoint)\n / (timeScale.invert(event.x) - this.t0)) * 1000;\n // Clamp drift rate\n v = (v < DDMMath.v.MIN)\n ? DDMMath.v.MIN\n : (v > DDMMath.v.MAX)\n ? DDMMath.v.MAX\n : v;\n this.v = v;\n this.alignState();\n this.dispatchEvent(new CustomEvent('ddm-model-v', {\n detail: {\n v: this.v,\n },\n bubbles: true,\n }));\n })\n .on('end', (event) => {\n const element = event.currentTarget;\n d3.select(element).classed('dragging', false);\n this.drag = false;\n });\n\n // Boundary Drag behavior\n const dragBoundary = d3.drag()\n .subject((event, datum) => {\n return {x: 0, y: evidenceScale(datum.value)};\n })\n .on('start', (event) => {\n const element = event.currentTarget;\n d3.select(element).classed('dragging', true);\n })\n .on('drag', (event) => {\n this.drag = true;\n const boundary = evidenceScale.invert(event.y);\n let a = Math.abs(boundary * 2);\n // Clamp a\n a = (a < DDMMath.a.MIN)\n ? DDMMath.a.MIN\n : (a > DDMMath.a.MAX)\n ? DDMMath.a.MAX\n : a;\n this.a = a;\n this.alignState();\n this.dispatchEvent(new CustomEvent('ddm-model-a', {\n detail: {\n a: this.a,\n },\n bubbles: true,\n }));\n })\n .on('end', (event) => {\n const element = event.currentTarget;\n d3.select(element).classed('dragging', false);\n this.drag = false;\n });\n\n //\n // LINES\n //\n\n // Line for time/evidence space\n const evidenceLine = d3.line()\n .x((datum) => { return timeScale(datum.t); })\n .y((datum) => { return evidenceScale(datum.e); });\n\n // Line for correct time/density space\n const correctDensityLine = d3.line()\n .x((datum) => { return timeScale(datum.t); })\n .y((datum) => { return correctDensityScale(datum.d); });\n\n // Line for error time/density space\n const errorDensityLine = d3.line()\n .x((datum) => { return timeScale(datum.t); })\n .y((datum) => { return errorDensityScale(datum.d); });\n\n //\n // PLOTS\n //\n\n // Svg\n // DATA-JOIN\n const svgUpdate = d3.select(this.renderRoot).selectAll('.main')\n .data([{\n width: this.width,\n height: this.height,\n rem: this.rem,\n }]);\n // ENTER\n const svgEnter = svgUpdate.enter().append('svg')\n .classed('main', true)\n .html(AccumulableElement.svgDefs);\n const svgDefs = svgEnter.append('defs');\n // Arrowhead marker for measures\n const measureArrow = (parameter) => {\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n svgDefs.append('marker')\n .attr('id', `measure-arrow-${parameter}`)\n .attr('class', `measure-arrow ${parameter}`)\n .attr('orient', 'auto-start-reverse')\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('viewBox', '-10 -6 12 12')\n .attr('refX', '0')\n .attr('refY', '0')\n .attr('markerWidth', '12')\n .attr('markerHeight', '12')\n .append('path')\n .attr('class', 'arrow')\n .attr('d', 'M -7 -3 l 6 3 l -6 3 z');\n };\n const measureCappedArrow = (parameter) => {\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n const marker = svgDefs.append('marker')\n .attr('id', `measure-capped-arrow-${parameter}`)\n .attr('class', `measure-arrow capped ${parameter}`)\n .attr('orient', 'auto-start-reverse')\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('viewBox', '-10 -6 12 12')\n .attr('refX', '0')\n .attr('refY', '0')\n .attr('markerWidth', '12')\n .attr('markerHeight', '12');\n marker\n .append('path')\n .attr('class', 'arrow')\n .attr('d', 'M -7 -3 l 6 3 l -6 3 z');\n marker\n .append('path')\n .attr('class', 'cap')\n .attr('d', 'M 0 -4 l 0 8');\n };\n measureArrow('a');\n measureArrow('z');\n measureCappedArrow('v');\n measureArrow('t0');\n measureCappedArrow('t0');\n // Flat markers for SDs\n const sdCap = (outcome) => {\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n svgDefs.append('marker')\n .attr('id', `model-sd-cap-${outcome}`)\n .attr('class', `model-sd cap ${outcome}`)\n .attr('orient', 'auto-start-reverse')\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('viewBox', '-5 -5 10 10')\n .attr('refX', '0')\n .attr('refY', '0')\n .attr('markerWidth', '10')\n .attr('markerHeight', '10')\n .append('path')\n .attr('stroke', 'context-stroke')\n .attr('fill', 'context-stroke')\n .attr('stroke-width', '2')\n .attr('d', 'M 0 -4 l 0 8');\n svgDefs.append('marker')\n .attr('id', `data-sd-cap-${outcome}`)\n .attr('class', `data-sd cap ${outcome}`)\n .attr('orient', 'auto-start-reverse')\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('viewBox', '-5 -5 10 10')\n .attr('refX', '0')\n .attr('refY', '0')\n .attr('markerWidth', '10')\n .attr('markerHeight', '10')\n .append('path')\n .attr('stroke', 'context-stroke')\n .attr('fill', 'context-stroke')\n .attr('stroke-width', '2')\n .attr('d', 'M 0 -3 l 0 6');\n };\n sdCap('error');\n sdCap('correct');\n const gradient = svgDefs.append('linearGradient')\n .attr('id', 'path-animate')\n .attr('gradientUnits', 'userSpaceOnUse')\n .attr('color-interpolation', 'linearRGB')\n .attr('x1', '0')\n .attr('x2', '0')\n .attr('y1', evidenceScale(this.bounds.upper))\n .attr('y2', evidenceScale(this.bounds.lower));\n gradient.append('stop')\n .classed('stop-0', true)\n .attr('offset', '0%');\n gradient.append('stop')\n .classed('stop-100', true)\n .attr('offset', '100%');\n // MERGE\n const svgMerge = svgEnter.merge(svgUpdate)\n .attr('viewBox', `0 0 ${elementWidth} ${elementHeight}`);\n\n // Plots\n // DATA-JOIN\n const densityPlotUpdate = svgMerge.selectAll('.plot.density')\n .data([\n {\n outcome: 'correct',\n data: {\n meanRT: this.data.correctMeanRT,\n sdRT: this.data.correctSDRT,\n },\n model: {\n meanRT: this.model.correctMeanRT,\n sdRT: this.model.correctSDRT,\n dist: this.model.correctDist,\n },\n densityScale: correctDensityScale,\n densityLine: correctDensityLine,\n alignDistribution: this.alignCorrectDistribution.bind(this),\n },\n {\n outcome: 'error',\n data: {\n meanRT: this.data.errorMeanRT,\n sdRT: this.data.errorSDRT,\n },\n model: {\n meanRT: this.model.errorMeanRT,\n sdRT: this.model.errorSDRT,\n dist: this.model.errorDist,\n },\n densityScale: errorDensityScale,\n densityLine: errorDensityLine,\n alignDistribution: this.alignErrorDistribution.bind(this),\n },\n ]);\n // ENTER\n const evidencePlotEnter = svgEnter.append('g')\n .classed('plot evidence', true);\n const densityPlotEnter = densityPlotUpdate.enter().append('g')\n .attr('class', (datum) => { return `plot density ${datum.outcome}`; });\n const accuracyPlotEnter = svgEnter.append('g')\n .classed('plot accuracy', true);\n // MERGE\n const evidencePlotMerge = svgMerge.select('.plot.evidence')\n .attr('transform', `translate(${margin.left}, ${margin.top + densityHeight + gapHeight})`);\n const densityPlotMerge = densityPlotEnter.merge(densityPlotUpdate)\n .attr('transform', (datum) => {\n return `translate(${margin.left}, ${\n (datum.outcome === 'correct')\n ? margin.top\n : margin.top + densityHeight + evidenceHeight + 2 * gapHeight\n })`;\n });\n const accuracyPlotMerge = svgMerge.select('.plot.accuracy')\n .attr('transform', `translate(${margin.left + timeWidth + gapWidth}, ${margin.top})`);\n\n // Clippaths\n // ENTER\n evidencePlotEnter.append('clipPath')\n .attr('id', 'clip-evidence')\n .append('rect');\n // MERGE\n evidencePlotMerge.select('clipPath rect')\n .attr('y', evidenceScale(this.bounds.upper))\n .attr('height', evidenceScale(this.bounds.lower) - evidenceScale(this.bounds.upper) + 1)\n .attr('width', timeWidth + 1);\n\n //\n // LAYERS\n //\n\n // Underlayers\n // ENTER\n const evidenceUnderlayerEnter = evidencePlotEnter.append('g')\n .classed('underlayer', true);\n const densityUnderlayerEnter = densityPlotEnter.append('g')\n .classed('underlayer', true);\n const accuracyUnderlayerEnter = accuracyPlotEnter.append('g')\n .classed('underlayer', true);\n // MERGE\n const evidenceUnderlayerMerge = evidencePlotMerge.select('.underlayer');\n const densityUnderlayerMerge = densityPlotMerge.select('.underlayer');\n const accuracyUnderlayerMerge = accuracyPlotMerge.select('.underlayer');\n\n // Contents\n // ENTER\n evidencePlotEnter.append('g')\n .classed('content', true)\n .append('g').classed('paths', true);\n const densityContentEnter = densityPlotEnter.append('g')\n .classed('content', true);\n accuracyPlotEnter.append('g')\n .classed('content', true);\n // MERGE\n const evidenceContentMerge = evidencePlotMerge.select('.content');\n const densityContentMerge = densityPlotMerge.select('.content');\n const accuracyContentMerge = accuracyPlotMerge.select('.content');\n\n // Overlayers\n // ENTER\n evidencePlotEnter.append('g')\n .classed('overlayer', true);\n densityPlotEnter.append('g')\n .classed('overlayer', true);\n accuracyPlotEnter.append('g')\n .classed('overlayer', true);\n // MERGE\n const evidenceOverlayerMerge = evidencePlotMerge.select('.overlayer');\n const densityOverlayerMerge = densityPlotMerge.select('.overlayer');\n // const accuracyOverlayerMerge = accuracyPlotMerge.select('.overlayer');\n\n //\n // UNDERLAYERS\n //\n\n // Backgrounds\n // ENTER\n evidenceUnderlayerEnter.append('rect')\n .classed('background', true);\n densityUnderlayerEnter.append('rect')\n .classed('background', true);\n // MERGE\n evidenceUnderlayerMerge.select('.background')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('y', evidenceScale(this.bounds.upper))\n .attr('height', evidenceScale(this.bounds.lower) - evidenceScale(this.bounds.upper))\n .attr('width', timeWidth);\n densityUnderlayerMerge.select('.background')\n .transition()\n .duration(transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('height', densityHeight)\n .attr('width', timeWidth);\n\n // X Axes (Time)\n // ENTER\n densityUnderlayerEnter\n .filter((datum) => { return datum.outcome === 'error'; })\n .append('g')\n .classed('axis time', true);\n // MERGE\n const timeScaleMerge = densityUnderlayerMerge\n .filter((datum) => { return datum.outcome === 'error'; })\n .select('.axis.time')\n .attr('transform', `translate(0, ${densityHeight + (0.25 * this.rem)})`);\n const timeScaleTransition = timeScaleMerge.transition()\n .duration(transitionDuration)\n .ease(d3.easeCubicOut)\n .call(d3.axisBottom(timeScale))\n .attr('font-size', null)\n .attr('font-family', null);\n timeScaleTransition.selectAll('line, path')\n .attr('stroke', null);\n\n // X Axes Titles\n // ENTER\n const timeTitleEnter = densityUnderlayerEnter\n .filter((datum) => { return datum.outcome === 'error'; })\n .append('text')\n .classed('title time', true)\n .attr('text-anchor', 'middle');\n timeTitleEnter.append('tspan')\n .classed('name', true)\n .text('Time (ms)');\n // MERGE\n densityUnderlayerMerge\n .filter((datum) => { return datum.outcome === 'error'; })\n .select('.title.time')\n .transition()\n .duration(transitionDuration)\n .ease(d3.easeCubicOut)\n .attr(\n 'transform',\n `translate(${(timeWidth / 2)}, ${(densityHeight + (2.5 * this.rem))})`,\n );\n\n // Y Axes (Evidence, Density, Accuracy)\n // ENTER\n evidenceUnderlayerEnter.append('g')\n .classed('axis evidence', true);\n densityUnderlayerEnter.append('g')\n .attr('class', (datum) => { return `axis density ${datum.outcome}`; });\n accuracyUnderlayerEnter.append('g')\n .classed('axis accuracy', true);\n // MERGE\n const evidenceScaleMerge = evidenceUnderlayerMerge.select('.axis.evidence')\n .attr('transform', `translate(${-0.25 * this.rem}, 0)`);\n const densityScaleMerge = densityUnderlayerMerge.select('.axis.density')\n .attr('transform', `translate(${-0.25 * this.rem}, 0)`);\n const accuracyScaleMerge = accuracyUnderlayerMerge.select('.axis.accuracy')\n .attr('transform', `translate(${accuracyWidth + (0.25 * this.rem)}, 0)`);\n const evidenceScaleTransition = evidenceScaleMerge.transition()\n .duration(transitionDuration)\n .ease(d3.easeCubicOut)\n .call(d3.axisLeft(evidenceScale))\n .attr('font-size', null)\n .attr('font-family', null);\n const densityScaleTransition = densityScaleMerge.transition()\n .duration(transitionDuration)\n .ease(d3.easeCubicOut)\n .each((datum, index, elements) => {\n d3.axisLeft(datum.densityScale).ticks(2)(d3.select(elements[index]));\n })\n .attr('font-size', null)\n .attr('font-family', null);\n const accuracyScaleTransition = accuracyScaleMerge.transition()\n .duration(transitionDuration)\n .ease(d3.easeCubicOut)\n .call(d3.axisRight(accuracyScale))\n .attr('font-size', null)\n .attr('font-family', null);\n evidenceScaleTransition.selectAll('line, path')\n .attr('stroke', null);\n densityScaleTransition.selectAll('line, path')\n .attr('stroke', null);\n accuracyScaleTransition.selectAll('line, path')\n .attr('stroke', null);\n\n // Y Axes Titles (Evidence & Density)\n // ENTER\n const evidenceTitleEnter = evidenceUnderlayerEnter.append('text')\n .classed('title evidence', true)\n .attr('text-anchor', 'middle');\n const densityTitleEnter = densityUnderlayerEnter.append('text')\n .attr('class', (datum) => { return `title density ${datum.outcome}`; })\n .attr('text-anchor', 'middle');\n const accuracyTitleEnter = accuracyUnderlayerEnter.append('text')\n .classed('title accuracy', true)\n .attr('text-anchor', 'middle');\n evidenceTitleEnter.append('tspan')\n .classed('name', true)\n .text('Evidence');\n densityTitleEnter.append('tspan')\n .classed('name', true)\n .text('Density');\n accuracyTitleEnter.append('tspan')\n .classed('name', true)\n .text('Accuracy');\n // MERGE\n evidenceUnderlayerMerge.select('.title.evidence')\n .transition()\n .duration(transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('transform', `translate(${-2.5 * this.rem}, ${(evidenceHeight / 2)})rotate(-90)`);\n densityUnderlayerMerge.select('.title.density')\n .transition()\n .duration(transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('transform', `translate(${-2.5 * this.rem}, ${(densityHeight / 2)})rotate(-90)`);\n accuracyUnderlayerMerge.select('.title.accuracy')\n .transition()\n .duration(transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('transform', `translate(${accuracyWidth + 2.25 * this.rem}, ${(height / 2)})rotate(90)`);\n\n //\n // CONTENTS\n //\n\n // Paths\n // DATA-JOIN\n const pathUpdate = evidenceContentMerge.select('.paths').selectAll('.path')\n .data(\n this.data.trials.filter((trial) => { return trial.path !== undefined; }),\n );\n // ENTER\n const rtLabel = d3.local();\n const pathEnter = pathUpdate.enter().append('g')\n .classed('path', true)\n .attr('data-new-trial-ease-time', 0)\n .on('pointerenter', (event, datum) => {\n if (!this.drag) {\n d3.select(event.currentTarget)\n .classed('highlight', true)\n .raise();\n const myRtLabel = evidenceOverlayerMerge.append('g')\n .classed(`rt-label ${datum.outcome}`, true);\n const rect = myRtLabel.append('rect');\n const text = myRtLabel.append('text')\n .text(`RT = ${datum.rt.toFixed()}`)\n .attr('x', timeScale(datum.rt))\n .attr('y', datum.outcome === 'correct'\n ? evidenceScale(this.bounds.upper) - this.rem * 0.25\n : evidenceScale(this.bounds.lower) + this.rem * 0.125);\n const bbox = text.node().getBBox();\n rect\n .attr('x', bbox.x - this.rem * 0.125)\n .attr('y', bbox.y + this.rem * 0.125)\n .attr('width', bbox.width + this.rem * 0.25)\n .attr('height', bbox.height - this.rem * 0.25);\n rtLabel.set(event.currentTarget, myRtLabel);\n }\n })\n .on('pointerout', (event, datum) => {\n if (!this.drag) {\n d3.select(event.currentTarget)\n .classed('highlight', false)\n .lower();\n event.currentTarget.parentNode.insertBefore(\n event.currentTarget,\n event.currentTarget.parentNode.children[datum.index],\n );\n rtLabel.get(event.currentTarget).remove();\n }\n });\n pathEnter.append('path')\n .classed('curve', true)\n .attr('clip-path', 'url(#clip-evidence)')\n .attr('pathLength', 1)\n .attr('stroke-dashoffset', 1);\n // MERGE\n const pathMerge = pathEnter.merge(pathUpdate)\n .attr('class', (datum) => {\n return `path ${datum.outcome}`;\n });\n pathMerge.select('.curve')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('stroke', (datum) => {\n return this.getComputedStyleValue(`---color-${datum.outcome}`);\n })\n .attrTween('d', (datum, index, elements) => {\n const element = elements[index];\n const interpolateA = d3.interpolate(\n (element.a !== undefined) ? element.a : this.a,\n this.a,\n );\n const interpolateZ = d3.interpolate(\n (element.z !== undefined) ? element.z : this.z,\n this.z,\n );\n const interpolateV = d3.interpolate(\n (element.v !== undefined) ? element.v : this.v,\n this.v,\n );\n const interpolateT0 = d3.interpolate(\n (element.t0 !== undefined) ? element.t0 : this.t0,\n this.t0,\n );\n return (time) => {\n element.a = interpolateA(time);\n element.z = interpolateZ(time);\n element.v = interpolateV(time);\n element.t0 = interpolateT0(time);\n const path = this.alignPath(datum.seed, element.a, element.z, element.v, element.t0);\n return evidenceLine(path);\n };\n });\n // MERGE - Active Animate Paths\n const pathMergeNewActive = pathMerge.filter((datum) => {\n return (datum.animate && !this.paused);\n });\n if (!pathMergeNewActive.empty()) {\n const easeTime = pathMergeNewActive.attr('data-new-trial-ease-time');\n const scaleIn = (time) => {\n return d3.scaleLinear().domain([0, 1]).range([easeTime, 1])(time);\n };\n const scaleOutGenerator = (easeFunction) => {\n return (time) => {\n return d3.scaleLinear()\n .domain([easeFunction(easeTime), 1]).range([0, 1])(easeFunction(time));\n };\n };\n pathMergeNewActive\n .classed('animate', true)\n .select('.curve')\n .attr('stroke-dasharray', 1);\n pathMergeNewActive\n .transition('new')\n .duration((datum) => {\n // scale the RT for viewing pleasure\n return Math.floor((datum.rt * 1.5) * (1 - easeTime));\n })\n .ease(scaleIn)\n .attr('data-new-trial-ease-time', 1)\n .select('.curve')\n .attrTween('stroke-dashoffset', (datum, index, elements) => {\n const element = elements[index];\n const interpolator = d3.interpolate(\n element.getAttribute('stroke-dashoffset'),\n 0,\n );\n return (time) => { return interpolator(scaleOutGenerator(d3.easeLinear)(time)); };\n })\n .on('end', (datum, index, elements) => {\n const element = elements[index];\n d3.select(element.parentElement)\n .classed('animate', false)\n .attr('data-new-trial-ease-time', null);\n datum.animate = false;\n this.animate = false;\n this.alignState();\n this.requestUpdate();\n this.dispatchEvent(new CustomEvent('accumulable-response', {\n detail: {\n outcome: datum.outcome,\n data: this.data,\n model: this.model,\n },\n bubbles: true,\n }));\n });\n }\n // MERGE - Paused Animate Paths\n const pathMergeNewPaused = pathMerge.filter((datum) => {\n return (datum.animate && this.paused);\n });\n if (!pathMergeNewPaused.empty()) {\n const easeTime = pathMergeNewPaused.attr('data-new-trial-ease-time');\n pathMergeNewPaused\n .classed('animate', true)\n .select('.curve')\n .attr('stroke-dasharray', 1)\n .attr('stroke-dashoffset', () => {\n const interpolator = d3.interpolate(1, 0);\n return interpolator(d3.easeLinear(easeTime));\n });\n }\n // MERGE - Non-Animate Paths\n pathMerge.filter((datum) => { return (!datum.animate); })\n .attr('data-new-trial-ease-time', null);\n // EXIT\n pathUpdate.exit().remove();\n\n // Distributions\n // ENTER\n const distEnter = densityContentEnter.append('g')\n .attr('class', (datum) => { return `dist ${datum.outcome}`; });\n distEnter.append('path')\n .classed('curve', true);\n // MERGE\n densityContentMerge.select('.dist').select('.curve')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attrTween('d', (datum, index, elements) => {\n const element = elements[index];\n const interpolateA = d3.interpolate(\n (element.a !== undefined) ? element.a : this.a,\n this.a,\n );\n const interpolateZ = d3.interpolate(\n (element.z !== undefined) ? element.z : this.z,\n this.z,\n );\n const interpolateV = d3.interpolate(\n (element.v !== undefined) ? element.v : this.v,\n this.v,\n );\n const interpolateT0 = d3.interpolate(\n (element.t0 !== undefined) ? element.t0 : this.t0,\n this.t0,\n );\n return (time) => {\n element.a = interpolateA(time);\n element.z = interpolateZ(time);\n element.v = interpolateV(time);\n element.t0 = interpolateT0(time);\n const path = datum.alignDistribution(element.a, element.z, element.v, element.t0);\n return datum.densityLine(path);\n };\n });\n\n // RTs\n // DATA-JOIN\n const rtUpdate = evidenceContentMerge.selectAll('.rt')\n .data(this.data.trials);\n // ENTER\n const rtEnter = rtUpdate.enter().append('g');\n rtEnter.append('line')\n .classed('mark', true)\n .attr('x1', (datum) => {\n return timeScale(datum.rt);\n })\n .attr('x2', (datum) => {\n return timeScale(datum.rt);\n })\n .attr('y1', (datum) => {\n return (datum.outcome === 'correct')\n ? evidenceScale(1) - 0.125 * this.rem\n : evidenceScale(-1) + 0.125 * this.rem;\n })\n .attr('y2', (datum) => {\n return (datum.outcome === 'correct')\n ? evidenceScale(1) - 0.675 * this.rem\n : evidenceScale(-1) + 0.675 * this.rem;\n });\n // MERGE\n const rtMerge = rtEnter.merge(rtUpdate)\n .attr('class', (datum) => { return `rt ${datum.outcome}`; });\n rtMerge.filter((datum) => { return (!datum.animate); }).select('.mark')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('stroke', (datum) => {\n return this.getComputedStyleValue(`---color-${datum.outcome}`);\n })\n .attr('x1', (datum) => {\n return timeScale(datum.rt);\n })\n .attr('x2', (datum) => {\n return timeScale(datum.rt);\n })\n .attr('y1', (datum) => {\n return (datum.outcome === 'correct')\n ? evidenceScale(1) - 0.125 * this.rem\n : evidenceScale(-1) + 0.125 * this.rem;\n })\n .attr('y2', (datum) => {\n return (datum.outcome === 'correct')\n ? evidenceScale(1) - 0.675 * this.rem\n : evidenceScale(-1) + 0.675 * this.rem;\n });\n // EXIT\n rtUpdate.exit().remove();\n\n // Model Accuracy\n // DATA-JOIN\n const accuracyUpdate = accuracyContentMerge.selectAll('.accuracy.model')\n .data(\n [this.model.accuracy, 1 - this.model.accuracy],\n );\n // ENTER\n const accuracyEnter = accuracyUpdate.enter().append('g')\n .attr('class', (_, index) => {\n return `accuracy model ${(index === 0) ? 'correct' : 'error'}`;\n });\n accuracyEnter.append('rect')\n .classed('bar', true)\n .attr('x', 0);\n // MERGE\n accuracyEnter.merge(accuracyUpdate).select('rect')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n // ## Tween based on params?\n .attr('y', (datum, index) => {\n return (index === 0) ? accuracyScale(0) : accuracyScale(1 - datum);\n })\n .attr('width', accuracyWidth)\n .attr('height', (datum) => {\n return accuracyScale(datum);\n });\n // EXIT\n accuracyUpdate.exit().remove();\n\n // Data Accuracy\n // DATA-JOIN\n const dataAccuracyUpdate = accuracyContentMerge.selectAll('.accuracy.data')\n .data(\n !Number.isNaN(this.data.accuracy) ? [this.data.accuracy] : [],\n );\n // ENTER\n const dataAccuracyEnter = dataAccuracyUpdate.enter().append('g')\n .classed('accuracy data', true);\n dataAccuracyEnter.append('line')\n .classed('mark', true);\n // MERGE\n const dataAccuracyMerge = dataAccuracyEnter.merge(dataAccuracyUpdate)\n .attr('class', (datum) => {\n return `accuracy data ${(datum < this.model.accuracy.correct) ? 'correct' : 'error'}`;\n });\n dataAccuracyMerge.select('.mark')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n // ## Tween based on params?\n .attr('x1', 0 + 0.25 * this.rem)\n .attr('x2', accuracyWidth - 0.25 * this.rem)\n .attr('y1', (datum) => {\n return accuracyScale(datum) - 1;\n })\n .attr('y2', (datum) => {\n return accuracyScale(datum) - 1;\n });\n // EXIT\n dataAccuracyUpdate.exit().remove();\n\n //\n // OVERLAYERS\n //\n\n // Boundaries\n // DATA-JOIN\n const boundaryUpdate = evidenceOverlayerMerge.selectAll('.boundary')\n .data([\n {bound: 'upper', value: this.bounds.upper},\n {bound: 'lower', value: this.bounds.lower},\n ]);\n // ENTER\n const boundaryEnter = boundaryUpdate.enter().append('g')\n .attr('class', (_, index) => {\n return `boundary ${(index === 0) ? 'correct' : 'error'}`;\n });\n boundaryEnter.append('line')\n .classed('line', true);\n boundaryEnter.append('line')\n .classed('line touch', true);\n // MERGE\n const boundaryMerge = boundaryEnter.merge(boundaryUpdate)\n .attr('tabindex', this.interactive ? 0 : null)\n .classed('interactive', this.interactive)\n .on('keydown', this.interactive\n ? (event, datum) => {\n if (['ArrowUp', 'ArrowDown'].includes(event.key)) {\n let {a} = this;\n switch (event.key) {\n case 'ArrowUp':\n a += (datum.bound === 'upper')\n ? event.shiftKey\n ? DDMMath.a.STEP\n : DDMMath.a.JUMP\n : event.shiftKey\n ? -DDMMath.a.STEP\n : -DDMMath.a.JUMP;\n break;\n case 'ArrowDown':\n a += (datum.bound === 'upper')\n ? event.shiftKey\n ? -DDMMath.a.STEP\n : -DDMMath.a.JUMP\n : event.shiftKey\n ? DDMMath.a.STEP\n : DDMMath.a.JUMP;\n break;\n default:\n }\n // Clamp a\n a = (a < DDMMath.a.MIN)\n ? DDMMath.a.MIN\n : (a > DDMMath.a.MAX)\n ? DDMMath.a.MAX\n : a;\n this.a = a;\n this.alignState();\n this.dispatchEvent(new CustomEvent('ddm-model-a', {\n detail: {\n a: this.a,\n },\n bubbles: true,\n }));\n event.preventDefault();\n }\n }\n : null);\n if (\n this.firstUpdate\n || changedProperties.has('interactive')\n ) {\n if (this.interactive) {\n boundaryMerge.call(dragBoundary);\n } else {\n boundaryMerge.on('.drag', null);\n }\n }\n boundaryMerge.select('.line')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', timeScale(this.scale.time.min))\n .attr('x2', timeScale(this.scale.time.max))\n .attr('y1', (datum) => {\n return evidenceScale(datum.value);\n })\n .attr('y2', (datum) => {\n return evidenceScale(datum.value);\n });\n boundaryMerge.select('.line.touch')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', timeScale(this.scale.time.min))\n .attr('x2', timeScale(this.scale.time.max))\n .attr('y1', (datum) => {\n return evidenceScale(datum.value);\n })\n .attr('y2', (datum) => {\n return evidenceScale(datum.value);\n });\n // EXIT\n boundaryUpdate.exit().remove();\n\n // Drift Rate\n // DATA-JOIN\n const driftUpdate = evidenceOverlayerMerge.selectAll('.drift')\n .data([\n {v: this.v, t0: this.t0, startingPoint: this.startingPoint},\n ]);\n // ENTER\n const driftEnter = driftUpdate.enter().append('g')\n .classed('drift', true);\n driftEnter.append('line')\n .classed('line', true);\n driftEnter.append('line')\n .classed('line touch', true);\n driftEnter.append('path')\n .classed('arrow', true);\n driftEnter.append('path')\n .classed('arrow touch', true);\n // MERGE\n const driftMerge = driftEnter.merge(driftUpdate)\n .attr('tabindex', this.interactive ? 0 : null)\n .classed('interactive', this.interactive)\n .on('keydown', this.interactive\n ? (event) => {\n if (['ArrowUp', 'ArrowDown'].includes(event.key)) {\n let {v} = this;\n switch (event.key) {\n case 'ArrowUp':\n v += event.shiftKey\n ? DDMMath.v.STEP\n : DDMMath.v.JUMP;\n break;\n case 'ArrowDown':\n v -= event.shiftKey\n ? DDMMath.v.STEP\n : DDMMath.v.JUMP;\n break;\n default:\n }\n // Clamp z\n v = (v < DDMMath.v.MIN)\n ? DDMMath.v.MIN\n : (v > DDMMath.v.MAX)\n ? DDMMath.v.MAX\n : v;\n this.v = v;\n this.alignState();\n this.dispatchEvent(new CustomEvent('ddm-model-v', {\n detail: {\n v: this.v,\n },\n bubbles: true,\n }));\n event.preventDefault();\n }\n }\n : null);\n if (\n this.firstUpdate\n || changedProperties.has('interactive')\n ) {\n if (this.interactive) {\n driftMerge.call(dragDrift);\n } else {\n driftMerge.on('.drag', null);\n }\n }\n const scaleRatio = (evidenceScale(0) - evidenceScale(1)) / (timeScale(1) - timeScale(0));\n driftMerge\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('transform', (datum) => {\n return `translate(${timeScale(datum.t0)}, ${evidenceScale(datum.startingPoint)})\n rotate(${-Math.atan((datum.v / 1000) * scaleRatio) * (180 / Math.PI)})`;\n });\n driftMerge.select('.line')\n .attr('x2', timeScale(200));\n driftMerge.select('.line.touch')\n .attr('x2', timeScale(200));\n driftMerge.select('.arrow')\n .attr('d', `\n M ${timeScale(200) - this.rem * 0.5},${-this.rem * 0.5}\n l ${this.rem * 0.5},${this.rem * 0.5}\n l ${-this.rem * 0.5},${this.rem * 0.5}\n `);\n driftMerge.select('.arrow.touch')\n .attr('d', `\n M ${timeScale(200) - this.rem * 0.5},${-this.rem * 0.5}\n l ${this.rem * 0.5},${this.rem * 0.5}\n l ${-this.rem * 0.5},${this.rem * 0.5}\n `);\n // EXIT\n driftUpdate.exit().remove();\n\n // Nondecision Time/Starting Point\n // DATA-JOIN\n const t0zUpdate = evidenceOverlayerMerge.selectAll('.t0z')\n .data([\n {t0: this.t0, startingPoint: this.startingPoint},\n ]);\n // ENTER\n const t0zEnter = t0zUpdate.enter().append('g')\n .classed('t0z', true);\n t0zEnter.append('line')\n .classed('line', true);\n t0zEnter.append('line')\n .classed('line touch', true);\n t0zEnter.append('circle')\n .classed('point touch', true);\n // MERGE\n const t0zMerge = t0zEnter.merge(t0zUpdate)\n .attr('tabindex', this.interactive ? 0 : null)\n .classed('interactive', this.interactive)\n .on('keydown', this.interactive\n ? (event) => {\n if (['ArrowUp', 'ArrowDown'].includes(event.key)) {\n let {z} = this;\n switch (event.key) {\n case 'ArrowUp':\n z += event.shiftKey\n ? DDMMath.z.STEP\n : DDMMath.z.JUMP;\n break;\n case 'ArrowDown':\n z -= event.shiftKey\n ? DDMMath.z.STEP\n : DDMMath.z.JUMP;\n break;\n default:\n }\n // Clamp z\n z = (z < DDMMath.z.MIN)\n ? DDMMath.z.MIN\n : (z > DDMMath.z.MAX)\n ? DDMMath.z.MAX\n : z;\n this.z = z;\n this.alignState();\n this.dispatchEvent(new CustomEvent('ddm-model-z', {\n detail: {\n z: this.z,\n },\n bubbles: true,\n }));\n event.preventDefault();\n }\n if (['ArrowLeft', 'ArrowRight'].includes(event.key)) {\n let t0 = this.t0; /* eslint-disable-line prefer-destructuring */\n switch (event.key) {\n case 'ArrowRight':\n t0 += event.shiftKey\n ? DDMMath.t0.STEP\n : DDMMath.t0.JUMP;\n break;\n case 'ArrowLeft':\n t0 -= event.shiftKey\n ? DDMMath.t0.STEP\n : DDMMath.t0.JUMP;\n break;\n default:\n }\n // Clamp t0\n t0 = (t0 < DDMMath.t0.MIN)\n ? DDMMath.t0.MIN\n : (t0 > DDMMath.t0.MAX)\n ? DDMMath.t0.MAX\n : t0;\n this.t0 = t0;\n this.alignState();\n this.dispatchEvent(new CustomEvent('ddm-model-t0', {\n detail: {\n t0: this.t0,\n },\n bubbles: true,\n }));\n event.preventDefault();\n }\n }\n : null);\n if (\n this.firstUpdate\n || changedProperties.has('interactive')\n ) {\n if (this.interactive) {\n t0zMerge.call(dragT0z);\n } else {\n t0zMerge.on('.drag', null);\n }\n }\n t0zMerge.select('.line')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', timeScale(0))\n .attr('x2', (datum) => { return timeScale(datum.t0); })\n .attr('y1', (datum) => { return evidenceScale(datum.startingPoint); })\n .attr('y2', (datum) => { return evidenceScale(datum.startingPoint); });\n t0zMerge.select('.line.touch')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', timeScale(0))\n .attr('x2', (datum) => { return timeScale(datum.t0); })\n .attr('y1', (datum) => { return evidenceScale(datum.startingPoint); })\n .attr('y2', (datum) => { return evidenceScale(datum.startingPoint); });\n t0zMerge.select('.point')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('cx', (datum) => { return timeScale(datum.t0); })\n .attr('cy', (datum) => { return evidenceScale(datum.startingPoint); });\n // EXIT\n t0zUpdate.exit().remove();\n\n // Measures\n const markerCorrection = 2;\n\n // a Measure\n // DATA-JOIN\n const aUpdate = evidenceOverlayerMerge.selectAll('.measure.a')\n .data(this.measures ? [this.a] : []);\n // ENTER\n const aEnter = aUpdate.enter().append('g')\n .classed('measure a', true);\n aEnter.append('line')\n .classed('line', true);\n aEnter.append('line')\n .classed('markers', true)\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .attr('marker-start', 'url(#measure-arrow-a)')\n .attr('marker-end', 'url(#measure-arrow-a)');\n const aLabel = aEnter.append('text')\n .classed('label', true);\n aLabel.append('tspan')\n .classed('a math-var', true)\n .text('a');\n aLabel.append('tspan')\n .classed('equals', true)\n .text(' = ');\n aLabel.append('tspan')\n .classed('value', true);\n // MERGE\n const aLength = Math.abs(evidenceScale(this.bounds.upper) - evidenceScale(this.bounds.lower));\n const aShort = aLength <= (markerCorrection * 2);\n const aMerge = aEnter.merge(aUpdate);\n aMerge.select('.line')\n .classed('short', aShort)\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', timeScale(this.scale.time.max) - this.rem * 0.75)\n .attr('y1', evidenceScale(this.bounds.upper) + markerCorrection)\n .attr('x2', timeScale(this.scale.time.max) - this.rem * 0.75)\n .attr('y2', evidenceScale(this.bounds.lower) - markerCorrection);\n aMerge.select('.markers')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', timeScale(this.scale.time.max) - this.rem * 0.75)\n .attr('y1', evidenceScale(this.bounds.upper))\n .attr('x2', timeScale(this.scale.time.max) - this.rem * 0.75)\n .attr('y2', evidenceScale(this.bounds.lower));\n const aLabelMerge = aMerge.select('.label')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x', timeScale(this.scale.time.max))\n .attr('y', evidenceScale(this.bounds.upper) - this.rem * 0.25);\n aLabelMerge.select('.value')\n .text(d3.format('.2f')(this.a));\n // EXIT\n aUpdate.exit().remove();\n\n // z Measure\n // DATA-JOIN\n const zUpdate = evidenceOverlayerMerge.selectAll('.measure.z')\n .data(this.measures ? [this.z] : []);\n // ENTER\n const zEnter = zUpdate.enter().append('g')\n .classed('measure z', true);\n zEnter.append('line')\n .classed('line', true);\n zEnter.append('line')\n .classed('markers', true)\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .attr('marker-start', 'url(#measure-arrow-z)')\n .attr('marker-end', 'url(#measure-arrow-z)');\n const zLabel = zEnter.append('text')\n .classed('label', true);\n zLabel.append('tspan')\n .classed('z math-var', true)\n .text('z');\n zLabel.append('tspan')\n .classed('equals', true)\n .text(' = ');\n zLabel.append('tspan')\n .classed('value', true);\n // MERGE\n const zLength = Math.abs(evidenceScale(this.startingPoint) - evidenceScale(this.bounds.lower));\n const zShort = zLength <= (markerCorrection * 2);\n const zMerge = zEnter.merge(zUpdate);\n zMerge.select('.line')\n .classed('short', zShort)\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', timeScale(this.scale.time.min) + this.rem * 0.75)\n .attr('y1', evidenceScale(this.startingPoint) + markerCorrection)\n .attr('x2', timeScale(this.scale.time.min) + this.rem * 0.75)\n .attr('y2', evidenceScale(this.bounds.lower) - markerCorrection);\n zMerge.select('.markers')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', timeScale(this.scale.time.min) + this.rem * 0.75)\n .attr('y1', evidenceScale(this.startingPoint))\n .attr('x2', timeScale(this.scale.time.min) + this.rem * 0.75)\n .attr('y2', evidenceScale(this.bounds.lower));\n const zLabelMerge = zMerge.select('.label')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x', timeScale(this.scale.time.min))\n .attr('y', evidenceScale(this.bounds.lower) + this.rem * 0.125);\n zLabelMerge.select('.value')\n .text(d3.format('.0%')(this.z));\n // EXIT\n zUpdate.exit().remove();\n\n // v Measure\n // DATA-JOIN\n const vUpdate = evidenceOverlayerMerge.selectAll('.measure.v')\n .data(this.measures ? [this.v] : []);\n // ENTER\n const vEnter = vUpdate.enter().append('g')\n .classed('measure v', true);\n vEnter.append('path')\n .classed('line', true);\n vEnter.append('path')\n .classed('markers', true)\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .attr('marker-start', 'url(#measure-capped-arrow-v)')\n .attr('marker-end', 'url(#measure-capped-arrow-v)');\n const vLabel = vEnter.append('text')\n .classed('label', true);\n vLabel.append('tspan')\n .classed('v math-var', true)\n .text('v');\n vLabel.append('tspan')\n .classed('equals', true)\n .text(' = ');\n vLabel.append('tspan')\n .classed('value', true);\n // MERGE\n // Full path\n const driftHypotenuse = timeScale(200) - timeScale(0) + this.rem * 0.75;\n const driftAngle = Math.atan((this.v / 1000) * scaleRatio);\n const driftX = Math.cos(driftAngle) * driftHypotenuse;\n const driftY = Math.sin(driftAngle) * driftHypotenuse;\n // Corrected path\n const driftCorrection = markerCorrection / driftHypotenuse;\n const driftAngleCorrected = Math.atan((this.v / 1000) * scaleRatio) - driftCorrection;\n const driftStartX = Math.cos(driftCorrection) * driftHypotenuse;\n const driftStartY = Math.sin(driftCorrection) * driftHypotenuse;\n const driftEndX = Math.cos(driftAngleCorrected) * driftHypotenuse;\n const driftEndY = Math.sin(driftAngleCorrected) * driftHypotenuse;\n // Short path?\n const vLength = driftAngleCorrected * driftHypotenuse;\n const vShort = vLength <= (markerCorrection * 2);\n const vMerge = vEnter.merge(vUpdate);\n vMerge.select('.line')\n .classed('short', vShort)\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('d', `\n M ${timeScale(this.t0) + driftStartX}, ${evidenceScale(this.startingPoint) - driftStartY}\n A ${timeScale(200) - timeScale(0) + this.rem * 0.75} ${timeScale(200) - timeScale(0) + this.rem * 0.75} 0 0 0 ${timeScale(this.t0) + driftEndX} ${evidenceScale(this.startingPoint) - driftEndY}\n `);\n vMerge.select('.markers')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('d', `\n M ${timeScale(this.t0 + 200) + this.rem * 0.75}, ${evidenceScale(this.startingPoint)}\n A ${timeScale(200) - timeScale(0) + this.rem * 0.75} ${timeScale(200) - timeScale(0) + this.rem * 0.75} 0 0 0 ${timeScale(this.t0) + driftX} ${evidenceScale(this.startingPoint) - driftY}\n `);\n const vLabelMerge = vMerge.select('.label')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x', timeScale(this.t0 + 200) + this.rem * 0.5)\n .attr('y', evidenceScale(this.bounds.upper) - this.rem * 0.25);\n vLabelMerge.select('.value')\n .text(d3.format('.2f')(this.v));\n // EXIT\n vUpdate.exit().remove();\n\n // t0 Measure\n // DATA-JOIN\n const t0Update = evidenceOverlayerMerge.selectAll('.measure.t0')\n .data(this.measures ? [this.t0] : []);\n // ENTER\n const t0Enter = t0Update.enter().append('g')\n .classed('measure t0', true);\n t0Enter.append('line')\n .classed('line', true);\n t0Enter.append('line')\n .classed('markers', true)\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .attr('marker-start', 'url(#measure-arrow-t0)')\n .attr('marker-end', 'url(#measure-capped-arrow-t0)');\n const t0Label = t0Enter.append('text')\n .classed('label', true);\n t0Label.append('tspan')\n .classed('t0 math-var', true)\n .text('t₀');\n t0Label.append('tspan')\n .classed('equals', true)\n .text(' = ');\n t0Label.append('tspan')\n .classed('value', true);\n // MERGE\n const t0Length = Math.abs(timeScale(0) - timeScale(this.t0));\n const t0Short = t0Length <= (markerCorrection * 2);\n const t0Merge = t0Enter.merge(t0Update);\n t0Merge.select('.line')\n .classed('short', t0Short)\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', timeScale(0) + markerCorrection)\n .attr('y1', evidenceScale(this.startingPoint) - this.rem * 0.75)\n .attr('x2', timeScale(this.t0) - markerCorrection)\n .attr('y2', evidenceScale(this.startingPoint) - this.rem * 0.75);\n t0Merge.select('.markers')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', timeScale(0))\n .attr('y1', evidenceScale(this.startingPoint) - this.rem * 0.75)\n .attr('x2', timeScale(this.t0))\n .attr('y2', evidenceScale(this.startingPoint) - this.rem * 0.75);\n const t0LabelMerge = t0Merge.select('.label')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x', timeScale(this.t0) + this.rem * 0.25)\n .attr('y', evidenceScale(this.bounds.upper) - this.rem * 0.25);\n t0LabelMerge.select('.value')\n .text(d3.format('d')(this.t0));\n // EXIT\n t0Update.exit().remove();\n\n // Means\n // DATA-JOIN\n const meanUpdate = densityOverlayerMerge.selectAll('.model.mean')\n .data((datum) => {\n return this.means ? [datum] : [];\n });\n // ENTER\n const meanEnter = meanUpdate.enter().append('g')\n .attr('class', (datum) => { return `model mean ${datum.outcome}`; });\n meanEnter.append('line')\n .classed('indicator', true);\n // MERGE\n const meanMerge = meanEnter.merge(meanUpdate);\n meanMerge.select('.indicator')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', (datum) => { return timeScale(datum.model.meanRT); })\n .attr('x2', (datum) => { return timeScale(datum.model.meanRT); })\n .attr('y1', (datum) => { return datum.densityScale(this.scale.density.min); })\n .attr('y2', (datum) => { return datum.densityScale(this.scale.density.max); });\n // EXIT\n meanUpdate.exit().remove();\n\n // Data Means\n // DATA-JOIN\n const dataMeanUpdate = densityOverlayerMerge.selectAll('.data.mean')\n .data((datum) => {\n return (this.means && !Number.isNaN(datum.data.meanRT)) ? [datum] : [];\n });\n // ENTER\n const dataMeanEnter = dataMeanUpdate.enter().append('g')\n .attr('class', (datum) => { return `data mean ${datum.outcome}`; });\n dataMeanEnter.append('line')\n .classed('indicator', true)\n .attr('y1', (datum) => {\n return datum.densityScale(0) + ((datum.outcome === 'correct') ? 0.125 : -0.125) * this.rem;\n })\n .attr('y2', (datum) => {\n return datum.densityScale(0) + ((datum.outcome === 'correct') ? 0.675 : -0.675) * this.rem;\n });\n // MERGE\n const dataMeanMerge = dataMeanEnter.merge(dataMeanUpdate);\n dataMeanMerge.select('.indicator')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', (datum) => { return timeScale(datum.data.meanRT); })\n .attr('x2', (datum) => { return timeScale(datum.data.meanRT); })\n .attr('y1', (datum) => {\n return datum.densityScale(0) + ((datum.outcome === 'correct') ? 0.125 : -0.125) * this.rem;\n })\n .attr('y2', (datum) => {\n return datum.densityScale(0) + ((datum.outcome === 'correct') ? 0.675 : -0.675) * this.rem;\n });\n // EXIT\n dataMeanUpdate.exit().select('.indicator')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', 0)\n .attr('x2', 0)\n .on('end', (datum, index, elements) => {\n d3.select(elements[index].parentElement).remove();\n });\n\n // Standard Deviations\n // DATA-JOIN\n const sdUpdate = densityOverlayerMerge.selectAll('.model.sd')\n .data((datum) => {\n return this.sds ? [datum] : [];\n });\n // ENTER\n const sdEnter = sdUpdate.enter().append('g')\n .attr('class', (datum) => { return `model sd ${datum.outcome}`; });\n sdEnter.append('line')\n .classed('indicator', true)\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .attr('marker-start', (datum) => { return `url(#model-sd-cap-${datum.outcome})`; })\n .attr('marker-end', (datum) => { return `url(#model-sd-cap-${datum.outcome})`; });\n // MERGE\n const sdMerge = sdEnter.merge(sdUpdate);\n sdMerge.select('.indicator')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', (datum) => { return timeScale(datum.model.meanRT - (datum.model.sdRT / 2)); })\n .attr('x2', (datum) => { return timeScale(datum.model.meanRT + (datum.model.sdRT / 2)); })\n .attr('y1', (datum) => { return datum.densityScale(5); })\n .attr('y2', (datum) => { return datum.densityScale(5); });\n // EXIT\n sdUpdate.exit().remove();\n\n // Data Standard Deviation\n // DATA-JOIN\n const dataSDUpdate = densityOverlayerMerge.selectAll('.data.sd')\n .data((datum) => {\n return (this.sds && !Number.isNaN(datum.data.meanRT) && !Number.isNaN(datum.data.sdRT))\n ? [datum]\n : [];\n });\n // ENTER\n const dataSDEnter = dataSDUpdate.enter().append('g')\n .attr('class', (datum) => { return `data sd ${datum.outcome}`; });\n dataSDEnter.append('line')\n .classed('indicator', true)\n /* Hack to avoid lack of context-stroke and context-fill in Safari */\n .attr('marker-start', (datum) => { return `url(#data-sd-cap-${datum.outcome})`; })\n .attr('marker-end', (datum) => { return `url(#data-sd-cap-${datum.outcome})`; })\n .attr('y1', (datum) => {\n return datum.densityScale(0) + ((datum.outcome === 'correct') ? 0.375 : -0.375) * this.rem;\n })\n .attr('y2', (datum) => {\n return datum.densityScale(0) + ((datum.outcome === 'correct') ? 0.375 : -0.375) * this.rem;\n });\n // MERGE\n const dataSDMerge = dataSDEnter.merge(dataSDUpdate);\n dataSDMerge.select('.indicator')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', (datum) => {\n return timeScale(datum.data.meanRT - (datum.data.sdRT / 2));\n })\n .attr('x2', (datum) => {\n return timeScale(datum.data.meanRT + (datum.data.sdRT / 2));\n })\n .attr('y1', (datum) => {\n return datum.densityScale(0) + ((datum.outcome === 'correct') ? 0.375 : -0.375) * this.rem;\n })\n .attr('y2', (datum) => {\n return datum.densityScale(0) + ((datum.outcome === 'correct') ? 0.375 : -0.375) * this.rem;\n });\n // EXIT\n dataSDUpdate.exit().select('.indicator')\n .transition()\n .duration(this.drag ? 0 : transitionDuration)\n .ease(d3.easeCubicOut)\n .attr('x1', 0)\n .attr('x2', 0)\n .on('end', (datum, index, elements) => {\n d3.select(elements[index].parentElement).remove();\n });\n\n this.firstUpdate = false;\n }\n}\n\ncustomElements.define('ddm-model', DDMModel);\n","\nimport {html, css} from 'lit';\nimport * as d3 from 'd3';\n\nimport {DecidablesMixinResizeable} from '@decidables/decidables-elements';\n\nimport AccumulableElement from '../accumulable-element';\n\n/*\n RDK2AFCTask element\n <rdk-2afc-task>\n\n Attributes:\n Dots; Coherence;\n # Direction, Speed, Lifetime\n*/\nexport default class RDK2AFCTask extends DecidablesMixinResizeable(AccumulableElement) {\n static get properties() {\n return {\n coherence: {\n attribute: 'coherence',\n type: Number,\n reflect: true,\n },\n count: {\n attribute: 'count',\n type: Number,\n reflect: true,\n },\n probability: {\n attribute: 'probability',\n type: Number,\n reflect: true,\n },\n duration: {\n attribute: 'duration',\n type: Number,\n reflect: true,\n },\n wait: {\n attribute: 'wait',\n type: Number,\n reflect: true,\n },\n iti: {\n attribute: 'iti',\n type: Number,\n reflect: true,\n },\n trials: {\n attribute: 'trials',\n type: Number,\n reflect: true,\n },\n running: {\n attribute: 'running',\n type: Boolean,\n reflect: true,\n },\n\n lifetime: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n speed: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n };\n }\n\n constructor() {\n super();\n\n // Attributes\n this.coherence = 0.5; // Proportion of dots moving coherently\n this.count = 100; // Number of dots\n this.probability = 0.5; // Probability of left (as opposed to right)\n this.duration = 2000; // Duration of stimulus in milliseconds\n this.wait = 2000; // Duration of wait period for response in milliseconds\n this.iti = 2000; // Duration of inter-trial interval in milliseconds\n this.trials = 5; // Number of trials per block\n this.running = false; // Currently executing block of trials\n\n // Properties\n this.lifetime = 400; // Lifetime of each dot in milliseconds\n this.speed = 50; // Rate of dot movement in pixels per second\n\n // Private\n this.firstUpdate = true;\n this.COHERENT = 0; // \"Constant\" for index to coherent dots\n this.RANDOM = 1; // \"Constant\" for index to random dots\n this.dots = [[], []]; // Array of array of dots\n this.trial = 0; // Count of current trial\n\n this.states = ['resetted', 'iti', 'stimulus', 'wait', 'ended']; // Possible states of task\n this.state = 'resetted'; // Current state of task\n\n this.baseTime = 0; // Real time, in milliseconds, that the current block started\n this.pauseTime = 0; // Real time, in milliseconds, that block was paused at\n this.startTime = 0; // Virtual time, in milliseconds, that current stage of trial started\n this.lastTime = 0; // Virtual time, in milliseconds, of the most recent frame\n\n this.LEFT = 180; // \"Constant\" for left stimulus direction\n this.RIGHT = 0; // \"Constant\" for right stimulus direction\n this.currentDirection = undefined; // Direction in degrees for current trial\n\n this.signals = ['left', 'right']; // Possible trial types\n this.signal = undefined; // Current trial type\n\n this.runner = undefined; // D3 Interval for frame timing\n this.xScale = undefined; // D3 Scale for x-axis\n this.yScale = undefined; // D3 Scale for y-axis\n }\n\n static get styles() {\n return [\n super.styles,\n css`\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;\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 ];\n }\n\n render() { /* eslint-disable-line class-methods-use-this */\n return html``;\n }\n\n update(changedProperties) {\n super.update(changedProperties);\n\n // Bail out if we can't get the width/height/rem\n if (Number.isNaN(this.width) || Number.isNaN(this.height) || Number.isNaN(this.rem)) {\n return;\n }\n\n const elementWidth = this.width;\n const elementHeight = this.height;\n const elementSize = Math.min(elementWidth, elementHeight);\n\n const margin = {\n top: 0.25 * this.rem,\n bottom: 0.25 * this.rem,\n left: 0.25 * this.rem,\n right: 0.25 * this.rem,\n };\n const height = elementSize - (margin.top + margin.bottom);\n const width = elementSize - (margin.left + margin.right);\n\n // X Scale\n this.xScale = d3.scaleLinear()\n .domain([-1, 1])\n .range([0, width]);\n\n // Y Scale\n this.yScale = d3.scaleLinear()\n .domain([1, -1])\n .range([0, height]);\n\n // Svg\n // DATA-JOIN\n const svgUpdate = d3.select(this.renderRoot).selectAll('.main')\n .data([{\n width: this.width,\n height: this.height,\n rem: this.rem,\n }]);\n // ENTER\n const svgEnter = svgUpdate.enter().append('svg')\n .classed('main', true);\n // MERGE\n const svgMerge = svgEnter.merge(svgUpdate)\n .attr('viewBox', `0 0 ${elementSize} ${elementSize}`);\n\n // Clippath\n // ENTER\n svgEnter.append('clipPath')\n .attr('id', 'clip-rdk-task')\n .append('circle');\n // MERGE\n svgMerge.select('clipPath circle')\n .attr('cx', this.xScale(0))\n .attr('cy', this.yScale(0))\n .attr('r', this.xScale(1) - this.xScale(0));\n\n // Plot\n // ENTER\n const plotEnter = svgEnter.append('g')\n .classed('plot', true);\n // MERGE\n const plotMerge = svgMerge.select('.plot')\n .attr('transform', `translate(${margin.left}, ${margin.top})`);\n\n // Underlayer\n // ENTER\n const underlayerEnter = plotEnter.append('g')\n .classed('underlayer', true);\n // MERGE\n const underlayerMerge = plotMerge.select('.underlayer');\n\n // Background\n // ENTER\n underlayerEnter.append('circle')\n .classed('background', true);\n // MERGE\n underlayerMerge.select('.background')\n .attr('cx', this.xScale(0))\n .attr('cy', this.yScale(0))\n .attr('r', this.xScale(1) - this.xScale(0));\n\n // Content\n // ENTER\n plotEnter.append('g')\n .classed('content', true)\n .attr('clip-path', 'url(#clip-rdk-task)');\n // MERGE\n const contentMerge = plotMerge.select('.content');\n\n // Dot Groups\n // DATA-JOIN\n const dotsUpdate = contentMerge.selectAll('.dots')\n .data([[], []]);\n // ENTER\n dotsUpdate.enter().append('g')\n .classed('dots', true)\n .classed('coherent', (datum, index) => { return index === this.COHERENT; })\n .classed('random', (datum, index) => { return index === this.RANDOM; });\n\n // Overlayer\n // ENTER\n const overlayerEnter = plotEnter.append('g')\n .classed('overlayer', true);\n // MERGE\n const overlayerMerge = plotMerge.select('.overlayer');\n\n // Outline\n // ENTER\n overlayerEnter.append('circle')\n .classed('outline', true);\n // MERGE\n overlayerMerge.select('.outline')\n .attr('cx', this.xScale(0))\n .attr('cy', this.yScale(0))\n .attr('r', this.xScale(1) - this.yScale(0));\n\n // Start or stop trial block\n if (this.firstUpdate || changedProperties.has('running')) {\n if (this.running) {\n // (Re)Start\n if (this.pauseTime) {\n // Shift timeline forward as if paused time never happened\n this.baseTime += (d3.now() - this.pauseTime);\n this.pauseTime = 0;\n }\n this.runner = d3.interval(this.run.bind(this), 20); // FIXME??\n } else if (this.runner !== undefined) {\n // Pause\n this.runner.stop();\n this.pauseTime = d3.now();\n }\n }\n\n this.firstUpdate = false;\n }\n\n reset() {\n if (this.runner !== undefined) {\n this.runner.stop();\n }\n this.running = false;\n this.trial = 0;\n this.state = 'resetted';\n this.baseTime = 0;\n this.pauseTime = 0;\n this.startTime = 0;\n this.lastTime = 0;\n this.signal = undefined;\n this.currentDirection = undefined;\n\n const dotsUpdate = d3.select(this.renderRoot).select('.content').selectAll('.dots')\n .data([[], []]);\n const dotUpdate = dotsUpdate.selectAll('.dot')\n .data((datum) => { return datum; });\n dotUpdate.exit()\n .remove();\n\n const fixationUpdate = d3.select(this.renderRoot).select('.content').selectAll('.fixation')\n .data([]);\n fixationUpdate.exit()\n .remove();\n const queryUpdate = d3.select(this.renderRoot).select('.content').selectAll('.query')\n .data([]);\n queryUpdate.exit()\n .remove();\n }\n\n run(/* elapsed */) {\n const realTime = d3.now();\n const currentTime = (this.baseTime) ? (realTime - this.baseTime) : 0;\n const elapsedTime = (this.baseTime) ? (currentTime - this.startTime) : 0;\n const frameTime = (this.baseTime) ? (currentTime - this.lastTime) : 0;\n this.lastTime = currentTime;\n let newTrial = false;\n if (this.state === 'resetted') {\n // Start block with an ITI\n this.state = 'iti';\n this.baseTime = realTime;\n this.startTime = 0;\n this.dispatchEvent(new CustomEvent('rdk-block-start', {\n detail: {\n trials: this.trials,\n },\n bubbles: true,\n }));\n } else if ((this.state === 'iti') && (elapsedTime >= this.iti)) {\n // Start new trial with a stimulus\n newTrial = true;\n this.trial += 1;\n this.state = 'stimulus';\n this.startTime = currentTime;\n this.signal = (Math.random() < this.probability) ? 'left' : 'right';\n this.currentDirection = (this.signal === 'left')\n ? this.LEFT\n : this.RIGHT;\n this.dispatchEvent(new CustomEvent('rdk-trial-start', {\n detail: {\n trials: this.trials,\n duration: this.duration,\n wait: this.wait,\n iti: this.iti,\n trial: this.trial,\n signal: this.signal,\n },\n bubbles: true,\n }));\n } else if ((this.state === 'stimulus') && (elapsedTime >= this.duration)) {\n // Stimulus is over, now wait\n this.state = 'wait';\n this.startTime = currentTime;\n this.dispatchEvent(new CustomEvent('rdk-trial-middle', {\n detail: {\n trials: this.trials,\n duration: this.duration,\n wait: this.wait,\n iti: this.iti,\n trial: this.trial,\n signal: this.signal,\n },\n bubbles: true,\n }));\n } else if ((this.state === 'wait') && (elapsedTime >= this.wait)) {\n // Wait is over, end of trial\n this.dispatchEvent(new CustomEvent('rdk-trial-end', {\n detail: {\n trials: this.trials,\n duration: this.duration,\n wait: this.wait,\n iti: this.iti,\n trial: this.trial,\n signal: this.signal,\n },\n bubbles: true,\n }));\n if (this.trial >= this.trials) {\n // End of block\n this.runner.stop();\n this.running = false;\n this.state = 'ended';\n this.baseTime = 0;\n this.pauseTime = 0;\n this.startTime = 0;\n this.lastTime = 0;\n this.signal = undefined;\n this.currentDirection = undefined;\n this.dispatchEvent(new CustomEvent('rdk-block-end', {\n detail: {\n trials: this.trial,\n },\n bubbles: true,\n }));\n } else {\n // ITI\n this.state = 'iti';\n this.startTime = currentTime;\n }\n }\n\n // Dots\n if (this.state === 'stimulus') {\n this.dots[this.COHERENT].length = Math.round(this.count * this.coherence);\n this.dots[this.RANDOM].length = (this.count - this.dots[this.COHERENT].length);\n\n for (let t = 0; t < this.dots.length; t += 1) {\n for (let i = 0; i < this.dots[t].length; i += 1) {\n const newDot = (this.dots[t][i] === undefined);\n if (newDot) {\n this.dots[t][i] = {};\n }\n const dot = this.dots[t][i];\n if (newTrial || newDot) {\n dot.direction = (t === this.RANDOM) ? (Math.random() * 360) : this.currentDirection;\n dot.birth = currentTime - Math.floor(Math.random() * this.lifetime);\n const angle = Math.random() * 2 * Math.PI;\n const radius = Math.sqrt(Math.random());\n dot.x = this.xScale(radius * Math.cos(angle));\n dot.y = this.yScale(radius * Math.sin(angle));\n } else if (currentTime > (dot.birth + this.lifetime)) {\n // Dot has died, so rebirth\n dot.birth += this.lifetime;\n dot.direction = (t === this.RANDOM) ? (Math.random() * 360) : this.currentDirection;\n const angle = Math.random() * 2 * Math.PI;\n const radius = Math.sqrt(Math.random());\n dot.x = this.xScale(radius * Math.cos(angle));\n dot.y = this.yScale(radius * Math.sin(angle));\n } else {\n if (t === this.COHERENT) {\n dot.direction = this.currentDirection;\n }\n const directionR = dot.direction * (Math.PI / 180);\n dot.dx = this.speed * (frameTime / 1000) * Math.cos(directionR);\n dot.dy = this.speed * (frameTime / 1000) * Math.sin(directionR);\n // Update position\n dot.x += dot.dx;\n dot.y += dot.dy;\n // Calculate squared distance from center\n const distance2 = ((dot.x - this.xScale(0)) ** 2) + ((dot.y - this.yScale(0)) ** 2);\n const radius2 = (this.xScale(1) - this.xScale(0)) ** 2;\n if (distance2 > radius2) {\n // Dot has exited so move to other side\n dot.x = -(dot.x - this.xScale(0)) + this.xScale(0);\n dot.y = -(dot.y - this.yScale(0)) + this.yScale(0);\n }\n }\n }\n }\n }\n\n // Fixation\n // DATA-JOIN\n const fixationUpdate = d3.select(this.renderRoot).select('.content').selectAll('.fixation')\n .data((this.state === 'iti') ? [true] : []);\n // ENTER\n const fixationEnter = fixationUpdate.enter().append('g')\n .classed('fixation', true);\n fixationEnter.append('line')\n .attr('x1', this.xScale(-0.1))\n .attr('y1', this.xScale(0))\n .attr('x2', this.xScale(0.1))\n .attr('y2', this.xScale(0));\n fixationEnter.append('line')\n .attr('x1', this.xScale(0))\n .attr('y1', this.xScale(-0.1))\n .attr('x2', this.xScale(0))\n .attr('y2', this.xScale(0.1));\n // EXIT\n fixationUpdate.exit().remove();\n\n // Dots\n // DATA-JOIN\n const dotsUpdate = d3.select(this.renderRoot).select('.content').selectAll('.dots')\n .data((this.state === 'stimulus') ? this.dots : [[], []]);\n const dotUpdate = dotsUpdate.selectAll('.dot')\n .data((datum) => { return datum; });\n // ENTER\n const dotEnter = dotUpdate.enter().append('circle')\n .classed('dot', true);\n // MERGE\n dotEnter.merge(dotUpdate)\n .attr('cx', (datum) => { return datum.x; })\n .attr('cy', (datum) => { return datum.y; });\n // EXIT\n dotUpdate.exit().remove();\n\n // Query\n // DATA-JOIN\n const queryUpdate = d3.select(this.renderRoot).select('.content').selectAll('.query')\n .data((this.state === 'wait') ? [true] : []);\n // ENTER\n const queryEnter = queryUpdate.enter().append('g')\n .classed('query', true);\n queryEnter.append('text')\n .attr('x', this.xScale(0))\n .attr('y', this.xScale(0))\n .attr('text-anchor', 'middle')\n .attr('alignment-baseline', 'middle')\n .text('?');\n // EXIT\n queryUpdate.exit().remove();\n }\n}\n\ncustomElements.define('rdk-2afc-task', RDK2AFCTask);\n","\nimport {css} from 'lit';\n\nimport AccumulableElement from '../accumulable-element';\n\n/*\n DDMEquation Base Class - Not intended for instantiation!\n*/\nexport default class DDMEquation extends AccumulableElement {\n static get properties() {\n return {\n numeric: {\n attribute: 'numeric',\n type: Boolean,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n this.numeric = false;\n }\n\n static get styles() {\n return [\n super.styles,\n css`\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 white-space: nowrap;\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 var {\n border-radius: var(---border-radius);\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 .brace {\n font-size: 200%;\n }\n\n .addend {\n position: relative;\n display: inline-block;\n }\n\n .comparison {\n position: relative;\n display: inline-block;\n\n font-size: 125%;\n font-weight: 600;\n }\n\n .function {\n display: inline-block;\n\n border-radius: var(---border-radius);\n }\n\n :host([numeric]) .function {\n padding: 0.25rem;\n }\n\n .exp {\n display: inline-block;\n\n font-size: 0.75rem;\n }\n\n .subscript {\n display: inline-block;\n\n font-size: 66.667%;\n }\n\n .summation {\n display: flex;\n\n flex-direction: column;\n\n line-height: 0.8;\n }\n\n .sigma {\n display: inline-block;\n\n font-size: 200%;\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 line-height: 1.5;\n vertical-align: middle;\n\n border-radius: var(---border-radius);\n }\n\n .n {\n --decidables-spinner-input-width: 2rem;\n }\n\n .left {\n text-align: left;\n }\n\n .right {\n text-align: right;\n }\n\n .bottom {\n vertical-align: bottom;\n }\n\n .top {\n vertical-align: top;\n }\n\n /* Color scheme */\n .a {\n background: var(---color-a-light);\n }\n\n .z {\n background: var(---color-z-light);\n }\n\n .v {\n background: var(---color-v-light);\n }\n\n .t0 {\n background: var(---color-t0-light);\n }\n\n .s {\n background: var(---color-s-light);\n }\n `,\n ];\n }\n}\n","\nimport {html} from 'lit';\n\nimport '@decidables/decidables-elements/spinner';\nimport DDMMath from '@decidables/accumulable-math';\n\nimport DDMEquation from './ddm-equation';\n\n/*\n DDMEquationAZV2PC element\n <ddm-equation-azv2pc>\n\n Attributes:\n*/\nexport default class DDMEquationAZV2PC extends DDMEquation {\n static get properties() {\n return {\n a: {\n attribute: 'boundary-separation',\n type: Number,\n reflect: true,\n },\n z: {\n attribute: 'starting-point',\n type: Number,\n reflect: true,\n },\n v: {\n attribute: 'drift-rate',\n type: Number,\n reflect: true,\n },\n\n accuracy: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n };\n }\n\n constructor() {\n super();\n this.a = DDMMath.a.DEFAULT;\n this.z = DDMMath.z.DEFAULT;\n this.v = DDMMath.v.DEFAULT;\n this.alignState();\n }\n\n alignState() {\n this.accuracy = DDMMath.azv2pC(this.a, this.z, this.v);\n }\n\n sendEvent() {\n this.dispatchEvent(new CustomEvent('ddm-equation-azv2pc-change', {\n detail: {\n a: this.a,\n z: this.z,\n v: this.v,\n accuracy: this.accuracy,\n },\n bubbles: true,\n }));\n }\n\n aInput(event) {\n this.a = parseFloat(event.target.value);\n this.alignState();\n this.sendEvent();\n }\n\n zInput(event) {\n this.z = parseFloat(event.target.value);\n this.alignState();\n this.sendEvent();\n }\n\n vInput(event) {\n this.v = parseFloat(event.target.value);\n this.alignState();\n this.sendEvent();\n }\n\n willUpdate() {\n this.alignState();\n }\n\n render() {\n let a;\n let z;\n let v;\n let s;\n let accuracy;\n if (this.numeric) {\n a = html`<decidables-spinner class=\"a bottom\"\n ?disabled=${!this.interactive}\n min=${DDMMath.a.MIN}\n max=${DDMMath.a.MAX}\n step=${DDMMath.a.STEP}\n .value=${this.a}\n @input=${this.aInput.bind(this)}\n >\n <var class=\"math-var\">a</var>\n </decidables-spinner>`;\n z = html`<decidables-spinner class=\"z bottom\"\n ?disabled=${!this.interactive}\n min=${DDMMath.z.MIN}\n max=${DDMMath.z.MAX}\n step=${DDMMath.z.STEP}\n .value=${this.z}\n @input=${this.zInput.bind(this)}\n >\n <var class=\"math-var\">z</var>\n </decidables-spinner>`;\n v = html`<decidables-spinner class=\"v bottom\"\n ?disabled=${!this.interactive}\n min=${DDMMath.v.MIN}\n max=${DDMMath.v.MAX}\n step=${DDMMath.v.STEP}\n .value=${this.v}\n @input=${this.vInput.bind(this)}\n >\n <var class=\"math-var\">v</var>\n </decidables-spinner>`;\n s = html`<decidables-spinner class=\"s bottom\"\n disabled\n .value=${DDMMath.s.DEFAULT}\n >\n <var class=\"math-var\">s</var>\n </decidables-spinner>`;\n accuracy = html`<decidables-spinner class=\"accuracy bottom\"\n disabled\n .value=${+this.accuracy.toFixed(2)}\n >\n <var>Accuracy</var>\n </decidables-spinner>`;\n } else {\n a = html`<var class=\"math-var a\">a</var>`;\n z = html`<var class=\"math-var z\">z</var>`;\n v = html`<var class=\"math-var v\">v</var>`;\n s = html`<var class=\"math-var s\">s</var>`;\n accuracy = html`<var class=\"accuracy\">Accuracy</var>`;\n }\n const equation = html`\n <tr>\n <td rowspan=\"2\">\n ${accuracy}<span class=\"equals\">=</span>\n </td>\n <td class=\"underline\">\n <var class=\"math-greek e tight\">e</var><sup class=\"exp\"><span class=\"minus tight\">−</span><span class=\"paren tight\">(</span>2${v}${a} / ${s}<sup class=\"exp\">2</sup><span class=\"paren tight\">)</span></sup>\n <span class=\"minus\">−</span>\n <var class=\"math-greek e tight\">e</var><sup class=\"exp\"><span class=\"minus tight\">−</span><span class=\"paren tight\">(</span>2${v}${z} / ${s}<sup class=\"exp\">2</sup><span class=\"paren tight\">)</span></sup>\n </td>\n </tr>\n <tr>\n <td>\n <var class=\"math-greek e tight\">e</var><sup class=\"exp\"><span class=\"minus tight\">−</span><span class=\"paren tight\">(</span>2${v}${a} / ${s}<sup class=\"exp\">2</sup><span class=\"paren tight\">)</span></sup>\n <span class=\"minus\">−</span>\n 1\n </td>\n </tr>`;\n return html`\n <div class=\"holder\">\n <table class=\"equation\">\n <tbody>\n ${equation}\n </tbody>\n </table>\n </div>`;\n }\n}\n\ncustomElements.define('ddm-equation-azv2pc', DDMEquationAZV2PC);\n","\nimport {html} from 'lit';\n\nimport '@decidables/decidables-elements/spinner';\nimport DDMMath from '@decidables/accumulable-math';\n\nimport DDMEquation from './ddm-equation';\n\n/*\n DDMEquationAZVT02M element\n <ddm-equation-azvt02m>\n\n Attributes:\n*/\nexport default class DDMEquationAZVT02M extends DDMEquation {\n static get properties() {\n return {\n a: {\n attribute: 'boundary-separation',\n type: Number,\n reflect: true,\n },\n z: {\n attribute: 'starting-point',\n type: Number,\n reflect: true,\n },\n v: {\n attribute: 'drift-rate',\n type: Number,\n reflect: true,\n },\n t0: {\n attribute: 'nondecision-time',\n type: Number,\n reflect: true,\n },\n\n meanRT: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n };\n }\n\n constructor() {\n super();\n this.a = DDMMath.a.DEFAULT;\n this.z = DDMMath.z.DEFAULT;\n this.v = DDMMath.v.DEFAULT;\n this.t0 = DDMMath.t0.DEFAULT;\n this.alignState();\n }\n\n alignState() {\n this.meanRT = DDMMath.azvt02m(this.a, this.z, this.v, this.t0);\n }\n\n sendEvent() {\n this.dispatchEvent(new CustomEvent('ddm-equation-azvt02m-change', {\n detail: {\n a: this.a,\n z: this.z,\n v: this.v,\n t0: this.t0,\n meanRT: this.meanRT,\n },\n bubbles: true,\n }));\n }\n\n aInput(event) {\n this.a = parseFloat(event.target.value);\n this.alignState();\n this.sendEvent();\n }\n\n zInput(event) {\n this.z = parseFloat(event.target.value);\n this.alignState();\n this.sendEvent();\n }\n\n vInput(event) {\n this.v = parseFloat(event.target.value);\n this.alignState();\n this.sendEvent();\n }\n\n t0Input(event) {\n this.t0 = parseFloat(event.target.value);\n this.alignState();\n this.sendEvent();\n }\n\n willUpdate() {\n this.alignState();\n }\n\n render() {\n let a;\n let z;\n let v;\n let t0;\n let s;\n let meanRT;\n if (this.numeric) {\n a = html`<decidables-spinner class=\"a bottom\"\n ?disabled=${!this.interactive}\n min=${DDMMath.a.MIN}\n max=${DDMMath.a.MAX}\n step=${DDMMath.a.STEP}\n .value=${this.a}\n @input=${this.aInput.bind(this)}\n >\n <var class=\"math-var\">a</var>\n </decidables-spinner>`;\n z = html`<decidables-spinner class=\"z bottom\"\n ?disabled=${!this.interactive}\n min=${DDMMath.z.MIN}\n max=${DDMMath.z.MAX}\n step=${DDMMath.z.STEP}\n .value=${this.z}\n @input=${this.zInput.bind(this)}\n >\n <var class=\"math-var\">z</var>\n </decidables-spinner>`;\n v = html`<decidables-spinner class=\"v bottom\"\n ?disabled=${!this.interactive}\n min=${DDMMath.v.MIN}\n max=${DDMMath.v.MAX}\n step=${DDMMath.v.STEP}\n .value=${this.v}\n @input=${this.vInput.bind(this)}\n >\n <var class=\"math-var\">v</var>\n </decidables-spinner>`;\n t0 = html`<decidables-spinner class=\"t0 bottom\"\n ?disabled=${!this.interactive}\n min=${DDMMath.t0.MIN}\n max=${DDMMath.t0.MAX}\n step=${DDMMath.t0.STEP}\n .value=${this.t0}\n @input=${this.t0Input.bind(this)}\n >\n <var class=\"math-var\">t<sub>0</sub></var>\n </decidables-spinner>`;\n s = html`<decidables-spinner class=\"s bottom\"\n disabled\n .value=${DDMMath.s.DEFAULT}\n >\n <var class=\"math-var\">s</var>\n </decidables-spinner>`;\n meanRT = html`<decidables-spinner class=\"mean-rt bottom\"\n disabled\n .value=${+this.meanRT.toFixed(0)}\n >\n <var>Mean RT</var>\n </decidables-spinner>`;\n } else {\n a = html`<var class=\"math-var a\">a</var>`;\n z = html`<var class=\"math-var z\">z</var>`;\n v = html`<var class=\"math-var v\">v</var>`;\n t0 = html`<var class=\"math-var t0\">t<sub>0</sub></var>`;\n s = html`<var class=\"math-var s\">s</var>`;\n meanRT = html`<var class=\"mean-rt\">Mean RT</var>`;\n }\n const equation = html`\n <tr>\n <td rowspan=\"2\">\n ${meanRT}<span class=\"equals\">=</span>\n ${t0}\n <span class=\"minus\">−</span>\n </td>\n <td class=\"underline\">\n ${z}\n </td>\n <td rowspan=\"2\">\n <span class=\"plus\">+</span>\n </td>\n <td class=\"underline\">\n ${a}\n </td>\n <td rowspan=\"2\">&nbsp;</td>\n <td class=\"underline\">\n <var class=\"math-greek e tight\">e</var><sup class=\"exp\"><span class=\"minus tight\">−</span><span class=\"paren tight\">(</span>2${v}${z} / ${s}<sup class=\"exp\">2</sup><span class=\"paren tight\">)</span></sup>\n <span class=\"minus\">−</span>\n 1\n </td>\n </tr>\n <tr>\n <td>\n ${v}\n </td>\n <td>\n ${v}\n </td>\n <td>\n <var class=\"math-greek e tight\">e</var><sup class=\"exp\"><span class=\"minus tight\">−</span><span class=\"paren tight\">(</span>2${v}${a} / ${s}<sup class=\"exp\">2</sup><span class=\"paren tight\">)</span></sup>\n <span class=\"minus\">−</span>\n 1\n </td>\n </tr>`;\n return html`\n <div class=\"holder\">\n <table class=\"equation\">\n <tbody>\n ${equation}\n </tbody>\n </table>\n </div>`;\n }\n}\n\ncustomElements.define('ddm-equation-azvt02m', DDMEquationAZVT02M);\n","\nimport {html, css} from 'lit';\n\nimport AccumulableElement from '../accumulable-element';\n\n/*\n DDMExample Base Class - Not intended for instantiation!\n*/\nexport default class DDMExample extends AccumulableElement {\n static get styles() {\n return [\n super.styles,\n css`\n :host {\n ---border: var(--border, 1px solid var(---color-border));\n display: inline-block;\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 + sdt-response,\n ::slotted(rdk-task) + ::slotted(sdt-response) { */\n /* .body ::slotted(sdt-response) {\n margin-left: 0;\n } */\n\n /* HACK: Sibling selectors not working with ::slotted */\n /* .body > sdt-control + rdk-task,\n ::slotted(sdt-control) + ::slotted(rdk-task) {\n margin-left: 0;\n } */\n /* .body ::slotted(rdk-task) {\n margin-left: 0;\n } */\n `,\n ];\n }\n\n render() { /* eslint-disable-line class-methods-use-this */\n return html`\n <div class=\"holder\">\n <div class=\"body\">\n <slot>Empty!</slot>\n </div>\n </div>`;\n }\n}\n\ncustomElements.define('ddm-example', DDMExample);\n","\nimport DDMMath from '@decidables/accumulable-math';\n\nimport DDMExample from './ddm-example';\n\n/*\n DDMExampleHuman element\n <ddm-example-human>\n*/\nexport default class DDMExampleHuman extends DDMExample {\n static get properties() {\n return {\n trials: {\n attribute: 'trials',\n type: Number,\n reflect: true,\n },\n duration: {\n attribute: 'duration',\n type: Number,\n reflect: true,\n },\n coherence: {\n attribute: 'coherence',\n type: Number,\n reflect: true,\n },\n color: {\n attribute: 'color',\n type: String,\n reflect: true,\n },\n\n a: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n z: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n v: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n t0: {\n attribute: false,\n type: Number,\n reflect: false,\n },\n };\n }\n\n constructor() {\n super();\n\n this.trials = 10;\n this.duration = 2000;\n this.coherence = 0.5;\n this.colors = ['none', 'measure', 'outcome', 'all'];\n this.color = 'outcome';\n\n this.a = DDMMath.a.DEFAULT;\n this.z = DDMMath.z.DEFAULT;\n this.v = DDMMath.v.DEFAULT;\n this.t0 = DDMMath.t0.DEFAULT;\n\n this.accumulableControl = null;\n this.rdkTask = null;\n this.accumulableResponse = null;\n this.accumulableTable = null;\n this.ddmParameters = null;\n this.ddmModel = null;\n this.ddmFit = null;\n\n this.data = undefined;\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n this.accumulableControl = this.querySelector('accumulable-control');\n this.rdkTask = this.querySelector('rdk-2afc-task');\n this.accumulableResponse = this.querySelector('accumulable-response');\n this.accumulableTable = this.querySelector('accumulable-table');\n this.ddmParameters = this.querySelector('ddm-parameters');\n this.ddmModel = this.querySelector('ddm-model');\n this.ddmFit = this.querySelector('ddm-fit');\n\n // Initialize\n this.ddmModel.clear();\n\n if (this.accumulableControl) {\n this.accumulableControl.addEventListener('accumulable-control-trials', (event) => {\n this.trials = event.detail.trials;\n });\n\n this.accumulableControl.addEventListener('accumulable-control-duration', (event) => {\n this.duration = event.detail.duration;\n });\n\n this.accumulableControl.addEventListener('accumulable-control-coherence', (event) => {\n this.coherence = event.detail.coherence;\n });\n\n this.accumulableControl.addEventListener('accumulable-control-color', (event) => {\n this.color = event.detail.color;\n });\n\n this.accumulableControl.addEventListener('accumulable-control-run', (/* event */) => {\n if (this.rdkTask) {\n this.rdkTask.running = true;\n }\n });\n\n this.accumulableControl.addEventListener('accumulable-control-pause', (/* event */) => {\n if (this.rdkTask) {\n this.rdkTask.running = false;\n }\n });\n\n this.accumulableControl.addEventListener('accumulable-control-reset', (/* event */) => {\n if (this.rdkTask) {\n this.rdkTask.reset();\n }\n\n if (this.accumulableResponse) {\n this.accumulableResponse.reset();\n }\n\n if (this.accumulableTable) {\n this.accumulableTable.correctCount = NaN;\n this.accumulableTable.errorCount = NaN;\n this.accumulableTable.nrCount = NaN;\n this.accumulableTable.accuracy = NaN;\n this.accumulableTable.correctMeanRT = NaN;\n this.accumulableTable.errorMeanRT = NaN;\n this.accumulableTable.meanRT = NaN;\n this.accumulableTable.correctSDRT = NaN;\n this.accumulableTable.errorSDRT = NaN;\n this.accumulableTable.sdRT = NaN;\n }\n\n // if (this.ddmParameters) {\n // }\n\n if (this.ddmModel) {\n this.ddmModel.clear();\n }\n\n if (this.ddmFit) {\n this.ddmFit.clear();\n }\n });\n }\n\n if (this.rdkTask) {\n this.rdkTask.addEventListener('rdk-trial-start', (event) => {\n if (this.accumulableResponse) {\n this.accumulableResponse.start(event.detail.signal, event.detail.trial);\n }\n });\n }\n\n if (this.rdkTask) {\n this.rdkTask.addEventListener('rdk-trial-end', (/* event */) => {\n if (this.accumulableResponse) {\n this.accumulableResponse.stop();\n }\n });\n }\n\n if (this.rdkTask) {\n this.rdkTask.addEventListener('rdk-block-end', (/* event */) => {\n if (this.accumulableControl) {\n this.accumulableControl.complete();\n }\n });\n }\n\n if (this.accumulableResponse) {\n this.accumulableResponse.addEventListener('accumulable-response', (event) => {\n this.data = event.detail.data;\n\n if (this.ddmModel) {\n this.ddmModel.trial({\n index: event.detail.trial,\n rt: event.detail.rt,\n outcome: event.detail.outcome,\n });\n }\n\n if (this.ddmFit) {\n this.ddmFit.set({\n accuracy: event.detail.data.accuracy,\n correctMeanRT: event.detail.data.correctMeanRT,\n errorMeanRT: event.detail.data.errorMeanRT,\n meanRT: event.detail.data.meanRT,\n correctSDRT: event.detail.data.correctSDRT,\n errorSDRT: event.detail.data.errorSDRT,\n sdRT: event.detail.data.sdRT,\n });\n }\n\n this.requestUpdate();\n });\n }\n\n if (this.ddmFit) {\n this.ddmFit.addEventListener('ddm-fit-update', (event) => {\n this.a = event.detail.a;\n this.z = 0.5; // event.detail.z;\n this.v = event.detail.v;\n this.t0 = event.detail.t0;\n });\n }\n }\n\n update(changedProperties) {\n super.update(changedProperties);\n\n if (this.accumulableControl) {\n this.accumulableControl.trials = (this.accumulableControl.trials != null)\n ? this.trials\n : undefined;\n this.accumulableControl.duration = (this.accumulableControl.duration != null)\n ? this.duration\n : undefined;\n this.accumulableControl.coherence = (this.accumulableControl.coherence != null)\n ? this.coherence\n : undefined;\n this.accumulableControl.color = (this.accumulableControl.color != null)\n ? this.color\n : undefined;\n }\n\n if (this.rdkTask) {\n this.rdkTask.trials = this.trials;\n this.rdkTask.duration = this.duration;\n this.rdkTask.wait = this.duration;\n this.rdkTask.iti = this.duration;\n this.rdkTask.coherence = this.coherence;\n }\n\n if (this.ddmParameters) {\n this.ddmParameters.a = (this.ddmParameters.a != null)\n ? this.a\n : undefined;\n this.ddmParameters.z = (this.ddmParameters.z != null)\n ? this.z\n : undefined;\n this.ddmParameters.v = (this.ddmParameters.a != null)\n ? this.v\n : undefined;\n this.ddmParameters.t0 = (this.ddmParameters.t0 != null)\n ? this.t0\n : undefined;\n }\n\n if (this.ddmModel) {\n this.ddmModel.a = +this.a;\n this.ddmModel.z = +this.z;\n this.ddmModel.v = +this.v;\n this.ddmModel.t0 = +this.t0;\n }\n\n if (this.accumulableResponse) {\n this.accumulableResponse.trialTotal = this.trials;\n }\n\n if (this.accumulableTable) {\n this.accumulableTable.color = this.color;\n }\n\n if (this.accumulableTable && this.data) {\n this.accumulableTable.correctCount = this.data.correctCount;\n this.accumulableTable.errorCount = this.data.errorCount;\n this.accumulableTable.nrCount = this.data.nrCount;\n this.accumulableTable.accuracy = this.data.accuracy;\n this.accumulableTable.correctMeanRT = this.data.correctMeanRT;\n this.accumulableTable.errorMeanRT = this.data.errorMeanRT;\n this.accumulableTable.meanRT = this.data.meanRT;\n this.accumulableTable.correctSDRT = this.data.correctSDRT;\n this.accumulableTable.errorSDRT = this.data.errorSDRT;\n this.accumulableTable.sdRT = this.data.sdRT;\n }\n }\n}\n\ncustomElements.define('ddm-example-human', DDMExampleHuman);\n","\nimport DDMMath from '@decidables/accumulable-math';\n\nimport DDMExample from './ddm-example';\n\n/*\n DDMExampleInteractive element\n <ddm-example-interactive>\n*/\nexport default class DDMExampleInteractive extends DDMExample {\n static get properties() {\n return {\n trials: {\n attribute: 'trials',\n type: Number,\n reflect: true,\n },\n color: {\n attribute: 'color',\n type: String,\n reflect: true,\n },\n a: {\n attribute: 'boundary-separation',\n type: Number,\n reflect: true,\n },\n z: {\n attribute: 'starting-point',\n type: Number,\n reflect: true,\n },\n v: {\n attribute: 'drift-rate',\n type: Number,\n reflect: true,\n },\n t0: {\n attribute: 'nondecision-time',\n type: Number,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n this.trials = 10;\n this.colors = ['none', 'measure', 'outcome', 'all'];\n this.color = 'outcome';\n\n this.a = DDMMath.a.DEFAULT;\n this.z = DDMMath.z.DEFAULT;\n this.v = DDMMath.v.DEFAULT;\n this.t0 = DDMMath.t0.DEFAULT;\n\n this.accumulableControl = null;\n this.accumulableTable = null;\n this.ddmParameters = null;\n this.ddmModel = null;\n\n this.data = undefined;\n this.model = undefined;\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n this.accumulableControl = this.querySelector('accumulable-control');\n this.accumulableTable = this.querySelector('accumulable-table');\n this.ddmParameters = this.querySelector('ddm-parameters');\n this.ddmModel = this.querySelector('ddm-model');\n\n if (this.accumulableControl) {\n this.accumulableControl.addEventListener('accumulable-control-resample', (/* event */) => {\n this.ddmModel?.resample();\n this.requestUpdate();\n });\n this.accumulableControl.addEventListener('accumulable-control-trials', (event) => {\n this.trials = event.detail.trials;\n });\n this.accumulableControl.addEventListener('accumulable-control-color', (event) => {\n this.color = event.detail.color;\n });\n }\n\n if (this.ddmParameters) {\n this.ddmParameters.addEventListener('ddm-parameters-a', (event) => {\n this.a = event.detail.a;\n });\n this.ddmParameters.addEventListener('ddm-parameters-z', (event) => {\n this.z = event.detail.z;\n });\n this.ddmParameters.addEventListener('ddm-parameters-v', (event) => {\n this.v = event.detail.v;\n });\n this.ddmParameters.addEventListener('ddm-parameters-t0', (event) => {\n this.t0 = event.detail.t0;\n });\n }\n\n if (this.ddmModel) {\n this.ddmModel.addEventListener('ddm-model-a', (event) => {\n this.a = event.detail.a;\n });\n this.ddmModel.addEventListener('ddm-model-z', (event) => {\n this.z = event.detail.z;\n });\n this.ddmModel.addEventListener('ddm-model-v', (event) => {\n this.v = event.detail.v;\n });\n this.ddmModel.addEventListener('ddm-model-t0', (event) => {\n this.t0 = event.detail.t0;\n });\n this.ddmModel.addEventListener('ddm-model-output', (event) => {\n this.data = event.detail.data;\n this.model = event.detail.model;\n this.requestUpdate();\n });\n }\n\n this.requestUpdate();\n }\n\n update(changedProperties) {\n super.update(changedProperties);\n\n if (this.accumulableControl) {\n this.accumulableControl.trials = (this.accumulableControl.trials != null)\n ? this.trials\n : undefined;\n this.accumulableControl.color = (this.accumulableControl.color != null)\n ? this.color\n : undefined;\n }\n\n if (this.accumulableTable) {\n this.accumulableTable.color = this.color;\n }\n\n if (this.accumulableTable && this.data) {\n this.accumulableTable.correctCount = this.data.correctCount;\n this.accumulableTable.errorCount = this.data.errorCount;\n this.accumulableTable.nrCount = this.data.nrCount;\n this.accumulableTable.accuracy = this.data.accuracy;\n this.accumulableTable.correctMeanRT = this.data.correctMeanRT;\n this.accumulableTable.errorMeanRT = this.data.errorMeanRT;\n this.accumulableTable.meanRT = this.data.meanRT;\n this.accumulableTable.correctSDRT = this.data.correctSDRT;\n this.accumulableTable.errorSDRT = this.data.errorSDRT;\n this.accumulableTable.sdRT = this.data.sdRT;\n }\n\n if (this.ddmParameters) {\n this.ddmParameters.a = (this.ddmParameters.a != null)\n ? this.a\n : undefined;\n this.ddmParameters.z = (this.ddmParameters.z != null)\n ? this.z\n : undefined;\n this.ddmParameters.v = (this.ddmParameters.a != null)\n ? this.v\n : undefined;\n this.ddmParameters.t0 = (this.ddmParameters.t0 != null)\n ? this.t0\n : undefined;\n }\n\n if (this.ddmModel) {\n this.ddmModel.trials = this.trials;\n this.ddmModel.a = +this.a;\n this.ddmModel.z = +this.z;\n this.ddmModel.v = +this.v;\n this.ddmModel.t0 = +this.t0;\n }\n }\n}\n\ncustomElements.define('ddm-example-interactive', DDMExampleInteractive);\n","\nimport DDMMath from '@decidables/accumulable-math';\n\nimport DDMExample from './ddm-example';\n\n/*\n DDMExampleModel element\n <ddm-example-model>\n*/\nexport default class DDMExampleModel extends DDMExample {\n static get properties() {\n return {\n trials: {\n attribute: 'trials',\n type: Number,\n reflect: true,\n },\n duration: {\n attribute: 'duration',\n type: Number,\n reflect: true,\n },\n coherence: {\n attribute: 'coherence',\n type: Number,\n reflect: true,\n },\n color: {\n attribute: 'color',\n type: String,\n reflect: true,\n },\n\n a: {\n attribute: 'boundary-separation',\n type: Number,\n reflect: true,\n },\n z: {\n attribute: 'starting-point',\n type: Number,\n reflect: true,\n },\n v: {\n attribute: 'drift-rate',\n type: Number,\n reflect: true,\n },\n t0: {\n attribute: 'nondecision-time',\n type: Number,\n reflect: true,\n },\n };\n }\n\n constructor() {\n super();\n\n this.trials = 10;\n this.duration = 2000;\n this.coherence = 0.5;\n this.colors = ['none', 'measure', 'outcome', 'all'];\n this.color = 'outcome';\n\n this.a = DDMMath.a.DEFAULT;\n this.z = DDMMath.z.DEFAULT;\n this.v = DDMMath.v.DEFAULT;\n this.t0 = DDMMath.t0.DEFAULT;\n\n this.accumulableControl = null;\n this.rdkTask = null;\n this.ddmParameters = null;\n this.ddmModel = null;\n this.accumulableResponse = null;\n this.accumulableTable = null;\n\n this.trialCount = 0;\n this.signals = ['left', 'right']; // Possible values of 'signal'\n this.signal = undefined; // Signal for current trial\n this.data = undefined;\n this.model = undefined;\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n this.accumulableControl = this.querySelector('accumulable-control');\n this.rdkTask = this.querySelector('rdk-2afc-task');\n this.ddmParameters = this.querySelector('ddm-parameters');\n this.ddmModel = this.querySelector('ddm-model');\n this.accumulableResponse = this.querySelector('accumulable-response');\n this.accumulableTable = this.querySelector('accumulable-table');\n\n if (this.accumulableControl) {\n this.accumulableControl.addEventListener('accumulable-control-trials', (event) => {\n this.trials = event.detail.trials;\n });\n\n this.accumulableControl.addEventListener('accumulable-control-duration', (event) => {\n this.duration = event.detail.duration;\n });\n\n this.accumulableControl.addEventListener('accumulable-control-color', (event) => {\n this.color = event.detail.color;\n });\n\n this.accumulableControl.addEventListener('accumulable-control-run', (/* event */) => {\n if (this.rdkTask) {\n this.rdkTask.running = true;\n }\n\n if (this.ddmModel) {\n this.ddmModel.resumeTrial();\n }\n });\n\n this.accumulableControl.addEventListener('accumulable-control-pause', (/* event */) => {\n if (this.rdkTask) {\n this.rdkTask.running = false;\n }\n\n if (this.ddmModel) {\n this.ddmModel.pauseTrial();\n }\n });\n\n this.accumulableControl.addEventListener('accumulable-control-reset', (/* event */) => {\n this.trialCount = 0;\n this.signal = undefined;\n\n if (this.rdkTask) {\n this.rdkTask.reset();\n }\n\n if (this.ddmModel) {\n this.ddmModel.trials = this.trialCount;\n }\n\n if (this.accumulableResponse) {\n this.accumulableResponse.reset();\n }\n\n if (this.accumulableTable) {\n // this.accumulableTable.clear();\n }\n });\n }\n\n if (this.rdkTask) {\n this.rdkTask.addEventListener('rdk-trial-start', (event) => {\n this.signal = event.detail.signal;\n\n if (this.accumulableResponse) {\n this.accumulableResponse.start(\n event.detail.signal,\n event.detail.trial,\n );\n }\n\n if (this.ddmModel) {\n this.trialCount += 1;\n this.ddmModel.trial();\n }\n });\n\n this.rdkTask.addEventListener('rdk-trial-end', (/* event */) => {\n this.signal = undefined;\n\n if (this.accumulableResponse) {\n this.accumulableResponse.stop();\n }\n });\n\n this.rdkTask.addEventListener('rdk-block-end', (/* event */) => {\n if (this.accumulableControl) {\n this.accumulableControl.complete();\n }\n });\n }\n\n if (this.ddmParameters) {\n this.ddmParameters.addEventListener('ddm-parameters-a', (event) => {\n this.a = event.detail.a;\n });\n this.ddmParameters.addEventListener('ddm-parameters-z', (event) => {\n this.z = event.detail.z;\n });\n this.ddmParameters.addEventListener('ddm-parameters-v', (event) => {\n this.v = event.detail.v;\n });\n this.ddmParameters.addEventListener('ddm-parameters-t0', (event) => {\n this.t0 = event.detail.t0;\n });\n }\n\n if (this.ddmModel) {\n this.ddmModel.addEventListener('ddm-model-a', (event) => {\n this.a = event.detail.a;\n });\n this.ddmModel.addEventListener('ddm-model-z', (event) => {\n this.z = event.detail.z;\n });\n this.ddmModel.addEventListener('ddm-model-v', (event) => {\n this.v = event.detail.v;\n });\n this.ddmModel.addEventListener('ddm-model-t0', (event) => {\n this.t0 = event.detail.t0;\n });\n this.ddmModel.addEventListener('ddm-model-output', (event) => {\n this.data = event.detail.data;\n this.model = event.detail.model;\n this.requestUpdate();\n });\n\n this.ddmModel.addEventListener('accumulable-response', (event) => {\n if (this.accumulableResponse) {\n const response = (event.detail.outcome === 'correct')\n ? this.signal\n : (this.signal === 'left')\n ? 'right'\n : 'left';\n this.accumulableResponse.responded(response);\n }\n\n this.data = event.detail.data;\n this.model = event.detail.model;\n this.requestUpdate();\n });\n }\n\n this.requestUpdate();\n }\n\n update(changedProperties) {\n super.update(changedProperties);\n\n if (this.trialCount > this.trials) {\n this.trialCount = this.trials;\n }\n\n if (this.accumulableControl) {\n this.accumulableControl.trials = (this.accumulableControl.trials != null)\n ? this.trials\n : undefined;\n this.accumulableControl.duration = (this.accumulableControl.duration != null)\n ? this.duration\n : undefined;\n this.accumulableControl.coherence = (this.accumulableControl.coherence != null)\n ? this.coherence\n : undefined;\n this.accumulableControl.color = (this.accumulableControl.color != null)\n ? this.color\n : undefined;\n }\n\n if (this.rdkTask) {\n this.rdkTask.trials = this.trials;\n this.rdkTask.duration = this.duration;\n this.rdkTask.coherence = this.coherence;\n }\n\n if (this.ddmParameters) {\n this.ddmParameters.a = (this.ddmParameters.a != null)\n ? this.a\n : undefined;\n this.ddmParameters.z = (this.ddmParameters.z != null)\n ? this.z\n : undefined;\n this.ddmParameters.v = (this.ddmParameters.a != null)\n ? this.v\n : undefined;\n this.ddmParameters.t0 = (this.ddmParameters.t0 != null)\n ? this.t0\n : undefined;\n }\n\n if (this.ddmModel) {\n this.ddmModel.trials = this.trialCount;\n this.ddmModel.a = +this.a;\n this.ddmModel.z = +this.z;\n this.ddmModel.v = +this.v;\n this.ddmModel.t0 = +this.t0;\n }\n\n if (this.accumulableResponse) {\n this.accumulableResponse.trialTotal = this.trials;\n }\n\n if (this.accumulableTable) {\n this.accumulableTable.color = this.color;\n }\n\n if (this.accumulableTable && this.data) {\n this.accumulableTable.correctCount = this.data.correctCount;\n this.accumulableTable.errorCount = this.data.errorCount;\n this.accumulableTable.nrCount = this.data.nrCount;\n this.accumulableTable.accuracy = this.data.accuracy;\n this.accumulableTable.correctMeanRT = this.data.correctMeanRT;\n this.accumulableTable.errorMeanRT = this.data.errorMeanRT;\n this.accumulableTable.meanRT = this.data.meanRT;\n this.accumulableTable.correctSDRT = this.data.correctSDRT;\n this.accumulableTable.errorSDRT = this.data.errorSDRT;\n this.accumulableTable.sdRT = this.data.sdRT;\n }\n }\n}\n\ncustomElements.define('ddm-example-model', DDMExampleModel);\n"],"names":["t","globalThis","e","ShadowRoot","ShadyCSS","nativeShadow","Document","prototype","CSSStyleSheet","s","Symbol","o","WeakMap","n","constructor","_$cssResult$","Error","cssText","styleSheet","length","get","replaceSync","set","toString","r","i","css","reduce","S","adoptStyles","adoptedStyleSheets","map","document","createElement","litNonce","setAttribute","textContent","appendChild","c","cssRules","is","defineProperty","getOwnPropertyDescriptor","h","getOwnPropertyNames","getOwnPropertySymbols","getPrototypeOf","Object","a","trustedTypes","l","emptyScript","p","reactiveElementPolyfillSupport","d","JSCompiler_renameProperty","u","toAttribute","Boolean","Array","JSON","stringify","fromAttribute","Number","parse","f","notEqual","b","attribute","type","String","converter","reflect","useDefault","hasChanged","metadata","litPropertyMetadata","y","HTMLElement","addInitializer","_$Ei","push","observedAttributes","finalize","_$Eh","keys","createProperty","state","hasOwnProperty","create","wrapped","elementProperties","noAccessor","getPropertyDescriptor","call","requestUpdate","configurable","enumerable","getPropertyOptions","Map","finalized","properties","_$Eu","elementStyles","finalizeStyles","styles","isArray","Set","flat","reverse","unshift","toLowerCase","_$Ep","isUpdatePending","hasUpdated","_$Em","_$Ev","_$ES","Promise","enableUpdating","_$AL","_$E_","forEach","addController","_$EO","add","renderRoot","isConnected","hostConnected","removeController","delete","size","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$ET","removeAttribute","_$Ej","hasAttribute","C","_$EP","has","_$Eq","reject","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","update","_$EM","_$AE","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","mode","ReactiveElement","reactiveElementVersions","createPolicy","createHTML","Math","random","toFixed","slice","createMarker","createComment","iterator","v","_","m","RegExp","g","$","_$litType$","strings","values","x","T","for","E","A","createTreeWalker","P","V","getTemplateHtml","lastIndex","exec","test","startsWith","N","parts","el","currentNode","content","firstChild","replaceWith","childNodes","nextNode","nodeType","hasAttributes","getAttributeNames","endsWith","getAttribute","split","index","name","ctor","H","I","L","k","tagName","append","data","indexOf","innerHTML","_$Co","_$Cl","_$litDirective$","_$AO","_$AT","_$AS","M","_$AV","_$AN","_$AD","_$AM","parentNode","_$AU","creationScope","importNode","R","nextSibling","z","_$AI","_$Cv","_$AH","_$AA","_$AB","options","startNode","endNode","_$AR","O","insertBefore","createTextNode","_$AC","_$AP","remove","setConnected","element","fill","j","arguments","toggleAttribute","capture","once","passive","removeEventListener","addEventListener","handleEvent","host","litHtmlPolyfillSupport","litHtmlVersions","B","render","renderBefore","_$litPart$","renderOptions","_$Do","_$litElement$","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","ascending","NaN","descending","bisector","compare1","compare2","delta","zero","left","lo","hi","mid","right","center","number","ascendingBisect","bisectRight","e10","sqrt","e5","e2","tickSpec","start","stop","count","step","max","power","floor","log10","error","pow","factor","i1","i2","inc","round","ticks","tickIncrement","tickStep","top","bottom","epsilon","translateX","translateY","scale","offset","bandwidth","entering","__axis","axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","window","devicePixelRatio","transform","context","apply","domain","format","identity","spacing","range","range0","range1","position","copy","selection","path","selectAll","tick","order","tickExit","exit","tickEnter","enter","attr","line","select","text","merge","insert","transition","isFinite","filter","each","from","tickSize","axisRight","axisBottom","axisLeft","noop","value","dispatch","Dispatch","parseTypenames","typenames","types","trim","on","typename","callback","that","args","concat","xhtml","svg","xlink","xml","xmlns","prefix","namespaces","space","local","creatorInherit","ownerDocument","uri","namespaceURI","documentElement","createElementNS","creatorFixed","fullname","namespace","none","selector","querySelector","groups","_groups","subgroups","group","subgroup","node","subnode","__data__","Selection","_parents","array","empty","querySelectorAll","arrayAll","selectorAll","parents","matches","childMatcher","find","childFind","match","children","childFirst","firstElementChild","childrenFilter","matcher","_enter","sparse","EnterNode","parent","datum","_next","_parent","child","next","bindIndex","groupLength","dataLength","bindKey","key","nodeByKeyValue","keyValues","keyValue","bind","constant","arraylike","enterGroup","updateGroup","exitGroup","i0","previous","_exit","onenter","onupdate","onexit","groups0","groups1","m0","m1","min","merges","group0","group1","compareDocumentPosition","compare","compareNode","sortgroups","sortgroup","sort","attrRemove","attrRemoveNS","removeAttributeNS","attrConstant","attrConstantNS","setAttributeNS","attrFunction","attrFunctionNS","getAttributeNS","defaultView","styleRemove","style","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","string","classList","ClassList","_node","_names","join","splice","contains","classedAdd","names","list","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textConstant","textFunction","htmlRemove","htmlConstant","htmlFunction","raise","lower","previousSibling","creator","constantNull","before","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","deep","property","contextListener","listener","event","onRemove","__on","onAdd","dispatchEvent","params","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","root","selection_selection","selection_select","selection_selectAll","selectChild","selection_selectChild","selectChildren","selection_selectChildren","selection_filter","selection_data","selection_enter","selection_exit","selection_join","selection_merge","selection_order","selection_sort","selection_call","nodes","selection_nodes","selection_node","selection_size","selection_empty","selection_each","selection_attr","selection_style","selection_property","classed","selection_classed","selection_text","html","selection_html","selection_raise","selection_lower","selection_append","selection_insert","selection_remove","selection_clone","selection_datum","selection_on","selection_dispatch","selection_iterator","nextId","Local","id","sourceEvent","undefined","currentTarget","ownerSVGElement","createSVGPoint","point","clientX","clientY","matrixTransform","getScreenCTM","inverse","getBoundingClientRect","rect","clientLeft","clientTop","pageX","pageY","nonpassive","nonpassivecapture","nopropagation","stopImmediatePropagation","preventDefault","view","noevent","__noselect","MozUserSelect","yesdrag","noclick","setTimeout","DragEvent","subject","target","identifier","active","dx","dy","defineProperties","defaultFilter","ctrlKey","button","defaultContainer","defaultSubject","defaultTouchable","navigator","maxTouchPoints","container","touchable","gestures","listeners","mousedownx","mousedowny","mousemoving","touchending","clickDistance2","drag","mousedowned","touchstarted","touchmoved","touchended","gesture","beforestart","mousemoved","mouseupped","nodrag","mouse","touches","changedTouches","clearTimeout","touch","pointer","p0","clickDistance","factory","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","define","color","channels","assign","displayable","rgb","hex","color_formatHex","formatHex","formatHex8","color_formatHex8","formatHsl","color_formatHsl","formatRgb","color_formatRgb","hslConvert","parseInt","rgbn","Rgb","rgba","hsla","rgbConvert","opacity","clamp","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","isNaN","Hsl","hsl","m2","hsl2rgb","clamph","clampt","linear","exponential","gamma","nogamma","rgbGamma","end","colorRgb","isNumberArray","ArrayBuffer","isView","DataView","genericArray","nb","na","Date","setTime","reA","reB","source","one","bi","am","bm","bs","q","date","numberArray","valueOf","object","degrees","PI","rotate","skewX","scaleX","scaleY","atan2","atan","svgNode","parseCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","parseSvg","baseVal","consolidate","matrix","interpolateTransform","pxComma","pxParen","degParen","pop","translate","xa","ya","xb","yb","interpolateTransformCss","interpolateTransformSvg","frame","timeout","interval","pokeDelay","taskHead","taskTail","clockLast","clockNow","clockSkew","clock","performance","now","setFrame","requestAnimationFrame","clearNow","Timer","_call","_time","timer","restart","delay","time","TypeError","sleep","Infinity","timerFlush","wake","nap","poke","t0","t1","t2","clearInterval","setInterval","elapsed","total","_restart","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","timing","schedules","__transition","tween","duration","ease","init","schedule","self","interrupt","tweenRemove","tween0","tween1","tweenFunction","_id","tweenValue","interpolateNumber","interpolateRgb","interpolateString","interpolate","value1","string00","string1","interpolate0","string0","string10","attrTween","attrInterpolate","attrInterpolateNS","attrTweenNS","_value","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","easeVarying","Transition","_name","every","onFunction","on0","on1","sit","removeFunction","inherit","styleNull","styleMaybeRemove","listener0","styleTween","styleInterpolate","textInterpolate","textTween","id0","id1","newId","resolve","cancel","selection_prototype","transition_select","transition_selectAll","transition_filter","transition_merge","transition_selection","transition_transition","transition_on","transition_attr","transition_attrTween","transition_style","transition_styleTween","transition_text","transition_textTween","transition_remove","transition_tween","transition_delay","transition_duration","transition_ease","transition_easeVarying","transition_end","cubicOut","cubicInOut","defaultTiming","easeCubicInOut","selection_interrupt","selection_transition","pi","tau","tauEpsilon","appendRound","digits","Path","_x0","_y0","_x1","_y1","_append","moveTo","closePath","lineTo","quadraticCurveTo","x1","y1","bezierCurveTo","x2","y2","arcTo","x0","y0","x21","y21","x01","y01","l01_2","abs","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","arc","a0","a1","ccw","cos","sin","cw","da","w","toLocaleString","replace","formatDecimalParts","toExponential","coefficient","grouping","thousands","width","substring","numerals","re","formatSpecifier","specifier","FormatSpecifier","align","sign","symbol","comma","precision","out","prefixExponent","exponent","%","formatDecimal","toPrecision","formatRounded","formatPrefixAuto","toUpperCase","prefixes","locale","formatGroup","currencyPrefix","currency","currencySuffix","decimal","formatNumerals","percent","minus","nan","newFormat","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","charCodeAt","padding","formatPrefix","defaultLocale","formatLocale","sourceRandomUniform","randomUniform","defaultSource","sourceRandomNormal","randomNormal","mu","sigma","log","mul","eps","lcg","seed","initRange","constants","unit","normalize","clamper","bimap","d0","d1","r0","r1","polymap","bisect","unknown","transformer","interpolateValue","untransform","piecewise","output","input","rescale","invert","rangeRound","interpolateRound","continuous","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","maxIter","ceil","withPath","shape","RangeError","Linear","_context","areaStart","_line","areaEnd","lineStart","_point","lineEnd","defined","curve","curveLinear","pointX","pointY","defined0","buffer","Transform","applyX","applyY","location","invertX","invertY","rescaleX","rescaleY","DecidablesElement","getComputedStyleValue","changedProperties","d3","greys","light75","light50","light25","dark25","dark50","dark75","shadows","elevations","baselineColor","baselineColorString","inverseBaselineColor","inverseBaselineColorString","opacityUmbra","opacityPenumbra","opacityAmbient","opacityBoost","mapUmbra","mapPenumbra","mapAmbient","cssBoxShadow","elevation","umbraO","penumbraO","ambientO","umbraC","penumbraC","ambientC","umbraM","penumbraM","ambientM","umbraS","penumbraS","ambientS","svgDefs","filters","svgFilters","unsafeCSS","DecidablesButton","disabled","customElements","DecidablesSlider","nonlinear","rangeMax","rangeMin","rangeStep","rangeValue","toRange","fromRange","nonlinearRange","rangeChanged","rangeInputted","spinnerInputted","ifDefined","DecidablesSpinner","inputted","DecidablesSwitch","checked","changed","DecidablesToggle","DecidablesToggleOption","DecidablesMixinResizeable","superClass","height","rem","getDimensions","parseFloat","resizeObserver","ResizeObserver","observe","unobserve","AccumulableElement","interactive","colors","lights","acc","cur","darks","AccumulableControl","trials","resample","coherence","run","pause","reset","states","setTrials","doResample","setDuration","setCoherence","chooseColor","doRun","doPause","doReset","complete","DDMMath","DEFAULT","MIN","MAX","STEP","JUMP","trials2stats","stats","sums","accumulator","trial","outcome","correctCount","correctRTSum","rt","errorCount","errorRTSum","nrCount","accuracy","correctMeanRT","errorMeanRT","meanRT","sums2","ss","correctSS","errorSS","correctSDRT","errorSDRT","sdRT","azv2pE","zPrime","exp","Z","azv2pC","azvt02m","mean","azv2sd","variance","azvt02mE","phi","azv2sdE","azvt02mC","azv2sdC","tazv2gE","base","term","sum","tazv2gC","data2ez","pC","sd","logit","vrt","mrt","s2","mdt","t0Prime","data2ez2","AccumulableResponse","feedback","payoff","correctPayoff","errorPayoff","nrPayoff","trialCount","trialTotal","payoffs","signals","signal","responses","response","outcomes","startTime","alignState","trialPayoff","totalPayoff","responded","keydown","payoffFormatter","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","payoffFormat","formatToParts","part","AccumulableTable","numeric","summary","sendEvent","correctCountInput","errorCountInput","accuracyInput","correctMeanRTInput","errorMeanRTInput","meanRTInput","correctSDRTInput","errorSDRTInput","sdRTInput","DDMFit","observed","predicted","working","queued","worker","DDMFitWorker","onmessage","fit","postMessage","clear","structuredClone","DDMParameters","setBoundarySeparation","setStartingPoint","setDriftRate","setNondecisionTime","DDMModel","measures","means","sds","human","firstUpdate","evidence","density","bounds","startingPoint","model","animate","paused","pauseTrial","pathNew","resumeTrial","alignPath","upper","drift","at","alignCorrectDistribution","proportionCorrect","dist","alignErrorDistribution","proportionError","dataStats","correctDist","errorDist","hostWidth","hostHeight","hostAspectRatio","elementAspectRatio","elementWidth","elementHeight","margin","gapHeight","evidenceHeight","densityHeight","gapWidth","timeWidth","accuracyWidth","transitionDuration","timeScale","evidenceScale","correctDensityScale","errorDensityScale","accuracyScale","dragT0z","shift","shiftKey","dragDrift","dragBoundary","boundary","evidenceLine","correctDensityLine","errorDensityLine","svgUpdate","svgEnter","measureArrow","parameter","measureCappedArrow","marker","sdCap","gradient","svgMerge","densityPlotUpdate","densityScale","densityLine","alignDistribution","evidencePlotEnter","densityPlotEnter","accuracyPlotEnter","evidencePlotMerge","densityPlotMerge","accuracyPlotMerge","evidenceUnderlayerEnter","densityUnderlayerEnter","accuracyUnderlayerEnter","evidenceUnderlayerMerge","densityUnderlayerMerge","accuracyUnderlayerMerge","densityContentEnter","evidenceContentMerge","densityContentMerge","accuracyContentMerge","evidenceOverlayerMerge","densityOverlayerMerge","timeScaleMerge","timeScaleTransition","timeTitleEnter","evidenceScaleMerge","densityScaleMerge","accuracyScaleMerge","evidenceScaleTransition","densityScaleTransition","elements","accuracyScaleTransition","evidenceTitleEnter","densityTitleEnter","accuracyTitleEnter","pathUpdate","rtLabel","pathEnter","myRtLabel","bbox","getBBox","pathMerge","interpolateA","interpolateZ","interpolateV","interpolateT0","pathMergeNewActive","easeTime","scaleIn","scaleOutGenerator","easeFunction","interpolator","parentElement","pathMergeNewPaused","distEnter","rtUpdate","rtEnter","rtMerge","accuracyUpdate","accuracyEnter","dataAccuracyUpdate","dataAccuracyEnter","dataAccuracyMerge","correct","boundaryUpdate","bound","boundaryEnter","boundaryMerge","includes","driftUpdate","driftEnter","driftMerge","scaleRatio","t0zUpdate","t0zEnter","t0zMerge","markerCorrection","aUpdate","aEnter","aLabel","aLength","aShort","aMerge","aLabelMerge","zUpdate","zEnter","zLabel","zLength","zShort","zMerge","zLabelMerge","vUpdate","vEnter","vLabel","driftHypotenuse","driftAngle","driftX","driftY","driftCorrection","driftAngleCorrected","driftStartX","driftStartY","driftEndX","driftEndY","vLength","vShort","vMerge","vLabelMerge","t0Update","t0Enter","t0Label","t0Length","t0Short","t0Merge","t0LabelMerge","meanUpdate","meanEnter","meanMerge","dataMeanUpdate","dataMeanEnter","dataMeanMerge","sdUpdate","sdEnter","sdMerge","dataSDUpdate","dataSDEnter","dataSDMerge","RDK2AFCTask","probability","wait","iti","running","lifetime","speed","COHERENT","RANDOM","dots","baseTime","pauseTime","lastTime","LEFT","RIGHT","currentDirection","runner","xScale","yScale","elementSize","plotEnter","plotMerge","underlayerEnter","underlayerMerge","contentMerge","dotsUpdate","overlayerEnter","overlayerMerge","dotUpdate","fixationUpdate","queryUpdate","realTime","currentTime","elapsedTime","frameTime","newTrial","newDot","dot","direction","birth","angle","radius","directionR","distance2","radius2","fixationEnter","dotEnter","queryEnter","DDMEquation","DDMEquationAZV2PC","aInput","zInput","vInput","equation","DDMEquationAZVT02M","t0Input","DDMExample","DDMExampleHuman","accumulableControl","rdkTask","accumulableResponse","accumulableTable","ddmParameters","ddmModel","ddmFit","DDMExampleInteractive","DDMExampleModel"],"mappings":"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ACg9B,UAAU,GAAI,IAAI,CAACx4B,KAAK,KAAK8N,SAAS,GACvCA,SAAS,GACT,IAAI,CAACsqB,SAAS,GACZ,IAAI,CAACK,OAAO,CAAC,IAAI,CAACz4B,KAAK,CAAC,GACxB,IAAI,CAACA,KAAK;EAClB,EAAA;IAEA,WAAWnR,MAAMA,GAAG;EAClB,IAAA,OAAO,CACL,KAAK,CAACA,MAAM,EACZ/E,GAAG;AACT;AACA;AACA;AACA;;AAEA,qDAAA,EAAuDiuC,GAAS,CAAC,IAAI,CAACjB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;AACnG,qDAAA,EAAuDiB,GAAS,CAAC,IAAI,CAACjB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;AACnG,qDAAA,EAAuDiB,GAAS,CAAC,IAAI,CAACjB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;;AAEnG;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;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ACJ,sBAAsB,CAAC,IAAI,CAACh5C,CAAC,EAAE,IAAI,CAACiM,CAAC,EAAE,IAAI,CAAClE,CAAC,EAAE,IAAI,CAACmxB,EAAE,CAAC;EAEnF,IAAA,IAAI,CAAC/Z,aAAa,CAAC,IAAIE,WAAW,CAAC,kBAAkB,EAAE;EACrDK,MAAAA,MAAM,EAAE;UACN7U,IAAI,EAAE,IAAI,CAACA,IAAI;UACfstC,KAAK,EAAE,IAAI,CAACA;SACb;EACD34B,MAAAA,OAAO,EAAE;EACX,KAAC,CAAC,CAAC;EACL,EAAA;IAEA,WAAW/b,MAAMA,GAAG;EAClB,IAAA,OAAO,CACL,KAAK,CAACA,MAAM,EACZ/E,GAAG;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAA,CAAO,CACF;EACH,EAAA;EAEAuP,EAAAA,MAAMA,GAAG;EAAE;EACT,IAAA,OAAOyT,GAAI,CAAA,CAAE;EACf,EAAA;EAEAjb,EAAAA,UAAUA,GAAG;MACX,IAAI,CAACquC,UAAU,EAAE;EACnB,EAAA;IAEAnuC,MAAMA,CAACyjC,iBAAiB,EAAE;EACxB,IAAA,KAAK,CAACzjC,MAAM,CAACyjC,iBAAiB,CAAC;;EAE/B;MACA,IAAIrpC,MAAM,CAACoyB,KAAK,CAAC,IAAI,CAAC2P,KAAK,CAAC,IAAI/hC,MAAM,CAACoyB,KAAK,CAAC,IAAI,CAACkb,MAAM,CAAC,IAAIttC,MAAM,CAACoyB,KAAK,CAAC,IAAI,CAACmb,GAAG,CAAC,EAAE;EACnF,MAAA;EACF,IAAA;EAEA,IAAA,MAAM+K,SAAS,GAAG,IAAI,CAACvW,KAAK;EAC5B,IAAA,MAAMwW,UAAU,GAAG,IAAI,CAACjL,MAAM;EAC9B,IAAA,MAAMkL,e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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,150]}