@zajno/common 1.4.12 → 1.4.15

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 (119) hide show
  1. package/coverage/clover.xml +491 -401
  2. package/coverage/coverage-final.json +31 -28
  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 +35 -35
  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 +19 -19
  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 +26 -11
  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 +152 -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 +72 -63
  68. package/coverage/lcov-report/src/viewModels/index.html +85 -40
  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 +873 -665
  82. package/lib/observingCache.d.ts +1 -0
  83. package/lib/observingCache.d.ts.map +1 -1
  84. package/lib/observingCache.js +5 -1
  85. package/lib/observingCache.js.map +1 -1
  86. package/lib/viewModels/FlagModel.d.ts.map +1 -1
  87. package/lib/viewModels/FlagModel.js +14 -26
  88. package/lib/viewModels/FlagModel.js.map +1 -1
  89. package/lib/viewModels/LoadingModel.d.ts +6 -0
  90. package/lib/viewModels/LoadingModel.d.ts.map +1 -0
  91. package/lib/viewModels/LoadingModel.js +25 -0
  92. package/lib/viewModels/LoadingModel.js.map +1 -0
  93. package/lib/viewModels/MultiSelectModel.d.ts.map +1 -1
  94. package/lib/viewModels/MultiSelectModel.js +20 -43
  95. package/lib/viewModels/MultiSelectModel.js.map +1 -1
  96. package/lib/viewModels/NumberModel.d.ts.map +1 -1
  97. package/lib/viewModels/NumberModel.js +12 -22
  98. package/lib/viewModels/NumberModel.js.map +1 -1
  99. package/lib/viewModels/SelectModel.d.ts.map +1 -1
  100. package/lib/viewModels/SelectModel.js +8 -15
  101. package/lib/viewModels/SelectModel.js.map +1 -1
  102. package/lib/viewModels/TextModel.d.ts.map +1 -1
  103. package/lib/viewModels/TextModel.js +10 -17
  104. package/lib/viewModels/TextModel.js.map +1 -1
  105. package/lib/viewModels/Validatable.d.ts +2 -2
  106. package/lib/viewModels/Validatable.d.ts.map +1 -1
  107. package/lib/viewModels/Validatable.js +6 -12
  108. package/lib/viewModels/Validatable.js.map +1 -1
  109. package/package.json +1 -1
  110. package/src/observingCache.ts +6 -1
  111. package/src/viewModels/FlagModel.ts +14 -7
  112. package/src/viewModels/LoadingModel.ts +24 -0
  113. package/src/viewModels/MultiSelectModel.ts +20 -10
  114. package/src/viewModels/NumberModel.ts +12 -6
  115. package/src/viewModels/SelectModel.ts +8 -4
  116. package/src/viewModels/TextModel.ts +10 -5
  117. package/src/viewModels/Validatable.ts +9 -6
  118. package/src/viewModels/__tests__/common.test.ts +88 -0
  119. package/yarn.lock +6 -6
