@zajno/common 1.4.10 → 1.4.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/coverage/clover.xml +457 -374
  2. package/coverage/coverage-final.json +30 -27
  3. package/coverage/lcov-report/CommonModel.ts.html +215 -0
  4. package/coverage/lcov-report/FlagModel.ts.html +290 -0
  5. package/coverage/lcov-report/MultiSelectModel.ts.html +614 -0
  6. package/coverage/lcov-report/NumberModel.ts.html +230 -0
  7. package/coverage/lcov-report/SelectModel.ts.html +503 -0
  8. package/coverage/lcov-report/Validatable.ts.html +386 -0
  9. package/coverage/lcov-report/async/index.html +111 -0
  10. package/coverage/lcov-report/async/timeout.ts.html +230 -0
  11. package/coverage/lcov-report/index.html +24 -24
  12. package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
  13. package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
  14. package/coverage/lcov-report/src/async/arrays.ts.html +5 -5
  15. package/coverage/lcov-report/src/async/index.html +1 -1
  16. package/coverage/lcov-report/src/async/timeout.ts.html +12 -12
  17. package/coverage/lcov-report/src/cache.ts.html +1 -1
  18. package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
  19. package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
  20. package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
  21. package/coverage/lcov-report/src/dates/format.ts.html +1 -1
  22. package/coverage/lcov-report/src/dates/index.html +1 -1
  23. package/coverage/lcov-report/src/dates/index.ts.html +1 -1
  24. package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
  25. package/coverage/lcov-report/src/dates/period.ts.html +1 -1
  26. package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
  27. package/coverage/lcov-report/src/dates/types.ts.html +1 -1
  28. package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
  29. package/coverage/lcov-report/src/disposer.ts.html +1 -1
  30. package/coverage/lcov-report/src/enumHelper.ts.html +10 -10
  31. package/coverage/lcov-report/src/event.ts.html +1 -1
  32. package/coverage/lcov-report/src/fields/index.html +1 -1
  33. package/coverage/lcov-report/src/fields/update.ts.html +1 -1
  34. package/coverage/lcov-report/src/functions.ts.html +1 -1
  35. package/coverage/lcov-report/src/index.html +1 -1
  36. package/coverage/lcov-report/src/lazy.light.ts.html +6 -6
  37. package/coverage/lcov-report/src/logger/batch.ts.html +2 -2
  38. package/coverage/lcov-report/src/logger/console.ts.html +5 -5
  39. package/coverage/lcov-report/src/logger/index.html +1 -1
  40. package/coverage/lcov-report/src/logger/index.ts.html +22 -22
  41. package/coverage/lcov-report/src/logger/named.ts.html +13 -13
  42. package/coverage/lcov-report/src/logger/proxy.ts.html +7 -7
  43. package/coverage/lcov-report/src/math/arrays.ts.html +23 -23
  44. package/coverage/lcov-report/src/math/calc.ts.html +9 -9
  45. package/coverage/lcov-report/src/math/distribution.ts.html +2 -2
  46. package/coverage/lcov-report/src/math/index.html +1 -1
  47. package/coverage/lcov-report/src/math/index.ts.html +6 -6
  48. package/coverage/lcov-report/src/observersMap.ts.html +1 -1
  49. package/coverage/lcov-report/src/observingCache.ts.html +1 -1
  50. package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
  51. package/coverage/lcov-report/src/types.ts.html +8 -8
  52. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +22 -22
  53. package/coverage/lcov-report/src/validation/creditCard.ts.html +4 -4
  54. package/coverage/lcov-report/src/validation/helpers.ts.html +6 -6
  55. package/coverage/lcov-report/src/validation/index.html +16 -16
  56. package/coverage/lcov-report/src/validation/index.ts.html +6 -6
  57. package/coverage/lcov-report/src/validation/types.ts.html +16 -16
  58. package/coverage/lcov-report/src/validation/validators.ts.html +5 -5
  59. package/coverage/lcov-report/src/validation/wrappers.ts.html +5 -5
  60. package/coverage/lcov-report/src/viewModels/CommonModel.ts.html +215 -0
  61. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +41 -20
  62. package/coverage/lcov-report/src/viewModels/LoadingModel.ts.html +128 -0
  63. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +50 -20
  64. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +41 -23
  65. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +42 -30
  66. package/coverage/lcov-report/src/viewModels/TextModel.ts.html +461 -0
  67. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +69 -60
  68. package/coverage/lcov-report/src/viewModels/index.html +84 -39
  69. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +6 -6
  70. package/coverage/lcov-report/validation/index.html +111 -0
  71. package/coverage/lcov-report/validation/index.ts.html +107 -0
  72. package/coverage/lcov-report/viewModels/CommonModel.ts.html +215 -0
  73. package/coverage/lcov-report/viewModels/FlagModel.ts.html +290 -0
  74. package/coverage/lcov-report/viewModels/LoadingModel.ts.html +128 -0
  75. package/coverage/lcov-report/viewModels/MultiSelectModel.ts.html +614 -0
  76. package/coverage/lcov-report/viewModels/NumberModel.ts.html +230 -0
  77. package/coverage/lcov-report/viewModels/SelectModel.ts.html +503 -0
  78. package/coverage/lcov-report/viewModels/TextModel.ts.html +461 -0
  79. package/coverage/lcov-report/viewModels/Validatable.ts.html +386 -0
  80. package/coverage/lcov-report/viewModels/index.html +216 -0
  81. package/coverage/lcov.info +773 -583
  82. package/lib/services/localization/LocalizationManager.d.ts +1 -0
  83. package/lib/services/localization/LocalizationManager.d.ts.map +1 -1
  84. package/lib/services/localization/LocalizationManager.js +7 -3
  85. package/lib/services/localization/LocalizationManager.js.map +1 -1
  86. package/lib/validation/ValidationErrorsLocalization.d.ts +1 -1
  87. package/lib/validation/ValidationErrorsLocalization.d.ts.map +1 -1
  88. package/lib/validation/ValidationErrorsLocalization.js +1 -1
  89. package/lib/validation/ValidationErrorsLocalization.js.map +1 -1
  90. package/lib/viewModels/FlagModel.d.ts.map +1 -1
  91. package/lib/viewModels/FlagModel.js +14 -26
  92. package/lib/viewModels/FlagModel.js.map +1 -1
  93. package/lib/viewModels/LoadingModel.d.ts +6 -0
  94. package/lib/viewModels/LoadingModel.d.ts.map +1 -0
  95. package/lib/viewModels/LoadingModel.js +19 -0
  96. package/lib/viewModels/LoadingModel.js.map +1 -0
  97. package/lib/viewModels/MultiSelectModel.d.ts.map +1 -1
  98. package/lib/viewModels/MultiSelectModel.js +20 -43
  99. package/lib/viewModels/MultiSelectModel.js.map +1 -1
  100. package/lib/viewModels/NumberModel.d.ts.map +1 -1
  101. package/lib/viewModels/NumberModel.js +12 -22
  102. package/lib/viewModels/NumberModel.js.map +1 -1
  103. package/lib/viewModels/SelectModel.d.ts.map +1 -1
  104. package/lib/viewModels/SelectModel.js +8 -15
  105. package/lib/viewModels/SelectModel.js.map +1 -1
  106. package/lib/viewModels/TextModel.d.ts.map +1 -1
  107. package/lib/viewModels/TextModel.js +10 -17
  108. package/lib/viewModels/TextModel.js.map +1 -1
  109. package/lib/viewModels/Validatable.d.ts.map +1 -1
  110. package/lib/viewModels/Validatable.js +6 -12
  111. package/lib/viewModels/Validatable.js.map +1 -1
  112. package/package.json +1 -1
  113. package/src/services/localization/LocalizationManager.ts +8 -3
  114. package/src/validation/ValidationErrorsLocalization.ts +3 -3
  115. package/src/viewModels/FlagModel.ts +14 -7
  116. package/src/viewModels/LoadingModel.ts +16 -0
  117. package/src/viewModels/MultiSelectModel.ts +20 -10
  118. package/src/viewModels/NumberModel.ts +12 -6
  119. package/src/viewModels/SelectModel.ts +8 -4
  120. package/src/viewModels/TextModel.ts +10 -5
  121. package/src/viewModels/Validatable.ts +6 -3
  122. package/src/viewModels/__tests__/common.test.ts +88 -0
  123. package/yarn.lock +3 -3
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">37.5% </span>
26
+ <span class="strong">65.22% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>18/48</span>
28
+ <span class='fraction'>30/46</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">4.17% </span>
33
+ <span class="strong">62.5% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>1/24</span>
35
+ <span class='fraction'>15/24</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">26.67% </span>
40
+ <span class="strong">46.67% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>4/15</span>
42
+ <span class='fraction'>7/15</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">39.53% </span>
47
+ <span class="strong">71.43% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>17/43</span>
49
+ <span class='fraction'>30/42</span>
50
50
  </div>
