@zajno/common 1.3.14 → 1.4.1

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 (100) hide show
  1. package/coverage/clover.xml +112 -99
  2. package/coverage/coverage-final.json +7 -7
  3. package/coverage/lcov-report/index.html +19 -19
  4. package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
  5. package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
  6. package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
  7. package/coverage/lcov-report/src/async/index.html +1 -1
  8. package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
  9. package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
  10. package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
  11. package/coverage/lcov-report/src/dates/format.ts.html +1 -1
  12. package/coverage/lcov-report/src/dates/index.html +1 -1
  13. package/coverage/lcov-report/src/dates/index.ts.html +1 -1
  14. package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
  15. package/coverage/lcov-report/src/dates/period.ts.html +1 -1
  16. package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
  17. package/coverage/lcov-report/src/dates/types.ts.html +1 -1
  18. package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
  19. package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
  20. package/coverage/lcov-report/src/event.ts.html +1 -1
  21. package/coverage/lcov-report/src/fields/index.html +1 -1
  22. package/coverage/lcov-report/src/fields/update.ts.html +1 -1
  23. package/coverage/lcov-report/src/functions.ts.html +1 -1
  24. package/coverage/lcov-report/src/index.html +1 -1
  25. package/coverage/lcov-report/src/lazy.light.ts.html +4 -4
  26. package/coverage/lcov-report/src/logger/batch.ts.html +1 -1
  27. package/coverage/lcov-report/src/logger/console.ts.html +1 -1
  28. package/coverage/lcov-report/src/logger/index.html +1 -1
  29. package/coverage/lcov-report/src/logger/index.ts.html +1 -1
  30. package/coverage/lcov-report/src/logger/named.ts.html +1 -1
  31. package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
  32. package/coverage/lcov-report/src/math/arrays.ts.html +1 -1
  33. package/coverage/lcov-report/src/math/calc.ts.html +1 -1
  34. package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
  35. package/coverage/lcov-report/src/math/index.html +1 -1
  36. package/coverage/lcov-report/src/math/index.ts.html +1 -1
  37. package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
  38. package/coverage/lcov-report/src/types.ts.html +1 -1
  39. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
  40. package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
  41. package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
  42. package/coverage/lcov-report/src/validation/index.html +1 -1
  43. package/coverage/lcov-report/src/validation/index.ts.html +1 -1
  44. package/coverage/lcov-report/src/validation/types.ts.html +6 -6
  45. package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
  46. package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
  47. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +25 -10
  48. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +20 -8
  49. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +24 -9
  50. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +51 -24
  51. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +74 -50
  52. package/coverage/lcov-report/src/viewModels/index.html +53 -53
  53. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
  54. package/coverage/lcov.info +278 -250
  55. package/lib/validation/types.d.ts +5 -5
  56. package/lib/validation/types.d.ts.map +1 -1
  57. package/lib/validation/types.js.map +1 -1
  58. package/lib/validation/wrappers.d.ts +4 -3
  59. package/lib/validation/wrappers.d.ts.map +1 -1
  60. package/lib/viewModels/CommonModel.d.ts +12 -0
  61. package/lib/viewModels/CommonModel.d.ts.map +1 -0
  62. package/lib/viewModels/CommonModel.js +43 -0
  63. package/lib/viewModels/CommonModel.js.map +1 -0
  64. package/lib/viewModels/FlagModel.d.ts +1 -0
  65. package/lib/viewModels/FlagModel.d.ts.map +1 -1
  66. package/lib/viewModels/FlagModel.js +8 -1
  67. package/lib/viewModels/FlagModel.js.map +1 -1
  68. package/lib/viewModels/MultiSelectModel.d.ts.map +1 -1
  69. package/lib/viewModels/MultiSelectModel.js +3 -0
  70. package/lib/viewModels/MultiSelectModel.js.map +1 -1
  71. package/lib/viewModels/NumberModel.d.ts +1 -0
  72. package/lib/viewModels/NumberModel.d.ts.map +1 -1
  73. package/lib/viewModels/NumberModel.js +8 -1
  74. package/lib/viewModels/NumberModel.js.map +1 -1
  75. package/lib/viewModels/SelectModel.d.ts +1 -0
  76. package/lib/viewModels/SelectModel.d.ts.map +1 -1
  77. package/lib/viewModels/SelectModel.js +24 -14
  78. package/lib/viewModels/SelectModel.js.map +1 -1
  79. package/lib/viewModels/TextModel.d.ts +4 -3
  80. package/lib/viewModels/TextModel.d.ts.map +1 -1
  81. package/lib/viewModels/TextModel.js +28 -24
  82. package/lib/viewModels/TextModel.js.map +1 -1
  83. package/lib/viewModels/Validatable.d.ts +10 -10
  84. package/lib/viewModels/Validatable.d.ts.map +1 -1
  85. package/lib/viewModels/Validatable.js +19 -13
  86. package/lib/viewModels/Validatable.js.map +1 -1
  87. package/lib/viewModels/index.d.ts +1 -0
  88. package/lib/viewModels/index.d.ts.map +1 -1
  89. package/lib/viewModels/index.js +1 -0
  90. package/lib/viewModels/index.js.map +1 -1
  91. package/package.json +1 -1
  92. package/src/validation/types.ts +5 -5
  93. package/src/viewModels/CommonModel.ts +40 -0
  94. package/src/viewModels/FlagModel.ts +6 -1
  95. package/src/viewModels/MultiSelectModel.ts +4 -0
  96. package/src/viewModels/NumberModel.ts +6 -1
  97. package/src/viewModels/SelectModel.ts +11 -2
  98. package/src/viewModels/TextModel.ts +24 -15
  99. package/src/viewModels/Validatable.ts +29 -21
  100. package/src/viewModels/index.ts +1 -0
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">64% </span>
26
+ <span class="strong">67.86% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>16/25</span>
28
+ <span class='fraction'>19/28</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">37.5% </span>
40
+ <span class="strong">44.44% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>3/8</span>
42
+ <span class='fraction'>4/9</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">55% </span>
47
+ <span class="strong">59.09% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>11/20</span>
49
+ <span class='fraction'>13/22</span>
50
50
  </div>
