@worksafevictoria/wcl7.5 1.1.0-beta.41 → 1.1.0-beta.43

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/.env CHANGED
@@ -1,6 +1,4 @@
1
1
  CONTENT_API_URL=https://content-staging-v2.api.worksafe.vic.gov.au
2
2
  IS_STORYBOOK=TRUE
3
3
  SHOW_COOKIE=true
4
- GOOGLE__URL=https://cse.google.com/cse.js?cx=53b1506aa03c64160
5
- CARETAKER=false
6
- SHOW_GLOBAL_NOTICE=true
4
+ GOOGLE__URL=https://cse.google.com/cse.js?cx=53b1506aa03c64160
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@worksafevictoria/wcl7.5",
3
- "version": "1.1.0-beta.41",
3
+ "version": "1.1.0-beta.43",
4
4
  "main": "src/index.js",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -44,7 +44,7 @@
44
44
  "axios": "^1.6.0",
45
45
  "bootstrap": "^5.3.2",
46
46
  "bootstrap-vue": "^2.23.1",
47
- "bootstrap-vue-next": "^0.23.2",
47
+ "bootstrap-vue-next": "^0.25.10",
48
48
  "date-fns": "^2.30.0",
49
49
  "formiojs": "4.13.13",
50
50
  "storybook-addon-deep-controls": "^0.6.2",
@@ -35,12 +35,12 @@
35
35
  v-if="card.description"
36
36
  class="subheader__description"
37
37
  :class="{
38
- [`w-100 text-left`]: alignLeft
38
+ [`w-100 text-left`]: alignLeft,
39
39
  }"
40
40
  >
41
41
  <strong
42
42
  v-if="singleLineCards && card.title"
43
- v-html="card.title + ':'"
43
+ v-html="card.title + ': '"
44
44
  >
45
45
  </strong>
46
46
  <span v-html="card.description"></span>
@@ -61,42 +61,42 @@ export default {
61
61
  props: {
62
62
  itemList: {
63
63
  type: Array,
64
- required: true
64
+ required: true,
65
65
  },
66
66
  cardColumnSize: {
67
67
  type: Number,
68
- default: null
68
+ default: null,
69
69
  },
70
70
  singleLineCards: {
71
- type: Boolean
71
+ type: Boolean,
72
72
  },
73
73
  background: {
74
74
  type: String,
75
- default: 'none'
75
+ default: 'none',
76
76
  },
77
77
  heading: {
78
78
  type: String,
79
- default: ''
79
+ default: '',
80
80
  },
81
81
  alignLeft: {
82
- type: Boolean
82
+ type: Boolean,
83
83
  },
84
84
  showIcon: {
85
85
  type: Boolean,
86
- default: true
86
+ default: true,
87
87
  },
88
88
  iconPosition: {
89
89
  type: String,
90
- default: null
90
+ default: null,
91
91
  },
92
92
  type: {
93
93
  type: String,
94
- default: ''
95
- }
94
+ default: '',
95
+ },
96
96
  },
97
97
  data() {
98
98
  return {
99
- isSingleColumn: false
99
+ isSingleColumn: false,
100
100
  }
101
101
  },
102
102
  methods: {
@@ -110,18 +110,18 @@ export default {
110
110
  navigateToPath.call(
111
111
  this,
112
112
  card?.selectedCard?.linkHref,
113
- card?.ev?.ctrlKey === true || card?.ev?.metaKey === true
113
+ card?.ev?.ctrlKey === true || card?.ev?.metaKey === true,
114
114
  )
115
115
  }
116
116
  } else {
117
117
  navigateToPath.call(
118
118
  this,
119
119
  card?.selectedCard?.linkHref,
120
- card?.ev?.ctrlKey === true || card?.ev?.metaKey === true
120
+ card?.ev?.ctrlKey === true || card?.ev?.metaKey === true,
121
121
  )
122
122
  }
123
- }
124
- }
123
+ },
124
+ },
125
125
  }
126
126
  </script>
127
127
  <style lang="scss" scoped>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <container id="mainCookieContainer" class="hide">
2
+ <container id="mainCookieContainer">
3
3
  <row class="cookie-container">
4
4
  <column class="cookie-container__col">
5
5
  <h3 id="cookie_header" class="cookie-header hidden-on-xs">
@@ -222,32 +222,24 @@ export default {
222
222
  },
223
223
  showCookie() {
224
224
  //Check first if cookies have been turned on in the environment variable
225
- if (process.env.SHOW_COOKIE === 'true') {
226
- return 'true'
227
- } else {
228
- return 'false'
229
- }
225
+ return process.env.SHOW_COOKIE === false ? false : true
230
226
  }
231
227
  },
232
228
  mounted() {
233
229
  // required, as unable to check localStorage until window loaded
234
- window.addEventListener('load', this.checkCookie())
230
+ window.addEventListener('load', this.checkCookie)
235
231
  // detect screen size to display smaller content
236
232
  this.screenWidth = window.innerWidth
237
233
  this.$nextTick(() => {
238
- window.addEventListener('resize', this.onScreenResize())
234
+ window.addEventListener('resize', this.updateScreenWidth)
239
235
  })
240
- this.onScreenResize()
236
+ this.updateScreenWidth()
241
237
  },
242
238
  unmounted() {
243
- window.removeEventListener('load', this.checkCookie())
239
+ window.removeEventListener('load', this.checkCookie)
240
+ window.removeEventListener('resize', this.updateScreenWidth)
244
241
  },
