@zajno/common 1.4.8 → 1.4.11

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 (104) hide show
  1. package/coverage/clover.xml +52 -52
  2. package/coverage/coverage-final.json +46 -46
  3. package/coverage/lcov-report/index.html +1 -1
  4. package/coverage/lcov-report/src/__tests__/helpers/index.html +1 -1
  5. package/coverage/lcov-report/src/__tests__/helpers/main.ts.html +1 -1
  6. package/coverage/lcov-report/src/async/arrays.ts.html +1 -1
  7. package/coverage/lcov-report/src/async/index.html +1 -1
  8. package/coverage/lcov-report/src/async/timeout.ts.html +1 -1
  9. package/coverage/lcov-report/src/cache.ts.html +1 -1
  10. package/coverage/lcov-report/src/dates/calc.ts.html +1 -1
  11. package/coverage/lcov-report/src/dates/convert.ts.html +1 -1
  12. package/coverage/lcov-report/src/dates/datex.ts.html +1 -1
  13. package/coverage/lcov-report/src/dates/format.ts.html +1 -1
  14. package/coverage/lcov-report/src/dates/index.html +1 -1
  15. package/coverage/lcov-report/src/dates/index.ts.html +1 -1
  16. package/coverage/lcov-report/src/dates/parse.ts.html +1 -1
  17. package/coverage/lcov-report/src/dates/period.ts.html +1 -1
  18. package/coverage/lcov-report/src/dates/shift.ts.html +1 -1
  19. package/coverage/lcov-report/src/dates/types.ts.html +1 -1
  20. package/coverage/lcov-report/src/dates/yearDate.ts.html +1 -1
  21. package/coverage/lcov-report/src/disposer.ts.html +1 -1
  22. package/coverage/lcov-report/src/enumHelper.ts.html +1 -1
  23. package/coverage/lcov-report/src/event.ts.html +4 -7
  24. package/coverage/lcov-report/src/fields/index.html +1 -1
  25. package/coverage/lcov-report/src/fields/update.ts.html +1 -1
  26. package/coverage/lcov-report/src/functions.ts.html +1 -1
  27. package/coverage/lcov-report/src/index.html +1 -1
  28. package/coverage/lcov-report/src/lazy.light.ts.html +1 -1
  29. package/coverage/lcov-report/src/logger/batch.ts.html +1 -1
  30. package/coverage/lcov-report/src/logger/console.ts.html +1 -1
  31. package/coverage/lcov-report/src/logger/index.html +1 -1
  32. package/coverage/lcov-report/src/logger/index.ts.html +1 -1
  33. package/coverage/lcov-report/src/logger/named.ts.html +1 -1
  34. package/coverage/lcov-report/src/logger/proxy.ts.html +1 -1
  35. package/coverage/lcov-report/src/math/arrays.ts.html +1 -1
  36. package/coverage/lcov-report/src/math/calc.ts.html +1 -1
  37. package/coverage/lcov-report/src/math/distribution.ts.html +1 -1
  38. package/coverage/lcov-report/src/math/index.html +1 -1
  39. package/coverage/lcov-report/src/math/index.ts.html +1 -1
  40. package/coverage/lcov-report/src/observers.ts.html +368 -0
  41. package/coverage/lcov-report/src/observersMap.ts.html +1 -1
  42. package/coverage/lcov-report/src/observingCache.ts.html +1 -1
  43. package/coverage/lcov-report/src/transitionObserver.ts.html +1 -1
  44. package/coverage/lcov-report/src/types.ts.html +1 -1
  45. package/coverage/lcov-report/src/validation/ValidationErrors.ts.html +1 -1
  46. package/coverage/lcov-report/src/validation/creditCard.ts.html +1 -1
  47. package/coverage/lcov-report/src/validation/helpers.ts.html +1 -1
  48. package/coverage/lcov-report/src/validation/index.html +1 -1
  49. package/coverage/lcov-report/src/validation/index.ts.html +1 -1
  50. package/coverage/lcov-report/src/validation/types.ts.html +1 -1
  51. package/coverage/lcov-report/src/validation/validators.ts.html +1 -1
  52. package/coverage/lcov-report/src/validation/wrappers.ts.html +1 -1
  53. package/coverage/lcov-report/src/viewModels/FlagModel.ts.html +1 -1
  54. package/coverage/lcov-report/src/viewModels/MultiSelectModel.ts.html +1 -1
  55. package/coverage/lcov-report/src/viewModels/NumberModel.ts.html +1 -1
  56. package/coverage/lcov-report/src/viewModels/SelectModel.ts.html +1 -1
  57. package/coverage/lcov-report/src/viewModels/Validatable.ts.html +1 -1
  58. package/coverage/lcov-report/src/viewModels/index.html +1 -1
  59. package/coverage/lcov-report/src/viewModels/wrappers.ts.html +1 -1
  60. package/coverage/lcov-report/update.ts.html +374 -0
  61. package/coverage/lcov.info +6 -6
  62. package/lib/event.d.ts +1 -1
  63. package/lib/event.d.ts.map +1 -1
  64. package/lib/event.js.map +1 -1
  65. package/lib/services/localization/LocalaziedValidationErrors.d.ts +9 -0
  66. package/lib/services/localization/LocalaziedValidationErrors.d.ts.map +1 -0
  67. package/lib/services/localization/LocalaziedValidationErrors.js +27 -0
  68. package/lib/services/localization/LocalaziedValidationErrors.js.map +1 -0
  69. package/lib/services/localization/LocalizationManager.d.ts +5 -8
  70. package/lib/services/localization/LocalizationManager.d.ts.map +1 -1
  71. package/lib/services/localization/LocalizationManager.js +25 -18
  72. package/lib/services/localization/LocalizationManager.js.map +1 -1
  73. package/lib/services/localization/abstractions.d.ts +12 -0
  74. package/lib/services/localization/abstractions.d.ts.map +1 -0
  75. package/lib/services/localization/abstractions.js +3 -0
  76. package/lib/services/localization/abstractions.js.map +1 -0
  77. package/lib/services/localization/index.d.ts +5 -0
  78. package/lib/services/localization/index.d.ts.map +1 -0
  79. package/lib/services/localization/index.js +10 -0
  80. package/lib/services/localization/index.js.map +1 -0
  81. package/lib/throttledEvent.d.ts +1 -1
  82. package/lib/throttledEvent.d.ts.map +1 -1
  83. package/lib/validation/ValidationErrorsLocalization.d.ts +27 -0
  84. package/lib/validation/ValidationErrorsLocalization.d.ts.map +1 -0
  85. package/lib/validation/ValidationErrorsLocalization.js +26 -0
  86. package/lib/validation/ValidationErrorsLocalization.js.map +1 -0
  87. package/package.json +1 -1
  88. package/src/event.ts +2 -3
  89. package/src/services/localization/LocalaziedValidationErrors.ts +18 -0
  90. package/src/services/localization/LocalizationManager.ts +23 -22
  91. package/src/services/localization/abstractions.ts +16 -0
  92. package/src/services/localization/index.ts +6 -0
  93. package/src/throttledEvent.ts +1 -1
  94. package/src/{services/localization/validationErrorsStrings.ts → validation/ValidationErrorsLocalization.ts} +7 -5
  95. package/yarn-error.log +3709 -0
  96. package/lib/services/localization/ILocalization.d.ts +0 -32
  97. package/lib/services/localization/ILocalization.d.ts.map +0 -1
  98. package/lib/services/localization/ILocalization.js +0 -16
  99. package/lib/services/localization/ILocalization.js.map +0 -1
  100. package/lib/services/localization/validationErrorsStrings.d.ts +0 -6
  101. package/lib/services/localization/validationErrorsStrings.d.ts.map +0 -1
  102. package/lib/services/localization/validationErrorsStrings.js +0 -24
  103. package/lib/services/localization/validationErrorsStrings.js.map +0 -1
  104. package/src/services/localization/ILocalization.ts +0 -17
