@worksafevictoria/wcl7.5 1.1.0-beta.45 → 1.1.0-beta.47

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@worksafevictoria/wcl7.5",
3
- "version": "1.1.0-beta.45",
3
+ "version": "1.1.0-beta.47",
4
4
  "main": "src/index.js",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -104,8 +104,14 @@ export default {
104
104
  // Some custom logic for gov caretaker logic
105
105
  if (process.env.CARETAKER && process.env.CARETAKER === 'true') {
106
106
  if (!isGovSite(card?.selectedCard?.linkHref)) {
107
- this.$store.commit('page/SET_CARETAKER_REF', 'subheader')
108
- this.$root.$emit('caretaker-open', card?.selectedCard?.linkHref)
107
+ // this.$store.commit('page/SET_CARETAKER_REF', 'subheader')
108
+ // this.$root.$emit('caretaker-open', card?.selectedCard?.linkHref)
109
+ if (this.$pageStore) {
110
+ this.$pageStore.caretaker.referrer = 'subheader'
111
+ }
112
+ if (this.$bus) {
113
+ this.$bus.$emit('caretaker-open', card?.selectedCard?.linkHref)
114
+ }
109
115
  } else {
110
116
  navigateToPath.call(
111
117
  this,
@@ -11,7 +11,7 @@
11
11
  <column>
12
12
  <div class="mobilescreen">Reviewed on {{ updateDate }}</div>
13
13
  <div v-if="!submitted">
14
- <div style="margin-right:10px; display:inline">
14
+ <div style="margin-right: 10px; display: inline">
15
15
  <strong>Was this page helpful?</strong>
16
16
  </div>
17
17
  <input
@@ -86,7 +86,7 @@
86
86
  Cancel
87
87
  </button>
88
88
  <cta-button
89
- style="float:right;"
89
+ style="float: right"
90
90
  :url="''"
91
91
  :rtl="rtl"
92
92
  @clicked="submitFeedback()"
@@ -181,7 +181,7 @@
181
181
  :key="subIndex"
182
182
  class="app-footer-menu__item"
183
183
  :class="{
184
- 'app-footer-menu__item--hide': !menuItem.isOpen
184
+ 'app-footer-menu__item--hide': !menuItem.isOpen,
185
185
  }"
186
186
  >
187
187
  <a
@@ -249,7 +249,7 @@
249
249
  <li
250
250
  class="app-footer-menu__item app-footer-menu__address app-footer-menu__item--link"
251
251
  :class="{
252
- 'app-footer-menu__item--hide': !contactMenuIsOpen
252
+ 'app-footer-menu__item--hide': !contactMenuIsOpen,
253
253
  }"
254
254
  >
255
255
  <p>
@@ -261,7 +261,7 @@
261
261
  <li
262
262
  class="app-footer-menu__item app-footer-menu__item--link"
263
263
  :class="{
264
- 'app-footer-menu__item--hide': !contactMenuIsOpen
264
+ 'app-footer-menu__item--hide': !contactMenuIsOpen,
265
265
  }"
266
266
  >
267
267
  <a class="dark" href="tel:+611800136089">1800 136 089</a>
@@ -269,7 +269,7 @@
269
269
  <li
270
270
  class="app-footer-menu__item app-footer-menu__item--link"
271
271
  :class="{
272
- 'app-footer-menu__item--hide': !contactMenuIsOpen
272
+ 'app-footer-menu__item--hide': !contactMenuIsOpen,
273
273
  }"
274
274
  >
275
275
  <nuxt-link class="dark" to="/contact-worksafe"
@@ -337,7 +337,7 @@
337
337
  <button
338
338
  class="app-footer__main__subscribe-col__btn"
339
339
  :class="{
340
- 'app-footer__main__subscribe-btn--workwell': isWorkwell
340
+ 'app-footer__main__subscribe-btn--workwell': isWorkwell,
341
341
  }"
342
342
  @click="subscribe"
343
343
  >
@@ -385,25 +385,25 @@ export default {
385
385
  Container,
386
386
  Row,
387
387
  Icon,
388
- CtaButton
388
+ CtaButton,
389
389
  },
390
390
  props: {
391
391
  footerMenu: {
392
392
  type: Array,
393
- required: true
393
+ required: true,
394
394
  },
395
395
  changedDate: {
396
396
  type: String,
397
- required: true
397
+ required: true,
398
398
  },
399
399
  isWorkwell: {
400
400
  type: Boolean,
401
- default: false
401
+ default: false,
402
402
  },
403
403
  storybook: {
404
404
  type: Boolean,
405
- default: false
406
- }
405
+ default: false,
406
+ },
407
407
  },
408
408
  data() {
409
409
  return {
@@ -430,8 +430,8 @@ export default {
430
430
  webform_id: 'page_feedback_form',
431
431
  page_url: '',
432
432
  was_the_information_on_this_page_helpful_: '',
433
- message: ''
434
- }
433
+ message: '',
434
+ },
435
435
  }
436
436
  },