@@ -0,0 +1,152 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/viewModels/LoadingModel.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../prettify.css" />
9
+ <link rel="stylesheet" href="../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">src/viewModels</a> LoadingModel.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">75% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>9/12</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">42.86% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>3/7</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">100% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>2/2</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">75% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>9/12</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
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
+ </p>
57
+ </div>
58
+ <div class='status-line medium'></div>
59
+ <pre><table class="coverage">
60
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
+ <a name='L2'></a><a href='#L2'>2</a>
62
+ <a name='L3'></a><a href='#L3'>3</a>
63
+ <a name='L4'></a><a href='#L4'>4</a>
64
+ <a name='L5'></a><a href='#L5'>5</a>
65
+ <a name='L6'></a><a href='#L6'>6</a>
66
+ <a name='L7'></a><a href='#L7'>7</a>
67
+ <a name='L8'></a><a href='#L8'>8</a>
68
+ <a name='L9'></a><a href='#L9'>9</a>
69
+ <a name='L10'></a><a href='#L10'>10</a>
70
+ <a name='L11'></a><a href='#L11'>11</a>
71
+ <a name='L12'></a><a href='#L12'>12</a>
72
+ <a name='L13'></a><a href='#L13'>13</a>
73
+ <a name='L14'></a><a href='#L14'>14</a>
74
+ <a name='L15'></a><a href='#L15'>15</a>
75
+ <a name='L16'></a><a href='#L16'>16</a>
76
+ <a name='L17'></a><a href='#L17'>17</a>
77
+ <a name='L18'></a><a href='#L18'>18</a>
78
+ <a name='L19'></a><a href='#L19'>19</a>
79
+ <a name='L20'></a><a href='#L20'>20</a>
80
+ <a name='L21'></a><a href='#L21'>21</a>
81
+ <a name='L22'></a><a href='#L22'>22</a>
82
+ <a name='L23'></a><a href='#L23'>23</a>
83
+ <a name='L24'></a><a href='#L24'>24</a>
84
+ <a name='L25'></a><a href='#L25'>25</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
85
+ <span class="cline-any cline-neutral">&nbsp;</span>
86
+ <span class="cline-any cline-yes">1x</span>
87
+ <span class="cline-any cline-neutral">&nbsp;</span>
88
+ <span class="cline-any cline-yes">3x</span>
89
+ <span class="cline-any cline-neutral">&nbsp;</span>
90
+ <span class="cline-any cline-neutral">&nbsp;</span>
91
+ <span class="cline-any cline-yes">1x</span>
92
+ <span class="cline-any cline-no">&nbsp;</span>
93
+ <span class="cline-any cline-no">&nbsp;</span>
94
+ <span class="cline-any cline-neutral">&nbsp;</span>
95
+ <span class="cline-any cline-no">&nbsp;</span>
96
+ <span class="cline-any cline-neutral">&nbsp;</span>
97
+ <span class="cline-any cline-neutral">&nbsp;</span>
98
+ <span class="cline-any cline-yes">1x</span>
99
+ <span class="cline-any cline-neutral">&nbsp;</span>
100
+ <span class="cline-any cline-yes">1x</span>
101
+ <span class="cline-any cline-yes">1x</span>
102
+ <span class="cline-any cline-yes">1x</span>
103
+ <span class="cline-any cline-neutral">&nbsp;</span>
104
+ <span class="cline-any cline-yes">1x</span>
105
+ <span class="cline-any cline-neutral">&nbsp;</span>
106
+ <span class="cline-any cline-neutral">&nbsp;</span>
107
+ <span class="cline-any cline-neutral">&nbsp;</span>
108
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { NumberModel } from './NumberModel';
109
+ &nbsp;
110
+ export class LoadingModel extends NumberModel {
111
+ &nbsp;
112
+ public get isLoading() { return this.value &gt; 0; }
113
+ &nbsp;
114
+ public async useLoading&lt;T&gt;(cb: () =&gt; (T | Promise&lt;T&gt;), exclusive: boolean | 'throw' = false): Promise&lt;T | false&gt; {
115
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (exclusive &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >this.isLoading)</span> {
116
+ <span class="cstat-no" title="statement not covered" > if (exclusive === 'throw') {</span>
117
+ <span class="cstat-no" title="statement not covered" > throw new Error('Operation cannot be started because another one is in progress already.');</span>
118
+ }
119
+ <span class="cstat-no" title="statement not covered" > return false;</span>
120
+ }
121
+ &nbsp;
122
+ this.increment();
123
+ &nbsp;
124
+ try {
125
+ const res = await cb();
126
+ return res;
127
+ } finally {
128
+ this.decrement();
129
+ }
130
+ }
131
+ }
132
+ &nbsp;</pre></td></tr></table></pre>
133
+
134
+ <div class='push'></div><!-- for sticky footer -->
135
+ </div><!-- /wrapper -->
136
+ <div class='footer quiet pad2 space-top1 center small'>
137
+ Code coverage generated by
138
+ <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
139
+ at Tue Apr 12 2022 18:17:46 GMT+0000 (Coordinated Universal Time)
140
+ </div>
141
+ </div>
142
+ <script src="../../prettify.js"></script>
143
+ <script>
144
+ window.onload = function () {
145
+ prettyPrint();
146
+ };
147
+ </script>
148
+ <script src="../../sorter.js"></script>
149
+ <script src="../../block-navigation.js"></script>
150
+ </body>
151
+ </html>
152
+
@@ -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 Tue Apr 12 2022 18:17:46 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 Tue Apr 12 2022 18:17:46 GMT+0000 (Coordinated Universal Time)
200
218
  </div>
201
219
  </div>
202
220
  <script src="../../prettify.js"></script>