@zajno/common 1.3.4 → 1.3.8
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 +123 -66
- package/coverage/coverage-final.json +40 -39
- package/coverage/lcov-report/index.html +45 -30
- package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
- package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
- package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
- package/coverage/lcov-report/src/async/index.html +1 -1
- package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
- package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
- package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
- package/coverage/lcov-report/src/dates/format.ts.html +1 -1
- package/coverage/lcov-report/src/dates/index.html +1 -1
- package/coverage/lcov-report/src/dates/index.ts.html +1 -1
- package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
- package/coverage/lcov-report/src/dates/period.ts.html +1 -1
- package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
- package/coverage/lcov-report/src/dates/types.ts.html +1 -1
- package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
- package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
- package/coverage/lcov-report/src/event.ts.html +1 -1
- package/coverage/lcov-report/src/fields/index.html +111 -0
- package/coverage/lcov-report/src/{viewModels/SelectViewModel.ts.html → fields/update.ts.html} +119 -182
- package/coverage/lcov-report/src/index.html +1 -1
- 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 +19 -10
- package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
- package/coverage/lcov-report/src/math/index.html +19 -19
- package/coverage/lcov-report/src/math/index.ts.html +1 -1
- package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
- package/coverage/lcov-report/src/types.ts.html +1 -1
- package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
- package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
- package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
- package/coverage/lcov-report/src/validation/index.html +1 -1
- package/coverage/lcov-report/src/validation/index.ts.html +1 -1
- package/coverage/lcov-report/src/validation/types.ts.html +1 -1
- package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
- package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +51 -9
- package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +1 -1
- package/coverage/lcov-report/src/viewModels/Validatable.ts.html +34 -10
- package/coverage/lcov-report/src/viewModels/index.html +29 -29
- package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
- package/coverage/lcov-report/{enumHelper.ts.html → update.ts.html} +118 -193
- package/coverage/lcov.info +198 -55
- package/lib/fields/update.d.ts +17 -6
- package/lib/fields/update.d.ts.map +1 -1
- package/lib/fields/update.js +29 -13
- package/lib/fields/update.js.map +1 -1
- package/lib/ident.d.ts +6 -0
- package/lib/ident.d.ts.map +1 -0
- package/lib/ident.js +3 -0
- package/lib/ident.js.map +1 -0
- package/lib/math/calc.d.ts +1 -0
- package/lib/math/calc.d.ts.map +1 -1
- package/lib/math/calc.js +5 -1
- package/lib/math/calc.js.map +1 -1
- package/lib/unsubscriber.d.ts +4 -0
- package/lib/unsubscriber.d.ts.map +1 -1
- package/lib/unsubscriber.js +8 -1
- package/lib/unsubscriber.js.map +1 -1
- package/lib/viewModels/FlagModel.d.ts +2 -0
- package/lib/viewModels/FlagModel.d.ts.map +1 -1
- package/lib/viewModels/FlagModel.js +18 -0
- package/lib/viewModels/FlagModel.js.map +1 -1
- package/lib/viewModels/Validatable.d.ts +2 -1
- package/lib/viewModels/Validatable.d.ts.map +1 -1
- package/lib/viewModels/Validatable.js +7 -0
- package/lib/viewModels/Validatable.js.map +1 -1
- package/package.json +1 -1
- package/src/fields/__tests__/fields.update.test.ts +73 -0
- package/src/fields/update.ts +54 -20
- package/src/ident.ts +8 -0
- package/src/math/calc.ts +3 -0
- package/src/unsubscriber.ts +7 -0
- package/src/viewModels/FlagModel.ts +14 -0
- package/src/viewModels/Validatable.ts +8 -0
- package/coverage/lcov-report/NumberModel.ts.html +0 -188
- package/coverage/lcov-report/arrays.ts.html +0 -602
- package/coverage/lcov-report/calc.ts.html +0 -278
- package/coverage/lcov-report/src/viewModels/LabeledFlagModel.ts.html +0 -137
- package/coverage/lcov-report/src/viewModels/labeled.ts.html +0 -128
- package/coverage/lcov-report/transitionObserver.ts.html +0 -536
package/coverage/lcov-report/src/{viewModels/SelectViewModel.ts.html → fields/update.ts.html}
RENAMED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<html lang="en">
|
|
4
4
|
|
|
5
5
|
<head>
|
|
6
|
-
<title>Code coverage report for src/
|
|
6
|
+
<title>Code coverage report for src/fields/update.ts</title>
|
|
7
7
|
<meta charset="utf-8" />
|
|
8
8
|
<link rel="stylesheet" href="../../prettify.css" />
|
|
9
9
|
<link rel="stylesheet" href="../../base.css" />
|
|
@@ -19,34 +19,34 @@
|
|
|
19
19
|
<body>
|
|
20
20
|
<div class='wrapper'>
|
|
21
21
|
<div class='pad1'>
|
|
22
|
-
<h1><a href="../../index.html">All files</a> / <a href="index.html">src/
|
|
22
|
+
<h1><a href="../../index.html">All files</a> / <a href="index.html">src/fields</a> update.ts</h1>
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">73.33% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>33/45</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">80% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>40/50</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">45.45% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>5/11</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">78.38% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>29/37</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
|
|
58
|
+
<div class='status-line medium'></div>
|
|
59
59
|
<pre><table class="coverage">
|
|
60
60
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
61
61
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -155,264 +155,201 @@
|
|
|
155
155
|
<a name='L96'></a><a href='#L96'>96</a>
|
|
156
156
|
<a name='L97'></a><a href='#L97'>97</a>
|
|
157
157
|
<a name='L98'></a><a href='#L98'>98</a>
|
|
158
|
-
<a name='L99'></a><a href='#L99'>99</a>
|
|
159
|
-
<a name='L100'></a><a href='#L100'>100</a>
|
|
160
|
-
<a name='L101'></a><a href='#L101'>101</a>
|
|
161
|
-
<a name='L102'></a><a href='#L102'>102</a>
|
|
162
|
-
<a name='L103'></a><a href='#L103'>103</a>
|
|
163
|
-
<a name='L104'></a><a href='#L104'>104</a>
|
|
164
|
-
<a name='L105'></a><a href='#L105'>105</a>
|
|
165
|
-
<a name='L106'></a><a href='#L106'>106</a>
|
|
166
|
-
<a name='L107'></a><a href='#L107'>107</a>
|
|
167
|
-
<a name='L108'></a><a href='#L108'>108</a>
|
|
168
|
-
<a name='L109'></a><a href='#L109'>109</a>
|
|
169
|
-
<a name='L110'></a><a href='#L110'>110</a>
|
|
170
|
-
<a name='L111'></a><a href='#L111'>111</a>
|
|
171
|
-
<a name='L112'></a><a href='#L112'>112</a>
|
|
172
|
-
<a name='L113'></a><a href='#L113'>113</a>
|
|
173
|
-
<a name='L114'></a><a href='#L114'>114</a>
|
|
174
|
-
<a name='L115'></a><a href='#L115'>115</a>
|
|
175
|
-
<a name='L116'></a><a href='#L116'>116</a>
|
|
176
|
-
<a name='L117'></a><a href='#L117'>117</a>
|
|
177
|
-
<a name='L118'></a><a href='#L118'>118</a>
|
|
178
|
-
<a name='L119'></a><a href='#L119'>119</a>
|
|
179
|
-
<a name='L120'></a><a href='#L120'>120</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
180
|
-
<span class="cline-any cline-yes">1x</span>
|
|
181
|
-
<span class="cline-any cline-yes">1x</span>
|
|
182
|
-
<span class="cline-any cline-yes">1x</span>
|
|
183
|
-
<span class="cline-any cline-neutral"> </span>
|
|
184
|
-
<span class="cline-any cline-yes">1x</span>
|
|
185
|
-
<span class="cline-any cline-neutral"> </span>
|
|
186
|
-
<span class="cline-any cline-yes">5x</span>
|
|
187
|
-
<span class="cline-any cline-neutral"> </span>
|
|
188
|
-
<span class="cline-any cline-neutral"> </span>
|
|
189
|
-
<span class="cline-any cline-yes">5x</span>
|
|
158
|
+
<a name='L99'></a><a href='#L99'>99</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
190
159
|
<span class="cline-any cline-neutral"> </span>
|
|
191
|
-
<span class="cline-any cline-yes">5x</span>
|
|
192
|
-
<span class="cline-any cline-yes">5x</span>
|
|
193
160
|
<span class="cline-any cline-neutral"> </span>
|
|
194
|
-
<span class="cline-any cline-yes">5x</span>
|
|
195
161
|
<span class="cline-any cline-neutral"> </span>
|
|
196
162
|
<span class="cline-any cline-neutral"> </span>
|
|
197
|
-
<span class="cline-any cline-yes">5x</span>
|
|
198
|
-
<span class="cline-any cline-yes">5x</span>
|
|
199
163
|
<span class="cline-any cline-neutral"> </span>
|
|
200
164
|
<span class="cline-any cline-neutral"> </span>
|
|
201
|
-
<span class="cline-any cline-yes">5x</span>
|
|
202
|
-
<span class="cline-any cline-yes">5x</span>
|
|
203
165
|
<span class="cline-any cline-neutral"> </span>
|
|
204
166
|
<span class="cline-any cline-neutral"> </span>
|
|
205
167
|
<span class="cline-any cline-neutral"> </span>
|
|
206
168
|
<span class="cline-any cline-yes">1x</span>
|
|
207
|
-
<span class="cline-any cline-
|
|
208
|
-
<span class="cline-any cline-neutral"> </span>
|
|
209
|
-
<span class="cline-any cline-neutral"> </span>
|
|
210
|
-
<span class="cline-any cline-neutral"> </span>
|
|
211
|
-
<span class="cline-any cline-yes">8x</span>
|
|
212
|
-
<span class="cline-any cline-neutral"> </span>
|
|
169
|
+
<span class="cline-any cline-no"> </span>
|
|
213
170
|
<span class="cline-any cline-neutral"> </span>
|
|
214
171
|
<span class="cline-any cline-neutral"> </span>
|
|
215
172
|
<span class="cline-any cline-yes">1x</span>
|
|
216
173
|
<span class="cline-any cline-neutral"> </span>
|
|
217
174
|
<span class="cline-any cline-neutral"> </span>
|
|
218
175
|
<span class="cline-any cline-neutral"> </span>
|
|
219
|
-
<span class="cline-any cline-yes">1x</span>
|
|
220
|
-
<span class="cline-any cline-neutral"> </span>
|
|
221
176
|
<span class="cline-any cline-neutral"> </span>
|
|
222
177
|
<span class="cline-any cline-neutral"> </span>
|
|
223
|
-
<span class="cline-any cline-yes">1x</span>
|
|
224
|
-
<span class="cline-any cline-neutral"> </span>
|
|
225
178
|
<span class="cline-any cline-neutral"> </span>
|
|
226
179
|
<span class="cline-any cline-neutral"> </span>
|
|
227
|
-
<span class="cline-any cline-yes">6x</span>
|
|
228
|
-
<span class="cline-any cline-yes">6x</span>
|
|
229
180
|
<span class="cline-any cline-neutral"> </span>
|
|
181
|
+
<span class="cline-any cline-no"> </span>
|
|
230
182
|
<span class="cline-any cline-neutral"> </span>
|
|
183
|
+
<span class="cline-any cline-no"> </span>
|
|
231
184
|
<span class="cline-any cline-neutral"> </span>
|
|
232
|
-
<span class="cline-any cline-
|
|
233
|
-
<span class="cline-any cline-
|
|
234
|
-
<span class="cline-any cline-
|
|
185
|
+
<span class="cline-any cline-no"> </span>
|
|
186
|
+
<span class="cline-any cline-no"> </span>
|
|
187
|
+
<span class="cline-any cline-no"> </span>
|
|
188
|
+
<span class="cline-any cline-no"> </span>
|
|
235
189
|
<span class="cline-any cline-neutral"> </span>
|
|
236
190
|
<span class="cline-any cline-neutral"> </span>
|
|
191
|
+
<span class="cline-any cline-no"> </span>
|
|
237
192
|
<span class="cline-any cline-neutral"> </span>
|
|
238
193
|
<span class="cline-any cline-neutral"> </span>
|
|
239
|
-
<span class="cline-any cline-yes">4x</span>
|
|
240
194
|
<span class="cline-any cline-neutral"> </span>
|
|
195
|
+
<span class="cline-any cline-yes">38x</span>
|
|
196
|
+
<span class="cline-any cline-yes">1x</span>
|
|
241
197
|
<span class="cline-any cline-neutral"> </span>
|
|
242
198
|
<span class="cline-any cline-neutral"> </span>
|
|
243
|
-
<span class="cline-any cline-yes">5x</span>
|
|
244
|
-
<span class="cline-any cline-yes">5x</span>
|
|
245
|
-
<span class="cline-any cline-yes">4x</span>
|
|
246
199
|
<span class="cline-any cline-neutral"> </span>
|
|
247
200
|
<span class="cline-any cline-neutral"> </span>
|
|
248
201
|
<span class="cline-any cline-neutral"> </span>
|
|
249
202
|
<span class="cline-any cline-neutral"> </span>
|
|
250
|
-
<span class="cline-any cline-yes">11x</span>
|
|
251
203
|
<span class="cline-any cline-neutral"> </span>
|
|
252
204
|
<span class="cline-any cline-neutral"> </span>
|
|
253
205
|
<span class="cline-any cline-neutral"> </span>
|
|
254
|
-
<span class="cline-any cline-yes">
|
|
255
|
-
<span class="cline-any cline-yes">4x</span>
|
|
206
|
+
<span class="cline-any cline-yes">1x</span>
|
|
256
207
|
<span class="cline-any cline-neutral"> </span>
|
|
257
208
|
<span class="cline-any cline-neutral"> </span>
|
|
258
|
-
<span class="cline-any cline-yes">13x</span>
|
|
259
209
|
<span class="cline-any cline-neutral"> </span>
|
|
260
210
|
<span class="cline-any cline-neutral"> </span>
|
|
261
|
-
<span class="cline-any cline-yes">
|
|
262
|
-
<span class="cline-any cline-yes">
|
|
211
|
+
<span class="cline-any cline-yes">6x</span>
|
|
212
|
+
<span class="cline-any cline-yes">1x</span>
|
|
263
213
|
<span class="cline-any cline-neutral"> </span>
|
|
264
|
-
<span class="cline-any cline-yes">13x</span>
|
|
265
|
-
<span class="cline-any cline-yes">36x</span>
|
|
266
214
|
<span class="cline-any cline-neutral"> </span>
|
|
215
|
+
<span class="cline-any cline-yes">5x</span>
|
|
216
|
+
<span class="cline-any cline-yes">5x</span>
|
|
267
217
|
<span class="cline-any cline-neutral"> </span>
|
|
268
|
-
<span class="cline-any cline-yes">13x</span>
|
|
269
218
|
<span class="cline-any cline-neutral"> </span>
|
|
270
219
|
<span class="cline-any cline-neutral"> </span>
|
|
220
|
+
<span class="cline-any cline-yes">5x</span>
|
|
221
|
+
<span class="cline-any cline-yes">5x</span>
|
|
271
222
|
<span class="cline-any cline-neutral"> </span>
|
|
272
223
|
<span class="cline-any cline-neutral"> </span>
|
|
273
224
|
<span class="cline-any cline-yes">5x</span>
|
|
274
|
-
<span class="cline-any cline-yes">
|
|
225
|
+
<span class="cline-any cline-yes">5x</span>
|
|
226
|
+
<span class="cline-any cline-yes">31x</span>
|
|
227
|
+
<span class="cline-any cline-yes">10x</span>
|
|
228
|
+
<span class="cline-any cline-yes">10x</span>
|
|
229
|
+
<span class="cline-any cline-yes">10x</span>
|
|
275
230
|
<span class="cline-any cline-neutral"> </span>
|
|
276
231
|
<span class="cline-any cline-neutral"> </span>
|
|
277
232
|
<span class="cline-any cline-neutral"> </span>
|
|
278
|
-
<span class="cline-any cline-yes">9x</span>
|
|
279
|
-
<span class="cline-any cline-yes">3x</span>
|
|
280
233
|
<span class="cline-any cline-neutral"> </span>
|
|
281
234
|
<span class="cline-any cline-neutral"> </span>
|
|
235
|
+
<span class="cline-any cline-yes">5x</span>
|
|
236
|
+
<span class="cline-any cline-yes">15x</span>
|
|
237
|
+
<span class="cline-any cline-yes">12x</span>
|
|
238
|
+
<span class="cline-any cline-yes">12x</span>
|
|
239
|
+
<span class="cline-any cline-yes">7x</span>
|
|
240
|
+
<span class="cline-any cline-yes">7x</span>
|
|
241
|
+
<span class="cline-any cline-yes">5x</span>
|
|
282
242
|
<span class="cline-any cline-yes">1x</span>
|
|
283
|
-
<span class="cline-any cline-yes">19x</span>
|
|
284
|
-
<span class="cline-any cline-yes">16x</span>
|
|
285
|
-
<span class="cline-any cline-yes">8x</span>
|
|
286
243
|
<span class="cline-any cline-neutral"> </span>
|
|
287
244
|
<span class="cline-any cline-neutral"> </span>
|
|
288
245
|
<span class="cline-any cline-neutral"> </span>
|
|
289
|
-
<span class="cline-any cline-yes">
|
|
246
|
+
<span class="cline-any cline-yes">5x</span>
|
|
247
|
+
<span class="cline-any cline-yes">5x</span>
|
|
248
|
+
<span class="cline-any cline-yes">4x</span>
|
|
290
249
|
<span class="cline-any cline-neutral"> </span>
|
|
291
250
|
<span class="cline-any cline-neutral"> </span>
|
|
251
|
+
<span class="cline-any cline-yes">5x</span>
|
|
292
252
|
<span class="cline-any cline-neutral"> </span>
|
|
293
|
-
<span class="cline-any cline-yes">1x</span>
|
|
294
253
|
<span class="cline-any cline-neutral"> </span>
|
|
295
|
-
<span class="cline-any cline-yes">3x</span>
|
|
296
254
|
<span class="cline-any cline-neutral"> </span>
|
|
297
255
|
<span class="cline-any cline-neutral"> </span>
|
|
298
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import {
|
|
299
|
-
import { observable, computed, makeObservable, reaction, action } from 'mobx';
|
|
300
|
-
import { FlagModel } from './FlagModel';
|
|
301
|
-
import { ILabeledFlagModel, LabeledFlagModel } from './LabeledFlagModel';
|
|
302
|
-
|
|
303
|
-
export class Select<T = any> {
|
|
304
|
-
@observable
|
|
305
|
-
private _index: number = undefined;
|
|
306
|
-
|
|
307
|
-
@observable
|
|
308
|
-
public error: boolean = undefined;
|
|
256
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { Comparator } from '../types';
|
|
309
257
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
&
|
|
313
|
-
|
|
258
|
+
export namespace Fields {
|
|
259
|
+
export type Getter<T> = (obj: Partial<T>) => T[keyof T];
|
|
260
|
+
export type Setter<T> = (obj: Partial<T>, val: T[keyof T]) => void;
|
|
261
|
+
export type Comparer<T> = (source: Partial<T>, target: Partial<T>) => boolean;
|
|
262
|
+
export type Updater<T> = (target: T, source: T) => T;
|
|
263
|
+
}
|
|
314
264
|
|
|
315
|
-
constructor(
|
|
316
|
-
private readonly _items: readonly T[],
|
|
317
|
-
private readonly _accessor: (item: T) => string,
|
|
318
|
-
initialIndex: number = undefined,
|
|
319
|
-
) {
|
|
320
|
-
makeObservable(this);
|
|
321
|
-
this._index = initialIndex;
|
|
322
|
-
}
|
|
323
265
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
}
|
|
266
|
+
export function <span class="fstat-no" title="function not covered" >updateField<</span>T>(target: T, source: Partial<T>, diff: Partial<T>, key: keyof T, hasChanged: Fields.Comparer<T> = <span class="branch-0 cbranch-no" title="branch not covered" >null)</span>: boolean {
|
|
267
|
+
<span class="cstat-no" title="statement not covered" > return updateFieldExtended(target, source, diff, <span class="fstat-no" title="function not covered" >t </span>=> <span class="cstat-no" title="statement not covered" >t[key],</span> <span class="fstat-no" title="function not covered" >(t</span>, v) => <span class="cstat-no" title="statement not covered" >t[key] = v,</span> hasChanged);</span>
|
|
268
|
+
}
|
|
328
269
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
270
|
+
export function <span class="fstat-no" title="function not covered" >updateFieldExtended<</span>T>(
|
|
271
|
+
target: T,
|
|
272
|
+
source: Partial<T>,
|
|
273
|
+
diff: Partial<T>,
|
|
274
|
+
get: Fields.Getter<T>,
|
|
275
|
+
set: Fields.Setter<T>,
|
|
276
|
+
hasChanged: Fields.Comparer<T> = <span class="branch-0 cbranch-no" title="branch not covered" >null,</span>
|
|
277
|
+
): boolean {
|
|
332
278
|
|
|
333
|
-
get
|
|
334
|
-
return this._opened.value;
|
|
335
|
-
}
|
|
279
|
+
<span class="cstat-no" title="statement not covered" > hasChanged = hasChanged || (<span class="fstat-no" title="function not covered" >(v</span>1: T, v2: T) => (<span class="cstat-no" title="statement not covered" >get(v1) !== get(v2))</span>);</span>
|
|
336
280
|
|
|
337
|
-
|
|
338
|
-
this._opened.value = value;
|
|
339
|
-
}
|
|
281
|
+
let changed = <span class="cstat-no" title="statement not covered" >true;</span>
|
|
340
282
|
|
|
341
|
-
get
|
|
342
|
-
|
|
283
|
+
<span class="cstat-no" title="statement not covered" > if (get(source) !== undefined && hasChanged(source, target)) {</span>
|
|
284
|
+
<span class="cstat-no" title="statement not covered" > changed = true;</span>
|
|
285
|
+
<span class="cstat-no" title="statement not covered" > set(diff, get(target));</span>
|
|
286
|
+
<span class="cstat-no" title="statement not covered" > set(target, get(source));</span>
|
|
343
287
|
}
|
|
344
288
|
|
|
345
|
-
|
|
346
|
-
const vs = this.values;
|
|
347
|
-
return vs.length ? vs[this._index] : null;
|
|
348
|
-
}
|
|
289
|
+
<span class="cstat-no" title="statement not covered" > return changed;</span>
|
|
349
290
|
|
|
350
|
-
|
|
351
|
-
const index = this.values.indexOf(value);
|
|
352
|
-
if (index >= 0) {
|
|
353
|
-
this.index = index;
|
|
354
|
-
}
|
|
355
|
-
}
|
|
291
|
+
}
|
|
356
292
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
}
|
|
293
|
+
const DefaultComparator: Comparator<any> = (v1, v2) => v1 === v2;
|
|
294
|
+
const DefaultUpdater: Fields.Updater<any> = <span class="fstat-no" title="function not covered" >(v</span>1, v2) => <span class="cstat-no" title="statement not covered" >Object.assign(v1, v2);</span>
|
|
360
295
|
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
296
|
+
export type UpdateArrayOptions<T> = {
|
|
297
|
+
additive?: boolean,
|
|
298
|
+
clone?: boolean,
|
|
299
|
+
comparator?: Comparator<T>,
|
|
300
|
+
updater?: Fields.Updater<T>,
|
|
301
|
+
sorter?: Comparator<T, number> | null | undefined,
|
|
302
|
+
};
|
|
367
303
|
|
|
368
|
-
|
|
369
|
-
|
|
304
|
+
export function updateArray<T>(
|
|
305
|
+
target: T[] | null,
|
|
306
|
+
source: T[],
|
|
307
|
+
options?: UpdateArrayOptions<T>,
|
|
308
|
+
): { changed: number, result: T[] } {
|
|
309
|
+
if (!source) {
|
|
310
|
+
return { changed: 0, result: target };
|
|
370
311
|
}
|
|
371
312
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
this._index = val;
|
|
313
|
+
let changed = 0;
|
|
314
|
+
const result = Array.isArray(target)
|
|
315
|
+
? (options?.clone ? target.slice() : target)
|
|
316
|
+
: <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
|
|
378
317
|
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
this._indexLocked = true;
|
|
318
|
+
const comparator = options?.comparator || DefaultComparator;
|
|
319
|
+
const updater = options?.updater || DefaultUpdater;
|
|
382
320
|
|
|
383
|
-
|
|
384
|
-
|
|
321
|
+
// remove all missing elements
|
|
322
|
+
<span class="missing-if-branch" title="else path not taken" >E</span>if (!options?.additive) {
|
|
323
|
+
for (let i = 0; i < result.length; ++i) {
|
|
324
|
+
if (source.find(item => comparator(item, result[i])) == null) {
|
|
325
|
+
result.splice(i, 1);
|
|
326
|
+
++changed;
|
|
327
|
+
--i;
|
|
385
328
|
}
|
|
386
|
-
} finally {
|
|
387
|
-
this._indexLocked = false;
|
|
388
329
|
}
|
|
389
330
|
}
|
|
390
331
|
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
&
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
332
|
+
// add all new elements and update existing
|
|
333
|
+
source.forEach(i => {
|
|
334
|
+
const existingIndex = result.findIndex(item => comparator(i, item));
|
|
335
|
+
const existingItem = result[existingIndex];
|
|
336
|
+
if (existingIndex < 0) {
|
|
337
|
+
result.push(i);
|
|
338
|
+
++changed;
|
|
339
|
+
} else if (typeof existingItem === 'object') {
|
|
340
|
+
result[existingIndex] = updater(existingItem, i);
|
|
341
|
+
}
|
|
342
|
+
});
|
|
399
343
|
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
if (isSelected) {
|
|
404
|
-
this.index = index;
|
|
405
|
-
}
|
|
406
|
-
});
|
|
407
|
-
});
|
|
408
|
-
return flags;
|
|
344
|
+
const sorter = options?.sorter;
|
|
345
|
+
if (sorter !== null) {
|
|
346
|
+
result.sort(sorter || undefined);
|
|
409
347
|
}
|
|
410
|
-
}
|
|
411
348
|
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
}
|
|
349
|
+
return {
|
|
350
|
+
result,
|
|
351
|
+
changed,
|
|
352
|
+
};
|
|
416
353
|
}
|
|
417
354
|
</pre></td></tr></table></pre>
|
|
418
355
|
|
|
@@ -421,7 +358,7 @@ export class SelectString<T extends string = string> extends Select<T&g
|
|
|
421
358
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
422
359
|
Code coverage generated by
|
|
423
360
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
424
|
-
at
|
|
361
|
+
at Sun Jan 09 2022 16:42:34 GMT+0000 (Coordinated Universal Time)
|
|
425
362
|
</div>
|
|
426
363
|
</div>
|
|
427
364
|
<script src="../../prettify.js"></script>
|
|
@@ -155,7 +155,7 @@
|
|
|
155
155
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
156
156
|
Code coverage generated by
|
|
157
157
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
158
|
-
at
|
|
158
|
+
at Sun Jan 09 2022 16:42:34 GMT+0000 (Coordinated Universal Time)
|
|
159
159
|
</div>
|
|
160
160
|
</div>
|
|
161
161
|
<script src="../prettify.js"></script>
|
|
@@ -139,7 +139,7 @@ export function createLazy<T>(factory: () => T) {
|
|
|
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
|
|
142
|
+
at Sun Jan 09 2022 16:42:34 GMT+0000 (Coordinated Universal Time)
|
|
143
143
|
</div>
|
|
144
144
|
</div>
|
|
145
145
|
<script src="../prettify.js"></script>
|
|
@@ -91,7 +91,7 @@ export function batchLoggers(...loggers: ILogger[]): ILogger {
|
|
|
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 Sun Jan 09 2022 16:42:34 GMT+0000 (Coordinated Universal Time)
|
|
95
95
|
</div>
|
|
96
96
|
</div>
|
|
97
97
|
<script src="../../prettify.js"></script>
|
|
@@ -220,7 +220,7 @@ export class BufferedConsoleLogger implements ILogger {
|
|
|
220
220
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
221
221
|
Code coverage generated by
|
|
222
222
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
223
|
-
at
|
|
223
|
+
at Sun Jan 09 2022 16:42:34 GMT+0000 (Coordinated Universal Time)
|
|
224
224
|
</div>
|
|
225
225
|
</div>
|
|
226
226
|
<script src="../../prettify.js"></script>
|
|
@@ -155,7 +155,7 @@
|
|
|
155
155
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
156
156
|
Code coverage generated by
|
|
157
157
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
158
|
-
at
|
|
158
|
+
at Sun Jan 09 2022 16:42:34 GMT+0000 (Coordinated Universal Time)
|
|
159
159
|
</div>
|
|
160
160
|
</div>
|
|
161
161
|
<script src="../../prettify.js"></script>
|
|
@@ -277,7 +277,7 @@ function _createImplementation(overrideMode: typeof Mode = undefined): ILogger {
|
|
|
277
277
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
278
278
|
Code coverage generated by
|
|
279
279
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
280
|
-
at
|
|
280
|
+
at Sun Jan 09 2022 16:42:34 GMT+0000 (Coordinated Universal Time)
|
|
281
281
|
</div>
|
|
282
282
|
</div>
|
|
283
283
|
<script src="../../prettify.js"></script>
|
|
@@ -205,7 +205,7 @@ export abstract class NamedLogger implements ILogger, ILoggerSwitchable {
|
|
|
205
205
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
206
206
|
Code coverage generated by
|
|
207
207
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
208
|
-
at
|
|
208
|
+
at Sun Jan 09 2022 16:42:34 GMT+0000 (Coordinated Universal Time)
|
|
209
209
|
</div>
|
|
210
210
|
</div>
|
|
211
211
|
<script src="../../prettify.js"></script>
|
|
@@ -151,7 +151,7 @@ export class ProxyLogger extends NamedLogger {
|
|
|
151
151
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
152
152
|
Code coverage generated by
|
|
153
153
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
154
|
-
at
|
|
154
|
+
at Sun Jan 09 2022 16:42:34 GMT+0000 (Coordinated Universal Time)
|
|
155
155
|
</div>
|
|
156
156
|
</div>
|
|
157
157
|
<script src="../../prettify.js"></script>
|
|
@@ -847,7 +847,7 @@ export function arrayRepeat<T>(factory: Getter<T>, count = <span cla
|
|
|
847
847
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
848
848
|
Code coverage generated by
|
|
849
849
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
850
|
-
at
|
|
850
|
+
at Sun Jan 09 2022 16:42:34 GMT+0000 (Coordinated Universal Time)
|
|
851
851
|
</div>
|
|
852
852
|
</div>
|
|
853
853
|
<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">97.37% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>37/38</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.24% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>37/
|
|
35
|
+
<span class='fraction'>37/41</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">87.5% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>7/
|
|
42
|
+
<span class='fraction'>7/8</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">97.14% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>34/35</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -123,7 +123,10 @@
|
|
|
123
123
|
<a name='L64'></a><a href='#L64'>64</a>
|
|
124
124
|
<a name='L65'></a><a href='#L65'>65</a>
|
|
125
125
|
<a name='L66'></a><a href='#L66'>66</a>
|
|
126
|
-
<a name='L67'></a><a href='#L67'>67</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></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
127
130
|
<span class="cline-any cline-yes">7x</span>
|
|
128
131
|
<span class="cline-any cline-yes">13x</span>
|
|
129
132
|
<span class="cline-any cline-yes">3x</span>
|
|
@@ -189,6 +192,9 @@
|
|
|
189
192
|
<span class="cline-any cline-yes">10x</span>
|
|
190
193
|
<span class="cline-any cline-neutral"> </span>
|
|
191
194
|
<span class="cline-any cline-neutral"> </span>
|
|
195
|
+
<span class="cline-any cline-yes">7x</span>
|
|
196
|
+
<span class="cline-any cline-no"> </span>
|
|
197
|
+
<span class="cline-any cline-neutral"> </span>
|
|
192
198
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">
|
|
193
199
|
export function clamp(val: number, min: number = undefined, max: number = undefined, cycle = false) {
|
|
194
200
|
if (min != null && val < min) {
|
|
@@ -255,6 +261,9 @@ export function random(min: number = <span class="branch-0 cbranch-no" title="br
|
|
|
255
261
|
return trunc ? Math.trunc(res) : res;
|
|
256
262
|
}
|
|
257
263
|
|
|
264
|
+
export function <span class="fstat-no" title="function not covered" >badRandomString(</span>length = <span class="branch-0 cbranch-no" title="branch not covered" >12)</span> {
|
|
265
|
+
<span class="cstat-no" title="statement not covered" > return Math.random().toString(26).slice(2, clamp(length, 0, 12));</span>
|
|
266
|
+
}
|
|
258
267
|
</pre></td></tr></table></pre>
|
|
259
268
|
|
|
260
269
|
<div class='push'></div><!-- for sticky footer -->
|
|
@@ -262,7 +271,7 @@ export function random(min: number = <span class="branch-0 cbranch-no" title="br
|
|
|
262
271
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
263
272
|
Code coverage generated by
|
|
264
273
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
265
|
-
at
|
|
274
|
+
at Sun Jan 09 2022 16:42:34 GMT+0000 (Coordinated Universal Time)
|
|
266
275
|
</div>
|
|
267
276
|
</div>
|
|
268
277
|
<script src="../../prettify.js"></script>
|
|
@@ -124,7 +124,7 @@ export function extendDistribution<T extends keyof any>(count: number, typ
|
|
|
124
124
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
125
125
|
Code coverage generated by
|
|
126
126
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
127
|
-
at
|
|
127
|
+
at Sun Jan 09 2022 16:42:34 GMT+0000 (Coordinated Universal Time)
|
|
128
128
|
</div>
|
|
129
129
|
</div>
|
|
130
130
|
<script src="../../prettify.js"></script>
|