51
51
 
52
52
 
@@ -115,7 +115,12 @@
115
115
  <a name='L56'></a><a href='#L56'>56</a>
116
116
  <a name='L57'></a><a href='#L57'>57</a>
117
117
  <a name='L58'></a><a href='#L58'>58</a>
118
- <a name='L59'></a><a href='#L59'>59</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
118
+ <a name='L59'></a><a href='#L59'>59</a>
119
+ <a name='L60'></a><a href='#L60'>60</a>
120
+ <a name='L61'></a><a href='#L61'>61</a>
121
+ <a name='L62'></a><a href='#L62'>62</a>
122
+ <a name='L63'></a><a href='#L63'>63</a>
123
+ <a name='L64'></a><a href='#L64'>64</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
119
124
  <span class="cline-any cline-neutral">&nbsp;</span>
120
125
  <span class="cline-any cline-neutral">&nbsp;</span>
121
126
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -144,7 +149,12 @@
144
149
  <span class="cline-any cline-neutral">&nbsp;</span>
145
150
  <span class="cline-any cline-neutral">&nbsp;</span>
146
151
  <span class="cline-any cline-neutral">&nbsp;</span>
147
- <span class="cline-any cline-yes">38x</span>
152
+ <span class="cline-any cline-yes">50x</span>
153
+ <span class="cline-any cline-neutral">&nbsp;</span>
154
+ <span class="cline-any cline-neutral">&nbsp;</span>
155
+ <span class="cline-any cline-neutral">&nbsp;</span>
156
+ <span class="cline-any cline-yes">17x</span>
157
+ <span class="cline-any cline-yes">50x</span>
148
158
  <span class="cline-any cline-neutral">&nbsp;</span>
149
159
  <span class="cline-any cline-neutral">&nbsp;</span>
150
160
  <span class="cline-any cline-no">&nbsp;</span>
@@ -202,8 +212,13 @@ export class FlagModel implements IFlagModel, IFlagModelReadonly {
202
212
  }
203
213
  &nbsp;
204
214
  set value(value: boolean) {
205
- this._value = value;
215
+ this.setValue(value);
206
216
  }
217
+ &nbsp;
218
+ @action
219
+ public readonly setValue = (value: boolean) =&gt; {
220
+ this._value = value;
221
+ };
207
222
  &nbsp;
208
223
  <span class="fstat-no" title="function not covered" > get i</span>sDefault() { <span class="cstat-no" title="statement not covered" >return this._value === false; </span>}
209
224
  &nbsp;
