@zajno/common 1.3.2 → 1.3.3

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.
Files changed (73) hide show
  1. package/.github/workflows/CI.yml +8 -0
  2. package/coverage/clover.xml +132 -125
  3. package/coverage/coverage-final.json +39 -39
  4. package/coverage/lcov-report/index.html +25 -25
  5. package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
  6. package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
  7. package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
  8. package/coverage/lcov-report/src/async/index.html +1 -1
  9. package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
  10. package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
  11. package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
  12. package/coverage/lcov-report/src/dates/format.ts.html +1 -1
  13. package/coverage/lcov-report/src/dates/index.html +1 -1
  14. package/coverage/lcov-report/src/dates/index.ts.html +1 -1
  15. package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
  16. package/coverage/lcov-report/src/dates/period.ts.html +1 -1
  17. package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
  18. package/coverage/lcov-report/src/dates/types.ts.html +1 -1
  19. package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
  20. package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
  21. package/coverage/lcov-report/src/event.ts.html +1 -1
  22. package/coverage/lcov-report/src/index.html +1 -1
  23. package/coverage/lcov-report/src/lazy.light.ts.html +3 -3
  24. package/coverage/lcov-report/src/logger/batch.ts.html +1 -1
  25. package/coverage/lcov-report/src/logger/console.ts.html +1 -1
  26. package/coverage/lcov-report/src/logger/index.html +1 -1
  27. package/coverage/lcov-report/src/logger/index.ts.html +1 -1
  28. package/coverage/lcov-report/src/logger/named.ts.html +1 -1
  29. package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
  30. package/coverage/lcov-report/src/math/arrays.ts.html +32 -8
  31. package/coverage/lcov-report/src/math/calc.ts.html +1 -1
  32. package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
  33. package/coverage/lcov-report/src/math/index.html +11 -11
  34. package/coverage/lcov-report/src/math/index.ts.html +1 -1
  35. package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
  36. package/coverage/lcov-report/src/types.ts.html +4 -4
  37. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
  38. package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
  39. package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
  40. package/coverage/lcov-report/src/validation/index.html +1 -1
  41. package/coverage/lcov-report/src/validation/index.ts.html +1 -1
  42. package/coverage/lcov-report/src/validation/types.ts.html +1 -1
  43. package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
  44. package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
  45. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +6 -6
  46. package/coverage/lcov-report/src/viewModels/LabeledFlagModel.ts.html +26 -17
  47. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +104 -95
  48. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +1 -1
  49. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +1 -1
  50. package/coverage/lcov-report/src/viewModels/SelectViewModel.ts.html +14 -17
  51. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +12 -12
  52. package/coverage/lcov-report/src/viewModels/index.html +21 -21
  53. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
  54. package/coverage/lcov-report/transitionObserver.ts.html +77 -41
  55. package/coverage/lcov.info +185 -171
  56. package/lib/math/arrays.d.ts +2 -1
  57. package/lib/math/arrays.d.ts.map +1 -1
  58. package/lib/math/arrays.js +9 -1
  59. package/lib/math/arrays.js.map +1 -1
  60. package/lib/viewModels/MultiSelectModel.d.ts +2 -0
  61. package/lib/viewModels/MultiSelectModel.d.ts.map +1 -1
  62. package/lib/viewModels/MultiSelectModel.js +3 -1
  63. package/lib/viewModels/MultiSelectModel.js.map +1 -1
  64. package/package.json +1 -1
  65. package/src/math/arrays.ts +9 -1
  66. package/src/viewModels/MultiSelectModel.ts +4 -1
  67. package/src/viewModels/__tests__/multiSelect.test.ts +127 -12
  68. package/yarn-error.log +3709 -0
  69. package/coverage/lcov-report/NumberModel.ts.html +0 -188
  70. package/coverage/lcov-report/arrays.ts.html +0 -602
  71. package/coverage/lcov-report/calc.ts.html +0 -278
  72. package/coverage/lcov-report/enumHelper.ts.html +0 -449
  73. package/coverage/lcov-report/src/viewModels/labeled.ts.html +0 -128
@@ -448,7 +448,7 @@ export class SelectString<T extends string = string> extends Select<T&g
448
448
  <div class='footer quiet pad2 space-top1 center small'>
449
449
  Code coverage generated by
