@zajno/common 1.3.3 → 1.3.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.
Files changed (64) hide show
  1. package/coverage/clover.xml +41 -41
  2. package/coverage/coverage-final.json +39 -39
  3. package/coverage/lcov-report/NumberModel.ts.html +188 -0
  4. package/coverage/lcov-report/arrays.ts.html +602 -0
  5. package/coverage/lcov-report/calc.ts.html +278 -0
  6. package/coverage/lcov-report/enumHelper.ts.html +449 -0
  7. package/coverage/lcov-report/index.html +1 -1
  8. package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
  9. package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
  10. package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
  11. package/coverage/lcov-report/src/async/index.html +1 -1
  12. package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
  13. package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
  14. package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
  15. package/coverage/lcov-report/src/dates/format.ts.html +1 -1
  16. package/coverage/lcov-report/src/dates/index.html +1 -1
  17. package/coverage/lcov-report/src/dates/index.ts.html +1 -1
  18. package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
  19. package/coverage/lcov-report/src/dates/period.ts.html +1 -1
  20. package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
  21. package/coverage/lcov-report/src/dates/types.ts.html +1 -1
  22. package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
  23. package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
  24. package/coverage/lcov-report/src/event.ts.html +1 -1
  25. package/coverage/lcov-report/src/index.html +1 -1
  26. package/coverage/lcov-report/src/lazy.light.ts.html +1 -1
  27. package/coverage/lcov-report/src/logger/batch.ts.html +1 -1
  28. package/coverage/lcov-report/src/logger/console.ts.html +1 -1
  29. package/coverage/lcov-report/src/logger/index.html +1 -1
  30. package/coverage/lcov-report/src/logger/index.ts.html +1 -1
  31. package/coverage/lcov-report/src/logger/named.ts.html +1 -1
  32. package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
  33. package/coverage/lcov-report/src/math/arrays.ts.html +1 -1
  34. package/coverage/lcov-report/src/math/calc.ts.html +1 -1
  35. package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
  36. package/coverage/lcov-report/src/math/index.html +1 -1
  37. package/coverage/lcov-report/src/math/index.ts.html +1 -1
  38. package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
  39. package/coverage/lcov-report/src/types.ts.html +1 -1
  40. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
  41. package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
  42. package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
  43. package/coverage/lcov-report/src/validation/index.html +1 -1
  44. package/coverage/lcov-report/src/validation/index.ts.html +1 -1
  45. package/coverage/lcov-report/src/validation/types.ts.html +1 -1
  46. package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
  47. package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
  48. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +1 -1
  49. package/coverage/lcov-report/src/viewModels/LabeledFlagModel.ts.html +17 -26
  50. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
  51. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +1 -1
  52. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +1 -1
  53. package/coverage/lcov-report/src/viewModels/SelectViewModel.ts.html +17 -14
  54. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +1 -1
  55. package/coverage/lcov-report/src/viewModels/index.html +1 -1
  56. package/coverage/lcov-report/src/viewModels/labeled.ts.html +128 -0
  57. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
  58. package/coverage/lcov-report/transitionObserver.ts.html +41 -77
  59. package/lib/viewModels/PromptModal.d.ts.map +1 -1
  60. package/lib/viewModels/PromptModal.js +1 -1
  61. package/lib/viewModels/PromptModal.js.map +1 -1
  62. package/package.json +1 -1
  63. package/src/viewModels/PromptModal.ts +1 -1
  64. package/yarn-error.log +0 -3709
