nanosplash 3.0.1 → 3.0.2
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/.github/workflows/ci.yml +50 -44
- package/.github/workflows/vitepress.yml +69 -0
- package/.prettierignore +1 -0
- package/.prettierrc +10 -10
- package/README.md +11 -172
- package/bun.lockb +0 -0
- package/coverage/{core/Dom.ts.html → DomUtilities.ts.html} +141 -138
- package/coverage/{core/Service.ts.html → Service.ts.html} +250 -322
- package/coverage/{core/Splash.ts.html → Splash.ts.html} +145 -154
- package/coverage/SplashQueue.ts.html +232 -0
- package/coverage/clover.xml +557 -552
- package/coverage/coverage-final.json +5 -9043
- package/coverage/index.html +53 -23
- package/dist/cjs/ns.cjs +2 -0
- package/dist/es/ns.js +342 -0
- package/dist/iife/ns.iife.js +2 -0
- package/docs/.vitepress/config.ts +75 -0
- package/docs/.vitepress/theme/css/style.css +157 -0
- package/docs/.vitepress/theme/index.ts +16 -0
- package/docs/.vitepress/theme/vue/Card.vue +31 -0
- package/docs/.vitepress/theme/vue/CardGrid.vue +17 -0
- package/docs/.vitepress/theme/vue/Exe.vue +86 -0
- package/docs/.vitepress/theme/vue/PlayGround.vue +50 -0
- package/docs/api/doc/hide.md +69 -0
- package/docs/api/doc/show.md +47 -0
- package/docs/api/start/features.md +17 -0
- package/docs/api/start/install.md +53 -0
- package/docs/api/start/playground.md +11 -0
- package/docs/api/start/usage.md +25 -0
- package/docs/index.md +30 -0
- package/package.json +86 -87
- package/src/style/ns.sass +95 -0
- package/src/ts/core/{Dom.ts → DomUtilities.ts} +58 -57
- package/src/ts/core/Service.ts +66 -90
- package/src/ts/core/ServiceInterface.ts +5 -7
- package/src/ts/core/Splash.ts +23 -26
- package/src/ts/core/SplashInterface.ts +12 -20
- package/src/ts/core/SplashQueue.ts +49 -0
- package/src/ts/types/Types.ts +0 -9
- package/tests/{Dom.spec.ts → DomUtilities.spec.ts} +13 -23
- package/tests/Guid.spec.ts +3 -3
- package/tests/Service.spec.ts +146 -67
- package/tests/Splash.spec.ts +26 -26
- package/tests/TestUtilities.ts +48 -0
- package/tsconfig.json +1 -0
- package/vite.config.ts +1 -15
- package/coverage/core/index.html +0 -146
- package/coverage/types/Types.ts.html +0 -121
- package/coverage/types/index.html +0 -116
- package/dist/latest/cjs/ns.cjs +0 -1
- package/dist/latest/cjs/style.css +0 -1
- package/dist/latest/es/ns.js +0 -306
- package/dist/latest/es/style.css +0 -1
- package/dist/latest/iife/ns.iife.js +0 -4
- package/dist/versioned/3.0.1/cjs/ns.cjs +0 -1
- package/dist/versioned/3.0.1/cjs/style.css +0 -1
- package/dist/versioned/3.0.1/es/ns.js +0 -306
- package/dist/versioned/3.0.1/es/style.css +0 -1
- package/dist/versioned/3.0.1/iife/ns.iife.js +0 -2
- package/docs/index.6d66a821.js +0 -1
- package/docs/index.74dbd99e.css +0 -1
- package/docs/index.f34144dc.js +0 -1
- package/docs/index.html +0 -107
- package/index.html +0 -105
- package/src/sass/ns.sass +0 -95
- package/vite.demo.config.ts +0 -16
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
<html lang="en">
|
|
4
4
|
|
|
5
5
|
<head>
|
|
6
|
-
<title>Code coverage report for
|
|
6
|
+
<title>Code coverage report for DomUtilities.ts</title>
|
|
7
7
|
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="
|
|
9
|
-
<link rel="stylesheet" href="
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="
|
|
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
11
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
12
|
<style type='text/css'>
|
|
13
13
|
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(
|
|
14
|
+
background-image: url(sort-arrow-sprite.png);
|
|
15
15
|
}
|
|
16
16
|
</style>
|
|
17
17
|
</head>
|
|
@@ -19,34 +19,34 @@
|
|
|
19
19
|
<body>
|
|
20
20
|
<div class='wrapper'>
|
|
21
21
|
<div class='pad1'>
|
|
22
|
-
<h1><a href="
|
|
22
|
+
<h1><a href="index.html">All files</a> DomUtilities.ts</h1>
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">96.89% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>156/161</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">78.26% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>18/23</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>10/10</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">96.89% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>156/161</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -223,7 +223,8 @@
|
|
|
223
223
|
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
224
|
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
225
|
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
-
<a name='L161'></a><a href='#L161'>161</a
|
|
226
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
+
<a name='L162'></a><a href='#L162'>162</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
227
228
|
<span class="cline-any cline-yes">1x</span>
|
|
228
229
|
<span class="cline-any cline-yes">1x</span>
|
|
229
230
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -241,17 +242,22 @@
|
|
|
241
242
|
<span class="cline-any cline-yes">1x</span>
|
|
242
243
|
<span class="cline-any cline-yes">1x</span>
|
|
243
244
|
<span class="cline-any cline-yes">1x</span>
|
|
245
|
+
<span class="cline-any cline-yes">28x</span>
|
|
246
|
+
<span class="cline-any cline-yes">28x</span>
|
|
247
|
+
<span class="cline-any cline-yes">28x</span>
|
|
248
|
+
<span class="cline-any cline-yes">28x</span>
|
|
249
|
+
<span class="cline-any cline-yes">28x</span>
|
|
250
|
+
<span class="cline-any cline-yes">28x</span>
|
|
244
251
|
<span class="cline-any cline-yes">1x</span>
|
|
245
|
-
<span class="cline-any cline-yes">23x</span>
|
|
246
|
-
<span class="cline-any cline-yes">23x</span>
|
|
247
|
-
<span class="cline-any cline-yes">23x</span>
|
|
248
|
-
<span class="cline-any cline-yes">23x</span>
|
|
249
|
-
<span class="cline-any cline-yes">23x</span>
|
|
250
252
|
<span class="cline-any cline-yes">1x</span>
|
|
251
253
|
<span class="cline-any cline-yes">1x</span>
|
|
252
254
|
<span class="cline-any cline-yes">1x</span>
|
|
253
255
|
<span class="cline-any cline-yes">1x</span>
|
|
254
256
|
<span class="cline-any cline-yes">1x</span>
|
|
257
|
+
<span class="cline-any cline-yes">25x</span>
|
|
258
|
+
<span class="cline-any cline-yes">25x</span>
|
|
259
|
+
<span class="cline-any cline-yes">25x</span>
|
|
260
|
+
<span class="cline-any cline-yes">25x</span>
|
|
255
261
|
<span class="cline-any cline-yes">1x</span>
|
|
256
262
|
<span class="cline-any cline-yes">1x</span>
|
|
257
263
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -259,20 +265,21 @@
|
|
|
259
265
|
<span class="cline-any cline-yes">1x</span>
|
|
260
266
|
<span class="cline-any cline-yes">1x</span>
|
|
261
267
|
<span class="cline-any cline-yes">1x</span>
|
|
262
|
-
<span class="cline-any cline-yes">13x</span>
|
|
263
|
-
<span class="cline-any cline-yes">13x</span>
|
|
264
|
-
<span class="cline-any cline-yes">13x</span>
|
|
265
|
-
<span class="cline-any cline-yes">13x</span>
|
|
266
|
-
<span class="cline-any cline-yes">13x</span>
|
|
267
268
|
<span class="cline-any cline-yes">1x</span>
|
|
268
|
-
<span class="cline-any cline-yes">13x</span>
|
|
269
|
-
<span class="cline-any cline-yes">12x</span>
|
|
270
|
-
<span class="cline-any cline-yes">12x</span>
|
|
271
|
-
<span class="cline-any cline-yes">13x</span>
|
|
272
269
|
<span class="cline-any cline-yes">1x</span>
|
|
273
270
|
<span class="cline-any cline-yes">1x</span>
|
|
274
271
|
<span class="cline-any cline-yes">1x</span>
|
|
275
272
|
<span class="cline-any cline-yes">1x</span>
|
|
273
|
+
<span class="cline-any cline-yes">21x</span>
|
|
274
|
+
<span class="cline-any cline-yes">21x</span>
|
|
275
|
+
<span class="cline-any cline-yes">21x</span>
|
|
276
|
+
<span class="cline-any cline-yes">21x</span>
|
|
277
|
+
<span class="cline-any cline-yes">21x</span>
|
|
278
|
+
<span class="cline-any cline-yes">6x</span>
|
|
279
|
+
<span class="cline-any cline-yes">21x</span>
|
|
280
|
+
<span class="cline-any cline-yes">15x</span>
|
|
281
|
+
<span class="cline-any cline-yes">15x</span>
|
|
282
|
+
<span class="cline-any cline-yes">21x</span>
|
|
276
283
|
<span class="cline-any cline-yes">1x</span>
|
|
277
284
|
<span class="cline-any cline-yes">1x</span>
|
|
278
285
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -280,13 +287,10 @@
|
|
|
280
287
|
<span class="cline-any cline-yes">1x</span>
|
|
281
288
|
<span class="cline-any cline-yes">1x</span>
|
|
282
289
|
<span class="cline-any cline-yes">1x</span>
|
|
283
|
-
<span class="cline-any cline-yes">35x</span>
|
|
284
|
-
<span class="cline-any cline-yes">35x</span>
|
|
285
|
-
<span class="cline-any cline-yes">35x</span>
|
|
286
|
-
<span class="cline-any cline-yes">35x</span>
|
|
287
|
-
<span class="cline-any cline-yes">35x</span>
|
|
288
290
|
<span class="cline-any cline-yes">1x</span>
|
|
289
291
|
<span class="cline-any cline-yes">1x</span>
|
|
292
|
+
<span class="cline-any cline-yes">21x</span>
|
|
293
|
+
<span class="cline-any cline-yes">21x</span>
|
|
290
294
|
<span class="cline-any cline-yes">1x</span>
|
|
291
295
|
<span class="cline-any cline-yes">1x</span>
|
|
292
296
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -296,6 +300,8 @@
|
|
|
296
300
|
<span class="cline-any cline-yes">1x</span>
|
|
297
301
|
<span class="cline-any cline-yes">1x</span>
|
|
298
302
|
<span class="cline-any cline-yes">1x</span>
|
|
303
|
+
<span class="cline-any cline-yes">32x</span>
|
|
304
|
+
<span class="cline-any cline-yes">32x</span>
|
|
299
305
|
<span class="cline-any cline-yes">1x</span>
|
|
300
306
|
<span class="cline-any cline-yes">1x</span>
|
|
301
307
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -303,9 +309,9 @@
|
|
|
303
309
|
<span class="cline-any cline-yes">1x</span>
|
|
304
310
|
<span class="cline-any cline-yes">1x</span>
|
|
305
311
|
<span class="cline-any cline-yes">1x</span>
|
|
306
|
-
<span class="cline-any cline-yes">10x</span>
|
|
307
|
-
<span class="cline-any cline-yes">10x</span>
|
|
308
312
|
<span class="cline-any cline-yes">1x</span>
|
|
313
|
+
<span class="cline-any cline-yes">17x</span>
|
|
314
|
+
<span class="cline-any cline-yes">17x</span>
|
|
309
315
|
<span class="cline-any cline-yes">1x</span>
|
|
310
316
|
<span class="cline-any cline-yes">1x</span>
|
|
311
317
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -313,18 +319,10 @@
|
|
|
313
319
|
<span class="cline-any cline-yes">1x</span>
|
|
314
320
|
<span class="cline-any cline-yes">1x</span>
|
|
315
321
|
<span class="cline-any cline-yes">1x</span>
|
|
316
|
-
<span class="cline-any cline-yes">11x</span>
|
|
317
|
-
<span class="cline-any cline-yes">11x</span>
|
|
318
|
-
<span class="cline-any cline-yes">1x</span>
|
|
319
|
-
<span class="cline-any cline-yes">1x</span>
|
|
320
|
-
<span class="cline-any cline-yes">1x</span>
|
|
321
|
-
<span class="cline-any cline-yes">1x</span>
|
|
322
|
-
<span class="cline-any cline-yes">1x</span>
|
|
323
|
-
<span class="cline-any cline-yes">1x</span>
|
|
324
322
|
<span class="cline-any cline-yes">1x</span>
|
|
323
|
+
<span class="cline-any cline-yes">21x</span>
|
|
324
|
+
<span class="cline-any cline-yes">21x</span>
|
|
325
325
|
<span class="cline-any cline-yes">1x</span>
|
|
326
|
-
<span class="cline-any cline-yes">16x</span>
|
|
327
|
-
<span class="cline-any cline-yes">16x</span>
|
|
328
326
|
<span class="cline-any cline-yes">1x</span>
|
|
329
327
|
<span class="cline-any cline-yes">1x</span>
|
|
330
328
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -335,20 +333,22 @@
|
|
|
335
333
|
<span class="cline-any cline-yes">1x</span>
|
|
336
334
|
<span class="cline-any cline-yes">1x</span>
|
|
337
335
|
<span class="cline-any cline-yes">1x</span>
|
|
338
|
-
<span class="cline-any cline-yes">
|
|
339
|
-
<span class="cline-any cline-yes">
|
|
340
|
-
<span class="cline-any cline-yes">
|
|
341
|
-
<span class="cline-any cline-yes">
|
|
342
|
-
<span class="cline-any cline-yes">
|
|
343
|
-
<span class="cline-any cline-yes">
|
|
344
|
-
<span class="cline-any cline-yes">
|
|
345
|
-
<span class="cline-any cline-
|
|
346
|
-
<span class="cline-any cline-
|
|
347
|
-
<span class="cline-any cline-
|
|
348
|
-
<span class="cline-any cline-yes">
|
|
349
|
-
<span class="cline-any cline-yes">
|
|
350
|
-
<span class="cline-any cline-yes">
|
|
351
|
-
<span class="cline-any cline-
|
|
336
|
+
<span class="cline-any cline-yes">23x</span>
|
|
337
|
+
<span class="cline-any cline-yes">23x</span>
|
|
338
|
+
<span class="cline-any cline-yes">11x</span>
|
|
339
|
+
<span class="cline-any cline-yes">11x</span>
|
|
340
|
+
<span class="cline-any cline-yes">11x</span>
|
|
341
|
+
<span class="cline-any cline-yes">11x</span>
|
|
342
|
+
<span class="cline-any cline-yes">11x</span>
|
|
343
|
+
<span class="cline-any cline-no"> </span>
|
|
344
|
+
<span class="cline-any cline-no"> </span>
|
|
345
|
+
<span class="cline-any cline-no"> </span>
|
|
346
|
+
<span class="cline-any cline-yes">23x</span>
|
|
347
|
+
<span class="cline-any cline-yes">12x</span>
|
|
348
|
+
<span class="cline-any cline-yes">23x</span>
|
|
349
|
+
<span class="cline-any cline-no"> </span>
|
|
350
|
+
<span class="cline-any cline-yes">23x</span>
|
|
351
|
+
<span class="cline-any cline-no"> </span>
|
|
352
352
|
<span class="cline-any cline-yes">1x</span>
|
|
353
353
|
<span class="cline-any cline-yes">1x</span>
|
|
354
354
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -357,12 +357,12 @@
|
|
|
357
357
|
<span class="cline-any cline-yes">1x</span>
|
|
358
358
|
<span class="cline-any cline-yes">1x</span>
|
|
359
359
|
<span class="cline-any cline-yes">1x</span>
|
|
360
|
-
<span class="cline-any cline-yes">
|
|
361
|
-
<span class="cline-any cline-yes">
|
|
362
|
-
<span class="cline-any cline-yes">
|
|
363
|
-
<span class="cline-any cline-yes">
|
|
364
|
-
<span class="cline-any cline-yes">
|
|
365
|
-
<span class="cline-any cline-yes">
|
|
360
|
+
<span class="cline-any cline-yes">19x</span>
|
|
361
|
+
<span class="cline-any cline-yes">19x</span>
|
|
362
|
+
<span class="cline-any cline-yes">19x</span>
|
|
363
|
+
<span class="cline-any cline-yes">19x</span>
|
|
364
|
+
<span class="cline-any cline-yes">19x</span>
|
|
365
|
+
<span class="cline-any cline-yes">19x</span>
|
|
366
366
|
<span class="cline-any cline-yes">1x</span>
|
|
367
367
|
<span class="cline-any cline-yes">1x</span>
|
|
368
368
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -372,20 +372,20 @@
|
|
|
372
372
|
<span class="cline-any cline-yes">1x</span>
|
|
373
373
|
<span class="cline-any cline-yes">1x</span>
|
|
374
374
|
<span class="cline-any cline-yes">1x</span>
|
|
375
|
-
<span class="cline-any cline-yes">
|
|
376
|
-
<span class="cline-any cline-yes">
|
|
377
|
-
<span class="cline-any cline-yes">
|
|
378
|
-
<span class="cline-any cline-yes">
|
|
379
|
-
<span class="cline-any cline-yes">
|
|
380
|
-
<span class="cline-any cline-yes">
|
|
381
|
-
<span class="cline-any cline-yes">
|
|
382
|
-
<span class="cline-any cline-yes">
|
|
383
|
-
<span class="cline-any cline-yes">
|
|
384
|
-
<span class="cline-any cline-yes">
|
|
385
|
-
<span class="cline-any cline-yes">
|
|
386
|
-
<span class="cline-any cline-
|
|
387
|
-
|
|
388
|
-
import { Reference
|
|
375
|
+
<span class="cline-any cline-yes">20x</span>
|
|
376
|
+
<span class="cline-any cline-yes">20x</span>
|
|
377
|
+
<span class="cline-any cline-yes">20x</span>
|
|
378
|
+
<span class="cline-any cline-yes">20x</span>
|
|
379
|
+
<span class="cline-any cline-yes">20x</span>
|
|
380
|
+
<span class="cline-any cline-yes">7x</span>
|
|
381
|
+
<span class="cline-any cline-yes">7x</span>
|
|
382
|
+
<span class="cline-any cline-yes">7x</span>
|
|
383
|
+
<span class="cline-any cline-yes">7x</span>
|
|
384
|
+
<span class="cline-any cline-yes">7x</span>
|
|
385
|
+
<span class="cline-any cline-yes">7x</span>
|
|
386
|
+
<span class="cline-any cline-yes">20x</span>
|
|
387
|
+
<span class="cline-any cline-yes">20x</span>
|
|
388
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { Reference } from '../types/Types'
|
|
389
389
|
import { Service } from './Service'
|
|
390
390
|
import { Splash } from './Splash'
|
|
391
391
|
|
|
@@ -397,15 +397,27 @@ import { Splash } from './Splash'
|
|
|
397
397
|
* @author Isak K. Hauge <isakhauge@icloud.com>
|
|
398
398
|
*/
|
|
399
399
|
|
|
400
|
+
/**
|
|
401
|
+
* # Render
|
|
402
|
+
* @param html HTML string to render.
|
|
403
|
+
* @returns Rendered HTML element.
|
|
404
|
+
*/
|
|
405
|
+
export function render(html: string): HTMLElement {
|
|
406
|
+
return (div =>
|
|
407
|
+
// @ts-ignore
|
|
408
|
+
(() => div.firstChild as HTMLElement)((div.innerHTML = html)))(
|
|
409
|
+
document.createElement('div')
|
|
410
|
+
)
|
|
411
|
+
}
|
|
412
|
+
|
|
400
413
|
/**
|
|
401
414
|
* # Create Element
|
|
402
415
|
* Return the main Nanosplash element.
|
|
403
416
|
*/
|
|
404
417
|
export function createElement(): HTMLDivElement {
|
|
405
|
-
return
|
|
406
|
-
'<div class=ns><div class=nsc><div class=nst></div><div class=nss><svg viewBox="0 0 50 50"><circle class=path cx=25 cy=25 r=20 fill=none></circle></svg></div></div></div>'
|
|
407
|
-
|
|
408
|
-
).body.firstChild as HTMLDivElement
|
|
418
|
+
return render(
|
|
419
|
+
'<div class=ns><div class=nsc><div class=nst></div><div class=nss><svg viewBox="0 0 50 50"><circle class=path cx=25 cy=25 r=20 fill=none></circle></svg></div></div></div>'
|
|
420
|
+
) as HTMLDivElement
|
|
409
421
|
}
|
|
410
422
|
|
|
411
423
|
/**
|
|
@@ -431,39 +443,25 @@ export function injectAsFirstChild(
|
|
|
431
443
|
}
|
|
432
444
|
|
|
433
445
|
/**
|
|
434
|
-
* #
|
|
435
|
-
* Add
|
|
436
|
-
* @param element Element to which the `nsHostClassName` class will be added
|
|
437
|
-
* @param action Action to perform ('add' or 'remove').
|
|
446
|
+
* # Add NS Host Class
|
|
447
|
+
* Add the `nsHostClassName` class to the `element`.
|
|
448
|
+
* @param element Element to which the `nsHostClassName` class will be added.
|
|
438
449
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/Element/classList
|
|
439
450
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList/add
|
|
440
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList/remove
|
|
441
|
-
*/
|
|
442
|
-
export function setNSHostClass(
|
|
443
|
-
element: Element | null,
|
|
444
|
-
action: ClassListAction
|
|
445
|
-
): void {
|
|
446
|
-
element?.classList[action](Splash.NSHostClass)
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
/**
|
|
450
|
-
* # Prepare Parent Of
|
|
451
|
-
* Add the `nsHostClassName` class to the parent of the `ns` element.
|
|
452
|
-
* @param ns Nanosplash instance.
|
|
453
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/Element/parentElement
|
|
454
451
|
*/
|
|
455
|
-
export function
|
|
456
|
-
|
|
452
|
+
export function addNSHostClass(element: Element | null): void {
|
|
453
|
+
element?.classList.add(Splash.NSHostClass)
|
|
457
454
|
}
|
|
458
455
|
|
|
459
456
|
/**
|
|
460
|
-
* #
|
|
461
|
-
* Remove the `nsHostClassName` class from the
|
|
462
|
-
* @param
|
|
463
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/Element/
|
|
457
|
+
* # Remove NS Host Class
|
|
458
|
+
* Remove the `nsHostClassName` class from the `element`.
|
|
459
|
+
* @param element Element from which the `nsHostClassName` class will be removed.
|
|
460
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/Element/classList
|
|
461
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList/remove
|
|
464
462
|
*/
|
|
465
|
-
export function
|
|
466
|
-
|
|
463
|
+
export function removeNSHostClass(element: Element | null): void {
|
|
464
|
+
element?.classList.remove(Splash.NSHostClass)
|
|
467
465
|
}
|
|
468
466
|
|
|
469
467
|
/**
|
|
@@ -496,19 +494,22 @@ export function hideElement(element: HTMLElement): void {
|
|
|
496
494
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/Node
|
|
497
495
|
*/
|
|
498
496
|
export function elementFrom(ref: Reference): Element | null {
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
497
|
+
switch (typeof ref) {
|
|
498
|
+
case 'object':
|
|
499
|
+
const isBody = ref === document.body
|
|
500
|
+
const isElement = ref instanceof Element
|
|
501
|
+
if (isBody || isElement) {
|
|
502
|
+
return ref
|
|
503
|
+
<span class="branch-0 cbranch-no" title="branch not covered" > }</span>
|
|
504
|
+
<span class="cstat-no" title="statement not covered" > throw new Error(</span>
|
|
505
|
+
<span class="cstat-no" title="statement not covered" > 'Reference is an object but not an Element instance.'</span>
|
|
506
|
+
<span class="cstat-no" title="statement not covered" > )</span>
|
|
507
|
+
case 'string':
|
|
508
|
+
return document.querySelector(ref)
|
|
509
|
+
<span class="branch-0 cbranch-no" title="branch not covered" > default:</span>
|
|
510
|
+
<span class="cstat-no" title="statement not covered" > throw new Error('Reference is not an object or a string.')</span>
|
|
511
|
+
<span class="branch-0 cbranch-no" title="branch not covered" > }</span>
|
|
512
|
+
<span class="cstat-no" title="statement not covered" >}</span>
|
|
512
513
|
|
|
513
514
|
/**
|
|
514
515
|
* # Move
|
|
@@ -518,9 +519,9 @@ export function elementIsNS(element: Element): boolean {
|
|
|
518
519
|
*/
|
|
519
520
|
export function move(element: Element, targetElement: Element): void {
|
|
520
521
|
// Clean the current NS host element.
|
|
521
|
-
|
|
522
|
+
removeNSHostClass(element.parentElement)
|
|
522
523
|
// Assign new NS host element.
|
|
523
|
-
|
|
524
|
+
addNSHostClass(targetElement)
|
|
524
525
|
injectAsFirstChild(element, targetElement)
|
|
525
526
|
}
|
|
526
527
|
|
|
@@ -531,17 +532,19 @@ export function move(element: Element, targetElement: Element): void {
|
|
|
531
532
|
* @returns { Nanosplash | null } Nanosplash instance or null.
|
|
532
533
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/Document/firstElementChild
|
|
533
534
|
*/
|
|
534
|
-
export function
|
|
535
|
-
const
|
|
536
|
-
const
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
const
|
|
541
|
-
|
|
535
|
+
export function getRecycledSplash(targetElement: Element): Splash | null {
|
|
536
|
+
const children = Array.from(targetElement.<span class="branch-0 cbranch-no" title="branch not covered" >children || [])</span>
|
|
537
|
+
const nss = Service.getInstance()
|
|
538
|
+
let splash: Splash | null = null
|
|
539
|
+
const n = children.length
|
|
540
|
+
for (let i = 0; i < n; i++) {
|
|
541
|
+
const child = children[i]
|
|
542
|
+
if (child.classList.contains(Splash.NSClass)) {
|
|
543
|
+
splash = nss.nsQueue.get(child.id<span class="branch-0 cbranch-no" title="branch not covered" >) ?? null</span>
|
|
544
|
+
break
|
|
545
|
+
}
|
|
542
546
|
}
|
|
543
|
-
|
|
544
|
-
return null
|
|
547
|
+
return splash
|
|
545
548
|
}
|
|
546
549
|
</pre></td></tr></table></pre>
|
|
547
550
|
|
|
@@ -550,16 +553,16 @@ export function getRecycledNS(targetElement: Element): Splash | null {
|
|
|
550
553
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
551
554
|
Code coverage generated by
|
|
552
555
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
553
|
-
at 2023-
|
|
556
|
+
at 2023-10-19T21:38:28.926Z
|
|
554
557
|
</div>
|
|
555
|
-
<script src="
|
|
558
|
+
<script src="prettify.js"></script>
|
|
556
559
|
<script>
|
|
557
560
|
window.onload = function () {
|
|
558
561
|
prettyPrint();
|
|
559
562
|
};
|
|
560
563
|
</script>
|
|
561
|
-
<script src="
|
|
562
|
-
<script src="
|
|
564
|
+
<script src="sorter.js"></script>
|
|
565
|
+
<script src="block-navigation.js"></script>
|
|
563
566
|
</body>
|
|
564
567
|
</html>
|
|
565
568
|
|