@zajno/common 1.4.12 → 1.4.13

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 (113) hide show
  1. package/coverage/clover.xml +457 -374
  2. package/coverage/coverage-final.json +30 -27
  3. package/coverage/lcov-report/CommonModel.ts.html +215 -0
  4. package/coverage/lcov-report/FlagModel.ts.html +290 -0
  5. package/coverage/lcov-report/MultiSelectModel.ts.html +614 -0
  6. package/coverage/lcov-report/NumberModel.ts.html +230 -0
  7. package/coverage/lcov-report/SelectModel.ts.html +503 -0
  8. package/coverage/lcov-report/Validatable.ts.html +386 -0
  9. package/coverage/lcov-report/async/index.html +111 -0
  10. package/coverage/lcov-report/async/timeout.ts.html +230 -0
  11. package/coverage/lcov-report/index.html +24 -24
  12. package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
  13. package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
  14. package/coverage/lcov-report/src/async/arrays.ts.html +5 -5
  15. package/coverage/lcov-report/src/async/index.html +1 -1
  16. package/coverage/lcov-report/src/async/timeout.ts.html +12 -12
  17. package/coverage/lcov-report/src/cache.ts.html +1 -1
  18. package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
  19. package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
  20. package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
  21. package/coverage/lcov-report/src/dates/format.ts.html +1 -1
  22. package/coverage/lcov-report/src/dates/index.html +1 -1
  23. package/coverage/lcov-report/src/dates/index.ts.html +1 -1
  24. package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
  25. package/coverage/lcov-report/src/dates/period.ts.html +1 -1
  26. package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
  27. package/coverage/lcov-report/src/dates/types.ts.html +1 -1
  28. package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
  29. package/coverage/lcov-report/src/disposer.ts.html +1 -1
  30. package/coverage/lcov-report/src/enumHelper.ts.html +10 -10
  31. package/coverage/lcov-report/src/event.ts.html +1 -1
  32. package/coverage/lcov-report/src/fields/index.html +1 -1
  33. package/coverage/lcov-report/src/fields/update.ts.html +1 -1
  34. package/coverage/lcov-report/src/functions.ts.html +1 -1
  35. package/coverage/lcov-report/src/index.html +1 -1
  36. package/coverage/lcov-report/src/lazy.light.ts.html +6 -6
  37. package/coverage/lcov-report/src/logger/batch.ts.html +2 -2
  38. package/coverage/lcov-report/src/logger/console.ts.html +5 -5
  39. package/coverage/lcov-report/src/logger/index.html +1 -1
  40. package/coverage/lcov-report/src/logger/index.ts.html +22 -22
  41. package/coverage/lcov-report/src/logger/named.ts.html +13 -13
  42. package/coverage/lcov-report/src/logger/proxy.ts.html +7 -7
  43. package/coverage/lcov-report/src/math/arrays.ts.html +23 -23
  44. package/coverage/lcov-report/src/math/calc.ts.html +9 -9
  45. package/coverage/lcov-report/src/math/distribution.ts.html +2 -2
  46. package/coverage/lcov-report/src/math/index.html +1 -1
  47. package/coverage/lcov-report/src/math/index.ts.html +6 -6
  48. package/coverage/lcov-report/src/observersMap.ts.html +1 -1
  49. package/coverage/lcov-report/src/observingCache.ts.html +1 -1
  50. package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
  51. package/coverage/lcov-report/src/types.ts.html +8 -8
  52. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +22 -22
  53. package/coverage/lcov-report/src/validation/creditCard.ts.html +4 -4
  54. package/coverage/lcov-report/src/validation/helpers.ts.html +6 -6
  55. package/coverage/lcov-report/src/validation/index.html +16 -16
  56. package/coverage/lcov-report/src/validation/index.ts.html +6 -6
  57. package/coverage/lcov-report/src/validation/types.ts.html +16 -16
  58. package/coverage/lcov-report/src/validation/validators.ts.html +5 -5
  59. package/coverage/lcov-report/src/validation/wrappers.ts.html +5 -5
  60. package/coverage/lcov-report/src/viewModels/CommonModel.ts.html +215 -0
  61. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +41 -20
  62. package/coverage/lcov-report/src/viewModels/LoadingModel.ts.html +128 -0
  63. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +50 -20
  64. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +41 -23
  65. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +42 -30
  66. package/coverage/lcov-report/src/viewModels/TextModel.ts.html +461 -0
  67. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +69 -60
  68. package/coverage/lcov-report/src/viewModels/index.html +84 -39
  69. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +6 -6
  70. package/coverage/lcov-report/validation/index.html +111 -0
  71. package/coverage/lcov-report/validation/index.ts.html +107 -0
  72. package/coverage/lcov-report/viewModels/CommonModel.ts.html +215 -0
  73. package/coverage/lcov-report/viewModels/FlagModel.ts.html +290 -0
  74. package/coverage/lcov-report/viewModels/LoadingModel.ts.html +128 -0
  75. package/coverage/lcov-report/viewModels/MultiSelectModel.ts.html +614 -0
  76. package/coverage/lcov-report/viewModels/NumberModel.ts.html +230 -0
  77. package/coverage/lcov-report/viewModels/SelectModel.ts.html +503 -0
  78. package/coverage/lcov-report/viewModels/TextModel.ts.html +461 -0
  79. package/coverage/lcov-report/viewModels/Validatable.ts.html +386 -0
  80. package/coverage/lcov-report/viewModels/index.html +216 -0
  81. package/coverage/lcov.info +773 -583
  82. package/lib/viewModels/FlagModel.d.ts.map +1 -1
  83. package/lib/viewModels/FlagModel.js +14 -26
  84. package/lib/viewModels/FlagModel.js.map +1 -1
  85. package/lib/viewModels/LoadingModel.d.ts +6 -0
  86. package/lib/viewModels/LoadingModel.d.ts.map +1 -0
  87. package/lib/viewModels/LoadingModel.js +19 -0
  88. package/lib/viewModels/LoadingModel.js.map +1 -0
  89. package/lib/viewModels/MultiSelectModel.d.ts.map +1 -1
  90. package/lib/viewModels/MultiSelectModel.js +20 -43
  91. package/lib/viewModels/MultiSelectModel.js.map +1 -1
  92. package/lib/viewModels/NumberModel.d.ts.map +1 -1
  93. package/lib/viewModels/NumberModel.js +12 -22
  94. package/lib/viewModels/NumberModel.js.map +1 -1
  95. package/lib/viewModels/SelectModel.d.ts.map +1 -1
  96. package/lib/viewModels/SelectModel.js +8 -15
  97. package/lib/viewModels/SelectModel.js.map +1 -1
  98. package/lib/viewModels/TextModel.d.ts.map +1 -1
  99. package/lib/viewModels/TextModel.js +10 -17
  100. package/lib/viewModels/TextModel.js.map +1 -1
  101. package/lib/viewModels/Validatable.d.ts.map +1 -1
  102. package/lib/viewModels/Validatable.js +6 -12
  103. package/lib/viewModels/Validatable.js.map +1 -1
  104. package/package.json +1 -1
  105. package/src/viewModels/FlagModel.ts +14 -7
  106. package/src/viewModels/LoadingModel.ts +16 -0
  107. package/src/viewModels/MultiSelectModel.ts +20 -10
  108. package/src/viewModels/NumberModel.ts +12 -6
  109. package/src/viewModels/SelectModel.ts +8 -4
  110. package/src/viewModels/TextModel.ts +10 -5
  111. package/src/viewModels/Validatable.ts +6 -3
  112. package/src/viewModels/__tests__/common.test.ts +88 -0
  113. package/yarn.lock +3 -3
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">77.14% </span>
26
+ <span class="strong">75% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>81/105</span>
28
+ <span class='fraction'>72/96</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">76.47% </span>
47
+ <span class="strong">74.39% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>65/85</span>
49
+ <span class='fraction'>61/82</span>
50
50
  </div>
