@zajno/common 1.4.12 → 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.
- package/coverage/clover.xml +457 -374
- package/coverage/coverage-final.json +30 -27
- package/coverage/lcov-report/CommonModel.ts.html +215 -0
- package/coverage/lcov-report/FlagModel.ts.html +290 -0
- package/coverage/lcov-report/MultiSelectModel.ts.html +614 -0
- package/coverage/lcov-report/NumberModel.ts.html +230 -0
- package/coverage/lcov-report/SelectModel.ts.html +503 -0
- package/coverage/lcov-report/Validatable.ts.html +386 -0
- package/coverage/lcov-report/async/index.html +111 -0
- package/coverage/lcov-report/async/timeout.ts.html +230 -0
- package/coverage/lcov-report/index.html +24 -24
- 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 +5 -5
- package/coverage/lcov-report/src/async/index.html +1 -1
- package/coverage/lcov-report/src/async/timeout.ts.html +12 -12
- 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 +10 -10
- package/coverage/lcov-report/src/event.ts.html +1 -1
- package/coverage/lcov-report/src/fields/index.html +1 -1
- package/coverage/lcov-report/src/fields/update.ts.html +1 -1
- package/coverage/lcov-report/src/functions.ts.html +1 -1
- package/coverage/lcov-report/src/index.html +1 -1
- package/coverage/lcov-report/src/lazy.light.ts.html +6 -6
- package/coverage/lcov-report/src/logger/batch.ts.html +2 -2
- package/coverage/lcov-report/src/logger/console.ts.html +5 -5
- package/coverage/lcov-report/src/logger/index.html +1 -1
- package/coverage/lcov-report/src/logger/index.ts.html +22 -22
- package/coverage/lcov-report/src/logger/named.ts.html +13 -13
- package/coverage/lcov-report/src/logger/proxy.ts.html +7 -7
- package/coverage/lcov-report/src/math/arrays.ts.html +23 -23
- package/coverage/lcov-report/src/math/calc.ts.html +9 -9
- package/coverage/lcov-report/src/math/distribution.ts.html +2 -2
- package/coverage/lcov-report/src/math/index.html +1 -1
- package/coverage/lcov-report/src/math/index.ts.html +6 -6
- package/coverage/lcov-report/src/observersMap.ts.html +1 -1
- package/coverage/lcov-report/src/observingCache.ts.html +1 -1
- package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
- package/coverage/lcov-report/src/types.ts.html +8 -8
- package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +22 -22
- package/coverage/lcov-report/src/validation/creditCard.ts.html +4 -4
- package/coverage/lcov-report/src/validation/helpers.ts.html +6 -6
- package/coverage/lcov-report/src/validation/index.html +16 -16
- package/coverage/lcov-report/src/validation/index.ts.html +6 -6
- package/coverage/lcov-report/src/validation/types.ts.html +16 -16
- package/coverage/lcov-report/src/validation/validators.ts.html +5 -5
- package/coverage/lcov-report/src/validation/wrappers.ts.html +5 -5
- package/coverage/lcov-report/src/viewModels/CommonModel.ts.html +215 -0
- package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +41 -20
- package/coverage/lcov-report/src/viewModels/LoadingModel.ts.html +128 -0
- package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +50 -20
- package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +41 -23
- package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +42 -30
- package/coverage/lcov-report/src/viewModels/TextModel.ts.html +461 -0
- package/coverage/lcov-report/src/viewModels/Validatable.ts.html +69 -60
- package/coverage/lcov-report/src/viewModels/index.html +84 -39
- package/coverage/lcov-report/src/viewModels/wrappers.ts.html +6 -6
- package/coverage/lcov-report/validation/index.html +111 -0
- package/coverage/lcov-report/validation/index.ts.html +107 -0
- package/coverage/lcov-report/viewModels/CommonModel.ts.html +215 -0
- package/coverage/lcov-report/viewModels/FlagModel.ts.html +290 -0
- package/coverage/lcov-report/viewModels/LoadingModel.ts.html +128 -0
- package/coverage/lcov-report/viewModels/MultiSelectModel.ts.html +614 -0
- package/coverage/lcov-report/viewModels/NumberModel.ts.html +230 -0
- package/coverage/lcov-report/viewModels/SelectModel.ts.html +503 -0
- package/coverage/lcov-report/viewModels/TextModel.ts.html +461 -0
- package/coverage/lcov-report/viewModels/Validatable.ts.html +386 -0
- package/coverage/lcov-report/viewModels/index.html +216 -0
- package/coverage/lcov.info +773 -583
- package/lib/viewModels/FlagModel.d.ts.map +1 -1
- package/lib/viewModels/FlagModel.js +14 -26
- package/lib/viewModels/FlagModel.js.map +1 -1
- package/lib/viewModels/LoadingModel.d.ts +6 -0
- package/lib/viewModels/LoadingModel.d.ts.map +1 -0
- package/lib/viewModels/LoadingModel.js +19 -0
- package/lib/viewModels/LoadingModel.js.map +1 -0
- package/lib/viewModels/MultiSelectModel.d.ts.map +1 -1
- package/lib/viewModels/MultiSelectModel.js +20 -43
- package/lib/viewModels/MultiSelectModel.js.map +1 -1
- package/lib/viewModels/NumberModel.d.ts.map +1 -1
- package/lib/viewModels/NumberModel.js +12 -22
- package/lib/viewModels/NumberModel.js.map +1 -1
- package/lib/viewModels/SelectModel.d.ts.map +1 -1
- package/lib/viewModels/SelectModel.js +8 -15
- package/lib/viewModels/SelectModel.js.map +1 -1
- package/lib/viewModels/TextModel.d.ts.map +1 -1
- package/lib/viewModels/TextModel.js +10 -17
- package/lib/viewModels/TextModel.js.map +1 -1
- package/lib/viewModels/Validatable.d.ts.map +1 -1
- package/lib/viewModels/Validatable.js +6 -12
- package/lib/viewModels/Validatable.js.map +1 -1
- package/package.json +1 -1
- package/src/viewModels/FlagModel.ts +14 -7
- package/src/viewModels/LoadingModel.ts +16 -0
- package/src/viewModels/MultiSelectModel.ts +20 -10
- package/src/viewModels/NumberModel.ts +12 -6
- package/src/viewModels/SelectModel.ts +8 -4
- package/src/viewModels/TextModel.ts +10 -5
- package/src/viewModels/Validatable.ts +6 -3
- package/src/viewModels/__tests__/common.test.ts +88 -0
- package/yarn.lock +3 -3
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for src/viewModels/CommonModel.ts</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../../index.html">All files</a> / <a href="index.html">src/viewModels</a> CommonModel.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">100% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>19/19</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">50% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>4/8</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">100% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>6/6</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">100% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>19/19</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
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
|
+
</p>
|
|
57
|
+
</div>
|
|
58
|
+
<div class='status-line high'></div>
|
|
59
|
+
<pre><table class="coverage">
|
|
60
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
61
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
62
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
63
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
64
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
65
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
66
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
67
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
68
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
69
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
70
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
71
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
72
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
73
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
74
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
75
|
+
<a name='L16'></a><a href='#L16'>16</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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
106
|
+
<span class="cline-any cline-yes">1x</span>
|
|
107
|
+
<span class="cline-any cline-yes">1x</span>
|
|
108
|
+
<span class="cline-any cline-neutral"> </span>
|
|
109
|
+
<span class="cline-any cline-yes">1x</span>
|
|
110
|
+
<span class="cline-any cline-neutral"> </span>
|
|
111
|
+
<span class="cline-any cline-neutral"> </span>
|
|
112
|
+
<span class="cline-any cline-neutral"> </span>
|
|
113
|
+
<span class="cline-any cline-neutral"> </span>
|
|
114
|
+
<span class="cline-any cline-yes">1x</span>
|
|
115
|
+
<span class="cline-any cline-neutral"> </span>
|
|
116
|
+
<span class="cline-any cline-neutral"> </span>
|
|
117
|
+
<span class="cline-any cline-yes">1x</span>
|
|
118
|
+
<span class="cline-any cline-yes">1x</span>
|
|
119
|
+
<span class="cline-any cline-yes">1x</span>
|
|
120
|
+
<span class="cline-any cline-neutral"> </span>
|
|
121
|
+
<span class="cline-any cline-yes">1x</span>
|
|
122
|
+
<span class="cline-any cline-neutral"> </span>
|
|
123
|
+
<span class="cline-any cline-neutral"> </span>
|
|
124
|
+
<span class="cline-any cline-neutral"> </span>
|
|
125
|
+
<span class="cline-any cline-neutral"> </span>
|
|
126
|
+
<span class="cline-any cline-neutral"> </span>
|
|
127
|
+
<span class="cline-any cline-neutral"> </span>
|
|
128
|
+
<span class="cline-any cline-yes">3x</span>
|
|
129
|
+
<span class="cline-any cline-neutral"> </span>
|
|
130
|
+
<span class="cline-any cline-neutral"> </span>
|
|
131
|
+
<span class="cline-any cline-yes">2x</span>
|
|
132
|
+
<span class="cline-any cline-neutral"> </span>
|
|
133
|
+
<span class="cline-any cline-yes">2x</span>
|
|
134
|
+
<span class="cline-any cline-neutral"> </span>
|
|
135
|
+
<span class="cline-any cline-neutral"> </span>
|
|
136
|
+
<span class="cline-any cline-neutral"> </span>
|
|
137
|
+
<span class="cline-any cline-yes">1x</span>
|
|
138
|
+
<span class="cline-any cline-yes">2x</span>
|
|
139
|
+
<span class="cline-any cline-neutral"> </span>
|
|
140
|
+
<span class="cline-any cline-yes">2x</span>
|
|
141
|
+
<span class="cline-any cline-yes">1x</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>
|
|
145
|
+
<span class="cline-any cline-yes">1x</span>
|
|
146
|
+
<span class="cline-any cline-yes">2x</span>
|
|
147
|
+
<span class="cline-any cline-yes">2x</span>
|
|
148
|
+
<span class="cline-any cline-neutral"> </span>
|
|
149
|
+
<span class="cline-any cline-neutral"> </span>
|
|
150
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { action, makeObservable, observable } from 'mobx';
|
|
151
|
+
import { Getter } from '../types';
|
|
152
|
+
import { ValidatableModel } from './Validatable';
|
|
153
|
+
|
|
154
|
+
export class CommonModel<T = any> extends ValidatableModel<T> {
|
|
155
|
+
|
|
156
|
+
// observable[.ref]
|
|
157
|
+
private _value: T;
|
|
158
|
+
|
|
159
|
+
private _defaultValue: Getter<T> = null;
|
|
160
|
+
|
|
161
|
+
constructor(v: Getter<T> = <span class="branch-0 cbranch-no" title="branch not covered" >null,</span> useRefObservable = <span class="branch-0 cbranch-no" title="branch not covered" >true)</span> {
|
|
162
|
+
super();
|
|
163
|
+
this._value = Getter.getValue(v) || <span class="branch-1 cbranch-no" title="branch not covered" >null;</span>
|
|
164
|
+
this._defaultValue = v;
|
|
165
|
+
|
|
166
|
+
makeObservable<CommonModel<T>, '_value'>(this, {
|
|
167
|
+
_value: useRefObservable ? observable.ref : <span class="branch-1 cbranch-no" title="branch not covered" >observable,</span>
|
|
168
|
+
setValue: action,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
protected get valueToValidate(): Readonly<T> {
|
|
173
|
+
return this._value;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
public get value() { return this._value; }
|
|
177
|
+
public set value(v: T) {
|
|
178
|
+
this.setValue(v);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
// action
|
|
182
|
+
public readonly setValue = (value: T) => {
|
|
183
|
+
this._value = value;
|
|
184
|
+
|
|
185
|
+
if (this._validateOnChange) {
|
|
186
|
+
this.validate();
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
reset = () => {
|
|
191
|
+
this._value = Getter.getValue(this._defaultValue);
|
|
192
|
+
super.reset();
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
</pre></td></tr></table></pre>
|
|
196
|
+
|
|
197
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
198
|
+
</div><!-- /wrapper -->
|
|
199
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
200
|
+
Code coverage generated by
|
|
201
|
+
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
202
|
+
at Fri Mar 18 2022 08:49:14 GMT+0000 (Coordinated Universal Time)
|
|
203
|
+
</div>
|
|
204
|
+
</div>
|
|
205
|
+
<script src="../../prettify.js"></script>
|
|
206
|
+
<script>
|
|
207
|
+
window.onload = function () {
|
|
208
|
+
prettyPrint();
|
|
209
|
+
};
|
|
210
|
+
</script>
|
|
211
|
+
<script src="../../sorter.js"></script>
|
|
212
|
+
<script src="../../block-navigation.js"></script>
|
|
213
|
+
</body>
|
|
214
|
+
</html>
|
|
215
|
+
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">59.09% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>13/22</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -120,28 +120,42 @@
|
|
|
120
120
|
<a name='L61'></a><a href='#L61'>61</a>
|
|
121
121
|
<a name='L62'></a><a href='#L62'>62</a>
|
|
122
122
|
<a name='L63'></a><a href='#L63'>63</a>
|
|
123
|
-
<a name='L64'></a><a href='#L64'>64</a
|
|
123
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
|
124
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
|
125
|
+
<a name='L66'></a><a href='#L66'>66</a>
|
|
126
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
|
127
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
|
128
|
+
<a name='L69'></a><a href='#L69'>69</a>
|
|
129
|
+
<a name='L70'></a><a href='#L70'>70</a>
|
|
130
|
+
<a name='L71'></a><a href='#L71'>71</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">4x</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-neutral"> </span>
|
|
137
|
+
<span class="cline-any cline-neutral"> </span>
|
|
124
138
|
<span class="cline-any cline-neutral"> </span>
|
|
125
139
|
<span class="cline-any cline-neutral"> </span>
|
|
126
140
|
<span class="cline-any cline-neutral"> </span>
|
|
127
141
|
<span class="cline-any cline-neutral"> </span>
|
|
128
142
|
<span class="cline-any cline-neutral"> </span>
|
|
129
143
|
<span class="cline-any cline-neutral"> </span>
|
|
144
|
+
<span class="cline-any cline-yes">4x</span>
|
|
130
145
|
<span class="cline-any cline-neutral"> </span>
|
|
131
146
|
<span class="cline-any cline-neutral"> </span>
|
|
147
|
+
<span class="cline-any cline-yes">18x</span>
|
|
132
148
|
<span class="cline-any cline-neutral"> </span>
|
|
133
149
|
<span class="cline-any cline-neutral"> </span>
|
|
150
|
+
<span class="cline-any cline-yes">18x</span>
|
|
134
151
|
<span class="cline-any cline-neutral"> </span>
|
|
135
152
|
<span class="cline-any cline-neutral"> </span>
|
|
136
153
|
<span class="cline-any cline-neutral"> </span>
|
|
137
|
-
<span class="cline-any cline-yes">3x</span>
|
|
138
154
|
<span class="cline-any cline-neutral"> </span>
|
|
139
155
|
<span class="cline-any cline-neutral"> </span>
|
|
140
|
-
<span class="cline-any cline-yes">17x</span>
|
|
141
156
|
<span class="cline-any cline-neutral"> </span>
|
|
142
157
|
<span class="cline-any cline-neutral"> </span>
|
|
143
|
-
<span class="cline-any cline-yes">
|
|
144
|
-
<span class="cline-any cline-yes">17x</span>
|
|
158
|
+
<span class="cline-any cline-yes">18x</span>
|
|
145
159
|
<span class="cline-any cline-neutral"> </span>
|
|
146
160
|
<span class="cline-any cline-neutral"> </span>
|
|
147
161
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -153,33 +167,33 @@
|
|
|
153
167
|
<span class="cline-any cline-neutral"> </span>
|
|
154
168
|
<span class="cline-any cline-neutral"> </span>
|
|
155
169
|
<span class="cline-any cline-neutral"> </span>
|
|
156
|
-
<span class="cline-any cline-yes">
|
|
170
|
+
<span class="cline-any cline-yes">18x</span>
|
|
157
171
|
<span class="cline-any cline-yes">50x</span>
|
|
158
172
|
<span class="cline-any cline-neutral"> </span>
|
|
159
173
|
<span class="cline-any cline-neutral"> </span>
|
|
160
174
|
<span class="cline-any cline-no"> </span>
|
|
161
175
|
<span class="cline-any cline-neutral"> </span>
|
|
162
176
|
<span class="cline-any cline-neutral"> </span>
|
|
163
|
-
<span class="cline-any cline-yes">
|
|
177
|
+
<span class="cline-any cline-yes">18x</span>
|
|
164
178
|
<span class="cline-any cline-no"> </span>
|
|
165
179
|
<span class="cline-any cline-no"> </span>
|
|
166
180
|
<span class="cline-any cline-no"> </span>
|
|
167
181
|
<span class="cline-any cline-neutral"> </span>
|
|
168
182
|
<span class="cline-any cline-neutral"> </span>
|
|
169
183
|
<span class="cline-any cline-neutral"> </span>
|
|
170
|
-
<span class="cline-any cline-yes">
|
|
184
|
+
<span class="cline-any cline-yes">18x</span>
|
|
171
185
|
<span class="cline-any cline-no"> </span>
|
|
172
186
|
<span class="cline-any cline-no"> </span>
|
|
173
187
|
<span class="cline-any cline-no"> </span>
|
|
174
188
|
<span class="cline-any cline-neutral"> </span>
|
|
175
189
|
<span class="cline-any cline-neutral"> </span>
|
|
176
190
|
<span class="cline-any cline-neutral"> </span>
|
|
177
|
-
<span class="cline-any cline-yes">
|
|
191
|
+
<span class="cline-any cline-yes">18x</span>
|
|
178
192
|
<span class="cline-any cline-no"> </span>
|
|
179
193
|
<span class="cline-any cline-neutral"> </span>
|
|
180
194
|
<span class="cline-any cline-neutral"> </span>
|
|
181
195
|
<span class="cline-any cline-neutral"> </span>
|
|
182
|
-
<span class="cline-any cline-yes">
|
|
196
|
+
<span class="cline-any cline-yes">18x</span>
|
|
183
197
|
<span class="cline-any cline-no"> </span>
|
|
184
198
|
<span class="cline-any cline-neutral"> </span>
|
|
185
199
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -199,11 +213,18 @@ export type ILabeledFlagModel = IFlagModel & ILabel<string>;
|
|
|
199
213
|
|
|
200
214
|
export class FlagModel implements IFlagModel, IFlagModelReadonly {
|
|
201
215
|
|
|
202
|
-
@observable
|
|
216
|
+
// @observable
|
|
203
217
|
private _value: boolean = false;
|
|
204
218
|
|
|
205
219
|
constructor(initial = false) {
|
|
206
|
-
makeObservable(this
|
|
220
|
+
makeObservable<FlagModel, '_value'>(this, {
|
|
221
|
+
_value: observable,
|
|
222
|
+
setValue: action,
|
|
223
|
+
setTrue: action,
|
|
224
|
+
setFalse: action,
|
|
225
|
+
toggle: action,
|
|
226
|
+
reset: action,
|
|
227
|
+
});
|
|
207
228
|
this._value = initial;
|
|
208
229
|
}
|
|
209
230
|
|
|
@@ -215,33 +236,33 @@ export class FlagModel implements IFlagModel, IFlagModelReadonly {
|
|
|
215
236
|
this.setValue(value);
|
|
216
237
|
}
|
|
217
238
|
|
|
218
|
-
@action
|
|
239
|
+
// @action
|
|
219
240
|
public readonly setValue = (value: boolean) => {
|
|
220
241
|
this._value = value;
|
|
221
242
|
};
|
|
222
243
|
|
|
223
244
|
<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>}
|
|
224
245
|
|
|
225
|
-
@action
|
|
246
|
+
// @action
|
|
226
247
|
setTrue = <span class="fstat-no" title="function not covered" >() =</span>> {
|
|
227
248
|
const v = <span class="cstat-no" title="statement not covered" >this.value;</span>
|
|
228
249
|
<span class="cstat-no" title="statement not covered" > this.value = true;</span>
|
|
229
250
|
<span class="cstat-no" title="statement not covered" > return !v;</span>
|
|
230
251
|
};
|
|
231
252
|
|
|
232
|
-
@action
|
|
253
|
+
// @action
|
|
233
254
|
setFalse = <span class="fstat-no" title="function not covered" >() =</span>> {
|
|
234
255
|
const v = <span class="cstat-no" title="statement not covered" >this.value;</span>
|
|
235
256
|
<span class="cstat-no" title="statement not covered" > this.value = false;</span>
|
|
236
257
|
<span class="cstat-no" title="statement not covered" > return v;</span>
|
|
237
258
|
};
|
|
238
259
|
|
|
239
|
-
@action
|
|
260
|
+
// @action
|
|
240
261
|
toggle = <span class="fstat-no" title="function not covered" >() =</span>> {
|
|
241
262
|
<span class="cstat-no" title="statement not covered" > this._value = !this._value;</span>
|
|
242
263
|
};
|
|
243
264
|
|
|
244
|
-
@action
|
|
265
|
+
// @action
|
|
245
266
|
reset = <span class="fstat-no" title="function not covered" >() =</span>> {
|
|
246
267
|
<span class="cstat-no" title="statement not covered" > this._value = false;</span>
|
|
247
268
|
};
|
|
@@ -253,7 +274,7 @@ export class FlagModel implements IFlagModel, IFlagModelReadonly {
|
|
|
253
274
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
254
275
|
Code coverage generated by
|
|
255
276
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
256
|
-
at
|
|
277
|
+
at Fri Mar 18 2022 08:49:14 GMT+0000 (Coordinated Universal Time)
|
|
257
278
|
</div>
|
|
258
279
|
</div>
|
|
259
280
|
<script src="../../prettify.js"></script>
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for src/viewModels/LoadingModel.ts</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../../index.html">All files</a> / <a href="index.html">src/viewModels</a> LoadingModel.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">100% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>8/8</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">100% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>0/0</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">100% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>2/2</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">100% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>8/8</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
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
|
+
</p>
|
|
57
|
+
</div>
|
|
58
|
+
<div class='status-line high'></div>
|
|
59
|
+
<pre><table class="coverage">
|
|
60
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
61
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
62
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
63
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
64
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
65
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
66
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
67
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
68
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
69
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
70
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
71
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
72
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
73
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
74
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
75
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
76
|
+
<a name='L17'></a><a href='#L17'>17</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
77
|
+
<span class="cline-any cline-neutral"> </span>
|
|
78
|
+
<span class="cline-any cline-yes">1x</span>
|
|
79
|
+
<span class="cline-any cline-neutral"> </span>
|
|
80
|
+
<span class="cline-any cline-yes">3x</span>
|
|
81
|
+
<span class="cline-any cline-neutral"> </span>
|
|
82
|
+
<span class="cline-any cline-neutral"> </span>
|
|
83
|
+
<span class="cline-any cline-yes">1x</span>
|
|
84
|
+
<span class="cline-any cline-yes">1x</span>
|
|
85
|
+
<span class="cline-any cline-yes">1x</span>
|
|
86
|
+
<span class="cline-any cline-yes">1x</span>
|
|
87
|
+
<span class="cline-any cline-neutral"> </span>
|
|
88
|
+
<span class="cline-any cline-yes">1x</span>
|
|
89
|
+
<span class="cline-any cline-neutral"> </span>
|
|
90
|
+
<span class="cline-any cline-neutral"> </span>
|
|
91
|
+
<span class="cline-any cline-neutral"> </span>
|
|
92
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { NumberModel } from './NumberModel';
|
|
93
|
+
|
|
94
|
+
export class LoadingModel extends NumberModel {
|
|
95
|
+
|
|
96
|
+
public get isLoading() { return this.value > 0; }
|
|
97
|
+
|
|
98
|
+
public async useLoading<T>(cb: () => (T | Promise<T>)): Promise<T> {
|
|
99
|
+
try {
|
|
100
|
+
this.increment();
|
|
101
|
+
const res = await cb();
|
|
102
|
+
return res;
|
|
103
|
+
} finally {
|
|
104
|
+
this.decrement();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
</pre></td></tr></table></pre>
|
|
109
|
+
|
|
110
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
111
|
+
</div><!-- /wrapper -->
|
|
112
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
113
|
+
Code coverage generated by
|
|
114
|
+
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
115
|
+
at Fri Mar 18 2022 08:49:14 GMT+0000 (Coordinated Universal Time)
|
|
116
|
+
</div>
|
|
117
|
+
</div>
|
|
118
|
+
<script src="../../prettify.js"></script>
|
|
119
|
+
<script>
|
|
120
|
+
window.onload = function () {
|
|
121
|
+
prettyPrint();
|
|
122
|
+
};
|
|
123
|
+
</script>
|
|
124
|
+
<script src="../../sorter.js"></script>
|
|
125
|
+
<script src="../../block-navigation.js"></script>
|
|
126
|
+
</body>
|
|
127
|
+
</html>
|
|
128
|
+
|