51
51
 
52
52
 
@@ -55,7 +55,7 @@
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
57
  </div>
58
- <div class='status-line low'></div>
58
+ <div class='status-line medium'></div>
59
59
  <pre><table class="coverage">
60
60
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
61
  <a name='L2'></a><a href='#L2'>2</a>
@@ -156,9 +156,12 @@
156
156
  <a name='L97'></a><a href='#L97'>97</a>
157
157
  <a name='L98'></a><a href='#L98'>98</a>
158
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>
160
- <span class="cline-any cline-yes">2x</span>
161
- <span class="cline-any cline-yes">2x</span>
159
+ <a name='L100'></a><a href='#L100'>100</a>
160
+ <a name='L101'></a><a href='#L101'>101</a>
161
+ <a name='L102'></a><a href='#L102'>102</a>
162
+ <a name='L103'></a><a href='#L103'>103</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
163
+ <span class="cline-any cline-yes">3x</span>
164
+ <span class="cline-any cline-yes">3x</span>
162
165
  <span class="cline-any cline-neutral">&nbsp;</span>
163
166
  <span class="cline-any cline-neutral">&nbsp;</span>
164
167
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -168,38 +171,41 @@
168
171
  <span class="cline-any cline-neutral">&nbsp;</span>
169
172
  <span class="cline-any cline-neutral">&nbsp;</span>