245
242
  methods: {
246
- onScreenResize() {
247
- window.addEventListener('resize', () => {
248
- this.updateScreenWidth()
249
- })
250
- },
251
243
  updateScreenWidth() {
252
244
  this.screenWidth = window.innerWidth
253
245
  },
@@ -259,59 +251,61 @@ export default {
259
251
  const analyticsCookieName = 'analyticsCookies'
260
252
  const marketingCookieName = 'marketingCookies'
261
253
  var cookieElement = document.getElementById('mainCookieContainer')
262
- if (clickResponse === 'accept') {
263
- localStorage.setItem('cookieBannerDisplayed', 'false')
264
- localStorage.setItem(analyticsCookieName, 'granted')
265
- localStorage.setItem(marketingCookieName, 'granted')
266
- cookieElement.classList.add('hide')
267
- cookieElement.classList.remove('show')
268
- } else if (clickResponse === 'save') {
269
- const acb = document.getElementById('modal2CB')
270
- const mcb = document.getElementById('modal3CB')
271
- localStorage.setItem('cookieBannerDisplayed', 'false')
272
- if (acb.checked) {
254
+ if (cookieElement) {
255
+ if (clickResponse === 'accept') {
256
+ localStorage.setItem('cookieBannerDisplayed', 'false')
273
257
  localStorage.setItem(analyticsCookieName, 'granted')
274
- } else {
275
- localStorage.setItem(analyticsCookieName, 'denied')
276
- }
277
- if (mcb.checked) {
278
258
  localStorage.setItem(marketingCookieName, 'granted')
259
+ cookieElement.classList.add('hide')
260
+ cookieElement.classList.remove('show')
261
+ } else if (clickResponse === 'save') {
262
+ const acb = document.getElementById('modal2CB')
263
+ const mcb = document.getElementById('modal3CB')
264
+ localStorage.setItem('cookieBannerDisplayed', 'false')
265
+ if (acb.checked) {
266
+ localStorage.setItem(analyticsCookieName, 'granted')
267
+ } else {
268
+ localStorage.setItem(analyticsCookieName, 'denied')
269
+ }
270
+ if (mcb.checked) {
271
+ localStorage.setItem(marketingCookieName, 'granted')
272
+ } else {
273
+ localStorage.setItem(marketingCookieName, 'denied')
274
+ }
275
+ cookieElement.classList.add('hide')
276
+ cookieElement.classList.remove('show')
279
277
  } else {
278
+ localStorage.setItem('cookieBannerDisplayed', 'false')
279
+ localStorage.setItem(analyticsCookieName, 'denied')
280
280
  localStorage.setItem(marketingCookieName, 'denied')
281
+ cookieElement.classList.add('hide')
282
+ cookieElement.classList.remove('show')
281
283
  }
282
- cookieElement.classList.add('hide')
283
- cookieElement.classList.remove('show')
284
- } else {
285
- localStorage.setItem('cookieBannerDisplayed', 'false')
286
- localStorage.setItem(analyticsCookieName, 'denied')
287
- localStorage.setItem(marketingCookieName, 'denied')
288
- cookieElement.classList.add('hide')
289
- cookieElement.classList.remove('show')
290
284
  }
291
285
  },
292
286
  // function to update consent in GTM
293
287
  fireGTM() {
294
- if (this.$gtm) {
295
- // gather attrs
296
- let aConsent = localStorage.getItem('analyticsCookies')
297
- let mConsent = localStorage.getItem('marketingCookies')
298
- let attrs1 = {
299
- ad_storage: mConsent
300
- }
301
- // fire the event - marketing
302
- this.$gtm.push({
303
- event: 'gtm_consent_update',
304
- ...attrs1
305
- })
306
- let attrs2 = {
307
- analytics_storage: aConsent
308
- }
309
- // fire the event - analytics
310
- this.$gtm.push({
311
- event: 'gtm_consent_update',
312
- ...attrs2
313
- })
314
- }
288
+ // if (this.$gtm) {
289
+ // // gather attrs
290
+ // let aConsent = localStorage.getItem('analyticsCookies')
291
+ // let mConsent = localStorage.getItem('marketingCookies')
292
+ // let attrs1 = {
293
+ // ad_storage: mConsent
294
+ // }
295
+ // // fire the event - marketing
296
+ // this.$gtm.push({
297
+ // event: 'gtm_consent_update',
298
+ // ...attrs1
299
+ // })
300
+ // let attrs2 = {
301
+ // analytics_storage: aConsent
302
+ // }
303
+ // // fire the event - analytics
304
+ // this.$gtm.push({
305
+ // event: 'gtm_consent_update',
306
+ // ...attrs2
307
+ // })
308
+ // }
315
309
  },
316
310
  //function to remove from local storage based on partial match - called from checkCookie
317
311
  removeLocalStorage: function(cookieName) {
@@ -329,104 +323,109 @@ export default {
329
323
  // function to remove cookies according to response from overlay or modal
330
324
  checkCookie: function() {
331
325
  var cookieElement = document.getElementById('mainCookieContainer')
332
- if (
333
- this.showCookie === 'true' &&
334
- !localStorage.getItem('cookieBannerDisplayed')
335
- ) {
336
- cookieElement.classList.remove('hide')
337
- cookieElement.classList.add('show')
338
- } else {
339
- // need to remove cookies in rejected categories, but first hide cookie overlay
340
- cookieElement.classList.add('hide')
341
- cookieElement.classList.remove('show')
326
+ console.log('**else this.showCookie:-', this.showCookie)
327
+ console.log('**else typeof this.showCookie:-', typeof this.showCookie)
328
+ console.log('**else localStorage.getItem(cookieBannerDisplayed):-', localStorage.getItem('cookieBannerDisplayed'))
329
+
330
+ if (cookieElement) {
331
+ if (this.showCookie === true && !localStorage.getItem('cookieBannerDisplayed')) {
332
+ console.log('**Ifffff:-')
333
+ cookieElement.classList.remove('hide')
334
+ cookieElement.classList.add('show')
335
+ } else {
336
+ console.log('**Elseeee:-')
337
+ // need to remove cookies in rejected categories, but first hide cookie overlay
338
+ cookieElement.classList.add('hide')
339
+ cookieElement.classList.remove('show')
342
340
 
343
- // get list of categorised cookies
344
- const analyticsArr = analyticsCookies
345
- const marketingArr = marketingCookies
341
+ // get list of categorised cookies
342
+ const analyticsArr = analyticsCookies
343
+ const marketingArr = marketingCookies
346
344
 
347
- // get list of cookies to process
348
- var pairs = document.cookie.split(';')
349
- var cookieArr = []
350
- for (var i = 0; i < pairs.length; i++) {
351
- var pair = pairs[i].split('=')
352
- var nameVar = [pair[0].trim()]
353
- cookieArr.push(nameVar[0])
354
- }
355
- // identify which categories to process, initialising variables to false
356
- // will only be set to true if user has rejected any cookies
357
- var checkAnalytics = false
358
- var checkMarketing = false
345
+ // get list of cookies to process
346
+ var pairs = document.cookie.split(';')
347
+ var cookieArr = []
348
+ for (var i = 0; i < pairs.length; i++) {
349
+ var pair = pairs[i].split('=')
350
+ var nameVar = [pair[0].trim()]
351
+ cookieArr.push(nameVar[0])
352
+ }
353
+ // identify which categories to process, initialising variables to false
354
+ // will only be set to true if user has rejected any cookies
355
+ var checkAnalytics = false
356
+ var checkMarketing = false
359
357
 
360
- // get value of consent cookies to determine if cookies have to be removed
361
- var analyticsValue = localStorage.getItem('analyticsCookies')
362
- if (analyticsValue !== null && analyticsValue === 'denied') {
363
- checkAnalytics = true
364
- }
358
+ // get value of consent cookies to determine if cookies have to be removed
359
+ var analyticsValue = localStorage.getItem('analyticsCookies')
360
+ if (analyticsValue !== null && analyticsValue === 'denied') {
361
+ checkAnalytics = true
362
+ }
365
363
 
366
- var marketingValue = localStorage.getItem('marketingCookies')
367
- if (marketingValue !== null && marketingValue === 'denied') {
368
- checkMarketing = true
369
- }
364
+ var marketingValue = localStorage.getItem('marketingCookies')
365
+ if (marketingValue !== null && marketingValue === 'denied') {
366
+ checkMarketing = true
367
+ }
370
368
 
371
- // Remove analytics cookies stored as cookies or localStorage
372
- if (checkAnalytics) {
373
- analyticsArr.forEach((cookieName) => {
374
- if (cookieName.name.slice(-1) === '*') {
375
- var tmpVar = cookieName.name.slice(0, -1)
376
- this.removeLocalStorage(tmpVar)
377
- var tmpArr = cookieArr.filter((x) => x.match(cookieName.name))
378
- tmpArr.forEach((tmpName) => {
369
+ // Remove analytics cookies stored as cookies or localStorage
370
+ if (checkAnalytics) {
371
+ analyticsArr.forEach((cookieName) => {
372
+ if (cookieName.name.slice(-1) === '*') {
373
+ var tmpVar = cookieName.name.slice(0, -1)
374
+ this.removeLocalStorage(tmpVar)
375
+ var tmpArr = cookieArr.filter((x) => x.match(cookieName.name))
376
+ tmpArr.forEach((tmpName) => {
377
+ document.cookie =
378
+ tmpName +
379
+ '=;expires=' +
380
+ new Date(0).toUTCString() +
381
+ ';domain=' +
382
+ cookieName.domain +
383
+ ';path=' +
384
+ cookieName.path
385
+ })
386
+ } else {
387
+ localStorage.removeItem(cookieName.name)
379
388
  document.cookie =
380
- tmpName +
389
+ cookieName.name +
381
390
  '=;expires=' +
382
391
  new Date(0).toUTCString() +
383
392
  ';domain=' +
384
393
  cookieName.domain +
385
394
  ';path=' +
386
395
  cookieName.path
387
- })
388
- } else {
389
- localStorage.removeItem(cookieName.name)
390
- document.cookie =
391
- cookieName.name +
392
- '=;expires=' +
393
- new Date(0).toUTCString() +
394
- ';domain=' +
395
- cookieName.domain +
396
- ';path=' +
397
- cookieName.path
398
- }
399
- })
400
- }
401
- // Remove marketing cookies stored as cookies or localStorage
402
- if (checkMarketing) {
403
- marketingArr.forEach((cookieName) => {
404
- if (cookieName.name.slice(-1) === '*') {
405
- var tmpVar = cookieName.name.slice(0, -1)
406
- this.removeLocalStorage(tmpVar)
407
- var tmpArr = cookieArr.filter((x) => x.match(cookieName.name))
408
- tmpArr.forEach((tmpName) => {
396
+ }
397
+ })
398
+ }
399
+ // Remove marketing cookies stored as cookies or localStorage
400
+ if (checkMarketing) {
401
+ marketingArr.forEach((cookieName) => {
402
+ if (cookieName.name.slice(-1) === '*') {
403
+ var tmpVar = cookieName.name.slice(0, -1)
404
+ this.removeLocalStorage(tmpVar)
405
+ var tmpArr = cookieArr.filter((x) => x.match(cookieName.name))
406
+ tmpArr.forEach((tmpName) => {
407
+ document.cookie =
408
+ tmpName +
409
+ '=;expires=' +
410
+ new Date(0).toUTCString() +
411
+ ';domain=' +
412
+ cookieName.domain +
413
+ ';path=' +
414
+ cookieName.path
415
+ })
416
+ } else {
417
+ localStorage.removeItem(cookieName.name)
409
418
  document.cookie =
410
- tmpName +
419
+ cookieName.name +
411
420
  '=;expires=' +
412
421
  new Date(0).toUTCString() +
413
422
  ';domain=' +
414
423
  cookieName.domain +
415
424
  ';path=' +
416
425
  cookieName.path
417
- })
418
- } else {
419
- localStorage.removeItem(cookieName.name)
420
- document.cookie =
421
- cookieName.name +
422
- '=;expires=' +
423
- new Date(0).toUTCString() +
424
- ';domain=' +
425
- cookieName.domain +
426
- ';path=' +
427
- cookieName.path
428
- }
429
- })
426
+ }
427
+ })
428
+ }
430
429
  }
431
430
  }
432
431
  }
@@ -69,6 +69,12 @@ export default {
69
69
  displayGlobal: false,
70
70
  }
71
71
  },
72
+ computed: {
73
+ showGlobalNotice() {
74
+ //Check first if SHOW_GLOBAL_NOTICE have been turned on in the environment variable
75
+ return process.env.SHOW_GLOBAL_NOTICE === false ? false : true
76
+ }
77
+ },
72
78
  mounted() {
73
79
  window.addEventListener('load', this.checkPage())
74
80
  },
@@ -89,12 +95,16 @@ export default {
89
95
  this.setCookie()
90
96
  this.displayGlobal = false
91
97
  } else if (typeof window !== 'undefined') {
98
+ console.log('**else this.showGlobalNotice:-', this.showGlobalNotice)
99
+ console.log('**else tocalStorage.getItem(globalModalHidden):-', localStorage.getItem('globalModalHidden'))
100
+
92
101
  this.displayGlobal =
93
- process.env.SHOW_GLOBAL_NOTICE === 'true' &&
102
+ this.showGlobalNotice === true &&
94
103
  !localStorage.getItem('globalModalHidden')
95
104
  } else {
96
- this.displayGlobal = process.env.SHOW_GLOBAL_NOTICE === 'true'
105
+ this.displayGlobal = process.env.SHOW_GLOBAL_NOTICE === true
97
106
  }
107
+ console.log('**this.displayGlobal:- ', this.displayGlobal)
98
108
  }
99
109
  }
100
110
  }
@@ -104,6 +114,17 @@ export default {
104
114
  @import '../../../includes/scss/all';
105
115
 
106
116
  // modal and modal backdrop styles required in order to display the overlay behind the modal
117
+ #global-notice-modal {
118
+ .modal-dialog-centered {
119
+ border-radius: 6px !important;
120
+ // box-shadow: 0 0 16px 8px rgba(0, 0, 0, 0.24) !important;
121
+ left: 50%;
122
+ margin-left: -200px;
123
+ margin-top: -240px;
124
+ top: 50%;
125
+ width: 400px !important;
126
+ }
127
+ }
107
128
 
108
129
  .modal {
109
130
  background: rgba(0,0,0,0.5)
@@ -26,7 +26,8 @@ export class AddresseFormElement extends BaseFormElement {
26
26
  key,
27
27
  type: 'textfield',
28
28
  input: true,
29
- customConditional: "show = _.get(instance, 'parent.manualMode', false);"
29
+ customConditional:
30
+ "show = _.get(instance, 'parent.manualMode', false);",
30
31
  }
31
32
  }
32
33
  }
@@ -40,23 +41,27 @@ export class AddresseFormElement extends BaseFormElement {
40
41
 
41
42
  getCustomProperties() {
42
43
  const autoCompletePath = '/places/api/v1/place/autocomplete/json'
43
- const baseUrl = window.origin
44
+ // Uses WorkSafe PROD API for storybook site (ensure site is white listed)
45
+ const baseUrl =
46
+ window.origin.toLowerCase().indexOf('worksafe') === -1
47
+ ? 'https://www.worksafe.vic.gov.au'
48
+ : window.origin
44
49
  return {
45
50
  provider: 'custom',
46
51
  enableManualMode: this.webformElement['#flexbox'] !== '0',
47
52
  providerOptions: {
48
53
  params: {
49
54
  types: this.isFullAddressSearch() ? 'address' : '(regions)',
50
- components: 'country:au'
55
+ components: 'country:au',
51
56
  },
52
57
  url: `${baseUrl}${autoCompletePath}`,
53
58
  queryProperty: 'input',
54
59
  displayValueProperty: 'description',
55
- responseProperty: 'predictions'
60
+ responseProperty: 'predictions',
56
61
  },
57
62
  switchToManualModeLabel: "Can't find address? Switch to manual mode.",
58
63
  input: true,
59
- components: this.getManualFields()
64
+ components: this.getManualFields(),
60
65
  }
61
66
  }
62
67
 
@@ -70,7 +75,7 @@ export class AddresseFormElement extends BaseFormElement {
70
75
  if (isAutoComplete) {
71
76
  const getVal = (key) =>
72
77
  value?.geocode?.address_components.find(
73
- (item) => item?.types?.[0] === key
78
+ (item) => item?.types?.[0] === key,
74
79
  )?.long_name
75
80
  const address1 = getComponents('address')
76
81
  const city = getComponents('city')
@@ -84,12 +89,12 @@ export class AddresseFormElement extends BaseFormElement {
84
89
  [city?.key]: getVal('locality'),
85
90
  [state?.key]: getVal('administrative_area_level_1'),
86
91
  [postcode?.key]: getVal('postal_code'),
87
- [country?.key]: getVal('country')
88
- }
92
+ [country?.key]: getVal('country'),
93
+ },
89
94
  }
90
95
  } else if (value.mode === 'manual') {
91
96
  return {
92
- [this.getKey()]: value.address
97
+ [this.getKey()]: value.address,
93
98
  }
94
99
  }
95
100
  }
@@ -106,7 +111,11 @@ export class AddresseFormElement extends BaseFormElement {
106
111
  value.geocode.formatted_address !== value.address.description)
107
112
  ) {
108
113
  const geocodePath = '/places/api/v1/geocode/json'
109
- const baseUrl = window.origin
114
+ // Uses WorkSafe PROD API for storybook site (ensure site is white listed)
115
+ const baseUrl =
116
+ window.origin.toLowerCase().indexOf('worksafe') === -1
117
+ ? 'https://www.worksafe.vic.gov.au'
118
+ : window.origin
110
119
  const qs = `?place_id=${value.address.place_id}`
111
120
  const url = `${baseUrl}${geocodePath}${qs}`
112
121
 
@@ -114,11 +123,11 @@ export class AddresseFormElement extends BaseFormElement {
114
123
  const results = response?.data?.results
115
124
  if (Array.isArray(results) && results.length > 0) {
116
125
  const postcode = results[0].address_components.find((item) =>
117
- item.types.find((type) => type === 'postal_code')
126
+ item.types.find((type) => type === 'postal_code'),
118
127
  )?.short_name
119
128
  const fullAddress = value.address.description.replace(
120
129
  /,(?=[^,]*$)/,
121
- `, ${postcode}`
130
+ `, ${postcode}`,
122
131
  )
123
132
  value.address.description = fullAddress
124
133
  value.geocode = results[0]
@@ -18,7 +18,7 @@ describe(`Form ${testComponent} parser`, () => {
18
18
  key: 'address',
19
19
  label: 'Address',
20
20
  tableView: false,
21
- type: 'textfield'
21
+ type: 'textfield',
22
22
  },
23
23
  {
24
24
  customConditional:
@@ -27,7 +27,7 @@ describe(`Form ${testComponent} parser`, () => {
27
27
  key: 'address_2',
28
28
  label: 'Address 2',
29
29
  tableView: false,
30
- type: 'textfield'
30
+ type: 'textfield',
31
31
  },
32
32
  {
33
33
  customConditional:
@@ -36,7 +36,7 @@ describe(`Form ${testComponent} parser`, () => {
36
36
  key: 'city',
37
37
  label: 'Suburb',
38
38
  tableView: false,
39
- type: 'textfield'
39
+ type: 'textfield',
40
40
  },
41
41
  {
42
42
  customConditional:
@@ -45,7 +45,7 @@ describe(`Form ${testComponent} parser`, () => {
45
45
  key: 'state_province',
46
46
  label: 'State',
47
47
  tableView: false,
48
- type: 'textfield'
48
+ type: 'textfield',
49
49
  },
50
50
  {
51
51
  customConditional:
@@ -54,7 +54,7 @@ describe(`Form ${testComponent} parser`, () => {
54
54
  key: 'postal_code',
55
55
  label: 'Postcode',
56
56
  tableView: false,
57
- type: 'textfield'
57
+ type: 'textfield',
58
58
  },
59
59
  {
60
60
  customConditional:
@@ -63,8 +63,8 @@ describe(`Form ${testComponent} parser`, () => {
63
63
  key: 'country',
64
64
  label: 'Country',
65
65
  tableView: false,
66
- type: 'textfield'
67
- }
66
+ type: 'textfield',
67
+ },
68
68
  ],
69
69
  customClass: 'custom-formio-1',
70
70
  defaultValue: {
@@ -73,7 +73,7 @@ describe(`Form ${testComponent} parser`, () => {
73
73
  city: '',
74
74
  country: '',
75
75
  postal_code: '',
76
- state_province: ''
76
+ state_province: '',
77
77
  },
78
78
  disabled: false,
79
79
  enableManualMode: true,
@@ -89,13 +89,13 @@ describe(`Form ${testComponent} parser`, () => {
89
89
  params: { components: 'country:au', types: 'address' },
90
90
  queryProperty: 'input',
91
91
  responseProperty: 'predictions',
92
- url: 'http://localhost/places/api/v1/place/autocomplete/json'
92
+ url: 'https://www.worksafe.vic.gov.au/places/api/v1/place/autocomplete/json',
93
93
  },
94
94
  switchToManualModeLabel: "Can't find address? Switch to manual mode.",
95
95
  type: 'address',
96
- validate: { required: false }
97
- }
98
- ])
96
+ validate: { required: false },
97
+ },
98
+ ]),
99
99
  )
100
100
  })
101
101
 
@@ -108,8 +108,8 @@ describe(`Form ${testComponent} parser`, () => {
108
108
  city: 'sd',
109
109
  state_province: 'sd',
110
110
  postal_code: 'sd',
111
- country: 'sds'
112
- }
111
+ country: 'sds',
112
+ },
113
113
  })
114
114
  expect(submission).toEqual({
115
115
  address1: {
@@ -118,8 +118,8 @@ describe(`Form ${testComponent} parser`, () => {
118
118
  city: 'sd',
119
119
  country: 'sds',
120
120
  postal_code: 'sd',
121
- state_province: 'sd'
122
- }
121
+ state_province: 'sd',
122
+ },
123
123
  })
124
124
  })
125
125
 
@@ -131,12 +131,12 @@ describe(`Form ${testComponent} parser`, () => {
131
131
  matched_substrings: [
132
132
  {
133
133
  length: 3,
134
- offset: 0
134
+ offset: 0,
135
135
  },
136
136
  {
137
137
  length: 3,
138
- offset: 4
139
- }
138
+ offset: 4,
139
+ },
140
140
  ],
141
141
  place_id: 'ChIJe_yY7VRD1moR4FaCIXpujzc',
142
142
  reference: 'ChIJe_yY7VRD1moR4FaCIXpujzc',
@@ -145,102 +145,102 @@ describe(`Form ${testComponent} parser`, () => {
145
145
  main_text_matched_substrings: [
146
146
  {
147
147
  length: 3,
148
- offset: 0
148
+ offset: 0,
149
149
  },
150
150
  {
151
151
  length: 3,
152
- offset: 4
153
- }
152
+ offset: 4,
153
+ },
154
154
  ],
155
- secondary_text: 'Brunswick VIC, Australia'
155
+ secondary_text: 'Brunswick VIC, Australia',
156
156
  },
157
157
  terms: [
158
158
  {
159
159
  offset: 0,
160
- value: '715'
160
+ value: '715',
161
161
  },
162
162
  {
163
163
  offset: 4,
164
- value: 'Sydney Road'
164
+ value: 'Sydney Road',
165
165
  },
166
166
  {
167
167
  offset: 17,
168
- value: 'Brunswick'
168
+ value: 'Brunswick',
169
169
  },
170
170
  {
171
171
  offset: 27,
172
- value: 'VIC'
172
+ value: 'VIC',
173
173
  },
174
174
  {
175
175
  offset: 32,
176
- value: 'Australia'
177
- }
176
+ value: 'Australia',
177
+ },
178
178
  ],
179
- types: ['street_address', 'geocode']
179
+ types: ['street_address', 'geocode'],
180
180
  },
181
181
  geocode: {
182
182
  address_components: [
183
183
  {
184
184
  long_name: '715',
185
185
  short_name: '715',
186
- types: ['street_number']
186
+ types: ['street_number'],
187
187
  },
188
188
  {
189
189
  long_name: 'Sydney Road',
190
190
  short_name: 'Sydney Rd',
191
- types: ['route']
191
+ types: ['route'],
192
192
  },
193
193
  {
194
194
  long_name: 'Brunswick',
195
195
  short_name: 'Brunswick',
196
- types: ['locality', 'political']
196
+ types: ['locality', 'political'],
197
197
  },
198
198
  {
199
199
  long_name: 'Moreland City',
200
200
  short_name: 'Moreland',
201
- types: ['administrative_area_level_2', 'political']
201
+ types: ['administrative_area_level_2', 'political'],
202
202
  },
203
203
  {
204
204
  long_name: 'Victoria',
205
205
  short_name: 'VIC',
206
- types: ['administrative_area_level_1', 'political']
206
+ types: ['administrative_area_level_1', 'political'],
207
207
  },
208
208
  {
209
209
  long_name: 'Australia',
210
210
  short_name: 'AU',
211
- types: ['country', 'political']
211
+ types: ['country', 'political'],
212
212
  },
213
213
  {
214
214
  long_name: '3056',
215
215
  short_name: '3056',
216
- types: ['postal_code']
217
- }
216
+ types: ['postal_code'],
217
+ },
218
218
  ],
219
219
  formatted_address: '715 Sydney Rd, Brunswick VIC 3056, Australia',
220
220
  geometry: {
221
221
  location: {
222
222
  lat: -37.7598676,
223
- lng: 144.9631721
223
+ lng: 144.9631721,
224
224
  },
225
225
  location_type: 'ROOFTOP',
226
226
  viewport: {
227
227
  northeast: {
228
228
  lat: -37.75852881970849,
229
- lng: 144.9646129302915
229
+ lng: 144.9646129302915,
230
230
  },
231
231
  southwest: {
232
232
  lat: -37.76122678029149,
233
- lng: 144.9619149697085
234
- }
235
- }
233
+ lng: 144.9619149697085,
234
+ },
235
+ },
236
236
  },