437
437
  computed: {
@@ -444,7 +444,7 @@ export default {
444
444
  },
445
445
  processID() {
446
446
  return `${Date.now()}-${Math.floor(Math.random() * 10000)}`
447
- }
447
+ },
448
448
  },
449
449
  watch: {
450
450
  $route() {
@@ -452,10 +452,10 @@ export default {
452
452
  this.submitted = false
453
453
  },
454
454
  showForm: {
455
- handler: function() {
455
+ handler: function () {
456
456
  this.initialiseFeedback()
457
- }
458
- }
457
+ },
458
+ },
459
459
  },
460
460
  mounted() {
461
461
  this.$nextTick(() => {
@@ -510,7 +510,8 @@ export default {
510
510
  const attrs = {
511
511
  event: 'custom.interaction.helpful',
512
512
  label: this.response.was_the_information_on_this_page_helpful_,
513
- title: this.$store?.state?.page?.content?.title
513
+ //title: this.$store?.state?.page?.content?.title,
514
+ title: this.$pageStore?.content?.title,
514
515
  }
515
516
  if (this.$gtm) {
516
517
  this.$gtm.push({ event: 'custom.interaction.helpful', ...attrs })
@@ -518,20 +519,21 @@ export default {
518
519
  },
519
520
  fireGtagFeedback() {
520
521
  const attrs = {
521
- title: this.$store?.state?.page?.content?.title,
522
+ //title: this.$store?.state?.page?.content?.title,
523
+ title: this.$pageStore?.content?.title,
522
524
  label: this.response.was_the_information_on_this_page_helpful_,
523
- processID: this.processID
525
+ processID: this.processID,
524
526
  }
525
527
  if (this.$gtm) {
526
528
  this.$gtm.push({
527
529
  event: 'custom.interaction.helpful.feedback',
528
- ...attrs
530
+ ...attrs,
529
531
  })
530
532
  }
531
533
  },
532
534
  backToTop() {
533
- if (!this.storybook) {
534
- this.$nuxt.$emit('scrollToTop')
535
+ if (this.$bus) {
536
+ this.$bus.$emit('scrollToTop')
535
537
  }
536
538
  },
537
539
  isAbsoluteUrl(uri) {
@@ -617,13 +619,13 @@ export default {
617
619
  this.$gtm.push({
618
620
  event: 'custom.interaction.outboundlink',
619
621
  category: item.title,
620
- label: item.absolute
622
+ label: item.absolute,
621
623
  })
622
624
  }
623
625
  window.open(item.absolute)
624
626
  }
625
- }
626
- }
627
+ },
628
+ },
627
629
  }
628
630
  </script>
629
631
 
@@ -510,14 +510,13 @@ export default {
510
510
  window.addEventListener('resize', this.screenWidth)
511
511
  this.screenWidth()
512
512
  }
513
- if (this.$nuxt) {
514
- //console.log('🚀 ~ this.$nuxt.$on ~ this.$nuxt:', this.$nuxt)
515
- // this.$nuxt.$on('site-search', (query) => {
516
- // this.searchQuery = query
517
- // if (query) {
518
- // this.showSearch()
519
- // }
520
- // })
513
+ if (this.$bus) {
514
+ this.$bus.$on('site-search', (query) => {
515
+ this.searchQuery = query
516
+ if (query) {
517
+ this.showSearch()
518
+ }
519
+ })
521
520
  }
522
521
  },
523
522
  methods: {
@@ -863,8 +862,8 @@ export default {
863
862
  // this.$store.dispatch('tracking/event', payload)
864
863
  },
865
864
  skipToContent() {
866
- if (this.$nuxt) {
867
- this.$nuxt.$emit('scrollToTop')
865
+ if (this.$bus) {
866
+ this.$bus.$emit('scrollToTop')
868
867
  }
869
868
  },
870
869
  },
@@ -281,22 +281,21 @@ export default {
281
281
  // }
282
282
  },
283
283
  mounted() {
284
- if (this.$nuxt?.$on) {
285
- // console.log('🚀 ~ this.$nuxt.$on ~ this.$nuxt:', this.$nuxt)
286
- // this.$nuxt.$on('scrollToTop', () => {
287
- // setTimeout(() => {
288
- // const title = this.$refs.title
289
- // if (title) {
290
- // title.$el.setAttribute('tabindex', 0)
291
- // title.$el.focus()
292
- // }
293
- // }, 500)
294
- // })
284
+ if (this.$bus) {
285
+ this.$bus.$on('scrollToTop', () => {
286
+ setTimeout(() => {
287
+ const title = this.$refs.title
288
+ if (title) {
289
+ title.$el.setAttribute('tabindex', 0)
290
+ title.$el.focus()
291
+ }
292
+ }, 500)
293
+ })
295
294
  }
296
295
  },
297
296
  beforeDestroy() {
298
- if (this.$nuxt?.$off) {
299
- this.$nuxt.$off('scrollToTop')
297
+ if (this.$bus) {
298
+ this.$bus.$off('scrollToTop')
300
299
  }
301
300
  },
302
301
  methods: {
@@ -6,7 +6,7 @@
6
6
  class="accordion-item"
7
7
  :class="{
8
8
  rtl: rtl,
9
- '--with-pre-heading': preHeading && showPreHeading
9
+ '--with-pre-heading': preHeading && showPreHeading,
10
10
  }"
11
11
  >
12
12
  <a
@@ -33,7 +33,7 @@
33
33
  :icon-alt="'collapse'"
34
34
  :glyph="CaretUp"
35
35
  :class="{
36
- '--with-pre-heading': preHeading && showPreHeading
36
+ '--with-pre-heading': preHeading && showPreHeading,
37
37
  }"
38
38
  />
39
39
  <icon
@@ -44,7 +44,7 @@
44
44
  :icon-alt="'expand'"
45
45
  :glyph="CaretDown"
46
46
  :class="{
47
- '--with-pre-heading': preHeading && showPreHeading
47
+ '--with-pre-heading': preHeading && showPreHeading,
48
48
  }"
49
49
  />
50
50
  </a>
@@ -76,42 +76,42 @@ export default {
76
76
  RichText,
77
77
  Icon,
78
78
  BCard,
79
- BCardBody
79
+ BCardBody,
80
80
  },
81
81
  props: {
82
82
  title: {
83
83
  type: String,
84
- default: 'Item'
84
+ default: 'Item',
85
85
  },
86
86
  preHeading: {
87
87
  type: String,
88
- default: 'PRE-HEADING'
88
+ default: 'PRE-HEADING',
89
89
  },
90
90
  content: {
91
91
  type: String,
92
- default: null
92
+ default: null,
93
93
  },
94
94
  rtl: {
95
95
  type: Boolean,
96
- default: false
96
+ default: false,
97
97
  },
98
98
  open: {
99
99
  type: Boolean,
100
- default: false
100
+ default: false,
101
101
  },
102
102
  showPreHeading: {
103
103
  type: Boolean,
104
- default: false
104
+ default: false,
105
105
  },
106
106
  meta: {
107
107
  type: Array,
108
- default: () => []
109
- }
108
+ default: () => [],
109
+ },
110
110
  },
111
111
  data: () => ({
112
112
  showAccordion: false,
113
113
  CaretDown,
114
- CaretUp
114
+ CaretUp,
115
115
  }),
116
116
  mounted() {
117
117
  this.$nextTick(() => {
@@ -122,12 +122,16 @@ export default {
122
122
  toggleAccordion() {
123
123
  this.showAccordion = !this.showAccordion
124
124
  if (this.showAccordion) {
125
- this.$root.$emit('accordionItemOpen', this.meta)
125
+ if (this.$bus) {
126
+ this.$bus.$emit('accordionItemOpen', this.meta) // this.$root.$emit('accordionItemOpen', this.meta)
127
+ }
126
128
  } else {
127
- this.$root.$emit('accordionItemClose', this.meta)
129
+ if (this.$bus) {
130
+ this.$bus.$emit('accordionItemClose', this.meta) // this.$root.$emit('accordionItemClose', this.meta)
131
+ }
128
132
  }
129
- }
130
- }
133
+ },
134
+ },
131
135
  }
132
136
  </script>
133
137
 
@@ -166,12 +166,8 @@ export default {
166
166
  return allCards
167
167
  },
168
168
  async loadMoreCards(init) {
169
- // Preference pinia
170
169
  const attrs = {
171
- group: this.$pinia?.state?.value?.page?.content?.title
172
- ? this.$pinia?.state?.value?.page?.content?.title
173
- : this.$store?.state?.page?.content?.title,
174
- // group: this.$store?.state?.page?.content?.title ? this.$store?.state?.page?.content?.title : this.$pinia?.state?.page?.content?.title
170
+ group: this.$pageStore?.content?.title,
175
171
  }
176
172
  if (this.$gtm && !init) {
177
173
  this.$gtm.push({ event: 'custom.interaction.showmore.click', ...attrs })
@@ -48,7 +48,7 @@
48
48
  :taxonomies="{
49
49
  industry: card.industry,
50
50
  topic: card.topic,
51
- language: card.language
51
+ language: card.language,
52
52
  }"
53
53
  />
54
54
  </template>
@@ -69,7 +69,7 @@ import RichText from './../../Paragraphs/RichText/index.vue'
69
69
  import {
70
70
  isAbsoluteUrl,
71
71
  navigateToPath,
72
- isGovSite
72
+ isGovSite,
73
73
  } from './../../../../lib/utility'
74
74
 
75
75
  export default {
@@ -80,48 +80,48 @@ export default {
80
80
  type: Array,
81
81
  default() {
82
82
  return []
83
- }
83
+ },
84
84
  },
85
85
  role: {
86
86
  type: String,
87
- default: 'button'
87
+ default: 'button',
88
88
  },
89
89
  darkBackground: {
90
90
  type: Boolean,
91
- default: false
91
+ default: false,
92
92
  },
93
93
  title: {
94
94
  type: String,
95
- default: ''
95
+ default: '',
96
96
  },
97
97
  titleTag: {
98
98
  type: String,
99
- default: 'h3'
99
+ default: 'h3',
100
100
  },
101
101
  subHeading: {
102
102
  type: String,
103
- default: null
103
+ default: null,
104
104
  },
105
105
  footerHeading: {
106
106
  type: String,
107
- default: null
107
+ default: null,
108
108
  },
109
109
  rtl: {
110
110
  type: Boolean,
111
- default: false
111
+ default: false,
112
112
  },
113
113
  showListItemNavigationArrow: {
114
114
  type: Boolean,
115
- default: false
115
+ default: false,
116
116
  },
117
117
  showLargeSpacing: {
118
118
  type: Boolean,
119
- default: false
119
+ default: false,
120
120
  },
121
121
  showListLink: {
122
122
  type: Boolean,
123
- default: false
124
- }
123
+ default: false,
124
+ },
125
125
  },
