@zajno/common 1.3.1 → 1.3.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.
Files changed (152) hide show
  1. package/coverage/clover.xml +429 -370
  2. package/coverage/coverage-final.json +39 -38
  3. package/coverage/lcov-report/NumberModel.ts.html +188 -0
  4. package/coverage/lcov-report/arrays.ts.html +602 -0
  5. package/coverage/lcov-report/calc.ts.html +278 -0
  6. package/coverage/lcov-report/enumHelper.ts.html +449 -0
  7. package/coverage/lcov-report/index.html +43 -43
  8. package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
  9. package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +2 -2
  10. package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
  11. package/coverage/lcov-report/src/async/index.html +1 -1
  12. package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
  13. package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
  14. package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
  15. package/coverage/lcov-report/src/dates/format.ts.html +1 -1
  16. package/coverage/lcov-report/src/dates/index.html +1 -1
  17. package/coverage/lcov-report/src/dates/index.ts.html +1 -1
  18. package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
  19. package/coverage/lcov-report/src/dates/period.ts.html +1 -1
  20. package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
  21. package/coverage/lcov-report/src/dates/types.ts.html +1 -1
  22. package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
  23. package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
  24. package/coverage/lcov-report/src/event.ts.html +3 -3
  25. package/coverage/lcov-report/src/index.html +21 -21
  26. package/coverage/lcov-report/src/lazy.light.ts.html +1 -1
  27. package/coverage/lcov-report/src/logger/batch.ts.html +107 -0
  28. package/coverage/lcov-report/src/logger/console.ts.html +10 -25
  29. package/coverage/lcov-report/src/logger/index.html +54 -39
  30. package/coverage/lcov-report/src/logger/index.ts.html +88 -61
  31. package/coverage/lcov-report/src/logger/named.ts.html +31 -31
  32. package/coverage/lcov-report/src/logger/proxy.ts.html +13 -13
  33. package/coverage/lcov-report/src/math/arrays.ts.html +269 -32
  34. package/coverage/lcov-report/src/math/calc.ts.html +11 -11
  35. package/coverage/lcov-report/src/math/distribution.ts.html +2 -2
  36. package/coverage/lcov-report/src/math/index.html +11 -11
  37. package/coverage/lcov-report/src/math/index.ts.html +6 -6
  38. package/coverage/lcov-report/src/transitionObserver.ts.html +5 -5
  39. package/coverage/lcov-report/src/types.ts.html +33 -18
  40. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
  41. package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
  42. package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
  43. package/coverage/lcov-report/src/validation/index.html +1 -1
  44. package/coverage/lcov-report/src/validation/index.ts.html +1 -1
  45. package/coverage/lcov-report/src/validation/types.ts.html +1 -1
  46. package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
  47. package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
  48. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +16 -13
  49. package/coverage/lcov-report/src/viewModels/LabeledFlagModel.ts.html +17 -26
  50. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +34 -13
  51. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +19 -10
  52. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +19 -10
  53. package/coverage/lcov-report/src/viewModels/SelectViewModel.ts.html +17 -14
  54. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +1 -1
  55. package/coverage/lcov-report/src/viewModels/index.html +42 -42
  56. package/coverage/lcov-report/src/viewModels/labeled.ts.html +128 -0
  57. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +3 -15
  58. package/coverage/lcov-report/transitionObserver.ts.html +41 -77
  59. package/coverage/lcov.info +785 -654
  60. package/lib/event.d.ts.map +1 -1
  61. package/lib/event.js +1 -1
  62. package/lib/event.js.map +1 -1
  63. package/lib/logger/batch.d.ts +3 -0
  64. package/lib/logger/batch.d.ts.map +1 -0
  65. package/lib/logger/batch.js +12 -0
  66. package/lib/logger/batch.js.map +1 -0
  67. package/lib/logger/console.d.ts +0 -1
  68. package/lib/logger/console.d.ts.map +1 -1
  69. package/lib/logger/console.js +0 -3
  70. package/lib/logger/console.js.map +1 -1
  71. package/lib/logger/file.d.ts +15 -0
  72. package/lib/logger/file.d.ts.map +1 -0
  73. package/lib/logger/file.js +43 -0
  74. package/lib/logger/file.js.map +1 -0
  75. package/lib/logger/index.d.ts +7 -6
  76. package/lib/logger/index.d.ts.map +1 -1
  77. package/lib/logger/index.js +34 -21
  78. package/lib/logger/index.js.map +1 -1
  79. package/lib/logger/named.js +3 -3
  80. package/lib/logger/named.js.map +1 -1
  81. package/lib/logger/proxy.d.ts +1 -1
  82. package/lib/logger/proxy.d.ts.map +1 -1
  83. package/lib/logger/proxy.js +2 -2
  84. package/lib/logger/proxy.js.map +1 -1
  85. package/lib/math/arrays.d.ts +15 -0
  86. package/lib/math/arrays.d.ts.map +1 -1
  87. package/lib/math/arrays.js +69 -1
  88. package/lib/math/arrays.js.map +1 -1
  89. package/lib/transitionObserver.d.ts.map +1 -1
  90. package/lib/transitionObserver.js +2 -2
  91. package/lib/transitionObserver.js.map +1 -1
  92. package/lib/types.d.ts +4 -0
  93. package/lib/types.d.ts.map +1 -1
  94. package/lib/types.js +6 -2
  95. package/lib/types.js.map +1 -1
  96. package/lib/viewModels/FlagModel.d.ts +4 -4
  97. package/lib/viewModels/FlagModel.d.ts.map +1 -1
  98. package/lib/viewModels/FlagModel.js +1 -0
  99. package/lib/viewModels/FlagModel.js.map +1 -1
  100. package/lib/viewModels/MultiSelectModel.d.ts +6 -2
  101. package/lib/viewModels/MultiSelectModel.d.ts.map +1 -1
  102. package/lib/viewModels/MultiSelectModel.js +10 -1
  103. package/lib/viewModels/MultiSelectModel.js.map +1 -1
  104. package/lib/viewModels/NumberModel.d.ts +4 -2
  105. package/lib/viewModels/NumberModel.d.ts.map +1 -1
  106. package/lib/viewModels/NumberModel.js +1 -0
  107. package/lib/viewModels/NumberModel.js.map +1 -1
  108. package/lib/viewModels/SelectModel.d.ts +4 -2
  109. package/lib/viewModels/SelectModel.d.ts.map +1 -1
  110. package/lib/viewModels/SelectModel.js +1 -0
  111. package/lib/viewModels/SelectModel.js.map +1 -1
  112. package/lib/viewModels/TextModel.d.ts +4 -3
  113. package/lib/viewModels/TextModel.d.ts.map +1 -1
  114. package/lib/viewModels/TextModel.js +5 -5
  115. package/lib/viewModels/TextModel.js.map +1 -1
  116. package/lib/viewModels/ValuesCollector.d.ts +1 -3
  117. package/lib/viewModels/ValuesCollector.d.ts.map +1 -1
  118. package/lib/viewModels/ValuesCollector.js.map +1 -1
  119. package/lib/viewModels/index.d.ts +1 -0
  120. package/lib/viewModels/index.d.ts.map +1 -1
  121. package/lib/viewModels/index.js +1 -0
  122. package/lib/viewModels/index.js.map +1 -1
  123. package/lib/viewModels/types.d.ts +16 -0
  124. package/lib/viewModels/types.d.ts.map +1 -0
  125. package/lib/viewModels/types.js +3 -0
  126. package/lib/viewModels/types.js.map +1 -0
  127. package/lib/viewModels/wrappers.d.ts +1 -4
  128. package/lib/viewModels/wrappers.d.ts.map +1 -1
  129. package/lib/viewModels/wrappers.js.map +1 -1
  130. package/package.json +1 -1
  131. package/src/event.ts +2 -2
  132. package/src/logger/__tests__/{index.test.ts → logger.test.ts} +97 -41
  133. package/src/logger/batch.ts +9 -0
  134. package/src/logger/console.ts +0 -5
  135. package/src/logger/file.ts +46 -0
  136. package/src/logger/index.ts +37 -28
  137. package/src/logger/named.ts +3 -3
  138. package/src/logger/proxy.ts +2 -2
  139. package/src/math/__tests__/arrays.test.ts +53 -0
  140. package/src/math/arrays.ts +79 -0
  141. package/src/transitionObserver.ts +2 -2
  142. package/src/types.ts +6 -1
  143. package/src/viewModels/FlagModel.ts +5 -4
  144. package/src/viewModels/MultiSelectModel.ts +10 -3
  145. package/src/viewModels/NumberModel.ts +5 -2
  146. package/src/viewModels/SelectModel.ts +5 -2
  147. package/src/viewModels/TextModel.ts +5 -4
  148. package/src/viewModels/ValuesCollector.ts +1 -4
  149. package/src/viewModels/index.ts +1 -0
  150. package/src/viewModels/types.ts +19 -0
  151. package/src/viewModels/wrappers.ts +1 -5
  152. package/yarn-error.log +0 -3709