237
237
  place_id: 'ChIJe_yY7VRD1moR4FaCIXpujzc',
238
238
  plus_code: {
239
239
  compound_code: '6XR7+37 Brunswick VIC, Australia',
240
- global_code: '4RJ66XR7+37'
240
+ global_code: '4RJ66XR7+37',
241
241
  },
242
- types: ['street_address']
243
- }
242
+ types: ['street_address'],
243
+ },
244
244
  })
245
245
  expect(submission).toEqual({
246
246
  address1: {
@@ -248,8 +248,8 @@ describe(`Form ${testComponent} parser`, () => {
248
248
  city: 'Brunswick',
249
249
  country: 'Australia',
250
250
  postal_code: '3056',
251
- state_province: 'Victoria'
252
- }
251
+ state_province: 'Victoria',
252
+ },
253
253
  })
254
254
  })
255
255
  })
@@ -1,120 +1,122 @@
1
1
  <template>
2
- <card-grid
3
- :title="title"
4
- :title-tag="titleTag"
5
- :cards="displayedCards"
6
- :rtl="rtl"
7
- :force-lg-columns-per-row="columns"
8
- :force-md-columns-per-row="columns"
9
- :force-sm-columns-per-row="columns"
10
- :is-selectable="false"
11
- :row-spacing="'large'"
12
- :class="[`card_group--${background}`, `card_group--${cardResourseType}`]"
13
- :background-variant="background"
14
- @selected="selectedCard"
15
- >
16
- <template
17
- v-if="enableBundleFilter && bundle.length > 1"
18
- v-slot:gridHeaderRight
2
+ <div>
3
+ <card-grid
4
+ :title="title"
5
+ :title-tag="titleTag"
6
+ :cards="displayedCards"
7
+ :rtl="rtl"
8
+ :force-lg-columns-per-row="columns"
9
+ :force-md-columns-per-row="columns"
10
+ :force-sm-columns-per-row="columns"
11
+ :is-selectable="false"
12
+ :row-spacing="'large'"
13
+ :class="[`card_group--${background}`, `card_group--${cardResourseType}`]"
14
+ :background-variant="background"
15
+ @selected="selectedCard"
19
16
  >