51
51
 
52
52
 
@@ -225,7 +225,17 @@
225
225
  <a name='L166'></a><a href='#L166'>166</a>
226
226
  <a name='L167'></a><a href='#L167'>167</a>
227
227
  <a name='L168'></a><a href='#L168'>168</a>
228
- <a name='L169'></a><a href='#L169'>169</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
228
+ <a name='L169'></a><a href='#L169'>169</a>
229
+ <a name='L170'></a><a href='#L170'>170</a>
230
+ <a name='L171'></a><a href='#L171'>171</a>
231
+ <a name='L172'></a><a href='#L172'>172</a>
232
+ <a name='L173'></a><a href='#L173'>173</a>
233
+ <a name='L174'></a><a href='#L174'>174</a>
234
+ <a name='L175'></a><a href='#L175'>175</a>
235
+ <a name='L176'></a><a href='#L176'>176</a>
236
+ <a name='L177'></a><a href='#L177'>177</a>
237
+ <a name='L178'></a><a href='#L178'>178</a>
238
+ <a name='L179'></a><a href='#L179'>179</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
229
239
  <span class="cline-any cline-yes">1x</span>
230
240
  <span class="cline-any cline-yes">1x</span>
231
241
  <span class="cline-any cline-yes">1x</span>
@@ -252,6 +262,16 @@
252
262
  <span class="cline-any cline-neutral">&nbsp;</span>