170
173
  <span class="cline-any cline-neutral">&nbsp;</span>
171
- <span class="cline-any cline-yes">2x</span>
174
+ <span class="cline-any cline-yes">3x</span>
172
175
  <span class="cline-any cline-neutral">&nbsp;</span>
173
- <span class="cline-any cline-yes">2x</span>
176
+ <span class="cline-any cline-yes">3x</span>
174
177
  <span class="cline-any cline-neutral">&nbsp;</span>
175
- <span class="cline-any cline-yes">11x</span>
176
- <span class="cline-any cline-yes">11x</span>
178
+ <span class="cline-any cline-yes">14x</span>
179
+ <span class="cline-any cline-yes">14x</span>
177
180
  <span class="cline-any cline-neutral">&nbsp;</span>
178
181
  <span class="cline-any cline-neutral">&nbsp;</span>
179
- <span class="cline-any cline-yes">11x</span>
182
+ <span class="cline-any cline-yes">14x</span>
180
183
  <span class="cline-any cline-neutral">&nbsp;</span>
181
- <span class="cline-any cline-yes">11x</span>
182
- <span class="cline-any cline-yes">11x</span>
184
+ <span class="cline-any cline-yes">14x</span>
185
+ <span class="cline-any cline-yes">14x</span>
183
186
  <span class="cline-any cline-neutral">&nbsp;</span>
184
187
  <span class="cline-any cline-neutral">&nbsp;</span>
185
- <span class="cline-any cline-yes">11x</span>
188
+ <span class="cline-any cline-yes">14x</span>
186
189
  <span class="cline-any cline-neutral">&nbsp;</span>
187
190
  <span class="cline-any cline-neutral">&nbsp;</span>
188
191
  <span class="cline-any cline-neutral">&nbsp;</span>
189
192
  <span class="cline-any cline-neutral">&nbsp;</span>
190
- <span class="cline-any cline-no">&nbsp;</span>
191
193
  <span class="cline-any cline-neutral">&nbsp;</span>
192
- <span class="cline-any cline-yes">1x</span>
193
194
  <span class="cline-any cline-neutral">&nbsp;</span>
194
195
  <span class="cline-any cline-neutral">&nbsp;</span>
195
196
  <span class="cline-any cline-no">&nbsp;</span>
196
- <span class="cline-any cline-no">&nbsp;</span>
197
- <span class="cline-any cline-no">&nbsp;</span>
198
197
  <span class="cline-any cline-neutral">&nbsp;</span>
198
+ <span class="cline-any cline-yes">3x</span>
199
199
  <span class="cline-any cline-neutral">&nbsp;</span>
200
200
  <span class="cline-any cline-neutral">&nbsp;</span>
201
- <span class="cline-any cline-no">&nbsp;</span>
202
- <span class="cline-any cline-no">&nbsp;</span>
201
+ <span class="cline-any cline-yes">1x</span>
202
+ <span class="cline-any cline-yes">1x</span>
203
+ <span class="cline-any cline-yes">1x</span>
204
+ <span class="cline-any cline-neutral">&nbsp;</span>
205
+ <span class="cline-any cline-neutral">&nbsp;</span>
206
+ <span class="cline-any cline-neutral">&nbsp;</span>
207
+ <span class="cline-any cline-yes">1x</span>
208
+ <span class="cline-any cline-yes">1x</span>
203
209
  <span class="cline-any cline-neutral">&nbsp;</span>