20
- <switcher
21
- v-if="enableBundleFilter"
22
- :options="bundle"
23
- class="card_group__switcher"
24
- :get-option-alias="getBundleAlias"
25
- @switched="onSwitcher"
26
- @reset="onSwitcher"
27
- />
28
- </template>
29
-
30
- <template v-if="filters.taxonomies.length > 0" v-slot:gridPreContent>
31
- <directory-filters
32
- class="card_group__filter"
33
- :filters="filters"
34
- :results="allCards.total"
35
- :is-filtering="loader"
36
- @onFilter="onFilter"
37
- @onReset="reset"
38
- />
39
- </template>
40
-
41
- <template v-slot:cardItem="{ card }">
42
- <card-grid-item
43
- v-if="card"
44
- :show-divider="false"
45
- :header-size="'large'"
46
- class="card_group__card"
47
- :class="{
48
- [`card_group__card--${card.colour}`]: card.pillText,
49
- [`card_group__card--none`]: !card.pillText,
50
- [`card_group__card--${cardResourseType}`]:
51
- 'card_group__card--resourse-group',
52
- }"
53
- :card-header-title="card.title"
54
- :caret="getCaret(card)"
55
- :description="card.description"
56
- :card-padding="'none'"
57
- :caret-position="'bottom'"
58
- :rtl="card.rtl"
59
- :border-type="background === 'white' ? 'thick' : 'none'"
60
- :pill-text="card.pillText"
61
- :link="card.link ? card.link : false"
62
- :taxonomies="{
63
- industry: card.industry,
64
- topic: card.topic,
65
- language: card.language,
66
- }"
17
+ <template
18
+ v-if="enableBundleFilter && bundle.length > 1"
19
+ v-slot:gridHeaderRight
67
20
  >