@@ -0,0 +1,449 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for enumHelper.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> enumHelper.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'>54/54</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">87.8% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>36/41</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'>25/25</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'>50/50</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>
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>
113
+ <a name='L54'></a><a href='#L54'>54</a>
114
+ <a name='L55'></a><a href='#L55'>55</a>
115
+ <a name='L56'></a><a href='#L56'>56</a>
116
+ <a name='L57'></a><a href='#L57'>57</a>
117
+ <a name='L58'></a><a href='#L58'>58</a>
118
+ <a name='L59'></a><a href='#L59'>59</a>
119
+ <a name='L60'></a><a href='#L60'>60</a>
120
+ <a name='L61'></a><a href='#L61'>61</a>
121
+ <a name='L62'></a><a href='#L62'>62</a>
122
+ <a name='L63'></a><a href='#L63'>63</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>
131
+ <a name='L72'></a><a href='#L72'>72</a>
132
+ <a name='L73'></a><a href='#L73'>73</a>
133
+ <a name='L74'></a><a href='#L74'>74</a>
134
+ <a name='L75'></a><a href='#L75'>75</a>
135
+ <a name='L76'></a><a href='#L76'>76</a>
136
+ <a name='L77'></a><a href='#L77'>77</a>
137
+ <a name='L78'></a><a href='#L78'>78</a>
138
+ <a name='L79'></a><a href='#L79'>79</a>
139
+ <a name='L80'></a><a href='#L80'>80</a>
140
+ <a name='L81'></a><a href='#L81'>81</a>
141
+ <a name='L82'></a><a href='#L82'>82</a>
142
+ <a name='L83'></a><a href='#L83'>83</a>
143
+ <a name='L84'></a><a href='#L84'>84</a>
144
+ <a name='L85'></a><a href='#L85'>85</a>
145
+ <a name='L86'></a><a href='#L86'>86</a>
146
+ <a name='L87'></a><a href='#L87'>87</a>
147
+ <a name='L88'></a><a href='#L88'>88</a>
148
+ <a name='L89'></a><a href='#L89'>89</a>
149
+ <a name='L90'></a><a href='#L90'>90</a>
150
+ <a name='L91'></a><a href='#L91'>91</a>
151
+ <a name='L92'></a><a href='#L92'>92</a>
152
+ <a name='L93'></a><a href='#L93'>93</a>
153
+ <a name='L94'></a><a href='#L94'>94</a>
154
+ <a name='L95'></a><a href='#L95'>95</a>
155
+ <a name='L96'></a><a href='#L96'>96</a>
156
+ <a name='L97'></a><a href='#L97'>97</a>
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>
180
+ <a name='L121'></a><a href='#L121'>121</a>
181
+ <a name='L122'></a><a href='#L122'>122</a>
182
+ <a name='L123'></a><a href='#L123'>123</a>
183
+ <a name='L124'></a><a href='#L124'>124</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
184
+ <span class="cline-any cline-yes">1x</span>
185
+ <span class="cline-any cline-yes">1x</span>
186
+ <span class="cline-any cline-neutral">&nbsp;</span>
187
+ <span class="cline-any cline-neutral">&nbsp;</span>
188
+ <span class="cline-any cline-yes">1x</span>
189
+ <span class="cline-any cline-yes">1x</span>
190
+ <span class="cline-any cline-neutral">&nbsp;</span>
191
+ <span class="cline-any cline-yes">1x</span>
192
+ <span class="cline-any cline-yes">2x</span>
193
+ <span class="cline-any cline-neutral">&nbsp;</span>
194
+ <span class="cline-any cline-yes">2x</span>
195
+ <span class="cline-any cline-neutral">&nbsp;</span>
196
+ <span class="cline-any cline-neutral">&nbsp;</span>
197
+ <span class="cline-any cline-neutral">&nbsp;</span>
198
+ <span class="cline-any cline-yes">1x</span>
199
+ <span class="cline-any cline-neutral">&nbsp;</span>
200
+ <span class="cline-any cline-neutral">&nbsp;</span>
201
+ <span class="cline-any cline-neutral">&nbsp;</span>
202
+ <span class="cline-any cline-neutral">&nbsp;</span>
203
+ <span class="cline-any cline-neutral">&nbsp;</span>
204
+ <span class="cline-any cline-yes">1x</span>
205
+ <span class="cline-any cline-yes">1x</span>
206
+ <span class="cline-any cline-neutral">&nbsp;</span>
207
+ <span class="cline-any cline-neutral">&nbsp;</span>
208
+ <span class="cline-any cline-neutral">&nbsp;</span>
209
+ <span class="cline-any cline-yes">3x</span>
210
+ <span class="cline-any cline-yes">1x</span>
211
+ <span class="cline-any cline-neutral">&nbsp;</span>
212
+ <span class="cline-any cline-yes">3x</span>
213
+ <span class="cline-any cline-yes">2x</span>
214
+ <span class="cline-any cline-neutral">&nbsp;</span>
215
+ <span class="cline-any cline-neutral">&nbsp;</span>
216
+ <span class="cline-any cline-neutral">&nbsp;</span>
217
+ <span class="cline-any cline-neutral">&nbsp;</span>
218
+ <span class="cline-any cline-neutral">&nbsp;</span>
219
+ <span class="cline-any cline-neutral">&nbsp;</span>
220
+ <span class="cline-any cline-neutral">&nbsp;</span>
221
+ <span class="cline-any cline-yes">3x</span>
222
+ <span class="cline-any cline-yes">4x</span>
223
+ <span class="cline-any cline-yes">4x</span>
224
+ <span class="cline-any cline-neutral">&nbsp;</span>
225
+ <span class="cline-any cline-neutral">&nbsp;</span>
226
+ <span class="cline-any cline-yes">4x</span>
227
+ <span class="cline-any cline-yes">4x</span>
228
+ <span class="cline-any cline-neutral">&nbsp;</span>
229
+ <span class="cline-any cline-yes">4x</span>
230
+ <span class="cline-any cline-yes">78x</span>
231
+ <span class="cline-any cline-neutral">&nbsp;</span>
232
+ <span class="cline-any cline-yes">39x</span>
233
+ <span class="cline-any cline-neutral">&nbsp;</span>
234
+ <span class="cline-any cline-neutral">&nbsp;</span>
235
+ <span class="cline-any cline-neutral">&nbsp;</span>
236
+ <span class="cline-any cline-yes">9x</span>
237
+ <span class="cline-any cline-yes">9x</span>
238
+ <span class="cline-any cline-neutral">&nbsp;</span>
239
+ <span class="cline-any cline-neutral">&nbsp;</span>
240
+ <span class="cline-any cline-neutral">&nbsp;</span>
241
+ <span class="cline-any cline-neutral">&nbsp;</span>
242
+ <span class="cline-any cline-neutral">&nbsp;</span>
243
+ <span class="cline-any cline-yes">1x</span>
244
+ <span class="cline-any cline-yes">1x</span>
245
+ <span class="cline-any cline-neutral">&nbsp;</span>
246
+ <span class="cline-any cline-neutral">&nbsp;</span>
247
+ <span class="cline-any cline-neutral">&nbsp;</span>
248
+ <span class="cline-any cline-yes">3x</span>
249
+ <span class="cline-any cline-yes">3x</span>
250
+ <span class="cline-any cline-yes">3x</span>
251
+ <span class="cline-any cline-neutral">&nbsp;</span>
252
+ <span class="cline-any cline-neutral">&nbsp;</span>
253
+ <span class="cline-any cline-neutral">&nbsp;</span>
254
+ <span class="cline-any cline-yes">6x</span>
255
+ <span class="cline-any cline-yes">2x</span>
256
+ <span class="cline-any cline-neutral">&nbsp;</span>
257
+ <span class="cline-any cline-yes">7x</span>
258
+ <span class="cline-any cline-yes">4x</span>
259
+ <span class="cline-any cline-neutral">&nbsp;</span>
260
+ <span class="cline-any cline-neutral">&nbsp;</span>
261
+ <span class="cline-any cline-neutral">&nbsp;</span>
262
+ <span class="cline-any cline-neutral">&nbsp;</span>
263
+ <span class="cline-any cline-neutral">&nbsp;</span>
264
+ <span class="cline-any cline-yes">3x</span>
265
+ <span class="cline-any cline-neutral">&nbsp;</span>
266
+ <span class="cline-any cline-yes">4x</span>
267
+ <span class="cline-any cline-yes">1x</span>
268
+ <span class="cline-any cline-neutral">&nbsp;</span>
269
+ <span class="cline-any cline-neutral">&nbsp;</span>
270
+ <span class="cline-any cline-yes">3x</span>
271
+ <span class="cline-any cline-yes">9x</span>
272
+ <span class="cline-any cline-yes">7x</span>
273
+ <span class="cline-any cline-neutral">&nbsp;</span>
274
+ <span class="cline-any cline-neutral">&nbsp;</span>
275
+ <span class="cline-any cline-neutral">&nbsp;</span>
276
+ <span class="cline-any cline-yes">1x</span>
277
+ <span class="cline-any cline-yes">1x</span>
278
+ <span class="cline-any cline-neutral">&nbsp;</span>
279
+ <span class="cline-any cline-neutral">&nbsp;</span>
280
+ <span class="cline-any cline-neutral">&nbsp;</span>
281
+ <span class="cline-any cline-neutral">&nbsp;</span>
282
+ <span class="cline-any cline-neutral">&nbsp;</span>
283
+ <span class="cline-any cline-yes">14x</span>
284
+ <span class="cline-any cline-neutral">&nbsp;</span>
285
+ <span class="cline-any cline-neutral">&nbsp;</span>
286
+ <span class="cline-any cline-neutral">&nbsp;</span>
287
+ <span class="cline-any cline-yes">3x</span>
288
+ <span class="cline-any cline-yes">3x</span>
289
+ <span class="cline-any cline-yes">5x</span>
290
+ <span class="cline-any cline-neutral">&nbsp;</span>
291
+ <span class="cline-any cline-yes">3x</span>
292
+ <span class="cline-any cline-neutral">&nbsp;</span>
293
+ <span class="cline-any cline-neutral">&nbsp;</span>
294
+ <span class="cline-any cline-neutral">&nbsp;</span>
295
+ <span class="cline-any cline-yes">5x</span>
296
+ <span class="cline-any cline-neutral">&nbsp;</span>
297
+ <span class="cline-any cline-neutral">&nbsp;</span>
298
+ <span class="cline-any cline-neutral">&nbsp;</span>
299
+ <span class="cline-any cline-yes">14x</span>
300
+ <span class="cline-any cline-neutral">&nbsp;</span>
301
+ <span class="cline-any cline-neutral">&nbsp;</span>
302
+ <span class="cline-any cline-neutral">&nbsp;</span>
303
+ <span class="cline-any cline-yes">1x</span>
304
+ <span class="cline-any cline-neutral">&nbsp;</span>
305
+ <span class="cline-any cline-neutral">&nbsp;</span>
306
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">export class EnumStringHelper&lt;T extends string&gt; {
307
+ public readonly Keys: string[] = null;
308
+ public readonly Values: T[] = null;
309
+ &nbsp;
310
+ constructor(
311
+ protected readonly _obj: any,
312
+ private readonly _valuesToStrings: { [val: string]: string } = null,
313
+ ) {
314
+ this.Keys = Object.keys(this._obj)
315
+ .filter(k =&gt; typeof this._obj[k as any] === 'string');
316
+ &nbsp;
317
+ this.Values = this.Keys.map(k =&gt; this._obj[k]);
318
+ }
319
+ &nbsp;
320
+ keyToString(key: string): string {
321
+ return this._valuesToStrings
322
+ ? <span class="branch-0 cbranch-no" title="branch not covered" >this._valuesToStrings[this._obj[key]]</span>
323
+ : key;
324
+ }
325
+ &nbsp;
326
+ valueToString(v: T): string {
327
+ const custom = this._valuesToStrings &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >this._valuesToStrings[v];</span>
328
+ return custom || v;
329
+ }
330
+ &nbsp;
331
+ validateValue(v: string): T | null {
332
+ if (!v) {
333
+ return null;
334
+ }
335
+ const i = this.Values.findIndex(vv =&gt; vv === v);
336
+ return i &gt;= 0
337
+ ? this.Values[i]
338
+ : null;
339
+ }
340
+ }
341
+ &nbsp;
342
+ type ValueToStringMap = { [val: number]: string };
343
+ &nbsp;
344
+ export default class EnumHelper&lt;T extends number&gt; {
345
+ public readonly Keys: string[] = null;
346
+ public readonly Values: T[] = null;
347
+ &nbsp;
348
+ constructor(
349
+ protected readonly _obj: any,
350
+ private readonly _valuesToStrings: ValueToStringMap = null,
351
+ ) {
352
+ this.Keys = Object.keys(this._obj)
353
+ .filter(k =&gt; typeof this._obj[k as any] === 'number');
354
+ &nbsp;
355
+ this.Values = this.Keys.map(k =&gt; this._obj[k]);
356
+ }
357
+ &nbsp;
358
+ keyToString(key: string, overrideMap: ValueToStringMap = null): string {
359
+ const map = overrideMap || this._valuesToStrings;
360
+ return map
361
+ ? map[this._obj[key]]
362
+ : <span class="branch-1 cbranch-no" title="branch not covered" >key;</span>
363
+ }
364
+ &nbsp;
365
+ keyToValue(key: string): T {
366
+ const v = this._obj[key];
367
+ return v == null ? <span class="branch-0 cbranch-no" title="branch not covered" >null </span>: v as T;
368
+ }
369
+ &nbsp;
370
+ valueToString(v: T, overrideMap: ValueToStringMap = null): string {
371
+ const map = overrideMap || this._valuesToStrings;
372
+ const custom = map &amp;&amp; map[v];
373
+ return custom || this._obj[v];
374
+ }
375
+ &nbsp;
376
+ validateValue(v: number): T | null {
377
+ if (v == null || Number.isNaN(v)) {
378
+ return null;
379
+ }
380
+ const i = this.Values.findIndex(vv =&gt; vv === v);
381
+ return i &gt;= 0
382
+ ? this.Values[i]
383
+ : null;
384
+ }
385
+ }
386
+ &nbsp;
387
+ export class EnumBitwiseHelper&lt;T extends number&gt; extends EnumHelper&lt;T&gt; {
388
+ toStrings(value: T, overrideMap: ValueToStringMap = null): string[] {
389
+ if (value == 0) {
390
+ return [this.valueToString(value, overrideMap)];
391
+ }
392
+ &nbsp;
393
+ return this.Keys
394
+ .filter(k =&gt; this._obj[k] &amp;&amp; this.contains(value, this._obj[k]))
395
+ .map(k =&gt; this.keyToString(k, overrideMap));
396
+ }
397
+ &nbsp;
398
+ toString(value: T, separator = ', ', overrideMap: ValueToStringMap = null): string {
399
+ const strs = this.toStrings(value, overrideMap);
400
+ return strs.length === 0
401
+ ? <span class="branch-0 cbranch-no" title="branch not covered" >this._obj[0]</span>
402
+ : strs.join(separator);
403
+ }
404
+ &nbsp;
405
+ contains(base: T, target: T) {
406
+ return this.intersection(base, target) === target;
407
+ }
408
+ &nbsp;
409
+ combine(...values: T[]) {
410
+ let res = 0;
411
+ values.forEach(v =&gt; {
412
+ res = this.add(res as T, v);
413
+ });
414
+ return res;
415
+ }
416
+ &nbsp;
417
+ add(value: T, other: T) {
418
+ return value | other;
419
+ }
420
+ &nbsp;
421
+ intersection(v1: T, v2: T) {
422
+ return v1 &amp; v2;
423
+ }
424
+ &nbsp;
425
+ remove(value: T, other: T) {
426
+ return value &amp; ~other;
427
+ }
428
+ }
429
+ &nbsp;</pre></td></tr></table></pre>
430
+
431
+ <div class='push'></div><!-- for sticky footer -->
432
+ </div><!-- /wrapper -->
433
+ <div class='footer quiet pad2 space-top1 center small'>
434
+ Code coverage generated by
435
+ <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
436
+ at Mon Nov 01 2021 21:27:30 GMT+0000 (Coordinated Universal Time)
437
+ </div>
438
+ </div>
439
+ <script src="prettify.js"></script>
440
+ <script>
441
+ window.onload = function () {
442
+ prettyPrint();
443
+ };
444
+ </script>
445
+ <script src="sorter.js"></script>
446
+ <script src="block-navigation.js"></script>
447
+ </body>
448
+ </html>
449
+
@@ -200,7 +200,7 @@
200
200
  <div class='footer quiet pad2 space-top1 center small'>