@@ -238,7 +253,7 @@ export class FlagModel implements IFlagModel, IFlagModelReadonly {
238
253
  <div class='footer quiet pad2 space-top1 center small'>
239
254
  Code coverage generated by
240
255
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
241
- at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
256
+ at Mon Jan 31 2022 14:31:00 GMT+0000 (Coordinated Universal Time)
242
257
  </div>
243
258
  </div>
244
259
  <script src="../../prettify.js"></script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">77.67% </span>
26
+ <span class="strong">77.14% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>80/103</span>
28
+ <span class='fraction'>81/105</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">43.75% </span>
33
+ <span class="strong">44.44% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>7/16</span>
35
+ <span class='fraction'>8/18</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">77.11% </span>
47
+ <span class="strong">76.47% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>64/83</span>
49
+ <span class='fraction'>65/85</span>
50
50
  </div>
51
51
 
52
52
 
@@ -221,7 +221,11 @@
221
221
  <a name='L162'></a><a href='#L162'>162</a>
222
222
  <a name='L163'></a><a href='#L163'>163</a>
223
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>
224
+ <a name='L165'></a><a href='#L165'>165</a>
225
+ <a name='L166'></a><a href='#L166'>166</a>
226
+ <a name='L167'></a><a href='#L167'>167</a>
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>
225
229
  <span class="cline-any cline-yes">1x</span>
226
230
  <span class="cline-any cline-yes">1x</span>
227
231
  <span class="cline-any cline-yes">1x</span>
@@ -333,6 +337,10 @@
333
337
  <span class="cline-any cline-neutral">&nbsp;</span>
334
338
  <span class="cline-any cline-neutral">&nbsp;</span>
335
339
  <span class="cline-any cline-yes">8x</span>
340
+ <span class="cline-any cline-no">&nbsp;</span>
341
+ <span class="cline-any cline-neutral">&nbsp;</span>
342
+ <span class="cline-any cline-neutral">&nbsp;</span>
343
+ <span class="cline-any cline-yes">8x</span>
336
344
  <span class="cline-any cline-yes">8x</span>
337
345
  <span class="cline-any cline-neutral">&nbsp;</span>
338
346
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -495,6 +503,10 @@ export class MultiSelect&lt;T = any&gt; extends ValidatableModel&lt;ReadonlyArra
495
503
  } else {
496
504
  this._indexes.delete(index);
497
505
  }
506
+ &nbsp;
507
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (this._validateOnChange) {
508
+ <span class="cstat-no" title="statement not covered" > this.validate();</span>
509
+ }
498
510
  &nbsp;
499
511
  <span class="missing-if-branch" title="else path not taken" >E</span>if (!this._flags.hasValue) {
500
512
  return;
@@ -556,7 +568,7 @@ export class MultiSelectString&lt;T extends string = string&gt; extends MultiSel
556
568
  <div class='footer quiet pad2 space-top1 center small'>
557
569
  Code coverage generated by
558
570
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
559
- at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
571
+ at Mon Jan 31 2022 14:31:00 GMT+0000 (Coordinated Universal Time)
560
572
  </div>
561
573
  </div>
562
574
  <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">80.95% </span>
26
+ <span class="strong">83.33% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>17/21</span>
28
+ <span class='fraction'>20/24</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">42.86% </span>
40
+ <span class="strong">50% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>3/7</span>
42
+ <span class='fraction'>4/8</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">86.67% </span>
47
+ <span class="strong">88.24% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>13/15</span>
49
+ <span class='fraction'>15/17</span>
50
50
  </div>
51
51
 
52
52
 
@@ -96,7 +96,12 @@
96
96
  <a name='L37'></a><a href='#L37'>37</a>
97
97
  <a name='L38'></a><a href='#L38'>38</a>
98
98
  <a name='L39'></a><a href='#L39'>39</a>
99
- <a name='L40'></a><a href='#L40'>40</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
99
+ <a name='L40'></a><a href='#L40'>40</a>
100
+ <a name='L41'></a><a href='#L41'>41</a>
101
+ <a name='L42'></a><a href='#L42'>42</a>
102
+ <a name='L43'></a><a href='#L43'>43</a>
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">1x</span>
100
105
  <span class="cline-any cline-neutral">&nbsp;</span>
101
106
  <span class="cline-any cline-neutral">&nbsp;</span>
102
107
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -120,6 +125,11 @@
120
125
  <span class="cline-any cline-yes">2x</span>
121
126
  <span class="cline-any cline-yes">1x</span>
122
127
  <span class="cline-any cline-neutral">&nbsp;</span>
128
+ <span class="cline-any cline-neutral">&nbsp;</span>
129
+ <span class="cline-any cline-yes">3x</span>
130
+ <span class="cline-any cline-yes">1x</span>
131
+ <span class="cline-any cline-neutral">&nbsp;</span>
132
+ <span class="cline-any cline-neutral">&nbsp;</span>
123
133
  <span class="cline-any cline-no">&nbsp;</span>
124
134
  <span class="cline-any cline-neutral">&nbsp;</span>
125
135
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -157,7 +167,12 @@ export class NumberModel implements INumberModel, IValueModel&lt;number&gt; {
157
167
  }
158
168
  &nbsp;
159
169
  get value() { return this._value; }
160
- set value(v: number) { this._value = v; }
170
+ set value(v: number) { this.setValue(v); }
171
+ &nbsp;
172
+ @action
173
+ public readonly setValue = (v: number) =&gt; {
174
+ this._value = v;
175
+ };
161
176
  &nbsp;
162
177
  <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>}