253
263
  <span class="cline-any cline-yes">6x</span>
254
264
  <span class="cline-any cline-yes">6x</span>
265
+ <span class="cline-any cline-neutral">&nbsp;</span>
266
+ <span class="cline-any cline-neutral">&nbsp;</span>
267
+ <span class="cline-any cline-neutral">&nbsp;</span>
268
+ <span class="cline-any cline-neutral">&nbsp;</span>
269
+ <span class="cline-any cline-neutral">&nbsp;</span>
270
+ <span class="cline-any cline-neutral">&nbsp;</span>
271
+ <span class="cline-any cline-neutral">&nbsp;</span>
272
+ <span class="cline-any cline-neutral">&nbsp;</span>
273
+ <span class="cline-any cline-neutral">&nbsp;</span>
274
+ <span class="cline-any cline-neutral">&nbsp;</span>
255
275
  <span class="cline-any cline-yes">6x</span>
256
276
  <span class="cline-any cline-yes">6x</span>
257
277
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -264,17 +284,17 @@
264
284
  <span class="cline-any cline-no">&nbsp;</span>
265
285
  <span class="cline-any cline-neutral">&nbsp;</span>
266
286
  <span class="cline-any cline-neutral">&nbsp;</span>
267
- <span class="cline-any cline-yes">1x</span>
287
+ <span class="cline-any cline-neutral">&nbsp;</span>
268
288
  <span class="cline-any cline-yes">49x</span>
269
289
  <span class="cline-any cline-neutral">&nbsp;</span>
270
290
  <span class="cline-any cline-neutral">&nbsp;</span>
271
291
  <span class="cline-any cline-neutral">&nbsp;</span>
272
- <span class="cline-any cline-yes">1x</span>
292
+ <span class="cline-any cline-neutral">&nbsp;</span>
273
293
  <span class="cline-any cline-yes">9x</span>
274
294
  <span class="cline-any cline-neutral">&nbsp;</span>
275
295
  <span class="cline-any cline-neutral">&nbsp;</span>
276
296
  <span class="cline-any cline-neutral">&nbsp;</span>
277
- <span class="cline-any cline-yes">1x</span>
297
+ <span class="cline-any cline-neutral">&nbsp;</span>
278
298
  <span class="cline-any cline-yes">21x</span>
279
299
  <span class="cline-any cline-yes">21x</span>
280
300
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -290,7 +310,7 @@
290
310
  <span class="cline-any cline-no">&nbsp;</span>
291
311
  <span class="cline-any cline-neutral">&nbsp;</span>
292
312
  <span class="cline-any cline-neutral">&nbsp;</span>
293
- <span class="cline-any cline-yes">1x</span>
313
+ <span class="cline-any cline-no">&nbsp;</span>
294
314
  <span class="cline-any cline-neutral">&nbsp;</span>
295
315
  <span class="cline-any cline-no">&nbsp;</span>
296
316
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -404,7 +424,7 @@ import { arraysCompareDistinct } from '../math';
404
424
  &nbsp;