126
126
  methods: {
127
127
  getCaret(card) {
@@ -138,37 +138,43 @@ export default {
138
138
  // Some custom logic for gov caretaker logic
139
139
  if (process.env.CARETAKER && process.env.CARETAKER === 'true') {
140
140
  if (!isGovSite(card?.selectedCard?.link)) {
141
- this.$store.commit('page/SET_CARETAKER_REF', 'list-group')
142
- this.$root.$emit('caretaker-open', card?.selectedCard?.link)
141
+ // this.$store.commit('page/SET_CARETAKER_REF', 'list-group')
142
+ // this.$root.$emit('caretaker-open', card?.selectedCard?.link)
143
+ if (this.$pageStore) {
144
+ this.$pageStore.caretaker.referrer = 'list-group'
145
+ }
146
+ if (this.$bus) {
147
+ this.$bus.$emit('caretaker-open', card?.selectedCard?.link)
148
+ }
143
149
  } else {
144
150
  navigateToPath.call(
145
151
  this,
146
152
  card?.selectedCard?.link,
147
- card?.ev?.ctrlKey === true || card?.ev?.metaKey === true
153
+ card?.ev?.ctrlKey === true || card?.ev?.metaKey === true,
148
154
  )
149
155
  }
150
156
  } else {
151
157
  navigateToPath.call(
152
158
  this,
153
159
  card?.selectedCard?.link,
154
- card?.ev?.ctrlKey === true || card?.ev?.metaKey === true
160
+ card?.ev?.ctrlKey === true || card?.ev?.metaKey === true,
155
161
  )
156
162
  }
157
163
  },
158
164
  focussed(ev) {
159
165
  const path = ev.path || (ev.composedPath && ev.composedPath())
160
166
  const theTabbedCards = path.find(
161
- (el) => el['_prevClass'] === 'tabbed-cards'
167
+ (el) => el['_prevClass'] === 'tabbed-cards',
162
168
  )
163
169
  if (ev.shiftKey && theTabbedCards) {
164
170
  ev.preventDefault()
165
- let selectedTabbedCards = theTabbedCards.getElementsByClassName(
166
- 'isSelected'
167
- )
171
+ let selectedTabbedCards =
172
+ theTabbedCards.getElementsByClassName('isSelected')
168
173
  let selectedCard = selectedTabbedCards[0].getElementsByTagName('button')
169
- let thePrevLGItem = ev.target?.parentElement?.parentElement?.previousSibling?.getElementsByTagName(
170
- 'button'
171
- )
174
+ let thePrevLGItem =
175
+ ev.target?.parentElement?.parentElement?.previousSibling?.getElementsByTagName(
176
+ 'button',
177
+ )
172
178
  if (thePrevLGItem) {
173
179
  thePrevLGItem[0].focus()
174
180
  } else {
@@ -176,22 +182,25 @@ export default {
176
182
  }
177
183
  } else if (!ev.shiftKey && theTabbedCards) {
178
184
  ev.preventDefault()
179
- let selectedTabbedCards = theTabbedCards.getElementsByClassName(
180
- 'isSelected'
181
- )
182
- let nextTabbedCard = selectedTabbedCards[0]?.parentElement?.nextSibling?.getElementsByTagName(
183
- 'button'
184
- )
185
- let theNextLGItem = ev.target?.parentElement?.parentElement?.nextSibling?.getElementsByTagName(
186
- 'button'
187
- )
185
+ let selectedTabbedCards =
186
+ theTabbedCards.getElementsByClassName('isSelected')
187
+ let nextTabbedCard =
188
+ selectedTabbedCards[0]?.parentElement?.nextSibling?.getElementsByTagName(
189
+ 'button',
190
+ )
191
+ let theNextLGItem =
192
+ ev.target?.parentElement?.parentElement?.nextSibling?.getElementsByTagName(
193
+ 'button',
194
+ )
188
195
  if (theNextLGItem) {
189
196
  theNextLGItem[0].focus()
190
197
  } else if (nextTabbedCard) {
191
198
  nextTabbedCard[0].focus()
192
199
  } else {
193
200
  let nextFocus = this.focusNextElement()
194
- this.$root.$emit('last-focus-out')
201
+ if (this.$bus) {
202
+ this.$bus.$emit('last-focus-out')
203
+ }
195
204
  nextFocus.focus()
196
205
  }
197
206
  } else {
@@ -208,7 +217,7 @@ export default {
208
217
  'button:not([disabled]):not([tabindex="-1"])',
209
218
  'input:not([disabled]):not([tabindex="-1"])',
210
219
  'select:not([disabled]):not([tabindex="-1"])',
211
- '[tabindex]:not([disabled]):not([tabindex="-1"])'
220
+ '[tabindex]:not([disabled]):not([tabindex="-1"])',
212
221
  /* add custom queries here */
213
222
  ].join(','),
214
223
  queryResult = Array.prototype.filter.call(
@@ -220,7 +229,7 @@ export default {
220
229
  elem.offsetHeight > 0 ||
221
230
  elem === activeElem
222
231
  )
223
- }
232
+ },
224
233
  ),
225
234
  indexedList = queryResult
226
235
  .slice()
@@ -234,20 +243,20 @@ export default {
234
243
  ? a.tabIndex < b.tabIndex
235
244
  ? -1
236
245
  : b.tabIndex < a.tabIndex
237
- ? 1
238
- : 0
246
+ ? 1
247
+ : 0
239
248
  : a.tabIndex != 0
240
- ? -1
241
- : b.tabIndex != 0
242
- ? 1
243
- : 0
249
+ ? -1
250
+ : b.tabIndex != 0
251
+ ? 1
252
+ : 0
244
253
  }),
245
254
  focusable = [].concat(
246
255
  indexedList,
247
256
  queryResult.filter((elem) => {
248
257
  /* filter out all indexes above 0 */
249
258
  return elem.tabIndex == 0 || elem.tabIndex == -1 ? true : false
250
- })
259
+ }),
251
260
  )
