@decidables/detectable-elements 0.1.3 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -372,7 +372,7 @@ const i = globalThis.trustedTypes,
372
372
  v = /-->/g,
373
373
  a = />/g,
374
374
  f = />|[ \n \r](?:([^\s"'>=/]+)([ \n \r]*=[ \n \r]*(?:[^ \n \r"'`<>=]|("|')|))|$)/g,
375
- _$n = /'/g,
375
+ _$p = /'/g,
376
376
  m = /"/g,
377
377
  g = /^(?:script|style|textarea|title)$/i,
378
378
  p = t => (i, ...s) => ({
@@ -412,7 +412,7 @@ const i = globalThis.trustedTypes,
412
412
  p = -1,
413
413
  $ = 0;
414
414
 
415
- for (; $ < s.length && (d.lastIndex = $, u = d.exec(s), null !== u);) $ = d.lastIndex, d === c ? "!--" === u[1] ? d = v : void 0 !== u[1] ? d = a : void 0 !== u[2] ? (g.test(u[2]) && (h = RegExp("</" + u[2], "g")), d = f) : void 0 !== u[3] && (d = f) : d === f ? ">" === u[0] ? (d = null != h ? h : c, p = -1) : void 0 === u[1] ? p = -2 : (p = d.lastIndex - u[2].length, o = u[1], d = void 0 === u[3] ? f : '"' === u[3] ? m : _$n) : d === m || d === _$n ? d = f : d === v || d === a ? d = c : (d = f, h = void 0);
415
+ for (; $ < s.length && (d.lastIndex = $, u = d.exec(s), null !== u);) $ = d.lastIndex, d === c ? "!--" === u[1] ? d = v : void 0 !== u[1] ? d = a : void 0 !== u[2] ? (g.test(u[2]) && (h = RegExp("</" + u[2], "g")), d = f) : void 0 !== u[3] && (d = f) : d === f ? ">" === u[0] ? (d = null != h ? h : c, p = -1) : void 0 === u[1] ? p = -2 : (p = d.lastIndex - u[2].length, o = u[1], d = void 0 === u[3] ? f : '"' === u[3] ? m : _$p) : d === m || d === _$p ? d = f : d === v || d === a ? d = c : (d = f, h = void 0);
416
416
 
417
417
  const y = d === f && t[i + 1].startsWith("/>") ? " " : "";
418
418
  r += d === c ? s + n$1 : p >= 0 ? (l.push(o), s.slice(0, p) + "$lit$" + s.slice(p) + e + y) : s + e + (-2 === p ? (l.push(void 0), i) : y);
@@ -6462,14 +6462,14 @@ function line (x$1, y$1) {
6462
6462
  return line;
6463
6463
  }
6464
6464
 
6465
- let _$m = t => t,
6466
- _t$m,
6467
- _t2$k,
6468
- _t3$a,
6469
- _t4$a,
6470
- _t5$a,
6471
- _t6$a,
6472
- _t7$a,
6465
+ let _$o = t => t,
6466
+ _t$o,
6467
+ _t2$m,
6468
+ _t3$c,
6469
+ _t4$c,
6470
+ _t5$c,
6471
+ _t6$c,
6472
+ _t7$c,
6473
6473
  _t8$8,
6474
6474
  _t9$8;
6475
6475
  /*
@@ -6649,10 +6649,11 @@ class DecidablesElement extends s {
6649
6649
  }
6650
6650
 
6651
6651
  static get svgFilters() {
6652
- const shadows = DecidablesElement.shadows; // eslint-disable-line prefer-destructuring
6652
+ const shadows = DecidablesElement.shadows;
6653
+ /* eslint-disable-line prefer-destructuring */
6653
6654
 
6654
6655
  const filters = shadows.elevations.map(z => {
6655
- return y$1(_t$m || (_t$m = _$m`
6656
+ return y$1(_t$o || (_t$o = _$o`
6656
6657
  <filter id=${0} x="-250%" y="-250%" width="600%" height="600%">
6657
6658
  <feComponentTransfer in="SourceAlpha" result="solid">
6658
6659
  <feFuncA type="table" tableValues="0 1 1"/>
@@ -6682,9 +6683,9 @@ class DecidablesElement extends s {
6682
6683
  <feMergeNode in="finalA" />
6683
6684
  <feMergeNode in="SourceGraphic" />
6684
6685
  </feMerge>
6685
- </filter>`), `shadow-${z}`, shadows.mapUmbra[z].y / 2, shadows.mapUmbra[z].y, shadows.mapPenumbra[z].y / 2, shadows.mapPenumbra[z].y, shadows.mapAmbient[z].y / 2, shadows.mapAmbient[z].y, shadows.mapUmbra[z].s === 0 ? y$1(_t2$k || (_t2$k = _$m``)) : y$1(_t3$a || (_t3$a = _$m`<feMorphology in="offU" result="spreadU" operator=${0} radius=${0} />`), shadows.mapUmbra[z].s > 0 ? 'dilate' : 'erode', Math.abs(shadows.mapUmbra[z].s)), shadows.mapPenumbra[z].s === 0 ? y$1(_t4$a || (_t4$a = _$m``)) : y$1(_t5$a || (_t5$a = _$m`<feMorphology in="offP" result="spreadP" operator=${0} radius=${0} />`), shadows.mapPenumbra[z].s > 0 ? 'dilate' : 'erode', Math.abs(shadows.mapPenumbra[z].s)), shadows.mapAmbient[z].s === 0 ? y$1(_t6$a || (_t6$a = _$m``)) : y$1(_t7$a || (_t7$a = _$m`<feMorphology in="offA" result="spreadA" operator=${0} radius=${0} />`), shadows.mapAmbient[z].s > 0 ? 'dilate' : 'erode', Math.abs(shadows.mapAmbient[z].s)), shadows.mapUmbra[z].s === 0 ? 'offU' : 'spreadU', shadows.mapUmbra[z].b / 2, shadows.mapPenumbra[z].s === 0 ? 'offP' : 'spreadP', shadows.mapPenumbra[z].b / 2, shadows.mapAmbient[z].s === 0 ? 'offA' : 'spreadA', shadows.mapAmbient[z].b / 2, shadows.baselineColor, shadows.opacityUmbra + shadows.opacityBoost, shadows.baselineColor, shadows.opacityPenumbra + shadows.opacityBoost, shadows.baselineColor, shadows.opacityAmbient + shadows.opacityBoost);
6686
+ </filter>`), `shadow-${z}`, shadows.mapUmbra[z].y / 2, shadows.mapUmbra[z].y, shadows.mapPenumbra[z].y / 2, shadows.mapPenumbra[z].y, shadows.mapAmbient[z].y / 2, shadows.mapAmbient[z].y, shadows.mapUmbra[z].s === 0 ? y$1(_t2$m || (_t2$m = _$o``)) : y$1(_t3$c || (_t3$c = _$o`<feMorphology in="offU" result="spreadU" operator=${0} radius=${0} />`), shadows.mapUmbra[z].s > 0 ? 'dilate' : 'erode', Math.abs(shadows.mapUmbra[z].s)), shadows.mapPenumbra[z].s === 0 ? y$1(_t4$c || (_t4$c = _$o``)) : y$1(_t5$c || (_t5$c = _$o`<feMorphology in="offP" result="spreadP" operator=${0} radius=${0} />`), shadows.mapPenumbra[z].s > 0 ? 'dilate' : 'erode', Math.abs(shadows.mapPenumbra[z].s)), shadows.mapAmbient[z].s === 0 ? y$1(_t6$c || (_t6$c = _$o``)) : y$1(_t7$c || (_t7$c = _$o`<feMorphology in="offA" result="spreadA" operator=${0} radius=${0} />`), shadows.mapAmbient[z].s > 0 ? 'dilate' : 'erode', Math.abs(shadows.mapAmbient[z].s)), shadows.mapUmbra[z].s === 0 ? 'offU' : 'spreadU', shadows.mapUmbra[z].b / 2, shadows.mapPenumbra[z].s === 0 ? 'offP' : 'spreadP', shadows.mapPenumbra[z].b / 2, shadows.mapAmbient[z].s === 0 ? 'offA' : 'spreadA', shadows.mapAmbient[z].b / 2, shadows.baselineColor, shadows.opacityUmbra + shadows.opacityBoost, shadows.baselineColor, shadows.opacityPenumbra + shadows.opacityBoost, shadows.baselineColor, shadows.opacityAmbient + shadows.opacityBoost);
6686
6687
  });
6687
- return y$1(_t8$8 || (_t8$8 = _$m`
6688
+ return y$1(_t8$8 || (_t8$8 = _$o`
6688
6689
  <svg class="defs">
6689
6690
  <defs>
6690
6691
  ${0}
@@ -6694,7 +6695,7 @@ class DecidablesElement extends s {
6694
6695
  }
6695
6696
 
6696
6697
  static get styles() {
6697
- return r$2(_t9$8 || (_t9$8 = _$m`
6698
+ return r$2(_t9$8 || (_t9$8 = _$o`
6698
6699
  :host {
6699
6700
  ---shadow-0: var(--shadow-0, ${0});
6700
6701
  ---shadow-2: var(--shadow-2, ${0});
@@ -6756,9 +6757,9 @@ class DecidablesElement extends s {
6756
6757
 
6757
6758
  }
6758
6759
 
6759
- let _$l = t => t,
6760
- _t$l,
6761
- _t2$j;
6760
+ let _$n = t => t,
6761
+ _t$n,
6762
+ _t2$l;
6762
6763
  class DecidablesButton extends DecidablesElement {
6763
6764
  static get properties() {
6764
6765
  return {
@@ -6777,7 +6778,7 @@ class DecidablesButton extends DecidablesElement {
6777
6778
  }
6778
6779
 
6779
6780
  static get styles() {
6780
- return [super.styles, r$2(_t$l || (_t$l = _$l`
6781
+ return [super.styles, r$2(_t$n || (_t$n = _$n`
6781
6782
  :host {
6782
6783
  margin: 0.25rem;
6783
6784
  }
@@ -6834,7 +6835,7 @@ class DecidablesButton extends DecidablesElement {
6834
6835
  }
6835
6836
 
6836
6837
  render() {
6837
- return $(_t2$j || (_t2$j = _$l`
6838
+ return $(_t2$l || (_t2$l = _$n`
6838
6839
  <button ?disabled=${0}>
6839
6840
  <slot></slot>
6840
6841
  </button>
@@ -6852,9 +6853,9 @@ customElements.define('decidables-button', DecidablesButton);
6852
6853
 
6853
6854
  const l = l => null != l ? l : w;
6854
6855
 
6855
- let _$k = t => t,
6856
- _t$k,
6857
- _t2$i;
6856
+ let _$m = t => t,
6857
+ _t$m,
6858
+ _t2$k;
6858
6859
  class DecidablesSlider extends DecidablesElement {
6859
6860
  static get properties() {
6860
6861
  return {
@@ -6911,7 +6912,7 @@ class DecidablesSlider extends DecidablesElement {
6911
6912
  }
6912
6913
 
6913
6914
  static get styles() {
6914
- return [super.styles, r$2(_t$k || (_t$k = _$k`
6915
+ return [super.styles, r$2(_t$m || (_t$m = _$m`
6915
6916
  :host {
6916
6917
  ---shadow-2-rotate: var(--shadow-2-rotate, ${0});
6917
6918
  ---shadow-4-rotate: var(--shadow-4-rotate, ${0});
@@ -7165,7 +7166,7 @@ class DecidablesSlider extends DecidablesElement {
7165
7166
  }
7166
7167
 
7167
7168
  render() {
7168
- return $(_t2$i || (_t2$i = _$k`
7169
+ return $(_t2$k || (_t2$k = _$m`
7169
7170
  <label for="slider">
7170
7171
  <slot></slot>
7171
7172
  </label>
@@ -7179,9 +7180,9 @@ class DecidablesSlider extends DecidablesElement {
7179
7180
  }
7180
7181
  customElements.define('decidables-slider', DecidablesSlider);
7181
7182
 
7182
- let _$j = t => t,
7183
- _t$j,
7184
- _t2$h;
7183
+ let _$l = t => t,
7184
+ _t$l,
7185
+ _t2$j;
7185
7186
  class DecidablesSpinner extends DecidablesElement {
7186
7187
  static get properties() {
7187
7188
  return {
@@ -7228,7 +7229,7 @@ class DecidablesSpinner extends DecidablesElement {
7228
7229
  }
7229
7230
 
7230
7231
  static get styles() {
7231
- return [super.styles, r$2(_t$j || (_t$j = _$j`
7232
+ return [super.styles, r$2(_t$l || (_t$l = _$l`
7232
7233
  :host {
7233
7234
  ---decidables-spinner-font-size: var(--decidables-spinner-font-size, 1.125rem);
7234
7235
  ---decidables-spinner-input-width: var(--decidables-spinner-input-width, 4rem);
@@ -7311,7 +7312,7 @@ class DecidablesSpinner extends DecidablesElement {
7311
7312
  }
7312
7313
 
7313
7314
  render() {
7314
- return $(_t2$h || (_t2$h = _$j`
7315
+ return $(_t2$j || (_t2$j = _$l`
7315
7316
  <label>
7316
7317
  <slot></slot>
7317
7318
  <input ?disabled=${0} type="number" min=${0} max=${0} step=${0} .value=${0} @input=${0}>
@@ -7322,9 +7323,9 @@ class DecidablesSpinner extends DecidablesElement {
7322
7323
  }
7323
7324
  customElements.define('decidables-spinner', DecidablesSpinner);
7324
7325
 
7325
- let _$i = t => t,
7326
- _t$i,
7327
- _t2$g;
7326
+ let _$k = t => t,
7327
+ _t$k,
7328
+ _t2$i;
7328
7329
  class DecidablesSwitch extends DecidablesElement {
7329
7330
  static get properties() {
7330
7331
  return {
@@ -7359,7 +7360,7 @@ class DecidablesSwitch extends DecidablesElement {
7359
7360
  }
7360
7361
 
7361
7362
  static get styles() {
7362
- return [super.styles, r$2(_t$i || (_t$i = _$i`
7363
+ return [super.styles, r$2(_t$k || (_t$k = _$k`
7363
7364
  :host {
7364
7365
  display: flex;
7365
7366
 
@@ -7482,7 +7483,7 @@ class DecidablesSwitch extends DecidablesElement {
7482
7483
  }
7483
7484
 
7484
7485
  render() {
7485
- return $(_t2$g || (_t2$g = _$i`
7486
+ return $(_t2$i || (_t2$i = _$k`
7486
7487
  <input type="checkbox" id="switch" ?checked=${0} ?disabled=${0} @change=${0}>
7487
7488
  <label for="switch">
7488
7489
  <slot name="off-label"></slot>
@@ -7496,9 +7497,9 @@ class DecidablesSwitch extends DecidablesElement {
7496
7497
  }
7497
7498
  customElements.define('decidables-switch', DecidablesSwitch);
7498
7499
 
7499
- let _$h = t => t,
7500
- _t$h,
7501
- _t2$f;
7500
+ let _$j = t => t,
7501
+ _t$j,
7502
+ _t2$h;
7502
7503
  class DecidablesToggle extends DecidablesElement {
7503
7504
  static get properties() {
7504
7505
  return {
@@ -7517,7 +7518,7 @@ class DecidablesToggle extends DecidablesElement {
7517
7518
  }
7518
7519
 
7519
7520
  static get styles() {
7520
- return [super.styles, r$2(_t$h || (_t$h = _$h`
7521
+ return [super.styles, r$2(_t$j || (_t$j = _$j`
7521
7522
  fieldset {
7522
7523
  display: flex;
7523
7524
 
@@ -7538,7 +7539,7 @@ class DecidablesToggle extends DecidablesElement {
7538
7539
  }
7539
7540
 
7540
7541
  render() {
7541
- return $(_t2$f || (_t2$f = _$h`
7542
+ return $(_t2$h || (_t2$h = _$j`
7542
7543
  <fieldset ?disabled=${0}>
7543
7544
  <legend><slot name="label"></slot></legend>
7544
7545
  <slot></slot>
@@ -7549,9 +7550,9 @@ class DecidablesToggle extends DecidablesElement {
7549
7550
  }
7550
7551
  customElements.define('decidables-toggle', DecidablesToggle);
7551
7552
 
7552
- let _$g = t => t,
7553
- _t$g,
7554
- _t2$e;
7553
+ let _$i = t => t,
7554
+ _t$i,
7555
+ _t2$g;
7555
7556
  class DecidablesToggleOption extends DecidablesElement {
7556
7557
  static get properties() {
7557
7558
  return {
@@ -7599,7 +7600,7 @@ class DecidablesToggleOption extends DecidablesElement {
7599
7600
  }
7600
7601
 
7601
7602
  static get styles() {
7602
- return [super.styles, r$2(_t$g || (_t$g = _$g`
7603
+ return [super.styles, r$2(_t$i || (_t$i = _$i`
7603
7604
  :host {
7604
7605
  display: flex;
7605
7606
  }
@@ -7696,7 +7697,7 @@ class DecidablesToggleOption extends DecidablesElement {
7696
7697
  }
7697
7698
 
7698
7699
  render() {
7699
- return $(_t2$e || (_t2$e = _$g`
7700
+ return $(_t2$g || (_t2$g = _$i`
7700
7701
  <input type="radio" id="toggle-option" name=${0} value=${0} .checked=${0} @change=${0}>
7701
7702
  <label for="toggle-option">
7702
7703
  <slot></slot>
@@ -7707,6 +7708,23 @@ class DecidablesToggleOption extends DecidablesElement {
7707
7708
  }
7708
7709
  customElements.define('decidables-toggle-option', DecidablesToggleOption);
7709
7710
 
7711
+ /*
7712
+ Attribute: Space-separated sequence of numbers
7713
+ Property: Array of numbers
7714
+ */
7715
+ const DecidablesConverterArray = {
7716
+ fromAttribute: value => {
7717
+ return value.split(/\s+/).map(item => {
7718
+ return Number.parseFloat(item);
7719
+ });
7720
+ },
7721
+ toAttribute: value => {
7722
+ return value.length ? value.map(item => {
7723
+ return item.toFixed(3);
7724
+ }).join(' ') : null;
7725
+ }
7726
+ };
7727
+
7710
7728
  /*
7711
7729
  Attribute: Space-separated sequence of strings
7712
7730
  Property: Set of strings
@@ -7720,8 +7738,8 @@ const DecidablesConverterSet = {
7720
7738
  }
7721
7739
  };
7722
7740
 
7723
- let _$f = t => t,
7724
- _t$f;
7741
+ let _$h = t => t,
7742
+ _t$h;
7725
7743
  /*
7726
7744
  DetectableElement Base Class - Not intended for instantiation!
7727
7745
  <detectable-element>
@@ -7778,7 +7796,7 @@ class DetectableElement extends DecidablesElement {
7778
7796
  }
7779
7797
 
7780
7798
  static get styles() {
7781
- return [super.styles, r$2(_t$f || (_t$f = _$f`
7799
+ return [super.styles, r$2(_t$h || (_t$h = _$h`
7782
7800
  :host {
7783
7801
  ---color-h: var(--color-h, ${0});
7784
7802
  ---color-m: var(--color-m, ${0});
@@ -7833,9 +7851,9 @@ class DetectableElement extends DecidablesElement {
7833
7851
 
7834
7852
  }
7835
7853
 
7836
- let _$e = t => t,
7837
- _t$e,
7838
- _t2$d;
7854
+ let _$g = t => t,
7855
+ _t$g,
7856
+ _t2$f;
7839
7857
  /*
7840
7858
  RDKTask element
7841
7859
  <rdk-task>
@@ -7989,7 +8007,7 @@ class RDKTask extends DetectableElement {
7989
8007
  }
7990
8008
 
7991
8009
  static get styles() {
7992
- return [super.styles, r$2(_t$e || (_t$e = _$e`
8010
+ return [super.styles, r$2(_t$g || (_t$g = _$g`
7993
8011
  :host {
7994
8012
  display: inline-block;
7995
8013
 
@@ -8038,8 +8056,8 @@ class RDKTask extends DetectableElement {
8038
8056
  }
8039
8057
 
8040
8058
  render() {
8041
- // eslint-disable-line class-methods-use-this
8042
- return $(_t2$d || (_t2$d = _$e``));
8059
+ /* eslint-disable-line class-methods-use-this */
8060
+ return $(_t2$f || (_t2$f = _$g``));
8043
8061
  }
8044
8062
 
8045
8063
  getDimensions() {
@@ -13227,9 +13245,9 @@ class SDTMath {
13227
13245
 
13228
13246
  }
13229
13247
 
13230
- let _$d = t => t,
13231
- _t$d,
13232
- _t2$c;
13248
+ let _$f = t => t,
13249
+ _t$f,
13250
+ _t2$e;
13233
13251
  /*
13234
13252
  ROCSpace element
13235
13253
  <roc-space>
@@ -13449,7 +13467,7 @@ class ROCSpace extends DetectableElement {
13449
13467
  }
13450
13468
 
13451
13469
  static get styles() {
13452
- return [super.styles, r$2(_t$d || (_t$d = _$d`
13470
+ return [super.styles, r$2(_t$f || (_t$f = _$f`
13453
13471
  :host {
13454
13472
  display: inline-block;
13455
13473
 
@@ -13585,8 +13603,8 @@ class ROCSpace extends DetectableElement {
13585
13603
  }
13586
13604
 
13587
13605
  render() {
13588
- // eslint-disable-line class-methods-use-this
13589
- return $(_t2$c || (_t2$c = _$d`
13606
+ /* eslint-disable-line class-methods-use-this */
13607
+ return $(_t2$e || (_t2$e = _$f`
13590
13608
  ${0}
13591
13609
  `), DetectableElement.svgFilters);
13592
13610
  }
@@ -14126,14 +14144,14 @@ class ROCSpace extends DetectableElement {
14126
14144
  }
14127
14145
  customElements.define('roc-space', ROCSpace);
14128
14146
 
14129
- let _$c = t => t,
14130
- _t$c,
14131
- _t2$b,
14132
- _t3$9,
14133
- _t4$9,
14134
- _t5$9,
14135
- _t6$9,
14136
- _t7$9,
14147
+ let _$e = t => t,
14148
+ _t$e,
14149
+ _t2$d,
14150
+ _t3$b,
14151
+ _t4$b,
14152
+ _t5$b,
14153
+ _t6$b,
14154
+ _t7$b,
14137
14155
  _t8$7,
14138
14156
  _t9$7,
14139
14157
  _t10$7,
@@ -14220,7 +14238,7 @@ class DetectableControl extends DetectableElement {
14220
14238
  this.duration = undefined;
14221
14239
  this.coherence = undefined;
14222
14240
  this.payoff = undefined;
14223
- this.colors = ['none', 'accuracy', 'stimulus', 'response', 'outcome'];
14241
+ this.colors = ['none', 'accuracy', 'stimulus', 'response', 'outcome', 'all'];
14224
14242
  this.color = undefined;
14225
14243
  this.zRoc = undefined;
14226
14244
  this.run = false;
@@ -14320,7 +14338,7 @@ class DetectableControl extends DetectableElement {
14320
14338
  }
14321
14339
 
14322
14340
  static get styles() {
14323
- return [super.styles, r$2(_t$c || (_t$c = _$c`
14341
+ return [super.styles, r$2(_t$e || (_t$e = _$e`
14324
14342
  :host {
14325
14343
  display: inline-block;
14326
14344
  }
@@ -14351,7 +14369,7 @@ class DetectableControl extends DetectableElement {
14351
14369
  }
14352
14370
 
14353
14371
  render() {
14354
- return $(_t2$b || (_t2$b = _$c`
14372
+ return $(_t2$d || (_t2$d = _$e`
14355
14373
  <div class="holder">
14356
14374
  ${0}
14357
14375
  ${0}
@@ -14360,7 +14378,7 @@ class DetectableControl extends DetectableElement {
14360
14378
  ${0}
14361
14379
  ${0}
14362
14380
  ${0}
14363
- </div>`), this.trials ? $(_t3$9 || (_t3$9 = _$c`<decidables-slider min="1" max="100" step="1" .value=${0} @change=${0} @input=${0}>Trials</decidables-slider>`), this.trials, this.setTrials.bind(this), this.setTrials.bind(this)) : $(_t4$9 || (_t4$9 = _$c``)), this.duration ? $(_t5$9 || (_t5$9 = _$c`<decidables-slider min="10" max="2000" step="10" .value=${0} @change=${0} @input=${0}>Duration</decidables-slider>`), this.duration, this.setDuration.bind(this), this.setDuration.bind(this)) : $(_t6$9 || (_t6$9 = _$c``)), this.coherence ? $(_t7$9 || (_t7$9 = _$c`<decidables-slider min="0" max="1" step=".01" .value=${0} @change=${0} @input=${0}>Coherence</decidables-slider>`), this.coherence, this.setCoherence.bind(this), this.setCoherence.bind(this)) : $(_t8$7 || (_t8$7 = _$c``)), this.payoff ? $(_t9$7 || (_t9$7 = _$c`<decidables-slider class="payoff" min="0" max="100" step="1" .value=${0} @change=${0} @input=${0}>Payoff</decidables-slider>`), this.payoff, this.setPayoff.bind(this), this.setPayoff.bind(this)) : $(_t10$7 || (_t10$7 = _$c``)), this.color !== undefined ? $(_t11$7 || (_t11$7 = _$c`
14381
+ </div>`), this.trials ? $(_t3$b || (_t3$b = _$e`<decidables-slider min="1" max="100" step="1" .value=${0} @change=${0} @input=${0}>Trials</decidables-slider>`), this.trials, this.setTrials.bind(this), this.setTrials.bind(this)) : $(_t4$b || (_t4$b = _$e``)), this.duration ? $(_t5$b || (_t5$b = _$e`<decidables-slider min="10" max="2000" step="10" .value=${0} @change=${0} @input=${0}>Duration</decidables-slider>`), this.duration, this.setDuration.bind(this), this.setDuration.bind(this)) : $(_t6$b || (_t6$b = _$e``)), this.coherence ? $(_t7$b || (_t7$b = _$e`<decidables-slider min="0" max="1" step=".01" .value=${0} @change=${0} @input=${0}>Coherence</decidables-slider>`), this.coherence, this.setCoherence.bind(this), this.setCoherence.bind(this)) : $(_t8$7 || (_t8$7 = _$e``)), this.payoff ? $(_t9$7 || (_t9$7 = _$e`<decidables-slider class="payoff" min="0" max="100" step="1" .value=${0} @change=${0} @input=${0}>Payoff</decidables-slider>`), this.payoff, this.setPayoff.bind(this), this.setPayoff.bind(this)) : $(_t10$7 || (_t10$7 = _$e``)), this.color !== undefined ? $(_t11$7 || (_t11$7 = _$e`
14364
14382
  <decidables-toggle @change=${0}>
14365
14383
  <span slot="label">Emphasis</span>
14366
14384
  <decidables-toggle-option name="toggle" value="none" ?checked=${0}>None</decidables-toggle-option>
@@ -14368,27 +14386,28 @@ class DetectableControl extends DetectableElement {
14368
14386
  <decidables-toggle-option name="toggle" value="stimulus" ?checked=${0}>Stimulus</decidables-toggle-option>
14369
14387
  <decidables-toggle-option name="toggle" value="response" ?checked=${0}>Response</decidables-toggle-option>
14370
14388
  <decidables-toggle-option name="toggle" value="outcome" ?checked=${0}>Outcome</decidables-toggle-option>
14389
+ <decidables-toggle-option name="toggle" value="all" ?checked=${0}>All</decidables-toggle-option>
14371
14390
  </decidables-toggle>
14372
- `), this.chooseColor.bind(this), this.color === 'none', this.color === 'accuracy', this.color === 'stimulus', this.color === 'response', this.color === 'outcome') : $(_t12$2 || (_t12$2 = _$c``)), this.zRoc !== undefined ? $(_t13$2 || (_t13$2 = _$c`
14391
+ `), this.chooseColor.bind(this), this.color === 'none', this.color === 'accuracy', this.color === 'stimulus', this.color === 'response', this.color === 'outcome', this.color === 'all') : $(_t12$2 || (_t12$2 = _$e``)), this.zRoc !== undefined ? $(_t13$2 || (_t13$2 = _$e`
14373
14392
  <decidables-switch ?checked=${0} @change=${0}>
14374
14393
  <span class="math-var">z</span>ROC
14375
14394
  <span slot="off-label">ROC</span>
14376
14395
  </decidables-switch>
14377
- `), this.zRoc, this.flipZRoc.bind(this)) : $(_t14$2 || (_t14$2 = _$c``)), this.run || this.pause || this.reset ? $(_t15$2 || (_t15$2 = _$c`
14396
+ `), this.zRoc, this.flipZRoc.bind(this)) : $(_t14$2 || (_t14$2 = _$e``)), this.run || this.pause || this.reset ? $(_t15$2 || (_t15$2 = _$e`
14378
14397
  <div class="buttons">
14379
14398
  ${0}
14380
14399
  ${0}
14381
14400
  ${0}
14382
14401
  </div>
14383
- `), this.run ? $(_t16$2 || (_t16$2 = _$c`<decidables-button name="run" ?disabled=${0} @click=${0}>Run</decidables-button>`), this.state === 'running' || this.state === 'ended', this.doRun.bind(this)) : $(_t17$2 || (_t17$2 = _$c``)), this.pause ? $(_t18$2 || (_t18$2 = _$c`<decidables-button name="pause" ?disabled=${0} @click=${0}>Pause</decidables-button>`), this.state !== 'running', this.doPause.bind(this)) : $(_t19$2 || (_t19$2 = _$c``)), this.reset ? $(_t20$2 || (_t20$2 = _$c`<decidables-button name="reset" ?disabled=${0} @click=${0}>Reset</decidables-button>`), this.state === 'resetted', this.doReset.bind(this)) : $(_t21$1 || (_t21$1 = _$c``))) : $(_t22$1 || (_t22$1 = _$c``)));
14402
+ `), this.run ? $(_t16$2 || (_t16$2 = _$e`<decidables-button name="run" ?disabled=${0} @click=${0}>Run</decidables-button>`), this.state === 'running' || this.state === 'ended', this.doRun.bind(this)) : $(_t17$2 || (_t17$2 = _$e``)), this.pause ? $(_t18$2 || (_t18$2 = _$e`<decidables-button name="pause" ?disabled=${0} @click=${0}>Pause</decidables-button>`), this.state !== 'running', this.doPause.bind(this)) : $(_t19$2 || (_t19$2 = _$e``)), this.reset ? $(_t20$2 || (_t20$2 = _$e`<decidables-button name="reset" ?disabled=${0} @click=${0}>Reset</decidables-button>`), this.state === 'resetted', this.doReset.bind(this)) : $(_t21$1 || (_t21$1 = _$e``))) : $(_t22$1 || (_t22$1 = _$e``)));
14384
14403
  }
14385
14404
 
14386
14405
  }
14387
14406
  customElements.define('detectable-control', DetectableControl);
14388
14407
 
14389
- let _$b = t => t,
14390
- _t$b,
14391
- _t2$a;
14408
+ let _$d = t => t,
14409
+ _t$d,
14410
+ _t2$c;
14392
14411
  /*
14393
14412
  SDTModel element
14394
14413
  <sdt-model>
@@ -14625,7 +14644,7 @@ class SDTModel extends DetectableElement {
14625
14644
  }
14626
14645
 
14627
14646
  static get styles() {
14628
- return [super.styles, r$2(_t$b || (_t$b = _$b`
14647
+ return [super.styles, r$2(_t$d || (_t$d = _$d`
14629
14648
  :host {
14630
14649
  display: inline-block;
14631
14650
 
@@ -14871,8 +14890,8 @@ class SDTModel extends DetectableElement {
14871
14890
  }
14872
14891
 
14873
14892
  render() {
14874
- // eslint-disable-line class-methods-use-this
14875
- return $(_t2$a || (_t2$a = _$b`
14893
+ /* eslint-disable-line class-methods-use-this */
14894
+ return $(_t2$c || (_t2$c = _$d`
14876
14895
  ${0}
14877
14896
  `), DetectableElement.svgFilters);
14878
14897
  }
@@ -15017,7 +15036,8 @@ class SDTModel extends DetectableElement {
15017
15036
  datum.startMuS = this.muS;
15018
15037
  }).on('drag', (event, datum) => {
15019
15038
  this.drag = true;
15020
- let muS = this.muS; // eslint-disable-line prefer-destructuring
15039
+ let muS = this.muS;
15040
+ /* eslint-disable-line prefer-destructuring */
15021
15041
 
15022
15042
  if (this.interactive) {
15023
15043
  muS = xScale.invert(event.x); // Clamp Signal Curve to stay visible
@@ -15025,7 +15045,8 @@ class SDTModel extends DetectableElement {
15025
15045
  muS = muS < xScale.domain()[0] ? xScale.domain()[0] : muS > xScale.domain()[1] ? xScale.domain()[1] : muS;
15026
15046
  }
15027
15047
 
15028
- let hS = this.hS; // eslint-disable-line prefer-destructuring
15048
+ let hS = this.hS;
15049
+ /* eslint-disable-line prefer-destructuring */
15029
15050
 
15030
15051
  if (this.unequal) {
15031
15052
  hS = yScale.invert(event.y); // Clamp Signal Curve to stay visible
@@ -15156,7 +15177,8 @@ class SDTModel extends DetectableElement {
15156
15177
 
15157
15178
  const noiseMerge = signalNoiseMerge.selectAll('.noise').attr('tabindex', this.interactive ? 0 : null).classed('interactive', this.interactive).on('keydown', this.interactive ? event => {
15158
15179
  if (['ArrowRight', 'ArrowLeft'].includes(event.key)) {
15159
- let muN = this.muN; // eslint-disable-line prefer-destructuring
15180
+ let muN = this.muN;
15181
+ /* eslint-disable-line prefer-destructuring */
15160
15182
 
15161
15183
  switch (event.key) {
15162
15184
  case 'ArrowRight':
@@ -15287,7 +15309,8 @@ class SDTModel extends DetectableElement {
15287
15309
 
15288
15310
  const signalMerge = signalNoiseMerge.selectAll('.signal').attr('tabindex', this.interactive || this.unequal ? 0 : null).classed('interactive', this.interactive).classed('unequal', this.unequal).on('keydown.sensitivity', this.interactive ? event => {
15289
15311
  if (['ArrowRight', 'ArrowLeft'].includes(event.key)) {
15290
- let muS = this.muS; // eslint-disable-line prefer-destructuring
15312
+ let muS = this.muS;
15313
+ /* eslint-disable-line prefer-destructuring */
15291
15314
 
15292
15315
  switch (event.key) {
15293
15316
  case 'ArrowRight':
@@ -15312,7 +15335,8 @@ class SDTModel extends DetectableElement {
15312
15335
  }
15313
15336
  } : null).on('keydown.variance', this.unequal ? event => {
15314
15337
  if (['ArrowUp', 'ArrowDown'].includes(event.key)) {
15315
- let hS = this.hS; // eslint-disable-line prefer-destructuring
15338
+ let hS = this.hS;
15339
+ /* eslint-disable-line prefer-destructuring */
15316
15340
 
15317
15341
  switch (event.key) {
15318
15342
  case 'ArrowUp':
@@ -15469,7 +15493,7 @@ class SDTModel extends DetectableElement {
15469
15493
  const interpolateD = interpolate$1(element.d !== undefined ? element.d : this.d, this.d);
15470
15494
  return time => {
15471
15495
  element.d = interpolateD(time);
15472
- select(element).text(+element.d.toFixed(3));
15496
+ select(element).text(format('.3')(element.d));
15473
15497
  };
15474
15498
  }); // EXIT
15475
15499
 
@@ -15500,7 +15524,7 @@ class SDTModel extends DetectableElement {
15500
15524
  const interpolateC = interpolate$1(element.c !== undefined ? element.c : this.c, this.c);
15501
15525
  return time => {
15502
15526
  element.c = interpolateC(time);
15503
- select(element).text(+element.c.toFixed(3));
15527
+ select(element).text(format('.3')(element.c));
15504
15528
  };
15505
15529
  }); // EXIT
15506
15530
 
@@ -15535,7 +15559,7 @@ class SDTModel extends DetectableElement {
15535
15559
  const interpolateS = interpolate$1(element.s !== undefined ? element.s : this.s, this.s);
15536
15560
  return time => {
15537
15561
  element.s = interpolateS(time);
15538
- select(element).text(+element.s.toFixed(3));
15562
+ select(element).text(format('.3')(element.s));
15539
15563
  };
15540
15564
  }); // EXIT
15541
15565
 
@@ -15554,7 +15578,8 @@ class SDTModel extends DetectableElement {
15554
15578
  if (this.interactive) {
15555
15579
  thresholdMerge.call(dragThreshold).on('keydown', event => {
15556
15580
  if (['ArrowRight', 'ArrowLeft'].includes(event.key)) {
15557
- let l = this.l; // eslint-disable-line prefer-destructuring
15581
+ let l = this.l;
15582
+ /* eslint-disable-line prefer-destructuring */
15558
15583
 
15559
15584
  switch (event.key) {
15560
15585
  case 'ArrowRight':
@@ -15804,14 +15829,14 @@ class SDTModel extends DetectableElement {
15804
15829
  }
15805
15830
  customElements.define('sdt-model', SDTModel);
15806
15831
 
15807
- let _$a = t => t,
15808
- _t$a,
15809
- _t2$9,
15810
- _t3$8,
15811
- _t4$8,
15812
- _t5$8,
15813
- _t6$8,
15814
- _t7$8,
15832
+ let _$c = t => t,
15833
+ _t$c,
15834
+ _t2$b,
15835
+ _t3$a,
15836
+ _t4$a,
15837
+ _t5$a,
15838
+ _t6$a,
15839
+ _t7$a,
15815
15840
  _t8$6,
15816
15841
  _t9$6,
15817
15842
  _t10$6,
@@ -16071,7 +16096,7 @@ class DetectableResponse extends DetectableElement {
16071
16096
  }
16072
16097
 
16073
16098
  static get styles() {
16074
- return [super.styles, r$2(_t$a || (_t$a = _$a`
16099
+ return [super.styles, r$2(_t$c || (_t$c = _$c`
16075
16100
  :host {
16076
16101
  display: inline-block;
16077
16102
  }
@@ -16143,6 +16168,11 @@ class DetectableResponse extends DetectableElement {
16143
16168
  border: 1px solid var(---color-element-border);
16144
16169
  }
16145
16170
 
16171
+ :host([payoff="trial"]) .feedback,
16172
+ :host([payoff="total"]) .feedback {
16173
+ height: 5rem;
16174
+ }
16175
+
16146
16176
  .feedback.h {
16147
16177
  background-color: var(---color-h-light);
16148
16178
  }
@@ -16178,59 +16208,76 @@ class DetectableResponse extends DetectableElement {
16178
16208
  line-height: 1.15;
16179
16209
  }
16180
16210
 
16181
- :host([payoff="trial"]) .feedback,
16182
- :host([payoff="total"]) .feedback {
16183
- height: 4rem;
16184
- }
16185
-
16186
16211
  /* Payoff feedback */
16187
- .payoff {
16212
+ .total {
16188
16213
  text-align: center;
16189
16214
  }
16190
16215
 
16191
- .payoff .label {
16216
+ .total .label {
16192
16217
  font-weight: 600;
16193
16218
  }
16194
16219
  `))];
16195
16220
  }
16196
16221
 
16197
16222
  render() {
16198
- return $(_t2$9 || (_t2$9 = _$a`
16223
+ const payoffFormatter = new Intl.NumberFormat('en-US', {
16224
+ style: 'currency',
16225
+ currency: 'USD',
16226
+ minimumFractionDigits: 0,
16227
+ maximumFractionDigits: 0
16228
+ });
16229
+
16230
+ const payoffFormat = number => {
16231
+ return payoffFormatter.formatToParts(number).map(({
16232
+ type,
16233
+ value
16234
+ }) => {
16235
+ if (type === 'minusSign') {
16236
+ return '−';
16237
+ }
16238
+
16239
+ return value;
16240
+ }).reduce((string, part) => {
16241
+ return string + part;
16242
+ });
16243
+ };
16244
+
16245
+ return $(_t2$b || (_t2$b = _$c`
16199
16246
  <div class="holder">
16200
16247
  <div class="responses">
16201
16248
  <decidables-button name="present" class=${0} ?disabled=${0} @click=${0}>Present</decidables-button>
16202
16249
  <decidables-button name="absent" class=${0} ?disabled=${0} @click=${0}>Absent</decidables-button>
16203
16250
  </div>
16204
16251
  ${0}
16205
- </div>`), this.state === 'feedback' && this.response === 'present' ? 'selected' : this.state === 'waiting' ? 'waiting' : '', this.state !== 'waiting' || this.interactive !== true, this.present.bind(this), this.state === 'feedback' && this.response === 'absent' ? 'selected' : this.state === 'waiting' ? 'waiting' : '', this.state !== 'waiting' || this.interactive !== true, this.absent.bind(this), this.trial || this.feedback !== 'none' || this.payoff === 'total' ? $(_t3$8 || (_t3$8 = _$a`
16252
+ </div>`), this.state === 'feedback' && this.response === 'present' ? 'selected' : this.state === 'waiting' ? 'waiting' : '', this.state !== 'waiting' || this.interactive !== true, this.present.bind(this), this.state === 'feedback' && this.response === 'absent' ? 'selected' : this.state === 'waiting' ? 'waiting' : '', this.state !== 'waiting' || this.interactive !== true, this.absent.bind(this), this.trial || this.feedback !== 'none' || this.payoff === 'total' ? $(_t3$a || (_t3$a = _$c`
16206
16253
  <div class="feedbacks">
16207
16254
  ${0}
16208
16255
  ${0}
16209
16256
  ${0}
16210
- </div>`), this.trial ? $(_t4$8 || (_t4$8 = _$a`
16257
+ </div>`), this.trial ? $(_t4$a || (_t4$a = _$c`
16211
16258
  <div class="trial">
16212
16259
  <span class="label">Trial: </span><span class="count">${0}</span><span class="of"> of </span><span class="total">${0}</span>
16213
- </div>`), this.trialCount, this.trialTotal) : $(_t5$8 || (_t5$8 = _$a``)), this.feedback !== 'none' ? $(_t6$8 || (_t6$8 = _$a`
16260
+ </div>`), this.trialCount, this.trialTotal) : $(_t5$a || (_t5$a = _$c``)), this.feedback !== 'none' ? $(_t6$a || (_t6$a = _$c`
16214
16261
  <div class=${0}>
16215
16262
  ${0}
16216
16263
  ${0}
16217
- </div>`), `feedback ${this.state === 'feedback' ? this.feedback === 'outcome' ? this.outcome : this.accuracy : ''}`, this.state === 'feedback' ? this.feedback === 'outcome' ? this.outcome === 'h' ? $(_t7$8 || (_t7$8 = _$a`<span class="outcome">Hit</span>`)) : this.outcome === 'm' ? $(_t8$6 || (_t8$6 = _$a`<span class="outcome">Miss</span>`)) : this.outcome === 'fa' ? $(_t9$6 || (_t9$6 = _$a`<span class="outcome">False<br>Alarm</span>`)) : this.outcome === 'cr' ? $(_t10$6 || (_t10$6 = _$a`<span class="outcome">Correct<br>Rejection</span>`)) : $(_t11$6 || (_t11$6 = _$a`<span class="outcome">No<br>Response</span>`)) : this.accuracy === 'c' ? $(_t12$1 || (_t12$1 = _$a`<span class="outcome">Correct</span>`)) : this.accuracy === 'e' ? $(_t13$1 || (_t13$1 = _$a`<span class="outcome">Error</span>`)) : $(_t14$1 || (_t14$1 = _$a`<span class="outcome">No<br>Response</span>`)) : '', this.payoff === 'trial' || this.payoff === 'total' ? $(_t15$1 || (_t15$1 = _$a`<span class="payoff">${0}</span>`), this.trialPayoff) : $(_t16$1 || (_t16$1 = _$a``))) : $(_t17$1 || (_t17$1 = _$a``)), this.payoff === 'total' ? $(_t18$1 || (_t18$1 = _$a`
16218
- <div class="payoff">
16264
+ </div>`), `feedback ${this.state === 'feedback' ? this.feedback === 'outcome' ? this.outcome : this.accuracy : ''}`, this.state === 'feedback' ? this.feedback === 'outcome' ? this.outcome === 'h' ? $(_t7$a || (_t7$a = _$c`<span class="outcome">Hit</span>`)) : this.outcome === 'm' ? $(_t8$6 || (_t8$6 = _$c`<span class="outcome">Miss</span>`)) : this.outcome === 'fa' ? $(_t9$6 || (_t9$6 = _$c`<span class="outcome">False<br>Alarm</span>`)) : this.outcome === 'cr' ? $(_t10$6 || (_t10$6 = _$c`<span class="outcome">Correct<br>Rejection</span>`)) : $(_t11$6 || (_t11$6 = _$c`<span class="outcome">No<br>Response</span>`)) : this.accuracy === 'c' ? $(_t12$1 || (_t12$1 = _$c`<span class="outcome">Correct</span>`)) : this.accuracy === 'e' ? $(_t13$1 || (_t13$1 = _$c`<span class="outcome">Error</span>`)) : $(_t14$1 || (_t14$1 = _$c`<span class="outcome">No<br>Response</span>`)) : '', this.state === 'feedback' && (this.payoff === 'trial' || this.payoff === 'total') ? $(_t15$1 || (_t15$1 = _$c`<span class="payoff">${0}</span>`), payoffFormat(this.trialPayoff)) : $(_t16$1 || (_t16$1 = _$c``))) : $(_t17$1 || (_t17$1 = _$c``)), this.payoff === 'total' ? $(_t18$1 || (_t18$1 = _$c`
16265
+ <div class="total">
16219
16266
  <span class="label">Total: </span><span class="value">${0}</span>
16220
- </div>`), this.totalPayoff) : $(_t19$1 || (_t19$1 = _$a``))) : $(_t20$1 || (_t20$1 = _$a``)));
16267
+ </div>`), payoffFormat(this.totalPayoff)) : $(_t19$1 || (_t19$1 = _$c``))) : $(_t20$1 || (_t20$1 = _$c``)));
16221
16268
  }
16222
16269
 
16223
16270
  }
16224
16271
  customElements.define('detectable-response', DetectableResponse);
16225
16272
 
16226
- let _$9 = t => t,
16227
- _t$9,
16228
- _t2$8,
16229
- _t3$7,
16230
- _t4$7,
16231
- _t5$7,
16232
- _t6$7,
16233
- _t7$7,
16273
+ let _$b = t => t,
16274
+ _t$b,
16275
+ _t2$a,
16276
+ _t3$9,
16277
+ _t4$9,
16278
+ _t5$9,
16279
+ _t6$9,
16280
+ _t7$9,
16234
16281
  _t8$5,
16235
16282
  _t9$5,
16236
16283
  _t10$5,
@@ -16377,8 +16424,8 @@ class DetectableTable extends DetectableElement {
16377
16424
  this.numeric = false;
16378
16425
  this.summaries = ['stimulusRates', 'responseRates', 'accuracy'];
16379
16426
  this.summary = new Set();
16380
- this.colors = ['none', 'accuracy', 'stimulus', 'response', 'outcome'];
16381
- this.color = 'outcome';
16427
+ this.colors = ['none', 'accuracy', 'stimulus', 'response', 'outcome', 'all'];
16428
+ this.color = 'all';
16382
16429
  this.h = 40;
16383
16430
  this.m = 60;
16384
16431
  this.fa = 75;
@@ -16517,7 +16564,7 @@ class DetectableTable extends DetectableElement {
16517
16564
  }
16518
16565
 
16519
16566
  static get styles() {
16520
- return [super.styles, r$2(_t$9 || (_t$9 = _$9`
16567
+ return [super.styles, r$2(_t$b || (_t$b = _$b`
16521
16568
  :host {
16522
16569
  display: inline-block;
16523
16570
  }
@@ -16580,7 +16627,7 @@ class DetectableTable extends DetectableElement {
16580
16627
 
16581
16628
  /* Color schemes & Table emphasis */
16582
16629
 
16583
- /* (Default) Outcome color scheme */
16630
+ /* (Default) All color scheme */
16584
16631
  .h {
16585
16632
  background: var(---color-h-light);
16586
16633
  border-top: 2px solid var(---color-element-emphasis);
@@ -16679,6 +16726,15 @@ class DetectableTable extends DetectableElement {
16679
16726
  background: var(---color-element-background);
16680
16727
  }
16681
16728
 
16729
+ /* Outcome color scheme */
16730
+ :host([color="outcome"]) .hr,
16731
+ :host([color="outcome"]) .far,
16732
+ :host([color="outcome"]) .ppv,
16733
+ :host([color="outcome"]) .fomr,
16734
+ :host([color="outcome"]) .acc {
16735
+ background: var(---color-element-background);
16736
+ }
16737
+
16682
16738
  /* No color scheme */
16683
16739
  :host([color="none"]) .cr,
16684
16740
  :host([color="none"]) .fa,
@@ -16701,6 +16757,22 @@ class DetectableTable extends DetectableElement {
16701
16757
  minimumFractionDigits: 0,
16702
16758
  maximumFractionDigits: 0
16703
16759
  });
16760
+
16761
+ const payoffFormat = number => {
16762
+ return payoffFormatter.formatToParts(number).map(({
16763
+ type,
16764
+ value
16765
+ }) => {
16766
+ if (type === 'minusSign') {
16767
+ return '−';
16768
+ }
16769
+
16770
+ return value;
16771
+ }).reduce((string, part) => {
16772
+ return string + part;
16773
+ });
16774
+ };
16775
+
16704
16776
  this.alignState();
16705
16777
  let h;
16706
16778
  let m;
@@ -16713,72 +16785,72 @@ class DetectableTable extends DetectableElement {
16713
16785
  let fomr;
16714
16786
 
16715
16787
  if (this.numeric) {
16716
- h = $(_t2$8 || (_t2$8 = _$9`
16788
+ h = $(_t2$a || (_t2$a = _$b`
16717
16789
  <decidables-spinner ?disabled=${0} min="0" .value="${0}" @input=${0}>
16718
16790
  <span>Hits</span>
16719
16791
  ${0}
16720
16792
  </decidables-spinner>
16721
- `), !this.interactive, this.h, this.hInput.bind(this), this.payoff ? $(_t3$7 || (_t3$7 = _$9`<span class="payoff">${0}</span>`), payoffFormatter.format(this.hPayoff)) : $(_t4$7 || (_t4$7 = _$9``)));
16722
- m = $(_t5$7 || (_t5$7 = _$9`
16793
+ `), !this.interactive, this.h, this.hInput.bind(this), this.payoff ? $(_t3$9 || (_t3$9 = _$b`<span class="payoff">${0}</span>`), payoffFormat(this.hPayoff)) : $(_t4$9 || (_t4$9 = _$b``)));
16794
+ m = $(_t5$9 || (_t5$9 = _$b`
16723
16795
  <decidables-spinner ?disabled=${0} min="0" .value="${0}" @input=${0}>
16724
16796
  <span>Misses</span>
16725
16797
  ${0}
16726
16798
  </decidables-spinner>
16727
- `), !this.interactive, this.m, this.mInput.bind(this), this.payoff ? $(_t6$7 || (_t6$7 = _$9`<span class="payoff">${0}</span>`), payoffFormatter.format(this.mPayoff)) : $(_t7$7 || (_t7$7 = _$9``)));
16728
- fa = $(_t8$5 || (_t8$5 = _$9`
16799
+ `), !this.interactive, this.m, this.mInput.bind(this), this.payoff ? $(_t6$9 || (_t6$9 = _$b`<span class="payoff">${0}</span>`), payoffFormat(this.mPayoff)) : $(_t7$9 || (_t7$9 = _$b``)));
16800
+ fa = $(_t8$5 || (_t8$5 = _$b`
16729
16801
  <decidables-spinner ?disabled=${0} min="0" .value="${0}" @input=${0}>
16730
16802
  <span>False Alarms</span>
16731
16803
  ${0}
16732
16804
  </decidables-spinner>
16733
- `), !this.interactive, this.fa, this.faInput.bind(this), this.payoff ? $(_t9$5 || (_t9$5 = _$9`<span class="payoff">${0}</span>`), payoffFormatter.format(this.faPayoff)) : $(_t10$5 || (_t10$5 = _$9``)));
16734
- cr = $(_t11$5 || (_t11$5 = _$9`
16805
+ `), !this.interactive, this.fa, this.faInput.bind(this), this.payoff ? $(_t9$5 || (_t9$5 = _$b`<span class="payoff">${0}</span>`), payoffFormat(this.faPayoff)) : $(_t10$5 || (_t10$5 = _$b``)));
16806
+ cr = $(_t11$5 || (_t11$5 = _$b`
16735
16807
  <decidables-spinner ?disabled=${0} min="0" .value="${0}" @input=${0}>
16736
16808
  <span>Correct Rejections</span>
16737
16809
  ${0}
16738
16810
  </decidables-spinner>
16739
- `), !this.interactive, this.cr, this.crInput.bind(this), this.payoff ? $(_t12 || (_t12 = _$9`<span class="payoff">${0}</span>`), payoffFormatter.format(this.crPayoff)) : $(_t13 || (_t13 = _$9``)));
16740
- hr = $(_t14 || (_t14 = _$9`
16811
+ `), !this.interactive, this.cr, this.crInput.bind(this), this.payoff ? $(_t12 || (_t12 = _$b`<span class="payoff">${0}</span>`), payoffFormat(this.crPayoff)) : $(_t13 || (_t13 = _$b``)));
16812
+ hr = $(_t14 || (_t14 = _$b`
16741
16813
  <decidables-spinner ?disabled=${0} min="0" max="1" step=".001" .value="${0}" @input=${0}>
16742
16814
  <span>Hit Rate</span>
16743
16815
  </decidables-spinner>
16744
16816
  `), !this.interactive, +this.hr.toFixed(3), this.hrInput.bind(this));
16745
- far = $(_t15 || (_t15 = _$9`
16817
+ far = $(_t15 || (_t15 = _$b`
16746
16818
  <decidables-spinner ?disabled=${0} min="0" max="1" step=".001" .value="${0}" @input=${0}>
16747
16819
  <span>False Alarm Rate</span>
16748
16820
  </decidables-spinner>
16749
16821
  `), !this.interactive, +this.far.toFixed(3), this.farInput.bind(this));
16750
- acc = $(_t16 || (_t16 = _$9`
16822
+ acc = $(_t16 || (_t16 = _$b`
16751
16823
  <decidables-spinner ?disabled=${0} min="0" max="1" step=".001" .value="${0}" @input=${0}>
16752
16824
  <span>Accuracy</span>
16753
16825
  </decidables-spinner>
16754
16826
  `), !this.interactive, +this.acc.toFixed(3), this.accInput.bind(this));
16755
- ppv = $(_t17 || (_t17 = _$9`
16827
+ ppv = $(_t17 || (_t17 = _$b`
16756
16828
  <decidables-spinner ?disabled=${0} min="0" max="1" step=".001" .value="${0}" @input=${0}>
16757
16829
  <span>Positive Predictive Value</span>
16758
16830
  </decidables-spinner>
16759
16831
  `), !this.interactive, +this.ppv.toFixed(3), this.ppvInput.bind(this));
16760
- fomr = $(_t18 || (_t18 = _$9`
16832
+ fomr = $(_t18 || (_t18 = _$b`
16761
16833
  <decidables-spinner ?disabled=${0} min="0" max="1" step=".001" .value="${0}" @input=${0}>
16762
16834
  <span>False Omission Rate</span>
16763
16835
  </decidables-spinner>
16764
16836
  `), !this.interactive, +this.fomr.toFixed(3), this.fomrInput.bind(this));
16765
16837
  } else {
16766
- h = $(_t19 || (_t19 = _$9`<span>Hits</span>
16767
- ${0}`), this.payoff ? $(_t20 || (_t20 = _$9`<span class="payoff">${0}</span>`), payoffFormatter.format(this.hPayoff)) : $(_t21 || (_t21 = _$9``)));
16768
- m = $(_t22 || (_t22 = _$9`<span>Misses</span>
16769
- ${0}`), this.payoff ? $(_t23 || (_t23 = _$9`<span class="payoff">${0}</span>`), payoffFormatter.format(this.mPayoff)) : $(_t24 || (_t24 = _$9``)));
16770
- fa = $(_t25 || (_t25 = _$9`<span>False Alarms</span>
16771
- ${0}`), this.payoff ? $(_t26 || (_t26 = _$9`<span class="payoff">${0}</span>`), payoffFormatter.format(this.faPayoff)) : $(_t27 || (_t27 = _$9``)));
16772
- cr = $(_t28 || (_t28 = _$9`<span>Correct Rejections</span>
16773
- ${0}`), this.payoff ? $(_t29 || (_t29 = _$9`<span class="payoff">${0}</span>`), payoffFormatter.format(this.crPayoff)) : $(_t30 || (_t30 = _$9``)));
16774
- hr = $(_t31 || (_t31 = _$9`<span>Hit Rate</span>`));
16775
- far = $(_t32 || (_t32 = _$9`<span>False Alarm Rate</span>`));
16776
- acc = $(_t33 || (_t33 = _$9`<span>Accuracy</span>`));
16777
- ppv = $(_t34 || (_t34 = _$9`<span>Positive Predictive Value</span>`));
16778
- fomr = $(_t35 || (_t35 = _$9`<span>False Omission Rate</span>`));
16838
+ h = $(_t19 || (_t19 = _$b`<span>Hits</span>
16839
+ ${0}`), this.payoff ? $(_t20 || (_t20 = _$b`<span class="payoff">${0}</span>`), payoffFormat(this.hPayoff)) : $(_t21 || (_t21 = _$b``)));
16840
+ m = $(_t22 || (_t22 = _$b`<span>Misses</span>
16841
+ ${0}`), this.payoff ? $(_t23 || (_t23 = _$b`<span class="payoff">${0}</span>`), payoffFormat(this.mPayoff)) : $(_t24 || (_t24 = _$b``)));
16842
+ fa = $(_t25 || (_t25 = _$b`<span>False Alarms</span>
16843
+ ${0}`), this.payoff ? $(_t26 || (_t26 = _$b`<span class="payoff">${0}</span>`), payoffFormat(this.faPayoff)) : $(_t27 || (_t27 = _$b``)));
16844
+ cr = $(_t28 || (_t28 = _$b`<span>Correct Rejections</span>
16845
+ ${0}`), this.payoff ? $(_t29 || (_t29 = _$b`<span class="payoff">${0}</span>`), payoffFormat(this.crPayoff)) : $(_t30 || (_t30 = _$b``)));
16846
+ hr = $(_t31 || (_t31 = _$b`<span>Hit Rate</span>`));
16847
+ far = $(_t32 || (_t32 = _$b`<span>False Alarm Rate</span>`));
16848
+ acc = $(_t33 || (_t33 = _$b`<span>Accuracy</span>`));
16849
+ ppv = $(_t34 || (_t34 = _$b`<span>Positive Predictive Value</span>`));
16850
+ fomr = $(_t35 || (_t35 = _$b`<span>False Omission Rate</span>`));
16779
16851
  }
16780
16852
 
16781
- return $(_t36 || (_t36 = _$9`
16853
+ return $(_t36 || (_t36 = _$b`
16782
16854
  <table class=${0}>
16783
16855
  <thead>
16784
16856
  <tr>
@@ -16826,35 +16898,35 @@ class DetectableTable extends DetectableElement {
16826
16898
  </tr>
16827
16899
  ${0}
16828
16900
  </tbody>
16829
- </table>`), this.numeric ? 'numeric' : '', h, m, this.summary.has('stimulusRates') ? $(_t37 || (_t37 = _$9`
16901
+ </table>`), this.numeric ? 'numeric' : '', h, m, this.summary.has('stimulusRates') ? $(_t37 || (_t37 = _$b`
16830
16902
  <td class="td td-summary hr">
16831
16903
  ${0}
16832
- </td>`), hr) : $(_t38 || (_t38 = _$9``)), fa, cr, this.summary.has('stimulusRates') ? $(_t39 || (_t39 = _$9`
16904
+ </td>`), hr) : $(_t38 || (_t38 = _$b``)), fa, cr, this.summary.has('stimulusRates') ? $(_t39 || (_t39 = _$b`
16833
16905
  <td class="td td-summary far">
16834
16906
  ${0}
16835
- </td>`), far) : $(_t40 || (_t40 = _$9``)), this.summary.has('responseRates') || this.summary.has('accuracy') ? $(_t41 || (_t41 = _$9`
16907
+ </td>`), far) : $(_t40 || (_t40 = _$b``)), this.summary.has('responseRates') || this.summary.has('accuracy') ? $(_t41 || (_t41 = _$b`
16836
16908
  <tr>
16837
16909
  <td colspan="2"></td>
16838
16910
  ${0}
16839
16911
  ${0}
16840
- </tr>`), this.summary.has('responseRates') ? $(_t42 || (_t42 = _$9`
16912
+ </tr>`), this.summary.has('responseRates') ? $(_t42 || (_t42 = _$b`
16841
16913
  <td class="td td-summary ppv">
16842
16914
  ${0}
16843
16915
  </td>
16844
16916
  <td class="td td-summary fomr">
16845
16917
  ${0}
16846
- </td>`), ppv, fomr) : $(_t43 || (_t43 = _$9`
16847
- <td colspan="2"></td>`)), this.summary.has('accuracy') ? $(_t44 || (_t44 = _$9`
16918
+ </td>`), ppv, fomr) : $(_t43 || (_t43 = _$b`
16919
+ <td colspan="2"></td>`)), this.summary.has('accuracy') ? $(_t44 || (_t44 = _$b`
16848
16920
  <td class="td td-summary acc" rowspan="2">
16849
16921
  ${0}
16850
- </td>`), acc) : $(_t45 || (_t45 = _$9``))) : $(_t46 || (_t46 = _$9``)));
16922
+ </td>`), acc) : $(_t45 || (_t45 = _$b``))) : $(_t46 || (_t46 = _$b``)));
16851
16923
  }
16852
16924
 
16853
16925
  }
16854
16926
  customElements.define('detectable-table', DetectableTable);
16855
16927
 
16856
- let _$8 = t => t,
16857
- _t$8;
16928
+ let _$a = t => t,
16929
+ _t$a;
16858
16930
  /*
16859
16931
  SDTEquation Base Class - Not intended for instantiation!
16860
16932
  <sdt-equation>
@@ -16877,7 +16949,7 @@ class SDTEquation extends DetectableElement {
16877
16949
  }
16878
16950
 
16879
16951
  static get styles() {
16880
- return [super.styles, r$2(_t$8 || (_t$8 = _$8`
16952
+ return [super.styles, r$2(_t$a || (_t$a = _$a`
16881
16953
  :host {
16882
16954
  display: block;
16883
16955
 
@@ -16896,6 +16968,7 @@ class SDTEquation extends DetectableElement {
16896
16968
  /* Overall <table> */
16897
16969
  .equation {
16898
16970
  text-align: center;
16971
+ white-space: nowrap;
16899
16972
 
16900
16973
  border-collapse: collapse;
16901
16974
 
@@ -16969,6 +17042,14 @@ class SDTEquation extends DetectableElement {
16969
17042
  background: var(---color-fa-light);
16970
17043
  }
16971
17044
 
17045
+ .ppv {
17046
+ background: var(---color-present-light);
17047
+ }
17048
+
17049
+ .fomr {
17050
+ background: var(---color-absent-light);
17051
+ }
17052
+
16972
17053
  .acc {
16973
17054
  background: var(---color-acc-light);
16974
17055
  }
@@ -16997,14 +17078,14 @@ class SDTEquation extends DetectableElement {
16997
17078
 
16998
17079
  }
16999
17080
 
17000
- let _$7 = t => t,
17001
- _t$7,
17002
- _t2$7,
17003
- _t3$6,
17004
- _t4$6,
17005
- _t5$6,
17006
- _t6$6,
17007
- _t7$6,
17081
+ let _$9 = t => t,
17082
+ _t$9,
17083
+ _t2$9,
17084
+ _t3$8,
17085
+ _t4$8,
17086
+ _t5$8,
17087
+ _t6$8,
17088
+ _t7$8,
17008
17089
  _t8$4,
17009
17090
  _t9$4,
17010
17091
  _t10$4,
@@ -17099,37 +17180,37 @@ class SDTEquationDC2Far extends SDTEquation {
17099
17180
  let far;
17100
17181
 
17101
17182
  if (this.numeric) {
17102
- d = $(_t$7 || (_t$7 = _$7`
17183
+ d = $(_t$9 || (_t$9 = _$9`
17103
17184
  <decidables-spinner class="d bottom" ?disabled=${0} step=".001" .value="${0}" @input=${0}>
17104
17185
  <var class="math-var">d′</var>
17105
17186
  </decidables-spinner>
17106
17187
  `), !this.interactive, this.d, this.dInput.bind(this));
17107
- c = $(_t2$7 || (_t2$7 = _$7`
17188
+ c = $(_t2$9 || (_t2$9 = _$9`
17108
17189
  <decidables-spinner class="c bottom" ?disabled=${0} step=".001" .value="${0}" @input=${0}>
17109
17190
  <var class="math-var">c</var>
17110
17191
  </decidables-spinner>
17111
17192
  `), !this.interactive, this.c, this.cInput.bind(this));
17112
- s = $(_t3$6 || (_t3$6 = _$7`
17193
+ s = $(_t3$8 || (_t3$8 = _$9`
17113
17194
  <decidables-spinner class="s bottom" ?disabled=${0} min="0" step=".001" .value="${0}" @input=${0}>
17114
17195
  <var class="math-var">σ</var>
17115
17196
  </decidables-spinner>
17116
17197
  `), !this.interactive, this.s, this.sInput.bind(this));
17117
- far = $(_t4$6 || (_t4$6 = _$7`
17198
+ far = $(_t4$8 || (_t4$8 = _$9`
17118
17199
  <decidables-spinner class="far bottom" disabled min="0" max="1" step=".001" .value="${0}">
17119
17200
  <var>False Alarm Rate</var>
17120
17201
  </decidables-spinner>
17121
17202
  `), +this.far.toFixed(3));
17122
17203
  } else {
17123
- d = $(_t5$6 || (_t5$6 = _$7`<var class="math-var d">d′</var>`));
17124
- c = $(_t6$6 || (_t6$6 = _$7`<var class="math-var c">c</var>`));
17125
- s = $(_t7$6 || (_t7$6 = _$7`<var class="math-var s">σ</var>`));
17126
- far = $(_t8$4 || (_t8$4 = _$7`<var class="far">False Alarm Rate</var>`));
17204
+ d = $(_t5$8 || (_t5$8 = _$9`<var class="math-var d">d′</var>`));
17205
+ c = $(_t6$8 || (_t6$8 = _$9`<var class="math-var c">c</var>`));
17206
+ s = $(_t7$8 || (_t7$8 = _$9`<var class="math-var s">σ</var>`));
17207
+ far = $(_t8$4 || (_t8$4 = _$9`<var class="far">False Alarm Rate</var>`));
17127
17208
  }
17128
17209
 
17129
17210
  let equation;
17130
17211
 
17131
17212
  if (this.unequal) {
17132
- equation = $(_t9$4 || (_t9$4 = _$7`
17213
+ equation = $(_t9$4 || (_t9$4 = _$9`
17133
17214
  <tr>
17134
17215
  <td rowspan="2">
17135
17216
  ${0}<span class="equals">=</span><var class="math-greek phi tight">Φ</var><span class="paren tight">(</span><span class="bracket tight">[</span>
@@ -17156,7 +17237,7 @@ class SDTEquationDC2Far extends SDTEquation {
17156
17237
  </td>
17157
17238
  </tr>`), far, s, d, c, s);
17158
17239
  } else {
17159
- equation = $(_t10$4 || (_t10$4 = _$7`
17240
+ equation = $(_t10$4 || (_t10$4 = _$9`
17160
17241
  <tr>
17161
17242
  <td rowspan="2">
17162
17243
  ${0}<span class="equals">=</span><var class="math-greek phi tight">Φ</var><span class="paren tight">(</span><span class="minus tight">−</span>
@@ -17175,7 +17256,7 @@ class SDTEquationDC2Far extends SDTEquation {
17175
17256
  </tr>`), far, d, c);
17176
17257
  }
17177
17258
 
17178
- return $(_t11$4 || (_t11$4 = _$7`
17259
+ return $(_t11$4 || (_t11$4 = _$9`
17179
17260
  <div class="holder">
17180
17261
  <table class="equation">
17181
17262
  <tbody>
@@ -17188,14 +17269,14 @@ class SDTEquationDC2Far extends SDTEquation {
17188
17269
  }
17189
17270
  customElements.define('sdt-equation-dc2far', SDTEquationDC2Far);
17190
17271
 
17191
- let _$6 = t => t,
17192
- _t$6,
17193
- _t2$6,
17194
- _t3$5,
17195
- _t4$5,
17196
- _t5$5,
17197
- _t6$5,
17198
- _t7$5,
17272
+ let _$8 = t => t,
17273
+ _t$8,
17274
+ _t2$8,
17275
+ _t3$7,
17276
+ _t4$7,
17277
+ _t5$7,
17278
+ _t6$7,
17279
+ _t7$7,
17199
17280
  _t8$3,
17200
17281
  _t9$3,
17201
17282
  _t10$3,
@@ -17290,37 +17371,37 @@ class SDTEquationDC2Hr extends SDTEquation {
17290
17371
  let hr;
17291
17372
 
17292
17373
  if (this.numeric) {
17293
- d = $(_t$6 || (_t$6 = _$6`
17374
+ d = $(_t$8 || (_t$8 = _$8`
17294
17375
  <decidables-spinner class="d bottom" ?disabled=${0} step=".001" .value="${0}" @input=${0}>
17295
17376
  <var class="math-var">d′</var>
17296
17377
  </decidables-spinner>
17297
17378
  `), !this.interactive, this.d, this.dInput.bind(this));
17298
- c = $(_t2$6 || (_t2$6 = _$6`
17379
+ c = $(_t2$8 || (_t2$8 = _$8`
17299
17380
  <decidables-spinner class="c bottom" ?disabled=${0} step=".001" .value="${0}" @input=${0}>
17300
17381
  <var class="math-var">c</var>
17301
17382
  </decidables-spinner>
17302
17383
  `), !this.interactive, this.c, this.cInput.bind(this));
17303
- s = $(_t3$5 || (_t3$5 = _$6`
17384
+ s = $(_t3$7 || (_t3$7 = _$8`
17304
17385
  <decidables-spinner class="s bottom" ?disabled=${0} min="0" step=".001" .value="${0}" @input=${0}>
17305
17386
  <var class="math-var">σ</var>
17306
17387
  </decidables-spinner>
17307
17388
  `), !this.interactive, this.s, this.sInput.bind(this));
17308
- hr = $(_t4$5 || (_t4$5 = _$6`
17389
+ hr = $(_t4$7 || (_t4$7 = _$8`
17309
17390
  <decidables-spinner class="hr bottom" disabled min="0" max="1" step=".001" .value="${0}">
17310
17391
  <var>Hit Rate</var>
17311
17392
  </decidables-spinner>
17312
17393
  `), +this.hr.toFixed(3));
17313
17394
  } else {
17314
- d = $(_t5$5 || (_t5$5 = _$6`<var class="math-var d">d′</var>`));
17315
- c = $(_t6$5 || (_t6$5 = _$6`<var class="math-var c">c</var>`));
17316
- s = $(_t7$5 || (_t7$5 = _$6`<var class="math-var s">σ</var>`));
17317
- hr = $(_t8$3 || (_t8$3 = _$6`<var class="hr">Hit Rate</var>`));
17395
+ d = $(_t5$7 || (_t5$7 = _$8`<var class="math-var d">d′</var>`));
17396
+ c = $(_t6$7 || (_t6$7 = _$8`<var class="math-var c">c</var>`));
17397
+ s = $(_t7$7 || (_t7$7 = _$8`<var class="math-var s">σ</var>`));
17398
+ hr = $(_t8$3 || (_t8$3 = _$8`<var class="hr">Hit Rate</var>`));
17318
17399
  }
17319
17400
 
17320
17401
  let equation;
17321
17402
 
17322
17403
  if (this.unequal) {
17323
- equation = $(_t9$3 || (_t9$3 = _$6`
17404
+ equation = $(_t9$3 || (_t9$3 = _$8`
17324
17405
  <tr>
17325
17406
  <td rowspan="2">
17326
17407
  ${0}<span class="equals">=</span><var class="math-greek phi tight">Φ</var><span class="paren tight">(</span><span class="bracket tight">[</span>
@@ -17356,7 +17437,7 @@ class SDTEquationDC2Hr extends SDTEquation {
17356
17437
  </td>
17357
17438
  </tr>`), hr, s, d, c, s, s);
17358
17439
  } else {
17359
- equation = $(_t10$3 || (_t10$3 = _$6`
17440
+ equation = $(_t10$3 || (_t10$3 = _$8`
17360
17441
  <tr>
17361
17442
  <td rowspan="2">
17362
17443
  ${0}<span class="equals">=</span><var class="math-greek phi tight">Φ</var><span class="paren tight">(</span>
@@ -17375,7 +17456,7 @@ class SDTEquationDC2Hr extends SDTEquation {
17375
17456
  </tr>`), hr, d, c);
17376
17457
  }
17377
17458
 
17378
- return $(_t11$3 || (_t11$3 = _$6`
17459
+ return $(_t11$3 || (_t11$3 = _$8`
17379
17460
  <div class="holder">
17380
17461
  <table class="equation">
17381
17462
  <tbody>
@@ -17388,14 +17469,14 @@ class SDTEquationDC2Hr extends SDTEquation {
17388
17469
  }
17389
17470
  customElements.define('sdt-equation-dc2hr', SDTEquationDC2Hr);
17390
17471
 
17391
- let _$5 = t => t,
17392
- _t$5,
17393
- _t2$5,
17394
- _t3$4,
17395
- _t4$4,
17396
- _t5$4,
17397
- _t6$4,
17398
- _t7$4;
17472
+ let _$7 = t => t,
17473
+ _t$7,
17474
+ _t2$7,
17475
+ _t3$6,
17476
+ _t4$6,
17477
+ _t5$6,
17478
+ _t6$6,
17479
+ _t7$6;
17399
17480
  /*
17400
17481
  SDTEquationFaCr2Far element
17401
17482
  <sdt-equation-facr2far>
@@ -17466,28 +17547,28 @@ class SDTEquationFaCr2Far extends SDTEquation {
17466
17547
  let far;
17467
17548
 
17468
17549
  if (this.numeric) {
17469
- fa = $(_t$5 || (_t$5 = _$5`
17550
+ fa = $(_t$7 || (_t$7 = _$7`
17470
17551
  <decidables-spinner class="fa" ?disabled=${0} min="0" .value="${0}" @input=${0}>
17471
17552
  <var>False Alarms</var>
17472
17553
  </decidables-spinner>
17473
17554
  `), !this.interactive, this.fa, this.faInput.bind(this));
17474
- cr = $(_t2$5 || (_t2$5 = _$5`
17555
+ cr = $(_t2$7 || (_t2$7 = _$7`
17475
17556
  <decidables-spinner class="cr" ?disabled=${0} min="0" .value="${0}" @input=${0}>
17476
17557
  <var>Correct Rejections</var>
17477
17558
  </decidables-spinner>
17478
17559
  `), !this.interactive, this.cr, this.crInput.bind(this));
17479
- far = $(_t3$4 || (_t3$4 = _$5`
17560
+ far = $(_t3$6 || (_t3$6 = _$7`
17480
17561
  <decidables-spinner class="far" disabled min="0" max="1" step=".001" .value="${0}">
17481
17562
  <var>False Alarm Rate</var>
17482
17563
  </decidables-spinner>
17483
17564
  `), +this.far.toFixed(3));
17484
17565
  } else {
17485
- fa = $(_t4$4 || (_t4$4 = _$5`<var class="fa">False Alarms</var>`));
17486
- cr = $(_t5$4 || (_t5$4 = _$5`<var class="cr">Correct Rejections</var>`));
17487
- far = $(_t6$4 || (_t6$4 = _$5`<var class="far">False Alarm Rate</var>`));
17566
+ fa = $(_t4$6 || (_t4$6 = _$7`<var class="fa">False Alarms</var>`));
17567
+ cr = $(_t5$6 || (_t5$6 = _$7`<var class="cr">Correct Rejections</var>`));
17568
+ far = $(_t6$6 || (_t6$6 = _$7`<var class="far">False Alarm Rate</var>`));
17488
17569
  }
17489
17570
 
17490
- return $(_t7$4 || (_t7$4 = _$5`
17571
+ return $(_t7$6 || (_t7$6 = _$7`
17491
17572
  <div class="holder">
17492
17573
  <table class="equation">
17493
17574
  <tbody>
@@ -17512,23 +17593,23 @@ class SDTEquationFaCr2Far extends SDTEquation {
17512
17593
  }
17513
17594
  customElements.define('sdt-equation-facr2far', SDTEquationFaCr2Far);
17514
17595
 
17515
- let _$4 = t => t,
17516
- _t$4,
17517
- _t2$4,
17518
- _t3$3,
17519
- _t4$3,
17520
- _t5$3,
17521
- _t6$3,
17522
- _t7$3;
17596
+ let _$6 = t => t,
17597
+ _t$6,
17598
+ _t2$6,
17599
+ _t3$5,
17600
+ _t4$5,
17601
+ _t5$5,
17602
+ _t6$5,
17603
+ _t7$5;
17523
17604
  /*
17524
- SDTEquationHM2Hr element
17605
+ SDTEquationHFa2Ppv element
17525
17606
  <sdt-equation-hm2hr>
17526
17607
 
17527
17608
  Attributes:
17528
17609
  Hits; Misses; Hit Rate;
17529
17610
  */
17530
17611
 
17531
- class SDTEquationHM2Hr extends SDTEquation {
17612
+ class SDTEquationHFa2Ppv extends SDTEquation {
17532
17613
  static get properties() {
17533
17614
  return {
17534
17615
  h: {
@@ -17536,12 +17617,12 @@ class SDTEquationHM2Hr extends SDTEquation {
17536
17617
  type: Number,
17537
17618
  reflect: true
17538
17619
  },
17539
- m: {
17540
- attribute: 'misses',
17620
+ fa: {
17621
+ attribute: 'false-alarms',
17541
17622
  type: Number,
17542
17623
  reflect: true
17543
17624
  },
17544
- hr: {
17625
+ ppv: {
17545
17626
  attribute: false,
17546
17627
  type: Number,
17547
17628
  reflect: false
@@ -17552,20 +17633,145 @@ class SDTEquationHM2Hr extends SDTEquation {
17552
17633
  constructor() {
17553
17634
  super();
17554
17635
  this.h = 0;
17555
- this.m = 0;
17636
+ this.fa = 0;
17556
17637
  this.alignState();
17557
17638
  }
17558
17639
 
17559
17640
  alignState() {
17560
- this.hr = SDTMath.hM2Hr(this.h, this.m);
17641
+ this.ppv = SDTMath.hFa2Ppv(this.h, this.fa);
17561
17642
  }
17562
17643
 
17563
17644
  sendEvent() {
17564
- this.dispatchEvent(new CustomEvent('sdt-equation-hm2hr-change', {
17645
+ this.dispatchEvent(new CustomEvent('sdt-equation-hfa2ppv-change', {
17565
17646
  detail: {
17566
17647
  h: this.h,
17567
- m: this.m,
17568
- hr: this.hr
17648
+ fa: this.fa,
17649
+ ppv: this.ppv
17650
+ },
17651
+ bubbles: true
17652
+ }));
17653
+ }
17654
+
17655
+ hInput(event) {
17656
+ this.h = parseInt(event.target.value, 10);
17657
+ this.alignState();
17658
+ this.sendEvent();
17659
+ }
17660
+
17661
+ faInput(event) {
17662
+ this.fa = parseInt(event.target.value, 10);
17663
+ this.alignState();
17664
+ this.sendEvent();
17665
+ }
17666
+
17667
+ render() {
17668
+ this.alignState();
17669
+ let h;
17670
+ let fa;
17671
+ let ppv;
17672
+
17673
+ if (this.numeric) {
17674
+ h = $(_t$6 || (_t$6 = _$6`
17675
+ <decidables-spinner class="h" ?disabled=${0} min="0" .value="${0}" @input=${0}>
17676
+ <var>Hits</var>
17677
+ </decidables-spinner>
17678
+ `), !this.interactive, this.h, this.hInput.bind(this));
17679
+ fa = $(_t2$6 || (_t2$6 = _$6`
17680
+ <decidables-spinner class="fa" ?disabled=${0} min="0" .value="${0}" @input=${0}>
17681
+ <var>False Alarms</var>
17682
+ </decidables-spinner>
17683
+ `), !this.interactive, this.fa, this.faInput.bind(this));
17684
+ ppv = $(_t3$5 || (_t3$5 = _$6`
17685
+ <decidables-spinner class="ppv" disabled min="0" max="1" step=".001" .value="${0}">
17686
+ <var>Positive Predictive Value</var>
17687
+ </decidables-spinner>
17688
+ `), +this.ppv.toFixed(3));
17689
+ } else {
17690
+ h = $(_t4$5 || (_t4$5 = _$6`<var class="h">Hits</var>`));
17691
+ fa = $(_t5$5 || (_t5$5 = _$6`<var class="fa">False Alarms</var>`));
17692
+ ppv = $(_t6$5 || (_t6$5 = _$6`<var class="ppv">Positive Predictive Value</var>`));
17693
+ }
17694
+
17695
+ return $(_t7$5 || (_t7$5 = _$6`
17696
+ <div class="holder">
17697
+ <table class="equation">
17698
+ <tbody>
17699
+ <tr>
17700
+ <td rowspan="2">
17701
+ ${0}<span class="equals">=</span>
17702
+ </td>
17703
+ <td class="underline">
17704
+ ${0}
17705
+ </td>
17706
+ </tr>
17707
+ <tr>
17708
+ <td>
17709
+ ${0}<span class="plus">+</span>${0}
17710
+ </td>
17711
+ </tr>
17712
+ </tbody>
17713
+ </table>
17714
+ </div>
17715
+ `), ppv, h, h, fa);
17716
+ }
17717
+
17718
+ }
17719
+ customElements.define('sdt-equation-hfa2ppv', SDTEquationHFa2Ppv);
17720
+
17721
+ let _$5 = t => t,
17722
+ _t$5,
17723
+ _t2$5,
17724
+ _t3$4,
17725
+ _t4$4,
17726
+ _t5$4,
17727
+ _t6$4,
17728
+ _t7$4;
17729
+ /*
17730
+ SDTEquationHM2Hr element
17731
+ <sdt-equation-hm2hr>
17732
+
17733
+ Attributes:
17734
+ Hits; Misses; Hit Rate;
17735
+ */
17736
+
17737
+ class SDTEquationHM2Hr extends SDTEquation {
17738
+ static get properties() {
17739
+ return {
17740
+ h: {
17741
+ attribute: 'hits',
17742
+ type: Number,
17743
+ reflect: true
17744
+ },
17745
+ m: {
17746
+ attribute: 'misses',
17747
+ type: Number,
17748
+ reflect: true
17749
+ },
17750
+ hr: {
17751
+ attribute: false,
17752
+ type: Number,
17753
+ reflect: false
17754
+ }
17755
+ };
17756
+ }
17757
+
17758
+ constructor() {
17759
+ super();
17760
+ this.h = 0;
17761
+ this.m = 0;
17762
+ this.alignState();
17763
+ }
17764
+
17765
+ alignState() {
17766
+ this.hr = SDTMath.hM2Hr(this.h, this.m);
17767
+ }
17768
+
17769
+ sendEvent() {
17770
+ this.dispatchEvent(new CustomEvent('sdt-equation-hm2hr-change', {
17771
+ detail: {
17772
+ h: this.h,
17773
+ m: this.m,
17774
+ hr: this.hr
17569
17775
  },
17570
17776
  bubbles: true
17571
17777
  }));
@@ -17590,28 +17796,28 @@ class SDTEquationHM2Hr extends SDTEquation {
17590
17796
  let hr;
17591
17797
 
17592
17798
  if (this.numeric) {
17593
- h = $(_t$4 || (_t$4 = _$4`
17799
+ h = $(_t$5 || (_t$5 = _$5`
17594
17800
  <decidables-spinner class="h" ?disabled=${0} min="0" .value="${0}" @input=${0}>
17595
17801
  <var>Hits</var>
17596
17802
  </decidables-spinner>
17597
17803
  `), !this.interactive, this.h, this.hInput.bind(this));
17598
- m = $(_t2$4 || (_t2$4 = _$4`
17804
+ m = $(_t2$5 || (_t2$5 = _$5`
17599
17805
  <decidables-spinner class="m" ?disabled=${0} min="0" .value="${0}" @input=${0}>
17600
17806
  <var>Misses</var>
17601
17807
  </decidables-spinner>
17602
17808
  `), !this.interactive, this.m, this.mInput.bind(this));
17603
- hr = $(_t3$3 || (_t3$3 = _$4`
17809
+ hr = $(_t3$4 || (_t3$4 = _$5`
17604
17810
  <decidables-spinner class="hr" disabled min="0" max="1" step=".001" .value="${0}">
17605
17811
  <var>Hit Rate</var>
17606
17812
  </decidables-spinner>
17607
17813
  `), +this.hr.toFixed(3));
17608
17814
  } else {
17609
- h = $(_t4$3 || (_t4$3 = _$4`<var class="h">Hits</var>`));
17610
- m = $(_t5$3 || (_t5$3 = _$4`<var class="m">Misses</var>`));
17611
- hr = $(_t6$3 || (_t6$3 = _$4`<var class="hr">Hit Rate</var>`));
17815
+ h = $(_t4$4 || (_t4$4 = _$5`<var class="h">Hits</var>`));
17816
+ m = $(_t5$4 || (_t5$4 = _$5`<var class="m">Misses</var>`));
17817
+ hr = $(_t6$4 || (_t6$4 = _$5`<var class="hr">Hit Rate</var>`));
17612
17818
  }
17613
17819
 
17614
- return $(_t7$3 || (_t7$3 = _$4`
17820
+ return $(_t7$4 || (_t7$4 = _$5`
17615
17821
  <div class="holder">
17616
17822
  <table class="equation">
17617
17823
  <tbody>
@@ -17637,14 +17843,14 @@ class SDTEquationHM2Hr extends SDTEquation {
17637
17843
  }
17638
17844
  customElements.define('sdt-equation-hm2hr', SDTEquationHM2Hr);
17639
17845
 
17640
- let _$3 = t => t,
17641
- _t$3,
17642
- _t2$3,
17643
- _t3$2,
17644
- _t4$2,
17645
- _t5$2,
17646
- _t6$2,
17647
- _t7$2,
17846
+ let _$4 = t => t,
17847
+ _t$4,
17848
+ _t2$4,
17849
+ _t3$3,
17850
+ _t4$3,
17851
+ _t5$3,
17852
+ _t6$3,
17853
+ _t7$3,
17648
17854
  _t8$2,
17649
17855
  _t9$2,
17650
17856
  _t10$2,
@@ -17747,40 +17953,40 @@ class SDTEquationHMFaCr2Acc extends SDTEquation {
17747
17953
  let acc;
17748
17954
 
17749
17955
  if (this.numeric) {
17750
- h = $(_t$3 || (_t$3 = _$3`
17956
+ h = $(_t$4 || (_t$4 = _$4`
17751
17957
  <decidables-spinner class="h" ?disabled=${0} min="0" .value="${0}" @input=${0}>
17752
17958
  <var>Hits</var>
17753
17959
  </decidables-spinner>
17754
17960
  `), !this.interactive, this.h, this.hInput.bind(this));
17755
- m = $(_t2$3 || (_t2$3 = _$3`
17961
+ m = $(_t2$4 || (_t2$4 = _$4`
17756
17962
  <decidables-spinner class="m" ?disabled=${0} min="0" .value="${0}" @input=${0}>
17757
17963
  <var>Misses</var>
17758
17964
  </decidables-spinner>
17759
17965
  `), !this.interactive, this.m, this.mInput.bind(this));
17760
- fa = $(_t3$2 || (_t3$2 = _$3`
17966
+ fa = $(_t3$3 || (_t3$3 = _$4`
17761
17967
  <decidables-spinner class="fa" ?disabled=${0} min="0" .value="${0}" @input=${0}>
17762
17968
  <var>False Alarms</var>
17763
17969
  </decidables-spinner>
17764
17970
  `), !this.interactive, this.fa, this.faInput.bind(this));
17765
- cr = $(_t4$2 || (_t4$2 = _$3`
17971
+ cr = $(_t4$3 || (_t4$3 = _$4`
17766
17972
  <decidables-spinner class="cr" ?disabled=${0} min="0" .value="${0}" @input=${0}>
17767
17973
  <var>Correct Rejections</var>
17768
17974
  </decidables-spinner>
17769
17975
  `), !this.interactive, this.cr, this.crInput.bind(this));
17770
- acc = $(_t5$2 || (_t5$2 = _$3`
17976
+ acc = $(_t5$3 || (_t5$3 = _$4`
17771
17977
  <decidables-spinner class="acc" disabled min="0" max="1" step=".001" .value="${0}">
17772
17978
  <var>Accuracy</var>
17773
17979
  </decidables-spinner>
17774
17980
  `), +this.acc.toFixed(3));
17775
17981
  } else {
17776
- h = $(_t6$2 || (_t6$2 = _$3`<var class="h">Hits</var>`));
17777
- m = $(_t7$2 || (_t7$2 = _$3`<var class="m">Misses</var>`));
17778
- fa = $(_t8$2 || (_t8$2 = _$3`<var class="fa">False Alarms</var>`));
17779
- cr = $(_t9$2 || (_t9$2 = _$3`<var class="cr">Correct Rejections</var>`));
17780
- acc = $(_t10$2 || (_t10$2 = _$3`<var class="acc">Accuracy</var>`));
17982
+ h = $(_t6$3 || (_t6$3 = _$4`<var class="h">Hits</var>`));
17983
+ m = $(_t7$3 || (_t7$3 = _$4`<var class="m">Misses</var>`));
17984
+ fa = $(_t8$2 || (_t8$2 = _$4`<var class="fa">False Alarms</var>`));
17985
+ cr = $(_t9$2 || (_t9$2 = _$4`<var class="cr">Correct Rejections</var>`));
17986
+ acc = $(_t10$2 || (_t10$2 = _$4`<var class="acc">Accuracy</var>`));
17781
17987
  }
17782
17988
 
17783
- return $(_t11$2 || (_t11$2 = _$3`
17989
+ return $(_t11$2 || (_t11$2 = _$4`
17784
17990
  <div class="holder">
17785
17991
  <table class="equation">
17786
17992
  <tbody>
@@ -17805,14 +18011,14 @@ class SDTEquationHMFaCr2Acc extends SDTEquation {
17805
18011
  }
17806
18012
  customElements.define('sdt-equation-hmfacr2acc', SDTEquationHMFaCr2Acc);
17807
18013
 
17808
- let _$2 = t => t,
17809
- _t$2,
17810
- _t2$2,
17811
- _t3$1,
17812
- _t4$1,
17813
- _t5$1,
17814
- _t6$1,
17815
- _t7$1,
18014
+ let _$3 = t => t,
18015
+ _t$3,
18016
+ _t2$3,
18017
+ _t3$2,
18018
+ _t4$2,
18019
+ _t5$2,
18020
+ _t6$2,
18021
+ _t7$2,
17816
18022
  _t8$1,
17817
18023
  _t9$1,
17818
18024
  _t10$1,
@@ -17907,37 +18113,37 @@ class SDTEquationHrFar2C extends SDTEquation {
17907
18113
  let c;
17908
18114
 
17909
18115
  if (this.numeric) {
17910
- hr = $(_t$2 || (_t$2 = _$2`
18116
+ hr = $(_t$3 || (_t$3 = _$3`
17911
18117
  <decidables-spinner class="hr bottom" ?disabled=${0} min="0" max="1" step=".001" .value="${0}" @input=${0}>
17912
18118
  <var>Hit Rate</var>
17913
18119
  </decidables-spinner>
17914
18120
  `), !this.interactive, this.hr, this.hrInput.bind(this));
17915
- far = $(_t2$2 || (_t2$2 = _$2`
18121
+ far = $(_t2$3 || (_t2$3 = _$3`
17916
18122
  <decidables-spinner class="far bottom" ?disabled=${0} min="0" max="1" step=".001" .value="${0}" @input=${0}>
17917
18123
  <var>False Alarm Rate</var>
17918
18124
  </decidables-spinner>
17919
18125
  `), !this.interactive, this.far, this.farInput.bind(this));
17920
- s = $(_t3$1 || (_t3$1 = _$2`
18126
+ s = $(_t3$2 || (_t3$2 = _$3`
17921
18127
  <decidables-spinner class="s bottom" ?disabled=${0} min="0" step=".001" .value="${0}" @input=${0}>
17922
18128
  <var class="math-var">σ</var>
17923
18129
  </decidables-spinner>
17924
18130
  `), !this.interactive, this.s, this.sInput.bind(this));
17925
- c = $(_t4$1 || (_t4$1 = _$2`
18131
+ c = $(_t4$2 || (_t4$2 = _$3`
17926
18132
  <decidables-spinner class="c bottom" disabled step=".001" .value="${0}">
17927
18133
  <var class="math-var">c</var>
17928
18134
  </decidables-spinner>
17929
18135
  `), +this.c.toFixed(3));
17930
18136
  } else {
17931
- hr = $(_t5$1 || (_t5$1 = _$2`<var class="hr">Hit Rate</var>`));
17932
- far = $(_t6$1 || (_t6$1 = _$2`<var class="far">False Alarm Rate</var>`));
17933
- s = $(_t7$1 || (_t7$1 = _$2`<var class="math-var s">σ</var>`));
17934
- c = $(_t8$1 || (_t8$1 = _$2`<var class="math-var c">c</var>`));
18137
+ hr = $(_t5$2 || (_t5$2 = _$3`<var class="hr">Hit Rate</var>`));
18138
+ far = $(_t6$2 || (_t6$2 = _$3`<var class="far">False Alarm Rate</var>`));
18139
+ s = $(_t7$2 || (_t7$2 = _$3`<var class="math-var s">σ</var>`));
18140
+ c = $(_t8$1 || (_t8$1 = _$3`<var class="math-var c">c</var>`));
17935
18141
  }
17936
18142
 
17937
18143
  let equation;
17938
18144
 
17939
18145
  if (this.unequal) {
17940
- equation = $(_t9$1 || (_t9$1 = _$2`
18146
+ equation = $(_t9$1 || (_t9$1 = _$3`
17941
18147
  <tr>
17942
18148
  <td rowspan="2">
17943
18149
  ${0}<span class="equals">=</span><span class="bracket tight">(</span>
@@ -17964,7 +18170,7 @@ class SDTEquationHrFar2C extends SDTEquation {
17964
18170
  </td>
17965
18171
  </tr>`), c, s, s, hr, far, s);
17966
18172
  } else {
17967
- equation = $(_t10$1 || (_t10$1 = _$2`
18173
+ equation = $(_t10$1 || (_t10$1 = _$3`
17968
18174
  <tr>
17969
18175
  <td rowspan="2">
17970
18176
  ${0}<span class="equals">=</span>
@@ -17980,7 +18186,7 @@ class SDTEquationHrFar2C extends SDTEquation {
17980
18186
  </tr>`), c, hr, far);
17981
18187
  }
17982
18188
 
17983
- return $(_t11$1 || (_t11$1 = _$2`
18189
+ return $(_t11$1 || (_t11$1 = _$3`
17984
18190
  <div class="holder">
17985
18191
  <table class="equation">
17986
18192
  <tbody>
@@ -17993,14 +18199,14 @@ class SDTEquationHrFar2C extends SDTEquation {
17993
18199
  }
17994
18200
  customElements.define('sdt-equation-hrfar2c', SDTEquationHrFar2C);
17995
18201
 
17996
- let _$1 = t => t,
17997
- _t$1,
17998
- _t2$1,
17999
- _t3,
18000
- _t4,
18001
- _t5,
18002
- _t6,
18003
- _t7,
18202
+ let _$2 = t => t,
18203
+ _t$2,
18204
+ _t2$2,
18205
+ _t3$1,
18206
+ _t4$1,
18207
+ _t5$1,
18208
+ _t6$1,
18209
+ _t7$1,
18004
18210
  _t8,
18005
18211
  _t9,
18006
18212
  _t10,
@@ -18095,37 +18301,37 @@ class SDTEquationHrFar2D extends SDTEquation {
18095
18301
  let d;
18096
18302
 
18097
18303
  if (this.numeric) {
18098
- hr = $(_t$1 || (_t$1 = _$1`
18304
+ hr = $(_t$2 || (_t$2 = _$2`
18099
18305
  <decidables-spinner class="hr bottom" ?disabled=${0} min="0" max="1" step=".001" .value="${0}" @input=${0}>
18100
18306
  <var>Hit Rate</var>
18101
18307
  </decidables-spinner>
18102
18308
  `), !this.interactive, this.hr, this.hrInput.bind(this));
18103
- far = $(_t2$1 || (_t2$1 = _$1`
18309
+ far = $(_t2$2 || (_t2$2 = _$2`
18104
18310
  <decidables-spinner class="far bottom" ?disabled=${0} min="0" max="1" step=".001" .value="${0}" @input=${0}>
18105
18311
  <var>False Alarm Rate</var>
18106
18312
  </decidables-spinner>
18107
18313
  `), !this.interactive, this.far, this.farInput.bind(this));
18108
- s = $(_t3 || (_t3 = _$1`
18314
+ s = $(_t3$1 || (_t3$1 = _$2`
18109
18315
  <decidables-spinner class="s bottom" ?disabled=${0} min="0" step=".001" .value="${0}" @input=${0}>
18110
18316
  <var class="math-var">σ</var>
18111
18317
  </decidables-spinner>
18112
18318
  `), !this.interactive, this.s, this.sInput.bind(this));
18113
- d = $(_t4 || (_t4 = _$1`
18319
+ d = $(_t4$1 || (_t4$1 = _$2`
18114
18320
  <decidables-spinner class="d bottom" disabled step=".001" .value="${0}">
18115
18321
  <var class="math-var">d′</var>
18116
18322
  </decidables-spinner>
18117
18323
  `), +this.d.toFixed(3));
18118
18324
  } else {
18119
- hr = $(_t5 || (_t5 = _$1`<var class="hr">Hit Rate</var>`));
18120
- far = $(_t6 || (_t6 = _$1`<var class="far">False Alarm Rate</var>`));
18121
- s = $(_t7 || (_t7 = _$1`<var class="math-var s">σ</var>`));
18122
- d = $(_t8 || (_t8 = _$1`<var class="math-var d">d′</var>`));
18325
+ hr = $(_t5$1 || (_t5$1 = _$2`<var class="hr">Hit Rate</var>`));
18326
+ far = $(_t6$1 || (_t6$1 = _$2`<var class="far">False Alarm Rate</var>`));
18327
+ s = $(_t7$1 || (_t7$1 = _$2`<var class="math-var s">σ</var>`));
18328
+ d = $(_t8 || (_t8 = _$2`<var class="math-var d">d′</var>`));
18123
18329
  }
18124
18330
 
18125
18331
  let equation;
18126
18332
 
18127
18333
  if (this.unequal) {
18128
- equation = $(_t9 || (_t9 = _$1`
18334
+ equation = $(_t9 || (_t9 = _$2`
18129
18335
  <tr>
18130
18336
  <td rowspan="2">
18131
18337
  ${0}<span class="equals">=</span><span class="bracket tight">(</span>
@@ -18143,7 +18349,7 @@ class SDTEquationHrFar2D extends SDTEquation {
18143
18349
  </td>
18144
18350
  </tr>`), d, s, s, hr, far);
18145
18351
  } else {
18146
- equation = $(_t10 || (_t10 = _$1`
18352
+ equation = $(_t10 || (_t10 = _$2`
18147
18353
  <tr>
18148
18354
  <td>
18149
18355
  ${0}<span class="equals">=</span><span class="tight"><var class="math-greek phi tight">Φ</var><sup class="exp">−1</sup></span><span class="paren tight">(</span>${0}<span class="paren tight">)</span><span class="minus">−</span><span class="tight"><var class="math-greek phi tight">Φ</var><sup class="exp">−1</sup></span><span class="paren tight">(</span>${0}<span class="paren tight">)</span>
@@ -18151,7 +18357,7 @@ class SDTEquationHrFar2D extends SDTEquation {
18151
18357
  </tr>`), d, hr, far);
18152
18358
  }
18153
18359
 
18154
- return $(_t11 || (_t11 = _$1`
18360
+ return $(_t11 || (_t11 = _$2`
18155
18361
  <div class="holder">
18156
18362
  <table class="equation">
18157
18363
  <tbody>
@@ -18164,6 +18370,131 @@ class SDTEquationHrFar2D extends SDTEquation {
18164
18370
  }
18165
18371
  customElements.define('sdt-equation-hrfar2d', SDTEquationHrFar2D);
18166
18372
 
18373
+ let _$1 = t => t,
18374
+ _t$1,
18375
+ _t2$1,
18376
+ _t3,
18377
+ _t4,
18378
+ _t5,
18379
+ _t6,
18380
+ _t7;
18381
+ /*
18382
+ SDTEquationMCr2Fomr element
18383
+ <sdt-equation-mcr2fomr>
18384
+
18385
+ Attributes:
18386
+ Hits; Misses; Hit Rate;
18387
+ */
18388
+
18389
+ class SDTEquationMCr2Fomr extends SDTEquation {
18390
+ static get properties() {
18391
+ return {
18392
+ m: {
18393
+ attribute: 'misses',
18394
+ type: Number,
18395
+ reflect: true
18396
+ },
18397
+ cr: {
18398
+ attribute: 'correct-rejections',
18399
+ type: Number,
18400
+ reflect: true
18401
+ },
18402
+ fomr: {
18403
+ attribute: false,
18404
+ type: Number,
18405
+ reflect: false
18406
+ }
18407
+ };
18408
+ }
18409
+
18410
+ constructor() {
18411
+ super();
18412
+ this.m = 0;
18413
+ this.cr = 0;
18414
+ this.alignState();
18415
+ }
18416
+
18417
+ alignState() {
18418
+ this.fomr = SDTMath.mCr2Fomr(this.m, this.cr);
18419
+ }
18420
+
18421
+ sendEvent() {
18422
+ this.dispatchEvent(new CustomEvent('sdt-equation-mcr2fomr-change', {
18423
+ detail: {
18424
+ m: this.m,
18425
+ cr: this.cr,
18426
+ fomr: this.fomr
18427
+ },
18428
+ bubbles: true
18429
+ }));
18430
+ }
18431
+
18432
+ mInput(event) {
18433
+ this.m = parseInt(event.target.value, 10);
18434
+ this.alignState();
18435
+ this.sendEvent();
18436
+ }
18437
+
18438
+ crInput(event) {
18439
+ this.cr = parseInt(event.target.value, 10);
18440
+ this.alignState();
18441
+ this.sendEvent();
18442
+ }
18443
+
18444
+ render() {
18445
+ this.alignState();
18446
+ let m;
18447
+ let cr;
18448
+ let fomr;
18449
+
18450
+ if (this.numeric) {
18451
+ m = $(_t$1 || (_t$1 = _$1`
18452
+ <decidables-spinner class="m" ?disabled=${0} min="0" .value="${0}" @input=${0}>
18453
+ <var>Misses</var>
18454
+ </decidables-spinner>
18455
+ `), !this.interactive, this.m, this.mInput.bind(this));
18456
+ cr = $(_t2$1 || (_t2$1 = _$1`
18457
+ <decidables-spinner class="cr" ?disabled=${0} min="0" .value="${0}" @input=${0}>
18458
+ <var>Correct Rejections</var>
18459
+ </decidables-spinner>
18460
+ `), !this.interactive, this.cr, this.crInput.bind(this));
18461
+ fomr = $(_t3 || (_t3 = _$1`
18462
+ <decidables-spinner class="fomr" disabled min="0" max="1" step=".001" .value="${0}">
18463
+ <var>False Omission Rate</var>
18464
+ </decidables-spinner>
18465
+ `), +this.fomr.toFixed(3));
18466
+ } else {
18467
+ m = $(_t4 || (_t4 = _$1`<var class="m">Misses</var>`));
18468
+ cr = $(_t5 || (_t5 = _$1`<var class="cr">Correct Rejections</var>`));
18469
+ fomr = $(_t6 || (_t6 = _$1`<var class="fomr">False Omission Rate</var>`));
18470
+ }
18471
+
18472
+ return $(_t7 || (_t7 = _$1`
18473
+ <div class="holder">
18474
+ <table class="equation">
18475
+ <tbody>
18476
+ <tr>
18477
+ <td rowspan="2">
18478
+ ${0}<span class="equals">=</span>
18479
+ </td>
18480
+ <td class="underline">
18481
+ ${0}
18482
+ </td>
18483
+ </tr>
18484
+ <tr>
18485
+ <td>
18486
+ ${0}<span class="plus">+</span>${0}
18487
+ </td>
18488
+ </tr>
18489
+ </tbody>
18490
+ </table>
18491
+ </div>
18492
+ `), fomr, m, m, cr);
18493
+ }
18494
+
18495
+ }
18496
+ customElements.define('sdt-equation-mcr2fomr', SDTEquationMCr2Fomr);
18497
+
18167
18498
  let _ = t => t,
18168
18499
  _t,
18169
18500
  _t2;
@@ -18222,7 +18553,7 @@ class SDTExample extends DetectableElement {
18222
18553
  }
18223
18554
 
18224
18555
  render() {
18225
- // eslint-disable-line class-methods-use-this
18556
+ /* eslint-disable-line class-methods-use-this */
18226
18557
  return $(_t2 || (_t2 = _`
18227
18558
  <div class="holder">
18228
18559
  <div class="body">
@@ -18870,6 +19201,81 @@ class SDTExampleModel extends SDTExample {
18870
19201
  }
18871
19202
  customElements.define('sdt-example-model', SDTExampleModel);
18872
19203
 
19204
+ /*
19205
+ SDTExampleMulti element
19206
+ <sdt-example-multi>
19207
+ */
19208
+
19209
+ class SDTExampleMultiple extends SDTExample {
19210
+ static get properties() {
19211
+ return {
19212
+ variable: {
19213
+ attribute: 'variable',
19214
+ type: String,
19215
+ reflect: true
19216
+ },
19217
+ values: {
19218
+ attribute: 'values',
19219
+ converter: DecidablesConverterArray,
19220
+ reflect: true
19221
+ }
19222
+ };
19223
+ }
19224
+
19225
+ constructor() {
19226
+ super();
19227
+ this.variables = ['d', 'c'];
19228
+ this.variable = 'd';
19229
+ this.values = [0, 1];
19230
+ }
19231
+
19232
+ firstUpdated() {
19233
+ this.detectableControl = this.querySelector('detectable-control');
19234
+ this.rocSpace = this.querySelector('roc-space');
19235
+ this.sdtModel = this.querySelector('sdt-model');
19236
+
19237
+ if (this.detectableControl) {
19238
+ this.detectableControl.addEventListener('detectable-control-z-roc', event => {
19239
+ this.rocSpace.zRoc = event.detail.zRoc;
19240
+ });
19241
+ }
19242
+
19243
+ if (this.rocSpace) {
19244
+ this.rocSpace.setWithSDT(1, 0, 'default', '', 1);
19245
+
19246
+ if (this.variable === 'd') {
19247
+ this.values.forEach((d, index) => {
19248
+ this.rocSpace.setWithSDT(d, this.sdtModel.c, `point${index}`, index + 1, this.sdtModel.s);
19249
+ });
19250
+ } else if (this.variable === 'c') {
19251
+ this.values.forEach((c, index) => {
19252
+ this.rocSpace.setWithSDT(this.sdtModel.d, c, `point${index}`, index + 1, this.sdtModel.s);
19253
+ });
19254
+ }
19255
+ }
19256
+
19257
+ if (this.sdtModel) {
19258
+ this.sdtModel.addEventListener('sdt-model-change', event => {
19259
+ if (this.rocSpace) {
19260
+ this.rocSpace.setWithSDT(event.detail.d, event.detail.c, 'default', '', event.detail.s);
19261
+
19262
+ if (this.variable === 'd') {
19263
+ this.values.forEach((d, index) => {
19264
+ this.rocSpace.setWithSDT(d, event.detail.c, `point${index}`, index + 1, event.detail.s);
19265
+ });
19266
+ } else if (this.variable === 'c') {
19267
+ this.values.forEach((c, index) => {
19268
+ this.rocSpace.setWithSDT(event.detail.d, c, `point${index}`, index + 1, event.detail.s);
19269
+ });
19270
+ }
19271
+ }
19272
+ });
19273
+ }
19274
+ }
19275
+
19276
+ }
19277
+ customElements.define('sdt-example-multiple', SDTExampleMultiple);
19278
+
18873
19279
  /*
18874
19280
  SDTExampleUnequal element
18875
19281
  <sdt-example-unequal>
@@ -18889,15 +19295,13 @@ class SDTExampleUnequal extends SDTExample {
18889
19295
 
18890
19296
  if (this.rocSpace) {
18891
19297
  this.rocSpace.setWithSDT(1, 0, 'default', '', 1); // Set 'default' to equal variance for contours
19298
+
19299
+ range(-1.5, 1.6, 0.5).forEach((c, index) => {
19300
+ this.rocSpace.setWithSDT(this.sdtModel.d, c, `point${index}`, '', this.sdtModel.s);
19301
+ });
18892
19302
  }
18893
19303
 
18894
19304
  if (this.sdtModel) {
18895
- if (this.rocSpace) {
18896
- range(-1.5, 1.6, 0.5).forEach((c, index) => {
18897
- this.rocSpace.setWithSDT(this.sdtModel.d, c, `point${index}`, '', this.sdtModel.s);
18898
- });
18899
- }
18900
-
18901
19305
  this.sdtModel.addEventListener('sdt-model-change', event => {
18902
19306
  if (this.rocSpace) {
18903
19307
  range(-1.5, 1.6, 0.5).forEach((c, index) => {
@@ -18911,5 +19315,5 @@ class SDTExampleUnequal extends SDTExample {
18911
19315
  }
18912
19316
  customElements.define('sdt-example-unequal', SDTExampleUnequal);
18913
19317
 
18914
- export { DetectableControl, DetectableElement, DetectableResponse, DetectableTable, RDKTask, ROCSpace, SDTEquationDC2Far, SDTEquationDC2Hr, SDTEquationFaCr2Far, SDTEquationHM2Hr, SDTEquationHMFaCr2Acc, SDTEquationHrFar2C, SDTEquationHrFar2D, SDTExampleDoubleInteractive, SDTExampleHuman, SDTExampleInteractive, SDTExampleModel, SDTExampleUnequal, SDTModel };
19318
+ export { DetectableControl, DetectableElement, DetectableResponse, DetectableTable, RDKTask, ROCSpace, SDTEquationDC2Far, SDTEquationDC2Hr, SDTEquationFaCr2Far, SDTEquationHFa2Ppv, SDTEquationHM2Hr, SDTEquationHMFaCr2Acc, SDTEquationHrFar2C, SDTEquationHrFar2D, SDTEquationMCr2Fomr, SDTExampleDoubleInteractive, SDTExampleHuman, SDTExampleInteractive, SDTExampleModel, SDTExampleMultiple, SDTExampleUnequal, SDTModel };
18915
19319
  //# sourceMappingURL=detectableElements.esm.js.map