405
425
  export class MultiSelect&lt;T = any&gt; extends ValidatableModel&lt;ReadonlyArray&lt;T&gt;&gt; implements IValueModel&lt;readonly string[]&gt;, IResetableModel, ICountableModel {
406
426
  &nbsp;
407
- @observable
427
+ // @observable
408
428
  private readonly _indexes = new Set&lt;number&gt;();
409
429
  &nbsp;
410
430
  public readonly opened = new FlagModel();
@@ -419,29 +439,39 @@ export class MultiSelect&lt;T = any&gt; extends ValidatableModel&lt;ReadonlyArra
419
439
  ...selected: number[]
420
440
  ) {
421
441
  super();
422
- makeObservable(this);
442
+ makeObservable&lt;MultiSelect&lt;T&gt;, '_indexes'&gt;(this, {
443
+ '_indexes': observable,
444
+ selectedIndexes: computed,
445
+ values: computed,
446
+ selectedItems: computed,
447
+ selectedValues: computed,
448
+ isDefault: computed,
449
+ selectItems: action,
450
+ selectValues: action,
451
+ setIndexSelected: action,
452
+ });
423
453
  this._initial = selected;
424
454
  this.setInitialIndexes();
425
455
  }
426
456
  &nbsp;
427
- @computed
457
+ // @computed
428
458
  get selectedIndexes(): ReadonlyArray&lt;number&gt; { return Array.from(this._indexes); }
429
459
  &nbsp;
430
460
  get items(): ReadonlyArray&lt;T&gt; { return this._items; }
431
461
  &nbsp;
432
462
  <span class="fstat-no" title="function not covered" > get f</span>lags() { <span class="cstat-no" title="statement not covered" >return this._flags.value; </span>}
433
463
  &nbsp;
434
- @computed
464
+ // @computed
435
465
  get values(): ReadonlyArray&lt;string&gt; {
436
466
  return this._items.map(i =&gt; this._accessor(i));
437
467
  }
438
468
  &nbsp;
439
- @computed
469
+ // @computed
440
470
  get selectedItems(): ReadonlyArray&lt;T&gt; {
441
471
  return this.selectedIndexes.map(i =&gt; this._items[i]);
442
472
  }
443
473
  &nbsp;
