@zajno/common 1.5.1 → 1.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/coverage/clover.xml +102 -90
- package/coverage/coverage-final.json +4 -4
- package/coverage/lcov-report/async/index.html +1 -1
- package/coverage/lcov-report/async/timeout.ts.html +12 -12
- package/coverage/lcov-report/index.html +29 -29
- 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/async/timeout.ts.html +10 -10
- package/coverage/lcov-report/src/cache.ts.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/disposer.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 +19 -19
- package/coverage/lcov-report/src/lazy.light.ts.html +1 -1
- 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/observersMap.ts.html +1 -1
- package/coverage/lcov-report/src/observingCache.ts.html +27 -12
- package/coverage/lcov-report/src/tempoCache.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/CommonModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/LoadingModel.ts.html +106 -34
- package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +13 -13
- package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/TextModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/Validatable.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/index.html +19 -19
- package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
- package/coverage/lcov-report/validation/index.html +1 -1
- package/coverage/lcov-report/validation/index.ts.html +6 -6
- package/coverage/lcov-report/viewModels/CommonModel.ts.html +1 -1
- package/coverage/lcov-report/viewModels/LoadingModel.ts.html +129 -21
- package/coverage/lcov-report/viewModels/SelectModel.ts.html +54 -21
- package/coverage/lcov-report/viewModels/TextModel.ts.html +1 -1
- package/coverage/lcov-report/viewModels/index.html +23 -83
- package/coverage/lcov.info +193 -164
- package/lib/observingCache.d.ts +1 -1
- package/lib/observingCache.d.ts.map +1 -1
- package/lib/observingCache.js +8 -2
- package/lib/observingCache.js.map +1 -1
- package/lib/services/storage/index.d.ts +4 -0
- package/lib/services/storage/index.d.ts.map +1 -1
- package/lib/services/storage/index.js +13 -1
- package/lib/services/storage/index.js.map +1 -1
- package/lib/viewModels/LoadingModel.d.ts +12 -3
- package/lib/viewModels/LoadingModel.d.ts.map +1 -1
- package/lib/viewModels/LoadingModel.js +33 -16
- package/lib/viewModels/LoadingModel.js.map +1 -1
- package/lib/viewModels/types.d.ts +4 -1
- package/lib/viewModels/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/observingCache.ts +7 -2
- package/src/services/storage/index.ts +17 -1
- package/src/viewModels/LoadingModel.ts +41 -17
- package/src/viewModels/__tests__/common.test.ts +27 -8
- package/src/viewModels/types.ts +5 -1
|
@@ -445,7 +445,7 @@ export class TextInputVM extends ValidatableModel<string> implements IValu
|
|
|
445
445
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
446
446
|
Code coverage generated by
|
|
447
447
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
448
|
-
at
|
|
448
|
+
at Fri Jun 10 2022 06:23:59 GMT+0000 (Coordinated Universal Time)
|
|
449
449
|
</div>
|
|
450
450
|
</div>
|
|
451
451
|
<script src="../../prettify.js"></script>
|
|
@@ -370,7 +370,7 @@ export abstract class ValidatableModel<T = string> {
|
|
|
370
370
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
371
371
|
Code coverage generated by
|
|
372
372
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
373
|
-
at
|
|
373
|
+
at Fri Jun 10 2022 06:23:59 GMT+0000 (Coordinated Universal Time)
|
|
374
374
|
</div>
|
|
375
375
|
</div>
|
|
376
376
|
<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">75.34% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>275/365</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">59.05% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>62/105</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">63.19% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>91/144</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">76.05% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>254/334</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -103,18 +103,18 @@
|
|
|
103
103
|
</tr>
|
|
104
104
|
|
|
105
105
|
<tr>
|
|
106
|
-
<td class="file
|
|
107
|
-
<td data-value="
|
|
108
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
106
|
+
<td class="file high" data-value="LoadingModel.ts"><a href="LoadingModel.ts.html">LoadingModel.ts</a></td>
|
|
107
|
+
<td data-value="95.24" class="pic high">
|
|
108
|
+
<div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
|
|
109
109
|
</td>
|
|
110
|
-
<td data-value="
|
|
111
|
-
<td data-value="
|
|
112
|
-
<td data-value="
|
|
113
|
-
<td data-value="
|
|
110
|
+
<td data-value="95.24" class="pct high">95.24%</td>
|
|
111
|
+
<td data-value="21" class="abs high">20/21</td>
|
|
112
|
+
<td data-value="90" class="pct high">90%</td>
|
|
113
|
+
<td data-value="10" class="abs high">9/10</td>
|
|
114
|
+
<td data-value="85.71" class="pct high">85.71%</td>
|
|
115
|
+
<td data-value="7" class="abs high">6/7</td>
|
|
114
116
|
<td data-value="100" class="pct high">100%</td>
|
|
115
|
-
<td data-value="
|
|
116
|
-
<td data-value="75" class="pct medium">75%</td>
|
|
117
|
-
<td data-value="12" class="abs medium">9/12</td>
|
|
117
|
+
<td data-value="20" class="abs high">20/20</td>
|
|
118
118
|
</tr>
|
|
119
119
|
|
|
120
120
|
<tr>
|
|
@@ -215,7 +215,7 @@
|
|
|
215
215
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
216
216
|
Code coverage generated by
|
|
217
217
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
218
|
-
at
|
|
218
|
+
at Fri Jun 10 2022 06:23:59 GMT+0000 (Coordinated Universal Time)
|
|
219
219
|
</div>
|
|
220
220
|
</div>
|
|
221
221
|
<script src="../../prettify.js"></script>
|
|
@@ -211,7 +211,7 @@ export function mixinLabel<T, TModel extends IValueModel<T>, 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
|
|
214
|
+
at Fri Jun 10 2022 06:23:59 GMT+0000 (Coordinated Universal Time)
|
|
215
215
|
</div>
|
|
216
216
|
</div>
|
|
217
217
|
<script src="../../prettify.js"></script>
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
96
96
|
Code coverage generated by
|
|
97
97
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
98
|
-
at
|
|
98
|
+
at Sat Jun 04 2022 17:01:00 GMT+0000 (Coordinated Universal Time)
|
|
99
99
|
</div>
|
|
100
100
|
</div>
|
|
101
101
|
<script src="../prettify.js"></script>
|
|
@@ -66,11 +66,11 @@
|
|
|
66
66
|
<a name='L7'></a><a href='#L7'>7</a>
|
|
67
67
|
<a name='L8'></a><a href='#L8'>8</a>
|
|
68
68
|
<a name='L9'></a><a href='#L9'>9</a>
|
|
69
|
-
<a name='L10'></a><a href='#L10'>10</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">
|
|
70
|
-
<span class="cline-any cline-yes">
|
|
71
|
-
<span class="cline-any cline-yes">
|
|
72
|
-
<span class="cline-any cline-yes">
|
|
73
|
-
<span class="cline-any cline-yes">
|
|
69
|
+
<a name='L10'></a><a href='#L10'>10</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">5x</span>
|
|
70
|
+
<span class="cline-any cline-yes">5x</span>
|
|
71
|
+
<span class="cline-any cline-yes">5x</span>
|
|
72
|
+
<span class="cline-any cline-yes">5x</span>
|
|
73
|
+
<span class="cline-any cline-yes">5x</span>
|
|
74
74
|
<span class="cline-any cline-neutral"> </span>
|
|
75
75
|
<span class="cline-any cline-neutral"> </span>
|
|
76
76
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -91,7 +91,7 @@ export * from './helpers';
|
|
|
91
91
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
92
92
|
Code coverage generated by
|
|
93
93
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
94
|
-
at
|
|
94
|
+
at Sat Jun 04 2022 17:01:00 GMT+0000 (Coordinated Universal Time)
|
|
95
95
|
</div>
|
|
96
96
|
</div>
|
|
97
97
|
<script src="../prettify.js"></script>
|
|
@@ -199,7 +199,7 @@ export class CommonModel<T = any> extends ValidatableModel<T> {
|
|
|
199
199
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
200
200
|
Code coverage generated by
|
|
201
201
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
202
|
-
at
|
|
202
|
+
at Sat Jun 04 2022 17:01:00 GMT+0000 (Coordinated Universal Time)
|
|
203
203
|
</div>
|
|
204
204
|
</div>
|
|
205
205
|
<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">95.24% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>20/21</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">90% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>9/10</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">85.71% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>6/7</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
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'>
|
|
49
|
+
<span class='fraction'>20/20</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -73,37 +73,145 @@
|
|
|
73
73
|
<a name='L14'></a><a href='#L14'>14</a>
|
|
74
74
|
<a name='L15'></a><a href='#L15'>15</a>
|
|
75
75
|
<a name='L16'></a><a href='#L16'>16</a>
|
|
76
|
-
<a name='L17'></a><a href='#L17'>17</a
|
|
76
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
|
77
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
|
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>
|
|
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>
|
|
87
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
|
88
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
|
89
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
|
90
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
|
91
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
|
92
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
|
93
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
|
94
|
+
<a name='L35'></a><a href='#L35'>35</a>
|
|
95
|
+
<a name='L36'></a><a href='#L36'>36</a>
|
|
96
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
|
97
|
+
<a name='L38'></a><a href='#L38'>38</a>
|
|
98
|
+
<a name='L39'></a><a href='#L39'>39</a>
|
|
99
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
|
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>
|
|
105
|
+
<a name='L46'></a><a href='#L46'>46</a>
|
|
106
|
+
<a name='L47'></a><a href='#L47'>47</a>
|
|
107
|
+
<a name='L48'></a><a href='#L48'>48</a>
|
|
108
|
+
<a name='L49'></a><a href='#L49'>49</a>
|
|
109
|
+
<a name='L50'></a><a href='#L50'>50</a>
|
|
110
|
+
<a name='L51'></a><a href='#L51'>51</a>
|
|
111
|
+
<a name='L52'></a><a href='#L52'>52</a>
|
|
112
|
+
<a name='L53'></a><a href='#L53'>53</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
113
|
+
<span class="cline-any cline-neutral"> </span>
|
|
77
114
|
<span class="cline-any cline-neutral"> </span>
|
|
78
115
|
<span class="cline-any cline-yes">1x</span>
|
|
79
116
|
<span class="cline-any cline-neutral"> </span>
|
|
80
|
-
<span class="cline-any cline-yes">
|
|
117
|
+
<span class="cline-any cline-yes">2x</span>
|
|
118
|
+
<span class="cline-any cline-neutral"> </span>
|
|
119
|
+
<span class="cline-any cline-yes">11x</span>
|
|
120
|
+
<span class="cline-any cline-neutral"> </span>
|
|
121
|
+
<span class="cline-any cline-yes">5x</span>
|
|
122
|
+
<span class="cline-any cline-neutral"> </span>
|
|
123
|
+
<span class="cline-any cline-yes">4x</span>
|
|
124
|
+
<span class="cline-any cline-yes">2x</span>
|
|
125
|
+
<span class="cline-any cline-neutral"> </span>
|
|
126
|
+
<span class="cline-any cline-yes">2x</span>
|
|
127
|
+
<span class="cline-any cline-neutral"> </span>
|
|
128
|
+
<span class="cline-any cline-neutral"> </span>
|
|
129
|
+
<span class="cline-any cline-neutral"> </span>
|
|
130
|
+
<span class="cline-any cline-neutral"> </span>
|
|
131
|
+
<span class="cline-any cline-neutral"> </span>
|
|
132
|
+
<span class="cline-any cline-neutral"> </span>
|
|
133
|
+
<span class="cline-any cline-neutral"> </span>
|
|
134
|
+
<span class="cline-any cline-neutral"> </span>
|
|
135
|
+
<span class="cline-any cline-neutral"> </span>
|
|
136
|
+
<span class="cline-any cline-yes">4x</span>
|
|
137
|
+
<span class="cline-any cline-neutral"> </span>
|
|
138
|
+
<span class="cline-any cline-neutral"> </span>
|
|
139
|
+
<span class="cline-any cline-yes">2x</span>
|
|
140
|
+
<span class="cline-any cline-neutral"> </span>
|
|
141
|
+
<span class="cline-any cline-neutral"> </span>
|
|
142
|
+
<span class="cline-any cline-neutral"> </span>
|
|
143
|
+
<span class="cline-any cline-neutral"> </span>
|
|
144
|
+
<span class="cline-any cline-neutral"> </span>
|
|
81
145
|
<span class="cline-any cline-neutral"> </span>
|
|
82
146
|
<span class="cline-any cline-neutral"> </span>
|
|
83
147
|
<span class="cline-any cline-yes">1x</span>
|
|
84
|
-
<span class="cline-any cline-yes">
|
|
85
|
-
<span class="cline-any cline-yes">
|
|
148
|
+
<span class="cline-any cline-yes">4x</span>
|
|
149
|
+
<span class="cline-any cline-yes">2x</span>
|
|
86
150
|
<span class="cline-any cline-yes">1x</span>
|
|
87
151
|
<span class="cline-any cline-neutral"> </span>
|
|
88
152
|
<span class="cline-any cline-yes">1x</span>
|
|
89
153
|
<span class="cline-any cline-neutral"> </span>
|
|
90
154
|
<span class="cline-any cline-neutral"> </span>
|
|
155
|
+
<span class="cline-any cline-yes">2x</span>
|
|
156
|
+
<span class="cline-any cline-neutral"> </span>
|
|
157
|
+
<span class="cline-any cline-yes">2x</span>
|
|
158
|
+
<span class="cline-any cline-yes">2x</span>
|
|
159
|
+
<span class="cline-any cline-yes">2x</span>
|
|
160
|
+
<span class="cline-any cline-neutral"> </span>
|
|
161
|
+
<span class="cline-any cline-yes">2x</span>
|
|
162
|
+
<span class="cline-any cline-neutral"> </span>
|
|
91
163
|
<span class="cline-any cline-neutral"> </span>
|
|
92
164
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { NumberModel } from './NumberModel';
|
|
165
|
+
import { IResetableModel, IValueModel } from './types';
|
|
166
|
+
|
|
167
|
+
export class LoadingModel implements IValueModel<boolean>, IResetableModel {
|
|
93
168
|
|
|
94
|
-
|
|
169
|
+
private readonly _number = new NumberModel(0);
|
|
95
170
|
|
|
96
|
-
public get isLoading() { return this.value > 0; }
|
|
171
|
+
public get isLoading() { return this._number.value > 0; }
|
|
97
172
|
|
|
98
|
-
public
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
this.decrement();
|
|
173
|
+
public get value(): boolean { return this.isLoading; }
|
|
174
|
+
public set value(v: boolean) {
|
|
175
|
+
if (v) {
|
|
176
|
+
this._number.increment();
|
|
177
|
+
} else {
|
|
178
|
+
this._number.decrement();
|
|
105
179
|
}
|
|
106
180
|
}
|
|
181
|
+
|
|
182
|
+
public async useLoading<T>(cb: () => (T | Promise<T>)): Promise<T>;
|
|
183
|
+
public async useLoading<T>(cb: () => (T | Promise<T>), exclusive: false): Promise<T>;
|
|
184
|
+
public async useLoading<T>(cb: () => (T | Promise<T>), exclusive: true): Promise<T | false>;
|
|
185
|
+
public async useLoading<T>(cb: () => (T | Promise<T>), exclusive: 'throw'): Promise<T>;
|
|
186
|
+
|
|
187
|
+
public useLoading<T>(cb: () => (T | Promise<T>), exclusive: boolean | 'throw' = false): Promise<T | false> {
|
|
188
|
+
return withLoading(this, cb, exclusive as any);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
public reset = <span class="fstat-no" title="function not covered" >() =</span>> <span class="cstat-no" title="statement not covered" >this._number.reset();</span>
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
export function withLoading<T>(model: IValueModel<boolean>, cb: () => (T | Promise<T>)): Promise<T>;
|
|
195
|
+
export function withLoading<T>(model: IValueModel<boolean>, cb: () => (T | Promise<T>), exclusive: false): Promise<T>;
|
|
196
|
+
export function withLoading<T>(model: IValueModel<boolean>, cb: () => (T | Promise<T>), exclusive: true): Promise<T | false>;
|
|
197
|
+
export function withLoading<T>(model: IValueModel<boolean>, cb: () => (T | Promise<T>), exclusive: 'throw'): Promise<T>;
|
|
198
|
+
|
|
199
|
+
export async function withLoading<T>(this: void, model: IValueModel<boolean>, cb: () => (T | Promise<T>), exclusive: boolean | 'throw' = <span class="branch-0 cbranch-no" title="branch not covered" >false)</span>: Promise<T | false> {
|
|
200
|
+
if (exclusive && model.value) {
|
|
201
|
+
if (exclusive === 'throw') {
|
|
202
|
+
throw new Error('Operation cannot be started because another one is in progress already.');
|
|
203
|
+
}
|
|
204
|
+
return false;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
model.value = true;
|
|
208
|
+
|
|
209
|
+
try {
|
|
210
|
+
const res = await cb();
|
|
211
|
+
return res;
|
|
212
|
+
} finally {
|
|
213
|
+
model.value = false;
|
|
214
|
+
}
|
|
107
215
|
}
|
|
108
216
|
</pre></td></tr></table></pre>
|
|
109
217
|
|
|
@@ -112,7 +220,7 @@ export class LoadingModel extends NumberModel {
|
|
|
112
220
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
113
221
|
Code coverage generated by
|
|
114
222
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
115
|
-
at
|
|
223
|
+
at Sat Jun 04 2022 17:01:00 GMT+0000 (Coordinated Universal Time)
|
|
116
224
|
</div>
|
|
117
225
|
</div>
|
|
118
226
|
<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">90.
|
|
26
|
+
<span class="strong">90.91% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>60/66</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">90.16% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>55/61</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -198,36 +198,56 @@
|
|
|
198
198
|
<a name='L139'></a><a href='#L139'>139</a>
|
|
199
199
|
<a name='L140'></a><a href='#L140'>140</a>
|
|
200
200
|
<a name='L141'></a><a href='#L141'>141</a>
|
|
201
|
-
<a name='L142'></a><a href='#L142'>142</a
|
|
201
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
202
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
203
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
204
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
205
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
206
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
207
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
208
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
209
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
210
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
211
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
212
|
+
<a name='L153'></a><a href='#L153'>153</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
|
|
202
213
|
<span class="cline-any cline-yes">2x</span>
|
|
203
214
|
<span class="cline-any cline-yes">2x</span>
|
|
204
215
|
<span class="cline-any cline-yes">2x</span>
|
|
205
216
|
<span class="cline-any cline-neutral"> </span>
|
|
206
217
|
<span class="cline-any cline-yes">2x</span>
|
|
207
218
|
<span class="cline-any cline-neutral"> </span>
|
|
219
|
+
<span class="cline-any cline-yes">2x</span>
|
|
208
220
|
<span class="cline-any cline-neutral"> </span>
|
|
209
221
|
<span class="cline-any cline-yes">2x</span>
|
|
210
222
|
<span class="cline-any cline-neutral"> </span>
|
|
211
223
|
<span class="cline-any cline-yes">6x</span>
|
|
212
224
|
<span class="cline-any cline-neutral"> </span>
|
|
225
|
+
<span class="cline-any cline-neutral"> </span>
|
|
226
|
+
<span class="cline-any cline-neutral"> </span>
|
|
213
227
|
<span class="cline-any cline-yes">6x</span>
|
|
214
228
|
<span class="cline-any cline-yes">6x</span>
|
|
229
|
+
<span class="cline-any cline-neutral"> </span>
|
|
215
230
|
<span class="cline-any cline-yes">6x</span>
|
|
216
231
|
<span class="cline-any cline-neutral"> </span>
|
|
217
232
|
<span class="cline-any cline-yes">6x</span>
|
|
218
233
|
<span class="cline-any cline-neutral"> </span>
|
|
219
234
|
<span class="cline-any cline-neutral"> </span>
|
|
220
|
-
<span class="cline-any cline-
|
|
235
|
+
<span class="cline-any cline-neutral"> </span>
|
|
221
236
|
<span class="cline-any cline-yes">6x</span>
|
|
222
237
|
<span class="cline-any cline-neutral"> </span>
|
|
223
238
|
<span class="cline-any cline-neutral"> </span>
|
|
224
239
|
<span class="cline-any cline-yes">6x</span>
|
|
240
|
+
<span class="cline-any cline-neutral"> </span>
|
|
241
|
+
<span class="cline-any cline-yes">6x</span>
|
|
242
|
+
<span class="cline-any cline-neutral"> </span>
|
|
225
243
|
<span class="cline-any cline-yes">6x</span>
|
|
226
244
|
<span class="cline-any cline-neutral"> </span>
|
|
227
245
|
<span class="cline-any cline-neutral"> </span>
|
|
228
246
|
<span class="cline-any cline-neutral"> </span>
|
|
229
247
|
<span class="cline-any cline-neutral"> </span>
|
|
230
248
|
<span class="cline-any cline-neutral"> </span>
|
|
249
|
+
<span class="cline-any cline-neutral"> </span>
|
|
250
|
+
<span class="cline-any cline-neutral"> </span>
|
|
231
251
|
<span class="cline-any cline-yes">6x</span>
|
|
232
252
|
<span class="cline-any cline-yes">6x</span>
|
|
233
253
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -244,7 +264,8 @@
|
|
|
244
264
|
<span class="cline-any cline-neutral"> </span>
|
|
245
265
|
<span class="cline-any cline-neutral"> </span>
|
|
246
266
|
<span class="cline-any cline-neutral"> </span>
|
|
247
|
-
<span class="cline-any cline-
|
|
267
|
+
<span class="cline-any cline-neutral"> </span>
|
|
268
|
+
<span class="cline-any cline-yes">25x</span>
|
|
248
269
|
<span class="cline-any cline-neutral"> </span>
|
|
249
270
|
<span class="cline-any cline-neutral"> </span>
|
|
250
271
|
<span class="cline-any cline-no"> </span>
|
|
@@ -263,6 +284,7 @@
|
|
|
263
284
|
<span class="cline-any cline-neutral"> </span>
|
|
264
285
|
<span class="cline-any cline-neutral"> </span>
|
|
265
286
|
<span class="cline-any cline-yes">4x</span>
|
|
287
|
+
<span class="cline-any cline-yes">4x</span>
|
|
266
288
|
<span class="cline-any cline-neutral"> </span>
|
|
267
289
|
<span class="cline-any cline-neutral"> </span>
|
|
268
290
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -339,33 +361,42 @@
|
|
|
339
361
|
<span class="cline-any cline-yes">3x</span>
|
|
340
362
|
<span class="cline-any cline-neutral"> </span>
|
|
341
363
|
<span class="cline-any cline-neutral"> </span>
|
|
342
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import {
|
|
343
|
-
import {
|
|
364
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { observable, computed, makeObservable, reaction, action } from 'mobx';
|
|
365
|
+
import { createLazy } from '../lazy.light';
|
|
344
366
|
import { FlagModel, ILabeledFlagModel } from './FlagModel';
|
|
345
367
|
import { ValidatableModel } from './Validatable';
|
|
346
368
|
import { IValueModel } from './types';
|
|
347
369
|
import { withLabel } from './wrappers';
|
|
348
|
-
import { IResetableModel } from '
|
|
370
|
+
import { IResetableModel } from './types';
|
|
371
|
+
import { Getter } from '../types';
|
|
349
372
|
|
|
350
373
|
export class Select<T = any> extends ValidatableModel<T> implements IValueModel<string>, IResetableModel {
|
|
351
374
|
// @observable
|
|
352
375
|
private _index: number = undefined;
|
|
353
376
|
|
|
354
|
-
|
|
377
|
+
private readonly _items: Getter<readonly T[]>;
|
|
378
|
+
|
|
355
379
|
private _indexLocked = false;
|
|
356
380
|
private _initialIndex: number = null;
|
|
357
381
|
|
|
358
382
|
private readonly _flags = createLazy(() => this.createFlags());
|
|
383
|
+
|
|
384
|
+
public readonly opened = new FlagModel();
|
|
359
385
|
|
|
360
386
|
constructor(
|
|
361
|
-
|
|
387
|
+
items: Getter<readonly T[]>,
|
|
362
388
|
private readonly _accessor: (item: T) => string,
|
|
363
389
|
initialIndex: number = 0,
|
|
364
390
|
) {
|
|
365
391
|
super();
|
|
366
|
-
|
|
392
|
+
|
|
393
|
+
this._items = items;
|
|
394
|
+
|
|
395
|
+
makeObservable<Select<T>, '_index' | '_items'>(this, {
|
|
367
396
|
'_index': observable,
|
|
397
|
+
'_items': observable.ref,
|
|
368
398
|
values: computed,
|
|
399
|
+
items: computed,
|
|
369
400
|
setIndex: action,
|
|
370
401
|
});
|
|
371
402
|
|
|
@@ -377,15 +408,16 @@ export class Select<T = any> extends ValidatableModel<T> implements
|
|
|
377
408
|
|
|
378
409
|
// @computed
|
|
379
410
|
get values(): readonly string[] {
|
|
380
|
-
return this.
|
|
411
|
+
return this.items.map(i => this._accessor(i));
|
|
381
412
|
}
|
|
382
413
|
|
|
383
414
|
get flags() {
|
|
384
415
|
return this._flags.value;
|
|
385
416
|
}
|
|
386
417
|
|
|
387
|
-
|
|
388
|
-
|
|
418
|
+
// @computed
|
|
419
|
+
get items(): readonly T[] {
|
|
420
|
+
return Getter.getValue(this._items);
|
|
389
421
|
}
|
|
390
422
|
|
|
391
423
|
<span class="fstat-no" title="function not covered" > get v</span>alue() { <span class="cstat-no" title="statement not covered" >return this.selectedValue; </span>}
|
|
@@ -403,11 +435,12 @@ export class Select<T = any> extends ValidatableModel<T> implements
|
|
|
403
435
|
}
|
|
404
436
|
|
|
405
437
|
get selectedItem(): T {
|
|
406
|
-
|
|
438
|
+
const items = this.items;
|
|
439
|
+
return items.length ? items[this._index] : <span class="branch-1 cbranch-no" title="branch not covered" >null;</span>
|
|
407
440
|
}
|
|
408
441
|
|
|
409
442
|
set selectedItem(item: T) {
|
|
410
|
-
const index = this.
|
|
443
|
+
const index = this.items.indexOf(item);
|
|
411
444
|
if (index >= 0) {
|
|
412
445
|
this.index = index;
|
|
413
446
|
}
|
|
@@ -447,13 +480,13 @@ export class Select<T = any> extends ValidatableModel<T> implements
|
|
|
447
480
|
}
|
|
448
481
|
};
|
|
449
482
|
|
|
450
|
-
reset = () => {
|
|
483
|
+
public reset = () => {
|
|
451
484
|
super.reset();
|
|
452
485
|
this.index = this._initialIndex;
|
|
453
486
|
};
|
|
454
487
|
|
|
455
488
|
private createFlags() {
|
|
456
|
-
const flags: ReadonlyArray<ILabeledFlagModel> = this.
|
|
489
|
+
const flags: ReadonlyArray<ILabeledFlagModel> = this.items
|
|
457
490
|
.map((item, index) => {
|
|
458
491
|
const flag: ILabeledFlagModel = withLabel(
|
|
459
492
|
new FlagModel(index === this.index),
|
|
@@ -487,7 +520,7 @@ export class SelectString<T extends string = string> extends Select<T&g
|
|
|
487
520
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
488
521
|
Code coverage generated by
|
|
489
522
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
490
|
-
at
|
|
523
|
+
at Sat Jun 04 2022 17:01:00 GMT+0000 (Coordinated Universal Time)
|
|
491
524
|
</div>
|
|
492
525
|
</div>
|
|
493
526
|
<script src="../prettify.js"></script>
|
|
@@ -445,7 +445,7 @@ export class TextInputVM extends ValidatableModel<string> implements IValu
|
|
|
445
445
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
446
446
|
Code coverage generated by
|
|
447
447
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
448
|
-
at
|
|
448
|
+
at Sat Jun 04 2022 17:01:00 GMT+0000 (Coordinated Universal Time)
|
|
449
449
|
</div>
|
|
450
450
|
</div>
|
|
451
451
|
<script src="../prettify.js"></script>
|