450
450
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
451
- at Mon Nov 29 2021 07:49:53 GMT+0000 (Coordinated Universal Time)
451
+ at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
452
452
  </div>
453
453
  </div>
454
454
  <script src="../../prettify.js"></script>
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>60/60</span>
28
+ <span class='fraction'>58/58</span>
29
29
  </div>
30
30
 
31
31
 
@@ -39,7 +39,7 @@
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>25/25</span>
42
+ <span class='fraction'>24/24</span>
43
43
  </div>
44
44
 
45
45
 
@@ -175,8 +175,7 @@
175
175
  <a name='L116'></a><a href='#L116'>116</a>
176
176
  <a name='L117'></a><a href='#L117'>117</a>
177
177
  <a name='L118'></a><a href='#L118'>118</a>
178
- <a name='L119'></a><a href='#L119'>119</a>
179
- <a name='L120'></a><a href='#L120'>120</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
178
+ <a name='L119'></a><a href='#L119'>119</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
180
179
  <span class="cline-any cline-yes">1x</span>
181
180
  <span class="cline-any cline-yes">1x</span>
182
181
  <span class="cline-any cline-yes">1x</span>
@@ -252,21 +251,20 @@
252
251
  <span class="cline-any cline-neutral">&nbsp;</span>
253
252
  <span class="cline-any cline-neutral">&nbsp;</span>
254
253
  <span class="cline-any cline-yes">17x</span>
255
- <span class="cline-any cline-yes">4x</span>
256
- <span class="cline-any cline-neutral">&nbsp;</span>
254
+ <span class="cline-any cline-yes">5x</span>
257
255
  <span class="cline-any cline-neutral">&nbsp;</span>
258
- <span class="cline-any cline-yes">13x</span>
259
256
  <span class="cline-any cline-neutral">&nbsp;</span>
257
+ <span class="cline-any cline-yes">12x</span>
260
258
  <span class="cline-any cline-neutral">&nbsp;</span>
261
- <span class="cline-any cline-yes">13x</span>
262
- <span class="cline-any cline-yes">13x</span>
263
259
  <span class="cline-any cline-neutral">&nbsp;</span>
264
- <span class="cline-any cline-yes">13x</span>
265
- <span class="cline-any cline-yes">36x</span>
260
+ <span class="cline-any cline-yes">12x</span>
261
+ <span class="cline-any cline-yes">12x</span>
266
262
  <span class="cline-any cline-neutral">&nbsp;</span>
263
+ <span class="cline-any cline-yes">12x</span>
264
+ <span class="cline-any cline-yes">33x</span>
267
265
  <span class="cline-any cline-neutral">&nbsp;</span>
268
- <span class="cline-any cline-yes">13x</span>
269
266
  <span class="cline-any cline-neutral">&nbsp;</span>
267
+ <span class="cline-any cline-yes">12x</span>
270
268
  <span class="cline-any cline-neutral">&nbsp;</span>
271
269
  <span class="cline-any cline-neutral">&nbsp;</span>
272
270
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -275,7 +273,7 @@
275
273
  <span class="cline-any cline-neutral">&nbsp;</span>
276
274
  <span class="cline-any cline-neutral">&nbsp;</span>
277
275
  <span class="cline-any cline-neutral">&nbsp;</span>
278
- <span class="cline-any cline-yes">9x</span>
276
+ <span class="cline-any cline-yes">3x</span>
279
277
  <span class="cline-any cline-yes">3x</span>
280
278
  <span class="cline-any cline-neutral">&nbsp;</span>
281
279
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -296,7 +294,7 @@
296
294
  <span class="cline-any cline-neutral">&nbsp;</span>
297
295
  <span class="cline-any cline-neutral">&nbsp;</span>
298
296
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { createLazy } from '../lazy.light';
299
- import { observable, computed, makeObservable, reaction, action } from 'mobx';
297
+ import { observable, computed, makeObservable, reaction } from 'mobx';
300
298
  import { FlagModel } from './FlagModel';
301
299
  import { ILabeledFlagModel, LabeledFlagModel } from './LabeledFlagModel';
302
300
  &nbsp;
@@ -388,13 +386,12 @@ export class Select&lt;T = any&gt; {
388
386
  }
389
387
  }
390
388
  &nbsp;
391
- @action
392
389
  reset = () =&gt; {
393
390
  this.index = 0;
394
391
  };
