@worksafevictoria/wcl7.5 1.9.0-beta.14 → 1.9.0-beta.16
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/package.json +1 -1
- package/src/components/Common/CardGridItem/card-grid-item-caret.vue +1 -1
- package/src/components/Common/CardGridItem/index.vue +147 -115
- package/src/components/Global/AppFooter/index.vue +126 -109
- package/src/components/Global/AppHeaderNew/includes.scss +4 -2
- package/src/components/Global/AppHeaderNew/index.vue +59 -331
- package/src/components/Global/AppHeaderNew/styles.scss +49 -45
- package/src/components/Global/DirectoryFilters/index.vue +24 -18
- package/src/components/Global/Strip/index.vue +34 -34
- package/src/components/Paragraphs/Directory/Asbestos/Records/index.vue +121 -88
- package/src/components/Paragraphs/Directory/HSCP/Records/index.vue +116 -100
- package/src/components/Paragraphs/Statistics/index.vue +9 -9
- package/src/components/Paragraphs/TabulatedData/index.vue +6 -0
- package/src/components/SubComponents/ResourceGroup/cardbody.vue +52 -38
- package/src/index.js +1 -1
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
>
|
|
7
7
|
<!-- Top menu -->
|
|
8
8
|
<div class="logo">
|
|
9
|
+
<!-- Logo -->
|
|
9
10
|
<nuxt-link class="dark" to="/">
|
|
10
11
|
<img
|
|
11
12
|
:alt="
|
|
@@ -19,31 +20,34 @@
|
|
|
19
20
|
/>
|
|
20
21
|
</nuxt-link>
|
|
21
22
|
<span class="logo__nav">
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
<!-- Roles added for accessibility -->
|
|
24
|
+
<table role="presentation" >
|
|
25
|
+
<tbody role="presentation">
|
|
26
|
+
<tr role="presentation">
|
|
25
27
|
<td>
|
|
28
|
+
<!-- Language link -->
|
|
26
29
|
<nuxt-link
|
|
27
30
|
to="/languages"
|
|
28
31
|
@click.native="fireAnalytics('Choose your language', '/languages')"
|
|
29
32
|
title="Language"
|
|
30
33
|
>
|
|
31
34
|
<span v-if="!topLevelIconsOnly">Choose your language </span>
|
|
32
|
-
<img alt="Language Icon" width="
|
|
35
|
+
<img alt="Language Icon" width="15px" height="15px" :src=LanguageIcon />
|
|
33
36
|
</nuxt-link>
|
|
34
37
|
</td>
|
|
35
38
|
<td>
|
|
39
|
+
<!-- Contrast link -->
|
|
36
40
|
<a href="javascript:void(0)" @click="show = !show" @keyup.esc="show = !show" title="Contrast" ref="selectContrast">
|
|
37
|
-
<span v-if="!topLevelIconsOnly">Adjust contrast</span> <img alt="Contrast Icon" width="
|
|
41
|
+
<span v-if="!topLevelIconsOnly">Adjust contrast</span> <img alt="Contrast Icon" width="15px" height="15px" :src=ContrastIcon />
|
|
38
42
|
</a>
|
|
39
43
|
<div
|
|
40
44
|
ref="contrastChoices"
|
|
41
45
|
class="flex-container"
|
|
42
46
|
v-if="show"
|
|
43
47
|
>
|
|
44
|
-
<div class="contrast_slide--box-list">
|
|
48
|
+
<div class="flex-item contrast_slide--box-list">
|
|
45
49
|
<div v-for="list in lists" :key="list.value">
|
|
46
|
-
<label>
|
|
50
|
+
<label :class="{'last-radio': list.label==='Greyscale'}">
|
|
47
51
|
<input
|
|
48
52
|
type="radio"
|
|
49
53
|
:name="list.name"
|
|
@@ -58,19 +62,21 @@
|
|
|
58
62
|
</div>
|
|
59
63
|
</td>
|
|
60
64
|
<td>
|
|
65
|
+
<!-- Search link -->
|
|
61
66
|
<nuxt-link
|
|
62
67
|
class="cta-button cta-button--text-only cta-button--slim"
|
|
63
68
|
to="/search"
|
|
64
69
|
title="Search"
|
|
65
|
-
><span v-if="!topLevelButtonIconsOnly">Search </span> <img alt="Search Icon" width="
|
|
70
|
+
><span v-if="!topLevelButtonIconsOnly">Search </span> <img alt="Search Icon" width="15px" height="15px" :src=NavSearchIcon />
|
|
66
71
|
</nuxt-link>
|
|
67
72
|
</td>
|
|
68
73
|
<td>
|
|
74
|
+
<!-- Login link -->
|
|
69
75
|
<nuxt-link
|
|
70
76
|
class="cta-button cta-button--text-only cta-button--slim cta-button--dark-no-filter"
|
|
71
77
|
to="/login"
|
|
72
78
|
title="Login"
|
|
73
|
-
><span v-if="!topLevelButtonIconsOnly">Login </span><span><img alt="Login Icon" width="
|
|
79
|
+
><span v-if="!topLevelButtonIconsOnly">Login </span><span><img alt="Login Icon" width="15px" height="15px" :src=LoginLeft /></span>
|
|
74
80
|
</nuxt-link>
|
|
75
81
|
</td>
|
|
76
82
|
</tr>
|
|
@@ -80,7 +86,8 @@
|
|
|
80
86
|
</div>
|
|
81
87
|
<!-- Bottom menu -->
|
|
82
88
|
<div class="app-header__wrap" @keyup.esc="closeMegaMenu">
|
|
83
|
-
<div class="app-header__close-button mobile-close">
|
|
89
|
+
<div class="app-header__close-button mobile-close">
|
|
90
|
+
<!-- Close Button -->
|
|
84
91
|
<button
|
|
85
92
|
v-if="
|
|
86
93
|
(isMobileMenuOpen && screen === 'mobile' && !isSecondLevelOpen)
|
|
@@ -93,15 +100,7 @@
|
|
|
93
100
|
Close menu
|
|
94
101
|
</button>
|
|
95
102
|
</div>
|
|
96
|
-
|
|
97
|
-
v-if="
|
|
98
|
-
(!isSecondLevelOpen && screen === 'desktop') ||
|
|
99
|
-
(!isMobileMenuOpen && screen === 'mobile')
|
|
100
|
-
"
|
|
101
|
-
class="app-header__app-branding"
|
|
102
|
-
>
|
|
103
|
-
|
|
104
|
-
</div>
|
|
103
|
+
<!-- Bottom menu Items -->
|
|
105
104
|
<nav
|
|
106
105
|
v-if="isMobileMenuOpen || screen === 'desktop'"
|
|
107
106
|
:class="{
|
|
@@ -151,6 +150,7 @@
|
|
|
151
150
|
>
|
|
152
151
|
<span>{{ firstLevelLink.title }}</span>
|
|
153
152
|
</nuxt-link>
|
|
153
|
+
<!-- Sub-Menu 2nd Level -->
|
|
154
154
|
<div v-if="isSecondLevelOpen" class="sub-nav-container">
|
|
155
155
|
<div class="app-header__close-button">
|
|
156
156
|
<button
|
|
@@ -187,6 +187,7 @@
|
|
|
187
187
|
screen === 'mobile' && isSecondLevelOpen,
|
|
188
188
|
}"
|
|
189
189
|
>
|
|
190
|
+
<!-- Selected Title -->
|
|
190
191
|
<div
|
|
191
192
|
class="selected-title"
|
|
192
193
|
:class="{ 'selected-title--chrome': isChrome }"
|
|
@@ -203,6 +204,7 @@
|
|
|
203
204
|
</nuxt-link>
|
|
204
205
|
<span v-else>{{ firstLevelLink.title }}</span>
|
|
205
206
|
</div>
|
|
207
|
+
<!-- Selected Items -->
|
|
206
208
|
<div class="selected-items">
|
|
207
209
|
<ul v-if="firstLevelLink.below" class="sub-nav-group">
|
|
208
210
|
<li
|
|
@@ -252,6 +254,7 @@
|
|
|
252
254
|
>
|
|
253
255
|
<span>{{ secondLevelLink.title }}</span>
|
|
254
256
|
</nuxt-link>
|
|
257
|
+
<!-- Sub Menu - Third Level Menu -->
|
|
255
258
|
<div v-if="isThirdLevelOpen" class="sub-nav">
|
|
256
259
|
<div class="sub-nav__wrap">
|
|
257
260
|
<div class="selected-title">
|
|
@@ -311,246 +314,20 @@
|
|
|
311
314
|
</div>
|
|
312
315
|
</div>
|
|
313
316
|
</li>
|
|
314
|
-
|
|
315
|
-
<!-- More action button in bottom menu -->
|
|
316
|
-
|
|
317
|
-
<li class="nav-item" id="moreDesktop" v-if="screen === 'desktop' && this.moreList.length > 0">
|
|
318
|
-
<a class="dark" role="button" @click="showMore = !showMore">
|
|
319
|
-
<span>More</span>
|
|
320
|
-
<caret-down class="caret-down" style="padding-top: 4px; height: 16px; width: 16px"/>
|
|
321
|
-
</a>
|
|
322
|
-
<div
|
|
323
|
-
v-if="showMore"
|
|
324
|
-
class="styled-scrollbar"
|
|
325
|
-
>
|
|
326
|
-
<div >
|
|
327
|
-
<div class="sub-nav-container__innermore">
|
|
328
|
-
<ul id="moreMenu">
|
|
329
|
-
<li v-for="(firstLevelLink, parentIndex) in this.moreList"
|
|
330
|
-
:key="firstLevelLink.key"
|
|
331
|
-
:ref="`firstLevelMenuItemM-${parentIndex}`"
|
|
332
|
-
class="nav-item more-menu"
|
|
333
|
-
>
|
|
334
|
-
<a
|
|
335
|
-
v-if="firstLevelLink.below"
|
|
336
|
-
class="dark"
|
|
337
|
-
href
|
|
338
|
-
role="button"
|
|
339
|
-
aria-expanded="false"
|
|
340
|
-
@click.prevent="firstLevelClick(firstLevelLink,`firstLevelMenuItemM-${parentIndex}`,)"
|
|
341
|
-
@mouseover="mouseHover('firstLevelMenuItemM', parentIndex)"
|
|
342
|
-
@mouseleave="mouseLeave('firstLevelMenuItemM', parentIndex)"
|
|
343
|
-
@focusin="mouseHover('firstLevelMenuItemM', parentIndex)"
|
|
344
|
-
@focusout="mouseLeave('firstLevelMenuItemM', parentIndex)"
|
|
345
|
-
>
|
|
346
|
-
<span>{{ firstLevelLink.title }}</span>
|
|
347
|
-
|
|
348
|
-
<caret-right
|
|
349
|
-
v-if="!isSecondLevelOpen && !isThirdLevelOpen"
|
|
350
|
-
class="caret-right"
|
|
351
|
-
/>
|
|
352
|
-
</a>
|
|
353
|
-
<a
|
|
354
|
-
v-else-if="!firstLevelLink.relative"
|
|
355
|
-
:href="firstLevelLink.absolute"
|
|
356
|
-
target="_blank"
|
|
357
|
-
@click.native="showMore = !showMore"
|
|
358
|
-
class="dark"
|
|
359
|
-
>
|
|
360
|
-
<span>{{ firstLevelLink.title }}</span>
|
|
361
|
-
|
|
362
|
-
</a>
|
|
363
|
-
<nuxt-link
|
|
364
|
-
v-else
|
|
365
|
-
class="dark"
|
|
366
|
-
:to="firstLevelLink.relative"
|
|
367
|
-
@click.native="showMore = !showMore; fireAnalytics(firstLevelLink.title, firstLevelLink.relative)"
|
|
368
|
-
>
|
|
369
|
-
<span>{{ firstLevelLink.title }}</span>
|
|
370
|
-
<caret-right
|
|
371
|
-
v-if="!isSecondLevelOpen && !isThirdLevelOpen"
|
|
372
|
-
class="caret-right"
|
|
373
|
-
/>
|
|
374
|
-
</nuxt-link>
|
|
375
|
-
<div v-if="isSecondLevelOpen" class="sub-nav-container">
|
|
376
|
-
<div class="app-header__close-button">
|
|
377
|
-
<button
|
|
378
|
-
v-if="screen === 'mobile'"
|
|
379
|
-
ref="menuBackButton"
|
|
380
|
-
class="dark"
|
|
381
|
-
@click="mobileGoBack"
|
|
382
|
-
@keydown.tab="submenuFocus"
|
|
383
|
-
>
|
|
384
|
-
<caret-left/>
|
|
385
|
-
{{ isThirdLevelOpen ? firstLevelItemName : 'Main menu' }}
|
|
386
|
-
</button>
|
|
387
|
-
<button
|
|
388
|
-
v-if="
|
|
389
|
-
(isSecondLevelOpen && screen === 'desktop') ||
|
|
390
|
-
(isMobileMenuOpen && screen === 'mobile')
|
|
391
|
-
"
|
|
392
|
-
ref="closeMenuButton"
|
|
393
|
-
class="dark"
|
|
394
|
-
@click="closeMegaMenu"
|
|
395
|
-
>
|
|
396
|
-
<img :alt="Close" width="12" height="12" :src="Close"/>
|
|
397
|
-
Close menu
|
|
398
|
-
</button>
|
|
399
|
-
</div>
|
|
400
|
-
<div
|
|
401
|
-
class="sub-nav-container__inner"
|
|
402
|
-
:class="{ 'styled-scrollbar': screen === 'desktop' }"
|
|
403
|
-
>
|
|
404
|
-
<div
|
|
405
|
-
class="sub-nav-container__wrap"
|
|
406
|
-
:class="{'styled-scrollbar': screen === 'mobile' && isSecondLevelOpen,}"
|
|
407
|
-
>
|
|
408
|
-
<div
|
|
409
|
-
class="selected-title"
|
|
410
|
-
:class="{ 'selected-title--chrome': isChrome }"
|
|
411
|
-
>
|
|
412
|
-
<nuxt-link
|
|
413
|
-
v-if="firstLevelLink.relative"
|
|
414
|
-
:ref="`secondLevelSelectedTitleM-${parentIndex}`"
|
|
415
|
-
:to="firstLevelLink.relative"
|
|
416
|
-
class="dark"
|
|
417
|
-
@click.native="fireAnalytics(firstLevelLink.title, firstLevelLink.relative)"
|
|
418
|
-
@keydown.tab.native="backBtnFocus($event)"
|
|
419
|
-
>
|
|
420
|
-
<span>{{ firstLevelLink.title }}</span>
|
|
421
|
-
</nuxt-link>
|
|
422
|
-
<span v-else>{{ firstLevelLink.title }}</span>
|
|
423
|
-
</div>
|
|
424
|
-
<div class="selected-items">
|
|
425
|
-
<ul v-if="firstLevelLink.below" class="sub-nav-group">
|
|
426
|
-
<li
|
|
427
|
-
v-for="(
|
|
428
|
-
secondLevelLink, secondIndex
|
|
429
|
-
) in firstLevelLink.below"
|
|
430
|
-
:key="secondLevelLink.key"
|
|
431
|
-
:ref="`secondLevelMenuItemM-${parentIndex}-${secondIndex}`"
|
|
432
|
-
class="sub-nav-parent-item"
|
|
433
|
-
>
|
|
434
|
-
<a
|
|
435
|
-
v-if="secondLevelLink.below"
|
|
436
|
-
href
|
|
437
|
-
class="dark"
|
|
438
|
-
role="button"
|
|
439
|
-
aria-expanded="false"
|
|
440
|
-
@keydown.tab="searchFocus(secondIndex,firstLevelLink.below.length,$event,)"
|
|
441
|
-
@click.prevent="secondLevelClick(secondLevelLink,`secondLevelMenuItemM-${parentIndex}-${secondIndex}`,)"
|
|
442
|
-
@mouseover="mouseHover('secondLevelMenuItemM',parentIndex,secondIndex,)"
|
|
443
|
-
@mouseleave="mouseLeave('secondLevelMenuItemM',parentIndex,secondIndex,)"
|
|
444
|
-
@focusin="mouseHover('secondLevelMenuItemM',parentIndex,secondIndex,)"
|
|
445
|
-
@focusout="mouseLeave('secondLevelMenuItemM',parentIndex,secondIndex,)"
|
|
446
|
-
>
|
|
447
|
-
<span>{{ secondLevelLink.title }}</span>
|
|
448
|
-
<caret-right
|
|
449
|
-
v-if="!(screen === 'mobile' && isThirdLevelOpen)"
|
|
450
|
-
class="caret-right"
|
|
451
|
-
/>
|
|
452
|
-
</a>
|
|
453
|
-
<a
|
|
454
|
-
v-else-if="!secondLevelLink.relative"
|
|
455
|
-
:href="secondLevelLink.absolute"
|
|
456
|
-
class="dark"
|
|
457
|
-
>
|
|
458
|
-
<span>{{ secondLevelLink.title }}</span>
|
|
459
|
-
</a>
|
|
460
|
-
<nuxt-link
|
|
461
|
-
v-else
|
|
462
|
-
class="dark"
|
|
463
|
-
:to="secondLevelLink.relative"
|
|
464
|
-
@keydown.tab.native="searchFocus( secondIndex,firstLevelLink.below.length,$event,)"
|
|
465
|
-
@mouseover.native="mouseHover('secondLevelMenuItemM',parentIndex,secondIndex,)"
|
|
466
|
-
@mouseleave.native="mouseLeave('secondLevelMenuItemM',parentIndex,secondIndex,)"
|
|
467
|
-
@focusin.native="mouseHover('secondLevelMenuItemM',parentIndex,secondIndex,)"
|
|
468
|
-
@focusout.native="mouseLeave('secondLevelMenuItemM',parentIndex,secondIndex,)"
|
|
469
|
-
@click.native="fireAnalytics(secondLevelLink.title, secondLevelLink.relative)"
|
|
470
|
-
>
|
|
471
|
-
<span>{{ secondLevelLink.title }}</span>
|
|
472
|
-
</nuxt-link>
|
|
473
|
-
<div v-if="isThirdLevelOpen" class="sub-nav">
|
|
474
|
-
<div class="sub-nav__wrap">
|
|
475
|
-
<div class="selected-title">
|
|
476
|
-
<nuxt-link
|
|
477
|
-
v-if="secondLevelLink.relative"
|
|
478
|
-
:ref="`secondLevelSelectedTitleM-${parentIndex}-${secondIndex}`"
|
|
479
|
-
:to="secondLevelLink.relative"
|
|
480
|
-
class="dark"
|
|
481
|
-
@click.native="fireAnalytics(secondLevelLink.title, secondLevelLink.relative)"
|
|
482
|
-
@keydown.tab.native="backBtnFocus($event)"
|
|
483
|
-
>
|
|
484
|
-
<span>{{ secondLevelLink.title }}</span>
|
|
485
|
-
</nuxt-link>
|
|
486
|
-
<span v-else>{{ secondLevelLink.title }}</span>
|
|
487
|
-
</div>
|
|
488
|
-
<div class="selected-sub-nav">
|
|
489
|
-
<ul
|
|
490
|
-
v-if="secondLevelLink.below"
|
|
491
|
-
class="sub-nav-group"
|
|
492
|
-
>
|
|
493
|
-
<li
|
|
494
|
-
v-for="(
|
|
495
|
-
thirdLevelLink, thirdIndex
|
|
496
|
-
) in secondLevelLink.below"
|
|
497
|
-
:key="thirdLevelLink.key"
|
|
498
|
-
:ref="`thirdLevelMenuItemM-${parentIndex}-${secondIndex}-${thirdIndex}`"
|
|
499
|
-
>
|
|
500
|
-
<nuxt-link
|
|
501
|
-
v-if="thirdLevelLink.relative"
|
|
502
|
-
class="dark"
|
|
503
|
-
:to="thirdLevelLink.relative"
|
|
504
|
-
@keydown.tab.native="searchFocus(thirdIndex,secondLevelLink.below.length,$event,)"
|
|
505
|
-
@mouseover.native="mouseHover('thirdLevelMenuItemM',parentIndex,secondIndex,thirdIndex,)"
|
|
506
|
-
@mouseleave.native="mouseLeave('thirdLevelMenuItemM',parentIndex,secondIndex,thirdIndex,)"
|
|
507
|
-
@focusin.native="mouseHover('thirdLevelMenuItemM',parentIndex,secondIndex,thirdIndex,)"
|
|
508
|
-
@focusout.native="mouseLeave('thirdLevelMenuItemM',parentIndex,secondIndex,thirdIndex,)"
|
|
509
|
-
@click.native="fireAnalytics(thirdLevelLink.title, thirdLevelLink.relative)"
|
|
510
|
-
>
|
|
511
|
-
<span>{{ thirdLevelLink.title }}</span>
|
|
512
|
-
</nuxt-link>
|
|
513
|
-
<a
|
|
514
|
-
v-else
|
|
515
|
-
class="dark"
|
|
516
|
-
:href="thirdLevelLink.absolute"
|
|
517
|
-
>
|
|
518
|
-
<span>{{ thirdLevelLink.title }}</span>
|
|
519
|
-
</a>
|
|
520
|
-
</li>
|
|
521
|
-
</ul>
|
|
522
|
-
</div>
|
|
523
|
-
</div>
|
|
524
|
-
</div>
|
|
525
|
-
</li>
|
|
526
|
-
</ul>
|
|
527
|
-
</div>
|
|
528
|
-
</div>
|
|
529
|
-
</div>
|
|
530
|
-
</div>
|
|
531
|
-
</li>
|
|
532
|
-
</ul>
|
|
533
|
-
</div>
|
|
534
|
-
</div>
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
</div>
|
|
538
|
-
</li>
|
|
539
317
|
<li v-if="isWorkWell && screen === 'desktop'" class="nav-item hide">
|
|
540
318
|
<a href="#" class="dark" @focus="resetTab"></a>
|
|
541
319
|
</li>
|
|
542
|
-
</ul>
|
|
543
|
-
|
|
544
|
-
|
|
320
|
+
</ul>
|
|
545
321
|
</nav>
|
|
322
|
+
<!-- Mobile Menu -->
|
|
546
323
|
<div v-if="screen === 'mobile'" class="app-header__mobile-menu-container">
|
|
547
324
|
<ul id="mobileitems">
|
|
548
325
|
<li v-if="!isMobileMenuOpen">
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
326
|
+
<a class="dark" role="button" @click.prevent="showMobileMenu">
|
|
327
|
+
<span>Menu</span>
|
|
328
|
+
<menu-icon class="menu-icon" />
|
|
329
|
+
</a>
|
|
330
|
+
</li>
|
|
554
331
|
</ul>
|
|
555
332
|
</div>
|
|
556
333
|
</div>
|
|
@@ -559,7 +336,7 @@
|
|
|
559
336
|
</template>
|
|
560
337
|
|
|
561
338
|
<script>
|
|
562
|
-
|
|
339
|
+
|
|
563
340
|
import Close from './../../../assets/icons/close.svg?url'
|
|
564
341
|
import WorkSafeLogo from './../../../assets/icons/WSV-reversed.svg?url'
|
|
565
342
|
import WorkWellLogo from './../../../assets/icons/AppFooter/logo-workwell-reversed.svg?url'
|
|
@@ -579,16 +356,11 @@ import { ref } from "vue";
|
|
|
579
356
|
export default {
|
|
580
357
|
setup() {
|
|
581
358
|
const show = ref(false);
|
|
582
|
-
const showMore = ref(false);
|
|
583
|
-
const moreList = [];
|
|
584
359
|
return {
|
|
585
360
|
show,
|
|
586
|
-
showMore,
|
|
587
|
-
moreList
|
|
588
361
|
};
|
|
589
362
|
},
|
|
590
363
|
components: {
|
|
591
|
-
ModalSearch,
|
|
592
364
|
Close,
|
|
593
365
|
CaretRight,
|
|
594
366
|
CaretDown,
|
|
@@ -705,14 +477,10 @@ export default {
|
|
|
705
477
|
} else {
|
|
706
478
|
this.topLevelButtonIconsOnly = false
|
|
707
479
|
}
|
|
708
|
-
this.updateMoreMenu(val)
|
|
709
480
|
},
|
|
710
481
|
},
|
|
711
482
|
mounted() {
|
|
712
|
-
|
|
713
|
-
window.addEventListener('resize', this.updateMoreMenu())
|
|
714
|
-
})
|
|
715
|
-
this.updateMoreMenu()
|
|
483
|
+
|
|
716
484
|
let selectedMode = document
|
|
717
485
|
.getElementById('contrastStyle')
|
|
718
486
|
?.getAttribute('data-sel')
|
|
@@ -725,8 +493,7 @@ export default {
|
|
|
725
493
|
window.removeEventListener('scroll', this.resetContrast)
|
|
726
494
|
},
|
|
727
495
|
destroyed() {
|
|
728
|
-
window.removeEventListener('resize', this.screenWidth)
|
|
729
|
-
window.removeEventListener('resize', this.updateMoreMenu)
|
|
496
|
+
window.removeEventListener('resize', this.screenWidth);
|
|
730
497
|
},
|
|
731
498
|
created() {
|
|
732
499
|
if (typeof window !== 'undefined' && window) {
|
|
@@ -746,64 +513,29 @@ export default {
|
|
|
746
513
|
screenWidth() {
|
|
747
514
|
this.windowWidth = window.innerWidth;
|
|
748
515
|
},
|
|
749
|
-
updateMoreMenu(screenVal) {
|
|
750
|
-
const nItems = document.getElementById('navitems')
|
|
751
|
-
var scrollWidth = nItems?.scrollWidth
|
|
752
|
-
|
|
753
|
-
if (scrollWidth > this.windowWidth) {
|
|
754
|
-
scrollWidth = scrollWidth + this.addWidth
|
|
755
|
-
|
|
756
|
-
while (scrollWidth > this.windowWidth) {
|
|
757
|
-
if ( this.headerMenu.length > 1) { // check that there's more than one item in header
|
|
758
|
-
var tempItem = this.headerMenu.pop()
|
|
759
|
-
this.moreList.unshift(tempItem)
|
|
760
|
-
scrollWidth = scrollWidth - tempItem.title.length
|
|
761
|
-
} else {
|
|
762
|
-
scrollWidth = this.windowWidth
|
|
763
|
-
}
|
|
764
|
-
}
|
|
765
|
-
} else if ( this.moreList.length > 0 ) {
|
|
766
|
-
let tempWidth = scrollWidth
|
|
767
|
-
let ctr = 1
|
|
768
|
-
while (ctr <= this.moreList.length) {
|
|
769
|
-
var tempItem1 = this.moreList[0]
|
|
770
|
-
tempWidth = tempWidth + tempItem1.title.length
|
|
771
|
-
if (tempWidth > this.windoWidth) { //stop if newWidth would be greater than the windowWidth
|
|
772
|
-
ctr = this.moreList.length
|
|
773
|
-
} else { // move item fron dropdownArray to headerArray
|
|
774
|
-
var tempItem2 = this.moreList.shift()
|
|
775
|
-
this.headerMenu.push(tempItem2)
|
|
776
|
-
scrollWidth = tempWidth
|
|
777
|
-
}
|
|
778
|
-
ctr++
|
|
779
|
-
}
|
|
780
|
-
}
|
|
781
|
-
},
|
|
782
516
|
firstLevelClick(item, ref) {
|
|
783
517
|
// Reset screen to fix whitespace
|
|
784
|
-
if (window && window.scrollTo && this.screen ===
|
|
785
|
-
window.scrollTo(0, 0)
|
|
518
|
+
if (window && window.scrollTo && this.screen === "desktop") {
|
|
519
|
+
window.scrollTo(0, 0);
|
|
786
520
|
}
|
|
787
521
|
|
|
788
|
-
let selectedItem = this.$refs[ref][0]
|
|
789
|
-
let previouslyOpenItem = this.getActiveParent()
|
|
522
|
+
let selectedItem = this.$refs[ref][0];
|
|
523
|
+
let previouslyOpenItem = this.getActiveParent();
|
|
790
524
|
|
|
791
525
|
// Set this for mobile
|
|
792
|
-
this.firstLevelItemName = item.title
|
|
793
|
-
this.firstLevelItemRef = ref
|
|
794
|
-
|
|
526
|
+
this.firstLevelItemName = item.title;
|
|
527
|
+
this.firstLevelItemRef = ref;
|
|
528
|
+
|
|
795
529
|
// Set the first item to the variable
|
|
796
530
|
if (previouslyOpenItem.length) {
|
|
797
|
-
previouslyOpenItem = previouslyOpenItem[0]
|
|
531
|
+
previouslyOpenItem = previouslyOpenItem[0];
|
|
798
532
|
}
|
|
799
533
|
// If the menu is not open, open it
|
|
800
534
|
if (item.below && this.isSecondLevelOpen === false) {
|
|
801
|
-
selectedItem.classList.add(
|
|
802
|
-
selectedItem
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
this.isSecondLevelOpen = true
|
|
806
|
-
this.letBodyOverflow(false)
|
|
535
|
+
selectedItem.classList.add("isActiveParent");
|
|
536
|
+
selectedItem.getElementsByTagName("a")[0].setAttribute("aria-expanded", "true");
|
|
537
|
+
this.isSecondLevelOpen = true;
|
|
538
|
+
this.letBodyOverflow(false);
|
|
807
539
|
}
|
|
808
540
|
// If the menu is already open and the same item is clicked,
|
|
809
541
|
// close it
|
|
@@ -812,33 +544,29 @@ export default {
|
|
|
812
544
|
this.isSecondLevelOpen === true &&
|
|
813
545
|
selectedItem === previouslyOpenItem
|
|
814
546
|
) {
|
|
815
|
-
selectedItem.classList.remove(
|
|
816
|
-
selectedItem
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
this.isSecondLevelOpen = false
|
|
820
|
-
this.letBodyOverflow(true)
|
|
547
|
+
selectedItem.classList.remove("isActiveParent");
|
|
548
|
+
selectedItem.getElementsByTagName("a")[0].setAttribute("aria-expanded", "false");
|
|
549
|
+
this.isSecondLevelOpen = false;
|
|
550
|
+
this.letBodyOverflow(true);
|
|
821
551
|
}
|
|
822
552
|
// If the link has no children then go to that page
|
|
823
553
|
else if (!item.below) {
|
|
824
|
-
if (item.relative !==
|
|
825
|
-
this.$router.push(item.relative)
|
|
554
|
+
if (item.relative !== "/") {
|
|
555
|
+
this.$router.push(item.relative);
|
|
826
556
|
}
|
|
827
557
|
}
|
|
828
558
|
// Otherwise just remove the existing open menu and add
|
|
829
559
|
// the isActive class on the new selected item
|
|
830
560
|
else {
|
|
831
|
-
previouslyOpenItem.classList.remove(
|
|
832
|
-
selectedItem.classList.add(
|
|
561
|
+
previouslyOpenItem.classList.remove("isActiveParent");
|
|
562
|
+
selectedItem.classList.add("isActiveParent");
|
|
833
563
|
previouslyOpenItem
|
|
834
|
-
.getElementsByTagName(
|
|
835
|
-
.setAttribute(
|
|
836
|
-
selectedItem
|
|
837
|
-
.getElementsByTagName('a')[0]
|
|
838
|
-
.setAttribute('aria-expanded', 'true')
|
|
564
|
+
.getElementsByTagName("a")[0]
|
|
565
|
+
.setAttribute("aria-expanded", "false");
|
|
566
|
+
selectedItem.getElementsByTagName("a")[0].setAttribute("aria-expanded", "true");
|
|
839
567
|
}
|
|
840
|
-
if (this.screen ===
|
|
841
|
-
this.focusOnNext(selectedItem)
|
|
568
|
+
if (this.screen === "mobile") {
|
|
569
|
+
this.focusOnNext(selectedItem);
|
|
842
570
|
}
|
|
843
571
|
},
|
|
844
572
|
secondLevelClick(item, ref) {
|
|
@@ -902,7 +630,6 @@ export default {
|
|
|
902
630
|
|
|
903
631
|
this.isMobileMenuOpen = true
|
|
904
632
|
this.letBodyOverflow(false)
|
|
905
|
-
// this.showMore = false
|
|
906
633
|
this.$nextTick(() => {
|
|
907
634
|
this.$refs['firstLevelMenuItem-0'][0].firstElementChild.focus()
|
|
908
635
|
})
|
|
@@ -1194,7 +921,8 @@ export default {
|
|
|
1194
921
|
if (this.show) {
|
|
1195
922
|
this.show = !this.show
|
|
1196
923
|
}
|
|
1197
|
-
}
|
|
924
|
+
},
|
|
925
|
+
|
|
1198
926
|
},
|
|
1199
927
|
}
|
|
1200
928
|
</script>
|