@zajno/common 1.4.0 → 1.4.4
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/coverage/clover.xml +92 -81
- package/coverage/coverage-final.json +6 -6
- package/coverage/lcov-report/index.html +27 -27
- package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
- package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/src/fields/index.html +1 -1
- package/coverage/lcov-report/src/fields/update.ts.html +1 -1
- package/coverage/lcov-report/src/functions.ts.html +1 -1
- package/coverage/lcov-report/src/index.html +15 -15
- package/coverage/lcov-report/src/lazy.light.ts.html +4 -4
- package/coverage/lcov-report/src/logger/batch.ts.html +1 -1
- package/coverage/lcov-report/src/logger/console.ts.html +1 -1
- package/coverage/lcov-report/src/logger/index.html +1 -1
- package/coverage/lcov-report/src/logger/index.ts.html +1 -1
- package/coverage/lcov-report/src/logger/named.ts.html +1 -1
- package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
- package/coverage/lcov-report/src/math/arrays.ts.html +1 -1
- package/coverage/lcov-report/src/math/calc.ts.html +1 -1
- package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
- package/coverage/lcov-report/src/math/index.html +1 -1
- package/coverage/lcov-report/src/math/index.ts.html +1 -1
- package/coverage/lcov-report/src/transitionObserver.ts.html +29 -8
- package/coverage/lcov-report/src/types.ts.html +1 -1
- 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 +2 -2
- package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +3 -3
- package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +20 -8
- package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +48 -21
- package/coverage/lcov-report/src/viewModels/Validatable.ts.html +28 -10
- package/coverage/lcov-report/src/viewModels/index.html +35 -35
- package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
- package/coverage/lcov.info +229 -207
- package/lib/observers.d.ts +16 -0
- package/lib/observers.d.ts.map +1 -0
- package/lib/observers.js +74 -0
- package/lib/observers.js.map +1 -0
- package/lib/transitionObserver.d.ts +1 -0
- package/lib/transitionObserver.d.ts.map +1 -1
- package/lib/transitionObserver.js +8 -1
- package/lib/transitionObserver.js.map +1 -1
- package/lib/validation/validators.js +1 -1
- package/lib/viewModels/CommonModel.d.ts +2 -3
- package/lib/viewModels/CommonModel.d.ts.map +1 -1
- package/lib/viewModels/CommonModel.js +8 -19
- package/lib/viewModels/CommonModel.js.map +1 -1
- package/lib/viewModels/MultiSelectModel.d.ts.map +1 -1
- package/lib/viewModels/MultiSelectModel.js +3 -0
- package/lib/viewModels/MultiSelectModel.js.map +1 -1
- package/lib/viewModels/SelectModel.d.ts +1 -0
- package/lib/viewModels/SelectModel.d.ts.map +1 -1
- package/lib/viewModels/SelectModel.js +24 -14
- package/lib/viewModels/SelectModel.js.map +1 -1
- package/lib/viewModels/TextModel.d.ts.map +1 -1
- package/lib/viewModels/TextModel.js +3 -0
- package/lib/viewModels/TextModel.js.map +1 -1
- package/lib/viewModels/Validatable.d.ts +2 -0
- package/lib/viewModels/Validatable.d.ts.map +1 -1
- package/lib/viewModels/Validatable.js +5 -0
- package/lib/viewModels/Validatable.js.map +1 -1
- package/package.json +1 -1
- package/src/observers.ts +82 -0
- package/src/transitionObserver.ts +7 -0
- package/src/validation/validators.ts +1 -1
- package/src/viewModels/CommonModel.ts +10 -13
- package/src/viewModels/MultiSelectModel.ts +4 -0
- package/src/viewModels/SelectModel.ts +11 -2
- package/src/viewModels/TextModel.ts +4 -0
- package/src/viewModels/Validatable.ts +6 -0
|
@@ -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">88.64% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>78/88</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">78.26% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>18/
|
|
42
|
+
<span class='fraction'>18/23</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">88.64% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>78/88</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -233,7 +233,14 @@
|
|
|
233
233
|
<a name='L174'></a><a href='#L174'>174</a>
|
|
234
234
|
<a name='L175'></a><a href='#L175'>175</a>
|
|
235
235
|
<a name='L176'></a><a href='#L176'>176</a>
|
|
236
|
-
<a name='L177'></a><a href='#L177'>177</a
|
|
236
|
+
<a name='L177'></a><a href='#L177'>177</a>
|
|
237
|
+
<a name='L178'></a><a href='#L178'>178</a>
|
|
238
|
+
<a name='L179'></a><a href='#L179'>179</a>
|
|
239
|
+
<a name='L180'></a><a href='#L180'>180</a>
|
|
240
|
+
<a name='L181'></a><a href='#L181'>181</a>
|
|
241
|
+
<a name='L182'></a><a href='#L182'>182</a>
|
|
242
|
+
<a name='L183'></a><a href='#L183'>183</a>
|
|
243
|
+
<a name='L184'></a><a href='#L184'>184</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
237
244
|
<span class="cline-any cline-yes">1x</span>
|
|
238
245
|
<span class="cline-any cline-yes">1x</span>
|
|
239
246
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -409,6 +416,13 @@
|
|
|
409
416
|
<span class="cline-any cline-neutral"> </span>
|
|
410
417
|
<span class="cline-any cline-neutral"> </span>
|
|
411
418
|
<span class="cline-any cline-neutral"> </span>
|
|
419
|
+
<span class="cline-any cline-neutral"> </span>
|
|
420
|
+
<span class="cline-any cline-yes">1x</span>
|
|
421
|
+
<span class="cline-any cline-no"> </span>
|
|
422
|
+
<span class="cline-any cline-neutral"> </span>
|
|
423
|
+
<span class="cline-any cline-neutral"> </span>
|
|
424
|
+
<span class="cline-any cline-neutral"> </span>
|
|
425
|
+
<span class="cline-any cline-neutral"> </span>
|
|
412
426
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { reaction } from 'mobx';
|
|
413
427
|
import { IEvent, Event } from './event';
|
|
414
428
|
import { ILogger, createLogger } from './logger';
|
|
@@ -585,6 +599,13 @@ export class TransitionObserver<T> implements IDisposable {
|
|
|
585
599
|
}
|
|
586
600
|
}
|
|
587
601
|
}
|
|
602
|
+
|
|
603
|
+
export function <span class="fstat-no" title="function not covered" >waitFor<</span>T>(current: () => T, toBe: T) {
|
|
604
|
+
<span class="cstat-no" title="statement not covered" > return new TransitionObserver(current)</span>
|
|
605
|
+
.to(toBe)
|
|
606
|
+
.fireOnce()
|
|
607
|
+
.getPromise();
|
|
608
|
+
}
|
|
588
609
|
</pre></td></tr></table></pre>
|
|
589
610
|
|
|
590
611
|
<div class='push'></div><!-- for sticky footer -->
|
|
@@ -592,7 +613,7 @@ export class TransitionObserver<T> implements IDisposable {
|
|
|
592
613
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
593
614
|
Code coverage generated by
|
|
594
615
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
595
|
-
at
|
|
616
|
+
at Tue Feb 08 2022 10:51:10 GMT+0000 (Coordinated Universal Time)
|
|
596
617
|
</div>
|
|
597
618
|
</div>
|
|
598
619
|
<script src="../prettify.js"></script>
|
|
@@ -154,7 +154,7 @@ export type TypedKeys<T extends Object, K> = {
|
|
|
154
154
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
155
155
|
Code coverage generated by
|
|
156
156
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
157
|
-
at
|
|
157
|
+
at Tue Feb 08 2022 10:51:10 GMT+0000 (Coordinated Universal Time)
|
|
158
158
|
</div>
|
|
159
159
|
</div>
|
|
160
160
|
<script src="../prettify.js"></script>
|
|
@@ -142,7 +142,7 @@ export namespace <span class="branch-1 cbranch-no" title="branch not covered" >V
|
|
|
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
|
|
145
|
+
at Tue Feb 08 2022 10:51:10 GMT+0000 (Coordinated Universal Time)
|
|
146
146
|
</div>
|
|
147
147
|
</div>
|
|
148
148
|
<script src="../../prettify.js"></script>
|
|
@@ -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
|
|
142
|
+
at Tue Feb 08 2022 10:51:10 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
|
|
211
|
+
at Tue Feb 08 2022 10:51:10 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
|
|
188
|
+
at Tue Feb 08 2022 10:51:10 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
|
|
94
|
+
at Tue Feb 08 2022 10:51:10 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<TErrors = ValidationErrors> 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
|
|
112
|
+
at Tue Feb 08 2022 10:51:10 GMT+0000 (Coordinated Universal Time)
|
|
113
113
|
</div>
|
|
114
114
|
</div>
|
|
115
115
|
<script src="../../prettify.js"></script>
|
|
@@ -191,7 +191,7 @@ export const ValidatorsRegExps = {
|
|
|
191
191
|
expiryDateCard: /^\d+$/,
|
|
192
192
|
cvv: /^\d+$/,
|
|
193
193
|
// eslint-disable-next-line no-useless-escape
|
|
194
|
-
website: /^(https?:\/\/)?([a-z0-9]+(
|
|
194
|
+
website: /^(https?:\/\/)?([a-z0-9]+([a-z0-9\-]+\.))+[a-z]{2,}(:[0-9]{1,})?(\/.*)?$/i,
|
|
195
195
|
linkedin: /^(https?:\/\/)?([a-z]+\d*[a-z]*\.)?linkedin\.com\/.*$/i,
|
|
196
196
|
};
|
|
197
197
|
|
|
@@ -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
|
|
232
|
+
at Tue Feb 08 2022 10:51:10 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
|
|
145
|
+
at Tue Feb 08 2022 10:51:10 GMT+0000 (Coordinated Universal Time)
|
|
146
146
|
</div>
|
|
147
147
|
</div>
|
|
148
148
|
<script src="../../prettify.js"></script>
|
|
@@ -149,12 +149,12 @@
|
|
|
149
149
|
<span class="cline-any cline-neutral"> </span>
|
|
150
150
|
<span class="cline-any cline-neutral"> </span>
|
|
151
151
|
<span class="cline-any cline-neutral"> </span>
|
|
152
|
-
<span class="cline-any cline-yes">
|
|
152
|
+
<span class="cline-any cline-yes">50x</span>
|
|
153
153
|
<span class="cline-any cline-neutral"> </span>
|
|
154
154
|
<span class="cline-any cline-neutral"> </span>
|
|
155
155
|
<span class="cline-any cline-neutral"> </span>
|
|
156
156
|
<span class="cline-any cline-yes">17x</span>
|
|
157
|
-
<span class="cline-any cline-yes">
|
|
157
|
+
<span class="cline-any cline-yes">50x</span>
|
|
158
158
|
<span class="cline-any cline-neutral"> </span>
|
|
159
159
|
<span class="cline-any cline-neutral"> </span>
|
|
160
160
|
<span class="cline-any cline-no"> </span>
|
|
@@ -253,7 +253,7 @@ export class FlagModel implements IFlagModel, IFlagModelReadonly {
|
|
|
253
253
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
254
254
|
Code coverage generated by
|
|
255
255
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
256
|
-
at
|
|
256
|
+
at Tue Feb 08 2022 10:51:10 GMT+0000 (Coordinated Universal Time)
|
|
257
257
|
</div>
|
|
258
258
|
</div>
|
|
259
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.
|
|
26
|
+
<span class="strong">77.14% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
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">
|
|
33
|
+
<span class="strong">44.44% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
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">
|
|
47
|
+
<span class="strong">76.47% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
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
|
|
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"> </span>
|
|
334
338
|
<span class="cline-any cline-neutral"> </span>
|
|
335
339
|
<span class="cline-any cline-yes">8x</span>
|
|
340
|
+
<span class="cline-any cline-no"> </span>
|
|
341
|
+
<span class="cline-any cline-neutral"> </span>
|
|
342
|
+
<span class="cline-any cline-neutral"> </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"> </span>
|
|
338
346
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -495,6 +503,10 @@ export class MultiSelect<T = any> extends ValidatableModel<ReadonlyArra
|
|
|
495
503
|
} else {
|
|
496
504
|
this._indexes.delete(index);
|
|
497
505
|
}
|
|
506
|
+
|
|
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
|
|
|
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<T extends string = string> 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
|
|
571
|
+
at Tue Feb 08 2022 10:51:10 GMT+0000 (Coordinated Universal Time)
|
|
560
572
|
</div>
|
|
561
573
|
</div>
|
|
562
574
|
<script src="../../prettify.js"></script>
|
|
@@ -196,7 +196,7 @@ export default NumberModel;
|
|
|
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
|
|
199
|
+
at Tue Feb 08 2022 10:51:10 GMT+0000 (Coordinated Universal Time)
|
|
200
200
|
</div>
|
|
201
201
|
</div>
|
|
202
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">
|
|
26
|
+
<span class="strong">91.04% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
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">
|
|
33
|
+
<span class="strong">83.33% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>15/
|
|
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">84% </span>
|
|
40
|
+
<span class="strong">84.62% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
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">
|
|
47
|
+
<span class="strong">90% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
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
|
|
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>
|
|
@@ -263,20 +272,29 @@
|
|
|
263
272
|
<span class="cline-any cline-neutral"> </span>
|
|
264
273
|
<span class="cline-any cline-neutral"> </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"> </span>
|
|
268
276
|
<span class="cline-any cline-neutral"> </span>
|
|
269
|
-
<span class="cline-any cline-
|
|
277
|
+
<span class="cline-any cline-neutral"> </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"> </span>
|
|
281
|
+
<span class="cline-any cline-neutral"> </span>
|
|
282
|
+
<span class="cline-any cline-neutral"> </span>
|
|
283
|
+
<span class="cline-any cline-yes">16x</span>
|
|
284
|
+
<span class="cline-any cline-neutral"> </span>
|
|
285
|
+
<span class="cline-any cline-yes">16x</span>
|
|
286
|
+
<span class="cline-any cline-no"> </span>
|
|
287
|
+
<span class="cline-any cline-neutral"> </span>
|
|
270
288
|
<span class="cline-any cline-neutral"> </span>
|
|
271
289
|
<span class="cline-any cline-neutral"> </span>
|
|
272
|
-
<span class="cline-any cline-yes">
|
|
273
|
-
<span class="cline-any cline-yes">
|
|
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"> </span>
|
|
275
|
-
<span class="cline-any cline-yes">
|
|
276
|
-
<span class="cline-any cline-yes">
|
|
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"> </span>
|
|
278
296
|
<span class="cline-any cline-neutral"> </span>
|
|
279
|
-
<span class="cline-any cline-yes">
|
|
297
|
+
<span class="cline-any cline-yes">16x</span>
|
|
280
298
|
<span class="cline-any cline-neutral"> </span>
|
|
281
299
|
<span class="cline-any cline-neutral"> </span>
|
|
282
300
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -314,7 +332,7 @@
|
|
|
314
332
|
<span class="cline-any cline-neutral"> </span>
|
|
315
333
|
<span class="cline-any cline-neutral"> </span>
|
|
316
334
|
<span class="cline-any cline-neutral"> </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';
|
|
@@ -390,11 +408,20 @@ export class Select<T = any> extends ValidatableModel<T> implements
|
|
|
390
408
|
}
|
|
391
409
|
|
|
392
410
|
set index(val: number) {
|
|
393
|
-
|
|
394
|
-
|
|
411
|
+
this.setIndex(val);
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
@action
|
|
415
|
+
public setIndex = (val: number) => {
|
|
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
|
|
|
397
420
|
this._index = val;
|
|
421
|
+
|
|
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
|
|
|
399
426
|
// update all flags to be properly selected
|
|
400
427
|
try {
|
|
@@ -406,7 +433,7 @@ export class Select<T = any> extends ValidatableModel<T> implements
|
|
|
406
433
|
} finally {
|
|
407
434
|
this._indexLocked = false;
|
|
408
435
|
}
|
|
409
|
-
}
|
|
436
|
+
};
|
|
410
437
|
|
|
411
438
|
reset = () => {
|
|
412
439
|
super.reset();
|
|
@@ -448,7 +475,7 @@ export class SelectString<T extends string = string> extends Select<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
|
|
478
|
+
at Tue Feb 08 2022 10:51:10 GMT+0000 (Coordinated Universal Time)
|
|
452
479
|
</div>
|
|
453
480
|
</div>
|
|
454
481
|
<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">37.
|
|
26
|
+
<span class="strong">37.5% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>18/48</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">4.
|
|
33
|
+
<span class="strong">4.17% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>1/
|
|
35
|
+
<span class='fraction'>1/24</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">26.67% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>4/
|
|
42
|
+
<span class='fraction'>4/15</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">39.53% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>17/43</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -150,7 +150,13 @@
|
|
|
150
150
|
<a name='L91'></a><a href='#L91'>91</a>
|
|
151
151
|
<a name='L92'></a><a href='#L92'>92</a>
|
|
152
152
|
<a name='L93'></a><a href='#L93'>93</a>
|
|
153
|
-
<a name='L94'></a><a href='#L94'>94</a
|
|
153
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
154
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
155
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
156
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
157
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
158
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
159
|
+
<a name='L100'></a><a href='#L100'>100</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
|
|
154
160
|
<span class="cline-any cline-yes">2x</span>
|
|
155
161
|
<span class="cline-any cline-yes">2x</span>
|
|
156
162
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -173,6 +179,7 @@
|
|
|
173
179
|
<span class="cline-any cline-yes">11x</span>
|
|
174
180
|
<span class="cline-any cline-neutral"> </span>
|
|
175
181
|
<span class="cline-any cline-yes">11x</span>
|
|
182
|
+
<span class="cline-any cline-yes">11x</span>
|
|
176
183
|
<span class="cline-any cline-neutral"> </span>
|
|
177
184
|
<span class="cline-any cline-neutral"> </span>
|
|
178
185
|
<span class="cline-any cline-yes">11x</span>
|
|
@@ -193,6 +200,11 @@
|
|
|
193
200
|
<span class="cline-any cline-neutral"> </span>
|
|
194
201
|
<span class="cline-any cline-no"> </span>
|
|
195
202
|
<span class="cline-any cline-no"> </span>
|
|
203
|
+
<span class="cline-any cline-neutral"> </span>
|
|
204
|
+
<span class="cline-any cline-neutral"> </span>
|
|
205
|
+
<span class="cline-any cline-neutral"> </span>
|
|
206
|
+
<span class="cline-any cline-no"> </span>
|
|
207
|
+
<span class="cline-any cline-no"> </span>
|
|
196
208
|
<span class="cline-any cline-no"> </span>
|
|
197
209
|
<span class="cline-any cline-neutral"> </span>
|
|
198
210
|
<span class="cline-any cline-no"> </span>
|
|
@@ -266,6 +278,7 @@ export abstract class ValidatableModel<T = string> {
|
|
|
266
278
|
private _error: string = null;
|
|
267
279
|
|
|
268
280
|
private _validationError: ValidationError = null;
|
|
281
|
+
protected _validateOnChange = false;
|
|
269
282
|
|
|
270
283
|
constructor() {
|
|
271
284
|
makeObservable(this);
|
|
@@ -280,6 +293,11 @@ export abstract class ValidatableModel<T = string> {
|
|
|
280
293
|
public <span class="fstat-no" title="function not covered" >setValidationConfig<</span>TErrors extends string | number = ValidationErrors>(config?: ValidationConfig<T, TErrors>) {
|
|
281
294
|
<span class="cstat-no" title="statement not covered" > this._validator = config?.validator || EmptyValidator;</span>
|
|
282
295
|
<span class="cstat-no" title="statement not covered" > this._strings = config?.errors;</span>
|
|
296
|
+
<span class="cstat-no" title="statement not covered" > return this;</span>
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
public <span class="fstat-no" title="function not covered" >validateOnChange(</span>enable = <span class="branch-0 cbranch-no" title="branch not covered" >true)</span> {
|
|
300
|
+
<span class="cstat-no" title="statement not covered" > this._validateOnChange = enable;</span>
|
|
283
301
|
<span class="cstat-no" title="statement not covered" > return this;</span>
|
|
284
302
|
}
|
|
285
303
|
|
|
@@ -343,7 +361,7 @@ export abstract class ValidatableModel<T = string> {
|
|
|
343
361
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
344
362
|
Code coverage generated by
|
|
345
363
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
346
|
-
at
|
|
364
|
+
at Tue Feb 08 2022 10:51:10 GMT+0000 (Coordinated Universal Time)
|
|
347
365
|
</div>
|
|
348
366
|
</div>
|
|
349
367
|
<script src="../../prettify.js"></script>
|