395
392
  &nbsp;
396
393
  private createFlags() {
397
- const flags = this._items.map(i =&gt; new LabeledFlagModel(() =&gt; this._accessor(i)));
394
+ const flags = this._items.map(i =&gt; new LabeledFlagModel(this._accessor(i)));
398
395
  flags.forEach((f, i) =&gt; f.value = i === this.index);
399
396
  &nbsp;
400
397
  // react on every flag is changed directly
@@ -421,7 +418,7 @@ export class SelectString&lt;T extends string = string&gt; extends Select&lt;T&g
421
418
  <div class='footer quiet pad2 space-top1 center small'>
422
419
  Code coverage generated by
423
420
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
424
- at Sat Nov 20 2021 11:35:53 GMT+0000 (Coordinated Universal Time)
421
+ at Fri Nov 19 2021 19:36:26 GMT+0000 (Coordinated Universal Time)
425
422
  </div>
426
423
  </div>
427
424
  <script src="../../prettify.js"></script>
@@ -155,17 +155,17 @@
155
155
  <span class="cline-any cline-yes">2x</span>
156
156
  <span class="cline-any cline-yes">2x</span>
157
157
  <span class="cline-any cline-neutral">&nbsp;</span>
158
- <span class="cline-any cline-yes">8x</span>
159
- <span class="cline-any cline-yes">8x</span>
158
+ <span class="cline-any cline-yes">11x</span>
159
+ <span class="cline-any cline-yes">11x</span>
160
160
  <span class="cline-any cline-neutral">&nbsp;</span>
161
161
  <span class="cline-any cline-neutral">&nbsp;</span>
162
- <span class="cline-any cline-yes">8x</span>
162
+ <span class="cline-any cline-yes">11x</span>
163
163
  <span class="cline-any cline-neutral">&nbsp;</span>
164
- <span class="cline-any cline-yes">8x</span>
164
+ <span class="cline-any cline-yes">11x</span>
165
165
  <span class="cline-any cline-neutral">&nbsp;</span>
166
166
  <span class="cline-any cline-neutral">&nbsp;</span>
167
- <span class="cline-any cline-yes">8x</span>
168
- <span class="cline-any cline-yes">8x</span>
167
+ <span class="cline-any cline-yes">11x</span>
168
+ <span class="cline-any cline-yes">11x</span>
169
169
  <span class="cline-any cline-neutral">&nbsp;</span>
170
170
  <span class="cline-any cline-neutral">&nbsp;</span>
171
171
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -175,9 +175,9 @@
175
175
  <span class="cline-any cline-yes">1x</span>
176
176
  <span class="cline-any cline-neutral">&nbsp;</span>
177
177
  <span class="cline-any cline-neutral">&nbsp;</span>
178
- <span class="cline-any cline-yes">8x</span>
179
- <span class="cline-any cline-yes">8x</span>
180
- <span class="cline-any cline-yes">8x</span>
178
+ <span class="cline-any cline-yes">11x</span>
179
+ <span class="cline-any cline-yes">11x</span>
180
+ <span class="cline-any cline-yes">11x</span>
181
181
  <span class="cline-any cline-neutral">&nbsp;</span>
182
182
  <span class="cline-any cline-neutral">&nbsp;</span>
183
183
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -210,8 +210,8 @@
210
210
  <span class="cline-any cline-neutral">&nbsp;</span>
211
211
  <span class="cline-any cline-neutral">&nbsp;</span>
212
212
  <span class="cline-any cline-yes">2x</span>
213
- <span class="cline-any cline-yes">1x</span>
214
- <span class="cline-any cline-yes">1x</span>
213
+ <span class="cline-any cline-yes">2x</span>
214
+ <span class="cline-any cline-yes">2x</span>
215
215
  <span class="cline-any cline-neutral">&nbsp;</span>
216
216
  <span class="cline-any cline-neutral">&nbsp;</span>
217
217
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -313,7 +313,7 @@ export abstract class ValidatableModel&lt;T = string&gt; {
313
313
  <div class='footer quiet pad2 space-top1 center small'>
314
314
  Code coverage generated by
315
315
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
316
- at Mon Nov 29 2021 07:49:53 GMT+0000 (Coordinated Universal Time)
316
+ at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
317
317
  </div>
318
318
  </div>
319
319
  <script src="../../prettify.js"></script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">69.26% </span>
26
+ <span class="strong">80.84% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>178/257</span>
28
+ <span class='fraction'>211/261</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">50.88% </span>
33
+ <span class="strong">61.4% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>29/57</span>
35
+ <span class='fraction'>35/57</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">49% </span>
40
+ <span class="strong">67.65% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>49/100</span>
42
+ <span class='fraction'>69/102</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">71.23% </span>
47
+ <span class="strong">81.45% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>156/219</span>
49
+ <span class='fraction'>180/221</span>
50
50
  </div>
51
51
 
52
52
 
@@ -55,7 +55,7 @@
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
57
  </div>
58
- <div class='status-line medium'></div>
58
+ <div class='status-line high'></div>
59
59
  <div class="pad1">
60
60
  <table class="coverage-summary">
61
61
  <thead>
@@ -88,18 +88,18 @@
88
88
  </tr>
89
89
 
90
90
  <tr>
91
- <td class="file low" data-value="MultiSelectModel.ts"><a href="MultiSelectModel.ts.html">MultiSelectModel.ts</a></td>
92
- <td data-value="47.47" class="pic low">
93
- <div class="chart"><div class="cover-fill" style="width: 47%"></div><div class="cover-empty" style="width: 53%"></div></div>
91
+ <td class="file medium" data-value="MultiSelectModel.ts"><a href="MultiSelectModel.ts.html">MultiSelectModel.ts</a></td>
92
+ <td data-value="77.67" class="pic medium">
93
+ <div class="chart"><div class="cover-fill" style="width: 77%"></div><div class="cover-empty" style="width: 23%"></div></div>
94
94
  </td>
95
- <td data-value="47.47" class="pct low">47.47%</td>
96
- <td data-value="99" class="abs low">47/99</td>
97
- <td data-value="6.25" class="pct low">6.25%</td>
98
- <td data-value="16" class="abs low">1/16</td>
99
- <td data-value="20" class="pct low">20%</td>
100
- <td data-value="40" class="abs low">8/40</td>
101
- <td data-value="49.38" class="pct low">49.38%</td>
102
- <td data-value="81" class="abs low">40/81</td>
95
+ <td data-value="77.67" class="pct medium">77.67%</td>
96
+ <td data-value="103" class="abs medium">80/103</td>
97
+ <td data-value="43.75" class="pct low">43.75%</td>
98
+ <td data-value="16" class="abs low">7/16</td>
99
+ <td data-value="66.67" class="pct medium">66.67%</td>
100
+ <td data-value="42" class="abs medium">28/42</td>
101
+ <td data-value="77.11" class="pct medium">77.11%</td>
102
+ <td data-value="83" class="abs medium">64/83</td>
103
103
  </tr>
104
104
 
105
105
  <tr>
@@ -170,7 +170,7 @@
170
170
  <div class='footer quiet pad2 space-top1 center small'>
171
171
  Code coverage generated by
172
172
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
173
- at Mon Nov 29 2021 07:49:53 GMT+0000 (Coordinated Universal Time)
173
+ at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
174
174
  </div>
175
175
  </div>
176
176
  <script src="../../prettify.js"></script>
@@ -211,7 +211,7 @@ export function mixinLabel&lt;T, TModel extends IValueModel&lt;T&gt;, TLabel = s
211
211
  <div class='footer quiet pad2 space-top1 center small'>
212
212
  Code coverage generated by
213
213
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
214
- at Mon Nov 29 2021 07:49:53 GMT+0000 (Coordinated Universal Time)
214
+ at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
215
215
  </div>
216
216
  </div>
217
217
  <script src="../../prettify.js"></script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">93.06% </span>
26
+ <span class="strong">91.25% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>67/72</span>
28
+ <span class='fraction'>73/80</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">87.88% </span>
33
+ <span class="strong">83.78% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>29/33</span>
35
+ <span class='fraction'>31/37</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">84.21% </span>
40
+ <span class="strong">85.71% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>16/19</span>
42
+ <span class='fraction'>18/21</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">92.96% </span>
47
+ <span class="strong">91.14% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>66/71</span>
49
+ <span class='fraction'>72/79</span>
50
50
  </div>
51
51
 
52
52
 
@@ -209,7 +209,19 @@
209
209
  <a name='L150'></a><a href='#L150'>150</a>
210
210
  <a name='L151'></a><a href='#L151'>151</a>
211
211
  <a name='L152'></a><a href='#L152'>152</a>
212
- <a name='L153'></a><a href='#L153'>153</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
212
+ <a name='L153'></a><a href='#L153'>153</a>
213
+ <a name='L154'></a><a href='#L154'>154</a>
214
+ <a name='L155'></a><a href='#L155'>155</a>
215
+ <a name='L156'></a><a href='#L156'>156</a>
216
+ <a name='L157'></a><a href='#L157'>157</a>
217
+ <a name='L158'></a><a href='#L158'>158</a>
218
+ <a name='L159'></a><a href='#L159'>159</a>
219
+ <a name='L160'></a><a href='#L160'>160</a>
220
+ <a name='L161'></a><a href='#L161'>161</a>
221
+ <a name='L162'></a><a href='#L162'>162</a>
222
+ <a name='L163'></a><a href='#L163'>163</a>
223
+ <a name='L164'></a><a href='#L164'>164</a>
224
+ <a name='L165'></a><a href='#L165'>165</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
213
225
  <span class="cline-any cline-yes">1x</span>
214
226
  <span class="cline-any cline-yes">1x</span>
215
227
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -242,6 +254,9 @@
242
254
  <span class="cline-any cline-yes">1x</span>
243
255
  <span class="cline-any cline-yes">3x</span>
244
256
  <span class="cline-any cline-neutral">&nbsp;</span>
257
+ <span class="cline-any cline-yes">3x</span>
258
+ <span class="cline-any cline-yes">19x</span>
259
+ <span class="cline-any cline-neutral">&nbsp;</span>
245
260
  <span class="cline-any cline-neutral">&nbsp;</span>
246
261
  <span class="cline-any cline-yes">7x</span>
247
262
  <span class="cline-any cline-yes">7x</span>
@@ -261,8 +276,11 @@
261
276
  <span class="cline-any cline-neutral">&nbsp;</span>
262
277
  <span class="cline-any cline-neutral">&nbsp;</span>
263
278
  <span class="cline-any cline-neutral">&nbsp;</span>
264
- <span class="cline-any cline-yes">9x</span>
265
- <span class="cline-any cline-yes">9x</span>
279
+ <span class="cline-any cline-yes">7x</span>
280
+ <span class="cline-any cline-no">&nbsp;</span>
281
+ <span class="cline-any cline-neutral">&nbsp;</span>
282
+ <span class="cline-any cline-yes">7x</span>
283
+ <span class="cline-any cline-yes">7x</span>
266
284
  <span class="cline-any cline-neutral">&nbsp;</span>
267
285
  <span class="cline-any cline-neutral">&nbsp;</span>
268
286
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -287,13 +305,18 @@
287
305
  <span class="cline-any cline-neutral">&nbsp;</span>
288
306
  <span class="cline-any cline-neutral">&nbsp;</span>
289
307
  <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-yes">2x</span>
291
- <span class="cline-any cline-yes">2x</span>
292
- <span class="cline-any cline-yes">2x</span>
293
- <span class="cline-any cline-yes">2x</span>
308
+ <span class="cline-any cline-yes">3x</span>
309
+ <span class="cline-any cline-yes">3x</span>
310
+ <span class="cline-any cline-no">&nbsp;</span>
294
311
  <span class="cline-any cline-neutral">&nbsp;</span>
295
312
  <span class="cline-any cline-neutral">&nbsp;</span>
296
- <span class="cline-any cline-yes">2x</span>
313
+ <span class="cline-any cline-yes">3x</span>
314
+ <span class="cline-any cline-yes">3x</span>
315
+ <span class="cline-any cline-yes">3x</span>
316
+ <span class="cline-any cline-neutral">&nbsp;</span>
317
+ <span class="cline-any cline-yes">3x</span>
318
+ <span class="cline-any cline-neutral">&nbsp;</span>
319
+ <span class="cline-any cline-yes">3x</span>
297
320
  <span class="cline-any cline-neutral">&nbsp;</span>
298
321
  <span class="cline-any cline-neutral">&nbsp;</span>
299
322
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -311,6 +334,7 @@
311
334
  <span class="cline-any cline-yes">12x</span>
312
335
  <span class="cline-any cline-yes">12x</span>
313
336
  <span class="cline-any cline-yes">5x</span>
337
+ <span class="cline-any cline-yes">5x</span>
314
338
  <span class="cline-any cline-neutral">&nbsp;</span>
315
339
  <span class="cline-any cline-yes">12x</span>
316
340
  <span class="cline-any cline-yes">1x</span>
@@ -318,14 +342,14 @@
318
342
  <span class="cline-any cline-neutral">&nbsp;</span>
319
343
  <span class="cline-any cline-neutral">&nbsp;</span>
320
344
  <span class="cline-any cline-yes">7x</span>
321
- <span class="cline-any cline-yes">17x</span>
345
+ <span class="cline-any cline-yes">19x</span>
322
346
  <span class="cline-any cline-neutral">&nbsp;</span>
323
- <span class="cline-any cline-yes">17x</span>
347
+ <span class="cline-any cline-yes">19x</span>
324
348
  <span class="cline-any cline-neutral">&nbsp;</span>
325
349
  <span class="cline-any cline-yes">4x</span>
326
- <span class="cline-any cline-yes">13x</span>
350
+ <span class="cline-any cline-yes">15x</span>
327
351
  <span class="cline-any cline-neutral">&nbsp;</span>
328
- <span class="cline-any cline-yes">9x</span>
352
+ <span class="cline-any cline-yes">11x</span>
329
353
  <span class="cline-any cline-neutral">&nbsp;</span>
330
354
  <span class="cline-any cline-neutral">&nbsp;</span>
331
355
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -333,31 +357,31 @@
333
357
  <span class="cline-any cline-yes">4x</span>
334
358
  <span class="cline-any cline-neutral">&nbsp;</span>
335
359
  <span class="cline-any cline-neutral">&nbsp;</span>
336
- <span class="cline-any cline-yes">17x</span>
360
+ <span class="cline-any cline-yes">19x</span>
337
361
  <span class="cline-any cline-neutral">&nbsp;</span>
338
- <span class="cline-any cline-yes">17x</span>
362
+ <span class="cline-any cline-yes">19x</span>
339
363
  <span class="cline-any cline-neutral">&nbsp;</span>
340
- <span class="cline-any cline-yes">17x</span>
341
- <span class="cline-any cline-yes">10x</span>
364
+ <span class="cline-any cline-yes">19x</span>
365
+ <span class="cline-any cline-yes">11x</span>
342
366
  <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-yes">10x</span>
344
- <span class="cline-any cline-yes">10x</span>
367
+ <span class="cline-any cline-yes">11x</span>
368
+ <span class="cline-any cline-yes">11x</span>
345
369
  <span class="cline-any cline-neutral">&nbsp;</span>
346
370
  <span class="cline-any cline-neutral">&nbsp;</span>
347
- <span class="cline-any cline-yes">10x</span>
371
+ <span class="cline-any cline-yes">11x</span>
348
372
  <span class="cline-any cline-yes">1x</span>
349
373
  <span class="cline-any cline-neutral">&nbsp;</span>
350
374
  <span class="cline-any cline-neutral">&nbsp;</span>
351
375
  <span class="cline-any cline-neutral">&nbsp;</span>
352
- <span class="cline-any cline-yes">17x</span>
376
+ <span class="cline-any cline-yes">19x</span>
353
377
  <span class="cline-any cline-neutral">&nbsp;</span>
354
378
  <span class="cline-any cline-neutral">&nbsp;</span>
355
379
  <span class="cline-any cline-neutral">&nbsp;</span>
356
- <span class="cline-any cline-yes">2x</span>
357
- <span class="cline-any cline-yes">2x</span>
358
- <span class="cline-any cline-yes">2x</span>
359
- <span class="cline-any cline-yes">2x</span>
360
- <span class="cline-any cline-yes">2x</span>
380
+ <span class="cline-any cline-yes">3x</span>
381
+ <span class="cline-any cline-yes">3x</span>
382
+ <span class="cline-any cline-yes">3x</span>
383
+ <span class="cline-any cline-yes">3x</span>
384
+ <span class="cline-any cline-yes">3x</span>
361
385
  <span class="cline-any cline-neutral">&nbsp;</span>
362
386
  <span class="cline-any cline-neutral">&nbsp;</span>
363
387
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -380,8 +404,8 @@ export class TransitionObserver&lt;T&gt; implements IDisposable {
380
404
  private _cb: (v: T) =&gt; any;
381
405
  private _fireOnce = false;
382
406
  &nbsp;
383
- private _promise: Promise&lt;void&gt; = null;
384
- private _promiseReject: (err: Error) =&gt; any = null;
407
+ private _promise: Promise&lt;T&gt; = null;
408
+ private _promiseReject: (err?: any) =&gt; any = null;
385
409
  &nbsp;
386
410
  private logger: ILogger = createLogger('', true);
387
411
  &nbsp;
@@ -393,6 +417,9 @@ export class TransitionObserver&lt;T&gt; implements IDisposable {
393
417
  &nbsp;
394
418
  public get event(): IEvent&lt;T&gt; { return this._event; }
395
419
  public get currentValue() { return this._prev; }
420
+ &nbsp;
421
+ public get isObserving() { return this._disposer != null; }
422
+ private get isPromising() { return this._promiseReject != null; }
396
423
  &nbsp;
397
424
  observe(getter: () =&gt; T) {
398
425
  this.dispose();
@@ -413,6 +440,9 @@ export class TransitionObserver&lt;T&gt; implements IDisposable {
413
440
  }
414
441
  &nbsp;
415
442
  cb(cb: (v: T) =&gt; any) {
443
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (this.isPromising) {
444
+ <span class="cstat-no" title="statement not covered" > throw new Error('Cannot set callback when promise is running');</span>
445
+ }
416
446
  this._cb = cb;
417
447
  return this;
418
448
  }
@@ -440,10 +470,15 @@ export class TransitionObserver&lt;T&gt; implements IDisposable {
440
470
  &nbsp;
441
471
  getPromise() {
442
472
  <span class="missing-if-branch" title="else path not taken" >E</span>if (!this._promise) {
443
- this._promise = new Promise&lt;void&gt;((resolve, reject) =&gt; {
473
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.isObserving) {
474
+ <span class="cstat-no" title="statement not covered" > return Promise.reject(new Error('Cannot get promise for disposed TransitionObserver'));</span>
475
+ }
476
+ &nbsp;
477
+ this._promise = new Promise&lt;T&gt;((resolve, reject) =&gt; {
444
478
  this._promiseReject = reject;
445
- this.cb(() =&gt; this._finishPromise(resolve));
479
+ this._cb = (v =&gt; this._finishPromise(resolve, v));
446
480
  });
481
+ this.logger.log('started a new promise...');
447
482
  }
448
483
  return this._promise;
449
484
  }
@@ -463,8 +498,9 @@ export class TransitionObserver&lt;T&gt; implements IDisposable {
463
498
  this.logger.log(' disposing... ');
464
499
  if (this._disposer) {
465
500
  this._disposer();
501
+ this._disposer = null;
466
502
  }
467
- if (this._promiseReject) {
503
+ if (this.isPromising) {
468
504
  this._finishPromise(this._promiseReject, new Error('TransitionObserver Aborted'));
469
505
  }
470
506
  };
@@ -504,12 +540,12 @@ export class TransitionObserver&lt;T&gt; implements IDisposable {
504
540
  return trigger;
505
541
  };
506
542
  &nbsp;
507
- private _finishPromise(cb: (e?: any) =&gt; any, err?: Error) {
543
+ private _finishPromise&lt;T&gt;(cb: (a?: T) =&gt; any, arg?: T) {
508
544
  this._promise = null;
509
545
  this._promiseReject = null;
510
546
  this._cb = null;
511
547
  <span class="missing-if-branch" title="else path not taken" >E</span>if (cb) {
512
- cb(err);
548
+ cb(arg);
513
549
  }
514
550
  }
515
551
  }
@@ -520,7 +556,7 @@ export class TransitionObserver&lt;T&gt; implements IDisposable {
520
556
  <div class='footer quiet pad2 space-top1 center small'>
521
557
  Code coverage generated by
522
558
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
523
- at Mon Nov 01 2021 21:48:46 GMT+0000 (Coordinated Universal Time)
559
+ at Tue Nov 02 2021 16:09:11 GMT+0000 (Coordinated Universal Time)
524
560
  </div>
525
561
  </div>
526
562
  <script src="prettify.js"></script>