@openreplay/tracker 11.0.0 → 11.0.1
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/CHANGELOG.md +4 -0
- package/cjs/app/index.d.ts +3 -0
- package/cjs/app/index.js +27 -4
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js +7 -1
- package/cjs/modules/userTesting/SignalManager.d.ts +29 -0
- package/cjs/modules/userTesting/SignalManager.js +83 -0
- package/cjs/modules/userTesting/index.d.ts +5 -5
- package/cjs/modules/userTesting/index.js +156 -189
- package/cjs/modules/userTesting/styles.d.ts +28 -11
- package/cjs/modules/userTesting/styles.js +51 -29
- package/cjs/modules/userTesting/utils.d.ts +9 -0
- package/cjs/modules/userTesting/utils.js +87 -0
- package/coverage/clover.xml +851 -351
- package/coverage/coverage-final.json +10 -4
- package/coverage/lcov-report/index.html +38 -23
- package/coverage/lcov-report/main/app/canvas.ts.html +1 -1
- package/coverage/lcov-report/main/app/guards.ts.html +42 -42
- package/coverage/lcov-report/main/app/index.html +24 -24
- package/coverage/lcov-report/main/app/index.ts.html +196 -28
- package/coverage/lcov-report/main/app/logger.ts.html +1 -1
- package/coverage/lcov-report/main/app/messages.gen.ts.html +1 -1
- package/coverage/lcov-report/main/app/nodes.ts.html +1 -1
- package/coverage/lcov-report/main/app/observer/iframe_observer.ts.html +1 -1
- package/coverage/lcov-report/main/app/observer/iframe_offsets.ts.html +1 -1
- package/coverage/lcov-report/main/app/observer/index.html +1 -1
- package/coverage/lcov-report/main/app/observer/shadow_root_observer.ts.html +1 -1
- package/coverage/lcov-report/main/app/observer/top_observer.ts.html +1 -1
- package/coverage/lcov-report/main/app/sanitizer.ts.html +1 -1
- package/coverage/lcov-report/main/app/session.ts.html +1 -1
- package/coverage/lcov-report/main/app/ticker.ts.html +1 -1
- package/coverage/lcov-report/main/index.html +11 -11
- package/coverage/lcov-report/main/index.ts.html +33 -6
- package/coverage/lcov-report/main/modules/Network/beaconProxy.ts.html +1 -1
- package/coverage/lcov-report/main/modules/Network/fetchProxy.ts.html +1 -1
- package/coverage/lcov-report/main/modules/Network/index.html +1 -1
- package/coverage/lcov-report/main/modules/Network/index.ts.html +1 -1
- package/coverage/lcov-report/main/modules/Network/networkMessage.ts.html +1 -1
- package/coverage/lcov-report/main/modules/Network/utils.ts.html +1 -1
- package/coverage/lcov-report/main/modules/Network/xhrProxy.ts.html +1 -1
- package/coverage/lcov-report/main/modules/attributeSender.ts.html +1 -1
- package/coverage/lcov-report/main/modules/axiosSpy.ts.html +1 -1
- package/coverage/lcov-report/main/modules/connection.ts.html +1 -1
- package/coverage/lcov-report/main/modules/console.ts.html +1 -1
- package/coverage/lcov-report/main/modules/constructedStyleSheets.ts.html +1 -1
- package/coverage/lcov-report/main/modules/cssrules.ts.html +1 -1
- package/coverage/lcov-report/main/modules/exception.ts.html +1 -1
- package/coverage/lcov-report/main/modules/featureFlags.ts.html +1 -1
- package/coverage/lcov-report/main/modules/focus.ts.html +1 -1
- package/coverage/lcov-report/main/modules/fonts.ts.html +1 -1
- package/coverage/lcov-report/main/modules/img.ts.html +1 -1
- package/coverage/lcov-report/main/modules/index.html +1 -1
- package/coverage/lcov-report/main/modules/input.ts.html +1 -1
- package/coverage/lcov-report/main/modules/mouse.ts.html +1 -1
- package/coverage/lcov-report/main/modules/network.ts.html +1 -1
- package/coverage/lcov-report/main/modules/performance.ts.html +1 -1
- package/coverage/lcov-report/main/modules/scroll.ts.html +1 -1
- package/coverage/lcov-report/main/modules/selection.ts.html +1 -1
- package/coverage/lcov-report/main/modules/tabs.ts.html +1 -1
- package/coverage/lcov-report/main/modules/timing.ts.html +1 -1
- package/coverage/lcov-report/main/modules/userTesting/SignalManager.ts.html +361 -0
- package/coverage/lcov-report/main/modules/userTesting/dnd.ts.html +10 -22
- package/coverage/lcov-report/main/modules/userTesting/index.html +61 -31
- package/coverage/lcov-report/main/modules/userTesting/index.ts.html +809 -113
- package/coverage/lcov-report/main/modules/userTesting/recorder.ts.html +136 -67
- package/coverage/lcov-report/main/modules/userTesting/styles.ts.html +159 -87
- package/coverage/lcov-report/main/modules/userTesting/utils.ts.html +361 -0
- package/coverage/lcov-report/main/modules/viewport.ts.html +1 -1
- package/coverage/lcov-report/main/utils.ts.html +48 -6
- package/coverage/lcov-report/webworker/BatchWriter.ts.html +1 -1
- package/coverage/lcov-report/webworker/MessageEncoder.gen.ts.html +1 -1
- package/coverage/lcov-report/webworker/PrimitiveEncoder.ts.html +1 -1
- package/coverage/lcov-report/webworker/QueueSender.ts.html +1 -1
- package/coverage/lcov-report/webworker/index.html +1 -1
- package/coverage/lcov-report/webworker/index.ts.html +1 -1
- package/coverage/lcov.info +1535 -653
- package/lib/app/index.d.ts +3 -0
- package/lib/app/index.js +27 -4
- package/lib/index.d.ts +1 -0
- package/lib/index.js +7 -1
- package/lib/modules/userTesting/SignalManager.d.ts +29 -0
- package/lib/modules/userTesting/SignalManager.js +80 -0
- package/lib/modules/userTesting/index.d.ts +5 -5
- package/lib/modules/userTesting/index.js +128 -161
- package/lib/modules/userTesting/styles.d.ts +28 -11
- package/lib/modules/userTesting/styles.js +50 -28
- package/lib/modules/userTesting/utils.d.ts +9 -0
- package/lib/modules/userTesting/utils.js +79 -0
- package/package.json +2 -2
|
@@ -25,28 +25,28 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">0% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>0/
|
|
28
|
+
<span class='fraction'>0/285</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">0% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/
|
|
35
|
+
<span class='fraction'>0/146</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">0% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>0/
|
|
42
|
+
<span class='fraction'>0/40</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">0% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>0/
|
|
49
|
+
<span class='fraction'>0/278</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -438,7 +438,240 @@
|
|
|
438
438
|
<a name='L373'></a><a href='#L373'>373</a>
|
|
439
439
|
<a name='L374'></a><a href='#L374'>374</a>
|
|
440
440
|
<a name='L375'></a><a href='#L375'>375</a>
|
|
441
|
-
<a name='L376'></a><a href='#L376'>376</a
|
|
441
|
+
<a name='L376'></a><a href='#L376'>376</a>
|
|
442
|
+
<a name='L377'></a><a href='#L377'>377</a>
|
|
443
|
+
<a name='L378'></a><a href='#L378'>378</a>
|
|
444
|
+
<a name='L379'></a><a href='#L379'>379</a>
|
|
445
|
+
<a name='L380'></a><a href='#L380'>380</a>
|
|
446
|
+
<a name='L381'></a><a href='#L381'>381</a>
|
|
447
|
+
<a name='L382'></a><a href='#L382'>382</a>
|
|
448
|
+
<a name='L383'></a><a href='#L383'>383</a>
|
|
449
|
+
<a name='L384'></a><a href='#L384'>384</a>
|
|
450
|
+
<a name='L385'></a><a href='#L385'>385</a>
|
|
451
|
+
<a name='L386'></a><a href='#L386'>386</a>
|
|
452
|
+
<a name='L387'></a><a href='#L387'>387</a>
|
|
453
|
+
<a name='L388'></a><a href='#L388'>388</a>
|
|
454
|
+
<a name='L389'></a><a href='#L389'>389</a>
|
|
455
|
+
<a name='L390'></a><a href='#L390'>390</a>
|
|
456
|
+
<a name='L391'></a><a href='#L391'>391</a>
|
|
457
|
+
<a name='L392'></a><a href='#L392'>392</a>
|
|
458
|
+
<a name='L393'></a><a href='#L393'>393</a>
|
|
459
|
+
<a name='L394'></a><a href='#L394'>394</a>
|
|
460
|
+
<a name='L395'></a><a href='#L395'>395</a>
|
|
461
|
+
<a name='L396'></a><a href='#L396'>396</a>
|
|
462
|
+
<a name='L397'></a><a href='#L397'>397</a>
|
|
463
|
+
<a name='L398'></a><a href='#L398'>398</a>
|
|
464
|
+
<a name='L399'></a><a href='#L399'>399</a>
|
|
465
|
+
<a name='L400'></a><a href='#L400'>400</a>
|
|
466
|
+
<a name='L401'></a><a href='#L401'>401</a>
|
|
467
|
+
<a name='L402'></a><a href='#L402'>402</a>
|
|
468
|
+
<a name='L403'></a><a href='#L403'>403</a>
|
|
469
|
+
<a name='L404'></a><a href='#L404'>404</a>
|
|
470
|
+
<a name='L405'></a><a href='#L405'>405</a>
|
|
471
|
+
<a name='L406'></a><a href='#L406'>406</a>
|
|
472
|
+
<a name='L407'></a><a href='#L407'>407</a>
|
|
473
|
+
<a name='L408'></a><a href='#L408'>408</a>
|
|
474
|
+
<a name='L409'></a><a href='#L409'>409</a>
|
|
475
|
+
<a name='L410'></a><a href='#L410'>410</a>
|
|
476
|
+
<a name='L411'></a><a href='#L411'>411</a>
|
|
477
|
+
<a name='L412'></a><a href='#L412'>412</a>
|
|
478
|
+
<a name='L413'></a><a href='#L413'>413</a>
|
|
479
|
+
<a name='L414'></a><a href='#L414'>414</a>
|
|
480
|
+
<a name='L415'></a><a href='#L415'>415</a>
|
|
481
|
+
<a name='L416'></a><a href='#L416'>416</a>
|
|
482
|
+
<a name='L417'></a><a href='#L417'>417</a>
|
|
483
|
+
<a name='L418'></a><a href='#L418'>418</a>
|
|
484
|
+
<a name='L419'></a><a href='#L419'>419</a>
|
|
485
|
+
<a name='L420'></a><a href='#L420'>420</a>
|
|
486
|
+
<a name='L421'></a><a href='#L421'>421</a>
|
|
487
|
+
<a name='L422'></a><a href='#L422'>422</a>
|
|
488
|
+
<a name='L423'></a><a href='#L423'>423</a>
|
|
489
|
+
<a name='L424'></a><a href='#L424'>424</a>
|
|
490
|
+
<a name='L425'></a><a href='#L425'>425</a>
|
|
491
|
+
<a name='L426'></a><a href='#L426'>426</a>
|
|
492
|
+
<a name='L427'></a><a href='#L427'>427</a>
|
|
493
|
+
<a name='L428'></a><a href='#L428'>428</a>
|
|
494
|
+
<a name='L429'></a><a href='#L429'>429</a>
|
|
495
|
+
<a name='L430'></a><a href='#L430'>430</a>
|
|
496
|
+
<a name='L431'></a><a href='#L431'>431</a>
|
|
497
|
+
<a name='L432'></a><a href='#L432'>432</a>
|
|
498
|
+
<a name='L433'></a><a href='#L433'>433</a>
|
|
499
|
+
<a name='L434'></a><a href='#L434'>434</a>
|
|
500
|
+
<a name='L435'></a><a href='#L435'>435</a>
|
|
501
|
+
<a name='L436'></a><a href='#L436'>436</a>
|
|
502
|
+
<a name='L437'></a><a href='#L437'>437</a>
|
|
503
|
+
<a name='L438'></a><a href='#L438'>438</a>
|
|
504
|
+
<a name='L439'></a><a href='#L439'>439</a>
|
|
505
|
+
<a name='L440'></a><a href='#L440'>440</a>
|
|
506
|
+
<a name='L441'></a><a href='#L441'>441</a>
|
|
507
|
+
<a name='L442'></a><a href='#L442'>442</a>
|
|
508
|
+
<a name='L443'></a><a href='#L443'>443</a>
|
|
509
|
+
<a name='L444'></a><a href='#L444'>444</a>
|
|
510
|
+
<a name='L445'></a><a href='#L445'>445</a>
|
|
511
|
+
<a name='L446'></a><a href='#L446'>446</a>
|
|
512
|
+
<a name='L447'></a><a href='#L447'>447</a>
|
|
513
|
+
<a name='L448'></a><a href='#L448'>448</a>
|
|
514
|
+
<a name='L449'></a><a href='#L449'>449</a>
|
|
515
|
+
<a name='L450'></a><a href='#L450'>450</a>
|
|
516
|
+
<a name='L451'></a><a href='#L451'>451</a>
|
|
517
|
+
<a name='L452'></a><a href='#L452'>452</a>
|
|
518
|
+
<a name='L453'></a><a href='#L453'>453</a>
|
|
519
|
+
<a name='L454'></a><a href='#L454'>454</a>
|
|
520
|
+
<a name='L455'></a><a href='#L455'>455</a>
|
|
521
|
+
<a name='L456'></a><a href='#L456'>456</a>
|
|
522
|
+
<a name='L457'></a><a href='#L457'>457</a>
|
|
523
|
+
<a name='L458'></a><a href='#L458'>458</a>
|
|
524
|
+
<a name='L459'></a><a href='#L459'>459</a>
|
|
525
|
+
<a name='L460'></a><a href='#L460'>460</a>
|
|
526
|
+
<a name='L461'></a><a href='#L461'>461</a>
|
|
527
|
+
<a name='L462'></a><a href='#L462'>462</a>
|
|
528
|
+
<a name='L463'></a><a href='#L463'>463</a>
|
|
529
|
+
<a name='L464'></a><a href='#L464'>464</a>
|
|
530
|
+
<a name='L465'></a><a href='#L465'>465</a>
|
|
531
|
+
<a name='L466'></a><a href='#L466'>466</a>
|
|
532
|
+
<a name='L467'></a><a href='#L467'>467</a>
|
|
533
|
+
<a name='L468'></a><a href='#L468'>468</a>
|
|
534
|
+
<a name='L469'></a><a href='#L469'>469</a>
|
|
535
|
+
<a name='L470'></a><a href='#L470'>470</a>
|
|
536
|
+
<a name='L471'></a><a href='#L471'>471</a>
|
|
537
|
+
<a name='L472'></a><a href='#L472'>472</a>
|
|
538
|
+
<a name='L473'></a><a href='#L473'>473</a>
|
|
539
|
+
<a name='L474'></a><a href='#L474'>474</a>
|
|
540
|
+
<a name='L475'></a><a href='#L475'>475</a>
|
|
541
|
+
<a name='L476'></a><a href='#L476'>476</a>
|
|
542
|
+
<a name='L477'></a><a href='#L477'>477</a>
|
|
543
|
+
<a name='L478'></a><a href='#L478'>478</a>
|
|
544
|
+
<a name='L479'></a><a href='#L479'>479</a>
|
|
545
|
+
<a name='L480'></a><a href='#L480'>480</a>
|
|
546
|
+
<a name='L481'></a><a href='#L481'>481</a>
|
|
547
|
+
<a name='L482'></a><a href='#L482'>482</a>
|
|
548
|
+
<a name='L483'></a><a href='#L483'>483</a>
|
|
549
|
+
<a name='L484'></a><a href='#L484'>484</a>
|
|
550
|
+
<a name='L485'></a><a href='#L485'>485</a>
|
|
551
|
+
<a name='L486'></a><a href='#L486'>486</a>
|
|
552
|
+
<a name='L487'></a><a href='#L487'>487</a>
|
|
553
|
+
<a name='L488'></a><a href='#L488'>488</a>
|
|
554
|
+
<a name='L489'></a><a href='#L489'>489</a>
|
|
555
|
+
<a name='L490'></a><a href='#L490'>490</a>
|
|
556
|
+
<a name='L491'></a><a href='#L491'>491</a>
|
|
557
|
+
<a name='L492'></a><a href='#L492'>492</a>
|
|
558
|
+
<a name='L493'></a><a href='#L493'>493</a>
|
|
559
|
+
<a name='L494'></a><a href='#L494'>494</a>
|
|
560
|
+
<a name='L495'></a><a href='#L495'>495</a>
|
|
561
|
+
<a name='L496'></a><a href='#L496'>496</a>
|
|
562
|
+
<a name='L497'></a><a href='#L497'>497</a>
|
|
563
|
+
<a name='L498'></a><a href='#L498'>498</a>
|
|
564
|
+
<a name='L499'></a><a href='#L499'>499</a>
|
|
565
|
+
<a name='L500'></a><a href='#L500'>500</a>
|
|
566
|
+
<a name='L501'></a><a href='#L501'>501</a>
|
|
567
|
+
<a name='L502'></a><a href='#L502'>502</a>
|
|
568
|
+
<a name='L503'></a><a href='#L503'>503</a>
|
|
569
|
+
<a name='L504'></a><a href='#L504'>504</a>
|
|
570
|
+
<a name='L505'></a><a href='#L505'>505</a>
|
|
571
|
+
<a name='L506'></a><a href='#L506'>506</a>
|
|
572
|
+
<a name='L507'></a><a href='#L507'>507</a>
|
|
573
|
+
<a name='L508'></a><a href='#L508'>508</a>
|
|
574
|
+
<a name='L509'></a><a href='#L509'>509</a>
|
|
575
|
+
<a name='L510'></a><a href='#L510'>510</a>
|
|
576
|
+
<a name='L511'></a><a href='#L511'>511</a>
|
|
577
|
+
<a name='L512'></a><a href='#L512'>512</a>
|
|
578
|
+
<a name='L513'></a><a href='#L513'>513</a>
|
|
579
|
+
<a name='L514'></a><a href='#L514'>514</a>
|
|
580
|
+
<a name='L515'></a><a href='#L515'>515</a>
|
|
581
|
+
<a name='L516'></a><a href='#L516'>516</a>
|
|
582
|
+
<a name='L517'></a><a href='#L517'>517</a>
|
|
583
|
+
<a name='L518'></a><a href='#L518'>518</a>
|
|
584
|
+
<a name='L519'></a><a href='#L519'>519</a>
|
|
585
|
+
<a name='L520'></a><a href='#L520'>520</a>
|
|
586
|
+
<a name='L521'></a><a href='#L521'>521</a>
|
|
587
|
+
<a name='L522'></a><a href='#L522'>522</a>
|
|
588
|
+
<a name='L523'></a><a href='#L523'>523</a>
|
|
589
|
+
<a name='L524'></a><a href='#L524'>524</a>
|
|
590
|
+
<a name='L525'></a><a href='#L525'>525</a>
|
|
591
|
+
<a name='L526'></a><a href='#L526'>526</a>
|
|
592
|
+
<a name='L527'></a><a href='#L527'>527</a>
|
|
593
|
+
<a name='L528'></a><a href='#L528'>528</a>
|
|
594
|
+
<a name='L529'></a><a href='#L529'>529</a>
|
|
595
|
+
<a name='L530'></a><a href='#L530'>530</a>
|
|
596
|
+
<a name='L531'></a><a href='#L531'>531</a>
|
|
597
|
+
<a name='L532'></a><a href='#L532'>532</a>
|
|
598
|
+
<a name='L533'></a><a href='#L533'>533</a>
|
|
599
|
+
<a name='L534'></a><a href='#L534'>534</a>
|
|
600
|
+
<a name='L535'></a><a href='#L535'>535</a>
|
|
601
|
+
<a name='L536'></a><a href='#L536'>536</a>
|
|
602
|
+
<a name='L537'></a><a href='#L537'>537</a>
|
|
603
|
+
<a name='L538'></a><a href='#L538'>538</a>
|
|
604
|
+
<a name='L539'></a><a href='#L539'>539</a>
|
|
605
|
+
<a name='L540'></a><a href='#L540'>540</a>
|
|
606
|
+
<a name='L541'></a><a href='#L541'>541</a>
|
|
607
|
+
<a name='L542'></a><a href='#L542'>542</a>
|
|
608
|
+
<a name='L543'></a><a href='#L543'>543</a>
|
|
609
|
+
<a name='L544'></a><a href='#L544'>544</a>
|
|
610
|
+
<a name='L545'></a><a href='#L545'>545</a>
|
|
611
|
+
<a name='L546'></a><a href='#L546'>546</a>
|
|
612
|
+
<a name='L547'></a><a href='#L547'>547</a>
|
|
613
|
+
<a name='L548'></a><a href='#L548'>548</a>
|
|
614
|
+
<a name='L549'></a><a href='#L549'>549</a>
|
|
615
|
+
<a name='L550'></a><a href='#L550'>550</a>
|
|
616
|
+
<a name='L551'></a><a href='#L551'>551</a>
|
|
617
|
+
<a name='L552'></a><a href='#L552'>552</a>
|
|
618
|
+
<a name='L553'></a><a href='#L553'>553</a>
|
|
619
|
+
<a name='L554'></a><a href='#L554'>554</a>
|
|
620
|
+
<a name='L555'></a><a href='#L555'>555</a>
|
|
621
|
+
<a name='L556'></a><a href='#L556'>556</a>
|
|
622
|
+
<a name='L557'></a><a href='#L557'>557</a>
|
|
623
|
+
<a name='L558'></a><a href='#L558'>558</a>
|
|
624
|
+
<a name='L559'></a><a href='#L559'>559</a>
|
|
625
|
+
<a name='L560'></a><a href='#L560'>560</a>
|
|
626
|
+
<a name='L561'></a><a href='#L561'>561</a>
|
|
627
|
+
<a name='L562'></a><a href='#L562'>562</a>
|
|
628
|
+
<a name='L563'></a><a href='#L563'>563</a>
|
|
629
|
+
<a name='L564'></a><a href='#L564'>564</a>
|
|
630
|
+
<a name='L565'></a><a href='#L565'>565</a>
|
|
631
|
+
<a name='L566'></a><a href='#L566'>566</a>
|
|
632
|
+
<a name='L567'></a><a href='#L567'>567</a>
|
|
633
|
+
<a name='L568'></a><a href='#L568'>568</a>
|
|
634
|
+
<a name='L569'></a><a href='#L569'>569</a>
|
|
635
|
+
<a name='L570'></a><a href='#L570'>570</a>
|
|
636
|
+
<a name='L571'></a><a href='#L571'>571</a>
|
|
637
|
+
<a name='L572'></a><a href='#L572'>572</a>
|
|
638
|
+
<a name='L573'></a><a href='#L573'>573</a>
|
|
639
|
+
<a name='L574'></a><a href='#L574'>574</a>
|
|
640
|
+
<a name='L575'></a><a href='#L575'>575</a>
|
|
641
|
+
<a name='L576'></a><a href='#L576'>576</a>
|
|
642
|
+
<a name='L577'></a><a href='#L577'>577</a>
|
|
643
|
+
<a name='L578'></a><a href='#L578'>578</a>
|
|
644
|
+
<a name='L579'></a><a href='#L579'>579</a>
|
|
645
|
+
<a name='L580'></a><a href='#L580'>580</a>
|
|
646
|
+
<a name='L581'></a><a href='#L581'>581</a>
|
|
647
|
+
<a name='L582'></a><a href='#L582'>582</a>
|
|
648
|
+
<a name='L583'></a><a href='#L583'>583</a>
|
|
649
|
+
<a name='L584'></a><a href='#L584'>584</a>
|
|
650
|
+
<a name='L585'></a><a href='#L585'>585</a>
|
|
651
|
+
<a name='L586'></a><a href='#L586'>586</a>
|
|
652
|
+
<a name='L587'></a><a href='#L587'>587</a>
|
|
653
|
+
<a name='L588'></a><a href='#L588'>588</a>
|
|
654
|
+
<a name='L589'></a><a href='#L589'>589</a>
|
|
655
|
+
<a name='L590'></a><a href='#L590'>590</a>
|
|
656
|
+
<a name='L591'></a><a href='#L591'>591</a>
|
|
657
|
+
<a name='L592'></a><a href='#L592'>592</a>
|
|
658
|
+
<a name='L593'></a><a href='#L593'>593</a>
|
|
659
|
+
<a name='L594'></a><a href='#L594'>594</a>
|
|
660
|
+
<a name='L595'></a><a href='#L595'>595</a>
|
|
661
|
+
<a name='L596'></a><a href='#L596'>596</a>
|
|
662
|
+
<a name='L597'></a><a href='#L597'>597</a>
|
|
663
|
+
<a name='L598'></a><a href='#L598'>598</a>
|
|
664
|
+
<a name='L599'></a><a href='#L599'>599</a>
|
|
665
|
+
<a name='L600'></a><a href='#L600'>600</a>
|
|
666
|
+
<a name='L601'></a><a href='#L601'>601</a>
|
|
667
|
+
<a name='L602'></a><a href='#L602'>602</a>
|
|
668
|
+
<a name='L603'></a><a href='#L603'>603</a>
|
|
669
|
+
<a name='L604'></a><a href='#L604'>604</a>
|
|
670
|
+
<a name='L605'></a><a href='#L605'>605</a>
|
|
671
|
+
<a name='L606'></a><a href='#L606'>606</a>
|
|
672
|
+
<a name='L607'></a><a href='#L607'>607</a>
|
|
673
|
+
<a name='L608'></a><a href='#L608'>608</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
674
|
+
<span class="cline-any cline-no"> </span>
|
|
442
675
|
<span class="cline-any cline-no"> </span>
|
|
443
676
|
<span class="cline-any cline-no"> </span>
|
|
444
677
|
<span class="cline-any cline-no"> </span>
|
|
@@ -450,16 +683,24 @@
|
|
|
450
683
|
<span class="cline-any cline-neutral"> </span>
|
|
451
684
|
<span class="cline-any cline-neutral"> </span>
|
|
452
685
|
<span class="cline-any cline-neutral"> </span>
|
|
453
|
-
<span class="cline-any cline-no"> </span>
|
|
454
|
-
<span class="cline-any cline-no"> </span>
|
|
455
|
-
<span class="cline-any cline-no"> </span>
|
|
456
|
-
<span class="cline-any cline-no"> </span>
|
|
457
|
-
<span class="cline-any cline-no"> </span>
|
|
458
686
|
<span class="cline-any cline-neutral"> </span>
|
|
459
687
|
<span class="cline-any cline-no"> </span>
|
|
460
|
-
<span class="cline-any cline-no"> </span>
|
|
461
688
|
<span class="cline-any cline-neutral"> </span>
|
|
462
|
-
<span class="cline-any cline-
|
|
689
|
+
<span class="cline-any cline-neutral"> </span>
|
|
690
|
+
<span class="cline-any cline-neutral"> </span>
|
|
691
|
+
<span class="cline-any cline-neutral"> </span>
|
|
692
|
+
<span class="cline-any cline-neutral"> </span>
|
|
693
|
+
<span class="cline-any cline-neutral"> </span>
|
|
694
|
+
<span class="cline-any cline-neutral"> </span>
|
|
695
|
+
<span class="cline-any cline-neutral"> </span>
|
|
696
|
+
<span class="cline-any cline-neutral"> </span>
|
|
697
|
+
<span class="cline-any cline-neutral"> </span>
|
|
698
|
+
<span class="cline-any cline-neutral"> </span>
|
|
699
|
+
<span class="cline-any cline-neutral"> </span>
|
|
700
|
+
<span class="cline-any cline-neutral"> </span>
|
|
701
|
+
<span class="cline-any cline-neutral"> </span>
|
|
702
|
+
<span class="cline-any cline-neutral"> </span>
|
|
703
|
+
<span class="cline-any cline-neutral"> </span>
|
|
463
704
|
<span class="cline-any cline-neutral"> </span>
|
|
464
705
|
<span class="cline-any cline-neutral"> </span>
|
|
465
706
|
<span class="cline-any cline-no"> </span>
|
|
@@ -486,6 +727,18 @@
|
|
|
486
727
|
<span class="cline-any cline-neutral"> </span>
|
|
487
728
|
<span class="cline-any cline-neutral"> </span>
|
|
488
729
|
<span class="cline-any cline-no"> </span>
|
|
730
|
+
<span class="cline-any cline-no"> </span>
|
|
731
|
+
<span class="cline-any cline-neutral"> </span>
|
|
732
|
+
<span class="cline-any cline-no"> </span>
|
|
733
|
+
<span class="cline-any cline-no"> </span>
|
|
734
|
+
<span class="cline-any cline-no"> </span>
|
|
735
|
+
<span class="cline-any cline-no"> </span>
|
|
736
|
+
<span class="cline-any cline-no"> </span>
|
|
737
|
+
<span class="cline-any cline-no"> </span>
|
|
738
|
+
<span class="cline-any cline-no"> </span>
|
|
739
|
+
<span class="cline-any cline-no"> </span>
|
|
740
|
+
<span class="cline-any cline-no"> </span>
|
|
741
|
+
<span class="cline-any cline-no"> </span>
|
|
489
742
|
<span class="cline-any cline-neutral"> </span>
|
|
490
743
|
<span class="cline-any cline-neutral"> </span>
|
|
491
744
|
<span class="cline-any cline-no"> </span>
|
|
@@ -493,23 +746,46 @@
|
|
|
493
746
|
<span class="cline-any cline-no"> </span>
|
|
494
747
|
<span class="cline-any cline-neutral"> </span>
|
|
495
748
|
<span class="cline-any cline-neutral"> </span>
|
|
749
|
+
<span class="cline-any cline-neutral"> </span>
|
|
750
|
+
<span class="cline-any cline-neutral"> </span>
|
|
751
|
+
<span class="cline-any cline-no"> </span>
|
|
752
|
+
<span class="cline-any cline-neutral"> </span>
|
|
753
|
+
<span class="cline-any cline-neutral"> </span>
|
|
754
|
+
<span class="cline-any cline-no"> </span>
|
|
755
|
+
<span class="cline-any cline-no"> </span>
|
|
496
756
|
<span class="cline-any cline-no"> </span>
|
|
497
757
|
<span class="cline-any cline-no"> </span>
|
|
498
758
|
<span class="cline-any cline-neutral"> </span>
|
|
499
759
|
<span class="cline-any cline-neutral"> </span>
|
|
500
760
|
<span class="cline-any cline-neutral"> </span>
|
|
501
761
|
<span class="cline-any cline-neutral"> </span>
|
|
762
|
+
<span class="cline-any cline-no"> </span>
|
|
502
763
|
<span class="cline-any cline-neutral"> </span>
|
|
503
764
|
<span class="cline-any cline-no"> </span>
|
|
765
|
+
<span class="cline-any cline-no"> </span>
|
|
766
|
+
<span class="cline-any cline-no"> </span>
|
|
767
|
+
<span class="cline-any cline-neutral"> </span>
|
|
768
|
+
<span class="cline-any cline-neutral"> </span>
|
|
769
|
+
<span class="cline-any cline-neutral"> </span>
|
|
770
|
+
<span class="cline-any cline-neutral"> </span>
|
|
771
|
+
<span class="cline-any cline-neutral"> </span>
|
|
772
|
+
<span class="cline-any cline-neutral"> </span>
|
|
504
773
|
<span class="cline-any cline-neutral"> </span>
|
|
505
774
|
<span class="cline-any cline-neutral"> </span>
|
|
506
775
|
<span class="cline-any cline-neutral"> </span>
|
|
507
776
|
<span class="cline-any cline-neutral"> </span>
|
|
777
|
+
<span class="cline-any cline-no"> </span>
|
|
778
|
+
<span class="cline-any cline-no"> </span>
|
|
779
|
+
<span class="cline-any cline-no"> </span>
|
|
780
|
+
<span class="cline-any cline-no"> </span>
|
|
508
781
|
<span class="cline-any cline-neutral"> </span>
|
|
509
782
|
<span class="cline-any cline-no"> </span>
|
|
783
|
+
<span class="cline-any cline-no"> </span>
|
|
510
784
|
<span class="cline-any cline-neutral"> </span>
|
|
511
785
|
<span class="cline-any cline-neutral"> </span>
|
|
786
|
+
<span class="cline-any cline-no"> </span>
|
|
512
787
|
<span class="cline-any cline-neutral"> </span>
|
|
788
|
+
<span class="cline-any cline-no"> </span>
|
|
513
789
|
<span class="cline-any cline-neutral"> </span>
|
|
514
790
|
<span class="cline-any cline-neutral"> </span>
|
|
515
791
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -519,20 +795,43 @@
|
|
|
519
795
|
<span class="cline-any cline-no"> </span>
|
|
520
796
|
<span class="cline-any cline-neutral"> </span>
|
|
521
797
|
<span class="cline-any cline-neutral"> </span>
|
|
798
|
+
<span class="cline-any cline-no"> </span>
|
|
799
|
+
<span class="cline-any cline-no"> </span>
|
|
800
|
+
<span class="cline-any cline-neutral"> </span>
|
|
801
|
+
<span class="cline-any cline-neutral"> </span>
|
|
522
802
|
<span class="cline-any cline-neutral"> </span>
|
|
523
803
|
<span class="cline-any cline-neutral"> </span>
|
|
524
804
|
<span class="cline-any cline-neutral"> </span>
|
|
525
805
|
<span class="cline-any cline-neutral"> </span>
|
|
526
806
|
<span class="cline-any cline-neutral"> </span>
|
|
807
|
+
<span class="cline-any cline-no"> </span>
|
|
527
808
|
<span class="cline-any cline-neutral"> </span>
|
|
528
809
|
<span class="cline-any cline-neutral"> </span>
|
|
529
810
|
<span class="cline-any cline-neutral"> </span>
|
|
530
811
|
<span class="cline-any cline-neutral"> </span>
|
|
531
812
|
<span class="cline-any cline-neutral"> </span>
|
|
532
813
|
<span class="cline-any cline-neutral"> </span>
|
|
814
|
+
<span class="cline-any cline-no"> </span>
|
|
815
|
+
<span class="cline-any cline-neutral"> </span>
|
|
816
|
+
<span class="cline-any cline-no"> </span>
|
|
817
|
+
<span class="cline-any cline-no"> </span>
|
|
533
818
|
<span class="cline-any cline-neutral"> </span>
|
|
819
|
+
<span class="cline-any cline-no"> </span>
|
|
820
|
+
<span class="cline-any cline-no"> </span>
|
|
821
|
+
<span class="cline-any cline-no"> </span>
|
|
822
|
+
<span class="cline-any cline-no"> </span>
|
|
534
823
|
<span class="cline-any cline-neutral"> </span>
|
|
824
|
+
<span class="cline-any cline-no"> </span>
|
|
825
|
+
<span class="cline-any cline-no"> </span>
|
|
826
|
+
<span class="cline-any cline-no"> </span>
|
|
827
|
+
<span class="cline-any cline-no"> </span>
|
|
828
|
+
<span class="cline-any cline-no"> </span>
|
|
829
|
+
<span class="cline-any cline-no"> </span>
|
|
535
830
|
<span class="cline-any cline-neutral"> </span>
|
|
831
|
+
<span class="cline-any cline-no"> </span>
|
|
832
|
+
<span class="cline-any cline-no"> </span>
|
|
833
|
+
<span class="cline-any cline-no"> </span>
|
|
834
|
+
<span class="cline-any cline-no"> </span>
|
|
536
835
|
<span class="cline-any cline-neutral"> </span>
|
|
537
836
|
<span class="cline-any cline-neutral"> </span>
|
|
538
837
|
<span class="cline-any cline-no"> </span>
|
|
@@ -547,6 +846,9 @@
|
|
|
547
846
|
<span class="cline-any cline-neutral"> </span>
|
|
548
847
|
<span class="cline-any cline-neutral"> </span>
|
|
549
848
|
<span class="cline-any cline-neutral"> </span>
|
|
849
|
+
<span class="cline-any cline-neutral"> </span>
|
|
850
|
+
<span class="cline-any cline-neutral"> </span>
|
|
851
|
+
<span class="cline-any cline-neutral"> </span>
|
|
550
852
|
<span class="cline-any cline-no"> </span>
|
|
551
853
|
<span class="cline-any cline-no"> </span>
|
|
552
854
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -561,6 +863,11 @@
|
|
|
561
863
|
<span class="cline-any cline-neutral"> </span>
|
|
562
864
|
<span class="cline-any cline-neutral"> </span>
|
|
563
865
|
<span class="cline-any cline-neutral"> </span>
|
|
866
|
+
<span class="cline-any cline-neutral"> </span>
|
|
867
|
+
<span class="cline-any cline-no"> </span>
|
|
868
|
+
<span class="cline-any cline-no"> </span>
|
|
869
|
+
<span class="cline-any cline-no"> </span>
|
|
870
|
+
<span class="cline-any cline-no"> </span>
|
|
564
871
|
<span class="cline-any cline-no"> </span>
|
|
565
872
|
<span class="cline-any cline-no"> </span>
|
|
566
873
|
<span class="cline-any cline-no"> </span>
|
|
@@ -574,15 +881,27 @@
|
|
|
574
881
|
<span class="cline-any cline-no"> </span>
|
|
575
882
|
<span class="cline-any cline-no"> </span>
|
|
576
883
|
<span class="cline-any cline-no"> </span>
|
|
884
|
+
<span class="cline-any cline-no"> </span>
|
|
885
|
+
<span class="cline-any cline-no"> </span>
|
|
577
886
|
<span class="cline-any cline-neutral"> </span>
|
|
578
887
|
<span class="cline-any cline-no"> </span>
|
|
888
|
+
<span class="cline-any cline-no"> </span>
|
|
889
|
+
<span class="cline-any cline-neutral"> </span>
|
|
890
|
+
<span class="cline-any cline-no"> </span>
|
|
891
|
+
<span class="cline-any cline-neutral"> </span>
|
|
579
892
|
<span class="cline-any cline-neutral"> </span>
|
|
580
893
|
<span class="cline-any cline-neutral"> </span>
|
|
581
894
|
<span class="cline-any cline-neutral"> </span>
|
|
582
895
|
<span class="cline-any cline-no"> </span>
|
|
583
896
|
<span class="cline-any cline-no"> </span>
|
|
584
897
|
<span class="cline-any cline-no"> </span>
|
|
585
|
-
<span class="cline-any cline-
|
|
898
|
+
<span class="cline-any cline-neutral"> </span>
|
|
899
|
+
<span class="cline-any cline-neutral"> </span>
|
|
900
|
+
<span class="cline-any cline-neutral"> </span>
|
|
901
|
+
<span class="cline-any cline-neutral"> </span>
|
|
902
|
+
<span class="cline-any cline-neutral"> </span>
|
|
903
|
+
<span class="cline-any cline-neutral"> </span>
|
|
904
|
+
<span class="cline-any cline-neutral"> </span>
|
|
586
905
|
<span class="cline-any cline-neutral"> </span>
|
|
587
906
|
<span class="cline-any cline-neutral"> </span>
|
|
588
907
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -592,6 +911,9 @@
|
|
|
592
911
|
<span class="cline-any cline-no"> </span>
|
|
593
912
|
<span class="cline-any cline-neutral"> </span>
|
|
594
913
|
<span class="cline-any cline-no"> </span>
|
|
914
|
+
<span class="cline-any cline-neutral"> </span>
|
|
915
|
+
<span class="cline-any cline-no"> </span>
|
|
916
|
+
<span class="cline-any cline-no"> </span>
|
|
595
917
|
<span class="cline-any cline-no"> </span>
|
|
596
918
|
<span class="cline-any cline-no"> </span>
|
|
597
919
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -629,36 +951,89 @@
|
|
|
629
951
|
<span class="cline-any cline-no"> </span>
|
|
630
952
|
<span class="cline-any cline-no"> </span>
|
|
631
953
|
<span class="cline-any cline-neutral"> </span>
|
|
954
|
+
<span class="cline-any cline-neutral"> </span>
|
|
955
|
+
<span class="cline-any cline-no"> </span>
|
|
956
|
+
<span class="cline-any cline-neutral"> </span>
|
|
957
|
+
<span class="cline-any cline-no"> </span>
|
|
958
|
+
<span class="cline-any cline-no"> </span>
|
|
959
|
+
<span class="cline-any cline-no"> </span>
|
|
960
|
+
<span class="cline-any cline-neutral"> </span>
|
|
961
|
+
<span class="cline-any cline-no"> </span>
|
|
962
|
+
<span class="cline-any cline-no"> </span>
|
|
963
|
+
<span class="cline-any cline-neutral"> </span>
|
|
964
|
+
<span class="cline-any cline-neutral"> </span>
|
|
965
|
+
<span class="cline-any cline-neutral"> </span>
|
|
966
|
+
<span class="cline-any cline-no"> </span>
|
|
967
|
+
<span class="cline-any cline-neutral"> </span>
|
|
968
|
+
<span class="cline-any cline-neutral"> </span>
|
|
969
|
+
<span class="cline-any cline-no"> </span>
|
|
970
|
+
<span class="cline-any cline-no"> </span>
|
|
971
|
+
<span class="cline-any cline-no"> </span>
|
|
972
|
+
<span class="cline-any cline-neutral"> </span>
|
|
973
|
+
<span class="cline-any cline-neutral"> </span>
|
|
974
|
+
<span class="cline-any cline-neutral"> </span>
|
|
975
|
+
<span class="cline-any cline-neutral"> </span>
|
|
976
|
+
<span class="cline-any cline-neutral"> </span>
|
|
977
|
+
<span class="cline-any cline-neutral"> </span>
|
|
978
|
+
<span class="cline-any cline-neutral"> </span>
|
|
979
|
+
<span class="cline-any cline-neutral"> </span>
|
|
980
|
+
<span class="cline-any cline-neutral"> </span>
|
|
981
|
+
<span class="cline-any cline-no"> </span>
|
|
632
982
|
<span class="cline-any cline-no"> </span>
|
|
633
983
|
<span class="cline-any cline-no"> </span>
|
|
634
984
|
<span class="cline-any cline-neutral"> </span>
|
|
635
985
|
<span class="cline-any cline-neutral"> </span>
|
|
636
986
|
<span class="cline-any cline-neutral"> </span>
|
|
987
|
+
<span class="cline-any cline-neutral"> </span>
|
|
988
|
+
<span class="cline-any cline-neutral"> </span>
|
|
989
|
+
<span class="cline-any cline-neutral"> </span>
|
|
990
|
+
<span class="cline-any cline-neutral"> </span>
|
|
637
991
|
<span class="cline-any cline-no"> </span>
|
|
638
992
|
<span class="cline-any cline-no"> </span>
|
|
993
|
+
<span class="cline-any cline-neutral"> </span>
|
|
639
994
|
<span class="cline-any cline-no"> </span>
|
|
640
995
|
<span class="cline-any cline-no"> </span>
|
|
641
996
|
<span class="cline-any cline-no"> </span>
|
|
997
|
+
<span class="cline-any cline-neutral"> </span>
|
|
998
|
+
<span class="cline-any cline-no"> </span>
|
|
642
999
|
<span class="cline-any cline-no"> </span>
|
|
643
1000
|
<span class="cline-any cline-no"> </span>
|
|
644
1001
|
<span class="cline-any cline-no"> </span>
|
|
645
1002
|
<span class="cline-any cline-neutral"> </span>
|
|
1003
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1004
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1005
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1006
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1007
|
+
<span class="cline-any cline-no"> </span>
|
|
646
1008
|
<span class="cline-any cline-no"> </span>
|
|
647
1009
|
<span class="cline-any cline-no"> </span>
|
|
648
1010
|
<span class="cline-any cline-no"> </span>
|
|
1011
|
+
<span class="cline-any cline-no"> </span>
|
|
1012
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1013
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1014
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1015
|
+
<span class="cline-any cline-no"> </span>
|
|
649
1016
|
<span class="cline-any cline-neutral"> </span>
|
|
650
1017
|
<span class="cline-any cline-no"> </span>
|
|
651
1018
|
<span class="cline-any cline-no"> </span>
|
|
652
1019
|
<span class="cline-any cline-no"> </span>
|
|
653
1020
|
<span class="cline-any cline-no"> </span>
|
|
1021
|
+
<span class="cline-any cline-no"> </span>
|
|
1022
|
+
<span class="cline-any cline-no"> </span>
|
|
654
1023
|
<span class="cline-any cline-neutral"> </span>
|
|
1024
|
+
<span class="cline-any cline-no"> </span>
|
|
1025
|
+
<span class="cline-any cline-no"> </span>
|
|
655
1026
|
<span class="cline-any cline-neutral"> </span>
|
|
656
1027
|
<span class="cline-any cline-neutral"> </span>
|
|
657
1028
|
<span class="cline-any cline-neutral"> </span>
|
|
1029
|
+
<span class="cline-any cline-no"> </span>
|
|
658
1030
|
<span class="cline-any cline-neutral"> </span>
|
|
659
1031
|
<span class="cline-any cline-no"> </span>
|
|
1032
|
+
<span class="cline-any cline-neutral"> </span>
|
|
660
1033
|
<span class="cline-any cline-no"> </span>
|
|
661
1034
|
<span class="cline-any cline-no"> </span>
|
|
1035
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1036
|
+
<span class="cline-any cline-neutral"> </span>
|
|
662
1037
|
<span class="cline-any cline-no"> </span>
|
|
663
1038
|
<span class="cline-any cline-neutral"> </span>
|
|
664
1039
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -671,13 +1046,26 @@
|
|
|
671
1046
|
<span class="cline-any cline-neutral"> </span>
|
|
672
1047
|
<span class="cline-any cline-neutral"> </span>
|
|
673
1048
|
<span class="cline-any cline-neutral"> </span>
|
|
1049
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1050
|
+
<span class="cline-any cline-no"> </span>
|
|
674
1051
|
<span class="cline-any cline-no"> </span>
|
|
675
1052
|
<span class="cline-any cline-no"> </span>
|
|
676
1053
|
<span class="cline-any cline-no"> </span>
|
|
677
1054
|
<span class="cline-any cline-no"> </span>
|
|
1055
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1056
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1057
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1058
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1059
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1060
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1061
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1062
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1063
|
+
<span class="cline-any cline-neutral"> </span>
|
|
678
1064
|
<span class="cline-any cline-no"> </span>
|
|
679
1065
|
<span class="cline-any cline-no"> </span>
|
|
680
1066
|
<span class="cline-any cline-no"> </span>
|
|
1067
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1068
|
+
<span class="cline-any cline-neutral"> </span>
|
|
681
1069
|
<span class="cline-any cline-no"> </span>
|
|
682
1070
|
<span class="cline-any cline-no"> </span>
|
|
683
1071
|
<span class="cline-any cline-no"> </span>
|
|
@@ -687,6 +1075,11 @@
|
|
|
687
1075
|
<span class="cline-any cline-no"> </span>
|
|
688
1076
|
<span class="cline-any cline-neutral"> </span>
|
|
689
1077
|
<span class="cline-any cline-neutral"> </span>
|
|
1078
|
+
<span class="cline-any cline-no"> </span>
|
|
1079
|
+
<span class="cline-any cline-no"> </span>
|
|
1080
|
+
<span class="cline-any cline-no"> </span>
|
|
1081
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1082
|
+
<span class="cline-any cline-neutral"> </span>
|
|
690
1083
|
<span class="cline-any cline-neutral"> </span>
|
|
691
1084
|
<span class="cline-any cline-neutral"> </span>
|
|
692
1085
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -707,16 +1100,36 @@
|
|
|
707
1100
|
<span class="cline-any cline-no"> </span>
|
|
708
1101
|
<span class="cline-any cline-no"> </span>
|
|
709
1102
|
<span class="cline-any cline-no"> </span>
|
|
710
|
-
<span class="cline-any cline-neutral"> </span>
|
|
711
|
-
<span class="cline-any cline-neutral"> </span>
|
|
712
1103
|
<span class="cline-any cline-no"> </span>
|
|
713
1104
|
<span class="cline-any cline-no"> </span>
|
|
1105
|
+
<span class="cline-any cline-neutral"> </span>
|
|
714
1106
|
<span class="cline-any cline-no"> </span>
|
|
1107
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1108
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1109
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1110
|
+
<span class="cline-any cline-neutral"> </span>
|
|
715
1111
|
<span class="cline-any cline-no"> </span>
|
|
716
1112
|
<span class="cline-any cline-no"> </span>
|
|
717
1113
|
<span class="cline-any cline-neutral"> </span>
|
|
1114
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1115
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1116
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1117
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1118
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1119
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1120
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1121
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1122
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1123
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1124
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1125
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1126
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1127
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1128
|
+
<span class="cline-any cline-no"> </span>
|
|
718
1129
|
<span class="cline-any cline-no"> </span>
|
|
719
1130
|
<span class="cline-any cline-neutral"> </span>
|
|
1131
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1132
|
+
<span class="cline-any cline-neutral"> </span>
|
|
720
1133
|
<span class="cline-any cline-no"> </span>
|
|
721
1134
|
<span class="cline-any cline-no"> </span>
|
|
722
1135
|
<span class="cline-any cline-no"> </span>
|
|
@@ -742,12 +1155,17 @@
|
|
|
742
1155
|
<span class="cline-any cline-neutral"> </span>
|
|
743
1156
|
<span class="cline-any cline-no"> </span>
|
|
744
1157
|
<span class="cline-any cline-no"> </span>
|
|
745
|
-
<span class="cline-any cline-neutral"> </span>
|
|
746
1158
|
<span class="cline-any cline-no"> </span>
|
|
747
1159
|
<span class="cline-any cline-no"> </span>
|
|
1160
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1161
|
+
<span class="cline-any cline-no"> </span>
|
|
748
1162
|
<span class="cline-any cline-no"> </span>
|
|
749
1163
|
<span class="cline-any cline-no"> </span>
|
|
750
1164
|
<span class="cline-any cline-no"> </span>
|
|
1165
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1166
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1167
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1168
|
+
<span class="cline-any cline-neutral"> </span>
|
|
751
1169
|
<span class="cline-any cline-no"> </span>
|
|
752
1170
|
<span class="cline-any cline-no"> </span>
|
|
753
1171
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -755,20 +1173,35 @@
|
|
|
755
1173
|
<span class="cline-any cline-no"> </span>
|
|
756
1174
|
<span class="cline-any cline-no"> </span>
|
|
757
1175
|
<span class="cline-any cline-no"> </span>
|
|
1176
|
+
<span class="cline-any cline-no"> </span>
|
|
1177
|
+
<span class="cline-any cline-no"> </span>
|
|
1178
|
+
<span class="cline-any cline-no"> </span>
|
|
1179
|
+
<span class="cline-any cline-no"> </span>
|
|
1180
|
+
<span class="cline-any cline-no"> </span>
|
|
758
1181
|
<span class="cline-any cline-neutral"> </span>
|
|
759
|
-
<span class="cline-any cline-
|
|
1182
|
+
<span class="cline-any cline-no"> </span>
|
|
760
1183
|
<span class="cline-any cline-neutral"> </span>
|
|
761
1184
|
<span class="cline-any cline-no"> </span>
|
|
762
1185
|
<span class="cline-any cline-neutral"> </span>
|
|
763
1186
|
<span class="cline-any cline-neutral"> </span>
|
|
764
1187
|
<span class="cline-any cline-neutral"> </span>
|
|
765
1188
|
<span class="cline-any cline-no"> </span>
|
|
1189
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1190
|
+
<span class="cline-any cline-no"> </span>
|
|
1191
|
+
<span class="cline-any cline-no"> </span>
|
|
1192
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1193
|
+
<span class="cline-any cline-no"> </span>
|
|
1194
|
+
<span class="cline-any cline-neutral"> </span>
|
|
766
1195
|
<span class="cline-any cline-no"> </span>
|
|
1196
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1197
|
+
<span class="cline-any cline-neutral"> </span>
|
|
767
1198
|
<span class="cline-any cline-no"> </span>
|
|
768
1199
|
<span class="cline-any cline-no"> </span>
|
|
769
1200
|
<span class="cline-any cline-no"> </span>
|
|
770
1201
|
<span class="cline-any cline-no"> </span>
|
|
771
1202
|
<span class="cline-any cline-neutral"> </span>
|
|
1203
|
+
<span class="cline-any cline-no"> </span>
|
|
1204
|
+
<span class="cline-any cline-no"> </span>
|
|
772
1205
|
<span class="cline-any cline-neutral"> </span>
|
|
773
1206
|
<span class="cline-any cline-no"> </span>
|
|
774
1207
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -777,6 +1210,7 @@
|
|
|
777
1210
|
<span class="cline-any cline-no"> </span>
|
|
778
1211
|
<span class="cline-any cline-no"> </span>
|
|
779
1212
|
<span class="cline-any cline-no"> </span>
|
|
1213
|
+
<span class="cline-any cline-no"> </span>
|
|
780
1214
|
<span class="cline-any cline-neutral"> </span>
|
|
781
1215
|
<span class="cline-any cline-neutral"> </span>
|
|
782
1216
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -793,20 +1227,50 @@
|
|
|
793
1227
|
<span class="cline-any cline-neutral"> </span>
|
|
794
1228
|
<span class="cline-any cline-neutral"> </span>
|
|
795
1229
|
<span class="cline-any cline-neutral"> </span>
|
|
1230
|
+
<span class="cline-any cline-neutral"> </span>
|
|
796
1231
|
<span class="cline-any cline-no"> </span>
|
|
797
1232
|
<span class="cline-any cline-neutral"> </span>
|
|
1233
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1234
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1235
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1236
|
+
<span class="cline-any cline-neutral"> </span>
|
|
798
1237
|
<span class="cline-any cline-no"> </span>
|
|
799
1238
|
<span class="cline-any cline-no"> </span>
|
|
800
1239
|
<span class="cline-any cline-neutral"> </span>
|
|
801
1240
|
<span class="cline-any cline-no"> </span>
|
|
802
1241
|
<span class="cline-any cline-no"> </span>
|
|
803
1242
|
<span class="cline-any cline-neutral"> </span>
|
|
1243
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1244
|
+
<span class="cline-any cline-no"> </span>
|
|
804
1245
|
<span class="cline-any cline-no"> </span>
|
|
805
1246
|
<span class="cline-any cline-no"> </span>
|
|
806
1247
|
<span class="cline-any cline-neutral"> </span>
|
|
807
1248
|
<span class="cline-any cline-neutral"> </span>
|
|
808
1249
|
<span class="cline-any cline-no"> </span>
|
|
809
1250
|
<span class="cline-any cline-no"> </span>
|
|
1251
|
+
<span class="cline-any cline-no"> </span>
|
|
1252
|
+
<span class="cline-any cline-no"> </span>
|
|
1253
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1254
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1255
|
+
<span class="cline-any cline-no"> </span>
|
|
1256
|
+
<span class="cline-any cline-no"> </span>
|
|
1257
|
+
<span class="cline-any cline-no"> </span>
|
|
1258
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1259
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1260
|
+
<span class="cline-any cline-no"> </span>
|
|
1261
|
+
<span class="cline-any cline-no"> </span>
|
|
1262
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1263
|
+
<span class="cline-any cline-no"> </span>
|
|
1264
|
+
<span class="cline-any cline-no"> </span>
|
|
1265
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1266
|
+
<span class="cline-any cline-no"> </span>
|
|
1267
|
+
<span class="cline-any cline-no"> </span>
|
|
1268
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1269
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1270
|
+
<span class="cline-any cline-no"> </span>
|
|
1271
|
+
<span class="cline-any cline-no"> </span>
|
|
1272
|
+
<span class="cline-any cline-no"> </span>
|
|
1273
|
+
<span class="cline-any cline-no"> </span>
|
|
810
1274
|
<span class="cline-any cline-neutral"> </span>
|
|
811
1275
|
<span class="cline-any cline-no"> </span>
|
|
812
1276
|
<span class="cline-any cline-no"> </span>
|
|
@@ -817,24 +1281,33 @@
|
|
|
817
1281
|
<span class="cstat-no" title="statement not covered" >import * as styles from './styles.js'</span>
|
|
818
1282
|
<span class="cstat-no" title="statement not covered" >import Recorder, { Quality } from './recorder.js'</span>
|
|
819
1283
|
<span class="cstat-no" title="statement not covered" >import attachDND from './dnd.js'</span>
|
|
1284
|
+
<span class="cstat-no" title="statement not covered" >import {</span>
|
|
1285
|
+
generateGrid,
|
|
1286
|
+
generateChevron,
|
|
1287
|
+
createSpinner,
|
|
1288
|
+
createElement,
|
|
1289
|
+
TEST_START,
|
|
1290
|
+
TASK_IND,
|
|
1291
|
+
SESSION_ID,
|
|
1292
|
+
TEST_ID,
|
|
1293
|
+
} from './utils.js'
|
|
1294
|
+
<span class="cstat-no" title="statement not covered" >import SignalManager from './SignalManager.js'</span>
|
|
820
1295
|
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
}
|
|
837
|
-
<span class="cstat-no" title="statement not covered" > return element</span>
|
|
1296
|
+
interface Test {
|
|
1297
|
+
title: string
|
|
1298
|
+
description: string
|
|
1299
|
+
startingPath: string
|
|
1300
|
+
status: string
|
|
1301
|
+
reqMic: boolean
|
|
1302
|
+
reqCamera: boolean
|
|
1303
|
+
guidelines: string
|
|
1304
|
+
conclusion: string
|
|
1305
|
+
tasks: {
|
|
1306
|
+
task_id: number
|
|
1307
|
+
title: string
|
|
1308
|
+
description: string
|
|
1309
|
+
allow_typing: boolean
|
|
1310
|
+
}[]
|
|
838
1311
|
}
|
|
839
1312
|
|
|
840
1313
|
<span class="cstat-no" title="statement not covered" >export default class U</span>serTestManager {
|
|
@@ -850,22 +1323,83 @@ function <span class="fstat-no" title="function not covered" >createElement(</sp
|
|
|
850
1323
|
private <span class="cstat-no" title="statement not covered" >widgetGuidelinesVisible = true</span>
|
|
851
1324
|
private <span class="cstat-no" title="statement not covered" >widgetTasksVisible = false</span>
|
|
852
1325
|
private <span class="cstat-no" title="statement not covered" >widgetVisible = true</span>
|
|
1326
|
+
public <span class="cstat-no" title="statement not covered" >isActive = false</span>
|
|
853
1327
|
private <span class="cstat-no" title="statement not covered" >descriptionSection: HTMLElement | null = null</span>
|
|
854
1328
|
private <span class="cstat-no" title="statement not covered" >taskSection: HTMLElement | null = null</span>
|
|
855
1329
|
private <span class="cstat-no" title="statement not covered" >endSection: HTMLElement | null = null</span>
|
|
856
1330
|
private <span class="cstat-no" title="statement not covered" >stopButton: HTMLElement | null = null</span>
|
|
857
|
-
private <span class="cstat-no" title="statement not covered" >
|
|
858
|
-
private <span class="cstat-no" title="statement not covered" >
|
|
859
|
-
private <span class="cstat-no" title="statement not covered" >
|
|
860
|
-
private <span class="cstat-no" title="statement not covered" >currentY = 0</span>
|
|
1331
|
+
private <span class="cstat-no" title="statement not covered" >test: Test | null = null</span>
|
|
1332
|
+
private <span class="cstat-no" title="statement not covered" >testId: number | null = null</span>
|
|
1333
|
+
private <span class="cstat-no" title="statement not covered" >signalManager: SignalManager | null = null</span>
|
|
861
1334
|
|
|
862
|
-
<span class="fstat-no" title="function not covered" > constructor(
|
|
1335
|
+
<span class="fstat-no" title="function not covered" > constructor(</span>
|
|
1336
|
+
private readonly <span class="cstat-no" title="statement not covered" >app: App,</span>
|
|
1337
|
+
private readonly <span class="cstat-no" title="statement not covered" >storageKey: string,</span>
|
|
1338
|
+
) {
|
|
863
1339
|
<span class="cstat-no" title="statement not covered" > this.userRecorder = new Recorder(app)</span>
|
|
1340
|
+
const sessionId = <span class="cstat-no" title="statement not covered" >this.app.getSessionID()</span>
|
|
1341
|
+
const savedSessionId = <span class="cstat-no" title="statement not covered" >this.app.localStorage.getItem(SESSION_ID)</span>
|
|
1342
|
+
<span class="cstat-no" title="statement not covered" > console.log(sessionId, savedSessionId)</span>
|
|
1343
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (sessionId !== savedSessionId) {</span>
|
|
1344
|
+
<span class="cstat-no" title="statement not covered" > this.app.localStorage.removeItem(this.storageKey)</span>
|
|
1345
|
+
<span class="cstat-no" title="statement not covered" > this.app.localStorage.removeItem(SESSION_ID)</span>
|
|
1346
|
+
<span class="cstat-no" title="statement not covered" > this.app.localStorage.removeItem(TEST_ID)</span>
|
|
1347
|
+
<span class="cstat-no" title="statement not covered" > this.app.localStorage.removeItem(TASK_IND)</span>
|
|
1348
|
+
<span class="cstat-no" title="statement not covered" > this.app.localStorage.removeItem(TEST_START)</span>
|
|
1349
|
+
}
|
|
1350
|
+
|
|
1351
|
+
const taskIndex = <span class="cstat-no" title="statement not covered" >this.app.localStorage.getItem(TASK_IND)</span>
|
|
1352
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (taskIndex) {</span>
|
|
1353
|
+
<span class="cstat-no" title="statement not covered" > this.currentTaskIndex = parseInt(taskIndex, 10)</span>
|
|
1354
|
+
}
|
|
1355
|
+
}
|
|
1356
|
+
|
|
1357
|
+
public <span class="fstat-no" title="function not covered" >getTestId(</span>) {
|
|
1358
|
+
<span class="cstat-no" title="statement not covered" > return this.testId</span>
|
|
1359
|
+
}
|
|
1360
|
+
|
|
1361
|
+
<span class="cstat-no" title="statement not covered" > getTest = <span class="fstat-no" title="function not covered" >(i</span>d: number, token: string, inProgress?: boolean) => {</span>
|
|
1362
|
+
<span class="cstat-no" title="statement not covered" > this.testId = id</span>
|
|
1363
|
+
const ingest = <span class="cstat-no" title="statement not covered" >this.app.options.ingestPoint</span>
|
|
1364
|
+
<span class="cstat-no" title="statement not covered" > return fetch(`${ingest}/v1/web/uxt/test/${id}`, {</span>
|
|
1365
|
+
headers: {
|
|
1366
|
+
Authorization: `Bearer ${token}`,
|
|
1367
|
+
},
|
|
1368
|
+
})
|
|
1369
|
+
.then(<span class="fstat-no" title="function not covered" >(r</span>es) => <span class="cstat-no" title="statement not covered" >res.json())</span>
|
|
1370
|
+
.then(<span class="fstat-no" title="function not covered" >({</span> test }: { test: Test }) => {
|
|
1371
|
+
<span class="cstat-no" title="statement not covered" > this.isActive = true</span>
|
|
1372
|
+
<span class="cstat-no" title="statement not covered" > this.test = test</span>
|
|
1373
|
+
<span class="cstat-no" title="statement not covered" > this.signalManager = new SignalManager(</span>
|
|
1374
|
+
this.app.options.ingestPoint,
|
|
1375
|
+
this.app.timestamp,
|
|
1376
|
+
token,
|
|
1377
|
+
id.toString(),
|
|
1378
|
+
this.storageKey,
|
|
1379
|
+
this.app.localStorage.setItem,
|
|
1380
|
+
this.app.localStorage.removeItem,
|
|
1381
|
+
this.app.localStorage.getItem,
|
|
1382
|
+
this.app.getSessionID as unknown as () => string,
|
|
1383
|
+
)
|
|
1384
|
+
<span class="cstat-no" title="statement not covered" > this.createGreeting(test.title, test.reqMic, test.reqCamera)</span>
|
|
1385
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (inProgress) {</span>
|
|
1386
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (test.reqMic || test.reqCamera) {</span>
|
|
1387
|
+
<span class="cstat-no" title="statement not covered" > void this.userRecorder.startRecording(30, Quality.Standard, test.reqMic, test.reqCamera)</span>
|
|
1388
|
+
}
|
|
1389
|
+
<span class="cstat-no" title="statement not covered" > this.showWidget(test.description, test.tasks, true)</span>
|
|
1390
|
+
<span class="cstat-no" title="statement not covered" > this.showTaskSection()</span>
|
|
1391
|
+
}
|
|
1392
|
+
})
|
|
1393
|
+
.then(<span class="fstat-no" title="function not covered" >() =</span>> <span class="cstat-no" title="statement not covered" >id)</span>
|
|
1394
|
+
.catch(<span class="fstat-no" title="function not covered" >(e</span>rr) => {
|
|
1395
|
+
<span class="cstat-no" title="statement not covered" > console.log('OR: Error fetching test', err)</span>
|
|
1396
|
+
})
|
|
864
1397
|
}
|
|
865
1398
|
|
|
866
1399
|
<span class="cstat-no" title="statement not covered" > hideTaskSection = <span class="fstat-no" title="function not covered" >() =</span>> <span class="cstat-no" title="statement not covered" >false</span></span>
|
|
867
1400
|
<span class="cstat-no" title="statement not covered" > showTaskSection = <span class="fstat-no" title="function not covered" >() =</span>> <span class="cstat-no" title="statement not covered" >true</span></span>
|
|
868
1401
|
<span class="cstat-no" title="statement not covered" > collapseWidget = <span class="fstat-no" title="function not covered" >() =</span>> <span class="cstat-no" title="statement not covered" >false</span></span>
|
|
1402
|
+
<span class="cstat-no" title="statement not covered" > removeGreeting = <span class="fstat-no" title="function not covered" >() =</span>> <span class="cstat-no" title="statement not covered" >false</span></span>
|
|
869
1403
|
|
|
870
1404
|
<span class="fstat-no" title="function not covered" > createGreeting(</span>title: string, micRequired: boolean, cameraRequired: boolean) {
|
|
871
1405
|
const titleElement = <span class="cstat-no" title="statement not covered" >createElement('div', 'title', styles.titleStyle, title)</span>
|
|
@@ -873,13 +1407,9 @@ function <span class="fstat-no" title="function not covered" >createElement(</sp
|
|
|
873
1407
|
'div',
|
|
874
1408
|
'description',
|
|
875
1409
|
styles.descriptionStyle,
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
'div',
|
|
880
|
-
'notice',
|
|
881
|
-
styles.noticeStyle,
|
|
882
|
-
'Please note that your audio, video, and screen will be recorded for research purposes during this test.',
|
|
1410
|
+
`Welcome, you're here to help us improve, not to be judged. Your insights matter!\n
|
|
1411
|
+
📹 We're recording this browser tab to learn from your experience.
|
|
1412
|
+
🎤 Please enable mic and camera if asked, to give us a complete picture.`,
|
|
883
1413
|
)
|
|
884
1414
|
const buttonElement = <span class="cstat-no" title="statement not covered" >createElement(</span>
|
|
885
1415
|
'div',
|
|
@@ -888,43 +1418,48 @@ function <span class="fstat-no" title="function not covered" >createElement(</sp
|
|
|
888
1418
|
'Read guidelines to begin',
|
|
889
1419
|
)
|
|
890
1420
|
|
|
1421
|
+
<span class="cstat-no" title="statement not covered" > this.removeGreeting = <span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1422
|
+
// this.container.innerHTML = ''
|
|
1423
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (micRequired || cameraRequired) {</span>
|
|
1424
|
+
<span class="cstat-no" title="statement not covered" > void this.userRecorder.startRecording(30, Quality.Standard, micRequired, cameraRequired)</span>
|
|
1425
|
+
}
|
|
1426
|
+
<span class="cstat-no" title="statement not covered" > this.container.removeChild(buttonElement)</span>
|
|
1427
|
+
<span class="cstat-no" title="statement not covered" > this.container.removeChild(descriptionElement)</span>
|
|
1428
|
+
<span class="cstat-no" title="statement not covered" > this.container.removeChild(titleElement)</span>
|
|
1429
|
+
<span class="cstat-no" title="statement not covered" > return false</span>
|
|
1430
|
+
}
|
|
891
1431
|
<span class="cstat-no" title="statement not covered" > buttonElement.onclick = <span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
892
|
-
<span class="cstat-no" title="statement not covered" > this.
|
|
893
|
-
<span class="cstat-no" title="statement not covered" >
|
|
894
|
-
<span class="cstat-no" title="statement not covered" > this.
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
description: 'This is a test description here',
|
|
903
|
-
},
|
|
904
|
-
{
|
|
905
|
-
title: 'Task 2',
|
|
906
|
-
description:
|
|
907
|
-
'This is a test description here there and not only there, more stuff to come',
|
|
908
|
-
},
|
|
909
|
-
],
|
|
910
|
-
)
|
|
1432
|
+
<span class="cstat-no" title="statement not covered" > this.removeGreeting()</span>
|
|
1433
|
+
const durations = <span class="cstat-no" title="statement not covered" >this.signalManager?.getDurations()</span>
|
|
1434
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (durations && this.signalManager) {</span>
|
|
1435
|
+
<span class="cstat-no" title="statement not covered" > durations.testStart = this.app.timestamp()</span>
|
|
1436
|
+
<span class="cstat-no" title="statement not covered" > this.signalManager.setDurations(durations)</span>
|
|
1437
|
+
}
|
|
1438
|
+
<span class="cstat-no" title="statement not covered" > void this.signalManager?.signalTest('begin')</span>
|
|
1439
|
+
<span class="cstat-no" title="statement not covered" > this.container.style.fontFamily = `-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"`</span>
|
|
1440
|
+
<span class="cstat-no" title="statement not covered" > Object.assign(this.container.style, styles.containerWidgetStyle)</span>
|
|
1441
|
+
<span class="cstat-no" title="statement not covered" > this.showWidget(this.test?.guidelines || '', this.test?.tasks || [])</span>
|
|
911
1442
|
}
|
|
912
1443
|
|
|
913
|
-
<span class="cstat-no" title="statement not covered" > this.container.append(titleElement, descriptionElement,
|
|
1444
|
+
<span class="cstat-no" title="statement not covered" > this.container.append(titleElement, descriptionElement, buttonElement)</span>
|
|
914
1445
|
<span class="cstat-no" title="statement not covered" > this.bg.appendChild(this.container)</span>
|
|
915
1446
|
<span class="cstat-no" title="statement not covered" > document.body.appendChild(this.bg)</span>
|
|
916
1447
|
}
|
|
917
1448
|
|
|
918
1449
|
<span class="fstat-no" title="function not covered" > showWidget(</span>
|
|
919
|
-
|
|
1450
|
+
guidelines: string,
|
|
920
1451
|
tasks: {
|
|
921
1452
|
title: string
|
|
922
1453
|
description: string
|
|
1454
|
+
task_id: number
|
|
1455
|
+
allow_typing: boolean
|
|
923
1456
|
}[],
|
|
1457
|
+
inProgress?: boolean,
|
|
924
1458
|
) {
|
|
925
1459
|
<span class="cstat-no" title="statement not covered" > this.container.innerHTML = ''</span>
|
|
926
1460
|
<span class="cstat-no" title="statement not covered" > Object.assign(this.bg.style, {</span>
|
|
927
|
-
position: '
|
|
1461
|
+
position: 'fixed',
|
|
1462
|
+
zIndex: 99999999999999,
|
|
928
1463
|
right: '8px',
|
|
929
1464
|
left: 'unset',
|
|
930
1465
|
width: 'fit-content',
|
|
@@ -937,37 +1472,56 @@ function <span class="fstat-no" title="function not covered" >createElement(</sp
|
|
|
937
1472
|
})
|
|
938
1473
|
// Create title section
|
|
939
1474
|
const titleSection = <span class="cstat-no" title="statement not covered" >this.createTitleSection()</span>
|
|
1475
|
+
<span class="cstat-no" title="statement not covered" > this.container.style.fontFamily = `-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"`</span>
|
|
940
1476
|
<span class="cstat-no" title="statement not covered" > Object.assign(this.container.style, styles.containerWidgetStyle)</span>
|
|
941
|
-
const descriptionSection = <span class="cstat-no" title="statement not covered" >this.createDescriptionSection(
|
|
1477
|
+
const descriptionSection = <span class="cstat-no" title="statement not covered" >this.createDescriptionSection(guidelines)</span>
|
|
942
1478
|
const tasksSection = <span class="cstat-no" title="statement not covered" >this.createTasksSection(tasks)</span>
|
|
943
1479
|
const stopButton = <span class="cstat-no" title="statement not covered" >createElement('div', 'stop_bn_or', styles.stopWidgetStyle, 'Abort Session')</span>
|
|
1480
|
+
const stopContainer = <span class="cstat-no" title="statement not covered" >createElement('div', 'stop_ct_or', { fontSize: '13px!important' })</span>
|
|
1481
|
+
<span class="cstat-no" title="statement not covered" > stopContainer.style.fontSize = '13px'</span>
|
|
1482
|
+
<span class="cstat-no" title="statement not covered" > stopContainer.append(stopButton)</span>
|
|
944
1483
|
|
|
945
|
-
<span class="cstat-no" title="statement not covered" > this.container.append(titleSection, descriptionSection, tasksSection,
|
|
1484
|
+
<span class="cstat-no" title="statement not covered" > this.container.append(titleSection, descriptionSection, tasksSection, stopContainer)</span>
|
|
946
1485
|
<span class="cstat-no" title="statement not covered" > this.taskSection = tasksSection</span>
|
|
947
1486
|
<span class="cstat-no" title="statement not covered" > this.descriptionSection = descriptionSection</span>
|
|
948
1487
|
<span class="cstat-no" title="statement not covered" > this.stopButton = stopButton</span>
|
|
949
1488
|
<span class="cstat-no" title="statement not covered" > stopButton.onclick = <span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
950
1489
|
<span class="cstat-no" title="statement not covered" > this.userRecorder.discard()</span>
|
|
1490
|
+
<span class="cstat-no" title="statement not covered" > void this.signalManager?.signalTest('skipped')</span>
|
|
951
1491
|
<span class="cstat-no" title="statement not covered" > document.body.removeChild(this.bg)</span>
|
|
1492
|
+
<span class="cstat-no" title="statement not covered" > window.close()</span>
|
|
1493
|
+
}
|
|
1494
|
+
<span class="cstat-no" title="statement not covered" > if (!inProgress) {</span>
|
|
1495
|
+
<span class="cstat-no" title="statement not covered" > this.hideTaskSection()</span>
|
|
1496
|
+
} else {
|
|
1497
|
+
<span class="cstat-no" title="statement not covered" > this.toggleDescriptionVisibility()</span>
|
|
952
1498
|
}
|
|
953
|
-
<span class="cstat-no" title="statement not covered" > this.hideTaskSection()</span>
|
|
954
1499
|
}
|
|
955
1500
|
|
|
956
1501
|
<span class="fstat-no" title="function not covered" > createTitleSection(</span>) {
|
|
957
1502
|
const title = <span class="cstat-no" title="statement not covered" >createElement('div', 'title', styles.titleWidgetStyle)</span>
|
|
958
|
-
const leftIcon = <span class="cstat-no" title="statement not covered" >
|
|
959
|
-
const titleText = <span class="cstat-no" title="statement not covered" >createElement(
|
|
960
|
-
const rightIcon = <span class="cstat-no" title="statement not covered" >createElement(</span>
|
|
1503
|
+
const leftIcon = <span class="cstat-no" title="statement not covered" >generateGrid()</span>
|
|
1504
|
+
const titleText = <span class="cstat-no" title="statement not covered" >createElement(</span>
|
|
961
1505
|
'div',
|
|
962
|
-
'
|
|
963
|
-
{
|
|
964
|
-
|
|
1506
|
+
'title_text',
|
|
1507
|
+
{
|
|
1508
|
+
maxWidth: '19rem',
|
|
1509
|
+
overflow: 'hidden',
|
|
1510
|
+
textOverflow: 'ellipsis',
|
|
1511
|
+
width: '100%',
|
|
1512
|
+
fontSize: 16,
|
|
1513
|
+
lineHeight: 'auto',
|
|
1514
|
+
cursor: 'pointer',
|
|
1515
|
+
},
|
|
1516
|
+
this.test?.title,
|
|
965
1517
|
)
|
|
1518
|
+
const rightIcon = <span class="cstat-no" title="statement not covered" >generateChevron()</span>
|
|
966
1519
|
|
|
967
1520
|
<span class="cstat-no" title="statement not covered" > title.append(leftIcon, titleText, rightIcon)</span>
|
|
968
1521
|
|
|
969
1522
|
const toggleWidget = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(i</span>sVisible: boolean) => {</span>
|
|
970
1523
|
<span class="cstat-no" title="statement not covered" > this.widgetVisible = isVisible</span>
|
|
1524
|
+
<span class="cstat-no" title="statement not covered" > this.container.style.fontFamily = `-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"`</span>
|
|
971
1525
|
<span class="cstat-no" title="statement not covered" > Object.assign(</span>
|
|
972
1526
|
this.container.style,
|
|
973
1527
|
this.widgetVisible
|
|
@@ -1001,25 +1555,51 @@ function <span class="fstat-no" title="function not covered" >createElement(</sp
|
|
|
1001
1555
|
<span class="cstat-no" title="statement not covered" > return isVisible</span>
|
|
1002
1556
|
}
|
|
1003
1557
|
|
|
1004
|
-
<span class="cstat-no" title="statement not covered"
|
|
1558
|
+
const collapseWidget = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1559
|
+
<span class="cstat-no" title="statement not covered" > Object.assign(rightIcon.style, {</span>
|
|
1560
|
+
transform: this.widgetVisible ? 'rotate(0deg)' : 'rotate(180deg)',
|
|
1561
|
+
})
|
|
1562
|
+
<span class="cstat-no" title="statement not covered" > toggleWidget(!this.widgetVisible)</span>
|
|
1563
|
+
}
|
|
1564
|
+
<span class="cstat-no" title="statement not covered" > titleText.onclick = collapseWidget</span>
|
|
1565
|
+
<span class="cstat-no" title="statement not covered" > rightIcon.onclick = collapseWidget</span>
|
|
1005
1566
|
<span class="cstat-no" title="statement not covered" > attachDND(this.bg, leftIcon)</span>
|
|
1006
1567
|
|
|
1007
1568
|
<span class="cstat-no" title="statement not covered" > this.collapseWidget = <span class="fstat-no" title="function not covered" >() =</span>> <span class="cstat-no" title="statement not covered" >toggleWidget(false)</span></span>
|
|
1008
1569
|
<span class="cstat-no" title="statement not covered" > return title</span>
|
|
1009
1570
|
}
|
|
1010
1571
|
|
|
1011
|
-
|
|
1572
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
1573
|
+
<span class="cstat-no" title="statement not covered" > toggleDescriptionVisibility = <span class="fstat-no" title="function not covered" >() =</span>> {}</span>
|
|
1574
|
+
|
|
1575
|
+
<span class="fstat-no" title="function not covered" > createDescriptionSection(</span>guidelines: string) {
|
|
1012
1576
|
const section = <span class="cstat-no" title="statement not covered" >createElement('div', 'description_section_or', styles.descriptionWidgetStyle)</span>
|
|
1013
1577
|
const titleContainer = <span class="cstat-no" title="statement not covered" >createElement('div', 'description_s_title_or', styles.sectionTitleStyle)</span>
|
|
1014
|
-
const title = <span class="cstat-no" title="statement not covered" >createElement(
|
|
1578
|
+
const title = <span class="cstat-no" title="statement not covered" >createElement(</span>
|
|
1579
|
+
'div',
|
|
1580
|
+
'title',
|
|
1581
|
+
{
|
|
1582
|
+
fontSize: 13,
|
|
1583
|
+
fontWeight: 500,
|
|
1584
|
+
lineHeight: 'auto',
|
|
1585
|
+
},
|
|
1586
|
+
'Introduction & Guidelines',
|
|
1587
|
+
)
|
|
1015
1588
|
const icon = <span class="cstat-no" title="statement not covered" >createElement('div', 'icon', styles.symbolIcon, '-')</span>
|
|
1016
1589
|
const content = <span class="cstat-no" title="statement not covered" >createElement('div', 'content', styles.contentStyle)</span>
|
|
1017
|
-
const
|
|
1018
|
-
|
|
1590
|
+
const descriptionC = <span class="cstat-no" title="statement not covered" >createElement('div', 'text_description', {</span>
|
|
1591
|
+
maxHeight: '250px',
|
|
1592
|
+
overflowY: 'auto',
|
|
1593
|
+
whiteSpace: 'pre-wrap',
|
|
1594
|
+
fontSize: 13,
|
|
1595
|
+
color: '#454545',
|
|
1596
|
+
lineHeight: 'auto',
|
|
1597
|
+
})
|
|
1598
|
+
<span class="cstat-no" title="statement not covered" > descriptionC.innerHTML = guidelines</span>
|
|
1019
1599
|
const button = <span class="cstat-no" title="statement not covered" >createElement('div', 'button_begin_or', styles.buttonWidgetStyle, 'Begin Test')</span>
|
|
1020
1600
|
|
|
1021
1601
|
<span class="cstat-no" title="statement not covered" > titleContainer.append(title, icon)</span>
|
|
1022
|
-
<span class="cstat-no" title="statement not covered" > content.append(
|
|
1602
|
+
<span class="cstat-no" title="statement not covered" > content.append(descriptionC, button)</span>
|
|
1023
1603
|
<span class="cstat-no" title="statement not covered" > section.append(titleContainer, content)</span>
|
|
1024
1604
|
|
|
1025
1605
|
const toggleDescriptionVisibility = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
@@ -1032,65 +1612,130 @@ function <span class="fstat-no" title="function not covered" >createElement(</sp
|
|
|
1032
1612
|
}
|
|
1033
1613
|
|
|
1034
1614
|
<span class="cstat-no" title="statement not covered" > titleContainer.onclick = toggleDescriptionVisibility</span>
|
|
1615
|
+
<span class="cstat-no" title="statement not covered" > this.toggleDescriptionVisibility = <span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1616
|
+
<span class="cstat-no" title="statement not covered" > this.widgetGuidelinesVisible = false</span>
|
|
1617
|
+
<span class="cstat-no" title="statement not covered" > icon.textContent = this.widgetGuidelinesVisible ? '-' : '+'</span>
|
|
1618
|
+
<span class="cstat-no" title="statement not covered" > Object.assign(</span>
|
|
1619
|
+
content.style,
|
|
1620
|
+
this.widgetGuidelinesVisible ? styles.contentStyle : { display: 'none' },
|
|
1621
|
+
)
|
|
1622
|
+
<span class="cstat-no" title="statement not covered" > content.removeChild(button)</span>
|
|
1623
|
+
}
|
|
1035
1624
|
<span class="cstat-no" title="statement not covered" > button.onclick = <span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1036
1625
|
<span class="cstat-no" title="statement not covered" > toggleDescriptionVisibility()</span>
|
|
1626
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.test) {</span>
|
|
1627
|
+
const durations = <span class="cstat-no" title="statement not covered" >this.signalManager?.getDurations()</span>
|
|
1628
|
+
const taskDurationInd = <span class="cstat-no" title="statement not covered" >durations</span>
|
|
1629
|
+
? durations.tasks.findIndex(<span class="fstat-no" title="function not covered" >(t</span>) => <span class="cstat-no" title="statement not covered" >this.test && t.taskId === this.test.tasks[0].task_id)</span>
|
|
1630
|
+
: null
|
|
1631
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (durations && taskDurationInd === -1) {</span>
|
|
1632
|
+
<span class="cstat-no" title="statement not covered" > durations.tasks.push({</span>
|
|
1633
|
+
taskId: this.test.tasks[0].task_id,
|
|
1634
|
+
started: this.app.timestamp(),
|
|
1635
|
+
})
|
|
1636
|
+
<span class="cstat-no" title="statement not covered" > this.signalManager?.setDurations(durations)</span>
|
|
1637
|
+
}
|
|
1638
|
+
<span class="cstat-no" title="statement not covered" > void this.signalManager?.signalTask(this.test.tasks[0].task_id, 'begin')</span>
|
|
1639
|
+
}
|
|
1037
1640
|
<span class="cstat-no" title="statement not covered" > this.showTaskSection()</span>
|
|
1641
|
+
<span class="cstat-no" title="statement not covered" > content.removeChild(button)</span>
|
|
1038
1642
|
}
|
|
1039
1643
|
|
|
1040
1644
|
<span class="cstat-no" title="statement not covered" > return section</span>
|
|
1041
1645
|
}
|
|
1042
1646
|
|
|
1647
|
+
<span class="cstat-no" title="statement not covered" > currentTaskIndex = 0</span>
|
|
1648
|
+
|
|
1043
1649
|
<span class="fstat-no" title="function not covered" > createTasksSection(</span>
|
|
1044
1650
|
tasks: {
|
|
1045
1651
|
title: string
|
|
1046
1652
|
description: string
|
|
1653
|
+
task_id: number
|
|
1654
|
+
allow_typing: boolean
|
|
1047
1655
|
}[],
|
|
1048
1656
|
) {
|
|
1049
|
-
|
|
1657
|
+
<span class="cstat-no" title="statement not covered" > this.container.style.fontFamily = `-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"`</span>
|
|
1658
|
+
<span class="cstat-no" title="statement not covered" > Object.assign(this.container.style, styles.containerWidgetStyle)</span>
|
|
1050
1659
|
const section = <span class="cstat-no" title="statement not covered" >createElement('div', 'task_section_or', styles.descriptionWidgetStyle)</span>
|
|
1051
1660
|
const titleContainer = <span class="cstat-no" title="statement not covered" >createElement('div', 'description_t_title_or', styles.sectionTitleStyle)</span>
|
|
1052
|
-
const title = <span class="cstat-no" title="statement not covered" >createElement(
|
|
1661
|
+
const title = <span class="cstat-no" title="statement not covered" >createElement(</span>
|
|
1662
|
+
'div',
|
|
1663
|
+
'title',
|
|
1664
|
+
{
|
|
1665
|
+
fontSize: '13px',
|
|
1666
|
+
fontWeight: '500',
|
|
1667
|
+
lineHeight: 'auto',
|
|
1668
|
+
},
|
|
1669
|
+
'Tasks',
|
|
1670
|
+
)
|
|
1053
1671
|
const icon = <span class="cstat-no" title="statement not covered" >createElement('div', 'icon', styles.symbolIcon, '-')</span>
|
|
1054
1672
|
const content = <span class="cstat-no" title="statement not covered" >createElement('div', 'content', styles.contentStyle)</span>
|
|
1055
1673
|
const pagination = <span class="cstat-no" title="statement not covered" >createElement('div', 'pagination', styles.paginationStyle)</span>
|
|
1056
|
-
const leftArrow =
|
|
1057
|
-
const rightArrow =
|
|
1674
|
+
// const leftArrow = createElement('span', 'leftArrow', {}, '<')
|
|
1675
|
+
// const rightArrow = createElement('span', 'rightArrow', {}, '>')
|
|
1058
1676
|
const taskCard = <span class="cstat-no" title="statement not covered" >createElement('div', 'taskCard', styles.taskDescriptionCard)</span>
|
|
1059
1677
|
const taskText = <span class="cstat-no" title="statement not covered" >createElement('div', 'taskText', styles.taskTextStyle)</span>
|
|
1060
1678
|
const taskDescription = <span class="cstat-no" title="statement not covered" >createElement('div', 'taskDescription', styles.taskDescriptionStyle)</span>
|
|
1061
1679
|
const taskButtons = <span class="cstat-no" title="statement not covered" >createElement('div', 'taskButtons', styles.taskButtonsRow)</span>
|
|
1680
|
+
const inputTitle = <span class="cstat-no" title="statement not covered" >createElement('div', 'taskText', styles.taskTextStyle)</span>
|
|
1681
|
+
<span class="cstat-no" title="statement not covered" > inputTitle.textContent = 'Your answer'</span>
|
|
1682
|
+
const inputArea = <span class="cstat-no" title="statement not covered" >createElement('textarea', 'taskDescription', {</span>
|
|
1683
|
+
resize: 'vertical',
|
|
1684
|
+
}) as HTMLTextAreaElement
|
|
1685
|
+
const inputContainer = <span class="cstat-no" title="statement not covered" >createElement('div', 'inputArea', styles.taskDescriptionCard)</span>
|
|
1686
|
+
<span class="cstat-no" title="statement not covered" > inputContainer.append(inputTitle, inputArea)</span>
|
|
1062
1687
|
const closePanelButton = <span class="cstat-no" title="statement not covered" >createElement(</span>
|
|
1063
1688
|
'div',
|
|
1064
1689
|
'closePanelButton',
|
|
1065
1690
|
styles.taskButtonStyle,
|
|
1066
|
-
'Collapse
|
|
1691
|
+
'Collapse Panel',
|
|
1067
1692
|
)
|
|
1068
1693
|
const nextButton = <span class="cstat-no" title="statement not covered" >createElement(</span>
|
|
1069
1694
|
'div',
|
|
1070
1695
|
'nextButton',
|
|
1071
1696
|
styles.taskButtonBorderedStyle,
|
|
1072
|
-
'Done,
|
|
1697
|
+
'Done, Next',
|
|
1073
1698
|
)
|
|
1074
1699
|
|
|
1075
1700
|
<span class="cstat-no" title="statement not covered" > titleContainer.append(title, icon)</span>
|
|
1076
1701
|
<span class="cstat-no" title="statement not covered" > taskCard.append(taskText, taskDescription)</span>
|
|
1077
1702
|
<span class="cstat-no" title="statement not covered" > taskButtons.append(closePanelButton, nextButton)</span>
|
|
1078
|
-
<span class="cstat-no" title="statement not covered" > content.append(pagination, taskCard, taskButtons)</span>
|
|
1703
|
+
<span class="cstat-no" title="statement not covered" > content.append(pagination, taskCard, inputContainer, taskButtons)</span>
|
|
1079
1704
|
<span class="cstat-no" title="statement not covered" > section.append(titleContainer, content)</span>
|
|
1080
1705
|
|
|
1081
1706
|
const updateTaskContent = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1082
|
-
const task = <span class="cstat-no" title="statement not covered" >tasks[currentTaskIndex]</span>
|
|
1707
|
+
const task = <span class="cstat-no" title="statement not covered" >tasks[this.currentTaskIndex]</span>
|
|
1083
1708
|
<span class="cstat-no" title="statement not covered" > taskText.textContent = task.title</span>
|
|
1084
1709
|
<span class="cstat-no" title="statement not covered" > taskDescription.textContent = task.description</span>
|
|
1710
|
+
<span class="cstat-no" title="statement not covered" > if (task.allow_typing) {</span>
|
|
1711
|
+
<span class="cstat-no" title="statement not covered" > inputContainer.style.display = 'flex'</span>
|
|
1712
|
+
} else {
|
|
1713
|
+
<span class="cstat-no" title="statement not covered" > inputContainer.style.display = 'none'</span>
|
|
1714
|
+
}
|
|
1085
1715
|
}
|
|
1086
1716
|
|
|
1087
|
-
|
|
1717
|
+
// pagination.appendChild(leftArrow)
|
|
1088
1718
|
<span class="cstat-no" title="statement not covered" > tasks.forEach(<span class="fstat-no" title="function not covered" >(_</span>, index) => {</span>
|
|
1089
|
-
const pageNumber = <span class="cstat-no" title="statement not covered" >createElement(
|
|
1719
|
+
const pageNumber = <span class="cstat-no" title="statement not covered" >createElement(</span>
|
|
1720
|
+
'span',
|
|
1721
|
+
`or_task_${index}`,
|
|
1722
|
+
{
|
|
1723
|
+
outline: '1px solid #efefef',
|
|
1724
|
+
fontSize: '13px',
|
|
1725
|
+
height: '24px',
|
|
1726
|
+
width: '24px',
|
|
1727
|
+
display: 'flex',
|
|
1728
|
+
flexDirection: 'column',
|
|
1729
|
+
alignItems: 'center',
|
|
1730
|
+
justifyContent: 'center',
|
|
1731
|
+
borderRadius: '6.25em',
|
|
1732
|
+
},
|
|
1733
|
+
(index + 1).toString(),
|
|
1734
|
+
)
|
|
1090
1735
|
<span class="cstat-no" title="statement not covered" > pageNumber.id = `or_task_${index}`</span>
|
|
1091
1736
|
<span class="cstat-no" title="statement not covered" > pagination.append(pageNumber)</span>
|
|
1092
1737
|
})
|
|
1093
|
-
|
|
1738
|
+
// pagination.appendChild(rightArrow)
|
|
1094
1739
|
|
|
1095
1740
|
const toggleTasksVisibility = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1096
1741
|
<span class="cstat-no" title="statement not covered" > this.widgetTasksVisible = !this.widgetTasksVisible</span>
|
|
@@ -1114,42 +1759,63 @@ function <span class="fstat-no" title="function not covered" >createElement(</sp
|
|
|
1114
1759
|
<span class="cstat-no" title="statement not covered" > this.widgetTasksVisible = true</span>
|
|
1115
1760
|
<span class="cstat-no" title="statement not covered" > return true</span>
|
|
1116
1761
|
}
|
|
1762
|
+
|
|
1763
|
+
const highlightActive = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1764
|
+
const activeTaskEl = <span class="cstat-no" title="statement not covered" >document.getElementById(`or_task_${this.currentTaskIndex}`)</span>
|
|
1765
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (activeTaskEl) {</span>
|
|
1766
|
+
<span class="cstat-no" title="statement not covered" > Object.assign(activeTaskEl.style, styles.taskNumberActive)</span>
|
|
1767
|
+
}
|
|
1768
|
+
<span class="cstat-no" title="statement not covered" > for (let i = <span class="cstat-no" title="statement not covered" >0;</span> i < this.currentTaskIndex; i++) {</span>
|
|
1769
|
+
const taskEl = <span class="cstat-no" title="statement not covered" >document.getElementById(`or_task_${i}`)</span>
|
|
1770
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (taskEl) {</span>
|
|
1771
|
+
<span class="cstat-no" title="statement not covered" > Object.assign(taskEl.style, styles.taskNumberDone)</span>
|
|
1772
|
+
}
|
|
1773
|
+
}
|
|
1774
|
+
}
|
|
1117
1775
|
|
|
1118
1776
|
<span class="cstat-no" title="statement not covered" > titleContainer.onclick = toggleTasksVisibility</span>
|
|
1119
1777
|
<span class="cstat-no" title="statement not covered" > closePanelButton.onclick = this.collapseWidget</span>
|
|
1120
1778
|
|
|
1121
1779
|
<span class="cstat-no" title="statement not covered" > nextButton.onclick = <span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1122
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1123
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1780
|
+
const textAnswer = <span class="cstat-no" title="statement not covered" >tasks[this.currentTaskIndex].allow_typing ? inputArea.value : undefined</span>
|
|
1781
|
+
<span class="cstat-no" title="statement not covered" > inputArea.value = ''</span>
|
|
1782
|
+
<span class="cstat-no" title="statement not covered" > void this.signalManager?.signalTask(tasks[this.currentTaskIndex].task_id, 'done', textAnswer)</span>
|
|
1783
|
+
<span class="cstat-no" title="statement not covered" > if (this.currentTaskIndex < tasks.length - 1) {</span>
|
|
1784
|
+
<span class="cstat-no" title="statement not covered" > this.currentTaskIndex++</span>
|
|
1124
1785
|
<span class="cstat-no" title="statement not covered" > updateTaskContent()</span>
|
|
1125
|
-
const
|
|
1126
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
}
|
|
1786
|
+
const durations = <span class="cstat-no" title="statement not covered" >this.signalManager?.getDurations()</span>
|
|
1787
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (</span>
|
|
1788
|
+
durations &&
|
|
1789
|
+
durations.tasks.findIndex(<span class="fstat-no" title="function not covered" >(t</span>) => <span class="cstat-no" title="statement not covered" >t.taskId === tasks[this.currentTaskIndex].task_id)</span> === -1
|
|
1790
|
+
) {
|
|
1791
|
+
<span class="cstat-no" title="statement not covered" > durations.tasks.push({</span>
|
|
1792
|
+
taskId: tasks[this.currentTaskIndex].task_id,
|
|
1793
|
+
started: this.app.timestamp(),
|
|
1794
|
+
})
|
|
1795
|
+
<span class="cstat-no" title="statement not covered" > this.signalManager?.setDurations(durations)</span>
|
|
1134
1796
|
}
|
|
1797
|
+
<span class="cstat-no" title="statement not covered" > void this.signalManager?.signalTask(tasks[this.currentTaskIndex].task_id, 'begin')</span>
|
|
1798
|
+
<span class="cstat-no" title="statement not covered" > highlightActive()</span>
|
|
1135
1799
|
} else {
|
|
1136
1800
|
<span class="cstat-no" title="statement not covered" > this.showEndSection()</span>
|
|
1137
1801
|
}
|
|
1802
|
+
<span class="cstat-no" title="statement not covered" > this.app.localStorage.setItem('or_uxt_task_index', this.currentTaskIndex.toString())</span>
|
|
1138
1803
|
}
|
|
1139
1804
|
|
|
1140
|
-
<span class="cstat-no" title="statement not covered" > updateTaskContent()</span>
|
|
1141
1805
|
<span class="cstat-no" title="statement not covered" > setTimeout(<span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1142
1806
|
const firstTaskEl = <span class="cstat-no" title="statement not covered" >document.getElementById('or_task_0')</span>
|
|
1143
|
-
<span class="cstat-no" title="statement not covered" > console.log(firstTaskEl, styles.taskNumberActive)</span>
|
|
1144
1807
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (firstTaskEl) {</span>
|
|
1145
1808
|
<span class="cstat-no" title="statement not covered" > Object.assign(firstTaskEl.style, styles.taskNumberActive)</span>
|
|
1146
1809
|
}
|
|
1810
|
+
<span class="cstat-no" title="statement not covered" > updateTaskContent()</span>
|
|
1811
|
+
<span class="cstat-no" title="statement not covered" > highlightActive()</span>
|
|
1147
1812
|
}, 1)
|
|
1148
1813
|
<span class="cstat-no" title="statement not covered" > return section</span>
|
|
1149
1814
|
}
|
|
1150
1815
|
|
|
1151
1816
|
<span class="fstat-no" title="function not covered" > showEndSection(</span>) {
|
|
1152
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1817
|
+
let isLoading = <span class="cstat-no" title="statement not covered" >true</span>
|
|
1818
|
+
<span class="cstat-no" title="statement not covered" > void this.signalManager?.signalTest('done')</span>
|
|
1153
1819
|
const section = <span class="cstat-no" title="statement not covered" >createElement('div', 'end_section_or', styles.endSectionStyle)</span>
|
|
1154
1820
|
const title = <span class="cstat-no" title="statement not covered" >createElement(</span>
|
|
1155
1821
|
'div',
|
|
@@ -1164,11 +1830,39 @@ function <span class="fstat-no" title="function not covered" >createElement(</sp
|
|
|
1164
1830
|
'div',
|
|
1165
1831
|
'end_description_or',
|
|
1166
1832
|
{},
|
|
1167
|
-
|
|
1168
|
-
'\n' +
|
|
1169
|
-
|
|
1833
|
+
this.test?.conclusion ??
|
|
1834
|
+
'Thank you for participating in our usability test. Your feedback has been captured and will be used to enhance our website. \n' +
|
|
1835
|
+
'\n' +
|
|
1836
|
+
'We appreciate your time and valuable input.',
|
|
1837
|
+
)
|
|
1838
|
+
const button = <span class="cstat-no" title="statement not covered" >createElement(</span>
|
|
1839
|
+
'div',
|
|
1840
|
+
'end_button_or',
|
|
1841
|
+
styles.buttonWidgetStyle,
|
|
1842
|
+
'Submitting Feedback',
|
|
1170
1843
|
)
|
|
1171
|
-
const
|
|
1844
|
+
const spinner = <span class="cstat-no" title="statement not covered" >createSpinner()</span>
|
|
1845
|
+
<span class="cstat-no" title="statement not covered" > button.appendChild(spinner)</span>
|
|
1846
|
+
|
|
1847
|
+
<span class="cstat-no" title="statement not covered" > if (this.test?.reqMic || this.test?.reqCamera) {</span>
|
|
1848
|
+
<span class="cstat-no" title="statement not covered" > void this.userRecorder</span>
|
|
1849
|
+
.sendToAPI()
|
|
1850
|
+
.then(<span class="fstat-no" title="function not covered" >() =</span>> {
|
|
1851
|
+
<span class="cstat-no" title="statement not covered" > button.removeChild(spinner)</span>
|
|
1852
|
+
<span class="cstat-no" title="statement not covered" > button.textContent = 'End Session'</span>
|
|
1853
|
+
<span class="cstat-no" title="statement not covered" > isLoading = false</span>
|
|
1854
|
+
})
|
|
1855
|
+
.catch(<span class="fstat-no" title="function not covered" >(e</span>rr) => {
|
|
1856
|
+
<span class="cstat-no" title="statement not covered" > console.error(err)</span>
|
|
1857
|
+
<span class="cstat-no" title="statement not covered" > button.removeChild(spinner)</span>
|
|
1858
|
+
<span class="cstat-no" title="statement not covered" > button.textContent = 'End Session'</span>
|
|
1859
|
+
<span class="cstat-no" title="statement not covered" > isLoading = false</span>
|
|
1860
|
+
})
|
|
1861
|
+
} else {
|
|
1862
|
+
<span class="cstat-no" title="statement not covered" > button.removeChild(spinner)</span>
|
|
1863
|
+
<span class="cstat-no" title="statement not covered" > button.textContent = 'End Session'</span>
|
|
1864
|
+
<span class="cstat-no" title="statement not covered" > isLoading = false</span>
|
|
1865
|
+
}
|
|
1172
1866
|
|
|
1173
1867
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.taskSection) {</span>
|
|
1174
1868
|
<span class="cstat-no" title="statement not covered" > this.container.removeChild(this.taskSection)</span>
|
|
@@ -1181,6 +1875,8 @@ function <span class="fstat-no" title="function not covered" >createElement(</sp
|
|
|
1181
1875
|
}
|
|
1182
1876
|
|
|
1183
1877
|
<span class="cstat-no" title="statement not covered" > button.onclick = <span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1878
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (isLoading) <span class="cstat-no" title="statement not covered" >return</span></span>
|
|
1879
|
+
<span class="cstat-no" title="statement not covered" > window.close()</span>
|
|
1184
1880
|
<span class="cstat-no" title="statement not covered" > document.body.removeChild(this.bg)</span>
|
|
1185
1881
|
}
|
|
1186
1882
|
<span class="cstat-no" title="statement not covered" > section.append(title, description, button)</span>
|
|
@@ -1195,7 +1891,7 @@ function <span class="fstat-no" title="function not covered" >createElement(</sp
|
|
|
1195
1891
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1196
1892
|
Code coverage generated by
|
|
1197
1893
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1198
|
-
at 2023-
|
|
1894
|
+
at 2023-12-12T11:45:01.048Z
|
|
1199
1895
|
</div>
|
|
1200
1896
|
<script src="../../../prettify.js"></script>
|
|
1201
1897
|
<script>
|