68
- <template v-slot:cardTop>
69
- <card-top :card="card" :resource-type="cardResourseType" />
70
- </template>
21
+ <switcher
22
+ v-if="enableBundleFilter"
23
+ :options="bundle"
24
+ class="card_group__switcher"
25
+ :get-option-alias="getBundleAlias"
26
+ @switched="onSwitcher"
27
+ @reset="onSwitcher"
28
+ />
29
+ </template>
71
30
 
72
- <template v-slot:cardDescription>
73
- <card-body :card="card" :resource-type="cardResourseType" />
74
- </template>
31
+ <template v-if="filters.taxonomies.length > 0" v-slot:gridPreContent>
32
+ <directory-filters
33
+ class="card_group__filter"
34
+ :filters="filters"
35
+ :results="allCards.total"
36
+ :is-filtering="loader"
37
+ @onFilter="onFilter"
38
+ @onReset="reset"
39
+ />
40
+ </template>
75
41
 
76
- <!-- footer - download button -->
77
- <template
78
- v-if="cardResourseType === 'resource-group'"
79
- v-slot:cardFooter
42
+ <template v-slot:cardItem="{ card }">
43
+ <card-grid-item
44
+ v-if="card"
45
+ :show-divider="false"
46
+ :header-size="'large'"
47
+ class="card_group__card"
48
+ :class="{
49
+ [`card_group__card--${card.colour}`]: card.pillText,
50
+ [`card_group__card--none`]: !card.pillText,
51
+ [`card_group__card--${cardResourseType}`]:
52
+ 'card_group__card--resourse-group',
53
+ }"
54
+ :card-header-title="card.title"
55
+ :caret="getCaret(card)"
56
+ :description="card.description"
57
+ :card-padding="'none'"
58
+ :caret-position="'bottom'"
59
+ :rtl="card.rtl"
60
+ :border-type="background === 'white' ? 'thick' : 'none'"
61
+ :pill-text="card.pillText"
62
+ :link="card.link ? card.link : false"
63
+ :taxonomies="{
64
+ industry: card.industry,
65
+ topic: card.topic,
66
+ language: card.language,
67
+ }"
80
68
  >