252
261
 
253
262
  /* if reverse is true return the previous focusable element
@@ -256,8 +265,8 @@ export default {
256
265
  ? focusable[focusable.indexOf(activeElem) - 1] ||
257
266
  focusable[focusable.length - 1]
258
267
  : focusable[focusable.indexOf(activeElem) + 1] || focusable[0]
259
- }
260
- }
268
+ },
269
+ },
261
270
  }
262
271
  </script>
263
272
  <style lang="scss" scoped>
@@ -40,10 +40,11 @@
40
40
  :is-expandable="true"
41
41
  />
42
42
  </template>
43
- <template
44
- v-slot:cardGridFooter
45
- >
46
- <column v-if="selectedRow === rIndex && selectedCard" class="listgroup-column">
43
+ <template v-slot:cardGridFooter>
44
+ <column
45
+ v-if="selectedRow === rIndex && selectedCard"
46
+ class="listgroup-column"
47
+ >
47
48
  <div ref="listgroup" class="tabbed-cards__listGroup">
48
49
  <list-group
49
50
  :list="selectedCard.links"
@@ -77,24 +78,24 @@ export default {
77
78
  props: {
78
79
  heading: {
79
80
  type: String,
80
- default: ''
81
+ default: '',
81
82
  },
82
83
  description: {
83
84
  type: String,
84
- default: ''
85
+ default: '',
85
86
  },
86
87
  tabbedCards: {
87
88
  type: Array,
88
- default: () => []
89
+ default: () => [],
89
90
  },
90
91
  rtl: {
91
92
  type: Boolean,
92
- default: false
93
+ default: false,
93
94
  },
94
95
  workwell: {
95
96
  type: Boolean,
96
- default: false
97
- }
97
+ default: false,
98
+ },
98
99
  },
99
100
  data() {
100
101
  return {
@@ -102,7 +103,7 @@ export default {
102
103
  selectedRow: undefined,
103
104
  screenWidth: 0,
104
105
  loaded: false,
105
- tabList: null
106
+ tabList: null,
106
107
  }
107
108
  },
108
109
  computed: {
@@ -122,15 +123,18 @@ export default {
122
123
  } else {
123
124
  return 3
124
125
  }
125
- }
126
+ },
126
127
  },
127
128
  mounted() {
128
129
  window.addEventListener('resize', this.updateScreenWidth)
129
130
  this.screenWidth = document.documentElement.clientWidth
130
- /* this.$root.$on('last-focus-out', () => {
131
- this.selectedCard = null
132
- this.selectedRow = null
133
- }) */
131
+ if (this.$bus) {
132
+ this.$bus.$on('last-focus-out', () => {
133
+ this.selectedCard = null
134
+ this.selectedRow = null
135
+ })
136
+ }
137
+
134
138
  this.loaded = true