444
- @computed
474
+ // @computed
445
475
  get selectedValues(): ReadonlyArray&lt;string&gt; {
446
476
  const values = this.values;
447
477
  return this.selectedIndexes.map(i =&gt; values[i]);
@@ -457,7 +487,7 @@ export class MultiSelect&lt;T = any&gt; extends ValidatableModel&lt;ReadonlyArra
457
487
  get selectedCount() { return this._indexes.size; }
458
488
  <span class="fstat-no" title="function not covered" > get i</span>sEmpty() { <span class="cstat-no" title="statement not covered" >return this.selectedCount === 0; </span>}
459
489
  &nbsp;
460
- @computed
490
+ // @computed
461
491
  <span class="fstat-no" title="function not covered" > get i</span>sDefault() { <span class="cstat-no" title="statement not covered" >return arraysCompareDistinct(this.selectedIndexes, this._initial)?.diff === 0; </span>}
462
492
  &nbsp;
463
493
  <span class="fstat-no" title="function not covered" > protected get v</span>alueToValidate() { <span class="cstat-no" title="statement not covered" >return this.selectedItems; </span>}
@@ -472,7 +502,7 @@ export class MultiSelect&lt;T = any&gt; extends ValidatableModel&lt;ReadonlyArra
472
502
  selectItem = (item: T) =&gt; this.setItemSelected(item, true);
473
503
  deSelectItem = (item: T) =&gt; this.setItemSelected(item, false);
474
504
  &nbsp;
475
- @action
505
+ // @action
476
506
  selectItems = (items: readonly T[]) =&gt; {
477
507
  items.forEach(this.selectItem);
478
508
  };
@@ -487,12 +517,12 @@ export class MultiSelect&lt;T = any&gt; extends ValidatableModel&lt;ReadonlyArra
487
517
  selectValue = (value: string) =&gt; this.setValueSelected(value, true);
488
518
  deSelectValue = (value: string) =&gt; this.setValueSelected(value, false);
489
519
  &nbsp;
490
- @action
520
+ // @action
491
521
  selectValues = <span class="fstat-no" title="function not covered" >(v</span>alues: readonly string[]) =&gt; {
492
522
  <span class="cstat-no" title="statement not covered" > values.forEach(this.selectValue);</span>
493
523
  };
494
524
  &nbsp;
495
- @action
525
+ // @action
496
526
  setIndexSelected = (index: number, selected: boolean) =&gt; {
497
527
  <span class="missing-if-branch" title="if path not taken" >I</span>if (this._indexesLocked) {
498
528
  <span class="cstat-no" title="statement not covered" > return;</span>
@@ -568,7 +598,7 @@ export class MultiSelectString&lt;T extends string = string&gt; extends MultiSel
568
598
  <div class='footer quiet pad2 space-top1 center small'>
569
599
  Code coverage generated by
570
600
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
571
- at Wed Mar 16 2022 14:12:08 GMT+0000 (Coordinated Universal Time)
601
+ at Fri Mar 18 2022 08:49:14 GMT+0000 (Coordinated Universal Time)
572
602
  </div>
573
603
  </div>
574
604
  <script src="../../prettify.js"></script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">91.67% </span>
26
+ <span class="strong">89.47% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>22/24</span>
28
+ <span class='fraction'>17/19</span>
29
29
  </div>
30
30
 
31
31
 
@@ -101,7 +101,13 @@
101
101
  <a name='L42'></a><a href='#L42'>42</a>
102
102
  <a name='L43'></a><a href='#L43'>43</a>
103
103
  <a name='L44'></a><a href='#L44'>44</a>
104
- <a name='L45'></a><a href='#L45'>45</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
104
+ <a name='L45'></a><a href='#L45'>45</a>
105
+ <a name='L46'></a><a href='#L46'>46</a>
106
+ <a name='L47'></a><a href='#L47'>47</a>
107
+ <a name='L48'></a><a href='#L48'>48</a>
108
+ <a name='L49'></a><a href='#L49'>49</a>
109
+ <a name='L50'></a><a href='#L50'>50</a>
110
+ <a name='L51'></a><a href='#L51'>51</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
105
111
  <span class="cline-any cline-neutral">&nbsp;</span>
106
112
  <span class="cline-any cline-neutral">&nbsp;</span>
107
113
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -109,42 +115,48 @@
109
115
  <span class="cline-any cline-neutral">&nbsp;</span>
110
116
  <span class="cline-any cline-neutral">&nbsp;</span>
111
117
  <span class="cline-any cline-neutral">&nbsp;</span>
112
- <span class="cline-any cline-yes">2x</span>
118
+ <span class="cline-any cline-yes">3x</span>
113
119
  <span class="cline-any cline-neutral">&nbsp;</span>
114
120
  <span class="cline-any cline-neutral">&nbsp;</span>
115
- <span class="cline-any cline-yes">7x</span>
121
+ <span class="cline-any cline-yes">8x</span>
122
+ <span class="cline-any cline-neutral">&nbsp;</span>
123
+ <span class="cline-any cline-yes">8x</span>
124
+ <span class="cline-any cline-neutral">&nbsp;</span>
116
125
  <span class="cline-any cline-neutral">&nbsp;</span>
117
- <span class="cline-any cline-yes">7x</span>
126
+ <span class="cline-any cline-yes">8x</span>
118
127
  <span class="cline-any cline-neutral">&nbsp;</span>
119
128
  <span class="cline-any cline-neutral">&nbsp;</span>
120
- <span class="cline-any cline-yes">7x</span>
121
- <span class="cline-any cline-yes">7x</span>
122
- <span class="cline-any cline-yes">7x</span>
123
129
  <span class="cline-any cline-neutral">&nbsp;</span>
124
130
  <span class="cline-any cline-neutral">&nbsp;</span>
125
- <span class="cline-any cline-yes">7x</span>
126
- <span class="cline-any cline-yes">6x</span>
127
131
  <span class="cline-any cline-neutral">&nbsp;</span>
128
132
  <span class="cline-any cline-neutral">&nbsp;</span>
129
- <span class="cline-any cline-yes">7x</span>
133
+ <span class="cline-any cline-yes">8x</span>
130
134
  <span class="cline-any cline-yes">8x</span>
131
135
  <span class="cline-any cline-neutral">&nbsp;</span>
132
136
  <span class="cline-any cline-neutral">&nbsp;</span>
137
+ <span class="cline-any cline-yes">13x</span>
138
+ <span class="cline-any cline-yes">8x</span>
139
+ <span class="cline-any cline-neutral">&nbsp;</span>
140
+ <span class="cline-any cline-neutral">&nbsp;</span>
141
+ <span class="cline-any cline-yes">8x</span>
142
+ <span class="cline-any cline-yes">10x</span>
143
+ <span class="cline-any cline-neutral">&nbsp;</span>
144
+ <span class="cline-any cline-neutral">&nbsp;</span>
133
145
  <span class="cline-any cline-no">&nbsp;</span>
134
146
  <span class="cline-any cline-neutral">&nbsp;</span>
135
147
  <span class="cline-any cline-neutral">&nbsp;</span>
136
- <span class="cline-any cline-yes">7x</span>
148
+ <span class="cline-any cline-yes">8x</span>
137
149
  <span class="cline-any cline-no">&nbsp;</span>
138
150
  <span class="cline-any cline-neutral">&nbsp;</span>
139
151
  <span class="cline-any cline-neutral">&nbsp;</span>
140
152
  <span class="cline-any cline-neutral">&nbsp;</span>
141
- <span class="cline-any cline-yes">7x</span>
153
+ <span class="cline-any cline-yes">8x</span>
142
154
  <span class="cline-any cline-neutral">&nbsp;</span>
143
155
  <span class="cline-any cline-neutral">&nbsp;</span>
144
- <span class="cline-any cline-yes">7x</span>
156
+ <span class="cline-any cline-yes">8x</span>
145
157
  <span class="cline-any cline-neutral">&nbsp;</span>
146
158
  <span class="cline-any cline-neutral">&nbsp;</span>
147
- <span class="cline-any cline-yes">2x</span>
159
+ <span class="cline-any cline-yes">3x</span>
148
160
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { action, makeObservable, observable } from 'mobx';
149
161
  import { IResetableModel } from 'viewModels';
150
162
  import { IValueModel } from './types';
@@ -155,13 +167,19 @@ export interface INumberModel extends IResetableModel {
155
167
  &nbsp;
156
168
  export class NumberModel implements INumberModel, IValueModel&lt;number&gt; {
157
169
  &nbsp;
158
- @observable
170
+ // @observable
159
171
  private _value: number = 0;
160
172
  &nbsp;
161
173
  private _initial: number = 0;
162
174
  &nbsp;
163
175
  constructor(initial: number = 0) {
164
- makeObservable(this);
176
+ makeObservable&lt;NumberModel, '_value'&gt;(this, {
177
+ _value: observable,
178
+ setValue: action,
179
+ reset: action,
180
+ increment: action,
181
+ decrement: action,
182
+ });
165
183
  this._initial = initial;
166
184
  this._value = this._initial;
167
185
  }
@@ -169,22 +187,22 @@ export class NumberModel implements INumberModel, IValueModel&lt;number&gt; {
169
187
  get value() { return this._value; }
170
188
  set value(v: number) { this.setValue(v); }
171
189
  &nbsp;
172
- @action
190
+ // @action
173
191
  public readonly setValue = (v: number) =&gt; {
174
192
  this._value = v;
175
193
  };
176
194
  &nbsp;
177
195
  <span class="fstat-no" title="function not covered" > get i</span>sDefault() { <span class="cstat-no" title="statement not covered" >return this._value === this._initial; </span>}
178
196
  &nbsp;
179
- @action
197
+ // @action
180
198
  reset = <span class="fstat-no" title="function not covered" >() =</span>&gt; {
181
199
  <span class="cstat-no" title="statement not covered" > this._value = this._initial;</span>
182
200
  };
183
201
  &nbsp;
184
- @action
202
+ // @action
185
203
  increment = (d = 1) =&gt; this.value += d;
186
204
  &nbsp;
187
- @action
205
+ // @action
188
206
  decrement = (d = 1) =&gt; this.value -= d;
189
207
  }
190
208
  &nbsp;
@@ -196,7 +214,7 @@ export default NumberModel;
196
214
  <div class='footer quiet pad2 space-top1 center small'>
197
215
  Code coverage generated by
198
216
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
199
- at Wed Mar 16 2022 14:12:08 GMT+0000 (Coordinated Universal Time)
217
+ at Fri Mar 18 2022 08:49:14 GMT+0000 (Coordinated Universal Time)
200
218
  </div>
201
219
  </div>
202
220
  <script src="../../prettify.js"></script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">91.04% </span>
26
+ <span class="strong">90.63% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>61/67</span>
28
+ <span class='fraction'>58/64</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">90% </span>
47
+ <span class="strong">89.83% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>54/60</span>
49
+ <span class='fraction'>53/59</span>
50
50
  </div>
51
51
 
52
52
 
@@ -194,40 +194,48 @@
194
194
  <a name='L135'></a><a href='#L135'>135</a>
195
195
  <a name='L136'></a><a href='#L136'>136</a>
196
196
  <a name='L137'></a><a href='#L137'>137</a>
197
- <a name='L138'></a><a href='#L138'>138</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
198
- <span class="cline-any cline-yes">1x</span>
199
- <span class="cline-any cline-yes">1x</span>
200
- <span class="cline-any cline-yes">1x</span>
197
+ <a name='L138'></a><a href='#L138'>138</a>
198
+ <a name='L139'></a><a href='#L139'>139</a>
199
+ <a name='L140'></a><a href='#L140'>140</a>
200
+ <a name='L141'></a><a href='#L141'>141</a>
201
+ <a name='L142'></a><a href='#L142'>142</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
202
+ <span class="cline-any cline-yes">2x</span>
203
+ <span class="cline-any cline-yes">2x</span>
204
+ <span class="cline-any cline-yes">2x</span>
201
205
  <span class="cline-any cline-neutral">&nbsp;</span>
202
- <span class="cline-any cline-yes">1x</span>
206
+ <span class="cline-any cline-yes">2x</span>
203
207
  <span class="cline-any cline-neutral">&nbsp;</span>
204
208
  <span class="cline-any cline-neutral">&nbsp;</span>
205
- <span class="cline-any cline-yes">1x</span>
209
+ <span class="cline-any cline-yes">2x</span>
206
210
  <span class="cline-any cline-neutral">&nbsp;</span>
207
- <span class="cline-any cline-yes">5x</span>
211
+ <span class="cline-any cline-yes">6x</span>
208
212
  <span class="cline-any cline-neutral">&nbsp;</span>
209
- <span class="cline-any cline-yes">5x</span>
210
- <span class="cline-any cline-yes">5x</span>
211
- <span class="cline-any cline-yes">5x</span>
213
+ <span class="cline-any cline-yes">6x</span>
214
+ <span class="cline-any cline-yes">6x</span>
215
+ <span class="cline-any cline-yes">6x</span>
212
216
  <span class="cline-any cline-neutral">&nbsp;</span>
213
- <span class="cline-any cline-yes">5x</span>
217
+ <span class="cline-any cline-yes">6x</span>
214
218
  <span class="cline-any cline-neutral">&nbsp;</span>
215
219
  <span class="cline-any cline-neutral">&nbsp;</span>
216
- <span class="cline-any cline-yes">5x</span>
217
- <span class="cline-any cline-yes">5x</span>
220
+ <span class="cline-any cline-yes">6x</span>
221
+ <span class="cline-any cline-yes">6x</span>
222
+ <span class="cline-any cline-neutral">&nbsp;</span>
223
+ <span class="cline-any cline-neutral">&nbsp;</span>
224
+ <span class="cline-any cline-yes">6x</span>
225
+ <span class="cline-any cline-yes">6x</span>
218
226
  <span class="cline-any cline-neutral">&nbsp;</span>
219
227
  <span class="cline-any cline-neutral">&nbsp;</span>
220
- <span class="cline-any cline-yes">5x</span>
221
- <span class="cline-any cline-yes">5x</span>
222
228
  <span class="cline-any cline-neutral">&nbsp;</span>
223
- <span class="cline-any cline-yes">5x</span>
224
- <span class="cline-any cline-yes">5x</span>
229
+ <span class="cline-any cline-neutral">&nbsp;</span>
230
+ <span class="cline-any cline-neutral">&nbsp;</span>
231
+ <span class="cline-any cline-yes">6x</span>
232
+ <span class="cline-any cline-yes">6x</span>
225
233
  <span class="cline-any cline-neutral">&nbsp;</span>
226
234
  <span class="cline-any cline-neutral">&nbsp;</span>
227
235
  <span class="cline-any cline-no">&nbsp;</span>
228
236
  <span class="cline-any cline-neutral">&nbsp;</span>
229
237
  <span class="cline-any cline-neutral">&nbsp;</span>
230
- <span class="cline-any cline-yes">1x</span>
238
+ <span class="cline-any cline-neutral">&nbsp;</span>
231
239
  <span class="cline-any cline-yes">34x</span>
232
240
  <span class="cline-any cline-neutral">&nbsp;</span>
233
241
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -275,7 +283,7 @@
275
283
  <span class="cline-any cline-neutral">&nbsp;</span>
276
284
  <span class="cline-any cline-neutral">&nbsp;</span>
277
285
  <span class="cline-any cline-neutral">&nbsp;</span>
278
- <span class="cline-any cline-yes">5x</span>
286
+ <span class="cline-any cline-yes">6x</span>
279
287
  <span class="cline-any cline-yes">16x</span>
280
288
  <span class="cline-any cline-no">&nbsp;</span>
281
289
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -298,7 +306,7 @@
298
306
  <span class="cline-any cline-neutral">&nbsp;</span>
299
307
  <span class="cline-any cline-neutral">&nbsp;</span>
300
308
  <span class="cline-any cline-neutral">&nbsp;</span>
301
- <span class="cline-any cline-yes">5x</span>
309
+ <span class="cline-any cline-yes">6x</span>
302
310
  <span class="cline-any cline-yes">1x</span>
303
311
  <span class="cline-any cline-yes">1x</span>
304
312
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -326,7 +334,7 @@
326
334
  <span class="cline-any cline-neutral">&nbsp;</span>
327
335
  <span class="cline-any cline-neutral">&nbsp;</span>
328
336
  <span class="cline-any cline-neutral">&nbsp;</span>
329
- <span class="cline-any cline-yes">1x</span>
337
+ <span class="cline-any cline-yes">2x</span>
330
338
  <span class="cline-any cline-neutral">&nbsp;</span>
331
339
  <span class="cline-any cline-yes">3x</span>
332
340
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -340,7 +348,7 @@ import { withLabel } from './wrappers';
340
348
  import { IResetableModel } from 'viewModels';
341
349
  &nbsp;
342
350
  export class Select&lt;T = any&gt; extends ValidatableModel&lt;T&gt; implements IValueModel&lt;string&gt;, IResetableModel {
343
- @observable
351
+ // @observable
344
352
  private _index: number = undefined;
345
353
  &nbsp;
346
354
  public readonly opened = new FlagModel();
@@ -355,7 +363,11 @@ export class Select&lt;T = any&gt; extends ValidatableModel&lt;T&gt; implements
355
363
  initialIndex: number = 0,
356
364
  ) {
357
365
  super();
358
- makeObservable(this);
366
+ makeObservable&lt;Select&lt;T&gt;, '_index'&gt;(this, {
367
+ '_index': observable,
368
+ values: computed,
369
+ setIndex: action,
370
+ });
359
371
  &nbsp;
360
372
  this._initialIndex = initialIndex;
361
373
  this._index = initialIndex;
@@ -363,7 +375,7 @@ export class Select&lt;T = any&gt; extends ValidatableModel&lt;T&gt; implements
363
375
  &nbsp;
364
376
  <span class="fstat-no" title="function not covered" > protected get v</span>alueToValidate() { <span class="cstat-no" title="statement not covered" >return this.selectedItem; </span>}
365
377
  &nbsp;
366
- @computed
378
+ // @computed
367
379
  get values(): readonly string[] {
368
380
  return this._items.map(i =&gt; this._accessor(i));
369
381
  }
@@ -411,7 +423,7 @@ export class Select&lt;T = any&gt; extends ValidatableModel&lt;T&gt; implements
411
423
  this.setIndex(val);
412
424
  }
413
425
  &nbsp;
414
- @action
426
+ // @action
415
427
  public setIndex = (val: number) =&gt; {
416
428
  <span class="missing-if-branch" title="if path not taken" >I</span>if (this._indexLocked) {
417
429
  <span class="cstat-no" title="statement not covered" > return;</span>
@@ -475,7 +487,7 @@ export class SelectString&lt;T extends string = string&gt; extends Select&lt;T&g
475
487
  <div class='footer quiet pad2 space-top1 center small'>
476
488
  Code coverage generated by
477
489
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
478
- at Wed Mar 16 2022 14:12:08 GMT+0000 (Coordinated Universal Time)
490
+ at Fri Mar 18 2022 08:49:14 GMT+0000 (Coordinated Universal Time)
479
491
  </div>
480
492
  </div>
481
493
  <script src="../../prettify.js"></script>