@zajno/common 1.3.15 → 1.4.2
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 +105 -91
- package/coverage/coverage-final.json +6 -6
- package/coverage/lcov-report/index.html +19 -19
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +25 -10
- package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +20 -8
- package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +24 -9
- package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +48 -21
- package/coverage/lcov-report/src/viewModels/Validatable.ts.html +42 -18
- package/coverage/lcov-report/src/viewModels/index.html +52 -52
- package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
- package/coverage/lcov.info +266 -237
- package/lib/viewModels/CommonModel.d.ts +13 -0
- package/lib/viewModels/CommonModel.d.ts.map +1 -0
- package/lib/viewModels/CommonModel.js +37 -0
- package/lib/viewModels/CommonModel.js.map +1 -0
- package/lib/viewModels/FlagModel.d.ts +1 -0
- package/lib/viewModels/FlagModel.d.ts.map +1 -1
- package/lib/viewModels/FlagModel.js +8 -1
- package/lib/viewModels/FlagModel.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/NumberModel.d.ts +1 -0
- package/lib/viewModels/NumberModel.d.ts.map +1 -1
- package/lib/viewModels/NumberModel.js +8 -1
- package/lib/viewModels/NumberModel.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 +2 -0
- package/lib/viewModels/TextModel.d.ts.map +1 -1
- package/lib/viewModels/TextModel.js +27 -23
- package/lib/viewModels/TextModel.js.map +1 -1
- package/lib/viewModels/Validatable.d.ts +3 -1
- package/lib/viewModels/Validatable.d.ts.map +1 -1
- package/lib/viewModels/Validatable.js +14 -7
- package/lib/viewModels/Validatable.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/package.json +1 -1
- package/src/viewModels/CommonModel.ts +43 -0
- package/src/viewModels/FlagModel.ts +6 -1
- package/src/viewModels/MultiSelectModel.ts +4 -0
- package/src/viewModels/NumberModel.ts +6 -1
- package/src/viewModels/SelectModel.ts +11 -2
- package/src/viewModels/TextModel.ts +21 -11
- package/src/viewModels/Validatable.ts +16 -8
- package/src/viewModels/index.ts +1 -0
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">67.86% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>19/28</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -37,16 +37,16 @@
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">44.44% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>4/9</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">59.09% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>13/22</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -115,7 +115,12 @@
|
|
|
115
115
|
<a name='L56'></a><a href='#L56'>56</a>
|
|
116
116
|
<a name='L57'></a><a href='#L57'>57</a>
|
|
117
117
|
<a name='L58'></a><a href='#L58'>58</a>
|
|
118
|
-
<a name='L59'></a><a href='#L59'>59</a
|
|
118
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
|
119
|
+
<a name='L60'></a><a href='#L60'>60</a>
|
|
120
|
+
<a name='L61'></a><a href='#L61'>61</a>
|
|
121
|
+
<a name='L62'></a><a href='#L62'>62</a>
|
|
122
|
+
<a name='L63'></a><a href='#L63'>63</a>
|
|
123
|
+
<a name='L64'></a><a href='#L64'>64</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
|
|
119
124
|
<span class="cline-any cline-neutral"> </span>
|
|
120
125
|
<span class="cline-any cline-neutral"> </span>
|
|
121
126
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -144,7 +149,12 @@
|
|
|
144
149
|
<span class="cline-any cline-neutral"> </span>
|
|
145
150
|
<span class="cline-any cline-neutral"> </span>
|
|
146
151
|
<span class="cline-any cline-neutral"> </span>
|
|
147
|
-
<span class="cline-any cline-yes">
|
|
152
|
+
<span class="cline-any cline-yes">50x</span>
|
|
153
|
+
<span class="cline-any cline-neutral"> </span>
|
|
154
|
+
<span class="cline-any cline-neutral"> </span>
|
|
155
|
+
<span class="cline-any cline-neutral"> </span>
|
|
156
|
+
<span class="cline-any cline-yes">17x</span>
|
|
157
|
+
<span class="cline-any cline-yes">50x</span>
|
|
148
158
|
<span class="cline-any cline-neutral"> </span>
|
|
149
159
|
<span class="cline-any cline-neutral"> </span>
|
|
150
160
|
<span class="cline-any cline-no"> </span>
|
|
@@ -202,8 +212,13 @@ export class FlagModel implements IFlagModel, IFlagModelReadonly {
|
|
|
202
212
|
}
|
|
203
213
|
|
|
204
214
|
set value(value: boolean) {
|
|
205
|
-
this.
|
|
215
|
+
this.setValue(value);
|
|
206
216
|
}
|
|
217
|
+
|
|
218
|
+
@action
|
|
219
|
+
public readonly setValue = (value: boolean) => {
|
|
220
|
+
this._value = value;
|
|
221
|
+
};
|
|
207
222
|
|
|
208
223
|
<span class="fstat-no" title="function not covered" > get i</span>sDefault() { <span class="cstat-no" title="statement not covered" >return this._value === false; </span>}
|
|
209
224
|
|
|
@@ -238,7 +253,7 @@ export class FlagModel implements IFlagModel, IFlagModelReadonly {
|
|
|
238
253
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
239
254
|
Code coverage generated by
|
|
240
255
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
241
|
-
at
|
|
256
|
+
at Mon Jan 31 2022 16:39:21 GMT+0000 (Coordinated Universal Time)
|
|
242
257
|
</div>
|
|
243
258
|
</div>
|
|
244
259
|
<script src="../../prettify.js"></script>
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">77.
|
|
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 Mon Jan 31 2022 16:39:21 GMT+0000 (Coordinated Universal Time)
|
|
560
572
|
</div>
|
|
561
573
|
</div>
|
|
562
574
|
<script src="../../prettify.js"></script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">83.33% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>20/24</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -37,16 +37,16 @@
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">50% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>4/8</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">88.24% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>15/17</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -96,7 +96,12 @@
|
|
|
96
96
|
<a name='L37'></a><a href='#L37'>37</a>
|
|
97
97
|
<a name='L38'></a><a href='#L38'>38</a>
|
|
98
98
|
<a name='L39'></a><a href='#L39'>39</a>
|
|
99
|
-
<a name='L40'></a><a href='#L40'>40</a
|
|
99
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
|
100
|
+
<a name='L41'></a><a href='#L41'>41</a>
|
|
101
|
+
<a name='L42'></a><a href='#L42'>42</a>
|
|
102
|
+
<a name='L43'></a><a href='#L43'>43</a>
|
|
103
|
+
<a name='L44'></a><a href='#L44'>44</a>
|
|
104
|
+
<a name='L45'></a><a href='#L45'>45</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
100
105
|
<span class="cline-any cline-neutral"> </span>
|
|
101
106
|
<span class="cline-any cline-neutral"> </span>
|
|
102
107
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -120,6 +125,11 @@
|
|
|
120
125
|
<span class="cline-any cline-yes">2x</span>
|
|
121
126
|
<span class="cline-any cline-yes">1x</span>
|
|
122
127
|
<span class="cline-any cline-neutral"> </span>
|
|
128
|
+
<span class="cline-any cline-neutral"> </span>
|
|
129
|
+
<span class="cline-any cline-yes">3x</span>
|
|
130
|
+
<span class="cline-any cline-yes">1x</span>
|
|
131
|
+
<span class="cline-any cline-neutral"> </span>
|
|
132
|
+
<span class="cline-any cline-neutral"> </span>
|
|
123
133
|
<span class="cline-any cline-no"> </span>
|
|
124
134
|
<span class="cline-any cline-neutral"> </span>
|
|
125
135
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -157,7 +167,12 @@ export class NumberModel implements INumberModel, IValueModel<number> {
|
|
|
157
167
|
}
|
|
158
168
|
|
|
159
169
|
get value() { return this._value; }
|
|
160
|
-
set value(v: number) { this.
|
|
170
|
+
set value(v: number) { this.setValue(v); }
|
|
171
|
+
|
|
172
|
+
@action
|
|
173
|
+
public readonly setValue = (v: number) => {
|
|
174
|
+
this._value = v;
|
|
175
|
+
};
|
|
161
176
|
|
|
162
177
|
<span class="fstat-no" title="function not covered" > get i</span>sDefault() { <span class="cstat-no" title="statement not covered" >return this._value === this._initial; </span>}
|
|
163
178
|
|
|
@@ -181,7 +196,7 @@ export default NumberModel;
|
|
|
181
196
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
182
197
|
Code coverage generated by
|
|
183
198
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
184
|
-
at
|
|
199
|
+
at Mon Jan 31 2022 16:39:21 GMT+0000 (Coordinated Universal Time)
|
|
185
200
|
</div>
|
|
186
201
|
</div>
|
|
187
202
|
<script src="../../prettify.js"></script>
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
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 Mon Jan 31 2022 16:39:21 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">
|
|
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
|
|
|
@@ -148,7 +148,15 @@
|
|
|
148
148
|
<a name='L89'></a><a href='#L89'>89</a>
|
|
149
149
|
<a name='L90'></a><a href='#L90'>90</a>
|
|
150
150
|
<a name='L91'></a><a href='#L91'>91</a>
|
|
151
|
-
<a name='L92'></a><a href='#L92'>92</a
|
|
151
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
152
|
+
<a name='L93'></a><a href='#L93'>93</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>
|
|
152
160
|
<span class="cline-any cline-yes">2x</span>
|
|
153
161
|
<span class="cline-any cline-yes">2x</span>
|
|
154
162
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -171,6 +179,7 @@
|
|
|
171
179
|
<span class="cline-any cline-yes">11x</span>
|
|
172
180
|
<span class="cline-any cline-neutral"> </span>
|
|
173
181
|
<span class="cline-any cline-yes">11x</span>
|
|
182
|
+
<span class="cline-any cline-yes">11x</span>
|
|
174
183
|
<span class="cline-any cline-neutral"> </span>
|
|
175
184
|
<span class="cline-any cline-neutral"> </span>
|
|
176
185
|
<span class="cline-any cline-yes">11x</span>
|
|
@@ -191,6 +200,11 @@
|
|
|
191
200
|
<span class="cline-any cline-neutral"> </span>
|
|
192
201
|
<span class="cline-any cline-no"> </span>
|
|
193
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>
|
|
194
208
|
<span class="cline-any cline-no"> </span>
|
|
195
209
|
<span class="cline-any cline-neutral"> </span>
|
|
196
210
|
<span class="cline-any cline-no"> </span>
|
|
@@ -212,10 +226,12 @@
|
|
|
212
226
|
<span class="cline-any cline-neutral"> </span>
|
|
213
227
|
<span class="cline-any cline-no"> </span>
|
|
214
228
|
<span class="cline-any cline-no"> </span>
|
|
229
|
+
<span class="cline-any cline-no"> </span>
|
|
215
230
|
<span class="cline-any cline-neutral"> </span>
|
|
216
231
|
<span class="cline-any cline-no"> </span>
|
|
217
232
|
<span class="cline-any cline-no"> </span>
|
|
218
233
|
<span class="cline-any cline-neutral"> </span>
|
|
234
|
+
<span class="cline-any cline-neutral"> </span>
|
|
219
235
|
<span class="cline-any cline-no"> </span>
|
|
220
236
|
<span class="cline-any cline-neutral"> </span>
|
|
221
237
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -239,12 +255,12 @@
|
|
|
239
255
|
<span class="cline-any cline-no"> </span>
|
|
240
256
|
<span class="cline-any cline-neutral"> </span>
|
|
241
257
|
<span class="cline-any cline-neutral"> </span>
|
|
242
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { observable, makeObservable, action } from 'mobx';
|
|
258
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { observable, makeObservable, action, runInAction } from 'mobx';
|
|
243
259
|
import { ValidatorFunction, ValidatorFunctionAsync, ValidationErrors, ValidationError } from '../validation';
|
|
244
260
|
import { someAsync } from '../async/arrays';
|
|
245
261
|
|
|
246
262
|
export type ValueValidator<T, TErrors = ValidationErrors> = ValidatorFunction<T, TErrors> | ValidatorFunctionAsync<T, TErrors>;
|
|
247
|
-
export type ValidationErrorsStrings<TErrors extends string | number = number> = Record<TErrors, string>;
|
|
263
|
+
export type ValidationErrorsStrings<TErrors extends string | number = number> = Partial<Omit<Record<TErrors, string>, 0 | null>>;
|
|
248
264
|
|
|
249
265
|
export type ValidationConfig<T, TErrors extends string | number = ValidationErrors> = {
|
|
250
266
|
validator: ValueValidator<Readonly<T>, TErrors>,
|
|
@@ -262,6 +278,7 @@ export abstract class ValidatableModel<T = string> {
|
|
|
262
278
|
private _error: string = null;
|
|
263
279
|
|
|
264
280
|
private _validationError: ValidationError = null;
|
|
281
|
+
protected _validateOnChange = false;
|
|
265
282
|
|
|
266
283
|
constructor() {
|
|
267
284
|
makeObservable(this);
|
|
@@ -276,6 +293,11 @@ export abstract class ValidatableModel<T = string> {
|
|
|
276
293
|
public <span class="fstat-no" title="function not covered" >setValidationConfig<</span>TErrors extends string | number = ValidationErrors>(config?: ValidationConfig<T, TErrors>) {
|
|
277
294
|
<span class="cstat-no" title="statement not covered" > this._validator = config?.validator || EmptyValidator;</span>
|
|
278
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>
|
|
279
301
|
<span class="cstat-no" title="statement not covered" > return this;</span>
|
|
280
302
|
}
|
|
281
303
|
|
|
@@ -301,12 +323,14 @@ export abstract class ValidatableModel<T = string> {
|
|
|
301
323
|
<span class="cstat-no" title="statement not covered" > this._validationError = err as ValidationError;</span>
|
|
302
324
|
}
|
|
303
325
|
|
|
304
|
-
<span class="cstat-no" title="statement not covered" >
|
|
305
|
-
<span class="cstat-no" title="statement not covered" > this.
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
<span class="cstat-no" title="statement not covered" >
|
|
309
|
-
|
|
326
|
+
<span class="cstat-no" title="statement not covered" > runInAction(<span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
327
|
+
<span class="cstat-no" title="statement not covered" > if (!this._validationError) {</span>
|
|
328
|
+
<span class="cstat-no" title="statement not covered" > this._error = null;</span>
|
|
329
|
+
} else {
|
|
330
|
+
const code = <span class="cstat-no" title="statement not covered" >this._validationError.code;</span>
|
|
331
|
+
<span class="cstat-no" title="statement not covered" > this._error = this._strings && this._strings[code];</span>
|
|
332
|
+
}
|
|
333
|
+
});
|
|
310
334
|
<span class="cstat-no" title="statement not covered" > return this._validationError == null;</span>
|
|
311
335
|
}
|
|
312
336
|
|
|
@@ -337,7 +361,7 @@ export abstract class ValidatableModel<T = string> {
|
|
|
337
361
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
338
362
|
Code coverage generated by
|
|
339
363
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
340
|
-
at
|
|
364
|
+
at Mon Jan 31 2022 16:39:21 GMT+0000 (Coordinated Universal Time)
|
|
341
365
|
</div>
|
|
342
366
|
</div>
|
|
343
367
|
<script src="../../prettify.js"></script>
|