135
139
  },
136
140
  beforeDestroy() {
@@ -171,7 +175,7 @@ export default {
171
175
  easing: 'ease-in',
172
176
  offset: -100,
173
177
  force: true,
174
- cancelable: true
178
+ cancelable: true,
175
179
  }
176
180
  setTimeout(() => {
177
181
  const listGroup = this.$refs.listgroup[0]
@@ -193,14 +197,17 @@ export default {
193
197
  focussed(ev) {
194
198
  ev.preventDefault()
195
199
  let activeElem = ev.target
196
- if(!this.tabList){
200
+ if (!this.tabList) {
197
201
  this.tabList = this.getFocusElements()
198
202
  } else {
199
- let newList = this.getFocusElements().filter(item => this.tabList.indexOf(item) == -1)
200
- this.tabList.splice(this.tabList.indexOf(activeElem) + 1,0,...newList)
203
+ let newList = this.getFocusElements().filter(
204
+ (item) => this.tabList.indexOf(item) == -1,
205
+ )
206
+ this.tabList.splice(this.tabList.indexOf(activeElem) + 1, 0, ...newList)
201
207
  }
202
- let newTab = ev.shiftKey ? this.tabList[this.tabList.indexOf(activeElem) - 1] ||
203
- this.tabList[this.tabList.length - 1]
208
+ let newTab = ev.shiftKey
209
+ ? this.tabList[this.tabList.indexOf(activeElem) - 1] ||
210
+ this.tabList[this.tabList.length - 1]
204
211
  : this.tabList[this.tabList.indexOf(activeElem) + 1] || this.tabList[0]
205
212
  newTab.focus()
206
213
  },
@@ -211,17 +218,14 @@ export default {
211
218
  'button:not([disabled]):not([tabindex="-1"])',
212
219
  'input:not([disabled]):not([tabindex="-1"])',
213
220
  'select:not([disabled]):not([tabindex="-1"])',
214
- '[tabindex]:not([disabled]):not([tabindex="-1"])'
221
+ '[tabindex]:not([disabled]):not([tabindex="-1"])',
215
222
  /* add custom queries here */
216
223
  ].join(','),
217
224
  queryResult = Array.prototype.filter.call(
218
225
  document.querySelectorAll(queryString),
219
226
  (elem) => {
220
- return (
221
- elem.offsetWidth > 0 ||
222
- elem.offsetHeight > 0
223
- )
224
- }
227
+ return elem.offsetWidth > 0 || elem.offsetHeight > 0
228
+ },
225
229
  ),
226
230
  indexedList = queryResult
227
231
  .slice()
@@ -235,24 +239,24 @@ export default {
235
239
  ? a.tabIndex < b.tabIndex
236
240
  ? -1
237
241
  : b.tabIndex < a.tabIndex
238
- ? 1
239
- : 0
242
+ ? 1
243
+ : 0
240
244
  : a.tabIndex != 0
241
- ? -1
242
- : b.tabIndex != 0
243
- ? 1
244
- : 0
245
+ ? -1
246
+ : b.tabIndex != 0
247
+ ? 1
248
+ : 0
245
249
  }),
246
250
  focusable = [].concat(
247
251
  indexedList,
248
252
  queryResult.filter((elem) => {
249
253
  /* filter out all indexes above 0 */
250
254
  return elem.tabIndex == 0 || elem.tabIndex == -1 ? true : false
251
- })
255
+ }),
252
256
  )
253
- return focusable
254
- }
255
- }
257
+ return focusable
258
+ },
259
+ },
256
260
  }