@@ -30,9 +30,9 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">82.5% </span>
33
+ <span class="strong">78.57% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>33/40</span>
35
+ <span class='fraction'>33/42</span>
36
36
  </div>
37
37
 
38
38
 
@@ -431,7 +431,7 @@ export class TransitionObserver&lt;T&gt; implements IDisposable {
431
431
  private _promise: Promise&lt;T&gt; = null;
432
432
  private _promiseReject: (err?: any) =&gt; any = null;
433
433
  &nbsp;
434
- private logger: ILogger = createLogger('', true);
434
+ private logger: ILogger = createLogger('', false);
435
435
  &nbsp;
436
436
  constructor(getter?: () =&gt; T) {
437
437
  if (getter) {
@@ -526,7 +526,7 @@ export class TransitionObserver&lt;T&gt; implements IDisposable {
526
526
  }
527
527
  &nbsp;
528
528
  <span class="fstat-no" title="function not covered" > enableLogging(</span>name: string) {
529
- <span class="cstat-no" title="statement not covered" > this.logger = createLogger(name, !name);</span>
529
+ <span class="cstat-no" title="statement not covered" > this.logger = createLogger(name, name ? undefined : false);</span>
530
530
  <span class="cstat-no" title="statement not covered" > return this;</span>
531
531
  }
532
532
  &nbsp;
@@ -592,7 +592,7 @@ export class TransitionObserver&lt;T&gt; implements IDisposable {
592
592
  <div class='footer quiet pad2 space-top1 center small'>
593
593
  Code coverage generated by
594
594
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
595
- at Tue Nov 23 2021 22:28:10 GMT+0000 (Coordinated Universal Time)
595
+ at Mon Nov 29 2021 07:49:53 GMT+0000 (Coordinated Universal Time)
596
596
  </div>
597
597
  </div>
598
598
  <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">71.43% </span>
26
+ <span class="strong">90% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>5/7</span>
28
+ <span class='fraction'>9/10</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">66.67% </span>
33
+ <span class="strong">87.5% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>4/6</span>
35
+ <span class='fraction'>7/8</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>2/2</span>
42
+ <span class='fraction'>4/4</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">71.43% </span>
47
+ <span class="strong">88.89% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>5/7</span>
49
+ <span class='fraction'>8/9</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 medium'></div>
58
+ <div class='status-line high'></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>
@@ -78,7 +78,12 @@
78
78
  <a name='L19'></a><a href='#L19'>19</a>
79
79
  <a name='L20'></a><a href='#L20'>20</a>
80
80
  <a name='L21'></a><a href='#L21'>21</a>
81
- <a name='L22'></a><a href='#L22'>22</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
81
+ <a name='L22'></a><a href='#L22'>22</a>
82
+ <a name='L23'></a><a href='#L23'>23</a>
83
+ <a name='L24'></a><a href='#L24'>24</a>
84
+ <a name='L25'></a><a href='#L25'>25</a>
85
+ <a name='L26'></a><a href='#L26'>26</a>
86
+ <a name='L27'></a><a href='#L27'>27</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
82
87
  <span class="cline-any cline-neutral">&nbsp;</span>
83
88
  <span class="cline-any cline-neutral">&nbsp;</span>
84
89
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -86,19 +91,24 @@
86
91
  <span class="cline-any cline-neutral">&nbsp;</span>
87
92
  <span class="cline-any cline-neutral">&nbsp;</span>
88
93
  <span class="cline-any cline-neutral">&nbsp;</span>
89
- <span class="cline-any cline-yes">3x</span>
90
- <span class="cline-any cline-yes">3x</span>
91
- <span class="cline-any cline-yes">13x</span>
92
- <span class="cline-any cline-no">&nbsp;</span>
94
+ <span class="cline-any cline-yes">8x</span>
95
+ <span class="cline-any cline-yes">8x</span>
96
+ <span class="cline-any cline-yes">75x</span>
97
+ <span class="cline-any cline-yes">6x</span>
93
98
  <span class="cline-any cline-neutral">&nbsp;</span>
94
- <span class="cline-any cline-yes">13x</span>
95
- <span class="cline-any cline-yes">13x</span>
99
+ <span class="cline-any cline-yes">69x</span>
100
+ <span class="cline-any cline-yes">69x</span>
96
101
  <span class="cline-any cline-neutral">&nbsp;</span>
97
102
  <span class="cline-any cline-no">&nbsp;</span>
98
103
  <span class="cline-any cline-neutral">&nbsp;</span>
99
104
  <span class="cline-any cline-neutral">&nbsp;</span>
100
105
  <span class="cline-any cline-neutral">&nbsp;</span>
101
106
  <span class="cline-any cline-neutral">&nbsp;</span>
107
+ <span class="cline-any cline-neutral">&nbsp;</span>
108
+ <span class="cline-any cline-neutral">&nbsp;</span>
109
+ <span class="cline-any cline-yes">8x</span>
110
+ <span class="cline-any cline-yes">8x</span>
111
+ <span class="cline-any cline-neutral">&nbsp;</span>
102
112
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export { DeepPartial } from './deepPartial';
103
113
  &nbsp;
104
114
  export type DeepReadonly&lt;T&gt; = {
@@ -109,8 +119,8 @@ export type Getter&lt;T&gt; = (() =&gt; T) | T | null;
109
119
  &nbsp;
110
120
  export namespace Getter {
111
121
  export function getValue&lt;T&gt;(getter: Getter&lt;T&gt;): T {
112
- <span class="missing-if-branch" title="if path not taken" >I</span>if (getter == null) {
113
- <span class="cstat-no" title="statement not covered" > return null;</span>
122
+ if (getter == null) {
123
+ return undefined;
114
124
  }
115
125
  <span class="missing-if-branch" title="else path not taken" >E</span>if (typeof getter === 'function') {
116
126
  return (getter as () =&gt; T)();
@@ -120,6 +130,11 @@ export namespace Getter {
120
130
  }
121
131
  &nbsp;
122
132
  export type Predicate&lt;T&gt; = (value: T) =&gt; boolean;
133
+ export type Comparator&lt;T, C = boolean&gt; = (v1: T, v2: T) =&gt; C;
134
+ &nbsp;
135
+ export namespace Comparator {
136
+ export const Default: Comparator&lt;any&gt; = (a, b) =&gt; a === b;
137
+ }
123
138
  &nbsp;</pre></td></tr></table></pre>
124
139
 
125
140
  <div class='push'></div><!-- for sticky footer -->
@@ -127,7 +142,7 @@ export type Predicate&lt;T&gt; = (value: T) =&gt; boolean;
127
142
  <div class='footer quiet pad2 space-top1 center small'>
128
143
  Code coverage generated by
129
144
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
130
- at Tue Nov 23 2021 22:28:10 GMT+0000 (Coordinated Universal Time)
145
+ at Mon Nov 29 2021 07:49:53 GMT+0000 (Coordinated Universal Time)
131
146
  </div>
132
147
  </div>
133
148
  <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 Tue Nov 23 2021 22:28:10 GMT+0000 (Coordinated Universal Time)
145
+ at Mon Nov 29 2021 07:49:53 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 Tue Nov 23 2021 22:28:10 GMT+0000 (Coordinated Universal Time)
142
+ at Mon Nov 29 2021 07:49:53 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 Tue Nov 23 2021 22:28:10 GMT+0000 (Coordinated Universal Time)
211
+ at Mon Nov 29 2021 07:49:53 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 Tue Nov 23 2021 22:28:10 GMT+0000 (Coordinated Universal Time)
188
+ at Mon Nov 29 2021 07:49:53 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 Tue Nov 23 2021 22:28:10 GMT+0000 (Coordinated Universal Time)
94
+ at Mon Nov 29 2021 07:49:53 GMT+0000 (Coordinated Universal Time)
95
95
  </div>
96
96
  </div>
97
97
  <script src="../../prettify.js"></script>
@@ -109,7 +109,7 @@ export class ValidationError extends Error {
109
109
  <div class='footer quiet pad2 space-top1 center small'>
110
110
  Code coverage generated by
111
111
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
112
- at Tue Nov 23 2021 22:28:10 GMT+0000 (Coordinated Universal Time)
112
+ at Mon Nov 29 2021 07:49:53 GMT+0000 (Coordinated Universal Time)
113
113
  </div>
114
114
  </div>
115
115
  <script src="../../prettify.js"></script>
@@ -229,7 +229,7 @@ export const Validators = {
229
229
  <div class='footer quiet pad2 space-top1 center small'>
230
230
  Code coverage generated by
231
231
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
232
- at Tue Nov 23 2021 22:28:10 GMT+0000 (Coordinated Universal Time)
232
+ at Mon Nov 29 2021 07:49:53 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 Tue Nov 23 2021 22:28:10 GMT+0000 (Coordinated Universal Time)
145
+ at Mon Nov 29 2021 07:49:53 GMT+0000 (Coordinated Universal Time)
146
146
  </div>
147
147
  </div>
148
148
  <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">85.71% </span>
26
+ <span class="strong">80% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>12/14</span>
28
+ <span class='fraction'>12/15</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">60% </span>
40
+ <span class="strong">50% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>3/5</span>
42
+ <span class='fraction'>3/6</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">81.82% </span>
47
+ <span class="strong">75% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>9/11</span>
49
+ <span class='fraction'>9/12</span>
50
50
  </div>
51
51
 
52
52
 
@@ -100,8 +100,8 @@
100
100
  <a name='L41'></a><a href='#L41'>41</a>
101
101
  <a name='L42'></a><a href='#L42'>42</a>
102
102
  <a name='L43'></a><a href='#L43'>43</a>
103
- <a name='L44'></a><a href='#L44'>44</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
104
- <span class="cline-any cline-neutral">&nbsp;</span>
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">3x</span>
105
105
  <span class="cline-any cline-neutral">&nbsp;</span>
106
106
  <span class="cline-any cline-neutral">&nbsp;</span>
107
107
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -133,6 +133,8 @@
133
133
  <span class="cline-any cline-yes">38x</span>
134
134
  <span class="cline-any cline-neutral">&nbsp;</span>
135
135
  <span class="cline-any cline-neutral">&nbsp;</span>
136
+ <span class="cline-any cline-no">&nbsp;</span>
137
+ <span class="cline-any cline-neutral">&nbsp;</span>
136
138
  <span class="cline-any cline-neutral">&nbsp;</span>
137
139
  <span class="cline-any cline-yes">14x</span>
138
140
  <span class="cline-any cline-no">&nbsp;</span>
@@ -144,12 +146,11 @@
144
146
  <span class="cline-any cline-neutral">&nbsp;</span>
145
147
  <span class="cline-any cline-neutral">&nbsp;</span>
146
148
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { action, makeObservable, observable } from 'mobx';
147
- import { ILabel } from './wrappers';
148
- import { IValueModel } from './ValuesCollector';
149
+ import { IResetableModel } from 'viewModels';
150
+ import { ILabel, IValueModel } from './types';
149
151
  &nbsp;
150
- export interface IFlagModel extends IValueModel&lt;boolean&gt; {
152
+ export interface IFlagModel extends IValueModel&lt;boolean&gt;, IResetableModel {
151
153
  toggle(): void;
152
- reset(): void;
153
154
  }
154
155
  &nbsp;
155
156
  export type IFlagModelReadonly = {
@@ -175,6 +176,8 @@ export class FlagModel implements IFlagModel, IFlagModelReadonly {
175
176
  set value(value: boolean) {
176
177
  this._value = value;
177
178
  }
179
+ &nbsp;
180
+ <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>}
178
181
  &nbsp;
179
182
  @action
180
183
  toggle = <span class="fstat-no" title="function not covered" >() =</span>&gt; {
@@ -193,7 +196,7 @@ export class FlagModel implements IFlagModel, IFlagModelReadonly {
193
196
  <div class='footer quiet pad2 space-top1 center small'>
194
197
  Code coverage generated by
195
198
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
196
- at Tue Nov 23 2021 22:28:10 GMT+0000 (Coordinated Universal Time)
199
+ at Mon Nov 29 2021 07:49:53 GMT+0000 (Coordinated Universal Time)
197
200
  </div>
198
201
  </div>
199
202
  <script src="../../prettify.js"></script>
@@ -25,14 +25,14 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>5/5</span>
28
+ <span class='fraction'>6/6</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/0</span>
35
+ <span class='fraction'>0/2</span>
36
36
  </div>
37
37
 
38
38
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>5/5</span>
49
+ <span class='fraction'>6/6</span>
50
50
  </div>
51
51
 
52
52
 
@@ -76,20 +76,14 @@
76
76
  <a name='L17'></a><a href='#L17'>17</a>
77
77
  <a name='L18'></a><a href='#L18'>18</a>
78
78
  <a name='L19'></a><a href='#L19'>19</a>
79
- <a name='L20'></a><a href='#L20'>20</a>
80
- <a name='L21'></a><a href='#L21'>21</a>
81
- <a name='L22'></a><a href='#L22'>22</a>
82
- <a name='L23'></a><a href='#L23'>23</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
83
- <span class="cline-any cline-neutral">&nbsp;</span>
84
- <span class="cline-any cline-neutral">&nbsp;</span>
85
- <span class="cline-any cline-neutral">&nbsp;</span>
79
+ <a name='L20'></a><a href='#L20'>20</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
80
+ <span class="cline-any cline-yes">2x</span>
86
81
  <span class="cline-any cline-neutral">&nbsp;</span>
87
82
  <span class="cline-any cline-neutral">&nbsp;</span>
88
83
  <span class="cline-any cline-neutral">&nbsp;</span>
89
84
  <span class="cline-any cline-neutral">&nbsp;</span>
90
85
  <span class="cline-any cline-neutral">&nbsp;</span>
91
- <span class="cline-any cline-neutral">&nbsp;</span>
92
- <span class="cline-any cline-yes">1x</span>
86
+ <span class="cline-any cline-yes">2x</span>
93
87
  <span class="cline-any cline-neutral">&nbsp;</span>
94
88
  <span class="cline-any cline-neutral">&nbsp;</span>
95
89
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -101,26 +95,23 @@
101
95
  <span class="cline-any cline-yes">9x</span>
102
96
  <span class="cline-any cline-neutral">&nbsp;</span>
103
97
  <span class="cline-any cline-neutral">&nbsp;</span>
104
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { FlagModel, IFlagModel, IFlagModelReadonly } from './FlagModel';
105
- &nbsp;
106
- export interface ILabeledFlagModelReadonly&lt;T = string&gt; extends IFlagModelReadonly {
107
- readonly label: T;
108
- }
98
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { Getter } from '../types';
99
+ import { FlagModel, IFlagModel, IFlagModelReadonly } from './FlagModel';
100
+ import { ILabel } from './labeled';
109
101
  &nbsp;
110
- export interface ILabeledFlagModel&lt;T = string&gt; extends IFlagModel {
111
- readonly label: T;
112
- }
102
+ export type ILabeledFlagModel&lt;T = string&gt; = ILabel&lt;T&gt; &amp; IFlagModel;
103
+ export type ILabeledFlagModelReadonly&lt;T = string&gt; = ILabel&lt;T&gt; &amp; IFlagModelReadonly;
113
104
  &nbsp;
114
105
  export class LabeledFlagModel&lt;T = string&gt; extends FlagModel implements ILabeledFlagModelReadonly&lt;T&gt;, ILabeledFlagModel&lt;T&gt; {
115
- private _label: T;
106
+ private readonly _label: Getter&lt;T&gt;;
116
107
  &nbsp;
117
- constructor(label: T) {
118
- super();
108
+ constructor(label: Getter&lt;T&gt; = <span class="branch-0 cbranch-no" title="branch not covered" >null,</span> initial = <span class="branch-0 cbranch-no" title="branch not covered" >false)</span> {
109
+ super(initial);
119
110
  this._label = label;
120
111
  }
121
112
  &nbsp;
122
113
  get label() {
123
- return this._label;
114
+ return Getter.getValue(this._label);
124
115
  }
125
116
  }
126
117
  &nbsp;</pre></td></tr></table></pre>
@@ -130,7 +121,7 @@ export class LabeledFlagModel&lt;T = string&gt; extends FlagModel implements ILa
130
121
  <div class='footer quiet pad2 space-top1 center small'>
131
122
  Code coverage generated by
132
123
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
133
- at Fri Nov 19 2021 19:36:26 GMT+0000 (Coordinated Universal Time)
124
+ at Sun Nov 21 2021 10:41:54 GMT+0000 (Coordinated Universal Time)
134
125
  </div>
135
126
  </div>
136
127
  <script src="../../prettify.js"></script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">47.87% </span>
26
+ <span class="strong">47.47% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>45/94</span>
28
+ <span class='fraction'>47/99</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">8.33% </span>
33
+ <span class="strong">6.25% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>1/12</span>
35
+ <span class='fraction'>1/16</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">21.62% </span>
40
+ <span class="strong">20% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>8/37</span>
42
+ <span class='fraction'>8/40</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">49.35% </span>
47
+ <span class="strong">49.38% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>38/77</span>
49
+ <span class='fraction'>40/81</span>
50
50
  </div>
51
51
 
52
52
 
@@ -211,7 +211,14 @@
211
211
  <a name='L152'></a><a href='#L152'>152</a>
212
212
  <a name='L153'></a><a href='#L153'>153</a>
213
213
  <a name='L154'></a><a href='#L154'>154</a>
214
- <a name='L155'></a><a href='#L155'>155</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
214
+ <a name='L155'></a><a href='#L155'>155</a>
215
+ <a name='L156'></a><a href='#L156'>156</a>
216
+ <a name='L157'></a><a href='#L157'>157</a>
217
+ <a name='L158'></a><a href='#L158'>158</a>
218
+ <a name='L159'></a><a href='#L159'>159</a>
219
+ <a name='L160'></a><a href='#L160'>160</a>
220
+ <a name='L161'></a><a href='#L161'>161</a>
221
+ <a name='L162'></a><a href='#L162'>162</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
215
222
  <span class="cline-any cline-yes">1x</span>
216
223
  <span class="cline-any cline-yes">1x</span>
217
224
  <span class="cline-any cline-yes">1x</span>
@@ -220,6 +227,8 @@
220
227
  <span class="cline-any cline-neutral">&nbsp;</span>
221
228
  <span class="cline-any cline-yes">1x</span>
222
229
  <span class="cline-any cline-neutral">&nbsp;</span>
230
+ <span class="cline-any cline-yes">1x</span>
231
+ <span class="cline-any cline-neutral">&nbsp;</span>
223
232
  <span class="cline-any cline-neutral">&nbsp;</span>
224
233
  <span class="cline-any cline-yes">3x</span>
225
234
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -270,6 +279,11 @@
270
279
  <span class="cline-any cline-no">&nbsp;</span>
271
280
  <span class="cline-any cline-neutral">&nbsp;</span>
272
281
  <span class="cline-any cline-no">&nbsp;</span>
282
+ <span class="cline-any cline-no">&nbsp;</span>
283
+ <span class="cline-any cline-no">&nbsp;</span>
284
+ <span class="cline-any cline-neutral">&nbsp;</span>
285
+ <span class="cline-any cline-neutral">&nbsp;</span>
286
+ <span class="cline-any cline-yes">1x</span>
273
287
  <span class="cline-any cline-neutral">&nbsp;</span>
274
288
  <span class="cline-any cline-no">&nbsp;</span>
275
289
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -369,10 +383,12 @@
369
383
  import { action, computed, makeObservable, observable, reaction } from 'mobx';
370
384
  import { FlagModel, ILabeledFlagModel } from './FlagModel';
371
385
  import { ValidatableModel } from './Validatable';
372
- import { IValueModel } from './ValuesCollector';
386
+ import { IValueModel } from './types';
373
387
  import { withLabel } from './wrappers';
388
+ import { ICountableModel, IResetableModel } from 'viewModels';
389
+ import { arraysCompareDistinct } from '../math';
374
390
  &nbsp;
375
- export class MultiSelect&lt;T = any&gt; extends ValidatableModel&lt;ReadonlyArray&lt;T&gt;&gt; implements IValueModel&lt;readonly string[]&gt; {
391
+ export class MultiSelect&lt;T = any&gt; extends ValidatableModel&lt;ReadonlyArray&lt;T&gt;&gt; implements IValueModel&lt;readonly string[]&gt;, IResetableModel, ICountableModel {
376
392
  &nbsp;
377
393
  @observable
378
394
  private readonly _indexes = new Set&lt;number&gt;();
@@ -423,7 +439,12 @@ export class MultiSelect&lt;T = any&gt; extends ValidatableModel&lt;ReadonlyArra
423
439
  isIndexSelected(index: number) { return this._indexes.has(index); }
424
440
  <span class="fstat-no" title="function not covered" > isValueSelected(</span>value: string) { <span class="cstat-no" title="statement not covered" >return this.values.includes(value); </span>}
425
441
  &nbsp;
426
- <span class="fstat-no" title="function not covered" > get i</span>sEmpty() { <span class="cstat-no" title="statement not covered" >return this._indexes.size === 0; </span>}
442
+ <span class="fstat-no" title="function not covered" > get c</span>ount() { <span class="cstat-no" title="statement not covered" >return this._items.length; </span>}
443
+ <span class="fstat-no" title="function not covered" > get s</span>electedCount() { <span class="cstat-no" title="statement not covered" >return this._indexes.size; </span>}
444
+ <span class="fstat-no" title="function not covered" > get i</span>sEmpty() { <span class="cstat-no" title="statement not covered" >return this.selectedCount === 0; </span>}
445
+ &nbsp;
446
+ @computed
447
+ <span class="fstat-no" title="function not covered" > get i</span>sDefault() { <span class="cstat-no" title="statement not covered" >return arraysCompareDistinct(this.selectedIndexes, this._initial)?.diff === 0; </span>}
427
448
  &nbsp;
428
449
  <span class="fstat-no" title="function not covered" > protected get v</span>alueToValidate() { <span class="cstat-no" title="statement not covered" >return this.selectedItems; </span>}
429
450
  &nbsp;
@@ -526,7 +547,7 @@ export class MultiSelectString&lt;T extends string = string&gt; extends MultiSel
526
547
  <div class='footer quiet pad2 space-top1 center small'>
527
548
  Code coverage generated by
528
549
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
529
- at Tue Nov 23 2021 22:28:10 GMT+0000 (Coordinated Universal Time)
550
+ at Mon Nov 29 2021 07:49:53 GMT+0000 (Coordinated Universal Time)
530
551
  </div>
531
552
  </div>
532
553
  <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">85% </span>
26
+ <span class="strong">80.95% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>17/20</span>
28
+ <span class='fraction'>17/21</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">50% </span>
40
+ <span class="strong">42.86% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>3/6</span>
42
+ <span class='fraction'>3/7</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">92.86% </span>
47
+ <span class="strong">86.67% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>13/14</span>
49
+ <span class='fraction'>13/15</span>
50
50
  </div>
51
51
 
52
52
 
@@ -93,7 +93,11 @@
93
93
  <a name='L34'></a><a href='#L34'>34</a>
94
94
  <a name='L35'></a><a href='#L35'>35</a>
95
95
  <a name='L36'></a><a href='#L36'>36</a>
96
- <a name='L37'></a><a href='#L37'>37</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
96
+ <a name='L37'></a><a href='#L37'>37</a>
97
+ <a name='L38'></a><a href='#L38'>38</a>
98
+ <a name='L39'></a><a href='#L39'>39</a>
99
+ <a name='L40'></a><a href='#L40'>40</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
100
+ <span class="cline-any cline-neutral">&nbsp;</span>
97
101
  <span class="cline-any cline-neutral">&nbsp;</span>
98
102
  <span class="cline-any cline-neutral">&nbsp;</span>
99
103
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -116,6 +120,8 @@
116
120
  <span class="cline-any cline-yes">2x</span>
117
121
  <span class="cline-any cline-yes">1x</span>
118
122
  <span class="cline-any cline-neutral">&nbsp;</span>
123
+ <span class="cline-any cline-no">&nbsp;</span>
124
+ <span class="cline-any cline-neutral">&nbsp;</span>
119
125
  <span class="cline-any cline-neutral">&nbsp;</span>
120
126
  <span class="cline-any cline-yes">3x</span>
121
127
  <span class="cline-any cline-no">&nbsp;</span>
@@ -130,9 +136,10 @@
130
136
  <span class="cline-any cline-neutral">&nbsp;</span>
131
137
  <span class="cline-any cline-yes">1x</span>
132
138
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { action, makeObservable, observable } from 'mobx';
133
- import { IValueModel } from './ValuesCollector';
139
+ import { IResetableModel } from 'viewModels';
140
+ import { IValueModel } from './types';
134
141
  &nbsp;
135
- export interface INumberModel {
142
+ export interface INumberModel extends IResetableModel {
136
143
  value: number;
137
144
  }
138
145
  &nbsp;
@@ -151,6 +158,8 @@ export class NumberModel implements INumberModel, IValueModel&lt;number&gt; {
151
158
  &nbsp;
152
159
  get value() { return this._value; }
153
160
  set value(v: number) { this._value = v; }
161
+ &nbsp;
162
+ <span class="fstat-no" title="function not covered" > get i</span>sDefault() { <span class="cstat-no" title="statement not covered" >return this._value === this._initial; </span>}
154
163
  &nbsp;
155
164
  @action
156
165
  reset = <span class="fstat-no" title="function not covered" >() =</span>&gt; {
@@ -172,7 +181,7 @@ export default NumberModel;
172
181
  <div class='footer quiet pad2 space-top1 center small'>
173
182
  Code coverage generated by
174
183
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
175
- at Tue Nov 23 2021 22:28:10 GMT+0000 (Coordinated Universal Time)
184
+ at Mon Nov 29 2021 07:49:53 GMT+0000 (Coordinated Universal Time)
176
185
  </div>
177
186
  </div>
178
187
  <script src="../../prettify.js"></script>