@zajno/common 1.3.1 → 1.3.5
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.
- package/.github/workflows/CI.yml +8 -0
- package/coverage/clover.xml +449 -379
- package/coverage/coverage-final.json +20 -19
- package/coverage/lcov-report/index.html +43 -43
- package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
- package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +2 -2
- package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
- package/coverage/lcov-report/src/async/index.html +1 -1
- package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
- package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
- package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
- package/coverage/lcov-report/src/dates/format.ts.html +1 -1
- package/coverage/lcov-report/src/dates/index.html +1 -1
- package/coverage/lcov-report/src/dates/index.ts.html +1 -1
- package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
- package/coverage/lcov-report/src/dates/period.ts.html +1 -1
- package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
- package/coverage/lcov-report/src/dates/types.ts.html +1 -1
- package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
- package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
- package/coverage/lcov-report/src/event.ts.html +3 -3
- package/coverage/lcov-report/src/index.html +21 -21
- package/coverage/lcov-report/src/lazy.light.ts.html +3 -3
- package/coverage/lcov-report/src/logger/batch.ts.html +107 -0
- package/coverage/lcov-report/src/logger/console.ts.html +10 -25
- package/coverage/lcov-report/src/logger/index.html +54 -39
- package/coverage/lcov-report/src/logger/index.ts.html +88 -61
- package/coverage/lcov-report/src/logger/named.ts.html +31 -31
- package/coverage/lcov-report/src/logger/proxy.ts.html +13 -13
- package/coverage/lcov-report/src/math/arrays.ts.html +293 -32
- package/coverage/lcov-report/src/math/calc.ts.html +11 -11
- package/coverage/lcov-report/src/math/distribution.ts.html +2 -2
- package/coverage/lcov-report/src/math/index.html +11 -11
- package/coverage/lcov-report/src/math/index.ts.html +6 -6
- package/coverage/lcov-report/src/transitionObserver.ts.html +5 -5
- package/coverage/lcov-report/src/types.ts.html +33 -18
- package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
- package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
- package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
- package/coverage/lcov-report/src/validation/index.html +1 -1
- package/coverage/lcov-report/src/validation/index.ts.html +1 -1
- package/coverage/lcov-report/src/validation/types.ts.html +1 -1
- package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
- package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +21 -18
- package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +124 -94
- package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +19 -10
- package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +19 -10
- package/coverage/lcov-report/src/viewModels/Validatable.ts.html +45 -21
- package/coverage/lcov-report/src/viewModels/index.html +54 -54
- package/coverage/lcov-report/src/viewModels/wrappers.ts.html +3 -15
- package/coverage/lcov.info +915 -762
- package/lib/event.d.ts.map +1 -1
- package/lib/event.js +1 -1
- package/lib/event.js.map +1 -1
- package/lib/logger/batch.d.ts +3 -0
- package/lib/logger/batch.d.ts.map +1 -0
- package/lib/logger/batch.js +12 -0
- package/lib/logger/batch.js.map +1 -0
- package/lib/logger/console.d.ts +0 -1
- package/lib/logger/console.d.ts.map +1 -1
- package/lib/logger/console.js +0 -3
- package/lib/logger/console.js.map +1 -1
- package/lib/logger/file.d.ts +15 -0
- package/lib/logger/file.d.ts.map +1 -0
- package/lib/logger/file.js +43 -0
- package/lib/logger/file.js.map +1 -0
- package/lib/logger/index.d.ts +7 -6
- package/lib/logger/index.d.ts.map +1 -1
- package/lib/logger/index.js +34 -21
- package/lib/logger/index.js.map +1 -1
- package/lib/logger/named.js +3 -3
- package/lib/logger/named.js.map +1 -1
- package/lib/logger/proxy.d.ts +1 -1
- package/lib/logger/proxy.d.ts.map +1 -1
- package/lib/logger/proxy.js +2 -2
- package/lib/logger/proxy.js.map +1 -1
- package/lib/math/arrays.d.ts +16 -0
- package/lib/math/arrays.d.ts.map +1 -1
- package/lib/math/arrays.js +77 -1
- package/lib/math/arrays.js.map +1 -1
- package/lib/transitionObserver.d.ts.map +1 -1
- package/lib/transitionObserver.js +2 -2
- package/lib/transitionObserver.js.map +1 -1
- package/lib/types.d.ts +4 -0
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js +6 -2
- package/lib/types.js.map +1 -1
- package/lib/viewModels/FlagModel.d.ts +4 -4
- package/lib/viewModels/FlagModel.d.ts.map +1 -1
- package/lib/viewModels/FlagModel.js +1 -0
- package/lib/viewModels/FlagModel.js.map +1 -1
- package/lib/viewModels/MultiSelectModel.d.ts +8 -2
- package/lib/viewModels/MultiSelectModel.d.ts.map +1 -1
- package/lib/viewModels/MultiSelectModel.js +13 -2
- package/lib/viewModels/MultiSelectModel.js.map +1 -1
- package/lib/viewModels/NumberModel.d.ts +4 -2
- package/lib/viewModels/NumberModel.d.ts.map +1 -1
- package/lib/viewModels/NumberModel.js +1 -0
- package/lib/viewModels/NumberModel.js.map +1 -1
- package/lib/viewModels/PromptModal.d.ts.map +1 -1
- package/lib/viewModels/PromptModal.js +1 -1
- package/lib/viewModels/PromptModal.js.map +1 -1
- package/lib/viewModels/SelectModel.d.ts +4 -2
- package/lib/viewModels/SelectModel.d.ts.map +1 -1
- package/lib/viewModels/SelectModel.js +1 -0
- package/lib/viewModels/SelectModel.js.map +1 -1
- package/lib/viewModels/TextModel.d.ts +4 -3
- package/lib/viewModels/TextModel.d.ts.map +1 -1
- package/lib/viewModels/TextModel.js +5 -5
- package/lib/viewModels/TextModel.js.map +1 -1
- package/lib/viewModels/Validatable.d.ts +2 -1
- package/lib/viewModels/Validatable.d.ts.map +1 -1
- package/lib/viewModels/Validatable.js +7 -0
- package/lib/viewModels/Validatable.js.map +1 -1
- package/lib/viewModels/ValuesCollector.d.ts +1 -3
- package/lib/viewModels/ValuesCollector.d.ts.map +1 -1
- package/lib/viewModels/ValuesCollector.js.map +1 -1
- package/lib/viewModels/index.d.ts +1 -0
- package/lib/viewModels/index.d.ts.map +1 -1
- package/lib/viewModels/index.js +1 -0
- package/lib/viewModels/index.js.map +1 -1
- package/lib/viewModels/types.d.ts +16 -0
- package/lib/viewModels/types.d.ts.map +1 -0
- package/lib/viewModels/types.js +3 -0
- package/lib/viewModels/types.js.map +1 -0
- package/lib/viewModels/wrappers.d.ts +1 -4
- package/lib/viewModels/wrappers.d.ts.map +1 -1
- package/lib/viewModels/wrappers.js.map +1 -1
- package/package.json +1 -1
- package/src/event.ts +2 -2
- package/src/logger/__tests__/{index.test.ts → logger.test.ts} +97 -41
- package/src/logger/batch.ts +9 -0
- package/src/logger/console.ts +0 -5
- package/src/logger/file.ts +46 -0
- package/src/logger/index.ts +37 -28
- package/src/logger/named.ts +3 -3
- package/src/logger/proxy.ts +2 -2
- package/src/math/__tests__/arrays.test.ts +53 -0
- package/src/math/arrays.ts +87 -0
- package/src/transitionObserver.ts +2 -2
- package/src/types.ts +6 -1
- package/src/viewModels/FlagModel.ts +5 -4
- package/src/viewModels/MultiSelectModel.ts +14 -4
- package/src/viewModels/NumberModel.ts +5 -2
- package/src/viewModels/PromptModal.ts +1 -1
- package/src/viewModels/SelectModel.ts +5 -2
- package/src/viewModels/TextModel.ts +5 -4
- package/src/viewModels/Validatable.ts +8 -0
- package/src/viewModels/ValuesCollector.ts +1 -4
- package/src/viewModels/__tests__/multiSelect.test.ts +127 -12
- package/src/viewModels/index.ts +1 -0
- package/src/viewModels/types.ts +19 -0
- package/src/viewModels/wrappers.ts +1 -5
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">77.67% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
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">
|
|
33
|
+
<span class="strong">43.75% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
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">
|
|
40
|
+
<span class="strong">66.67% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
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">
|
|
47
|
+
<span class="strong">77.11% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
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
|
|
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>
|
|
@@ -211,7 +211,17 @@
|
|
|
211
211
|
<a name='L152'></a><a href='#L152'>152</a>
|
|
212
212
|
<a name='L153'></a><a href='#L153'>153</a>
|
|
213
213
|
<a name='L154'></a><a href='#L154'>154</a>
|
|
214
|
-
<a name='L155'></a><a href='#L155'>155</a
|
|
214
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
215
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
216
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
217
|
+
<a name='L158'></a><a href='#L158'>158</a>
|
|
218
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
|
219
|
+
<a name='L160'></a><a href='#L160'>160</a>
|
|
220
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
|
221
|
+
<a name='L162'></a><a href='#L162'>162</a>
|
|
222
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
|
223
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
|
224
|
+
<a name='L165'></a><a href='#L165'>165</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
215
225
|
<span class="cline-any cline-yes">1x</span>
|
|
216
226
|
<span class="cline-any cline-yes">1x</span>
|
|
217
227
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -220,103 +230,110 @@
|
|
|
220
230
|
<span class="cline-any cline-neutral"> </span>
|
|
221
231
|
<span class="cline-any cline-yes">1x</span>
|
|
222
232
|
<span class="cline-any cline-neutral"> </span>
|
|
233
|
+
<span class="cline-any cline-yes">1x</span>
|
|
223
234
|
<span class="cline-any cline-neutral"> </span>
|
|
224
|
-
<span class="cline-any cline-yes">3x</span>
|
|
225
235
|
<span class="cline-any cline-neutral"> </span>
|
|
226
|
-
<span class="cline-any cline-yes">
|
|
227
|
-
<span class="cline-any cline-yes">3x</span>
|
|
236
|
+
<span class="cline-any cline-yes">6x</span>
|
|
228
237
|
<span class="cline-any cline-neutral"> </span>
|
|
229
|
-
<span class="cline-any cline-yes">
|
|
230
|
-
<span class="cline-any cline-yes">
|
|
238
|
+
<span class="cline-any cline-yes">6x</span>
|
|
239
|
+
<span class="cline-any cline-yes">6x</span>
|
|
231
240
|
<span class="cline-any cline-neutral"> </span>
|
|
241
|
+
<span class="cline-any cline-yes">6x</span>
|
|
242
|
+
<span class="cline-any cline-yes">6x</span>
|
|
232
243
|
<span class="cline-any cline-neutral"> </span>
|
|
233
|
-
<span class="cline-any cline-yes">3x</span>
|
|
234
|
-
<span class="cline-any cline-yes">3x</span>
|
|
235
244
|
<span class="cline-any cline-neutral"> </span>
|
|
245
|
+
<span class="cline-any cline-yes">6x</span>
|
|
246
|
+
<span class="cline-any cline-yes">6x</span>
|
|
236
247
|
<span class="cline-any cline-neutral"> </span>
|
|
237
|
-
<span class="cline-any cline-yes">3x</span>
|
|
238
|
-
<span class="cline-any cline-yes">3x</span>
|
|
239
|
-
<span class="cline-any cline-yes">3x</span>
|
|
240
|
-
<span class="cline-any cline-yes">3x</span>
|
|
241
248
|
<span class="cline-any cline-neutral"> </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>
|
|
242
253
|
<span class="cline-any cline-neutral"> </span>
|
|
243
254
|
<span class="cline-any cline-neutral"> </span>
|
|
244
|
-
<span class="cline-any cline-yes">1x</span>
|
|
245
255
|
<span class="cline-any cline-neutral"> </span>
|
|
246
|
-
<span class="cline-any cline-yes">
|
|
256
|
+
<span class="cline-any cline-yes">25x</span>
|
|
257
|
+
<span class="cline-any cline-neutral"> </span>
|
|
258
|
+
<span class="cline-any cline-yes">7x</span>
|
|
247
259
|
<span class="cline-any cline-neutral"> </span>
|
|
248
260
|
<span class="cline-any cline-no"> </span>
|
|
249
261
|
<span class="cline-any cline-neutral"> </span>
|
|
250
262
|
<span class="cline-any cline-neutral"> </span>
|
|
251
263
|
<span class="cline-any cline-yes">1x</span>
|
|
252
|
-
<span class="cline-any cline-yes">
|
|
264
|
+
<span class="cline-any cline-yes">49x</span>
|
|
253
265
|
<span class="cline-any cline-neutral"> </span>
|
|
254
266
|
<span class="cline-any cline-neutral"> </span>
|
|
255
267
|
<span class="cline-any cline-neutral"> </span>
|
|
256
268
|
<span class="cline-any cline-yes">1x</span>
|
|
257
|
-
<span class="cline-any cline-
|
|
269
|
+
<span class="cline-any cline-yes">9x</span>
|
|
258
270
|
<span class="cline-any cline-neutral"> </span>
|
|
259
271
|
<span class="cline-any cline-neutral"> </span>
|
|
260
272
|
<span class="cline-any cline-neutral"> </span>
|
|
261
273
|
<span class="cline-any cline-yes">1x</span>
|
|
262
|
-
<span class="cline-any cline-
|
|
263
|
-
<span class="cline-any cline-
|
|
274
|
+
<span class="cline-any cline-yes">21x</span>
|
|
275
|
+
<span class="cline-any cline-yes">21x</span>
|
|
264
276
|
<span class="cline-any cline-neutral"> </span>
|
|
265
277
|
<span class="cline-any cline-neutral"> </span>
|
|
266
278
|
<span class="cline-any cline-no"> </span>
|
|
267
279
|
<span class="cline-any cline-no"> </span>
|
|
268
280
|
<span class="cline-any cline-neutral"> </span>
|
|
269
|
-
<span class="cline-any cline-yes">
|
|
270
|
-
<span class="cline-any cline-
|
|
281
|
+
<span class="cline-any cline-yes">11x</span>
|
|
282
|
+
<span class="cline-any cline-yes">18x</span>
|
|
271
283
|
<span class="cline-any cline-neutral"> </span>
|
|
284
|
+
<span class="cline-any cline-yes">4x</span>
|
|
285
|
+
<span class="cline-any cline-yes">4x</span>
|
|
272
286
|
<span class="cline-any cline-no"> </span>
|
|
273
287
|
<span class="cline-any cline-neutral"> </span>
|
|
274
|
-
<span class="cline-any cline-no"> </span>
|
|
275
288
|
<span class="cline-any cline-neutral"> </span>
|
|
276
|
-
<span class="cline-any cline-yes">
|
|
277
|
-
<span class="cline-any cline-
|
|
278
|
-
<span class="cline-any cline-no"> </span>
|
|
289
|
+
<span class="cline-any cline-yes">1x</span>
|
|
290
|
+
<span class="cline-any cline-neutral"> </span>
|
|
279
291
|
<span class="cline-any cline-no"> </span>
|
|
280
292
|
<span class="cline-any cline-neutral"> </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>
|
|
281
297
|
<span class="cline-any cline-neutral"> </span>
|
|
282
298
|
<span class="cline-any cline-neutral"> </span>
|
|
283
|
-
<span class="cline-any cline-yes">3x</span>
|
|
284
|
-
<span class="cline-any cline-yes">3x</span>
|
|
285
299
|
<span class="cline-any cline-neutral"> </span>
|
|
300
|
+
<span class="cline-any cline-yes">6x</span>
|
|
301
|
+
<span class="cline-any cline-yes">6x</span>
|
|
286
302
|
<span class="cline-any cline-neutral"> </span>
|
|
287
|
-
<span class="cline-any cline-yes">3x</span>
|
|
288
|
-
<span class="cline-any cline-no"> </span>
|
|
289
303
|
<span class="cline-any cline-neutral"> </span>
|
|
304
|
+
<span class="cline-any cline-yes">6x</span>
|
|
305
|
+
<span class="cline-any cline-yes">1x</span>
|
|
290
306
|
<span class="cline-any cline-neutral"> </span>
|
|
291
|
-
<span class="cline-any cline-yes">3x</span>
|
|
292
|
-
<span class="cline-any cline-no"> </span>
|
|
293
|
-
<span class="cline-any cline-no"> </span>
|
|
294
|
-
<span class="cline-any cline-no"> </span>
|
|
295
307
|
<span class="cline-any cline-neutral"> </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>
|
|
296
312
|
<span class="cline-any cline-neutral"> </span>
|
|
297
313
|
<span class="cline-any cline-neutral"> </span>
|
|
298
|
-
<span class="cline-any cline-yes">3x</span>
|
|
299
|
-
<span class="cline-any cline-yes">3x</span>
|
|
300
314
|
<span class="cline-any cline-neutral"> </span>
|
|
315
|
+
<span class="cline-any cline-yes">6x</span>
|
|
316
|
+
<span class="cline-any cline-yes">6x</span>
|
|
301
317
|
<span class="cline-any cline-neutral"> </span>
|
|
302
|
-
<span class="cline-any cline-
|
|
318
|
+
<span class="cline-any cline-neutral"> </span>
|
|
319
|
+
<span class="cline-any cline-yes">6x</span>
|
|
303
320
|
<span class="cline-any cline-no"> </span>
|
|
304
321
|
<span class="cline-any cline-neutral"> </span>
|
|
305
322
|
<span class="cline-any cline-neutral"> </span>
|
|
306
323
|
<span class="cline-any cline-neutral"> </span>
|
|
307
|
-
<span class="cline-any cline-yes">
|
|
308
|
-
<span class="cline-any cline-
|
|
324
|
+
<span class="cline-any cline-yes">6x</span>
|
|
325
|
+
<span class="cline-any cline-yes">8x</span>
|
|
309
326
|
<span class="cline-any cline-no"> </span>
|
|
310
327
|
<span class="cline-any cline-neutral"> </span>
|
|
311
328
|
<span class="cline-any cline-neutral"> </span>
|
|
312
|
-
<span class="cline-any cline-
|
|
313
|
-
<span class="cline-any cline-
|
|
329
|
+
<span class="cline-any cline-yes">8x</span>
|
|
330
|
+
<span class="cline-any cline-yes">5x</span>
|
|
314
331
|
<span class="cline-any cline-neutral"> </span>
|
|
315
|
-
<span class="cline-any cline-
|
|
332
|
+
<span class="cline-any cline-yes">3x</span>
|
|
316
333
|
<span class="cline-any cline-neutral"> </span>
|
|
317
334
|
<span class="cline-any cline-neutral"> </span>
|
|
318
|
-
<span class="cline-any cline-
|
|
319
|
-
<span class="cline-any cline-
|
|
335
|
+
<span class="cline-any cline-yes">8x</span>
|
|
336
|
+
<span class="cline-any cline-yes">8x</span>
|
|
320
337
|
<span class="cline-any cline-neutral"> </span>
|
|
321
338
|
<span class="cline-any cline-neutral"> </span>
|
|
322
339
|
<span class="cline-any cline-no"> </span>
|
|
@@ -327,16 +344,19 @@
|
|
|
327
344
|
<span class="cline-any cline-neutral"> </span>
|
|
328
345
|
<span class="cline-any cline-neutral"> </span>
|
|
329
346
|
<span class="cline-any cline-neutral"> </span>
|
|
330
|
-
<span class="cline-any cline-yes">
|
|
331
|
-
<span class="cline-any cline-
|
|
332
|
-
<span class="cline-any cline-no"> </span>
|
|
347
|
+
<span class="cline-any cline-yes">6x</span>
|
|
348
|
+
<span class="cline-any cline-yes">6x</span>
|
|
333
349
|
<span class="cline-any cline-neutral"> </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>
|
|
334
353
|
<span class="cline-any cline-neutral"> </span>
|
|
335
354
|
<span class="cline-any cline-neutral"> </span>
|
|
336
|
-
<span class="cline-any cline-yes">3x</span>
|
|
337
|
-
<span class="cline-any cline-yes">3x</span>
|
|
338
355
|
<span class="cline-any cline-neutral"> </span>
|
|
339
|
-
<span class="cline-any cline-yes">
|
|
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"> </span>
|
|
359
|
+
<span class="cline-any cline-yes">7x</span>
|
|
340
360
|
<span class="cline-any cline-no"> </span>
|
|
341
361
|
<span class="cline-any cline-neutral"> </span>
|
|
342
362
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -362,17 +382,19 @@
|
|
|
362
382
|
<span class="cline-any cline-yes">1x</span>
|
|
363
383
|
<span class="cline-any cline-neutral"> </span>
|
|
364
384
|
<span class="cline-any cline-neutral"> </span>
|
|
365
|
-
<span class="cline-any cline-
|
|
385
|
+
<span class="cline-any cline-yes">3x</span>
|
|
366
386
|
<span class="cline-any cline-neutral"> </span>
|
|
367
387
|
<span class="cline-any cline-neutral"> </span>
|
|
368
388
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { createLazy } from '../lazy.light';
|
|
369
389
|
import { action, computed, makeObservable, observable, reaction } from 'mobx';
|
|
370
390
|
import { FlagModel, ILabeledFlagModel } from './FlagModel';
|
|
371
391
|
import { ValidatableModel } from './Validatable';
|
|
372
|
-
import { IValueModel } from './
|
|
392
|
+
import { IValueModel } from './types';
|
|
373
393
|
import { withLabel } from './wrappers';
|
|
394
|
+
import { ICountableModel, IResetableModel } from 'viewModels';
|
|
395
|
+
import { arraysCompareDistinct } from '../math';
|
|
374
396
|
|
|
375
|
-
export class MultiSelect<T = any> extends ValidatableModel<ReadonlyArray<T>> implements IValueModel<readonly string[]>
|
|
397
|
+
export class MultiSelect<T = any> extends ValidatableModel<ReadonlyArray<T>> implements IValueModel<readonly string[]>, IResetableModel, ICountableModel {
|
|
376
398
|
|
|
377
399
|
@observable
|
|
378
400
|
private readonly _indexes = new Set<number>();
|
|
@@ -407,50 +429,55 @@ export class MultiSelect<T = any> extends ValidatableModel<ReadonlyArra
|
|
|
407
429
|
}
|
|
408
430
|
|
|
409
431
|
@computed
|
|
410
|
-
|
|
411
|
-
|
|
432
|
+
get selectedItems(): ReadonlyArray<T> {
|
|
433
|
+
return this.selectedIndexes.map(i => this._items[i]);
|
|
412
434
|
}
|
|
413
435
|
|
|
414
436
|
@computed
|
|
415
|
-
|
|
416
|
-
const values =
|
|
417
|
-
|
|
437
|
+
get selectedValues(): ReadonlyArray<string> {
|
|
438
|
+
const values = this.values;
|
|
439
|
+
return this.selectedIndexes.map(i => values[i]);
|
|
418
440
|
}
|
|
419
441
|
|
|
420
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>}
|
|
421
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>}
|
|
422
444
|
|
|
423
445
|
isIndexSelected(index: number) { return this._indexes.has(index); }
|
|
424
|
-
|
|
446
|
+
isValueSelected(value: string) { return this.selectedValues.includes(value); }
|
|
447
|
+
|
|
448
|
+
get count() { return this._items.length; }
|
|
449
|
+
get selectedCount() { return this._indexes.size; }
|
|
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>}
|
|
425
451
|
|
|
426
|
-
|
|
452
|
+
@computed
|
|
453
|
+
<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>}
|
|
427
454
|
|
|
428
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>}
|
|
429
456
|
|
|
430
|
-
setItemSelected =
|
|
431
|
-
const i =
|
|
432
|
-
<span class="
|
|
433
|
-
|
|
457
|
+
setItemSelected = (item: T, selected: boolean) => {
|
|
458
|
+
const i = this.items.indexOf(item);
|
|
459
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (i >= 0) {
|
|
460
|
+
this.setIndexSelected(i, selected);
|
|
434
461
|
}
|
|
435
462
|
};
|
|
436
463
|
|
|
437
|
-
selectItem =
|
|
438
|
-
deSelectItem =
|
|
464
|
+
selectItem = (item: T) => this.setItemSelected(item, true);
|
|
465
|
+
deSelectItem = (item: T) => this.setItemSelected(item, false);
|
|
439
466
|
|
|
440
467
|
@action
|
|
441
|
-
selectItems =
|
|
442
|
-
|
|
468
|
+
selectItems = (items: readonly T[]) => {
|
|
469
|
+
items.forEach(this.selectItem);
|
|
443
470
|
};
|
|
444
471
|
|
|
445
|
-
setValueSelected =
|
|
446
|
-
const i =
|
|
447
|
-
<span class="
|
|
448
|
-
|
|
472
|
+
setValueSelected = (value: string, selected: boolean) => {
|
|
473
|
+
const i = this.values.indexOf(value);
|
|
474
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (i >= 0) {
|
|
475
|
+
this.setIndexSelected(i, selected);
|
|
449
476
|
}
|
|
450
477
|
};
|
|
451
478
|
|
|
452
|
-
selectValue =
|
|
453
|
-
deSelectValue =
|
|
479
|
+
selectValue = (value: string) => this.setValueSelected(value, true);
|
|
480
|
+
deSelectValue = (value: string) => this.setValueSelected(value, false);
|
|
454
481
|
|
|
455
482
|
@action
|
|
456
483
|
selectValues = <span class="fstat-no" title="function not covered" >(v</span>alues: readonly string[]) => {
|
|
@@ -458,19 +485,19 @@ export class MultiSelect<T = any> extends ValidatableModel<ReadonlyArra
|
|
|
458
485
|
};
|
|
459
486
|
|
|
460
487
|
@action
|
|
461
|
-
setIndexSelected =
|
|
462
|
-
<span class="
|
|
488
|
+
setIndexSelected = (index: number, selected: boolean) => {
|
|
489
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (this._indexesLocked) {
|
|
463
490
|
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
464
491
|
}
|
|
465
492
|
|
|
466
|
-
|
|
467
|
-
|
|
493
|
+
if (selected) {
|
|
494
|
+
this._indexes.add(index);
|
|
468
495
|
} else {
|
|
469
|
-
|
|
496
|
+
this._indexes.delete(index);
|
|
470
497
|
}
|
|
471
498
|
|
|
472
|
-
<span class="
|
|
473
|
-
|
|
499
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (!this._flags.hasValue) {
|
|
500
|
+
return;
|
|
474
501
|
}
|
|
475
502
|
|
|
476
503
|
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
@@ -481,9 +508,12 @@ export class MultiSelect<T = any> extends ValidatableModel<ReadonlyArra
|
|
|
481
508
|
}
|
|
482
509
|
};
|
|
483
510
|
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
511
|
+
selectIndex = (index: number) => this.setIndexSelected(index, true);
|
|
512
|
+
deSelectIndex = (index: number) => this.setIndexSelected(index, false);
|
|
513
|
+
|
|
514
|
+
reset = () => {
|
|
515
|
+
super.reset();
|
|
516
|
+
this.setInitialIndexes();
|
|
487
517
|
};
|
|
488
518
|
|
|
489
519
|
private setInitialIndexes() {
|
|
@@ -515,8 +545,8 @@ export class MultiSelect<T = any> extends ValidatableModel<ReadonlyArra
|
|
|
515
545
|
|
|
516
546
|
export class MultiSelectString<T extends string = string> extends MultiSelect<T> {
|
|
517
547
|
|
|
518
|
-
|
|
519
|
-
|
|
548
|
+
constructor(items: ReadonlyArray<T>, ...selected: number[]) {
|
|
549
|
+
super(items, v => v, ...selected);
|
|
520
550
|
}
|
|
521
551
|
}
|
|
522
552
|
</pre></td></tr></table></pre>
|
|
@@ -526,7 +556,7 @@ export class MultiSelectString<T extends string = string> extends MultiSel
|
|
|
526
556
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
527
557
|
Code coverage generated by
|
|
528
558
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
529
|
-
at
|
|
559
|
+
at Mon Dec 13 2021 15:31:23 GMT+0000 (Coordinated Universal Time)
|
|
530
560
|
</div>
|
|
531
561
|
</div>
|
|
532
562
|
<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">
|
|
26
|
+
<span class="strong">80.95% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>17/
|
|
28
|
+
<span class='fraction'>17/21</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">
|
|
40
|
+
<span class="strong">42.86% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>3/
|
|
42
|
+
<span class='fraction'>3/7</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">86.67% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>13/
|
|
49
|
+
<span class='fraction'>13/15</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -93,7 +93,11 @@
|
|
|
93
93
|
<a name='L34'></a><a href='#L34'>34</a>
|
|
94
94
|
<a name='L35'></a><a href='#L35'>35</a>
|
|
95
95
|
<a name='L36'></a><a href='#L36'>36</a>
|
|
96
|
-
<a name='L37'></a><a href='#L37'>37</a
|
|
96
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
|
97
|
+
<a name='L38'></a><a href='#L38'>38</a>
|
|
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>
|
|
100
|
+
<span class="cline-any cline-neutral"> </span>
|
|
97
101
|
<span class="cline-any cline-neutral"> </span>
|
|
98
102
|
<span class="cline-any cline-neutral"> </span>
|
|
99
103
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -116,6 +120,8 @@
|
|
|
116
120
|
<span class="cline-any cline-yes">2x</span>
|
|
117
121
|
<span class="cline-any cline-yes">1x</span>
|
|
118
122
|
<span class="cline-any cline-neutral"> </span>
|
|
123
|
+
<span class="cline-any cline-no"> </span>
|
|
124
|
+
<span class="cline-any cline-neutral"> </span>
|
|
119
125
|
<span class="cline-any cline-neutral"> </span>
|
|
120
126
|
<span class="cline-any cline-yes">3x</span>
|
|
121
127
|
<span class="cline-any cline-no"> </span>
|
|
@@ -130,9 +136,10 @@
|
|
|
130
136
|
<span class="cline-any cline-neutral"> </span>
|
|
131
137
|
<span class="cline-any cline-yes">1x</span>
|
|
132
138
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { action, makeObservable, observable } from 'mobx';
|
|
133
|
-
import {
|
|
139
|
+
import { IResetableModel } from 'viewModels';
|
|
140
|
+
import { IValueModel } from './types';
|
|
134
141
|
|
|
135
|
-
export interface INumberModel {
|
|
142
|
+
export interface INumberModel extends IResetableModel {
|
|
136
143
|
value: number;
|
|
137
144
|
}
|
|
138
145
|
|
|
@@ -151,6 +158,8 @@ export class NumberModel implements INumberModel, IValueModel<number> {
|
|
|
151
158
|
|
|
152
159
|
get value() { return this._value; }
|
|
153
160
|
set value(v: number) { this._value = v; }
|
|
161
|
+
|
|
162
|
+
<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>}
|
|
154
163
|
|
|
155
164
|
@action
|
|
156
165
|
reset = <span class="fstat-no" title="function not covered" >() =</span>> {
|
|
@@ -172,7 +181,7 @@ export default NumberModel;
|
|
|
172
181
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
173
182
|
Code coverage generated by
|
|
174
183
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
175
|
-
at
|
|
184
|
+
at Mon Dec 13 2021 15:31:23 GMT+0000 (Coordinated Universal Time)
|
|
176
185
|
</div>
|
|
177
186
|
</div>
|
|
178
187
|
<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">
|
|
26
|
+
<span class="strong">95.16% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>59/
|
|
28
|
+
<span class='fraction'>59/62</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">
|
|
40
|
+
<span class="strong">88% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>22/
|
|
42
|
+
<span class='fraction'>22/25</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">94.64% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>53/
|
|
49
|
+
<span class='fraction'>53/56</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -182,13 +182,17 @@
|
|
|
182
182
|
<a name='L123'></a><a href='#L123'>123</a>
|
|
183
183
|
<a name='L124'></a><a href='#L124'>124</a>
|
|
184
184
|
<a name='L125'></a><a href='#L125'>125</a>
|
|
185
|
-
<a name='L126'></a><a href='#L126'>126</a
|
|
185
|
+
<a name='L126'></a><a href='#L126'>126</a>
|
|
186
|
+
<a name='L127'></a><a href='#L127'>127</a>
|
|
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>
|
|
186
189
|
<span class="cline-any cline-yes">1x</span>
|
|
187
190
|
<span class="cline-any cline-yes">1x</span>
|
|
188
191
|
<span class="cline-any cline-yes">1x</span>
|
|
189
192
|
<span class="cline-any cline-neutral"> </span>
|
|
190
193
|
<span class="cline-any cline-yes">1x</span>
|
|
191
194
|
<span class="cline-any cline-neutral"> </span>
|
|
195
|
+
<span class="cline-any cline-neutral"> </span>
|
|
192
196
|
<span class="cline-any cline-yes">1x</span>
|
|
193
197
|
<span class="cline-any cline-neutral"> </span>
|
|
194
198
|
<span class="cline-any cline-yes">5x</span>
|
|
@@ -251,6 +255,8 @@
|
|
|
251
255
|
<span class="cline-any cline-neutral"> </span>
|
|
252
256
|
<span class="cline-any cline-neutral"> </span>
|
|
253
257
|
<span class="cline-any cline-neutral"> </span>
|
|
258
|
+
<span class="cline-any cline-no"> </span>
|
|
259
|
+
<span class="cline-any cline-neutral"> </span>
|
|
254
260
|
<span class="cline-any cline-neutral"> </span>
|
|
255
261
|
<span class="cline-any cline-yes">11x</span>
|
|
256
262
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -311,10 +317,11 @@
|
|
|
311
317
|
import { observable, computed, makeObservable, reaction } from 'mobx';
|
|
312
318
|
import { FlagModel, ILabeledFlagModel } from './FlagModel';
|
|
313
319
|
import { ValidatableModel } from './Validatable';
|
|
314
|
-
import { IValueModel } from './
|
|
320
|
+
import { IValueModel } from './types';
|
|
315
321
|
import { withLabel } from './wrappers';
|
|
322
|
+
import { IResetableModel } from 'viewModels';
|
|
316
323
|
|
|
317
|
-
export class Select<T = any> extends ValidatableModel<T> implements IValueModel<string>
|
|
324
|
+
export class Select<T = any> extends ValidatableModel<T> implements IValueModel<string>, IResetableModel {
|
|
318
325
|
@observable
|
|
319
326
|
private _index: number = undefined;
|
|
320
327
|
|
|
@@ -375,6 +382,8 @@ export class Select<T = any> extends ValidatableModel<T> implements
|
|
|
375
382
|
this.index = index;
|
|
376
383
|
}
|
|
377
384
|
}
|
|
385
|
+
|
|
386
|
+
<span class="fstat-no" title="function not covered" > get i</span>sDefault() { <span class="cstat-no" title="statement not covered" >return this._index === this._initialIndex; </span>}
|
|
378
387
|
|
|
379
388
|
get index() {
|
|
380
389
|
return this._index;
|
|
@@ -439,7 +448,7 @@ export class SelectString<T extends string = string> extends Select<T&g
|
|
|
439
448
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
440
449
|
Code coverage generated by
|
|
441
450
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
442
|
-
at
|
|
451
|
+
at Mon Dec 13 2021 15:31:23 GMT+0000 (Coordinated Universal Time)
|
|
443
452
|
</div>
|
|
444
453
|
</div>
|
|
445
454
|
<script src="../../prettify.js"></script>
|