257
261
  </script>
258
262
  <style lang="scss" scoped>
@@ -26,7 +26,7 @@
26
26
  class="card_group__card"
27
27
  :class="{
28
28
  [`card_group__card--${card.colour}`]: card.pillText,
29
- [`card_group__card--none`]: !card.pillText
29
+ [`card_group__card--none`]: !card.pillText,
30
30
  }"
31
31
  :card-header-title="card.title"
32
32
  :caret="getCaret(card)"
@@ -40,7 +40,7 @@
40
40
  :taxonomies="{
41
41
  industry: card.industry,
42
42
  topic: card.topic,
43
- language: card.language
43
+ language: card.language,
44
44
  }"
45
45
  >
46
46
  <template v-slot:cardTop>
@@ -55,9 +55,9 @@
55
55
  <template
56
56
  v-if="
57
57
  loading ||
58
- (cards.length === 0 && !loading) ||
59
- $slots.cardGroupFooter ||
60
- (!loading && showLoadMore)
58
+ (cards.length === 0 && !loading) ||
59
+ $slots.cardGroupFooter ||
60
+ (!loading && showLoadMore)
61
61
  "
62
62
  v-slot:cardGridFooter
63
63
  >
@@ -93,7 +93,7 @@ import Column from './../../Containers/Column/index.vue'
93
93
  import {
94
94
  isAbsoluteUrl,
95
95
  navigateToPath,
96
- isGovSite
96
+ isGovSite,
97
97
  } from './../../../../lib/utility'
98
98
  import CardBody from './cardbody.vue'