81
- <card-footer :card="card" :resource-type="cardResourseType" />
82
- </template>
83
- </card-grid-item>
84
- </template>
69
+ <template v-slot:cardTop>
70
+ <card-top :card="card" :resource-type="cardResourseType" />
71
+ </template>
85
72
 
86
- <template
87
- v-if="
88
- loader ||
89
- (displayedCards.length === 0 && !loader) ||
90
- $slots.cardGroupFooter ||
91
- (!loader && showLoadMore && hasMorePages)
92
- "
93
- v-slot:cardGridFooter
94
- >
95
- <column v-if="loader" sm="12">
96
- <strong>Loading... </strong>
97
- <b-spinner class="float-right"></b-spinner>
98
- </column>
99
- <column v-if="displayedCards.length === 0 && !loading" sm="12">
100
- <strong>{{ emptyCardsText }}</strong>
101
- </column>
102
- <column v-if="$slots.cardGroupFooter" sm="12">
103
- <slot name="cardGroupFooter"></slot>
104
- </column>
105
- <column v-if="!loader && showLoadMore" sm="12" class="text-center">
106
- <cta-button
107
- type="dark"
108
- :focus-outline="'light'"
109
- :text-only="true"
110
- :is-centred="true"
111
- :class="'card_group__loadmore mb-0'"
112
- @clicked="handleLoadMore"
113
- >Load more</cta-button
114
- >
115
- </column>
116
- </template>
117
- </card-grid>
73
+ <template v-slot:cardDescription>
74
+ <card-body :card="card" :resource-type="cardResourseType" />
75
+ </template>
76
+
77
+ <!-- footer - download button -->
78
+ <template
79
+ v-if="cardResourseType === 'resource-group'"
80
+ v-slot:cardFooter
81
+ >
82
+ <card-footer :card="card" :resource-type="cardResourseType" />
83
+ </template>
84
+ </card-grid-item>
85
+ </template>
86
+
87
+ <template
88
+ v-if="
89
+ loader ||
90
+ (displayedCards.length === 0 && !loader) ||
91
+ $slots.cardGroupFooter ||
92
+ (!loader && showLoadMore && hasMorePages)
93
+ "
94
+ v-slot:cardGridFooter
95
+ >
96
+ <column v-if="loader" sm="12">
97
+ <strong>Loading... </strong>
98
+ <b-spinner class="float-right"></b-spinner>
99
+ </column>
100
+ <column v-if="displayedCards.length === 0 && !loading" sm="12">
101
+ <strong>{{ emptyCardsText }}</strong>
102
+ </column>
103
+ <column v-if="$slots.cardGroupFooter" sm="12">
104
+ <slot name="cardGroupFooter"></slot>
105
+ </column>
106
+ <column v-if="!loader && showLoadMore" sm="12" class="text-center">
107
+ <cta-button
108
+ type="dark"
109
+ :focus-outline="'light'"
110
+ :text-only="true"
111
+ :is-centred="true"
112
+ :class="'card_group__loadmore mb-0'"
113
+ @clicked="handleLoadMore"
114
+ >Load more</cta-button
115
+ >
116
+ </column>
117
+ </template>
118
+ </card-grid>
119
+ </div>
118
120
  </template>
