@openreplay/tracker 10.0.2 → 10.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/cjs/app/index.js +1 -1
- package/cjs/index.js +1 -1
- package/cjs/modules/Network/fetchProxy.js +4 -2
- package/cjs/utils.js +16 -2
- package/coverage/clover.xml +1575 -733
- package/coverage/coverage-final.json +22 -14
- package/coverage/lcov-report/index.html +60 -45
- package/coverage/lcov-report/main/app/canvas.ts.html +475 -0
- package/coverage/lcov-report/main/app/guards.ts.html +5 -2
- package/coverage/lcov-report/main/app/index.html +34 -19
- package/coverage/lcov-report/main/app/index.ts.html +1086 -45
- package/coverage/lcov-report/main/app/logger.ts.html +1 -1
- package/coverage/lcov-report/main/app/messages.gen.ts.html +179 -146
- 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 +20 -20
- package/coverage/lcov-report/main/index.ts.html +274 -100
- package/coverage/lcov-report/main/modules/Network/beaconProxy.ts.html +19 -19
- package/coverage/lcov-report/main/modules/Network/fetchProxy.ts.html +97 -97
- package/coverage/lcov-report/main/modules/Network/index.html +65 -65
- package/coverage/lcov-report/main/modules/Network/index.ts.html +33 -33
- package/coverage/lcov-report/main/modules/Network/networkMessage.ts.html +82 -73
- package/coverage/lcov-report/main/modules/Network/utils.ts.html +34 -34
- package/coverage/lcov-report/main/modules/Network/xhrProxy.ts.html +13 -13
- 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/conditionsManager.ts.html +799 -0
- 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 +10 -7
- 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 +27 -12
- 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 +2 -2
- 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 +370 -0
- package/coverage/lcov-report/main/modules/userTesting/dnd.ts.html +10 -22
- package/coverage/lcov-report/main/modules/userTesting/index.html +57 -27
- package/coverage/lcov-report/main/modules/userTesting/index.ts.html +814 -115
- package/coverage/lcov-report/main/modules/userTesting/recorder.ts.html +136 -67
- package/coverage/lcov-report/main/modules/userTesting/styles.ts.html +111 -39
- package/coverage/lcov-report/main/modules/userTesting/utils.ts.html +364 -0
- package/coverage/lcov-report/main/modules/viewport.ts.html +1 -1
- package/coverage/lcov-report/main/utils.ts.html +101 -59
- package/coverage/lcov-report/webworker/BatchWriter.ts.html +1 -1
- package/coverage/lcov-report/webworker/MessageEncoder.gen.ts.html +17 -5
- 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 +9 -9
- package/coverage/lcov-report/webworker/index.ts.html +15 -9
- package/coverage/lcov.info +2699 -1150
- package/lib/app/index.js +1 -1
- package/lib/common/tsconfig.tsbuildinfo +1 -1
- package/lib/index.js +1 -1
- package/lib/modules/Network/fetchProxy.js +4 -2
- package/lib/utils.js +16 -2
- package/package.json +1 -1
|
@@ -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/291</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/148</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/45</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/284</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -438,7 +438,241 @@
|
|
|
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>
|
|
674
|
+
<a name='L609'></a><a href='#L609'>609</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
675
|
+
<span class="cline-any cline-no"> </span>
|
|
442
676
|
<span class="cline-any cline-no"> </span>
|
|
443
677
|
<span class="cline-any cline-no"> </span>
|
|
444
678
|
<span class="cline-any cline-no"> </span>
|
|
@@ -450,16 +684,24 @@
|
|
|
450
684
|
<span class="cline-any cline-neutral"> </span>
|
|
451
685
|
<span class="cline-any cline-neutral"> </span>
|
|
452
686
|
<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
687
|
<span class="cline-any cline-neutral"> </span>
|
|
459
688
|
<span class="cline-any cline-no"> </span>
|
|
460
|
-
<span class="cline-any cline-no"> </span>
|
|
461
689
|
<span class="cline-any cline-neutral"> </span>
|
|
462
|
-
<span class="cline-any cline-
|
|
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>
|
|
704
|
+
<span class="cline-any cline-neutral"> </span>
|
|
463
705
|
<span class="cline-any cline-neutral"> </span>
|
|
464
706
|
<span class="cline-any cline-neutral"> </span>
|
|
465
707
|
<span class="cline-any cline-no"> </span>
|
|
@@ -483,9 +725,21 @@
|
|
|
483
725
|
<span class="cline-any cline-no"> </span>
|
|
484
726
|
<span class="cline-any cline-no"> </span>
|
|
485
727
|
<span class="cline-any cline-no"> </span>
|
|
728
|
+
<span class="cline-any cline-no"> </span>
|
|
486
729
|
<span class="cline-any cline-neutral"> </span>
|
|
487
730
|
<span class="cline-any cline-neutral"> </span>
|
|
488
731
|
<span class="cline-any cline-no"> </span>
|
|
732
|
+
<span class="cline-any cline-no"> </span>
|
|
733
|
+
<span class="cline-any cline-neutral"> </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>
|
|
742
|
+
<span class="cline-any cline-no"> </span>
|
|
489
743
|
<span class="cline-any cline-neutral"> </span>
|
|
490
744
|
<span class="cline-any cline-neutral"> </span>
|
|
491
745
|
<span class="cline-any cline-no"> </span>
|
|
@@ -493,23 +747,46 @@
|
|
|
493
747
|
<span class="cline-any cline-no"> </span>
|
|
494
748
|
<span class="cline-any cline-neutral"> </span>
|
|
495
749
|
<span class="cline-any cline-neutral"> </span>
|
|
750
|
+
<span class="cline-any cline-neutral"> </span>
|
|
751
|
+
<span class="cline-any cline-neutral"> </span>
|
|
752
|
+
<span class="cline-any cline-no"> </span>
|
|
753
|
+
<span class="cline-any cline-neutral"> </span>
|
|
754
|
+
<span class="cline-any cline-neutral"> </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>
|
|
758
|
+
<span class="cline-any cline-no"> </span>
|
|
759
|
+
<span class="cline-any cline-neutral"> </span>
|
|
498
760
|
<span class="cline-any cline-neutral"> </span>
|
|
499
761
|
<span class="cline-any cline-neutral"> </span>
|
|
500
762
|
<span class="cline-any cline-neutral"> </span>
|
|
763
|
+
<span class="cline-any cline-no"> </span>
|
|
501
764
|
<span class="cline-any cline-neutral"> </span>
|
|
765
|
+
<span class="cline-any cline-no"> </span>
|
|
766
|
+
<span class="cline-any cline-no"> </span>
|
|
767
|
+
<span class="cline-any cline-no"> </span>
|
|
502
768
|
<span class="cline-any cline-neutral"> </span>
|
|
503
769
|
<span class="cline-any cline-no"> </span>
|
|
504
770
|
<span class="cline-any cline-neutral"> </span>
|
|
505
771
|
<span class="cline-any cline-neutral"> </span>
|
|
506
772
|
<span class="cline-any cline-neutral"> </span>
|
|
773
|
+
<span class="cline-any cline-no"> </span>
|
|
774
|
+
<span class="cline-any cline-no"> </span>
|
|
775
|
+
<span class="cline-any cline-no"> </span>
|
|
776
|
+
<span class="cline-any cline-no"> </span>
|
|
507
777
|
<span class="cline-any cline-neutral"> </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>
|
|
781
|
+
<span class="cline-any cline-no"> </span>
|
|
508
782
|
<span class="cline-any cline-neutral"> </span>
|
|
509
783
|
<span class="cline-any cline-no"> </span>
|
|
784
|
+
<span class="cline-any cline-no"> </span>
|
|
510
785
|
<span class="cline-any cline-neutral"> </span>
|
|
511
786
|
<span class="cline-any cline-neutral"> </span>
|
|
787
|
+
<span class="cline-any cline-no"> </span>
|
|
512
788
|
<span class="cline-any cline-neutral"> </span>
|
|
789
|
+
<span class="cline-any cline-no"> </span>
|
|
513
790
|
<span class="cline-any cline-neutral"> </span>
|
|
514
791
|
<span class="cline-any cline-neutral"> </span>
|
|
515
792
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -519,20 +796,43 @@
|
|
|
519
796
|
<span class="cline-any cline-no"> </span>
|
|
520
797
|
<span class="cline-any cline-neutral"> </span>
|
|
521
798
|
<span class="cline-any cline-neutral"> </span>
|
|
799
|
+
<span class="cline-any cline-no"> </span>
|
|
800
|
+
<span class="cline-any cline-no"> </span>
|
|
801
|
+
<span class="cline-any cline-neutral"> </span>
|
|
802
|
+
<span class="cline-any cline-neutral"> </span>
|
|
522
803
|
<span class="cline-any cline-neutral"> </span>
|
|
523
804
|
<span class="cline-any cline-neutral"> </span>
|
|
524
805
|
<span class="cline-any cline-neutral"> </span>
|
|
525
806
|
<span class="cline-any cline-neutral"> </span>
|
|
526
807
|
<span class="cline-any cline-neutral"> </span>
|
|
808
|
+
<span class="cline-any cline-no"> </span>
|
|
527
809
|
<span class="cline-any cline-neutral"> </span>
|
|
528
810
|
<span class="cline-any cline-neutral"> </span>
|
|
529
811
|
<span class="cline-any cline-neutral"> </span>
|
|
530
812
|
<span class="cline-any cline-neutral"> </span>
|
|
531
813
|
<span class="cline-any cline-neutral"> </span>
|
|
532
814
|
<span class="cline-any cline-neutral"> </span>
|
|
815
|
+
<span class="cline-any cline-no"> </span>
|
|
816
|
+
<span class="cline-any cline-neutral"> </span>
|
|
817
|
+
<span class="cline-any cline-no"> </span>
|
|
818
|
+
<span class="cline-any cline-no"> </span>
|
|
533
819
|
<span class="cline-any cline-neutral"> </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>
|
|
823
|
+
<span class="cline-any cline-no"> </span>
|
|
534
824
|
<span class="cline-any cline-neutral"> </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>
|
|
830
|
+
<span class="cline-any cline-no"> </span>
|
|
535
831
|
<span class="cline-any cline-neutral"> </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>
|
|
835
|
+
<span class="cline-any cline-no"> </span>
|
|
536
836
|
<span class="cline-any cline-neutral"> </span>
|
|
537
837
|
<span class="cline-any cline-neutral"> </span>
|
|
538
838
|
<span class="cline-any cline-no"> </span>
|
|
@@ -547,6 +847,9 @@
|
|
|
547
847
|
<span class="cline-any cline-neutral"> </span>
|
|
548
848
|
<span class="cline-any cline-neutral"> </span>
|
|
549
849
|
<span class="cline-any cline-neutral"> </span>
|
|
850
|
+
<span class="cline-any cline-neutral"> </span>
|
|
851
|
+
<span class="cline-any cline-neutral"> </span>
|
|
852
|
+
<span class="cline-any cline-neutral"> </span>
|
|
550
853
|
<span class="cline-any cline-no"> </span>
|
|
551
854
|
<span class="cline-any cline-no"> </span>
|
|
552
855
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -561,6 +864,11 @@
|
|
|
561
864
|
<span class="cline-any cline-neutral"> </span>
|
|
562
865
|
<span class="cline-any cline-neutral"> </span>
|
|
563
866
|
<span class="cline-any cline-neutral"> </span>
|
|
867
|
+
<span class="cline-any cline-neutral"> </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>
|
|
871
|
+
<span class="cline-any cline-no"> </span>
|
|
564
872
|
<span class="cline-any cline-no"> </span>
|
|
565
873
|
<span class="cline-any cline-no"> </span>
|
|
566
874
|
<span class="cline-any cline-no"> </span>
|
|
@@ -574,15 +882,28 @@
|
|
|
574
882
|
<span class="cline-any cline-no"> </span>
|
|
575
883
|
<span class="cline-any cline-no"> </span>
|
|
576
884
|
<span class="cline-any cline-no"> </span>
|
|
885
|
+
<span class="cline-any cline-no"> </span>
|
|
886
|
+
<span class="cline-any cline-no"> </span>
|
|
887
|
+
<span class="cline-any cline-no"> </span>
|
|
577
888
|
<span class="cline-any cline-neutral"> </span>
|
|
578
889
|
<span class="cline-any cline-no"> </span>
|
|
890
|
+
<span class="cline-any cline-no"> </span>
|
|
891
|
+
<span class="cline-any cline-neutral"> </span>
|
|
892
|
+
<span class="cline-any cline-no"> </span>
|
|
893
|
+
<span class="cline-any cline-neutral"> </span>
|
|
579
894
|
<span class="cline-any cline-neutral"> </span>
|
|
580
895
|
<span class="cline-any cline-neutral"> </span>
|
|
581
896
|
<span class="cline-any cline-neutral"> </span>
|
|
582
897
|
<span class="cline-any cline-no"> </span>
|
|
583
898
|
<span class="cline-any cline-no"> </span>
|
|
584
899
|
<span class="cline-any cline-no"> </span>
|
|
585
|
-
<span class="cline-any cline-
|
|
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>
|
|
905
|
+
<span class="cline-any cline-neutral"> </span>
|
|
906
|
+
<span class="cline-any cline-neutral"> </span>
|
|
586
907
|
<span class="cline-any cline-neutral"> </span>
|
|
587
908
|
<span class="cline-any cline-neutral"> </span>
|
|
588
909
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -592,6 +913,9 @@
|
|
|
592
913
|
<span class="cline-any cline-no"> </span>
|
|
593
914
|
<span class="cline-any cline-neutral"> </span>
|
|
594
915
|
<span class="cline-any cline-no"> </span>
|
|
916
|
+
<span class="cline-any cline-neutral"> </span>
|
|
917
|
+
<span class="cline-any cline-no"> </span>
|
|
918
|
+
<span class="cline-any cline-no"> </span>
|
|
595
919
|
<span class="cline-any cline-no"> </span>
|
|
596
920
|
<span class="cline-any cline-no"> </span>
|
|
597
921
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -629,18 +953,44 @@
|
|
|
629
953
|
<span class="cline-any cline-no"> </span>
|
|
630
954
|
<span class="cline-any cline-no"> </span>
|
|
631
955
|
<span class="cline-any cline-neutral"> </span>
|
|
956
|
+
<span class="cline-any cline-neutral"> </span>
|
|
957
|
+
<span class="cline-any cline-no"> </span>
|
|
958
|
+
<span class="cline-any cline-neutral"> </span>
|
|
959
|
+
<span class="cline-any cline-no"> </span>
|
|
960
|
+
<span class="cline-any cline-no"> </span>
|
|
961
|
+
<span class="cline-any cline-no"> </span>
|
|
962
|
+
<span class="cline-any cline-neutral"> </span>
|
|
632
963
|
<span class="cline-any cline-no"> </span>
|
|
633
964
|
<span class="cline-any cline-no"> </span>
|
|
634
965
|
<span class="cline-any cline-neutral"> </span>
|
|
635
966
|
<span class="cline-any cline-neutral"> </span>
|
|
636
967
|
<span class="cline-any cline-neutral"> </span>
|
|
637
968
|
<span class="cline-any cline-no"> </span>
|
|
969
|
+
<span class="cline-any cline-neutral"> </span>
|
|
970
|
+
<span class="cline-any cline-neutral"> </span>
|
|
638
971
|
<span class="cline-any cline-no"> </span>
|
|
639
972
|
<span class="cline-any cline-no"> </span>
|
|
640
973
|
<span class="cline-any cline-no"> </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-neutral"> </span>
|
|
982
|
+
<span class="cline-any cline-neutral"> </span>
|
|
641
983
|
<span class="cline-any cline-no"> </span>
|
|
642
984
|
<span class="cline-any cline-no"> </span>
|
|
643
985
|
<span class="cline-any cline-no"> </span>
|
|
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>
|
|
991
|
+
<span class="cline-any cline-neutral"> </span>
|
|
992
|
+
<span class="cline-any cline-neutral"> </span>
|
|
993
|
+
<span class="cline-any cline-no"> </span>
|
|
644
994
|
<span class="cline-any cline-no"> </span>
|
|
645
995
|
<span class="cline-any cline-neutral"> </span>
|
|
646
996
|
<span class="cline-any cline-no"> </span>
|
|
@@ -660,24 +1010,64 @@
|
|
|
660
1010
|
<span class="cline-any cline-no"> </span>
|
|
661
1011
|
<span class="cline-any cline-no"> </span>
|
|
662
1012
|
<span class="cline-any cline-no"> </span>
|
|
1013
|
+
<span class="cline-any cline-no"> </span>
|
|
1014
|
+
<span class="cline-any cline-neutral"> </span>
|
|
663
1015
|
<span class="cline-any cline-neutral"> </span>
|
|
664
1016
|
<span class="cline-any cline-neutral"> </span>
|
|
665
1017
|
<span class="cline-any cline-no"> </span>
|
|
666
1018
|
<span class="cline-any cline-neutral"> </span>
|
|
1019
|
+
<span class="cline-any cline-no"> </span>
|
|
1020
|
+
<span class="cline-any cline-no"> </span>
|
|
1021
|
+
<span class="cline-any cline-no"> </span>
|
|
1022
|
+
<span class="cline-any cline-no"> </span>
|
|
1023
|
+
<span class="cline-any cline-no"> </span>
|
|
1024
|
+
<span class="cline-any cline-no"> </span>
|
|
1025
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1026
|
+
<span class="cline-any cline-no"> </span>
|
|
1027
|
+
<span class="cline-any cline-no"> </span>
|
|
667
1028
|
<span class="cline-any cline-neutral"> </span>
|
|
668
1029
|
<span class="cline-any cline-neutral"> </span>
|
|
669
1030
|
<span class="cline-any cline-neutral"> </span>
|
|
1031
|
+
<span class="cline-any cline-no"> </span>
|
|
670
1032
|
<span class="cline-any cline-neutral"> </span>
|
|
1033
|
+
<span class="cline-any cline-no"> </span>
|
|
671
1034
|
<span class="cline-any cline-neutral"> </span>
|
|
1035
|
+
<span class="cline-any cline-no"> </span>
|
|
1036
|
+
<span class="cline-any cline-no"> </span>
|
|
672
1037
|
<span class="cline-any cline-neutral"> </span>
|
|
673
1038
|
<span class="cline-any cline-neutral"> </span>
|
|
674
1039
|
<span class="cline-any cline-no"> </span>
|
|
1040
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1041
|
+
<span class="cline-any cline-neutral"> </span>
|
|
675
1042
|
<span class="cline-any cline-no"> </span>
|
|
1043
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1044
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1045
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1046
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1047
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1048
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1049
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1050
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1051
|
+
<span class="cline-any cline-neutral"> </span>
|
|
676
1052
|
<span class="cline-any cline-no"> </span>
|
|
677
1053
|
<span class="cline-any cline-no"> </span>
|
|
678
1054
|
<span class="cline-any cline-no"> </span>
|
|
679
1055
|
<span class="cline-any cline-no"> </span>
|
|
680
1056
|
<span class="cline-any cline-no"> </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>
|
|
1064
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1065
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1066
|
+
<span class="cline-any cline-no"> </span>
|
|
1067
|
+
<span class="cline-any cline-no"> </span>
|
|
1068
|
+
<span class="cline-any cline-no"> </span>
|
|
1069
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1070
|
+
<span class="cline-any cline-neutral"> </span>
|
|
681
1071
|
<span class="cline-any cline-no"> </span>
|
|
682
1072
|
<span class="cline-any cline-no"> </span>
|
|
683
1073
|
<span class="cline-any cline-no"> </span>
|
|
@@ -687,6 +1077,11 @@
|
|
|
687
1077
|
<span class="cline-any cline-no"> </span>
|
|
688
1078
|
<span class="cline-any cline-neutral"> </span>
|
|
689
1079
|
<span class="cline-any cline-neutral"> </span>
|
|
1080
|
+
<span class="cline-any cline-no"> </span>
|
|
1081
|
+
<span class="cline-any cline-no"> </span>
|
|
1082
|
+
<span class="cline-any cline-no"> </span>
|
|
1083
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1084
|
+
<span class="cline-any cline-neutral"> </span>
|
|
690
1085
|
<span class="cline-any cline-neutral"> </span>
|
|
691
1086
|
<span class="cline-any cline-neutral"> </span>
|
|
692
1087
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -707,16 +1102,36 @@
|
|
|
707
1102
|
<span class="cline-any cline-no"> </span>
|
|
708
1103
|
<span class="cline-any cline-no"> </span>
|
|
709
1104
|
<span class="cline-any cline-no"> </span>
|
|
710
|
-
<span class="cline-any cline-neutral"> </span>
|
|
711
|
-
<span class="cline-any cline-neutral"> </span>
|
|
712
1105
|
<span class="cline-any cline-no"> </span>
|
|
713
1106
|
<span class="cline-any cline-no"> </span>
|
|
1107
|
+
<span class="cline-any cline-neutral"> </span>
|
|
714
1108
|
<span class="cline-any cline-no"> </span>
|
|
1109
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1110
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1111
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1112
|
+
<span class="cline-any cline-neutral"> </span>
|
|
715
1113
|
<span class="cline-any cline-no"> </span>
|
|
716
1114
|
<span class="cline-any cline-no"> </span>
|
|
717
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-neutral"> </span>
|
|
1129
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1130
|
+
<span class="cline-any cline-no"> </span>
|
|
718
1131
|
<span class="cline-any cline-no"> </span>
|
|
719
1132
|
<span class="cline-any cline-neutral"> </span>
|
|
1133
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1134
|
+
<span class="cline-any cline-neutral"> </span>
|
|
720
1135
|
<span class="cline-any cline-no"> </span>
|
|
721
1136
|
<span class="cline-any cline-no"> </span>
|
|
722
1137
|
<span class="cline-any cline-no"> </span>
|
|
@@ -742,12 +1157,17 @@
|
|
|
742
1157
|
<span class="cline-any cline-neutral"> </span>
|
|
743
1158
|
<span class="cline-any cline-no"> </span>
|
|
744
1159
|
<span class="cline-any cline-no"> </span>
|
|
745
|
-
<span class="cline-any cline-neutral"> </span>
|
|
746
1160
|
<span class="cline-any cline-no"> </span>
|
|
747
1161
|
<span class="cline-any cline-no"> </span>
|
|
1162
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1163
|
+
<span class="cline-any cline-no"> </span>
|
|
748
1164
|
<span class="cline-any cline-no"> </span>
|
|
749
1165
|
<span class="cline-any cline-no"> </span>
|
|
750
1166
|
<span class="cline-any cline-no"> </span>
|
|
1167
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1168
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1169
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1170
|
+
<span class="cline-any cline-neutral"> </span>
|
|
751
1171
|
<span class="cline-any cline-no"> </span>
|
|
752
1172
|
<span class="cline-any cline-no"> </span>
|
|
753
1173
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -755,20 +1175,35 @@
|
|
|
755
1175
|
<span class="cline-any cline-no"> </span>
|
|
756
1176
|
<span class="cline-any cline-no"> </span>
|
|
757
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>
|
|
1181
|
+
<span class="cline-any cline-no"> </span>
|
|
1182
|
+
<span class="cline-any cline-no"> </span>
|
|
758
1183
|
<span class="cline-any cline-neutral"> </span>
|
|
759
|
-
<span class="cline-any cline-
|
|
1184
|
+
<span class="cline-any cline-no"> </span>
|
|
760
1185
|
<span class="cline-any cline-neutral"> </span>
|
|
761
1186
|
<span class="cline-any cline-no"> </span>
|
|
762
1187
|
<span class="cline-any cline-neutral"> </span>
|
|
763
1188
|
<span class="cline-any cline-neutral"> </span>
|
|
764
1189
|
<span class="cline-any cline-neutral"> </span>
|
|
765
1190
|
<span class="cline-any cline-no"> </span>
|
|
1191
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1192
|
+
<span class="cline-any cline-no"> </span>
|
|
1193
|
+
<span class="cline-any cline-no"> </span>
|
|
1194
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1195
|
+
<span class="cline-any cline-no"> </span>
|
|
1196
|
+
<span class="cline-any cline-neutral"> </span>
|
|
766
1197
|
<span class="cline-any cline-no"> </span>
|
|
1198
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1199
|
+
<span class="cline-any cline-neutral"> </span>
|
|
767
1200
|
<span class="cline-any cline-no"> </span>
|
|
768
1201
|
<span class="cline-any cline-no"> </span>
|
|
769
1202
|
<span class="cline-any cline-no"> </span>
|
|
770
1203
|
<span class="cline-any cline-no"> </span>
|
|
771
1204
|
<span class="cline-any cline-neutral"> </span>
|
|
1205
|
+
<span class="cline-any cline-no"> </span>
|
|
1206
|
+
<span class="cline-any cline-no"> </span>
|
|
772
1207
|
<span class="cline-any cline-neutral"> </span>
|
|
773
1208
|
<span class="cline-any cline-no"> </span>
|
|
774
1209
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -777,6 +1212,7 @@
|
|
|
777
1212
|
<span class="cline-any cline-no"> </span>
|
|
778
1213
|
<span class="cline-any cline-no"> </span>
|
|
779
1214
|
<span class="cline-any cline-no"> </span>
|
|
1215
|
+
<span class="cline-any cline-no"> </span>
|
|
780
1216
|
<span class="cline-any cline-neutral"> </span>
|
|
781
1217
|
<span class="cline-any cline-neutral"> </span>
|
|
782
1218
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -793,20 +1229,50 @@
|
|
|
793
1229
|
<span class="cline-any cline-neutral"> </span>
|
|
794
1230
|
<span class="cline-any cline-neutral"> </span>
|
|
795
1231
|
<span class="cline-any cline-neutral"> </span>
|
|
1232
|
+
<span class="cline-any cline-neutral"> </span>
|
|
796
1233
|
<span class="cline-any cline-no"> </span>
|
|
797
1234
|
<span class="cline-any cline-neutral"> </span>
|
|
1235
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1236
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1237
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1238
|
+
<span class="cline-any cline-neutral"> </span>
|
|
798
1239
|
<span class="cline-any cline-no"> </span>
|
|
799
1240
|
<span class="cline-any cline-no"> </span>
|
|
800
1241
|
<span class="cline-any cline-neutral"> </span>
|
|
801
1242
|
<span class="cline-any cline-no"> </span>
|
|
802
1243
|
<span class="cline-any cline-no"> </span>
|
|
803
1244
|
<span class="cline-any cline-neutral"> </span>
|
|
1245
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1246
|
+
<span class="cline-any cline-no"> </span>
|
|
804
1247
|
<span class="cline-any cline-no"> </span>
|
|
805
1248
|
<span class="cline-any cline-no"> </span>
|
|
806
1249
|
<span class="cline-any cline-neutral"> </span>
|
|
807
1250
|
<span class="cline-any cline-neutral"> </span>
|
|
808
1251
|
<span class="cline-any cline-no"> </span>
|
|
809
1252
|
<span class="cline-any cline-no"> </span>
|
|
1253
|
+
<span class="cline-any cline-no"> </span>
|
|
1254
|
+
<span class="cline-any cline-no"> </span>
|
|
1255
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1256
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1257
|
+
<span class="cline-any cline-no"> </span>
|
|
1258
|
+
<span class="cline-any cline-no"> </span>
|
|
1259
|
+
<span class="cline-any cline-no"> </span>
|
|
1260
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1261
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1262
|
+
<span class="cline-any cline-no"> </span>
|
|
1263
|
+
<span class="cline-any cline-no"> </span>
|
|
1264
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1265
|
+
<span class="cline-any cline-no"> </span>
|
|
1266
|
+
<span class="cline-any cline-no"> </span>
|
|
1267
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1268
|
+
<span class="cline-any cline-no"> </span>
|
|
1269
|
+
<span class="cline-any cline-no"> </span>
|
|
1270
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1271
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1272
|
+
<span class="cline-any cline-no"> </span>
|
|
1273
|
+
<span class="cline-any cline-no"> </span>
|
|
1274
|
+
<span class="cline-any cline-no"> </span>
|
|
1275
|
+
<span class="cline-any cline-no"> </span>
|
|
810
1276
|
<span class="cline-any cline-neutral"> </span>
|
|
811
1277
|
<span class="cline-any cline-no"> </span>
|
|
812
1278
|
<span class="cline-any cline-no"> </span>
|
|
@@ -817,24 +1283,33 @@
|
|
|
817
1283
|
<span class="cstat-no" title="statement not covered" >import * as styles from './styles.js'</span>
|
|
818
1284
|
<span class="cstat-no" title="statement not covered" >import Recorder, { Quality } from './recorder.js'</span>
|
|
819
1285
|
<span class="cstat-no" title="statement not covered" >import attachDND from './dnd.js'</span>
|
|
1286
|
+
<span class="cstat-no" title="statement not covered" >import {</span>
|
|
1287
|
+
generateGrid,
|
|
1288
|
+
generateChevron,
|
|
1289
|
+
createSpinner,
|
|
1290
|
+
createElement,
|
|
1291
|
+
TEST_START,
|
|
1292
|
+
TASK_IND,
|
|
1293
|
+
SESSION_ID,
|
|
1294
|
+
TEST_ID,
|
|
1295
|
+
} from './utils.js'
|
|
1296
|
+
<span class="cstat-no" title="statement not covered" >import SignalManager from './SignalManager.js'</span>
|
|
820
1297
|
|
|
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>
|
|
1298
|
+
interface Test {
|
|
1299
|
+
title: string
|
|
1300
|
+
description: string
|
|
1301
|
+
startingPath: string
|
|
1302
|
+
status: string
|
|
1303
|
+
reqMic: boolean
|
|
1304
|
+
reqCamera: boolean
|
|
1305
|
+
guidelines: string
|
|
1306
|
+
conclusion: string
|
|
1307
|
+
tasks: {
|
|
1308
|
+
task_id: number
|
|
1309
|
+
title: string
|
|
1310
|
+
description: string
|
|
1311
|
+
allow_typing: boolean
|
|
1312
|
+
}[]
|
|
838
1313
|
}
|
|
839
1314
|
|
|
840
1315
|
<span class="cstat-no" title="statement not covered" >export default class U</span>serTestManager {
|
|
@@ -850,22 +1325,83 @@ function <span class="fstat-no" title="function not covered" >createElement(</sp
|
|
|
850
1325
|
private <span class="cstat-no" title="statement not covered" >widgetGuidelinesVisible = true</span>
|
|
851
1326
|
private <span class="cstat-no" title="statement not covered" >widgetTasksVisible = false</span>
|
|
852
1327
|
private <span class="cstat-no" title="statement not covered" >widgetVisible = true</span>
|
|
1328
|
+
public <span class="cstat-no" title="statement not covered" >isActive = false</span>
|
|
853
1329
|
private <span class="cstat-no" title="statement not covered" >descriptionSection: HTMLElement | null = null</span>
|
|
854
1330
|
private <span class="cstat-no" title="statement not covered" >taskSection: HTMLElement | null = null</span>
|
|
855
1331
|
private <span class="cstat-no" title="statement not covered" >endSection: HTMLElement | null = null</span>
|
|
856
1332
|
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" >
|
|
1333
|
+
private <span class="cstat-no" title="statement not covered" >stopButtonContainer: HTMLElement | null = null</span>
|
|
1334
|
+
private <span class="cstat-no" title="statement not covered" >test: Test | null = null</span>
|
|
1335
|
+
private <span class="cstat-no" title="statement not covered" >testId: number | null = null</span>
|
|
1336
|
+
private <span class="cstat-no" title="statement not covered" >signalManager: SignalManager | null = null</span>
|
|
861
1337
|
|
|
862
|
-
<span class="fstat-no" title="function not covered" > constructor(
|
|
1338
|
+
<span class="fstat-no" title="function not covered" > constructor(</span>
|
|
1339
|
+
private readonly <span class="cstat-no" title="statement not covered" >app: App,</span>
|
|
1340
|
+
private readonly <span class="cstat-no" title="statement not covered" >storageKey: string,</span>
|
|
1341
|
+
) {
|
|
863
1342
|
<span class="cstat-no" title="statement not covered" > this.userRecorder = new Recorder(app)</span>
|
|
1343
|
+
const sessionId = <span class="cstat-no" title="statement not covered" >this.app.getSessionID()</span>
|
|
1344
|
+
const savedSessionId = <span class="cstat-no" title="statement not covered" >this.app.localStorage.getItem(SESSION_ID)</span>
|
|
1345
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (sessionId !== savedSessionId) {</span>
|
|
1346
|
+
<span class="cstat-no" title="statement not covered" > this.app.localStorage.removeItem(this.storageKey)</span>
|
|
1347
|
+
<span class="cstat-no" title="statement not covered" > this.app.localStorage.removeItem(SESSION_ID)</span>
|
|
1348
|
+
<span class="cstat-no" title="statement not covered" > this.app.localStorage.removeItem(TEST_ID)</span>
|
|
1349
|
+
<span class="cstat-no" title="statement not covered" > this.app.localStorage.removeItem(TASK_IND)</span>
|
|
1350
|
+
<span class="cstat-no" title="statement not covered" > this.app.localStorage.removeItem(TEST_START)</span>
|
|
1351
|
+
}
|
|
1352
|
+
|
|
1353
|
+
const taskIndex = <span class="cstat-no" title="statement not covered" >this.app.localStorage.getItem(TASK_IND)</span>
|
|
1354
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (taskIndex) {</span>
|
|
1355
|
+
<span class="cstat-no" title="statement not covered" > this.currentTaskIndex = parseInt(taskIndex, 10)</span>
|
|
1356
|
+
}
|
|
1357
|
+
}
|
|
1358
|
+
|
|
1359
|
+
public <span class="fstat-no" title="function not covered" >getTestId(</span>) {
|
|
1360
|
+
<span class="cstat-no" title="statement not covered" > return this.testId</span>
|
|
1361
|
+
}
|
|
1362
|
+
|
|
1363
|
+
<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>
|
|
1364
|
+
<span class="cstat-no" title="statement not covered" > this.testId = id</span>
|
|
1365
|
+
const ingest = <span class="cstat-no" title="statement not covered" >this.app.options.ingestPoint</span>
|
|
1366
|
+
<span class="cstat-no" title="statement not covered" > return fetch(`${ingest}/v1/web/uxt/test/${id}`, {</span>
|
|
1367
|
+
headers: {
|
|
1368
|
+
Authorization: `Bearer ${token}`,
|
|
1369
|
+
},
|
|
1370
|
+
})
|
|
1371
|
+
.then(<span class="fstat-no" title="function not covered" >(r</span>es) => <span class="cstat-no" title="statement not covered" >res.json())</span>
|
|
1372
|
+
.then(<span class="fstat-no" title="function not covered" >({</span> test }: { test: Test }) => {
|
|
1373
|
+
<span class="cstat-no" title="statement not covered" > this.isActive = true</span>
|
|
1374
|
+
<span class="cstat-no" title="statement not covered" > this.test = test</span>
|
|
1375
|
+
<span class="cstat-no" title="statement not covered" > this.signalManager = new SignalManager(</span>
|
|
1376
|
+
this.app.options.ingestPoint,
|
|
1377
|
+
<span class="fstat-no" title="function not covered" > () =</span>> <span class="cstat-no" title="statement not covered" >this.app.timestamp(),</span>
|
|
1378
|
+
token,
|
|
1379
|
+
id,
|
|
1380
|
+
this.storageKey,
|
|
1381
|
+
<span class="fstat-no" title="function not covered" > (k</span>: string, v: string) => <span class="cstat-no" title="statement not covered" >this.app.localStorage.setItem(k, v),</span>
|
|
1382
|
+
<span class="fstat-no" title="function not covered" > (k</span>) => <span class="cstat-no" title="statement not covered" >this.app.localStorage.removeItem(k),</span>
|
|
1383
|
+
<span class="fstat-no" title="function not covered" > (k</span>) => <span class="cstat-no" title="statement not covered" >this.app.localStorage.getItem(k),</span>
|
|
1384
|
+
<span class="fstat-no" title="function not covered" > () =</span>> <span class="cstat-no" title="statement not covered" >this.app.getSessionID(),</span>
|
|
1385
|
+
)
|
|
1386
|
+
<span class="cstat-no" title="statement not covered" > this.createGreeting(test.title, test.reqMic, test.reqCamera)</span>
|
|
1387
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (inProgress) {</span>
|
|
1388
|
+
<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>
|
|
1389
|
+
<span class="cstat-no" title="statement not covered" > void this.userRecorder.startRecording(30, Quality.Standard, test.reqMic, test.reqCamera)</span>
|
|
1390
|
+
}
|
|
1391
|
+
<span class="cstat-no" title="statement not covered" > this.showWidget(test.description, test.tasks, true)</span>
|
|
1392
|
+
<span class="cstat-no" title="statement not covered" > this.showTaskSection()</span>
|
|
1393
|
+
}
|
|
1394
|
+
})
|
|
1395
|
+
.then(<span class="fstat-no" title="function not covered" >() =</span>> <span class="cstat-no" title="statement not covered" >id)</span>
|
|
1396
|
+
.catch(<span class="fstat-no" title="function not covered" >(e</span>rr) => {
|
|
1397
|
+
<span class="cstat-no" title="statement not covered" > console.log('OR: Error fetching test', err)</span>
|
|
1398
|
+
})
|
|
864
1399
|
}
|
|
865
1400
|
|
|
866
1401
|
<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
1402
|
<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
1403
|
<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>
|
|
1404
|
+
<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
1405
|
|
|
870
1406
|
<span class="fstat-no" title="function not covered" > createGreeting(</span>title: string, micRequired: boolean, cameraRequired: boolean) {
|
|
871
1407
|
const titleElement = <span class="cstat-no" title="statement not covered" >createElement('div', 'title', styles.titleStyle, title)</span>
|
|
@@ -873,13 +1409,9 @@ function <span class="fstat-no" title="function not covered" >createElement(</sp
|
|
|
873
1409
|
'div',
|
|
874
1410
|
'description',
|
|
875
1411
|
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.',
|
|
1412
|
+
`Welcome, you're here to help us improve, not to be judged. Your insights matter!\n
|
|
1413
|
+
📹 We're recording this browser tab to learn from your experience.
|
|
1414
|
+
🎤 Please enable mic and camera if asked, to give us a complete picture.`,
|
|
883
1415
|
)
|
|
884
1416
|
const buttonElement = <span class="cstat-no" title="statement not covered" >createElement(</span>
|
|
885
1417
|
'div',
|
|
@@ -888,43 +1420,48 @@ function <span class="fstat-no" title="function not covered" >createElement(</sp
|
|
|
888
1420
|
'Read guidelines to begin',
|
|
889
1421
|
)
|
|
890
1422
|
|
|
1423
|
+
<span class="cstat-no" title="statement not covered" > this.removeGreeting = <span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1424
|
+
// this.container.innerHTML = ''
|
|
1425
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (micRequired || cameraRequired) {</span>
|
|
1426
|
+
<span class="cstat-no" title="statement not covered" > void this.userRecorder.startRecording(30, Quality.Standard, micRequired, cameraRequired)</span>
|
|
1427
|
+
}
|
|
1428
|
+
<span class="cstat-no" title="statement not covered" > this.container.removeChild(buttonElement)</span>
|
|
1429
|
+
<span class="cstat-no" title="statement not covered" > this.container.removeChild(descriptionElement)</span>
|
|
1430
|
+
<span class="cstat-no" title="statement not covered" > this.container.removeChild(titleElement)</span>
|
|
1431
|
+
<span class="cstat-no" title="statement not covered" > return false</span>
|
|
1432
|
+
}
|
|
891
1433
|
<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
|
-
)
|
|
1434
|
+
<span class="cstat-no" title="statement not covered" > this.removeGreeting()</span>
|
|
1435
|
+
const durations = <span class="cstat-no" title="statement not covered" >this.signalManager?.getDurations()</span>
|
|
1436
|
+
<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>
|
|
1437
|
+
<span class="cstat-no" title="statement not covered" > durations.testStart = this.app.timestamp()</span>
|
|
1438
|
+
<span class="cstat-no" title="statement not covered" > this.signalManager.setDurations(durations)</span>
|
|
1439
|
+
}
|
|
1440
|
+
<span class="cstat-no" title="statement not covered" > void this.signalManager?.signalTest('begin')</span>
|
|
1441
|
+
<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>
|
|
1442
|
+
<span class="cstat-no" title="statement not covered" > Object.assign(this.container.style, styles.containerWidgetStyle)</span>
|
|
1443
|
+
<span class="cstat-no" title="statement not covered" > this.showWidget(this.test?.guidelines || '', this.test?.tasks || [])</span>
|
|
911
1444
|
}
|
|
912
1445
|
|
|
913
|
-
<span class="cstat-no" title="statement not covered" > this.container.append(titleElement, descriptionElement,
|
|
1446
|
+
<span class="cstat-no" title="statement not covered" > this.container.append(titleElement, descriptionElement, buttonElement)</span>
|
|
914
1447
|
<span class="cstat-no" title="statement not covered" > this.bg.appendChild(this.container)</span>
|
|
915
1448
|
<span class="cstat-no" title="statement not covered" > document.body.appendChild(this.bg)</span>
|
|
916
1449
|
}
|
|
917
1450
|
|
|
918
1451
|
<span class="fstat-no" title="function not covered" > showWidget(</span>
|
|
919
|
-
|
|
1452
|
+
guidelines: string,
|
|
920
1453
|
tasks: {
|
|
921
1454
|
title: string
|
|
922
1455
|
description: string
|
|
1456
|
+
task_id: number
|
|
1457
|
+
allow_typing: boolean
|
|
923
1458
|
}[],
|
|
1459
|
+
inProgress?: boolean,
|
|
924
1460
|
) {
|
|
925
1461
|
<span class="cstat-no" title="statement not covered" > this.container.innerHTML = ''</span>
|
|
926
1462
|
<span class="cstat-no" title="statement not covered" > Object.assign(this.bg.style, {</span>
|
|
927
|
-
position: '
|
|
1463
|
+
position: 'fixed',
|
|
1464
|
+
zIndex: 99999999999999,
|
|
928
1465
|
right: '8px',
|
|
929
1466
|
left: 'unset',
|
|
930
1467
|
width: 'fit-content',
|
|
@@ -937,37 +1474,57 @@ function <span class="fstat-no" title="function not covered" >createElement(</sp
|
|
|
937
1474
|
})
|
|
938
1475
|
// Create title section
|
|
939
1476
|
const titleSection = <span class="cstat-no" title="statement not covered" >this.createTitleSection()</span>
|
|
1477
|
+
<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
1478
|
<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(
|
|
1479
|
+
const descriptionSection = <span class="cstat-no" title="statement not covered" >this.createDescriptionSection(guidelines)</span>
|
|
942
1480
|
const tasksSection = <span class="cstat-no" title="statement not covered" >this.createTasksSection(tasks)</span>
|
|
943
1481
|
const stopButton = <span class="cstat-no" title="statement not covered" >createElement('div', 'stop_bn_or', styles.stopWidgetStyle, 'Abort Session')</span>
|
|
1482
|
+
const stopContainer = <span class="cstat-no" title="statement not covered" >createElement('div', 'stop_ct_or', { fontSize: '13px!important' })</span>
|
|
1483
|
+
<span class="cstat-no" title="statement not covered" > stopContainer.style.fontSize = '13px'</span>
|
|
1484
|
+
<span class="cstat-no" title="statement not covered" > stopContainer.append(stopButton)</span>
|
|
944
1485
|
|
|
945
|
-
<span class="cstat-no" title="statement not covered" > this.container.append(titleSection, descriptionSection, tasksSection,
|
|
1486
|
+
<span class="cstat-no" title="statement not covered" > this.container.append(titleSection, descriptionSection, tasksSection, stopContainer)</span>
|
|
946
1487
|
<span class="cstat-no" title="statement not covered" > this.taskSection = tasksSection</span>
|
|
947
1488
|
<span class="cstat-no" title="statement not covered" > this.descriptionSection = descriptionSection</span>
|
|
948
1489
|
<span class="cstat-no" title="statement not covered" > this.stopButton = stopButton</span>
|
|
1490
|
+
<span class="cstat-no" title="statement not covered" > this.stopButtonContainer = stopContainer</span>
|
|
949
1491
|
<span class="cstat-no" title="statement not covered" > stopButton.onclick = <span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
950
1492
|
<span class="cstat-no" title="statement not covered" > this.userRecorder.discard()</span>
|
|
1493
|
+
<span class="cstat-no" title="statement not covered" > void this.signalManager?.signalTest('skipped')</span>
|
|
951
1494
|
<span class="cstat-no" title="statement not covered" > document.body.removeChild(this.bg)</span>
|
|
1495
|
+
<span class="cstat-no" title="statement not covered" > window.close()</span>
|
|
1496
|
+
}
|
|
1497
|
+
<span class="cstat-no" title="statement not covered" > if (!inProgress) {</span>
|
|
1498
|
+
<span class="cstat-no" title="statement not covered" > this.hideTaskSection()</span>
|
|
1499
|
+
} else {
|
|
1500
|
+
<span class="cstat-no" title="statement not covered" > this.toggleDescriptionVisibility()</span>
|
|
952
1501
|
}
|
|
953
|
-
<span class="cstat-no" title="statement not covered" > this.hideTaskSection()</span>
|
|
954
1502
|
}
|
|
955
1503
|
|
|
956
1504
|
<span class="fstat-no" title="function not covered" > createTitleSection(</span>) {
|
|
957
1505
|
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>
|
|
1506
|
+
const leftIcon = <span class="cstat-no" title="statement not covered" >generateGrid()</span>
|
|
1507
|
+
const titleText = <span class="cstat-no" title="statement not covered" >createElement(</span>
|
|
961
1508
|
'div',
|
|
962
|
-
'
|
|
963
|
-
{
|
|
964
|
-
|
|
1509
|
+
'title_text',
|
|
1510
|
+
{
|
|
1511
|
+
maxWidth: '19rem',
|
|
1512
|
+
overflow: 'hidden',
|
|
1513
|
+
textOverflow: 'ellipsis',
|
|
1514
|
+
width: '100%',
|
|
1515
|
+
fontSize: 16,
|
|
1516
|
+
lineHeight: 'auto',
|
|
1517
|
+
cursor: 'pointer',
|
|
1518
|
+
},
|
|
1519
|
+
this.test?.title,
|
|
965
1520
|
)
|
|
1521
|
+
const rightIcon = <span class="cstat-no" title="statement not covered" >generateChevron()</span>
|
|
966
1522
|
|
|
967
1523
|
<span class="cstat-no" title="statement not covered" > title.append(leftIcon, titleText, rightIcon)</span>
|
|
968
1524
|
|
|
969
1525
|
const toggleWidget = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(i</span>sVisible: boolean) => {</span>
|
|
970
1526
|
<span class="cstat-no" title="statement not covered" > this.widgetVisible = isVisible</span>
|
|
1527
|
+
<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
1528
|
<span class="cstat-no" title="statement not covered" > Object.assign(</span>
|
|
972
1529
|
this.container.style,
|
|
973
1530
|
this.widgetVisible
|
|
@@ -1001,25 +1558,51 @@ function <span class="fstat-no" title="function not covered" >createElement(</sp
|
|
|
1001
1558
|
<span class="cstat-no" title="statement not covered" > return isVisible</span>
|
|
1002
1559
|
}
|
|
1003
1560
|
|
|
1004
|
-
<span class="cstat-no" title="statement not covered"
|
|
1561
|
+
const collapseWidget = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1562
|
+
<span class="cstat-no" title="statement not covered" > Object.assign(rightIcon.style, {</span>
|
|
1563
|
+
transform: this.widgetVisible ? 'rotate(0deg)' : 'rotate(180deg)',
|
|
1564
|
+
})
|
|
1565
|
+
<span class="cstat-no" title="statement not covered" > toggleWidget(!this.widgetVisible)</span>
|
|
1566
|
+
}
|
|
1567
|
+
<span class="cstat-no" title="statement not covered" > titleText.onclick = collapseWidget</span>
|
|
1568
|
+
<span class="cstat-no" title="statement not covered" > rightIcon.onclick = collapseWidget</span>
|
|
1005
1569
|
<span class="cstat-no" title="statement not covered" > attachDND(this.bg, leftIcon)</span>
|
|
1006
1570
|
|
|
1007
1571
|
<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
1572
|
<span class="cstat-no" title="statement not covered" > return title</span>
|
|
1009
1573
|
}
|
|
1010
1574
|
|
|
1011
|
-
|
|
1575
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
1576
|
+
<span class="cstat-no" title="statement not covered" > toggleDescriptionVisibility = <span class="fstat-no" title="function not covered" >() =</span>> {}</span>
|
|
1577
|
+
|
|
1578
|
+
<span class="fstat-no" title="function not covered" > createDescriptionSection(</span>guidelines: string) {
|
|
1012
1579
|
const section = <span class="cstat-no" title="statement not covered" >createElement('div', 'description_section_or', styles.descriptionWidgetStyle)</span>
|
|
1013
1580
|
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(
|
|
1581
|
+
const title = <span class="cstat-no" title="statement not covered" >createElement(</span>
|
|
1582
|
+
'div',
|
|
1583
|
+
'title',
|
|
1584
|
+
{
|
|
1585
|
+
fontSize: 13,
|
|
1586
|
+
fontWeight: 500,
|
|
1587
|
+
lineHeight: 'auto',
|
|
1588
|
+
},
|
|
1589
|
+
'Introduction & Guidelines',
|
|
1590
|
+
)
|
|
1015
1591
|
const icon = <span class="cstat-no" title="statement not covered" >createElement('div', 'icon', styles.symbolIcon, '-')</span>
|
|
1016
1592
|
const content = <span class="cstat-no" title="statement not covered" >createElement('div', 'content', styles.contentStyle)</span>
|
|
1017
|
-
const
|
|
1018
|
-
|
|
1593
|
+
const descriptionC = <span class="cstat-no" title="statement not covered" >createElement('div', 'text_description', {</span>
|
|
1594
|
+
maxHeight: '250px',
|
|
1595
|
+
overflowY: 'auto',
|
|
1596
|
+
whiteSpace: 'pre-wrap',
|
|
1597
|
+
fontSize: 13,
|
|
1598
|
+
color: '#454545',
|
|
1599
|
+
lineHeight: 'auto',
|
|
1600
|
+
})
|
|
1601
|
+
<span class="cstat-no" title="statement not covered" > descriptionC.innerHTML = guidelines</span>
|
|
1019
1602
|
const button = <span class="cstat-no" title="statement not covered" >createElement('div', 'button_begin_or', styles.buttonWidgetStyle, 'Begin Test')</span>
|
|
1020
1603
|
|
|
1021
1604
|
<span class="cstat-no" title="statement not covered" > titleContainer.append(title, icon)</span>
|
|
1022
|
-
<span class="cstat-no" title="statement not covered" > content.append(
|
|
1605
|
+
<span class="cstat-no" title="statement not covered" > content.append(descriptionC, button)</span>
|
|
1023
1606
|
<span class="cstat-no" title="statement not covered" > section.append(titleContainer, content)</span>
|
|
1024
1607
|
|
|
1025
1608
|
const toggleDescriptionVisibility = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
@@ -1032,65 +1615,130 @@ function <span class="fstat-no" title="function not covered" >createElement(</sp
|
|
|
1032
1615
|
}
|
|
1033
1616
|
|
|
1034
1617
|
<span class="cstat-no" title="statement not covered" > titleContainer.onclick = toggleDescriptionVisibility</span>
|
|
1618
|
+
<span class="cstat-no" title="statement not covered" > this.toggleDescriptionVisibility = <span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1619
|
+
<span class="cstat-no" title="statement not covered" > this.widgetGuidelinesVisible = false</span>
|
|
1620
|
+
<span class="cstat-no" title="statement not covered" > icon.textContent = this.widgetGuidelinesVisible ? '-' : '+'</span>
|
|
1621
|
+
<span class="cstat-no" title="statement not covered" > Object.assign(</span>
|
|
1622
|
+
content.style,
|
|
1623
|
+
this.widgetGuidelinesVisible ? styles.contentStyle : { display: 'none' },
|
|
1624
|
+
)
|
|
1625
|
+
<span class="cstat-no" title="statement not covered" > content.removeChild(button)</span>
|
|
1626
|
+
}
|
|
1035
1627
|
<span class="cstat-no" title="statement not covered" > button.onclick = <span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1036
1628
|
<span class="cstat-no" title="statement not covered" > toggleDescriptionVisibility()</span>
|
|
1629
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.test) {</span>
|
|
1630
|
+
const durations = <span class="cstat-no" title="statement not covered" >this.signalManager?.getDurations()</span>
|
|
1631
|
+
const taskDurationInd = <span class="cstat-no" title="statement not covered" >durations</span>
|
|
1632
|
+
? 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>
|
|
1633
|
+
: null
|
|
1634
|
+
<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>
|
|
1635
|
+
<span class="cstat-no" title="statement not covered" > durations.tasks.push({</span>
|
|
1636
|
+
taskId: this.test.tasks[0].task_id,
|
|
1637
|
+
started: this.app.timestamp(),
|
|
1638
|
+
})
|
|
1639
|
+
<span class="cstat-no" title="statement not covered" > this.signalManager?.setDurations(durations)</span>
|
|
1640
|
+
}
|
|
1641
|
+
<span class="cstat-no" title="statement not covered" > void this.signalManager?.signalTask(this.test.tasks[0].task_id, 'begin')</span>
|
|
1642
|
+
}
|
|
1037
1643
|
<span class="cstat-no" title="statement not covered" > this.showTaskSection()</span>
|
|
1644
|
+
<span class="cstat-no" title="statement not covered" > content.removeChild(button)</span>
|
|
1038
1645
|
}
|
|
1039
1646
|
|
|
1040
1647
|
<span class="cstat-no" title="statement not covered" > return section</span>
|
|
1041
1648
|
}
|
|
1042
1649
|
|
|
1650
|
+
<span class="cstat-no" title="statement not covered" > currentTaskIndex = 0</span>
|
|
1651
|
+
|
|
1043
1652
|
<span class="fstat-no" title="function not covered" > createTasksSection(</span>
|
|
1044
1653
|
tasks: {
|
|
1045
1654
|
title: string
|
|
1046
1655
|
description: string
|
|
1656
|
+
task_id: number
|
|
1657
|
+
allow_typing: boolean
|
|
1047
1658
|
}[],
|
|
1048
1659
|
) {
|
|
1049
|
-
|
|
1660
|
+
<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>
|
|
1661
|
+
<span class="cstat-no" title="statement not covered" > Object.assign(this.container.style, styles.containerWidgetStyle)</span>
|
|
1050
1662
|
const section = <span class="cstat-no" title="statement not covered" >createElement('div', 'task_section_or', styles.descriptionWidgetStyle)</span>
|
|
1051
1663
|
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(
|
|
1664
|
+
const title = <span class="cstat-no" title="statement not covered" >createElement(</span>
|
|
1665
|
+
'div',
|
|
1666
|
+
'title',
|
|
1667
|
+
{
|
|
1668
|
+
fontSize: '13px',
|
|
1669
|
+
fontWeight: '500',
|
|
1670
|
+
lineHeight: 'auto',
|
|
1671
|
+
},
|
|
1672
|
+
'Tasks',
|
|
1673
|
+
)
|
|
1053
1674
|
const icon = <span class="cstat-no" title="statement not covered" >createElement('div', 'icon', styles.symbolIcon, '-')</span>
|
|
1054
1675
|
const content = <span class="cstat-no" title="statement not covered" >createElement('div', 'content', styles.contentStyle)</span>
|
|
1055
1676
|
const pagination = <span class="cstat-no" title="statement not covered" >createElement('div', 'pagination', styles.paginationStyle)</span>
|
|
1056
|
-
const leftArrow =
|
|
1057
|
-
const rightArrow =
|
|
1677
|
+
// const leftArrow = createElement('span', 'leftArrow', {}, '<')
|
|
1678
|
+
// const rightArrow = createElement('span', 'rightArrow', {}, '>')
|
|
1058
1679
|
const taskCard = <span class="cstat-no" title="statement not covered" >createElement('div', 'taskCard', styles.taskDescriptionCard)</span>
|
|
1059
1680
|
const taskText = <span class="cstat-no" title="statement not covered" >createElement('div', 'taskText', styles.taskTextStyle)</span>
|
|
1060
1681
|
const taskDescription = <span class="cstat-no" title="statement not covered" >createElement('div', 'taskDescription', styles.taskDescriptionStyle)</span>
|
|
1061
1682
|
const taskButtons = <span class="cstat-no" title="statement not covered" >createElement('div', 'taskButtons', styles.taskButtonsRow)</span>
|
|
1683
|
+
const inputTitle = <span class="cstat-no" title="statement not covered" >createElement('div', 'taskText', styles.taskTextStyle)</span>
|
|
1684
|
+
<span class="cstat-no" title="statement not covered" > inputTitle.textContent = 'Your answer'</span>
|
|
1685
|
+
const inputArea = <span class="cstat-no" title="statement not covered" >createElement('textarea', 'taskDescription', {</span>
|
|
1686
|
+
resize: 'vertical',
|
|
1687
|
+
}) as HTMLTextAreaElement
|
|
1688
|
+
const inputContainer = <span class="cstat-no" title="statement not covered" >createElement('div', 'inputArea', styles.taskDescriptionCard)</span>
|
|
1689
|
+
<span class="cstat-no" title="statement not covered" > inputContainer.append(inputTitle, inputArea)</span>
|
|
1062
1690
|
const closePanelButton = <span class="cstat-no" title="statement not covered" >createElement(</span>
|
|
1063
1691
|
'div',
|
|
1064
1692
|
'closePanelButton',
|
|
1065
1693
|
styles.taskButtonStyle,
|
|
1066
|
-
'Collapse
|
|
1694
|
+
'Collapse Panel',
|
|
1067
1695
|
)
|
|
1068
1696
|
const nextButton = <span class="cstat-no" title="statement not covered" >createElement(</span>
|
|
1069
1697
|
'div',
|
|
1070
1698
|
'nextButton',
|
|
1071
1699
|
styles.taskButtonBorderedStyle,
|
|
1072
|
-
'Done,
|
|
1700
|
+
'Done, Next',
|
|
1073
1701
|
)
|
|
1074
1702
|
|
|
1075
1703
|
<span class="cstat-no" title="statement not covered" > titleContainer.append(title, icon)</span>
|
|
1076
1704
|
<span class="cstat-no" title="statement not covered" > taskCard.append(taskText, taskDescription)</span>
|
|
1077
1705
|
<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>
|
|
1706
|
+
<span class="cstat-no" title="statement not covered" > content.append(pagination, taskCard, inputContainer, taskButtons)</span>
|
|
1079
1707
|
<span class="cstat-no" title="statement not covered" > section.append(titleContainer, content)</span>
|
|
1080
1708
|
|
|
1081
1709
|
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>
|
|
1710
|
+
const task = <span class="cstat-no" title="statement not covered" >tasks[this.currentTaskIndex]</span>
|
|
1083
1711
|
<span class="cstat-no" title="statement not covered" > taskText.textContent = task.title</span>
|
|
1084
1712
|
<span class="cstat-no" title="statement not covered" > taskDescription.textContent = task.description</span>
|
|
1713
|
+
<span class="cstat-no" title="statement not covered" > if (task.allow_typing) {</span>
|
|
1714
|
+
<span class="cstat-no" title="statement not covered" > inputContainer.style.display = 'flex'</span>
|
|
1715
|
+
} else {
|
|
1716
|
+
<span class="cstat-no" title="statement not covered" > inputContainer.style.display = 'none'</span>
|
|
1717
|
+
}
|
|
1085
1718
|
}
|
|
1086
1719
|
|
|
1087
|
-
|
|
1720
|
+
// pagination.appendChild(leftArrow)
|
|
1088
1721
|
<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(
|
|
1722
|
+
const pageNumber = <span class="cstat-no" title="statement not covered" >createElement(</span>
|
|
1723
|
+
'span',
|
|
1724
|
+
`or_task_${index}`,
|
|
1725
|
+
{
|
|
1726
|
+
outline: '1px solid #efefef',
|
|
1727
|
+
fontSize: '13px',
|
|
1728
|
+
height: '24px',
|
|
1729
|
+
width: '24px',
|
|
1730
|
+
display: 'flex',
|
|
1731
|
+
flexDirection: 'column',
|
|
1732
|
+
alignItems: 'center',
|
|
1733
|
+
justifyContent: 'center',
|
|
1734
|
+
borderRadius: '6.25em',
|
|
1735
|
+
},
|
|
1736
|
+
(index + 1).toString(),
|
|
1737
|
+
)
|
|
1090
1738
|
<span class="cstat-no" title="statement not covered" > pageNumber.id = `or_task_${index}`</span>
|
|
1091
1739
|
<span class="cstat-no" title="statement not covered" > pagination.append(pageNumber)</span>
|
|
1092
1740
|
})
|
|
1093
|
-
|
|
1741
|
+
// pagination.appendChild(rightArrow)
|
|
1094
1742
|
|
|
1095
1743
|
const toggleTasksVisibility = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1096
1744
|
<span class="cstat-no" title="statement not covered" > this.widgetTasksVisible = !this.widgetTasksVisible</span>
|
|
@@ -1114,42 +1762,63 @@ function <span class="fstat-no" title="function not covered" >createElement(</sp
|
|
|
1114
1762
|
<span class="cstat-no" title="statement not covered" > this.widgetTasksVisible = true</span>
|
|
1115
1763
|
<span class="cstat-no" title="statement not covered" > return true</span>
|
|
1116
1764
|
}
|
|
1765
|
+
|
|
1766
|
+
const highlightActive = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1767
|
+
const activeTaskEl = <span class="cstat-no" title="statement not covered" >document.getElementById(`or_task_${this.currentTaskIndex}`)</span>
|
|
1768
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (activeTaskEl) {</span>
|
|
1769
|
+
<span class="cstat-no" title="statement not covered" > Object.assign(activeTaskEl.style, styles.taskNumberActive)</span>
|
|
1770
|
+
}
|
|
1771
|
+
<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>
|
|
1772
|
+
const taskEl = <span class="cstat-no" title="statement not covered" >document.getElementById(`or_task_${i}`)</span>
|
|
1773
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (taskEl) {</span>
|
|
1774
|
+
<span class="cstat-no" title="statement not covered" > Object.assign(taskEl.style, styles.taskNumberDone)</span>
|
|
1775
|
+
}
|
|
1776
|
+
}
|
|
1777
|
+
}
|
|
1117
1778
|
|
|
1118
1779
|
<span class="cstat-no" title="statement not covered" > titleContainer.onclick = toggleTasksVisibility</span>
|
|
1119
1780
|
<span class="cstat-no" title="statement not covered" > closePanelButton.onclick = this.collapseWidget</span>
|
|
1120
1781
|
|
|
1121
1782
|
<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" >
|
|
1783
|
+
const textAnswer = <span class="cstat-no" title="statement not covered" >tasks[this.currentTaskIndex].allow_typing ? inputArea.value : undefined</span>
|
|
1784
|
+
<span class="cstat-no" title="statement not covered" > inputArea.value = ''</span>
|
|
1785
|
+
<span class="cstat-no" title="statement not covered" > void this.signalManager?.signalTask(tasks[this.currentTaskIndex].task_id, 'done', textAnswer)</span>
|
|
1786
|
+
<span class="cstat-no" title="statement not covered" > if (this.currentTaskIndex < tasks.length - 1) {</span>
|
|
1787
|
+
<span class="cstat-no" title="statement not covered" > this.currentTaskIndex++</span>
|
|
1124
1788
|
<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
|
-
}
|
|
1789
|
+
const durations = <span class="cstat-no" title="statement not covered" >this.signalManager?.getDurations()</span>
|
|
1790
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (</span>
|
|
1791
|
+
durations &&
|
|
1792
|
+
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
|
|
1793
|
+
) {
|
|
1794
|
+
<span class="cstat-no" title="statement not covered" > durations.tasks.push({</span>
|
|
1795
|
+
taskId: tasks[this.currentTaskIndex].task_id,
|
|
1796
|
+
started: this.app.timestamp(),
|
|
1797
|
+
})
|
|
1798
|
+
<span class="cstat-no" title="statement not covered" > this.signalManager?.setDurations(durations)</span>
|
|
1134
1799
|
}
|
|
1800
|
+
<span class="cstat-no" title="statement not covered" > void this.signalManager?.signalTask(tasks[this.currentTaskIndex].task_id, 'begin')</span>
|
|
1801
|
+
<span class="cstat-no" title="statement not covered" > highlightActive()</span>
|
|
1135
1802
|
} else {
|
|
1136
1803
|
<span class="cstat-no" title="statement not covered" > this.showEndSection()</span>
|
|
1137
1804
|
}
|
|
1805
|
+
<span class="cstat-no" title="statement not covered" > this.app.localStorage.setItem('or_uxt_task_index', this.currentTaskIndex.toString())</span>
|
|
1138
1806
|
}
|
|
1139
1807
|
|
|
1140
|
-
<span class="cstat-no" title="statement not covered" > updateTaskContent()</span>
|
|
1141
1808
|
<span class="cstat-no" title="statement not covered" > setTimeout(<span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1142
1809
|
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
1810
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (firstTaskEl) {</span>
|
|
1145
1811
|
<span class="cstat-no" title="statement not covered" > Object.assign(firstTaskEl.style, styles.taskNumberActive)</span>
|
|
1146
1812
|
}
|
|
1813
|
+
<span class="cstat-no" title="statement not covered" > updateTaskContent()</span>
|
|
1814
|
+
<span class="cstat-no" title="statement not covered" > highlightActive()</span>
|
|
1147
1815
|
}, 1)
|
|
1148
1816
|
<span class="cstat-no" title="statement not covered" > return section</span>
|
|
1149
1817
|
}
|
|
1150
1818
|
|
|
1151
1819
|
<span class="fstat-no" title="function not covered" > showEndSection(</span>) {
|
|
1152
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1820
|
+
let isLoading = <span class="cstat-no" title="statement not covered" >true</span>
|
|
1821
|
+
<span class="cstat-no" title="statement not covered" > void this.signalManager?.signalTest('done')</span>
|
|
1153
1822
|
const section = <span class="cstat-no" title="statement not covered" >createElement('div', 'end_section_or', styles.endSectionStyle)</span>
|
|
1154
1823
|
const title = <span class="cstat-no" title="statement not covered" >createElement(</span>
|
|
1155
1824
|
'div',
|
|
@@ -1164,11 +1833,39 @@ function <span class="fstat-no" title="function not covered" >createElement(</sp
|
|
|
1164
1833
|
'div',
|
|
1165
1834
|
'end_description_or',
|
|
1166
1835
|
{},
|
|
1167
|
-
|
|
1168
|
-
'\n' +
|
|
1169
|
-
|
|
1836
|
+
this.test?.conclusion ??
|
|
1837
|
+
'Thank you for participating in our usability test. Your feedback has been captured and will be used to enhance our website. \n' +
|
|
1838
|
+
'\n' +
|
|
1839
|
+
'We appreciate your time and valuable input.',
|
|
1840
|
+
)
|
|
1841
|
+
const button = <span class="cstat-no" title="statement not covered" >createElement(</span>
|
|
1842
|
+
'div',
|
|
1843
|
+
'end_button_or',
|
|
1844
|
+
styles.buttonWidgetStyle,
|
|
1845
|
+
'Submitting Feedback',
|
|
1170
1846
|
)
|
|
1171
|
-
const
|
|
1847
|
+
const spinner = <span class="cstat-no" title="statement not covered" >createSpinner()</span>
|
|
1848
|
+
<span class="cstat-no" title="statement not covered" > button.appendChild(spinner)</span>
|
|
1849
|
+
|
|
1850
|
+
<span class="cstat-no" title="statement not covered" > if (this.test?.reqMic || this.test?.reqCamera) {</span>
|
|
1851
|
+
<span class="cstat-no" title="statement not covered" > void this.userRecorder</span>
|
|
1852
|
+
.sendToAPI()
|
|
1853
|
+
.then(<span class="fstat-no" title="function not covered" >() =</span>> {
|
|
1854
|
+
<span class="cstat-no" title="statement not covered" > button.removeChild(spinner)</span>
|
|
1855
|
+
<span class="cstat-no" title="statement not covered" > button.textContent = 'End Session'</span>
|
|
1856
|
+
<span class="cstat-no" title="statement not covered" > isLoading = false</span>
|
|
1857
|
+
})
|
|
1858
|
+
.catch(<span class="fstat-no" title="function not covered" >(e</span>rr) => {
|
|
1859
|
+
<span class="cstat-no" title="statement not covered" > console.error(err)</span>
|
|
1860
|
+
<span class="cstat-no" title="statement not covered" > button.removeChild(spinner)</span>
|
|
1861
|
+
<span class="cstat-no" title="statement not covered" > button.textContent = 'End Session'</span>
|
|
1862
|
+
<span class="cstat-no" title="statement not covered" > isLoading = false</span>
|
|
1863
|
+
})
|
|
1864
|
+
} else {
|
|
1865
|
+
<span class="cstat-no" title="statement not covered" > button.removeChild(spinner)</span>
|
|
1866
|
+
<span class="cstat-no" title="statement not covered" > button.textContent = 'End Session'</span>
|
|
1867
|
+
<span class="cstat-no" title="statement not covered" > isLoading = false</span>
|
|
1868
|
+
}
|
|
1172
1869
|
|
|
1173
1870
|
<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
1871
|
<span class="cstat-no" title="statement not covered" > this.container.removeChild(this.taskSection)</span>
|
|
@@ -1176,11 +1873,13 @@ function <span class="fstat-no" title="function not covered" >createElement(</sp
|
|
|
1176
1873
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.descriptionSection) {</span>
|
|
1177
1874
|
<span class="cstat-no" title="statement not covered" > this.container.removeChild(this.descriptionSection)</span>
|
|
1178
1875
|
}
|
|
1179
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.stopButton) {</span>
|
|
1180
|
-
<span class="cstat-no" title="statement not covered" > this.container.removeChild(this.
|
|
1876
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.stopButton && this.stopButtonContainer) {</span>
|
|
1877
|
+
<span class="cstat-no" title="statement not covered" > this.container.removeChild(this.stopButtonContainer)</span>
|
|
1181
1878
|
}
|
|
1182
1879
|
|
|
1183
1880
|
<span class="cstat-no" title="statement not covered" > button.onclick = <span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
1881
|
+
<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>
|
|
1882
|
+
<span class="cstat-no" title="statement not covered" > window.close()</span>
|
|
1184
1883
|
<span class="cstat-no" title="statement not covered" > document.body.removeChild(this.bg)</span>
|
|
1185
1884
|
}
|
|
1186
1885
|
<span class="cstat-no" title="statement not covered" > section.append(title, description, button)</span>
|
|
@@ -1195,7 +1894,7 @@ function <span class="fstat-no" title="function not covered" >createElement(</sp
|
|
|
1195
1894
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1196
1895
|
Code coverage generated by
|
|
1197
1896
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1198
|
-
at 2023-
|
|
1897
|
+
at 2023-12-15T15:55:44.965Z
|
|
1199
1898
|
</div>
|
|
1200
1899
|
<script src="../../../prettify.js"></script>
|
|
1201
1900
|
<script>
|