204
210
  <span class="cline-any cline-neutral">&nbsp;</span>
205
211
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -211,28 +217,28 @@
211
217
  <span class="cline-any cline-neutral">&nbsp;</span>
212
218
  <span class="cline-any cline-neutral">&nbsp;</span>
213
219
  <span class="cline-any cline-neutral">&nbsp;</span>
214
- <span class="cline-any cline-yes">1x</span>
220
+ <span class="cline-any cline-yes">4x</span>
215
221
  <span class="cline-any cline-yes">1x</span>
216
222
  <span class="cline-any cline-neutral">&nbsp;</span>
217
223
  <span class="cline-any cline-neutral">&nbsp;</span>
218
- <span class="cline-any cline-no">&nbsp;</span>
219
- <span class="cline-any cline-no">&nbsp;</span>
220
- <span class="cline-any cline-no">&nbsp;</span>
224
+ <span class="cline-any cline-yes">3x</span>
225
+ <span class="cline-any cline-yes">3x</span>
226
+ <span class="cline-any cline-yes">3x</span>
221
227
  <span class="cline-any cline-neutral">&nbsp;</span>
222
228
  <span class="cline-any cline-neutral">&nbsp;</span>
223
229
  <span class="cline-any cline-neutral">&nbsp;</span>
224
230
  <span class="cline-any cline-no">&nbsp;</span>
225
231
  <span class="cline-any cline-neutral">&nbsp;</span>
226
232
  <span class="cline-any cline-neutral">&nbsp;</span>
227
- <span class="cline-any cline-no">&nbsp;</span>
228
- <span class="cline-any cline-no">&nbsp;</span>
229
- <span class="cline-any cline-no">&nbsp;</span>
233
+ <span class="cline-any cline-yes">3x</span>
234
+ <span class="cline-any cline-yes">3x</span>
235
+ <span class="cline-any cline-yes">1x</span>
230
236
  <span class="cline-any cline-neutral">&nbsp;</span>
231
- <span class="cline-any cline-no">&nbsp;</span>
232
- <span class="cline-any cline-no">&nbsp;</span>
237
+ <span class="cline-any cline-yes">2x</span>
238
+ <span class="cline-any cline-yes">2x</span>
233
239
  <span class="cline-any cline-neutral">&nbsp;</span>
234
240
  <span class="cline-any cline-neutral">&nbsp;</span>
235
- <span class="cline-any cline-no">&nbsp;</span>
241
+ <span class="cline-any cline-yes">3x</span>
236
242
  <span class="cline-any cline-neutral">&nbsp;</span>
237
243
  <span class="cline-any cline-neutral">&nbsp;</span>
238
244
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -241,9 +247,9 @@
241
247
  <span class="cline-any cline-neutral">&nbsp;</span>
242
248
  <span class="cline-any cline-neutral">&nbsp;</span>
243
249
  <span class="cline-any cline-neutral">&nbsp;</span>
244
- <span class="cline-any cline-yes">2x</span>
245
- <span class="cline-any cline-yes">2x</span>
246
- <span class="cline-any cline-yes">2x</span>
250
+ <span class="cline-any cline-neutral">&nbsp;</span>
251
+ <span class="cline-any cline-yes">4x</span>
252
+ <span class="cline-any cline-yes">4x</span>
247
253
  <span class="cline-any cline-neutral">&nbsp;</span>
248
254
  <span class="cline-any cline-neutral">&nbsp;</span>