201
201
  Code coverage generated by
202
202
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
203
- at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
203
+ at Tue Nov 30 2021 14:08:10 GMT+0000 (Coordinated Universal Time)
204
204
  </div>
205
205
  </div>
206
206
  <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 Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
98
+ at Tue Nov 30 2021 14:08:10 GMT+0000 (Coordinated Universal Time)
99
99
  </div>
100
100
  </div>
101
101
  <script src="../../../prettify.js"></script>
@@ -100,7 +100,7 @@ export const toArbitrary = (fakerGen) =&gt; {
100
100
  <div class='footer quiet pad2 space-top1 center small'>
101
101
  Code coverage generated by
102
102
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
103
- at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
103
+ at Tue Nov 30 2021 14:08:10 GMT+0000 (Coordinated Universal Time)
104
104
  </div>
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
@@ -178,7 +178,7 @@ export async function <span class="fstat-no" title="function not covered" >mapAs
178
178
  <div class='footer quiet pad2 space-top1 center small'>
179
179
  Code coverage generated by
180
180
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
181
- at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
181
+ at Tue Nov 30 2021 14:08:10 GMT+0000 (Coordinated Universal Time)
182
182
  </div>
183
183
  </div>
184
184
  <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 Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
98
+ at Tue Nov 30 2021 14:08:10 GMT+0000 (Coordinated Universal Time)
99
99
  </div>
100
100
  </div>
101
101
  <script src="../../prettify.js"></script>
@@ -280,7 +280,7 @@ export function clamp(d: Date, low: Date, high: Date) {
280
280
  <div class='footer quiet pad2 space-top1 center small'>
281
281
  Code coverage generated by
282
282
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
283
- at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
283
+ at Tue Nov 30 2021 14:08:10 GMT+0000 (Coordinated Universal Time)
284
284
  </div>
285
285
  </div>
286
286
  <script src="../../prettify.js"></script>
@@ -670,7 +670,7 @@ export function getDaysStreak(dates: number[], descentOrder: boolean): number {
670
670
  <div class='footer quiet pad2 space-top1 center small'>
671
671
  Code coverage generated by
672
672
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
673
- at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
673
+ at Tue Nov 30 2021 14:08:10 GMT+0000 (Coordinated Universal Time)
674
674
  </div>
675
675
  </div>
676
676
  <script src="../../prettify.js"></script>
@@ -190,7 +190,7 @@ export namespace DateX {
190
190
  <div class='footer quiet pad2 space-top1 center small'>
191
191
  Code coverage generated by
192
192
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
193
- at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
193
+ at Tue Nov 30 2021 14:08:10 GMT+0000 (Coordinated Universal Time)
194
194
  </div>
195
195
  </div>
196
196
  <script src="../../prettify.js"></script>
@@ -379,7 +379,7 @@ export namespace Format {
379
379
  <div class='footer quiet pad2 space-top1 center small'>
380
380
  Code coverage generated by
381
381
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
382
- at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
382
+ at Tue Nov 30 2021 14:08:10 GMT+0000 (Coordinated Universal Time)
383
383
  </div>
384
384
  </div>
385
385
  <script src="../../prettify.js"></script>
@@ -230,7 +230,7 @@
230
230
  <div class='footer quiet pad2 space-top1 center small'>
231
231
  Code coverage generated by
232
232
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
233
- at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
233
+ at Tue Nov 30 2021 14:08:10 GMT+0000 (Coordinated Universal Time)
234
234
  </div>
235
235
  </div>
236
236
  <script src="../../prettify.js"></script>
@@ -91,7 +91,7 @@ export * from './yearDate';
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 Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
94
+ at Tue Nov 30 2021 14:08:10 GMT+0000 (Coordinated Universal Time)
95
95
  </div>
96
96
  </div>
97
97
  <script src="../../prettify.js"></script>
@@ -100,7 +100,7 @@ export namespace Parse {
100
100
  <div class='footer quiet pad2 space-top1 center small'>
101
101
  Code coverage generated by
102
102
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
103
- at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
103
+ at Tue Nov 30 2021 14:08:10 GMT+0000 (Coordinated Universal Time)
104
104
  </div>
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
@@ -133,7 +133,7 @@ export namespace Period {
133
133
  <div class='footer quiet pad2 space-top1 center small'>
134
134
  Code coverage generated by
135
135
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
136
- at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
136
+ at Tue Nov 30 2021 14:08:10 GMT+0000 (Coordinated Universal Time)
137
137
  </div>
138
138
  </div>
139
139
  <script src="../../prettify.js"></script>
@@ -334,7 +334,7 @@ export function isSame(d1: Date | number, d2: Date | number, g: Granularity, loc
334
334
  <div class='footer quiet pad2 space-top1 center small'>
335
335
  Code coverage generated by
336
336
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
337
- at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
337
+ at Tue Nov 30 2021 14:08:10 GMT+0000 (Coordinated Universal Time)
338
338
  </div>
339
339
  </div>
340
340
  <script src="../../prettify.js"></script>
@@ -160,7 +160,7 @@ export namespace ConstantGranularity {
160
160
  <div class='footer quiet pad2 space-top1 center small'>
161
161
  Code coverage generated by
162
162
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
163
- at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
163
+ at Tue Nov 30 2021 14:08:10 GMT+0000 (Coordinated Universal Time)
164
164
  </div>
165
165
  </div>
166
166
  <script src="../../prettify.js"></script>
@@ -172,7 +172,7 @@ export namespace YearDate {
172
172
  <div class='footer quiet pad2 space-top1 center small'>
173
173
  Code coverage generated by
174
174
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
175
- at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
175
+ at Tue Nov 30 2021 14:08:10 GMT+0000 (Coordinated Universal Time)
176
176
  </div>
177
177
  </div>
178
178
  <script src="../../prettify.js"></script>
@@ -433,7 +433,7 @@ export class EnumBitwiseHelper&lt;T extends number&gt; extends EnumHelper&lt;T&g
433
433
  <div class='footer quiet pad2 space-top1 center small'>
434
434
  Code coverage generated by
435
435
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
436
- at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
436
+ at Tue Nov 30 2021 14:08:10 GMT+0000 (Coordinated Universal Time)
437
437
  </div>
438
438
  </div>
439
439
  <script src="../prettify.js"></script>
@@ -262,7 +262,7 @@ export class Event&lt;T = any&gt; implements IEvent&lt;T&gt; {
262
262
  <div class='footer quiet pad2 space-top1 center small'>
263
263
  Code coverage generated by
264
264
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
265
- at Mon Nov 29 2021 14:39:58 GMT+0000 (Coordinated Universal Time)
265
+ at Tue Nov 30 2021 14:08:10 GMT+0000 (Coordinated Universal Time)
266
266
  </div>
267
267
  </div>
268
268
  <script src="../prettify.js"></script>