@@ -0,0 +1,368 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/observers.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</a> observers.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">64% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>32/50</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">53.13% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>17/32</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">66.67% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>6/9</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">65.96% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>31/47</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 medium'></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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
157
+ <span class="cline-any cline-yes">1x</span>
158
+ <span class="cline-any cline-neutral">&nbsp;</span>
159
+ <span class="cline-any cline-neutral">&nbsp;</span>
160
+ <span class="cline-any cline-neutral">&nbsp;</span>
161
+ <span class="cline-any cline-yes">1x</span>
162
+ <span class="cline-any cline-neutral">&nbsp;</span>
163
+ <span class="cline-any cline-yes">2x</span>
164
+ <span class="cline-any cline-neutral">&nbsp;</span>
165
+ <span class="cline-any cline-yes">2x</span>
166
+ <span class="cline-any cline-neutral">&nbsp;</span>
167
+ <span class="cline-any cline-yes">2x</span>
168
+ <span class="cline-any cline-neutral">&nbsp;</span>
169
+ <span class="cline-any cline-yes">2x</span>
170
+ <span class="cline-any cline-yes">2x</span>
171
+ <span class="cline-any cline-neutral">&nbsp;</span>
172
+ <span class="cline-any cline-neutral">&nbsp;</span>
173
+ <span class="cline-any cline-neutral">&nbsp;</span>
174
+ <span class="cline-any cline-yes">2x</span>
175
+ <span class="cline-any cline-neutral">&nbsp;</span>
176
+ <span class="cline-any cline-neutral">&nbsp;</span>
177
+ <span class="cline-any cline-neutral">&nbsp;</span>
178
+ <span class="cline-any cline-no">&nbsp;</span>
179
+ <span class="cline-any cline-neutral">&nbsp;</span>
180
+ <span class="cline-any cline-neutral">&nbsp;</span>
181
+ <span class="cline-any cline-neutral">&nbsp;</span>
182
+ <span class="cline-any cline-yes">1x</span>
183
+ <span class="cline-any cline-no">&nbsp;</span>
184
+ <span class="cline-any cline-no">&nbsp;</span>
185
+ <span class="cline-any cline-neutral">&nbsp;</span>
186
+ <span class="cline-any cline-neutral">&nbsp;</span>
187
+ <span class="cline-any cline-yes">1x</span>
188
+ <span class="cline-any cline-yes">1x</span>
189
+ <span class="cline-any cline-neutral">&nbsp;</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">1x</span>
193
+ <span class="cline-any cline-neutral">&nbsp;</span>
194
+ <span class="cline-any cline-yes">1x</span>
195
+ <span class="cline-any cline-neutral">&nbsp;</span>
196
+ <span class="cline-any cline-yes">1x</span>
197
+ <span class="cline-any cline-no">&nbsp;</span>
198
+ <span class="cline-any cline-neutral">&nbsp;</span>
199
+ <span class="cline-any cline-neutral">&nbsp;</span>
200
+ <span class="cline-any cline-yes">1x</span>
201
+ <span class="cline-any cline-yes">1x</span>
202
+ <span class="cline-any cline-neutral">&nbsp;</span>
203
+ <span class="cline-any cline-yes">1x</span>
204
+ <span class="cline-any cline-no">&nbsp;</span>
205
+ <span class="cline-any cline-neutral">&nbsp;</span>
206
+ <span class="cline-any cline-yes">1x</span>
207
+ <span class="cline-any cline-yes">1x</span>
208
+ <span class="cline-any cline-neutral">&nbsp;</span>
209
+ <span class="cline-any cline-neutral">&nbsp;</span>
210
+ <span class="cline-any cline-no">&nbsp;</span>
211
+ <span class="cline-any cline-no">&nbsp;</span>
212
+ <span class="cline-any cline-no">&nbsp;</span>
213
+ <span class="cline-any cline-no">&nbsp;</span>
214
+ <span class="cline-any cline-no">&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-yes">1x</span>
220
+ <span class="cline-any cline-yes">1x</span>
221
+ <span class="cline-any cline-no">&nbsp;</span>
222
+ <span class="cline-any cline-no">&nbsp;</span>
223
+ <span class="cline-any cline-neutral">&nbsp;</span>
224
+ <span class="cline-any cline-neutral">&nbsp;</span>
225
+ <span class="cline-any cline-yes">1x</span>
226
+ <span class="cline-any cline-neutral">&nbsp;</span>
227
+ <span class="cline-any cline-no">&nbsp;</span>
228
+ <span class="cline-any cline-neutral">&nbsp;</span>
229
+ <span class="cline-any cline-neutral">&nbsp;</span>
230
+ <span class="cline-any cline-yes">1x</span>
231
+ <span class="cline-any cline-no">&nbsp;</span>
232
+ <span class="cline-any cline-no">&nbsp;</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-neutral">&nbsp;</span>
237
+ <span class="cline-any cline-yes">2x</span>
238
+ <span class="cline-any cline-yes">1x</span>
239
+ <span class="cline-any cline-neutral">&nbsp;</span>
240
+ <span class="cline-any cline-yes">2x</span>
241
+ <span class="cline-any cline-neutral">&nbsp;</span>
242
+ <span class="cline-any cline-yes">2x</span>
243
+ <span class="cline-any cline-no">&nbsp;</span>
244
+ <span class="cline-any cline-neutral">&nbsp;</span>
245
+ <span class="cline-any cline-yes">2x</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-neutral">&nbsp;</span>
249
+ <span class="cline-any cline-yes">2x</span>
250
+ <span class="cline-any cline-neutral">&nbsp;</span>
251
+ <span class="cline-any cline-neutral">&nbsp;</span>
252
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { createLogger, ILogger } from './logger';
253
+ import { combineDisposers, IDisposable } from './disposer';
254
+ &nbsp;
255
+ type Unsub = () =&gt; void;
256
+ &nbsp;
257
+ export class Observers implements IDisposable {
258
+ /** Unsusbcrobers map: key =&gt; unsub fn */
259
+ private readonly _map = new Map&lt;string, () =&gt; void&gt;();
260
+ /** Timeouts map: key =&gt; timeout handle */
261
+ private readonly _timeouts = new Map&lt;string, any&gt;();
262
+ &nbsp;
263
+ private readonly _logger: ILogger = null;
264
+ &nbsp;
265
+ constructor(readonly subscribe: null | ((key: string) =&gt; Promise&lt;Unsub[]&gt;), readonly name?: string) {
266
+ this._logger = createLogger(`[Observers:${this.name || '?'}]`);
267
+ }
268
+ &nbsp;
269
+ public getIsObserving(key: string) {
270
+ return this._map.has(key);
271
+ }
272
+ &nbsp;
273
+ public <span class="fstat-no" title="function not covered" >getHasObserveTimeout(</span>key: string) {
274
+ <span class="cstat-no" title="statement not covered" > return this.getIsObserving(key) &amp;&amp; this._timeouts.has(key);</span>
275
+ }
276
+ &nbsp;
277
+ public async enable(key: string, enable: boolean, clearAfter: number = <span class="branch-0 cbranch-no" title="branch not covered" >null,</span> existingUnsubs: Unsub[] = <span class="branch-0 cbranch-no" title="branch not covered" >null)</span> {
278
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (enable === this.getIsObserving(key)) {
279
+ <span class="cstat-no" title="statement not covered" > this.refreshTimeout(key, enable, clearAfter, true);</span>
280
+ <span class="cstat-no" title="statement not covered" > return;</span>
281
+ }
282
+ &nbsp;
283
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (enable) {
284
+ this._logger.log('Adding observer for key =', key, clearAfter ? <span class="branch-0 cbranch-no" title="branch not covered" >`, clearAfter = ${clearAfter}` </span>: '');
285
+ &nbsp;
286
+ // this marker will help to determine whether unsubscribe was requested while we were in process of subscribing
287
+ let disabed = false;
288
+ const marker = <span class="fstat-no" title="function not covered" >() =</span>&gt; { <span class="cstat-no" title="statement not covered" >disabed = true; </span>};
289
+ &nbsp;
290
+ this._map.set(key, marker);
291
+ &nbsp;
292
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.subscribe &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >!existingUnsubs)</span> {
293
+ <span class="cstat-no" title="statement not covered" > throw new Error('Neither subscribe function nor existingUnsubs has been configured');</span>
294
+ }
295
+ &nbsp;
296
+ const unsubs = existingUnsubs || <span class="branch-1 cbranch-no" title="branch not covered" >await this.subscribe(key);</span>
297
+ const result = combineDisposers(...unsubs);
298
+ &nbsp;
299
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (disabed) { // unsubscribe was requested
300
+ <span class="cstat-no" title="statement not covered" > result();</span>
301
+ } else {
302
+ this._map.set(key, result);
303
+ this.refreshTimeout(key, true, clearAfter);
304
+ }
305
+ } else {
306
+ <span class="cstat-no" title="statement not covered" > this._logger.log('Removing observer for key =', key);</span>
307
+ <span class="cstat-no" title="statement not covered" > this.refreshTimeout(key, false);</span>
308
+ const unsub = <span class="cstat-no" title="statement not covered" >this._map.get(key);</span>
309
+ <span class="cstat-no" title="statement not covered" > this._map.delete(key);</span>
310
+ <span class="cstat-no" title="statement not covered" > unsub();</span>
311
+ }
312
+ }
313
+ &nbsp;
314
+ private refreshTimeout(key: string, enable: boolean, timeout?: number, refresh = false) {
315
+ const current = this._timeouts.get(key);
316
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (current) {
317
+ <span class="cstat-no" title="statement not covered" > clearTimeout(current);</span>
318
+ <span class="cstat-no" title="statement not covered" > this._timeouts.delete(key);</span>
319
+ }
320
+ &nbsp;
321
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (enable &amp;&amp; refresh &amp;&amp; <span class="branch-2 cbranch-no" title="branch not covered" >current == null)</span> {
322
+ // DO NOT setup new timeout because it's not intended to clear subscribtion if it was previously enabled for long term
323
+ <span class="cstat-no" title="statement not covered" > return;</span>
324
+ }
325
+ &nbsp;
326
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (enable &amp;&amp; timeout) {
327
+ const t = <span class="cstat-no" title="statement not covered" >setTimeout(<span class="fstat-no" title="function not covered" >() =</span>&gt; <span class="cstat-no" title="statement not covered" >this.enable(key, false),</span> timeout);</span>
328
+ <span class="cstat-no" title="statement not covered" > this._timeouts.set(key, t);</span>
329
+ }
330
+ }
331
+ &nbsp;
332
+ public clear() {
333
+ for (const u of this._map.values()) {
334
+ u();
335
+ }
336
+ this._map.clear();
337
+ &nbsp;
338
+ for (const t of this._timeouts.values()) {
339
+ <span class="cstat-no" title="statement not covered" > clearTimeout(t);</span>
340
+ }
341
+ this._timeouts.clear();
342
+ }
343
+ &nbsp;
344
+ public dispose() {
345
+ this.clear();
346
+ }
347
+ }
348
+ &nbsp;</pre></td></tr></table></pre>
349
+
350
+ <div class='push'></div><!-- for sticky footer -->
351
+ </div><!-- /wrapper -->
352
+ <div class='footer quiet pad2 space-top1 center small'>
353
+ Code coverage generated by
354
+ <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
355
+ at Wed Feb 09 2022 20:26:52 GMT+0000 (Coordinated Universal Time)
356
+ </div>
357
+ </div>
358
+ <script src="../prettify.js"></script>
359
+ <script>
360
+ window.onload = function () {
361
+ prettyPrint();
362
+ };
363
+ </script>
364
+ <script src="../sorter.js"></script>
365
+ <script src="../block-navigation.js"></script>
366
+ </body>
367
+ </html>
368
+
@@ -379,7 +379,7 @@ export class ObserversMap implements IDisposable {
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 Sat Mar 12 2022 17:41:25 GMT+0000 (Coordinated Universal Time)
382
+ at Sun Mar 13 2022 20:42:00 GMT+0000 (Coordinated Universal Time)
383
383
  </div>
384
384
  </div>
385
385
  <script src="../prettify.js"></script>
@@ -514,7 +514,7 @@ function firstDefined&lt;T&gt;(...values: (T | undefined)[]) {
514
514
  <div class='footer quiet pad2 space-top1 center small'>
515
515
  Code coverage generated by
516
516
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
517
- at Sat Mar 12 2022 17:41:25 GMT+0000 (Coordinated Universal Time)
517
+ at Sun Mar 13 2022 20:42:00 GMT+0000 (Coordinated Universal Time)
518
518
  </div>
519
519
  </div>
520
520
  <script src="../prettify.js"></script>
@@ -613,7 +613,7 @@ export function <span class="fstat-no" title="function not covered" >waitFor&lt;
613
613
  <div class='footer quiet pad2 space-top1 center small'>
614
614
  Code coverage generated by
615
615
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
616
- at Sat Mar 12 2022 17:41:25 GMT+0000 (Coordinated Universal Time)
616
+ at Sun Mar 13 2022 20:42:00 GMT+0000 (Coordinated Universal Time)
617
617
  </div>
618
618
  </div>
619
619
  <script src="../prettify.js"></script>
@@ -154,7 +154,7 @@ export type TypedKeys&lt;T extends Object, K&gt; = {
154
154
  <div class='footer quiet pad2 space-top1 center small'>
155
155
  Code coverage generated by
156
156
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
157
- at Sat Mar 12 2022 17:41:25 GMT+0000 (Coordinated Universal Time)
157
+ at Sun Mar 13 2022 20:42:00 GMT+0000 (Coordinated Universal Time)
158
158
  </div>
159
159
  </div>
160
160
  <script src="../prettify.js"></script>
@@ -142,7 +142,7 @@ export namespace <span class="branch-1 cbranch-no" title="branch not covered" >V
142
142
  <div class='footer quiet pad2 space-top1 center small'>
143
143
  Code coverage generated by
144
144
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
145
- at Sat Mar 12 2022 17:41:25 GMT+0000 (Coordinated Universal Time)
145
+ at Sun Mar 13 2022 20:42:00 GMT+0000 (Coordinated Universal Time)
146
146
  </div>
147
147
  </div>
148
148
  <script src="../../prettify.js"></script>
@@ -139,7 +139,7 @@ export default {
139
139
  <div class='footer quiet pad2 space-top1 center small'>
140
140
  Code coverage generated by
141
141
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
142
- at Sat Mar 12 2022 17:41:25 GMT+0000 (Coordinated Universal Time)
142
+ at Sun Mar 13 2022 20:42:00 GMT+0000 (Coordinated Universal Time)
143
143
  </div>
144
144
  </div>
145
145
  <script src="../../prettify.js"></script>
@@ -208,7 +208,7 @@ export function <span class="fstat-no" title="function not covered" >validateObj
208
208
  <div class='footer quiet pad2 space-top1 center small'>
209
209
  Code coverage generated by
210
210
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
211
- at Sat Mar 12 2022 17:41:25 GMT+0000 (Coordinated Universal Time)
211
+ at Sun Mar 13 2022 20:42:00 GMT+0000 (Coordinated Universal Time)
212
212
  </div>
213
213
  </div>
214
214
  <script src="../../prettify.js"></script>
@@ -185,7 +185,7 @@
185
185
  <div class='footer quiet pad2 space-top1 center small'>
186
186
  Code coverage generated by
187
187
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
188
- at Sat Mar 12 2022 17:41:25 GMT+0000 (Coordinated Universal Time)
188
+ at Sun Mar 13 2022 20:42:00 GMT+0000 (Coordinated Universal Time)
189
189
  </div>
190
190
  </div>
191
191
  <script src="../../prettify.js"></script>
@@ -91,7 +91,7 @@ export * from './helpers';
91
91
  <div class='footer quiet pad2 space-top1 center small'>
92
92
  Code coverage generated by
93
93
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
94
- at Sat Mar 12 2022 17:41:25 GMT+0000 (Coordinated Universal Time)
94
+ at Sun Mar 13 2022 20:42:00 GMT+0000 (Coordinated Universal Time)
95
95
  </div>
96
96
  </div>
97
97
  <script src="../../prettify.js"></script>
@@ -109,7 +109,7 @@ export class ValidationError&lt;TErrors = ValidationErrors&gt; extends Error {
109
109
  <div class='footer quiet pad2 space-top1 center small'>
110
110
  Code coverage generated by
111
111
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
112
- at Sat Mar 12 2022 17:41:25 GMT+0000 (Coordinated Universal Time)
112
+ at Sun Mar 13 2022 20:42:00 GMT+0000 (Coordinated Universal Time)
113
113
  </div>
114
114
  </div>
115
115
  <script src="../../prettify.js"></script>
@@ -229,7 +229,7 @@ export const Validators = {
229
229
  <div class='footer quiet pad2 space-top1 center small'>
230
230
  Code coverage generated by
231
231
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
232
- at Sat Mar 12 2022 17:41:25 GMT+0000 (Coordinated Universal Time)
232
+ at Sun Mar 13 2022 20:42:00 GMT+0000 (Coordinated Universal Time)
233
233
  </div>
234
234
  </div>
235
235
  <script src="../../prettify.js"></script>
@@ -142,7 +142,7 @@ export const Wrappers = {
142
142
  <div class='footer quiet pad2 space-top1 center small'>
143
143
  Code coverage generated by
144
144
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
145
- at Sat Mar 12 2022 17:41:25 GMT+0000 (Coordinated Universal Time)
145
+ at Sun Mar 13 2022 20:42:00 GMT+0000 (Coordinated Universal Time)
146
146
  </div>
147
147
  </div>
148
148
  <script src="../../prettify.js"></script>
@@ -253,7 +253,7 @@ export class FlagModel implements IFlagModel, IFlagModelReadonly {
253
253
  <div class='footer quiet pad2 space-top1 center small'>
254
254
  Code coverage generated by
255
255
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
256
- at Sat Mar 12 2022 17:41:25 GMT+0000 (Coordinated Universal Time)
256
+ at Sun Mar 13 2022 20:42:00 GMT+0000 (Coordinated Universal Time)
257
257
  </div>
258
258
  </div>
259
259
  <script src="../../prettify.js"></script>
@@ -568,7 +568,7 @@ export class MultiSelectString&lt;T extends string = string&gt; extends MultiSel
568
568
  <div class='footer quiet pad2 space-top1 center small'>
569
569
  Code coverage generated by
570
570
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
571
- at Sat Mar 12 2022 17:41:25 GMT+0000 (Coordinated Universal Time)
571
+ at Sun Mar 13 2022 20:42:00 GMT+0000 (Coordinated Universal Time)
572
572
  </div>
573
573
  </div>
574
574
  <script src="../../prettify.js"></script>
@@ -196,7 +196,7 @@ export default NumberModel;
196
196
  <div class='footer quiet pad2 space-top1 center small'>
197
197
  Code coverage generated by
198
198
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
199
- at Sat Mar 12 2022 17:41:25 GMT+0000 (Coordinated Universal Time)
199
+ at Sun Mar 13 2022 20:42:00 GMT+0000 (Coordinated Universal Time)
200
200
  </div>
201
201
  </div>
202
202
  <script src="../../prettify.js"></script>
@@ -475,7 +475,7 @@ export class SelectString&lt;T extends string = string&gt; extends Select&lt;T&g
475
475
  <div class='footer quiet pad2 space-top1 center small'>
476
476
  Code coverage generated by
477
477
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
478
- at Sat Mar 12 2022 17:41:25 GMT+0000 (Coordinated Universal Time)
478
+ at Sun Mar 13 2022 20:42:00 GMT+0000 (Coordinated Universal Time)
479
479
  </div>
480
480
  </div>
481
481
  <script src="../../prettify.js"></script>
@@ -361,7 +361,7 @@ export abstract class ValidatableModel&lt;T = string&gt; {
361
361
  <div class='footer quiet pad2 space-top1 center small'>
362
362
  Code coverage generated by
363
363
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
364
- at Sat Mar 12 2022 17:41:25 GMT+0000 (Coordinated Universal Time)
364
+ at Sun Mar 13 2022 20:42:00 GMT+0000 (Coordinated Universal Time)
365
365
  </div>
366
366
  </div>
367
367
  <script src="../../prettify.js"></script>
@@ -170,7 +170,7 @@
170
170
  <div class='footer quiet pad2 space-top1 center small'>
171
171
  Code coverage generated by
172
172
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
173
- at Sat Mar 12 2022 17:41:25 GMT+0000 (Coordinated Universal Time)
173
+ at Sun Mar 13 2022 20:42:00 GMT+0000 (Coordinated Universal Time)
174
174
  </div>
175
175
  </div>
176
176
  <script src="../../prettify.js"></script>
@@ -211,7 +211,7 @@ export function mixinLabel&lt;T, TModel extends IValueModel&lt;T&gt;, TLabel = s
211
211
  <div class='footer quiet pad2 space-top1 center small'>
212
212
  Code coverage generated by
213
213
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
214
- at Sat Mar 12 2022 17:41:25 GMT+0000 (Coordinated Universal Time)
214
+ at Sun Mar 13 2022 20:42:00 GMT+0000 (Coordinated Universal Time)
215
215
  </div>
216
216
  </div>
217
217
  <script src="../../prettify.js"></script>