163
178
  &nbsp;
@@ -181,7 +196,7 @@ export default NumberModel;
181
196
  <div class='footer quiet pad2 space-top1 center small'>
182
197
  Code coverage generated by
183
198
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
184
- at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
199
+ at Mon Jan 31 2022 14:31:00 GMT+0000 (Coordinated Universal Time)
185
200
  </div>
186
201
  </div>
187
202
  <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">95.16% </span>
26
+ <span class="strong">91.04% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>59/62</span>
28
+ <span class='fraction'>61/67</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">93.75% </span>
33
+ <span class="strong">83.33% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>15/16</span>
35
+ <span class='fraction'>15/18</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">88% </span>
40
+ <span class="strong">84.62% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>22/25</span>
42
+ <span class='fraction'>22/26</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">94.64% </span>
47
+ <span class="strong">90% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>53/56</span>
49
+ <span class='fraction'>54/60</span>
50
50
  </div>
51
51
 
52
52
 
@@ -185,7 +185,16 @@
185
185
  <a name='L126'></a><a href='#L126'>126</a>
186
186
  <a name='L127'></a><a href='#L127'>127</a>
187
187
  <a name='L128'></a><a href='#L128'>128</a>
188
- <a name='L129'></a><a href='#L129'>129</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
188
+ <a name='L129'></a><a href='#L129'>129</a>
189
+ <a name='L130'></a><a href='#L130'>130</a>
190
+ <a name='L131'></a><a href='#L131'>131</a>
191
+ <a name='L132'></a><a href='#L132'>132</a>
192
+ <a name='L133'></a><a href='#L133'>133</a>
193
+ <a name='L134'></a><a href='#L134'>134</a>
194
+ <a name='L135'></a><a href='#L135'>135</a>
195
+ <a name='L136'></a><a href='#L136'>136</a>
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>
189
198
  <span class="cline-any cline-yes">1x</span>
190
199
  <span class="cline-any cline-yes">1x</span>
191
200
  <span class="cline-any cline-yes">1x</span>
@@ -215,7 +224,7 @@
215
224
  <span class="cline-any cline-yes">5x</span>
216
225
  <span class="cline-any cline-neutral">&nbsp;</span>
217
226
  <span class="cline-any cline-neutral">&nbsp;</span>
218
- <span class="cline-any cline-yes">1x</span>
227
+ <span class="cline-any cline-no">&nbsp;</span>
219
228
  <span class="cline-any cline-neutral">&nbsp;</span>
220
229
  <span class="cline-any cline-neutral">&nbsp;</span>
221
230
  <span class="cline-any cline-yes">1x</span>
@@ -245,7 +254,7 @@
245
254
  <span class="cline-any cline-neutral">&nbsp;</span>
246
255
  <span class="cline-any cline-neutral">&nbsp;</span>
247
256
  <span class="cline-any cline-neutral">&nbsp;</span>
248
- <span class="cline-any cline-yes">5x</span>
257
+ <span class="cline-any cline-yes">4x</span>
249
258
  <span class="cline-any cline-neutral">&nbsp;</span>
250
259
  <span class="cline-any cline-neutral">&nbsp;</span>
251
260
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -263,20 +272,29 @@
263
272
  <span class="cline-any cline-neutral">&nbsp;</span>
264
273
  <span class="cline-any cline-neutral">&nbsp;</span>
265
274
  <span class="cline-any cline-yes">16x</span>
266
- <span class="cline-any cline-yes">4x</span>
267
275
  <span class="cline-any cline-neutral">&nbsp;</span>
268
276
  <span class="cline-any cline-neutral">&nbsp;</span>