99
99
  import CardTop from './cardtop.vue'
@@ -109,57 +109,57 @@ export default {
109
109
  CardBody,
110
110
  CardTop,
111
111
  CtaButton,
112
- BSpinner
113
- },
112
+ BSpinner,
113
+ },
114
114
  props: {
115
115
  bundle: {
116
116
  type: Array,
117
117
  required: false,
118
- default: () => []
118
+ default: () => [],
119
119
  },
120
120
  caret: {
121
121
  type: String,
122
122
  default: undefined,
123
123
  validator: (value) =>
124
- ['down', 'up', 'right', 'left', 'external'].indexOf(value) >= 0
124
+ ['down', 'up', 'right', 'left', 'external'].indexOf(value) >= 0,
125
125
  },
126
126
  cards: {
127
127
  type: Array,
128
128
  required: true,
129
- default: () => []
129
+ default: () => [],
130
130
  },
131
131
  background: {
132
132
  type: String,
133
- default: 'none'
133
+ default: 'none',
134
134
  },
135
135
  title: {
136
136
  type: String,
137
- default: null
137
+ default: null,
138
138
  },
139
139
  titleTag: {
140
140
  type: String,
141
- default: 'h2'
141
+ default: 'h2',
142
142
  },
143
143
  rtl: {
144
144
  type: Boolean,
145
- default: false
145
+ default: false,
146
146
  },
147
147
  loading: {
148
148
  type: Boolean,
149
- default: false
149
+ default: false,
150
150
  },
151
151
  columns: {
152
152
  type: Number,
153
- default: 3
153
+ default: 3,
154
154
  },
155
155
  showLoadMore: {
156
156
  type: Boolean,
157
- default: false
157
+ default: false,
158
158
  },
159
159
  emptyCardsText: {
160
160
  type: String,
161
- default: 'No results returned'
162
- }
161
+ default: 'No results returned',
162
+ },
163
163
  },
164
164
  computed: {
165
165
  allCardsRTL() {
@@ -167,7 +167,7 @@ export default {
167
167
  return this.rtl
168
168
  }
169
169
  return this.cards.every((card) => this.rtl || card.rtl)
170
- }
170
+ },
171
171
  },
172
172
  methods: {
173
173
  getCaret(card) {
@@ -181,24 +181,30 @@ export default {
181
181
  // Some custom logic for gov caretaker logic
182
182
  if (process.env.CARETAKER && process.env.CARETAKER === 'true') {
183
183
  if (!isGovSite(card?.selectedCard?.link)) {
184
- this.$store.commit('page/SET_CARETAKER_REF', 'card-group')
185
- this.$root.$emit('caretaker-open', card?.selectedCard?.link)
184
+ // this.$store.commit('page/SET_CARETAKER_REF', 'card-group')
185
+ // this.$root.$emit('caretaker-open', card?.selectedCard?.link)
186
+ if (this.$pageStore) {
187
+ this.$pageStore.caretaker.referrer = 'card-group'
188
+ }
189
+ if (this.$bus) {
190
+ this.$bus.$emit('caretaker-open', card?.selectedCard?.link)
191
+ }
186
192
  } else {
187
193
  navigateToPath.call(
188
194
  this,
189
195
  card?.selectedCard?.link,
190
- card?.ev?.ctrlKey === true || card?.ev?.metaKey === true
196
+ card?.ev?.ctrlKey === true || card?.ev?.metaKey === true,
191
197
  )
192
198
  }
193
199
  } else {
194
200
  navigateToPath.call(
195
201
  this,
196
202
  card?.selectedCard?.link,
197
- card?.ev?.ctrlKey === true || card?.ev?.metaKey === true
203
+ card?.ev?.ctrlKey === true || card?.ev?.metaKey === true,
198
204
  )
199
205
  }
200
- }
201
- }
206
+ },
207
+ },
202
208
  }
203
209
  </script>
204
210
 
