@stream-io/video-client 0.0.1-alpha.64 → 0.0.1-alpha.66
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/lcov-report/index.html +33 -33
- package/coverage/lcov-report/src/CallDropScheduler.ts.html +1 -1
- package/coverage/lcov-report/src/StreamSfuClient.ts.html +1 -1
- package/coverage/lcov-report/src/StreamVideoClient.ts.html +1 -1
- package/coverage/lcov-report/src/ViewportTracker.ts.html +415 -0
- package/coverage/lcov-report/src/config/defaultConfigs.ts.html +1 -1
- package/coverage/lcov-report/src/config/index.html +1 -1
- package/coverage/lcov-report/src/config/index.ts.html +1 -1
- package/coverage/lcov-report/src/config/types.ts.html +1 -1
- package/coverage/lcov-report/src/coordinator/StreamCoordinatorClient.ts.html +1 -1
- package/coverage/lcov-report/src/coordinator/connection/base64.ts.html +1 -1
- package/coverage/lcov-report/src/coordinator/connection/client.ts.html +1 -1
- package/coverage/lcov-report/src/coordinator/connection/connection.ts.html +1 -1
- package/coverage/lcov-report/src/coordinator/connection/connection_fallback.ts.html +1 -1
- package/coverage/lcov-report/src/coordinator/connection/errors.ts.html +1 -1
- package/coverage/lcov-report/src/coordinator/connection/index.html +1 -1
- package/coverage/lcov-report/src/coordinator/connection/insights.ts.html +1 -1
- package/coverage/lcov-report/src/coordinator/connection/signing.ts.html +1 -1
- package/coverage/lcov-report/src/coordinator/connection/token_manager.ts.html +1 -1
- package/coverage/lcov-report/src/coordinator/connection/types.ts.html +1 -1
- package/coverage/lcov-report/src/coordinator/connection/utils.ts.html +1 -1
- package/coverage/lcov-report/src/coordinator/index.html +1 -1
- package/coverage/lcov-report/src/events/call-permissions.ts.html +1 -1
- package/coverage/lcov-report/src/events/call.ts.html +1 -1
- package/coverage/lcov-report/src/events/index.html +11 -11
- package/coverage/lcov-report/src/events/index.ts.html +1 -1
- package/coverage/lcov-report/src/events/internal.ts.html +1 -1
- package/coverage/lcov-report/src/events/moderation.ts.html +1 -1
- package/coverage/lcov-report/src/events/participant.ts.html +14 -11
- package/coverage/lcov-report/src/events/reactions.ts.html +1 -1
- package/coverage/lcov-report/src/events/recording.ts.html +1 -1
- package/coverage/lcov-report/src/events/speaker.ts.html +1 -1
- package/coverage/lcov-report/src/gen/google/protobuf/index.html +1 -1
- package/coverage/lcov-report/src/gen/google/protobuf/struct.ts.html +1 -1
- package/coverage/lcov-report/src/gen/google/protobuf/timestamp.ts.html +1 -1
- package/coverage/lcov-report/src/gen/video/sfu/event/events.ts.html +1 -1
- package/coverage/lcov-report/src/gen/video/sfu/event/index.html +1 -1
- package/coverage/lcov-report/src/gen/video/sfu/models/index.html +1 -1
- package/coverage/lcov-report/src/gen/video/sfu/models/models.ts.html +1 -1
- package/coverage/lcov-report/src/gen/video/sfu/signal_rpc/index.html +1 -1
- package/coverage/lcov-report/src/gen/video/sfu/signal_rpc/signal.client.ts.html +1 -1
- package/coverage/lcov-report/src/gen/video/sfu/signal_rpc/signal.ts.html +1 -1
- package/coverage/lcov-report/src/index.html +24 -9
- package/coverage/lcov-report/src/rpc/createClient.ts.html +1 -1
- package/coverage/lcov-report/src/rpc/index.html +1 -1
- package/coverage/lcov-report/src/rpc/index.ts.html +1 -1
- package/coverage/lcov-report/src/rtc/Call.ts.html +38 -8
- package/coverage/lcov-report/src/rtc/Dispatcher.ts.html +1 -1
- package/coverage/lcov-report/src/rtc/IceTrickleBuffer.ts.html +1 -1
- package/coverage/lcov-report/src/rtc/callEventHandlers.ts.html +1 -1
- package/coverage/lcov-report/src/rtc/codecs.ts.html +1 -1
- package/coverage/lcov-report/src/rtc/flows/index.html +1 -1
- package/coverage/lcov-report/src/rtc/flows/join.ts.html +1 -1
- package/coverage/lcov-report/src/rtc/flows/latency.ts.html +1 -1
- package/coverage/lcov-report/src/rtc/helpers/iceCandidate.ts.html +1 -1
- package/coverage/lcov-report/src/rtc/helpers/index.html +1 -1
- package/coverage/lcov-report/src/rtc/helpers/tracks.ts.html +1 -1
- package/coverage/lcov-report/src/rtc/index.html +22 -22
- package/coverage/lcov-report/src/rtc/publisher.ts.html +1 -1
- package/coverage/lcov-report/src/rtc/signal.ts.html +1 -1
- package/coverage/lcov-report/src/rtc/subscriber.ts.html +1 -1
- package/coverage/lcov-report/src/rtc/types.ts.html +49 -10
- package/coverage/lcov-report/src/rtc/videoLayers.ts.html +1 -1
- package/coverage/lcov-report/src/stats/index.html +1 -1
- package/coverage/lcov-report/src/stats/state-store-stats-reporter.ts.html +1 -1
- package/coverage/lcov-report/src/store/CallState.ts.html +1 -1
- package/coverage/lcov-report/src/store/index.html +1 -1
- package/coverage/lcov-report/src/store/index.ts.html +1 -1
- package/coverage/lcov-report/src/store/rxUtils.ts.html +1 -1
- package/coverage/lcov-report/src/store/stateStore.ts.html +1 -1
- package/coverage/lcov.info +191 -40
- package/coverage/tmp/{coverage-2372-1679914138600-2.json → coverage-2264-1680084868446-2.json} +1 -1
- package/dist/index.browser.es.js +104 -8
- package/dist/index.browser.es.js.map +1 -1
- package/dist/index.cjs.js +104 -7
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.es.js +104 -8
- package/dist/index.es.js.map +1 -1
- package/dist/src/ViewportTracker.d.ts +36 -0
- package/dist/src/rtc/Call.d.ts +6 -1
- package/dist/src/rtc/types.d.ts +11 -0
- package/index.ts +1 -0
- package/package.json +1 -1
- package/src/ViewportTracker.ts +110 -0
- package/src/events/participant.ts +2 -1
- package/src/helpers/browsers.ts +3 -3
- package/src/rtc/Call.ts +12 -2
- package/src/rtc/types.ts +13 -0
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">36.
|
|
26
|
+
<span class="strong">36.37% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>4394/12081</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">78.
|
|
33
|
+
<span class="strong">78.46% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>102/130</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">14.
|
|
40
|
+
<span class="strong">14.08% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>88/
|
|
42
|
+
<span class='fraction'>88/625</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">36.
|
|
47
|
+
<span class="strong">36.37% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>4394/12081</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -80,17 +80,17 @@
|
|
|
80
80
|
</thead>
|
|
81
81
|
<tbody><tr>
|
|
82
82
|
<td class="file low" data-value="src"><a href="src/index.html">src</a></td>
|
|
83
|
-
<td data-value="
|
|
84
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
83
|
+
<td data-value="26.41" class="pic low">
|
|
84
|
+
<div class="chart"><div class="cover-fill" style="width: 26%"></div><div class="cover-empty" style="width: 74%"></div></div>
|
|
85
85
|
</td>
|
|
86
|
-
<td data-value="
|
|
87
|
-
<td data-value="
|
|
88
|
-
<td data-value="
|
|
89
|
-
<td data-value="
|
|
90
|
-
<td data-value="
|
|
91
|
-
<td data-value="
|
|
92
|
-
<td data-value="
|
|
93
|
-
<td data-value="
|
|
86
|
+
<td data-value="26.41" class="pct low">26.41%</td>
|
|
87
|
+
<td data-value="954" class="abs low">252/954</td>
|
|
88
|
+
<td data-value="57.14" class="pct medium">57.14%</td>
|
|
89
|
+
<td data-value="7" class="abs medium">4/7</td>
|
|
90
|
+
<td data-value="14.28" class="pct low">14.28%</td>
|
|
91
|
+
<td data-value="28" class="abs low">4/28</td>
|
|
92
|
+
<td data-value="26.41" class="pct low">26.41%</td>
|
|
93
|
+
<td data-value="954" class="abs low">252/954</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
<tr>
|
|
@@ -140,17 +140,17 @@
|
|
|
140
140
|
|
|
141
141
|
<tr>
|
|
142
142
|
<td class="file low" data-value="src/events"><a href="src/events/index.html">src/events</a></td>
|
|
143
|
-
<td data-value="28.
|
|
143
|
+
<td data-value="28.61" class="pic low">
|
|
144
144
|
<div class="chart"><div class="cover-fill" style="width: 28%"></div><div class="cover-empty" style="width: 72%"></div></div>
|
|
145
145
|
</td>
|
|
146
|
-
<td data-value="28.
|
|
147
|
-
<td data-value="
|
|
146
|
+
<td data-value="28.61" class="pct low">28.61%</td>
|
|
147
|
+
<td data-value="608" class="abs low">174/608</td>
|
|
148
148
|
<td data-value="100" class="pct high">100%</td>
|
|
149
149
|
<td data-value="0" class="abs high">0/0</td>
|
|
150
150
|
<td data-value="0" class="pct low">0%</td>
|
|
151
151
|
<td data-value="39" class="abs low">0/39</td>
|
|
152
|
-
<td data-value="28.
|
|
153
|
-
<td data-value="
|
|
152
|
+
<td data-value="28.61" class="pct low">28.61%</td>
|
|
153
|
+
<td data-value="608" class="abs low">174/608</td>
|
|
154
154
|
</tr>
|
|
155
155
|
|
|
156
156
|
<tr>
|
|
@@ -230,17 +230,17 @@
|
|
|
230
230
|
|
|
231
231
|
<tr>
|
|
232
232
|
<td class="file low" data-value="src/rtc"><a href="src/rtc/index.html">src/rtc</a></td>
|
|
233
|
-
<td data-value="
|
|
234
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
233
|
+
<td data-value="20.14" class="pic low">
|
|
234
|
+
<div class="chart"><div class="cover-fill" style="width: 20%"></div><div class="cover-empty" style="width: 80%"></div></div>
|
|
235
235
|
</td>
|
|
236
|
-
<td data-value="
|
|
237
|
-
<td data-value="
|
|
238
|
-
<td data-value="
|
|
239
|
-
<td data-value="
|
|
236
|
+
<td data-value="20.14" class="pct low">20.14%</td>
|
|
237
|
+
<td data-value="1643" class="abs low">331/1643</td>
|
|
238
|
+
<td data-value="20" class="pct low">20%</td>
|
|
239
|
+
<td data-value="5" class="abs low">1/5</td>
|
|
240
240
|
<td data-value="0" class="pct low">0%</td>
|
|
241
|
-
<td data-value="
|
|
242
|
-
<td data-value="
|
|
243
|
-
<td data-value="
|
|
241
|
+
<td data-value="26" class="abs low">0/26</td>
|
|
242
|
+
<td data-value="20.14" class="pct low">20.14%</td>
|
|
243
|
+
<td data-value="1643" class="abs low">331/1643</td>
|
|
244
244
|
</tr>
|
|
245
245
|
|
|
246
246
|
<tr>
|
|
@@ -311,7 +311,7 @@
|
|
|
311
311
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
312
312
|
Code coverage generated by
|
|
313
313
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
314
|
-
at 2023-03-
|
|
314
|
+
at 2023-03-29T10:14:28.258Z
|
|
315
315
|
</div>
|
|
316
316
|
<script src="prettify.js"></script>
|
|
317
317
|
<script>
|
|
@@ -646,7 +646,7 @@ export <span class="fstat-no" title="function not covered" ><span class="branch-
|
|
|
646
646
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
647
647
|
Code coverage generated by
|
|
648
648
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
649
|
-
at 2023-03-
|
|
649
|
+
at 2023-03-29T10:14:28.258Z
|
|
650
650
|
</div>
|
|
651
651
|
<script src="../prettify.js"></script>
|
|
652
652
|
<script>
|
|
@@ -649,7 +649,7 @@ export <span class="fstat-no" title="function not covered" ><span class="branch-
|
|
|
649
649
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
650
650
|
Code coverage generated by
|
|
651
651
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
652
|
-
at 2023-03-
|
|
652
|
+
at 2023-03-29T10:14:28.258Z
|
|
653
653
|
</div>
|
|
654
654
|
<script src="../prettify.js"></script>
|
|
655
655
|
<script>
|
|
@@ -1447,7 +1447,7 @@ export class StreamVideoClient {
|
|
|
1447
1447
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1448
1448
|
Code coverage generated by
|
|
1449
1449
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1450
|
-
at 2023-03-
|
|
1450
|
+
at 2023-03-29T10:14:28.258Z
|
|
1451
1451
|
</div>
|
|
1452
1452
|
<script src="../prettify.js"></script>
|
|
1453
1453
|
<script>
|
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for src/ViewportTracker.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> ViewportTracker.ts</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">9.09% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>10/110</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">0% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>0/1</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">0% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>0/2</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">9.09% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>10/110</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
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input oninput="onInput()" type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line low'></div>
|
|
65
|
+
<pre><table class="coverage">
|
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
+
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
+
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
+
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
+
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
+
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
+
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
+
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
+
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
+
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
+
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
+
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
+
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
+
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
+
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
+
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
+
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
+
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
+
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
+
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
+
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
+
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
+
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
+
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
+
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
+
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
+
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
+
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
+
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
+
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
+
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
+
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
+
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
+
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
+
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
+
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
+
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
+
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
+
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
+
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
+
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
+
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
+
<a name='L111'></a><a href='#L111'>111</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
177
|
+
<span class="cline-any cline-yes">1x</span>
|
|
178
|
+
<span class="cline-any cline-yes">1x</span>
|
|
179
|
+
<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-yes">1x</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-no"> </span>
|
|
187
|
+
<span class="cline-any cline-no"> </span>
|
|
188
|
+
<span class="cline-any cline-no"> </span>
|
|
189
|
+
<span class="cline-any cline-no"> </span>
|
|
190
|
+
<span class="cline-any cline-no"> </span>
|
|
191
|
+
<span class="cline-any cline-no"> </span>
|
|
192
|
+
<span class="cline-any cline-no"> </span>
|
|
193
|
+
<span class="cline-any cline-no"> </span>
|
|
194
|
+
<span class="cline-any cline-no"> </span>
|
|
195
|
+
<span class="cline-any cline-no"> </span>
|
|
196
|
+
<span class="cline-any cline-no"> </span>
|
|
197
|
+
<span class="cline-any cline-no"> </span>
|
|
198
|
+
<span class="cline-any cline-no"> </span>
|
|
199
|
+
<span class="cline-any cline-no"> </span>
|
|
200
|
+
<span class="cline-any cline-no"> </span>
|
|
201
|
+
<span class="cline-any cline-no"> </span>
|
|
202
|
+
<span class="cline-any cline-no"> </span>
|
|
203
|
+
<span class="cline-any cline-no"> </span>
|
|
204
|
+
<span class="cline-any cline-no"> </span>
|
|
205
|
+
<span class="cline-any cline-no"> </span>
|
|
206
|
+
<span class="cline-any cline-no"> </span>
|
|
207
|
+
<span class="cline-any cline-no"> </span>
|
|
208
|
+
<span class="cline-any cline-no"> </span>
|
|
209
|
+
<span class="cline-any cline-no"> </span>
|
|
210
|
+
<span class="cline-any cline-no"> </span>
|
|
211
|
+
<span class="cline-any cline-no"> </span>
|
|
212
|
+
<span class="cline-any cline-no"> </span>
|
|
213
|
+
<span class="cline-any cline-no"> </span>
|
|
214
|
+
<span class="cline-any cline-no"> </span>
|
|
215
|
+
<span class="cline-any cline-no"> </span>
|
|
216
|
+
<span class="cline-any cline-no"> </span>
|
|
217
|
+
<span class="cline-any cline-no"> </span>
|
|
218
|
+
<span class="cline-any cline-no"> </span>
|
|
219
|
+
<span class="cline-any cline-no"> </span>
|
|
220
|
+
<span class="cline-any cline-no"> </span>
|
|
221
|
+
<span class="cline-any cline-no"> </span>
|
|
222
|
+
<span class="cline-any cline-no"> </span>
|
|
223
|
+
<span class="cline-any cline-no"> </span>
|
|
224
|
+
<span class="cline-any cline-no"> </span>
|
|
225
|
+
<span class="cline-any cline-no"> </span>
|
|
226
|
+
<span class="cline-any cline-no"> </span>
|
|
227
|
+
<span class="cline-any cline-no"> </span>
|
|
228
|
+
<span class="cline-any cline-no"> </span>
|
|
229
|
+
<span class="cline-any cline-no"> </span>
|
|
230
|
+
<span class="cline-any cline-no"> </span>
|
|
231
|
+
<span class="cline-any cline-no"> </span>
|
|
232
|
+
<span class="cline-any cline-no"> </span>
|
|
233
|
+
<span class="cline-any cline-no"> </span>
|
|
234
|
+
<span class="cline-any cline-no"> </span>
|
|
235
|
+
<span class="cline-any cline-no"> </span>
|
|
236
|
+
<span class="cline-any cline-no"> </span>
|
|
237
|
+
<span class="cline-any cline-no"> </span>
|
|
238
|
+
<span class="cline-any cline-no"> </span>
|
|
239
|
+
<span class="cline-any cline-no"> </span>
|
|
240
|
+
<span class="cline-any cline-no"> </span>
|
|
241
|
+
<span class="cline-any cline-no"> </span>
|
|
242
|
+
<span class="cline-any cline-no"> </span>
|
|
243
|
+
<span class="cline-any cline-no"> </span>
|
|
244
|
+
<span class="cline-any cline-no"> </span>
|
|
245
|
+
<span class="cline-any cline-no"> </span>
|
|
246
|
+
<span class="cline-any cline-no"> </span>
|
|
247
|
+
<span class="cline-any cline-no"> </span>
|
|
248
|
+
<span class="cline-any cline-no"> </span>
|
|
249
|
+
<span class="cline-any cline-no"> </span>
|
|
250
|
+
<span class="cline-any cline-no"> </span>
|
|
251
|
+
<span class="cline-any cline-no"> </span>
|
|
252
|
+
<span class="cline-any cline-no"> </span>
|
|
253
|
+
<span class="cline-any cline-no"> </span>
|
|
254
|
+
<span class="cline-any cline-no"> </span>
|
|
255
|
+
<span class="cline-any cline-no"> </span>
|
|
256
|
+
<span class="cline-any cline-no"> </span>
|
|
257
|
+
<span class="cline-any cline-no"> </span>
|
|
258
|
+
<span class="cline-any cline-no"> </span>
|
|
259
|
+
<span class="cline-any cline-no"> </span>
|
|
260
|
+
<span class="cline-any cline-no"> </span>
|
|
261
|
+
<span class="cline-any cline-no"> </span>
|
|
262
|
+
<span class="cline-any cline-no"> </span>
|
|
263
|
+
<span class="cline-any cline-no"> </span>
|
|
264
|
+
<span class="cline-any cline-no"> </span>
|
|
265
|
+
<span class="cline-any cline-no"> </span>
|
|
266
|
+
<span class="cline-any cline-no"> </span>
|
|
267
|
+
<span class="cline-any cline-no"> </span>
|
|
268
|
+
<span class="cline-any cline-no"> </span>
|
|
269
|
+
<span class="cline-any cline-no"> </span>
|
|
270
|
+
<span class="cline-any cline-no"> </span>
|
|
271
|
+
<span class="cline-any cline-no"> </span>
|
|
272
|
+
<span class="cline-any cline-no"> </span>
|
|
273
|
+
<span class="cline-any cline-no"> </span>
|
|
274
|
+
<span class="cline-any cline-no"> </span>
|
|
275
|
+
<span class="cline-any cline-no"> </span>
|
|
276
|
+
<span class="cline-any cline-no"> </span>
|
|
277
|
+
<span class="cline-any cline-no"> </span>
|
|
278
|
+
<span class="cline-any cline-no"> </span>
|
|
279
|
+
<span class="cline-any cline-no"> </span>
|
|
280
|
+
<span class="cline-any cline-no"> </span>
|
|
281
|
+
<span class="cline-any cline-no"> </span>
|
|
282
|
+
<span class="cline-any cline-no"> </span>
|
|
283
|
+
<span class="cline-any cline-no"> </span>
|
|
284
|
+
<span class="cline-any cline-no"> </span>
|
|
285
|
+
<span class="cline-any cline-no"> </span>
|
|
286
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">export type EntryHandler = (entry: IntersectionObserverEntry) => void;
|
|
287
|
+
|
|
288
|
+
export type Unobserve = () => void;
|
|
289
|
+
|
|
290
|
+
export type Observe = (
|
|
291
|
+
element: HTMLElement,
|
|
292
|
+
entryHandler: EntryHandler,
|
|
293
|
+
) => Unobserve;
|
|
294
|
+
|
|
295
|
+
export class ViewportTracker <span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" >{</span></span>
|
|
296
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
297
|
+
<span class="cstat-no" title="statement not covered" > * @private</span>
|
|
298
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
299
|
+
<span class="cstat-no" title="statement not covered" > private elementHandlerMap: Map<</span>
|
|
300
|
+
<span class="cstat-no" title="statement not covered" > HTMLElement,</span>
|
|
301
|
+
<span class="cstat-no" title="statement not covered" > (entry: IntersectionObserverEntry) => void</span>
|
|
302
|
+
<span class="cstat-no" title="statement not covered" > > = new Map();</span>
|
|
303
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
304
|
+
<span class="cstat-no" title="statement not covered" > * @private</span>
|
|
305
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
306
|
+
<span class="cstat-no" title="statement not covered" > private observer: IntersectionObserver | null = null;</span>
|
|
307
|
+
<span class="cstat-no" title="statement not covered" > // in React children render before viewport is set, add</span>
|
|
308
|
+
<span class="cstat-no" title="statement not covered" > // them to the queue and observe them once the observer is ready</span>
|
|
309
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
310
|
+
<span class="cstat-no" title="statement not covered" > * @private</span>
|
|
311
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
312
|
+
<span class="cstat-no" title="statement not covered" > private queueSet: Set<readonly [HTMLElement, EntryHandler]> = new Set();</span>
|
|
313
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
314
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
315
|
+
<span class="cstat-no" title="statement not covered" > * Method to set scrollable viewport as root for the IntersectionObserver, returns</span>
|
|
316
|
+
<span class="cstat-no" title="statement not covered" > * cleanup function to be invoked upon disposing of the DOM element to prevent memory leaks</span>
|
|
317
|
+
<span class="cstat-no" title="statement not covered" > *</span>
|
|
318
|
+
<span class="cstat-no" title="statement not covered" > * @param viewportElement</span>
|
|
319
|
+
<span class="cstat-no" title="statement not covered" > * @param options</span>
|
|
320
|
+
<span class="cstat-no" title="statement not covered" > * @returns Unobserve</span>
|
|
321
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
322
|
+
<span class="cstat-no" title="statement not covered" > public setViewport = (</span>
|
|
323
|
+
<span class="cstat-no" title="statement not covered" > viewportElement: HTMLElement,</span>
|
|
324
|
+
<span class="cstat-no" title="statement not covered" > options?: Pick<IntersectionObserverInit, 'threshold' | 'rootMargin'>,</span>
|
|
325
|
+
<span class="cstat-no" title="statement not covered" > ) => {</span>
|
|
326
|
+
<span class="cstat-no" title="statement not covered" > const cleanup = () => {</span>
|
|
327
|
+
<span class="cstat-no" title="statement not covered" > this.observer?.disconnect();</span>
|
|
328
|
+
<span class="cstat-no" title="statement not covered" > this.observer = null;</span>
|
|
329
|
+
<span class="cstat-no" title="statement not covered" > this.elementHandlerMap.clear();</span>
|
|
330
|
+
<span class="cstat-no" title="statement not covered" > };</span>
|
|
331
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
332
|
+
<span class="cstat-no" title="statement not covered" > this.observer = new IntersectionObserver(</span>
|
|
333
|
+
<span class="cstat-no" title="statement not covered" > (entries) => {</span>
|
|
334
|
+
<span class="cstat-no" title="statement not covered" > entries.forEach((entry) => {</span>
|
|
335
|
+
<span class="cstat-no" title="statement not covered" > const handler = this.elementHandlerMap.get(</span>
|
|
336
|
+
<span class="cstat-no" title="statement not covered" > entry.target as HTMLElement,</span>
|
|
337
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
338
|
+
<span class="cstat-no" title="statement not covered" > handler?.(entry);</span>
|
|
339
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
340
|
+
<span class="cstat-no" title="statement not covered" > },</span>
|
|
341
|
+
<span class="cstat-no" title="statement not covered" > {</span>
|
|
342
|
+
<span class="cstat-no" title="statement not covered" > root: viewportElement,</span>
|
|
343
|
+
<span class="cstat-no" title="statement not covered" > ...options,</span>
|
|
344
|
+
<span class="cstat-no" title="statement not covered" > threshold: options?.threshold ?? 0.5,</span>
|
|
345
|
+
<span class="cstat-no" title="statement not covered" > },</span>
|
|
346
|
+
<span class="cstat-no" title="statement not covered" > );</span>
|
|
347
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
348
|
+
<span class="cstat-no" title="statement not covered" > if (this.queueSet.size) {</span>
|
|
349
|
+
<span class="cstat-no" title="statement not covered" > this.queueSet.forEach(([queueElement, queueHandler]) => {</span>
|
|
350
|
+
<span class="cstat-no" title="statement not covered" > // check if element which requested observation is</span>
|
|
351
|
+
<span class="cstat-no" title="statement not covered" > // a child of a viewport element, skip if isn't</span>
|
|
352
|
+
<span class="cstat-no" title="statement not covered" > if (!viewportElement.contains(queueElement)) return;</span>
|
|
353
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
354
|
+
<span class="cstat-no" title="statement not covered" > this.observer!.observe(queueElement);</span>
|
|
355
|
+
<span class="cstat-no" title="statement not covered" > this.elementHandlerMap.set(queueElement, queueHandler);</span>
|
|
356
|
+
<span class="cstat-no" title="statement not covered" > });</span>
|
|
357
|
+
<span class="cstat-no" title="statement not covered" > this.queueSet.clear();</span>
|
|
358
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
359
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
360
|
+
<span class="cstat-no" title="statement not covered" > return cleanup;</span>
|
|
361
|
+
<span class="cstat-no" title="statement not covered" > };</span>
|
|
362
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
363
|
+
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
364
|
+
<span class="cstat-no" title="statement not covered" > * Method to set element to observe and handler to be triggered whenever IntersectionObserver</span>
|
|
365
|
+
<span class="cstat-no" title="statement not covered" > * detects a possible change in element's visibility within specified viewport, returns</span>
|
|
366
|
+
<span class="cstat-no" title="statement not covered" > * cleanup function to be invoked upon disposing of the DOM element to prevent memory leaks</span>
|
|
367
|
+
<span class="cstat-no" title="statement not covered" > *</span>
|
|
368
|
+
<span class="cstat-no" title="statement not covered" > * @param element</span>
|
|
369
|
+
<span class="cstat-no" title="statement not covered" > * @param handler</span>
|
|
370
|
+
<span class="cstat-no" title="statement not covered" > * @returns Unobserve</span>
|
|
371
|
+
<span class="cstat-no" title="statement not covered" > */</span>
|
|
372
|
+
<span class="cstat-no" title="statement not covered" > public observe: Observe = (element, handler) => {</span>
|
|
373
|
+
<span class="cstat-no" title="statement not covered" > const queueItem = [element, handler] as const;</span>
|
|
374
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
375
|
+
<span class="cstat-no" title="statement not covered" > const cleanup = () => {</span>
|
|
376
|
+
<span class="cstat-no" title="statement not covered" > this.elementHandlerMap.delete(element);</span>
|
|
377
|
+
<span class="cstat-no" title="statement not covered" > this.observer?.unobserve(element);</span>
|
|
378
|
+
<span class="cstat-no" title="statement not covered" > this.queueSet.delete(queueItem);</span>
|
|
379
|
+
<span class="cstat-no" title="statement not covered" > };</span>
|
|
380
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
381
|
+
<span class="cstat-no" title="statement not covered" > if (this.elementHandlerMap.has(element)) return cleanup;</span>
|
|
382
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
383
|
+
<span class="cstat-no" title="statement not covered" > if (!this.observer) {</span>
|
|
384
|
+
<span class="cstat-no" title="statement not covered" > this.queueSet.add(queueItem);</span>
|
|
385
|
+
<span class="cstat-no" title="statement not covered" > return cleanup;</span>
|
|
386
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
387
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
388
|
+
<span class="cstat-no" title="statement not covered" > if (this.observer.root!.contains(element)) {</span>
|
|
389
|
+
<span class="cstat-no" title="statement not covered" > this.elementHandlerMap.set(element, handler);</span>
|
|
390
|
+
<span class="cstat-no" title="statement not covered" > this.observer.observe(element);</span>
|
|
391
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
392
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
393
|
+
<span class="cstat-no" title="statement not covered" > return cleanup;</span>
|
|
394
|
+
<span class="cstat-no" title="statement not covered" > };</span>
|
|
395
|
+
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >}</span></span>
|
|
396
|
+
</pre></td></tr></table></pre>
|
|
397
|
+
|
|
398
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
399
|
+
</div><!-- /wrapper -->
|
|
400
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
401
|
+
Code coverage generated by
|
|
402
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
403
|
+
at 2023-03-29T10:14:28.258Z
|
|
404
|
+
</div>
|
|
405
|
+
<script src="../prettify.js"></script>
|
|
406
|
+
<script>
|
|
407
|
+
window.onload = function () {
|
|
408
|
+
prettyPrint();
|
|
409
|
+
};
|
|
410
|
+
</script>
|
|
411
|
+
<script src="../sorter.js"></script>
|
|
412
|
+
<script src="../block-navigation.js"></script>
|
|
413
|
+
</body>
|
|
414
|
+
</html>
|
|
415
|
+
|
|
@@ -115,7 +115,7 @@ export const CALL_CONFIG: Record<CallType, CallConfig> = {
|
|
|
115
115
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
116
116
|
Code coverage generated by
|
|
117
117
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
118
|
-
at 2023-03-
|
|
118
|
+
at 2023-03-29T10:14:28.258Z
|
|
119
119
|
</div>
|
|
120
120
|
<script src="../../prettify.js"></script>
|
|
121
121
|
<script>
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
132
132
|
Code coverage generated by
|
|
133
133
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
134
|
-
at 2023-03-
|
|
134
|
+
at 2023-03-29T10:14:28.258Z
|
|
135
135
|
</div>
|
|
136
136
|
<script src="../../prettify.js"></script>
|
|
137
137
|
<script>
|
|
@@ -76,7 +76,7 @@ export * from './types';
|
|
|
76
76
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
77
77
|
Code coverage generated by
|
|
78
78
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
79
|
-
at 2023-03-
|
|
79
|
+
at 2023-03-29T10:14:28.258Z
|
|
80
80
|
</div>
|
|
81
81
|
<script src="../../prettify.js"></script>
|
|
82
82
|
<script>
|
|
@@ -160,7 +160,7 @@ export type CallConfig = {
|
|
|
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" rel="noopener noreferrer">istanbul</a>
|
|
163
|
-
at 2023-03-
|
|
163
|
+
at 2023-03-29T10:14:28.258Z
|
|
164
164
|
</div>
|
|
165
165
|
<script src="../../prettify.js"></script>
|
|
166
166
|
<script>
|