269
- <span class="cline-any cline-yes">12x</span>
277
+ <span class="cline-any cline-neutral">&nbsp;</span>
278
+ <span class="cline-any cline-yes">5x</span>
279
+ <span class="cline-any cline-yes">16x</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-neutral">&nbsp;</span>
283
+ <span class="cline-any cline-yes">16x</span>
284
+ <span class="cline-any cline-neutral">&nbsp;</span>
285
+ <span class="cline-any cline-yes">16x</span>
286
+ <span class="cline-any cline-no">&nbsp;</span>
287
+ <span class="cline-any cline-neutral">&nbsp;</span>
270
288
  <span class="cline-any cline-neutral">&nbsp;</span>
271
289
  <span class="cline-any cline-neutral">&nbsp;</span>
272
- <span class="cline-any cline-yes">12x</span>
273
- <span class="cline-any cline-yes">12x</span>
290
+ <span class="cline-any cline-yes">16x</span>
291
+ <span class="cline-any cline-yes">16x</span>
274
292
  <span class="cline-any cline-neutral">&nbsp;</span>
275
- <span class="cline-any cline-yes">12x</span>
276
- <span class="cline-any cline-yes">33x</span>
293
+ <span class="cline-any cline-yes">16x</span>
294
+ <span class="cline-any cline-yes">45x</span>
277
295
  <span class="cline-any cline-neutral">&nbsp;</span>
278
296
  <span class="cline-any cline-neutral">&nbsp;</span>
279
- <span class="cline-any cline-yes">12x</span>
297
+ <span class="cline-any cline-yes">16x</span>
280
298
  <span class="cline-any cline-neutral">&nbsp;</span>
281
299
  <span class="cline-any cline-neutral">&nbsp;</span>
282
300
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -314,7 +332,7 @@
314
332
  <span class="cline-any cline-neutral">&nbsp;</span>
315
333
  <span class="cline-any cline-neutral">&nbsp;</span>
316
334
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { createLazy } from '../lazy.light';
317
- import { observable, computed, makeObservable, reaction } from 'mobx';
335
+ import { observable, computed, makeObservable, reaction, action } from 'mobx';
318
336
  import { FlagModel, ILabeledFlagModel } from './FlagModel';
319
337
  import { ValidatableModel } from './Validatable';
320
338
  import { IValueModel } from './types';
@@ -343,7 +361,7 @@ export class Select&lt;T = any&gt; extends ValidatableModel&lt;T&gt; implements
343
361
  this._index = initialIndex;
344
362
  }
345
363
  &nbsp;
346
- protected get valueToValidate() { return this.selectedItem; }
364
+ <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>}
347
365
  &nbsp;
348
366
  @computed
349
367
  get values(): readonly string[] {
@@ -390,11 +408,20 @@ export class Select&lt;T = any&gt; extends ValidatableModel&lt;T&gt; implements
390
408
  }
391
409
  &nbsp;
392
410
  set index(val: number) {
393
- if (this._indexLocked) {
394
- return;
411
+ this.setIndex(val);
412
+ }
413
+ &nbsp;
414
+ @action
415
+ public setIndex = (val: number) =&gt; {
416
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (this._indexLocked) {
417
+ <span class="cstat-no" title="statement not covered" > return;</span>
395
418
  }
396
419
  &nbsp;
397
420
  this._index = val;
421
+ &nbsp;
422
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (this._validateOnChange) {
423
+ <span class="cstat-no" title="statement not covered" > this.validate();</span>
424
+ }
398
425
  &nbsp;
399
426
  // update all flags to be properly selected
400
427
  try {
@@ -406,7 +433,7 @@ export class Select&lt;T = any&gt; extends ValidatableModel&lt;T&gt; implements
406
433
  } finally {
407
434
  this._indexLocked = false;
408
435
  }
409
- }
436
+ };
410
437
  &nbsp;
411
438
  reset = () =&gt; {
412
439
  super.reset();
@@ -448,7 +475,7 @@ export class SelectString&lt;T extends string = string&gt; extends Select&lt;T&g
448
475
  <div class='footer quiet pad2 space-top1 center small'>
449
476
  Code coverage generated by
450
477
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
451
- at Thu Jan 20 2022 17:54:25 GMT+0000 (Coordinated Universal Time)
478
+ at Mon Jan 31 2022 14:31:00 GMT+0000 (Coordinated Universal Time)
452
479
  </div>
453
480
  </div>
454
481
  <script src="../../prettify.js"></script>