@@ -75,77 +75,77 @@ export default {
75
75
  components: {
76
76
  arrowRight,
77
77
  arrowLeft,
78
- icon
78
+ icon,
79
79
  },
80
80
  props: {
81
81
  type: {
82
82
  type: String,
83
83
  default: 'default',
84
84
  validator: (value) =>
85
- ['default', 'white', 'gray', 'workwell', 'dark'].indexOf(value) >= 0
85
+ ['default', 'white', 'gray', 'workwell', 'dark'].indexOf(value) >= 0,
86
86
  },
87
87
  url: {
88
88
  type: String,
89
89
  required: false,
90
- default: ''
90
+ default: '',
91
91
  },
92
92
  alt: {
93
93
  type: String,
94
- default: ''
94
+ default: '',
95
95
  },
96
96
  rtl: {
97
97
  type: Boolean,
98
- default: false
98
+ default: false,
99
99
  },
100
100
  glyph: {
101
101
  type: [Object, String],
102
102
  required: false,
103
- default: () => null
103
+ default: () => null,
104
104
  },
105
105
  glyphHeight: {
106
106
  type: Number,
107
107
  required: false,
108
- default: 15
108
+ default: 15,
109
109
  },
110
110
  glyphWidth: {
111
111
  type: Number,
112
112
  required: false,
113
- default: 25
113
+ default: 25,
114
114
  },
115
115
  workwell: {
116
116
  type: Boolean,
117
- default: false
117
+ default: false,
118
118
  },
119
119
  isCentred: {
120
120
  type: Boolean,
121
- default: false
121
+ default: false,
122
122
  },
123
123
  textOnly: {
124
124
  type: Boolean,
125
- default: false
125
+ default: false,
126
126
  },
127
127
  isFluid: {
128
128
  type: Boolean,
129
- default: true
129
+ default: true,
130
130
  },
131
131
  stretch: {
132
132
  type: Boolean,
133
- default: false
133
+ default: false,
134
134
  },
135
135
  slim: {
136
136
  type: Boolean,
137
- default: false
137
+ default: false,
138
138
  },
139
139
  focusOutline: {
140
140
  type: String,
141
141
  default: 'default',
142
- validator: (value) => ['default', 'light', 'dark'].indexOf(value) >= 0
143
- }
142
+ validator: (value) => ['default', 'light', 'dark'].indexOf(value) >= 0,
143
+ },
144
144
  },
145
145
  data() {
146
146
  return {
147
147
  arrowRight,
148
- arrowLeft
148
+ arrowLeft,
149
149
  }
150
150
  },
151
151
  computed: {
@@ -188,12 +188,12 @@ export default {
188
188
  return this.isCentred
189
189
  ? { ['wcl-cta__arrow']: hasArrow }
190
190
  : {
191
- ['wcl-cta__arrow']: hasArrow
191
+ ['wcl-cta__arrow']: hasArrow,
192
192
  }
193
193
  },
194
194
  textClass() {
195
195
  return this.isCentred ? {} : {}
196
- }
196
+ },
197
197
  },
198
198
  methods: {
199
199
  clicked() {
@@ -201,15 +201,17 @@ export default {
201
201
  var attrs
202
202
  if (theEl && theEl.length > 0) {
203
203
  attrs = {
204
- group: this.$store?.state?.page?.content?.title,
204
+ //group: this.$store?.state?.page?.content?.title,
205
+ group: this.$pageStore?.content?.title,
205
206
  label: theEl[0]?.innerText?.split('\n')[0],
206
- data: this.url
207
+ data: this.url,
207
208
  }
208
209
  } else {
209
210
  attrs = {
210
- group: this.$store?.state?.page?.content?.title,
211
+ //group: this.$store?.state?.page?.content?.title,
212
+ group: this.$pageStore?.content?.title,
211
213
  label: '',
212
- data: this.url
214
+ data: this.url,
213
215
  }
214
216
  }
215
217
  // push event to gtm
@@ -225,8 +227,8 @@ export default {
225
227
  this.$router.push(this.url)
226
228
  }
227
229
  this.$emit('clicked')
228
- }
229
- }
230
+ },
231
+ },
230
232
  }
231
233
  </script>
232
234
  <style lang="scss" scoped>
@@ -307,7 +307,8 @@ export default {
307
307
  },
308
308
  async loadMoreCards(init) {
309
309
  const attrs = {
310
- group: this.$store?.state?.page?.content?.title,
310
+ group: this.$pageStore?.content?.title,
311
+ //group: this.$store?.state?.page?.content?.title,
311
312
  }
312
313
  if (this.$gtm && !init) {
313
314
  this.$gtm.push({ event: 'custom.interaction.showmore.click', ...attrs })
@@ -439,8 +440,14 @@ export default {
439
440
  // Some custom logic for gov caretaker logic
440
441
  if (process.env.CARETAKER && process.env.CARETAKER === 'true') {
441
442
  if (!isGovSite(card?.selectedCard?.link)) {
442
- this.$store.commit('page/SET_CARETAKER_REF', 'list-group')
443
- this.$root.$emit('caretaker-open', card?.selectedCard?.link)
443
+ // this.$store.commit('page/SET_CARETAKER_REF', 'list-group')
444
+ // this.$root.$emit('caretaker-open', card?.selectedCard?.link)
445
+ if (this.$pageStore) {
446
+ this.$pageStore.caretaker.referrer = 'list-group'
447
+ }
448
+ if (this.$bus) {
449
+ this.$bus.$emit('caretaker-open', card?.selectedCard?.link)
450
+ }
444
451
  } else {
445
452
  navigateToPath.call(
446
453
  this,
@@ -493,7 +500,9 @@ export default {
493
500
  nextTabbedCard[0].focus()
494
501
  } else {
495
502
  let nextFocus = this.focusNextElement()
496
- this.$root.$emit('last-focus-out')
503
+ if (this.$bus) {
504
+ this.$bus.$emit('last-focus-out')
505
+ }
497
506
  nextFocus.focus()
498
507
  }
499
508
  } else {