249
255
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -274,14 +280,17 @@ export abstract class ValidatableModel&lt;T = string&gt; {
274
280
  private _validator: ValueValidator&lt;Readonly&lt;T&gt;, any&gt; = null;
275
281
  private _strings: ValidationErrorsStrings&lt;any&gt; = null;
276
282
  &nbsp;
277
- @observable
283
+ // @observable
278
284
  private _error: string = null;
279
285
  &nbsp;
280
286
  private _validationError: ValidationError = null;
281
287
  protected _validateOnChange = false;
282
288
  &nbsp;
283
289
  constructor() {
284
- makeObservable(this);
290
+ makeObservable&lt;ValidatableModel&lt;T&gt;, '_error'&gt;(this, {
291
+ '_error': observable,
292
+ reset: action,
293
+ });
285
294
  }
286
295
  &nbsp;
287
296
  protected abstract get valueToValidate(): Readonly&lt;T&gt;;
@@ -290,15 +299,15 @@ export abstract class ValidatableModel&lt;T = string&gt; {
290
299
  &nbsp;
291
300
  get error() { return this._error; }
292
301
  &nbsp;
293
- public <span class="fstat-no" title="function not covered" >setValidationConfig&lt;</span>TErrors extends string | number = ValidationErrors&gt;(config?: ValidationConfig&lt;T, TErrors&gt;) {
294
- <span class="cstat-no" title="statement not covered" > this._validator = config?.validator || EmptyValidator;</span>
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>
302
+ public setValidationConfig&lt;TErrors extends string | number = ValidationErrors&gt;(config?: ValidationConfig&lt;T, TErrors&gt;) {
303
+ this._validator = config<span class="branch-0 cbranch-no" title="branch not covered" >?.v</span>alidator || <span class="branch-1 cbranch-no" title="branch not covered" >EmptyValidator;</span>
304
+ this._strings = config<span class="branch-0 cbranch-no" title="branch not covered" >?.e</span>rrors;
305
+ return this;
297
306
  }
298
307
  &nbsp;
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>
301
- <span class="cstat-no" title="statement not covered" > return this;</span>
308
+ public validateOnChange(enable = <span class="branch-0 cbranch-no" title="branch not covered" >true)</span> {
309
+ this._validateOnChange = enable;
310
+ return this;
302
311
  }
303
312
  &nbsp;
304
313
  public <span class="fstat-no" title="function not covered" >async </span>testValidate(value: T) {
@@ -310,28 +319,28 @@ export abstract class ValidatableModel&lt;T = string&gt; {
310
319
  }
311
320
  &nbsp;
312
321
  async validate() {
313
- <span class="missing-if-branch" title="else path not taken" >E</span>if (!this._validator) {
322
+ if (!this._validator) {
314
323
  return true;
315
324
  }
316
325
  &nbsp;
317
- <span class="cstat-no" title="statement not covered" > try {</span>
318
- const validationResult = <span class="cstat-no" title="statement not covered" >await this._validator(this.valueToValidate);</span>
319
- <span class="cstat-no" title="statement not covered" > this._validationError = !validationResult</span>
326
+ try {
327
+ const validationResult = await this._validator(this.valueToValidate);
328
+ this._validationError = !validationResult
320
329
  ? null
321
330
  : new ValidationError('Unknown error', validationResult);
322
331
  } catch (err) {
323
332
  <span class="cstat-no" title="statement not covered" > this._validationError = err as ValidationError;</span>
324
333
  }
325
334
  &nbsp;
326
- <span class="cstat-no" title="statement not covered" > runInAction(<span class="fstat-no" title="function not covered" >() =</span>&gt; {</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>
335
+ runInAction(() =&gt; {
336
+ if (!this._validationError) {
337
+ this._error = null;
329
338
  } 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 &amp;&amp; this._strings[code];</span>
339
+ const code = this._validationError.code;
340
+ this._error = this._strings &amp;&amp; this._strings[code];
332
341
  }
333
342
  });
334
- <span class="cstat-no" title="statement not covered" > return this._validationError == null;</span>
343
+ return this._validationError == null;
335
344
  }
336
345
  &nbsp;
337
346
  <span class="fstat-no" title="function not covered" > async </span>getIsInvalid() {
@@ -339,7 +348,7 @@ export abstract class ValidatableModel&lt;T = string&gt; {
339
348
  <span class="cstat-no" title="statement not covered" > return !valid;</span>
340
349
  }
341
350
  &nbsp;
342
- @action
351
+ // @action
343
352
  reset() {
344
353
  this._validationError = null;
345
354
  this._error = null;
@@ -361,7 +370,7 @@ export abstract class ValidatableModel&lt;T = string&gt; {
361
370
  <div class='footer quiet pad2 space-top1 center small'>
362
371
  Code coverage generated by
363
372
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
364
- at Sun Mar 13 2022 18:37:06 GMT+0000 (Coordinated Universal Time)
373
+ at Fri Mar 18 2022 08:49:14 GMT+0000 (Coordinated Universal Time)
365
374
  </div>
366
375
  </div>
367
376
  <script src="../../prettify.js"></script>
@@ -25,28 +25,28 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">74.57% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>217/291</span>
28
+ <span class='fraction'>261/350</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">43.75% </span>
33
+ <span class="strong">55.79% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>28/64</span>
35
+ <span class='fraction'>53/95</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">64.55% </span>
40
+ <span class="strong">62.59% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>71/110</span>
42
+ <span class='fraction'>87/139</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">73.17% </span>
47
+ <span class="strong">75% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>180/246</span>
49
+ <span class='fraction'>240/320</span>
50
50
  </div>
51
51
 
52
52
 
@@ -73,12 +73,27 @@
73
73
  </tr>
74
74
  </thead>
75
75
  <tbody><tr>
76
+ <td class="file high" data-value="CommonModel.ts"><a href="CommonModel.ts.html">CommonModel.ts</a></td>
77
+ <td data-value="100" class="pic high">
78
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
79
+ </td>
80
+ <td data-value="100" class="pct high">100%</td>
81
+ <td data-value="19" class="abs high">19/19</td>
82
+ <td data-value="50" class="pct medium">50%</td>
83
+ <td data-value="8" class="abs medium">4/8</td>
84
+ <td data-value="100" class="pct high">100%</td>
85
+ <td data-value="6" class="abs high">6/6</td>
86
+ <td data-value="100" class="pct high">100%</td>
87
+ <td data-value="19" class="abs high">19/19</td>
88
+ </tr>
89
+
90
+ <tr>
76
91
  <td class="file medium" data-value="FlagModel.ts"><a href="FlagModel.ts.html">FlagModel.ts</a></td>
77
- <td data-value="67.86" class="pic medium">
78
- <div class="chart"><div class="cover-fill" style="width: 67%"></div><div class="cover-empty" style="width: 33%"></div></div>
92
+ <td data-value="59.09" class="pic medium">
93
+ <div class="chart"><div class="cover-fill" style="width: 59%"></div><div class="cover-empty" style="width: 41%"></div></div>
79
94
  </td>
80
- <td data-value="67.86" class="pct medium">67.86%</td>
81
- <td data-value="28" class="abs medium">19/28</td>
95
+ <td data-value="59.09" class="pct medium">59.09%</td>
96
+ <td data-value="22" class="abs medium">13/22</td>
82
97
  <td data-value="100" class="pct high">100%</td>
83
98
  <td data-value="1" class="abs high">1/1</td>
84
99
  <td data-value="44.44" class="pct low">44.44%</td>
@@ -87,28 +102,43 @@
87
102
  <td data-value="22" class="abs medium">13/22</td>
88
103
  </tr>
89
104
 
105
+ <tr>
106
+ <td class="file high" data-value="LoadingModel.ts"><a href="LoadingModel.ts.html">LoadingModel.ts</a></td>
107
+ <td data-value="100" class="pic high">
108
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
109
+ </td>
110
+ <td data-value="100" class="pct high">100%</td>
111
+ <td data-value="8" class="abs high">8/8</td>
112
+ <td data-value="100" class="pct high">100%</td>
113
+ <td data-value="0" class="abs high">0/0</td>
114
+ <td data-value="100" class="pct high">100%</td>
115
+ <td data-value="2" class="abs high">2/2</td>
116
+ <td data-value="100" class="pct high">100%</td>
117
+ <td data-value="8" class="abs high">8/8</td>
118
+ </tr>
119
+
90
120
  <tr>
91
121
  <td class="file medium" data-value="MultiSelectModel.ts"><a href="MultiSelectModel.ts.html">MultiSelectModel.ts</a></td>
92
- <td data-value="77.14" class="pic medium">
93
- <div class="chart"><div class="cover-fill" style="width: 77%"></div><div class="cover-empty" style="width: 23%"></div></div>
122
+ <td data-value="75" class="pic medium">
123
+ <div class="chart"><div class="cover-fill" style="width: 75%"></div><div class="cover-empty" style="width: 25%"></div></div>
94
124
  </td>
95
- <td data-value="77.14" class="pct medium">77.14%</td>
96
- <td data-value="105" class="abs medium">81/105</td>
125
+ <td data-value="75" class="pct medium">75%</td>
126
+ <td data-value="96" class="abs medium">72/96</td>
97
127
  <td data-value="44.44" class="pct low">44.44%</td>
98
128
  <td data-value="18" class="abs low">8/18</td>
99
129
  <td data-value="66.67" class="pct medium">66.67%</td>
100
130
  <td data-value="42" class="abs medium">28/42</td>
101
- <td data-value="76.47" class="pct medium">76.47%</td>
102
- <td data-value="85" class="abs medium">65/85</td>
131
+ <td data-value="74.39" class="pct medium">74.39%</td>
132
+ <td data-value="82" class="abs medium">61/82</td>
103
133
  </tr>
104
134
 
105
135
  <tr>
106
136
  <td class="file high" data-value="NumberModel.ts"><a href="NumberModel.ts.html">NumberModel.ts</a></td>
107
- <td data-value="91.67" class="pic high">
108
- <div class="chart"><div class="cover-fill" style="width: 91%"></div><div class="cover-empty" style="width: 9%"></div></div>
137
+ <td data-value="89.47" class="pic high">
138
+ <div class="chart"><div class="cover-fill" style="width: 89%"></div><div class="cover-empty" style="width: 11%"></div></div>
109
139
  </td>
110
- <td data-value="91.67" class="pct high">91.67%</td>
111
- <td data-value="24" class="abs high">22/24</td>
140
+ <td data-value="89.47" class="pct high">89.47%</td>
141
+ <td data-value="19" class="abs high">17/19</td>
112
142
  <td data-value="100" class="pct high">100%</td>
113
143
  <td data-value="3" class="abs high">3/3</td>
114
144
  <td data-value="75" class="pct medium">75%</td>
@@ -119,32 +149,47 @@
119
149
 
120
150
  <tr>
121
151
  <td class="file high" data-value="SelectModel.ts"><a href="SelectModel.ts.html">SelectModel.ts</a></td>
122
- <td data-value="91.04" class="pic high">
123
- <div class="chart"><div class="cover-fill" style="width: 91%"></div><div class="cover-empty" style="width: 9%"></div></div>
152
+ <td data-value="90.63" class="pic high">
153
+ <div class="chart"><div class="cover-fill" style="width: 90%"></div><div class="cover-empty" style="width: 10%"></div></div>
124
154
  </td>
125
- <td data-value="91.04" class="pct high">91.04%</td>
126
- <td data-value="67" class="abs high">61/67</td>
155
+ <td data-value="90.63" class="pct high">90.63%</td>
156
+ <td data-value="64" class="abs high">58/64</td>
127
157
  <td data-value="83.33" class="pct high">83.33%</td>
128
158
  <td data-value="18" class="abs high">15/18</td>
129
159
  <td data-value="84.62" class="pct high">84.62%</td>
130
160
  <td data-value="26" class="abs high">22/26</td>
131
- <td data-value="90" class="pct high">90%</td>
132
- <td data-value="60" class="abs high">54/60</td>
161
+ <td data-value="89.83" class="pct high">89.83%</td>
162
+ <td data-value="59" class="abs high">53/59</td>
163
+ </tr>
164
+
165
+ <tr>
166
+ <td class="file low" data-value="TextModel.ts"><a href="TextModel.ts.html">TextModel.ts</a></td>
167
+ <td data-value="49.12" class="pic low">
168
+ <div class="chart"><div class="cover-fill" style="width: 49%"></div><div class="cover-empty" style="width: 51%"></div></div>
169
+ </td>
170
+ <td data-value="49.12" class="pct low">49.12%</td>
171
+ <td data-value="57" class="abs low">28/57</td>
172
+ <td data-value="30.43" class="pct low">30.43%</td>
173
+ <td data-value="23" class="abs low">7/23</td>
174
+ <td data-value="23.81" class="pct low">23.81%</td>
175
+ <td data-value="21" class="abs low">5/21</td>
176
+ <td data-value="48.08" class="pct low">48.08%</td>
177
+ <td data-value="52" class="abs low">25/52</td>
133
178
  </tr>
134
179
 
135
180
  <tr>
136
- <td class="file low" data-value="Validatable.ts"><a href="Validatable.ts.html">Validatable.ts</a></td>
137
- <td data-value="37.5" class="pic low">
138
- <div class="chart"><div class="cover-fill" style="width: 37%"></div><div class="cover-empty" style="width: 63%"></div></div>
181
+ <td class="file medium" data-value="Validatable.ts"><a href="Validatable.ts.html">Validatable.ts</a></td>
182
+ <td data-value="65.22" class="pic medium">
183
+ <div class="chart"><div class="cover-fill" style="width: 65%"></div><div class="cover-empty" style="width: 35%"></div></div>
139
184
  </td>
140
- <td data-value="37.5" class="pct low">37.5%</td>
141
- <td data-value="48" class="abs low">18/48</td>
142
- <td data-value="4.17" class="pct low">4.17%</td>
143
- <td data-value="24" class="abs low">1/24</td>
144
- <td data-value="26.67" class="pct low">26.67%</td>
145
- <td data-value="15" class="abs low">4/15</td>
146
- <td data-value="39.53" class="pct low">39.53%</td>
147
- <td data-value="43" class="abs low">17/43</td>
185
+ <td data-value="65.22" class="pct medium">65.22%</td>
186
+ <td data-value="46" class="abs medium">30/46</td>
187
+ <td data-value="62.5" class="pct medium">62.5%</td>
188
+ <td data-value="24" class="abs medium">15/24</td>
189
+ <td data-value="46.67" class="pct low">46.67%</td>
190
+ <td data-value="15" class="abs low">7/15</td>
191
+ <td data-value="71.43" class="pct medium">71.43%</td>
192
+ <td data-value="42" class="abs medium">30/42</td>
148
193
  </tr>
149
194
 
150
195
  <tr>
@@ -170,7 +215,7 @@
170
215
  <div class='footer quiet pad2 space-top1 center small'>
171
216
  Code coverage generated by
172
217
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
173
- at Sun Mar 13 2022 18:37:06 GMT+0000 (Coordinated Universal Time)
218
+ at Fri Mar 18 2022 08:49:14 GMT+0000 (Coordinated Universal Time)
174
219
  </div>
175
220
  </div>
176
221
  <script src="../../prettify.js"></script>
@@ -106,10 +106,10 @@
106
106
  <a name='L47'></a><a href='#L47'>47</a>
107
107
  <a name='L48'></a><a href='#L48'>48</a>
108
108
  <a name='L49'></a><a href='#L49'>49</a>
109
- <a name='L50'></a><a href='#L50'>50</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
109
+ <a name='L50'></a><a href='#L50'>50</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">4x</span>
110
110
  <span class="cline-any cline-neutral">&nbsp;</span>
111
111
  <span class="cline-any cline-neutral">&nbsp;</span>
112
- <span class="cline-any cline-yes">3x</span>
112
+ <span class="cline-any cline-yes">4x</span>
113
113
  <span class="cline-any cline-yes">6x</span>
114
114
  <span class="cline-any cline-yes">6x</span>
115
115
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -120,7 +120,7 @@
120
120
  <span class="cline-any cline-yes">6x</span>
121
121
  <span class="cline-any cline-neutral">&nbsp;</span>
122
122
  <span class="cline-any cline-neutral">&nbsp;</span>
123
- <span class="cline-any cline-yes">3x</span>
123
+ <span class="cline-any cline-yes">4x</span>
124
124
  <span class="cline-any cline-yes">3x</span>
125
125
  <span class="cline-any cline-neutral">&nbsp;</span>
126
126
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -131,7 +131,7 @@
131
131
  <span class="cline-any cline-yes">3x</span>
132
132
  <span class="cline-any cline-neutral">&nbsp;</span>
133
133
  <span class="cline-any cline-neutral">&nbsp;</span>
134
- <span class="cline-any cline-yes">3x</span>
134
+ <span class="cline-any cline-yes">4x</span>
135
135
  <span class="cline-any cline-no">&nbsp;</span>
136
136
  <span class="cline-any cline-no">&nbsp;</span>
137
137
  <span class="cline-any cline-no">&nbsp;</span>
@@ -144,7 +144,7 @@
144
144
  <span class="cline-any cline-neutral">&nbsp;</span>
145
145
  <span class="cline-any cline-neutral">&nbsp;</span>
146
146
  <span class="cline-any cline-neutral">&nbsp;</span>
147
- <span class="cline-any cline-yes">3x</span>
147
+ <span class="cline-any cline-yes">4x</span>
148
148
  <span class="cline-any cline-neutral">&nbsp;</span>
149
149
  <span class="cline-any cline-neutral">&nbsp;</span>
150
150
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -211,7 +211,7 @@ export function mixinLabel&lt;T, TModel extends IValueModel&lt;T&gt;, TLabel = s
211
211
  <div class='footer quiet pad2 space-top1 center small'>
212
212
  Code coverage generated by
213
213
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
214
- at Sun Mar 13 2022 18:37:06 GMT+0000 (Coordinated Universal Time)
214
+ at Fri Mar 18 2022 08:49:14 GMT+0000 (Coordinated Universal Time)
215
215
  </div>
216
216
  </div>
217
217
  <script src="../../prettify.js"></script>