119
121
 
120
122
  <script>
package/vite.config.js CHANGED
@@ -1,24 +1,36 @@
1
1
  import { fileURLToPath, URL } from 'node:url'
2
2
  import svgLoader from 'vite-svg-loader'
3
- import { defineConfig } from 'vite'
3
+ import { defineConfig, loadEnv } from 'vite'
4
4
  import vue from '@vitejs/plugin-vue'
5
5
 
6
6
  // https://vitejs.dev/config/
7
- export default defineConfig({
8
- plugins: [
9
- vue(), svgLoader()
10
- ],
11
- resolve: {
12
- alias: {
13
- '@': fileURLToPath(new URL('./src', import.meta.url))
7
+ export default defineConfig(({ command, mode }) => {
8
+ // Load env file based on `mode` in the current working directory.
9
+ // Set the third parameter to '' to load all env regardless of the `VITE_` prefix.
10
+ const env = loadEnv(mode, process.cwd(), '')
11
+
12
+ return{
13
+ css: {
14
+ preprocessorOptions: {
15
+ scss: {
16
+ api: 'modern-compiler', // or "modern", "legacy"
17
+ },
18
+ },
19
+ },
20
+ plugins: [
21
+ vue(), svgLoader()
22
+ ],
23
+ resolve: {
24
+ alias: {
25
+ '@': fileURLToPath(new URL('./src', import.meta.url))
26
+ }
27
+ },
28
+ define: {
29
+ SHOW_COOKIE: JSON.stringify(env.SHOW_COOKIE),
30
+ 'process.env.CONTENT_API_URL': `"${process.env.CONTENT_API_URL}"`,
31
+ 'process.env.IS_STORYBOOK': `"${process.env.IS_STORYBOOK}"`,
32
+ 'process.env.CARETAKER': `"${process.env.CARETAKER}"`,
33
+ 'process.env.GOOGLE__URL': `"${process.env.GOOGLE__URL}"`
14
34
  }
15
- },
16
- define: {
17
- 'process.env.SHOW_COOKIE': `"${process.env.SHOW_COOKIE}"`,
18
- 'process.env.CONTENT_API_URL': `"${process.env.CONTENT_API_URL}"`,
19
- 'process.env.IS_STORYBOOK': `"${process.env.IS_STORYBOOK}"`,
20
- 'process.env.CARETAKER': `"${process.env.CARETAKER}"`,
21
- 'process.env.SHOW_GLOBAL_NOTICE': `"${process.env.SHOW_GLOBAL_NOTICE}"`,
22
- 'process.env.GOOGLE__URL': `"${process.env.GOOGLE__URL}"`
23
35
  }
24
36
  })