@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
@@ -139,7 +139,7 @@ export default {
139
139
  <div class='footer quiet pad2 space-top1 center small'>
140
140
  Code coverage generated by
141
141
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
142
- at Mon Nov 29 2021 07:49:53 GMT+0000 (Coordinated Universal Time)
142
+ at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
143
143
  </div>
144
144
  </div>
145
145
  <script src="../../prettify.js"></script>
@@ -208,7 +208,7 @@ export function <span class="fstat-no" title="function not covered" >validateObj
208
208
  <div class='footer quiet pad2 space-top1 center small'>
209
209
  Code coverage generated by
210
210
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
211
- at Mon Nov 29 2021 07:49:53 GMT+0000 (Coordinated Universal Time)
211
+ at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
212
212
  </div>
213
213
  </div>
214
214
  <script src="../../prettify.js"></script>
@@ -185,7 +185,7 @@
185
185
  <div class='footer quiet pad2 space-top1 center small'>
186
186
  Code coverage generated by
187
187
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
188
- at Mon Nov 29 2021 07:49:53 GMT+0000 (Coordinated Universal Time)
188
+ at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
189
189
  </div>
190
190
  </div>
191
191
  <script src="../../prettify.js"></script>
@@ -91,7 +91,7 @@ export * from './helpers';
91
91
  <div class='footer quiet pad2 space-top1 center small'>
92
92
  Code coverage generated by
93
93
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
94
- at Mon Nov 29 2021 07:49:53 GMT+0000 (Coordinated Universal Time)
94
+ at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
95
95
  </div>
96
96
  </div>
97
97
  <script src="../../prettify.js"></script>
@@ -109,7 +109,7 @@ export class ValidationError extends Error {
109
109
  <div class='footer quiet pad2 space-top1 center small'>
110
110
  Code coverage generated by
111
111
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
112
- at Mon Nov 29 2021 07:49:53 GMT+0000 (Coordinated Universal Time)
112
+ at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
113
113
  </div>
114
114
  </div>
115
115
  <script src="../../prettify.js"></script>
@@ -229,7 +229,7 @@ export const Validators = {
229
229
  <div class='footer quiet pad2 space-top1 center small'>
230
230
  Code coverage generated by
231
231
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
232
- at Mon Nov 29 2021 07:49:53 GMT+0000 (Coordinated Universal Time)
232
+ at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
233
233
  </div>
234
234
  </div>
235
235
  <script src="../../prettify.js"></script>
@@ -142,7 +142,7 @@ export const Wrappers = {
142
142
  <div class='footer quiet pad2 space-top1 center small'>
143
143
  Code coverage generated by
144
144
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
145
- at Mon Nov 29 2021 07:49:53 GMT+0000 (Coordinated Universal Time)
145
+ at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
146
146
  </div>
147
147
  </div>
148
148
  <script src="../../prettify.js"></script>
@@ -118,11 +118,11 @@
118
118
  <span class="cline-any cline-yes">3x</span>
119
119
  <span class="cline-any cline-neutral">&nbsp;</span>
120
120
  <span class="cline-any cline-neutral">&nbsp;</span>
121
- <span class="cline-any cline-yes">14x</span>
121
+ <span class="cline-any cline-yes">17x</span>
122
122
  <span class="cline-any cline-neutral">&nbsp;</span>
123
123
  <span class="cline-any cline-neutral">&nbsp;</span>
124
- <span class="cline-any cline-yes">14x</span>
125
- <span class="cline-any cline-yes">14x</span>
124
+ <span class="cline-any cline-yes">17x</span>
125
+ <span class="cline-any cline-yes">17x</span>
126
126
  <span class="cline-any cline-neutral">&nbsp;</span>
127
127
  <span class="cline-any cline-neutral">&nbsp;</span>
128
128
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -136,12 +136,12 @@
136
136
  <span class="cline-any cline-no">&nbsp;</span>
137
137
  <span class="cline-any cline-neutral">&nbsp;</span>
138
138
  <span class="cline-any cline-neutral">&nbsp;</span>
139
- <span class="cline-any cline-yes">14x</span>
139
+ <span class="cline-any cline-yes">17x</span>
140
140
  <span class="cline-any cline-no">&nbsp;</span>
141
141
  <span class="cline-any cline-neutral">&nbsp;</span>
142
142
  <span class="cline-any cline-neutral">&nbsp;</span>
143
143
  <span class="cline-any cline-neutral">&nbsp;</span>
144
- <span class="cline-any cline-yes">14x</span>
144
+ <span class="cline-any cline-yes">17x</span>
145
145
  <span class="cline-any cline-no">&nbsp;</span>
146
146
  <span class="cline-any cline-neutral">&nbsp;</span>
147
147
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -196,7 +196,7 @@ export class FlagModel implements IFlagModel, IFlagModelReadonly {
196
196
  <div class='footer quiet pad2 space-top1 center small'>
197
197
  Code coverage generated by
198
198
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
199
- at Mon Nov 29 2021 07:49:53 GMT+0000 (Coordinated Universal Time)
199
+ at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
200
200
  </div>
201
201
  </div>
202
202
  <script src="../../prettify.js"></script>
@@ -25,14 +25,14 @@
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'>6/6</span>
28
+ <span class='fraction'>5/5</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
33
+ <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/2</span>
35
+ <span class='fraction'>0/0</span>
36
36
  </div>
37
37
 
38
38
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>6/6</span>
49
+ <span class='fraction'>5/5</span>
50
50
  </div>
51
51
 
52
52
 
@@ -76,14 +76,20 @@
76
76
  <a name='L17'></a><a href='#L17'>17</a>
77
77
  <a name='L18'></a><a href='#L18'>18</a>
78
78
  <a name='L19'></a><a href='#L19'>19</a>
79
- <a name='L20'></a><a href='#L20'>20</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
80
- <span class="cline-any cline-yes">2x</span>
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
83
+ <span class="cline-any cline-neutral">&nbsp;</span>
84
+ <span class="cline-any cline-neutral">&nbsp;</span>
85
+ <span class="cline-any cline-neutral">&nbsp;</span>
81
86
  <span class="cline-any cline-neutral">&nbsp;</span>
82
87
  <span class="cline-any cline-neutral">&nbsp;</span>
83
88
  <span class="cline-any cline-neutral">&nbsp;</span>
84
89
  <span class="cline-any cline-neutral">&nbsp;</span>
85
90
  <span class="cline-any cline-neutral">&nbsp;</span>
86
- <span class="cline-any cline-yes">2x</span>
91
+ <span class="cline-any cline-neutral">&nbsp;</span>
92
+ <span class="cline-any cline-yes">1x</span>
87
93
  <span class="cline-any cline-neutral">&nbsp;</span>
88
94
  <span class="cline-any cline-neutral">&nbsp;</span>
89
95
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -95,23 +101,26 @@
95
101
  <span class="cline-any cline-yes">9x</span>
96
102
  <span class="cline-any cline-neutral">&nbsp;</span>
97
103
  <span class="cline-any cline-neutral">&nbsp;</span>
98
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { Getter } from '../types';
99
- import { FlagModel, IFlagModel, IFlagModelReadonly } from './FlagModel';
100
- import { ILabel } from './labeled';
104
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { FlagModel, IFlagModel, IFlagModelReadonly } from './FlagModel';
105
+ &nbsp;
106
+ export interface ILabeledFlagModelReadonly&lt;T = string&gt; extends IFlagModelReadonly {
107
+ readonly label: T;
108
+ }
101
109
  &nbsp;
102
- export type ILabeledFlagModel&lt;T = string&gt; = ILabel&lt;T&gt; &amp; IFlagModel;
103
- export type ILabeledFlagModelReadonly&lt;T = string&gt; = ILabel&lt;T&gt; &amp; IFlagModelReadonly;
110
+ export interface ILabeledFlagModel&lt;T = string&gt; extends IFlagModel {
111
+ readonly label: T;
112
+ }
104
113
  &nbsp;
105
114
  export class LabeledFlagModel&lt;T = string&gt; extends FlagModel implements ILabeledFlagModelReadonly&lt;T&gt;, ILabeledFlagModel&lt;T&gt; {
106
- private readonly _label: Getter&lt;T&gt;;
115
+ private _label: T;
107
116
  &nbsp;
108
- constructor(label: Getter&lt;T&gt; = <span class="branch-0 cbranch-no" title="branch not covered" >null,</span> initial = <span class="branch-0 cbranch-no" title="branch not covered" >false)</span> {
109
- super(initial);
117
+ constructor(label: T) {
118
+ super();
110
119
  this._label = label;
111
120
  }
112
121
  &nbsp;
113
122
  get label() {
114
- return Getter.getValue(this._label);
123
+ return this._label;
115
124
  }
116
125
  }
117
126
  &nbsp;</pre></td></tr></table></pre>
@@ -121,7 +130,7 @@ export class LabeledFlagModel&lt;T = string&gt; extends FlagModel implements ILa
121
130
  <div class='footer quiet pad2 space-top1 center small'>
122
131
  Code coverage generated by
123
132
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
124
- at Sun Nov 21 2021 10:41:54 GMT+0000 (Coordinated Universal Time)
133
+ at Fri Nov 19 2021 19:36:26 GMT+0000 (Coordinated Universal Time)
125
134
  </div>
126
135
  </div>
127
136
  <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">47.47% </span>
26
+ <span class="strong">77.67% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>47/99</span>
28
+ <span class='fraction'>80/103</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">6.25% </span>
33
+ <span class="strong">43.75% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>1/16</span>
35
+ <span class='fraction'>7/16</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">20% </span>
40
+ <span class="strong">66.67% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>8/40</span>
42
+ <span class='fraction'>28/42</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">49.38% </span>
47
+ <span class="strong">77.11% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>40/81</span>
49
+ <span class='fraction'>64/83</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 low'></div>
58
+ <div class='status-line medium'></div>
59
59
  <pre><table class="coverage">
60
60
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
61
  <a name='L2'></a><a href='#L2'>2</a>
@@ -218,7 +218,10 @@
218
218
  <a name='L159'></a><a href='#L159'>159</a>
219
219
  <a name='L160'></a><a href='#L160'>160</a>
220
220
  <a name='L161'></a><a href='#L161'>161</a>
221
- <a name='L162'></a><a href='#L162'>162</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
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>
222
225
  <span class="cline-any cline-yes">1x</span>
223
226
  <span class="cline-any cline-yes">1x</span>
224
227
  <span class="cline-any cline-yes">1x</span>
@@ -230,56 +233,56 @@
230
233
  <span class="cline-any cline-yes">1x</span>
231
234
  <span class="cline-any cline-neutral">&nbsp;</span>
232
235
  <span class="cline-any cline-neutral">&nbsp;</span>
233
- <span class="cline-any cline-yes">3x</span>
236
+ <span class="cline-any cline-yes">6x</span>
234
237
  <span class="cline-any cline-neutral">&nbsp;</span>
235
- <span class="cline-any cline-yes">3x</span>
236
- <span class="cline-any cline-yes">3x</span>
238
+ <span class="cline-any cline-yes">6x</span>
239
+ <span class="cline-any cline-yes">6x</span>
237
240
  <span class="cline-any cline-neutral">&nbsp;</span>
238
- <span class="cline-any cline-yes">3x</span>
239
- <span class="cline-any cline-yes">3x</span>
241
+ <span class="cline-any cline-yes">6x</span>
242
+ <span class="cline-any cline-yes">6x</span>
240
243
  <span class="cline-any cline-neutral">&nbsp;</span>
241
244
  <span class="cline-any cline-neutral">&nbsp;</span>
242
- <span class="cline-any cline-yes">3x</span>
243
- <span class="cline-any cline-yes">3x</span>
245
+ <span class="cline-any cline-yes">6x</span>
246
+ <span class="cline-any cline-yes">6x</span>
244
247
  <span class="cline-any cline-neutral">&nbsp;</span>
245
248
  <span class="cline-any cline-neutral">&nbsp;</span>
246
- <span class="cline-any cline-yes">3x</span>
247
- <span class="cline-any cline-yes">3x</span>
248
- <span class="cline-any cline-yes">3x</span>
249
- <span class="cline-any cline-yes">3x</span>
249
+ <span class="cline-any cline-yes">6x</span>
250
+ <span class="cline-any cline-yes">6x</span>
251
+ <span class="cline-any cline-yes">6x</span>
252
+ <span class="cline-any cline-yes">6x</span>
250
253
  <span class="cline-any cline-neutral">&nbsp;</span>
251
254
  <span class="cline-any cline-neutral">&nbsp;</span>
252
255
  <span class="cline-any cline-neutral">&nbsp;</span>
253
- <span class="cline-any cline-yes">1x</span>
256
+ <span class="cline-any cline-yes">25x</span>
254
257
  <span class="cline-any cline-neutral">&nbsp;</span>
255
- <span class="cline-any cline-yes">1x</span>
258
+ <span class="cline-any cline-yes">7x</span>
256
259
  <span class="cline-any cline-neutral">&nbsp;</span>
257
260
  <span class="cline-any cline-no">&nbsp;</span>
258
261
  <span class="cline-any cline-neutral">&nbsp;</span>
259
262
  <span class="cline-any cline-neutral">&nbsp;</span>
260
263
  <span class="cline-any cline-yes">1x</span>
261
- <span class="cline-any cline-yes">4x</span>
264
+ <span class="cline-any cline-yes">49x</span>
262
265
  <span class="cline-any cline-neutral">&nbsp;</span>
263
266
  <span class="cline-any cline-neutral">&nbsp;</span>
264
267
  <span class="cline-any cline-neutral">&nbsp;</span>
265
268
  <span class="cline-any cline-yes">1x</span>
266
- <span class="cline-any cline-no">&nbsp;</span>
269
+ <span class="cline-any cline-yes">9x</span>
267
270
  <span class="cline-any cline-neutral">&nbsp;</span>
268
271
  <span class="cline-any cline-neutral">&nbsp;</span>
269
272
  <span class="cline-any cline-neutral">&nbsp;</span>
270
273
  <span class="cline-any cline-yes">1x</span>
271
- <span class="cline-any cline-no">&nbsp;</span>
272
- <span class="cline-any cline-no">&nbsp;</span>
274
+ <span class="cline-any cline-yes">21x</span>
275
+ <span class="cline-any cline-yes">21x</span>
273
276
  <span class="cline-any cline-neutral">&nbsp;</span>
274
277
  <span class="cline-any cline-neutral">&nbsp;</span>
275
278
  <span class="cline-any cline-no">&nbsp;</span>
276
279
  <span class="cline-any cline-no">&nbsp;</span>
277
280
  <span class="cline-any cline-neutral">&nbsp;</span>
278
- <span class="cline-any cline-yes">1x</span>
279
- <span class="cline-any cline-no">&nbsp;</span>
281
+ <span class="cline-any cline-yes">11x</span>
282
+ <span class="cline-any cline-yes">18x</span>
280
283
  <span class="cline-any cline-neutral">&nbsp;</span>
281
- <span class="cline-any cline-no">&nbsp;</span>
282
- <span class="cline-any cline-no">&nbsp;</span>
284
+ <span class="cline-any cline-yes">4x</span>
285
+ <span class="cline-any cline-yes">4x</span>
283
286
  <span class="cline-any cline-no">&nbsp;</span>
284
287
  <span class="cline-any cline-neutral">&nbsp;</span>
285
288
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -287,50 +290,50 @@
287
290
  <span class="cline-any cline-neutral">&nbsp;</span>
288
291
  <span class="cline-any cline-no">&nbsp;</span>
289
292
  <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-yes">3x</span>
291
- <span class="cline-any cline-no">&nbsp;</span>
292
- <span class="cline-any cline-no">&nbsp;</span>
293
- <span class="cline-any cline-no">&nbsp;</span>
293
+ <span class="cline-any cline-yes">6x</span>
294
+ <span class="cline-any cline-yes">4x</span>
295
+ <span class="cline-any cline-yes">4x</span>
296
+ <span class="cline-any cline-yes">4x</span>
294
297
  <span class="cline-any cline-neutral">&nbsp;</span>
295
298
  <span class="cline-any cline-neutral">&nbsp;</span>
296
299
  <span class="cline-any cline-neutral">&nbsp;</span>
297
- <span class="cline-any cline-yes">3x</span>
298
- <span class="cline-any cline-yes">3x</span>
300
+ <span class="cline-any cline-yes">6x</span>
301
+ <span class="cline-any cline-yes">6x</span>
299
302
  <span class="cline-any cline-neutral">&nbsp;</span>
300
303
  <span class="cline-any cline-neutral">&nbsp;</span>
301
- <span class="cline-any cline-yes">3x</span>
302
- <span class="cline-any cline-no">&nbsp;</span>
304
+ <span class="cline-any cline-yes">6x</span>
305
+ <span class="cline-any cline-yes">1x</span>
303
306
  <span class="cline-any cline-neutral">&nbsp;</span>
304
307
  <span class="cline-any cline-neutral">&nbsp;</span>
305
- <span class="cline-any cline-yes">3x</span>
306
- <span class="cline-any cline-no">&nbsp;</span>
307
- <span class="cline-any cline-no">&nbsp;</span>
308
- <span class="cline-any cline-no">&nbsp;</span>
308
+ <span class="cline-any cline-yes">6x</span>
309
+ <span class="cline-any cline-yes">2x</span>
310
+ <span class="cline-any cline-yes">2x</span>
311
+ <span class="cline-any cline-yes">2x</span>
309
312
  <span class="cline-any cline-neutral">&nbsp;</span>
310
313
  <span class="cline-any cline-neutral">&nbsp;</span>
311
314
  <span class="cline-any cline-neutral">&nbsp;</span>
312
- <span class="cline-any cline-yes">3x</span>
313
- <span class="cline-any cline-yes">3x</span>
315
+ <span class="cline-any cline-yes">6x</span>
316
+ <span class="cline-any cline-yes">6x</span>
314
317
  <span class="cline-any cline-neutral">&nbsp;</span>
315
318
  <span class="cline-any cline-neutral">&nbsp;</span>
316
- <span class="cline-any cline-yes">3x</span>
319
+ <span class="cline-any cline-yes">6x</span>
317
320
  <span class="cline-any cline-no">&nbsp;</span>
318
321
  <span class="cline-any cline-neutral">&nbsp;</span>
319
322
  <span class="cline-any cline-neutral">&nbsp;</span>
320
323
  <span class="cline-any cline-neutral">&nbsp;</span>
321
- <span class="cline-any cline-yes">3x</span>
322
- <span class="cline-any cline-no">&nbsp;</span>
324
+ <span class="cline-any cline-yes">6x</span>
325
+ <span class="cline-any cline-yes">8x</span>
323
326
  <span class="cline-any cline-no">&nbsp;</span>
324
327
  <span class="cline-any cline-neutral">&nbsp;</span>
325
328
  <span class="cline-any cline-neutral">&nbsp;</span>
326
- <span class="cline-any cline-no">&nbsp;</span>
327
- <span class="cline-any cline-no">&nbsp;</span>
329
+ <span class="cline-any cline-yes">8x</span>
330
+ <span class="cline-any cline-yes">5x</span>
328
331
  <span class="cline-any cline-neutral">&nbsp;</span>
329
- <span class="cline-any cline-no">&nbsp;</span>
332
+ <span class="cline-any cline-yes">3x</span>
330
333
  <span class="cline-any cline-neutral">&nbsp;</span>
331
334
  <span class="cline-any cline-neutral">&nbsp;</span>
332
- <span class="cline-any cline-no">&nbsp;</span>
333
- <span class="cline-any cline-no">&nbsp;</span>
335
+ <span class="cline-any cline-yes">8x</span>
336
+ <span class="cline-any cline-yes">8x</span>
334
337
  <span class="cline-any cline-neutral">&nbsp;</span>
335
338
  <span class="cline-any cline-neutral">&nbsp;</span>
336
339
  <span class="cline-any cline-no">&nbsp;</span>
@@ -341,16 +344,19 @@
341
344
  <span class="cline-any cline-neutral">&nbsp;</span>
342
345
  <span class="cline-any cline-neutral">&nbsp;</span>
343
346
  <span class="cline-any cline-neutral">&nbsp;</span>
344
- <span class="cline-any cline-yes">3x</span>
345
- <span class="cline-any cline-no">&nbsp;</span>
346
- <span class="cline-any cline-no">&nbsp;</span>
347
+ <span class="cline-any cline-yes">6x</span>
348
+ <span class="cline-any cline-yes">6x</span>
347
349
  <span class="cline-any cline-neutral">&nbsp;</span>
350
+ <span class="cline-any cline-yes">6x</span>
351
+ <span class="cline-any cline-yes">1x</span>
352
+ <span class="cline-any cline-yes">1x</span>
348
353
  <span class="cline-any cline-neutral">&nbsp;</span>
349
354
  <span class="cline-any cline-neutral">&nbsp;</span>
350
- <span class="cline-any cline-yes">3x</span>
351
- <span class="cline-any cline-yes">3x</span>
352
355
  <span class="cline-any cline-neutral">&nbsp;</span>
353
- <span class="cline-any cline-yes">3x</span>
356
+ <span class="cline-any cline-yes">7x</span>
357
+ <span class="cline-any cline-yes">7x</span>
358
+ <span class="cline-any cline-neutral">&nbsp;</span>
359
+ <span class="cline-any cline-yes">7x</span>
354
360
  <span class="cline-any cline-no">&nbsp;</span>
355
361
  <span class="cline-any cline-neutral">&nbsp;</span>
356
362
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -376,7 +382,7 @@
376
382
  <span class="cline-any cline-yes">1x</span>
377
383
  <span class="cline-any cline-neutral">&nbsp;</span>
378
384
  <span class="cline-any cline-neutral">&nbsp;</span>
379
- <span class="cline-any cline-no">&nbsp;</span>
385
+ <span class="cline-any cline-yes">3x</span>
380
386
  <span class="cline-any cline-neutral">&nbsp;</span>
381
387
  <span class="cline-any cline-neutral">&nbsp;</span>
382
388
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { createLazy } from '../lazy.light';
@@ -423,24 +429,24 @@ export class MultiSelect&lt;T = any&gt; extends ValidatableModel&lt;ReadonlyArra
423
429
  }
424
430
  &nbsp;
425
431
  @computed
426
- <span class="fstat-no" title="function not covered" > get s</span>electedItems(): ReadonlyArray&lt;T&gt; {
427
- <span class="cstat-no" title="statement not covered" > return this.selectedIndexes.map(<span class="fstat-no" title="function not covered" >i </span>=&gt; <span class="cstat-no" title="statement not covered" >this._items[i])</span>;</span>
432
+ get selectedItems(): ReadonlyArray&lt;T&gt; {
433
+ return this.selectedIndexes.map(i =&gt; this._items[i]);
428
434
  }
429
435
  &nbsp;
430
436
  @computed
431
- <span class="fstat-no" title="function not covered" > get s</span>electedValues(): ReadonlyArray&lt;string&gt; {
432
- const values = <span class="cstat-no" title="statement not covered" >this.values;</span>
433
- <span class="cstat-no" title="statement not covered" > return this.selectedIndexes.map(<span class="fstat-no" title="function not covered" >i </span>=&gt; <span class="cstat-no" title="statement not covered" >values[i])</span>;</span>
437
+ get selectedValues(): ReadonlyArray&lt;string&gt; {
438
+ const values = this.values;
439
+ return this.selectedIndexes.map(i =&gt; values[i]);
434
440
  }
435
441
  &nbsp;
436
442
  <span class="fstat-no" title="function not covered" > get v</span>alue() { <span class="cstat-no" title="statement not covered" >return this.selectedValues; </span>}
437
443
  <span class="fstat-no" title="function not covered" > set v</span>alue(v: readonly string[]) { <span class="cstat-no" title="statement not covered" >this.selectValues(v); </span>}
438
444
  &nbsp;
439
445
  isIndexSelected(index: number) { return this._indexes.has(index); }
440
- <span class="fstat-no" title="function not covered" > isValueSelected(</span>value: string) { <span class="cstat-no" title="statement not covered" >return this.values.includes(value); </span>}
446
+ isValueSelected(value: string) { return this.selectedValues.includes(value); }
441
447
  &nbsp;
442
- <span class="fstat-no" title="function not covered" > get c</span>ount() { <span class="cstat-no" title="statement not covered" >return this._items.length; </span>}
443
- <span class="fstat-no" title="function not covered" > get s</span>electedCount() { <span class="cstat-no" title="statement not covered" >return this._indexes.size; </span>}
448
+ get count() { return this._items.length; }
449
+ get selectedCount() { return this._indexes.size; }
444
450
  <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>}
445
451
  &nbsp;
446
452
  @computed
@@ -448,30 +454,30 @@ export class MultiSelect&lt;T = any&gt; extends ValidatableModel&lt;ReadonlyArra
448
454
  &nbsp;
449
455
  <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>}
450
456
  &nbsp;
451
- setItemSelected = <span class="fstat-no" title="function not covered" >(i</span>tem: T, selected: boolean) =&gt; {
452
- const i = <span class="cstat-no" title="statement not covered" >this.items.indexOf(item);</span>
453
- <span class="cstat-no" title="statement not covered" > if (i &gt;= 0) {</span>
454
- <span class="cstat-no" title="statement not covered" > this.setIndexSelected(i, selected);</span>
457
+ setItemSelected = (item: T, selected: boolean) =&gt; {
458
+ const i = this.items.indexOf(item);
459
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (i &gt;= 0) {
460
+ this.setIndexSelected(i, selected);
455
461
  }
456
462
  };
457
463
  &nbsp;
458
- selectItem = <span class="fstat-no" title="function not covered" >(i</span>tem: T) =&gt; <span class="cstat-no" title="statement not covered" >this.setItemSelected(item, true);</span>
459
- deSelectItem = <span class="fstat-no" title="function not covered" >(i</span>tem: T) =&gt; <span class="cstat-no" title="statement not covered" >this.setItemSelected(item, false);</span>
464
+ selectItem = (item: T) =&gt; this.setItemSelected(item, true);
465
+ deSelectItem = (item: T) =&gt; this.setItemSelected(item, false);
460
466
  &nbsp;
461
467
  @action
462
- selectItems = <span class="fstat-no" title="function not covered" >(i</span>tems: readonly T[]) =&gt; {
463
- <span class="cstat-no" title="statement not covered" > items.forEach(this.selectItem);</span>
468
+ selectItems = (items: readonly T[]) =&gt; {
469
+ items.forEach(this.selectItem);
464
470
  };
465
471
  &nbsp;
466
- setValueSelected = <span class="fstat-no" title="function not covered" >(v</span>alue: string, selected: boolean) =&gt; {
467
- const i = <span class="cstat-no" title="statement not covered" >this.values.indexOf(value);</span>
468
- <span class="cstat-no" title="statement not covered" > if (i &gt;= 0) {</span>
469
- <span class="cstat-no" title="statement not covered" > this.setIndexSelected(i, selected);</span>
472
+ setValueSelected = (value: string, selected: boolean) =&gt; {
473
+ const i = this.values.indexOf(value);
474
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (i &gt;= 0) {
475
+ this.setIndexSelected(i, selected);
470
476
  }
471
477
  };
472
478
  &nbsp;
473
- selectValue = <span class="fstat-no" title="function not covered" >(v</span>alue: string) =&gt; <span class="cstat-no" title="statement not covered" >this.setValueSelected(value, true);</span>
474
- deSelectValue = <span class="fstat-no" title="function not covered" >(v</span>alue: string) =&gt; <span class="cstat-no" title="statement not covered" >this.setValueSelected(value, false);</span>
479
+ selectValue = (value: string) =&gt; this.setValueSelected(value, true);
480
+ deSelectValue = (value: string) =&gt; this.setValueSelected(value, false);
475
481
  &nbsp;
476
482
  @action
477
483
  selectValues = <span class="fstat-no" title="function not covered" >(v</span>alues: readonly string[]) =&gt; {
@@ -479,19 +485,19 @@ export class MultiSelect&lt;T = any&gt; extends ValidatableModel&lt;ReadonlyArra
479
485
  };
480
486
  &nbsp;
481
487
  @action
482
- setIndexSelected = <span class="fstat-no" title="function not covered" >(i</span>ndex: number, selected: boolean) =&gt; {
483
- <span class="cstat-no" title="statement not covered" > if (this._indexesLocked) {</span>
488
+ setIndexSelected = (index: number, selected: boolean) =&gt; {
489
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (this._indexesLocked) {
484
490
  <span class="cstat-no" title="statement not covered" > return;</span>
485
491
  }
486
492
  &nbsp;
487
- <span class="cstat-no" title="statement not covered" > if (selected) {</span>
488
- <span class="cstat-no" title="statement not covered" > this._indexes.add(index);</span>
493
+ if (selected) {
494
+ this._indexes.add(index);
489
495
  } else {
490
- <span class="cstat-no" title="statement not covered" > this._indexes.delete(index);</span>
496
+ this._indexes.delete(index);
491
497
  }
492
498
  &nbsp;
493
- <span class="cstat-no" title="statement not covered" > if (!this._flags.hasValue) {</span>
494
- <span class="cstat-no" title="statement not covered" > return;</span>
499
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (!this._flags.hasValue) {
500
+ return;
495
501
  }
496
502
  &nbsp;
497
503
  <span class="cstat-no" title="statement not covered" > try {</span>
@@ -502,9 +508,12 @@ export class MultiSelect&lt;T = any&gt; extends ValidatableModel&lt;ReadonlyArra
502
508
  }
503
509
  };
504
510
  &nbsp;
505
- reset = <span class="fstat-no" title="function not covered" >() =</span>&gt; {
506
- <span class="cstat-no" title="statement not covered" > super.reset();</span>
507
- <span class="cstat-no" title="statement not covered" > this.setInitialIndexes();</span>
511
+ selectIndex = (index: number) =&gt; this.setIndexSelected(index, true);
512
+ deSelectIndex = (index: number) =&gt; this.setIndexSelected(index, false);
513
+ &nbsp;
514
+ reset = () =&gt; {
515
+ super.reset();
516
+ this.setInitialIndexes();
508
517
  };
509
518
  &nbsp;
510
519
  private setInitialIndexes() {
@@ -536,8 +545,8 @@ export class MultiSelect&lt;T = any&gt; extends ValidatableModel&lt;ReadonlyArra
536
545
  &nbsp;
537
546
  export class MultiSelectString&lt;T extends string = string&gt; extends MultiSelect&lt;T&gt; {
538
547
  &nbsp;
539
- <span class="fstat-no" title="function not covered" > constructor(i</span>tems: ReadonlyArray&lt;T&gt;, ...selected: number[]) {
540
- <span class="cstat-no" title="statement not covered" > super(items, <span class="fstat-no" title="function not covered" >v </span>=&gt; <span class="cstat-no" title="statement not covered" >v,</span> ...selected);</span>
548
+ constructor(items: ReadonlyArray&lt;T&gt;, ...selected: number[]) {
549
+ super(items, v =&gt; v, ...selected);
541
550
  }
542
551
  }
543
552
  &nbsp;</pre></td></tr></table></pre>
@@ -547,7 +556,7 @@ export class MultiSelectString&lt;T extends string = string&gt; extends MultiSel
547
556
  <div class='footer quiet pad2 space-top1 center small'>
548
557
  Code coverage generated by
549
558
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
550
- at Mon Nov 29 2021 07:49:53 GMT+0000 (Coordinated Universal Time)
559
+ at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
551
560
  </div>
552
561
  </div>
553
562
  <script src="../../prettify.js"></script>
@@ -181,7 +181,7 @@ export default NumberModel;
181
181
  <div class='footer quiet pad2 space-top1 center small'>
182
182
  Code coverage generated by
183
183
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
184
- at Mon Nov 29 2021 07:49:53 GMT+0000 (Coordinated Universal Time)
184
+ at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
185
185
  </div>
186
186
  </div>
187
187
  <script src="../../prettify.js"></script>