@worksafevictoria/wcl7.5 1.4.0 → 1.6.0

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.
Files changed (86) hide show
  1. package/.storybook/preview.js +20 -13
  2. package/bin/deploy.sh +1 -1
  3. package/lib/utility.js +10 -8
  4. package/package.json +4 -5
  5. package/src/assets/icons/AppFooter/x-ws-footer.svg +10 -0
  6. package/src/assets/icons/AppFooter/x-ww-footer.svg +28 -0
  7. package/src/assets/icons/SocialShare/x-icon-white.svg +28 -0
  8. package/src/assets/styles/modal.scss +51 -0
  9. package/src/components/Common/CardGrid/index.vue +69 -49
  10. package/src/components/Common/CardGridItem/card-grid-item-caret.vue +7 -4
  11. package/src/components/Common/CardGridItem/index.vue +95 -71
  12. package/src/components/Containers/Carousel/index.vue +14 -7
  13. package/src/components/Containers/HomepageHeader/index.stories.js +60 -36
  14. package/src/components/Containers/HomepageHeader/index.vue +2 -26
  15. package/src/components/Containers/HomepageHeaderNew/index.stories.js +15 -15
  16. package/src/components/Containers/HomepageHeaderNew/index.vue +97 -68
  17. package/src/components/Containers/SectionGroup/index.vue +1 -1
  18. package/src/components/Containers/Subheader/index.vue +5 -1
  19. package/src/components/Global/AppFooter/FooterSocialShare/index.vue +1 -1
  20. package/src/components/Global/AppFooter/index.vue +14 -7
  21. package/src/components/Global/AppHeaderNew/index.vue +304 -233
  22. package/src/components/Global/AppHeaderNew/styles.scss +29 -8
  23. package/src/components/Global/BackToTop/index.vue +8 -8
  24. package/src/components/Global/ContrastMode/index.vue +1 -1
  25. package/src/components/Global/Cookies/index.stories.js +16 -10
  26. package/src/components/Global/Cookies/index.vue +281 -237
  27. package/src/components/Global/Cookies/styles.scss +54 -54
  28. package/src/components/Global/DirectoryFilters/SingleTaxonomy/index.vue +50 -133
  29. package/src/components/Global/GlobalNotice/index.vue +79 -100
  30. package/src/components/Global/SocialShare/index.vue +1 -1
  31. package/src/components/Global/Strip/index.vue +1 -1
  32. package/src/components/Paragraphs/Accordion/AccordionItem/index.vue +8 -4
  33. package/src/components/Paragraphs/Accordion/StepperItem/index.vue +23 -23
  34. package/src/components/Paragraphs/Accordion/index.stories.js +21 -18
  35. package/src/components/Paragraphs/Accordion/index.vue +52 -48
  36. package/src/components/Paragraphs/BrowseContent/index.vue +1 -1
  37. package/src/components/Paragraphs/BrowseContent/setup.vue +284 -0
  38. package/src/components/Paragraphs/Chart/Constants.js +485 -485
  39. package/src/components/Paragraphs/Chart/index.vue +232 -241
  40. package/src/components/Paragraphs/Directory/Records/HSCP/index.stories.js +33 -0
  41. package/src/components/Paragraphs/Directory/Records/HSCP/index.vue +334 -0
  42. package/src/components/Paragraphs/Directory/Records/ISP/index.vue +2 -2
  43. package/src/components/Paragraphs/Directory/Records/index.vue +63 -27
  44. package/src/components/Paragraphs/Directory/Records/styles.scss +1 -0
  45. package/src/components/Paragraphs/Directory/constants.js +23 -5
  46. package/src/components/Paragraphs/Directory/index.vue +14 -14
  47. package/src/components/Paragraphs/ListGroup/index.vue +5 -1
  48. package/src/components/Paragraphs/ScrollSpy/index.vue +23 -14
  49. package/src/components/Paragraphs/SelectableCards/index.vue +15 -12
  50. package/src/components/Paragraphs/TabbedCards/index.vue +13 -14
  51. package/src/components/Paragraphs/Tabs/index.vue +19 -17
  52. package/src/components/Paragraphs/TextMedia/MediaTypes/Video/index.vue +9 -9
  53. package/src/components/Paragraphs/TextMedia/index.vue +20 -16
  54. package/src/components/Paragraphs/VideoGrid/index.stories.js +43 -19
  55. package/src/components/Paragraphs/VideoGrid/index.vue +13 -13
  56. package/src/components/Paragraphs/Webform/index.stories.js +82 -69
  57. package/src/components/SubComponents/CardGroup/index.vue +5 -1
  58. package/src/components/SubComponents/FormAddressPostcode/index.vue +35 -37
  59. package/src/components/SubComponents/FormInstance/components/handler/index.vue +25 -29
  60. package/src/components/SubComponents/FormInstance/components/renderer/index.vue +63 -28
  61. package/src/components/SubComponents/FormInstance/models/overrides/file.js +33 -40
  62. package/src/components/SubComponents/FormInstance/services/form-submit-parser.js +22 -15
  63. package/src/components/SubComponents/FormInstance/services/registry-factory.js +1 -1
  64. package/src/components/SubComponents/FormInstance/stories/fileupload.stories.js +57 -0
  65. package/src/components/SubComponents/FormInstance/stories/mocks/fileupload.json +25 -0
  66. package/src/components/SubComponents/FormInstance/style.scss +2 -2
  67. package/src/components/SubComponents/FormInstance/tests/address.test.js +4 -4
  68. package/src/components/SubComponents/FormInstance/tests/checkboxes.test.js +7 -7
  69. package/src/components/SubComponents/FormInstance/tests/customcomposite.test.js +15 -15
  70. package/src/components/SubComponents/FormInstance/tests/date.test.js +8 -8
  71. package/src/components/SubComponents/FormInstance/tests/form-test-utils.js +9 -9
  72. package/src/components/SubComponents/FormInstance/tests/multiple.test.js +13 -13
  73. package/src/components/SubComponents/FormInstance/tests/rule-visible.test.js +120 -120
  74. package/src/components/SubComponents/FormInstance/tests/scale.test.js +6 -6
  75. package/src/components/SubComponents/FormInstance/tests/url.test.js +13 -10
  76. package/src/components/SubComponents/Pagination/index.vue +19 -18
  77. package/src/components/SubComponents/ResourceGroup/index.vue +5 -1
  78. package/src/components/SubComponents/Search/SearchListing/index.vue +20 -20
  79. package/src/components/SubComponents/Search/index.vue +35 -33
  80. package/src/components/SubComponents/VideoThumbnail/index.vue +48 -133
  81. package/src/includes/scss/mixins/src/units.scss +25 -4
  82. package/src/includes/scss/vars/src/colors.module.scss +28 -1
  83. package/src/index.js +21 -3
  84. package/src/main.js +2 -10
  85. package/src/mock/app-header-new.js +27 -15
  86. package/src/mock/carousel-items.js +71 -46
@@ -16,29 +16,28 @@
16
16
  </div>
17
17
  </a>
18
18
  <!-- Modal -->
19
- <div v-if="showModal" :id="wcl-video-modal" class="modal" tabindex="-1" aria-modal="true" role="dialog" style="display: block;">
20
- <div class="modal-dialog modal-dialog-scrollable">
21
- <div class="modal-content">
22
- <div class="modal-header">
23
- <button type="button" class="btn-close" @click="showModal = !showModal" aria-label="close"></button>
24
- </div>
25
- <div class="modal-body">
26
- <div class="wcl-video-modal__video">
27
- <video-media
28
- :media-title="video.mediaTitle"
29
- :media-description="video.mediaDescription"
30
- :video-id="video.id"
31
- :provider="video.provider"
32
- :transcript="video.transcript"
33
- :transcript-title="video.transcriptTitle"
34
- :fix-width="video.fixWidth"
35
- :rtl="video.rtl"
36
- />
37
- </div>
38
- </div>
39
- </div>
19
+ <b-modal
20
+ :id="`wcl-video-modal`"
21
+ v-model="showModal"
22
+ scrollable
23
+ class="wcl-video-modal__modal"
24
+ no-footer
25
+ size="xl"
26
+ >
27
+ <div class="wcl-video-modal__video" v-if="showModal">
28
+ <video-media
29
+ :media-title="video.mediaTitle"
30
+ :media-description="video.mediaDescription"
31
+ :video-id="video.id"
32
+ :provider="video.provider"
33
+ :transcript="video.transcript"
34
+ :transcript-title="video.transcriptTitle"
35
+ :fix-width="video.fixWidth"
36
+ :rtl="video.rtl"
37
+ />
40
38
  </div>
41
- </div>
39
+ <template #footer><div></div></template>
40
+ </b-modal>
42
41
  </div>
43
42
  </template>
44
43
 
@@ -46,145 +45,61 @@
46
45
  import VideoMedia from './../../Paragraphs/VideoPlayer/index.vue'
47
46
  import VideoPlay from './../../../assets/icons/video-play.svg?url'
48
47
  import IconClose from './../../../assets/icons/icon-close.svg?url'
48
+ import { BModal } from 'bootstrap-vue-next'
49
+ import axios from 'axios'
49
50
 
50
51
  export default {
51
52
  name: 'VideoThumbnail',
52
53
  components: {
53
54
  VideoMedia,
54
- IconClose
55
+ IconClose,
56
+ 'b-modal': BModal,
55
57
  },
56
58
  props: {
57
59
  video: {
58
60
  type: Object,
59
- required: true
60
- }
61
+ required: true,
62
+ },
61
63
  },
62
64
  data() {
63
65
  return {
64
66
  VideoPlay,
65
67
  IconClose,
66
68
  showModal: false,
67
- videoThumbnail: ''
69
+ videoThumbnail: '',
68
70
  }
69
71
  },
70
72
  mounted() {
71
73
  this.getVideoThumbnail()
72
74
  },
73
75
  methods: {
74
- async getVideoThumbnail() {
75
- if (this.video.provider === 'youtube') {
76
- this.videoThumbnail = `https://i.ytimg.com/vi/${this.video.id}/maxresdefault.jpg`
77
- if (process.env.IS_STORYBOOK !== 'TRUE') {
78
- let thumbnailAvailable = await this.$axios?.get(
79
- `${window.location.origin}/api/v2/urlExists?url=${this.videoThumbnail}`
80
- )
81
- if (
82
- thumbnailAvailable &&
83
- thumbnailAvailable.data &&
84
- thumbnailAvailable.data.valid === false
85
- ) {
76
+ async getVideoThumbnail(url) {
77
+ try {
78
+ if (this.video.provider === 'youtube') {
79
+ this.videoThumbnail = `https://i.ytimg.com/vi/${this.video.id}/maxresdefault.jpg`
80
+ const response = await axios.head(this.videoThumbnail)
81
+ if (response.status === 200) {
82
+ } else {
86
83
  this.videoThumbnail = `https://i.ytimg.com/vi/${this.video.id}/hqdefault.jpg`
87
84
  }
85
+ } else if (this.video.provider === 'vimeo') {
86
+ let thumbnail = await axios.get(
87
+ `https://vimeo.com/api/v2/video/${this.video.id}.json`,
88
+ )
89
+ if (thumbnail.data) {
90
+ this.videoThumbnail = thumbnail.data[0].thumbnail_large
91
+ }
92
+ }
93
+ } catch (error) {
94
+ if (error.response && error.response.status === 404) {
95
+ this.videoThumbnail = `https://i.ytimg.com/vi/${this.video.id}/hqdefault.jpg`
96
+ } else {
88
97
  }
89
- } else if (this.video.provider === 'vimeo') {
90
- this.getVimeoThumbnail()
91
98
  }
92
99
  },
93
- async getVimeoThumbnail() {
94
- let thumbnail = await this.$axios.get(
95
- `https://vimeo.com/api/v2/video/${this.video.id}.json`
96
- )
97
- if (thumbnail.data) {
98
- this.videoThumbnail = thumbnail.data[0].thumbnail_large
99
- }
100
- }
101
- }
100
+ },
102
101
  }
103
102
  </script>
104
- <style lang="scss">
105
- @import '../../../includes/scss/all';
106
- // The modal styling
107
- .modal {
108
- background: rgba(0,0,0,0.5)
109
- }
110
-
111
- .modal-backdrop {
112
- display: none;
113
- }
114
- .modal-dialog {
115
- max-width: 1110px;
116
- @media only screen and (max-width: 1150px) {
117
- margin: {
118
- left: 15px;
119
- right: 15px;
120
- top: 15px;
121
- }
122
- }
123
-
124
- .modal-content {
125
- position: relative;
126
- border-radius: 8px;
127
- }
128
-
129
- .modal-header {
130
- top: 0;
131
- height: 45px;
132
- background: $white;
133
- z-index: 1;
134
- margin-left: auto;
135
- margin-right:0%;
136
-
137
- &__wrap {
138
- position: relative;
139
- width: 100%;
140
- a {
141
- position: absolute;
142
- right: 0;
143
- z-index: 1;
144
- &.rtl {
145
- right: auto;
146
- left: 0;
147
- }
148
- svg {
149
- fill: $black;
150
- }
151
- }
152
- }
153
- }
154
- .modal-body {
155
- padding: 0px 32px 32px;
156
- margin-top: 16px;
157
- .video-player {
158
- @include fp(min-height, 250, 588);
159
- }
160
-
161
- .paragraph--video-media {
162
- margin: 0;
163
- .container {
164
- padding: 0;
165
- width: 100%;
166
- }
167
- h3 {
168
- margin: 0;
169
- font-style: normal;
170
- font-weight: bold;
171
- font-size: 28px;
172
- line-height: 32px;
173
- margin-bottom: 16px;
174
- display: inline-block;
175
- width: 98%;
176
- }
177
- }
178
- .section-group__block {
179
- max-width: 100%;
180
- }
181
- }
182
- .modal-header,
183
- .modal-footer {
184
- border: none;
185
- }
186
- }
187
- </style>
188
103
  <style lang="scss" scoped>
189
104
  @import '../../../includes/scss/all';
190
105
  // Outside wrapper style
@@ -1,3 +1,4 @@
1
+ @use "sass:math";
1
2
  $current-rootsize: 16px;
2
3
 
3
4
  // Returns a unitless number
@@ -53,10 +54,11 @@ $current-rootsize: 16px;
53
54
 
54
55
 
55
56
  // Converts a px value to rems. Should only work in absolute em document context (root level), unless $context is specified
56
- @function px-to-rem($value, $context: $current-rootsize) {
57
- @if unit($context) == "rem" {
58
- $context: rem-to-px($context);
59
- }
57
+ /**/
58
+ /* @function px-to-rem($value, $context: $current-rootsize) {
59
+ //@if unit($context) == "rem" {
60
+ // $context: rem-to-px($context);
61
+ //}
60
62
  $result: ();
61
63
 
62
64
  @each $val in $value {
@@ -67,6 +69,25 @@ $current-rootsize: 16px;
67
69
  }
68
70
  }
69
71
  @return $result;
72
+ } */
73
+
74
+ @function px-to-rem($px, $context: $current-rootsize) {
75
+ @if unit($context) == "rem" {
76
+ $context: rem-to-px($context);
77
+ }
78
+ $result: ();
79
+
80
+ // Iterate over each value in the $px list
81
+ @each $val in $px {
82
+ @if unit($val) == "px" {
83
+ // Convert px to rem
84
+ $val: #{math.div($val, $context)}rem;
85
+ }
86
+ // Append converted value to the result list
87
+ $result: append($result, $val);
88
+ }
89
+
90
+ @return $result;
70
91
  }
71
92
 
72
93
  // Converts a em value to rems. Should only work in absolute em document context (root level), unless $context is specified
@@ -20,6 +20,20 @@ $yellow: #ffd229;
20
20
  $lightyellow: #fff6d4;
21
21
  $outline: #da47ff;
22
22
  $outline-dark: #ffffff;
23
+ // Functional colours
24
+ $wsv-fun-dark-green: #576D2F;
25
+ $wsv-fun-dark-blue: #104f77;
26
+ $wsv-fun-dark-purple: #55356b;
27
+ $wsv-fun-dark-red: #760031;
28
+ $wsv-fun-dark-brown: #763b00;
29
+ $wsv-fun-dark-caramel: #cb7c2d;
30
+ $wsv-fun-light-teal: #7ac2b5;
31
+ $wsv-fun-light-blue: #8ecade;
32
+ $wsv-fun-light-purple: #9871a8;
33
+ $wsv-fun-light-fuchsia: #f16a7e;
34
+ $wsv-fun-light-green: #edeb72;
35
+ $wsv-fun-light-brown: #dbc38b;
36
+
23
37
 
24
38
  $theme-colors: (
25
39
  'gold': $gold,
@@ -43,7 +57,20 @@ $theme-colors: (
43
57
  'yellow': $yellow,
44
58
  'lightyellow': $lightyellow,
45
59
  'outline': $outline,
46
- 'outline-dark': $outline-dark
60
+ 'outline-dark': $outline-dark,
61
+ // Functional colours
62
+ 'wsv-fun-dark-green':$wsv-fun-dark-green,
63
+ 'wsv-fun-dark-blue':$wsv-fun-dark-blue,
64
+ 'wsv-fun-dark-purple':$wsv-fun-dark-purple,
65
+ 'wsv-fun-dark-red':$wsv-fun-dark-red,
66
+ 'wsv-fun-dark-brown':$wsv-fun-dark-brown,
67
+ 'wsv-fun-dark-caramel':$wsv-fun-dark-caramel,
68
+ 'wsv-fun-light-teal':$wsv-fun-light-teal,
69
+ 'wsv-fun-light-blue':$wsv-fun-light-blue,
70
+ 'wsv-fun-light-purple':$wsv-fun-light-purple,
71
+ 'wsv-fun-light-fuchsia':$wsv-fun-light-fuchsia,
72
+ 'wsv-fun-light-green':$wsv-fun-light-green,
73
+ 'wsv-fun-light-brown':$wsv-fun-light-brown
47
74
  );
48
75
 
49
76
  :export {
package/src/index.js CHANGED
@@ -5,6 +5,7 @@ import Column from './components/Containers/Column/index.vue'
5
5
  import HomepageHeader from './components/Containers/HomepageHeader/index.vue'
6
6
  import Subheader from './components/Containers/Subheader/index.vue'
7
7
  import SectionGroup from './components/Containers/SectionGroup/index.vue'
8
+ import CarouselComponent from './components/Containers/Carousel/index.vue'
8
9
 
9
10
  import AppHeader from './components/Global/AppHeader/index.vue'
10
11
  import AppFooter from './components/Global/AppFooter/index.vue'
@@ -55,6 +56,9 @@ import Search from './components/SubComponents/Search/index.vue'
55
56
  import VideoThumbnail from './components/SubComponents/VideoThumbnail/index.vue'
56
57
  import ResourceGroup from './components/SubComponents/ResourceGroup/index.vue'
57
58
 
59
+ // Temp Components for testing
60
+ import BrowseContent2 from './components/Paragraphs/BrowseContent/setup.vue'
61
+
58
62
  // Export Global Components
59
63
  export {
60
64
  Container,
@@ -78,7 +82,8 @@ export {
78
82
  Cookies,
79
83
  BackToTop,
80
84
  GlobalNotice,
81
- ContrastMode
85
+ ContrastMode,
86
+ CarouselComponent,
82
87
  }
83
88
 
84
89
  // Export Paragraphs
@@ -100,7 +105,7 @@ export {
100
105
  MarketingBanner,
101
106
  RelatedInformation,
102
107
  Calculator,
103
- Chart
108
+ Chart,
104
109
  }
105
110
 
106
111
  // Export Sub Components
@@ -114,5 +119,18 @@ export {
114
119
  Breadcrumb,
115
120
  Search,
116
121
  VideoThumbnail,
117
- ResourceGroup
122
+ ResourceGroup,
123
+ }
124
+
125
+ // Export for BrowseContent
126
+ import DirectoryFilters from './components/Global/DirectoryFilters/index.vue'
127
+ import Switcher from './components/Paragraphs/BrowseContent/switcher.vue'
128
+
129
+ export {
130
+ // CardGroup, already imported
131
+ DirectoryFilters,
132
+ Switcher,
118
133
  }
134
+
135
+ // Temp Components for testing
136
+ export { BrowseContent2 }
package/src/main.js CHANGED
@@ -1,18 +1,10 @@
1
1
  import './assets/main.css'
2
2
 
3
3
  import { createApp } from 'vue'
4
- import './style.css'
5
- import 'bootstrap/dist/css/bootstrap.min.css'
6
- import 'bootstrap-vue/dist/bootstrap-vue.css'
7
- import 'bootstrap/dist/css/bootstrap.css'
8
- import 'bootstrap-vue-3/dist/bootstrap-vue-3.css'
9
- import 'bootstrap-vue-next/dist/bootstrap-vue-next.css'
10
- import 'bootstrap'
11
- import 'bootstrap-vue'
12
4
  import App from './App.vue'
13
- import BootstrapVue from 'bootstrap-vue'
14
5
  import BootstrapVueNext from 'bootstrap-vue-next'
6
+ import 'bootstrap/dist/css/bootstrap.css'
7
+ import 'bootstrap-vue-next/dist/bootstrap-vue-next.css'
15
8
 
16
9
  createApp(App).mount('#app')
17
10
  .use(BootstrapVueNext)
18
- .use(BootstrapVue)
@@ -681,23 +681,35 @@ const appHeaderData = [
681
681
  {
682
682
  title: 'Extra Link Two',
683
683
  absolute: 'https://content-v2.api.worksafe.vic.gov.au/licences',
684
+ relative: '/licences',
685
+ below: [
686
+ {
687
+ title: 'Contact WorkSafe',
688
+ absolute: 'https://content-v2.api.worksafe.vic.gov.au/contact-worksafe',
689
+ relative: '/contact-worksafe'
690
+ },
691
+ {
692
+ title: 'Report an incident',
693
+ absolute: 'https://content-v2.api.worksafe.vic.gov.au/report-incident',
694
+ relative: '/report-incident'
695
+ }
696
+ ]
697
+ },
698
+ {
699
+ title: 'Extra Link Three',
700
+ absolute: 'https://content-v2.api.worksafe.vic.gov.au/licences',
701
+ relative: '/licences'
702
+ },
703
+ {
704
+ title: 'External Link',
705
+ absolute: 'http://google.com',
706
+ relative: ''
707
+ },
708
+ {
709
+ title: 'Extra Link Five',
710
+ absolute: 'https://content-v2.api.worksafe.vic.gov.au/licences',
684
711
  relative: '/licences'
685
712
  },
686
- // {
687
- // title: 'Extra Link Three',
688
- // absolute: 'https://content-v2.api.worksafe.vic.gov.au/licences',
689
- // relative: '/licences'
690
- // },
691
- // {
692
- // title: 'Extra Link Four',
693
- // absolute: 'https://content-v2.api.worksafe.vic.gov.au/licences',
694
- // relative: '/licences'
695
- // },
696
- // {
697
- // title: 'Extra Link Five',
698
- // absolute: 'https://content-v2.api.worksafe.vic.gov.au/licences',
699
- // relative: '/licences'
700
- // },
701
713
  ]
702
714
 
703
715
  export { appHeaderData }
@@ -1,57 +1,82 @@
1
1
  export const mockCarouselItems = [
2
2
  {
3
- content: 'This is the first slider',
4
- image:
5
- 'https://picsum.photos/1024/480/?image=52',
6
- link: 'www.google.com',
7
- dateStart: '2024-01-12T09:45:00+11:00',
8
- dateEnd: '2024-02-12T09:45:00+11:00',
9
- favorite: 'Yes'
3
+ field_title: 'This is the first slider',
4
+ field_image: {
5
+ field_media_image: {
6
+ uri: {
7
+ url: '/sites/default/files/2025-01/image-ag-safety-network-veg-001.jpg'
8
+ }
9
+ }
10
+ },
11
+ field_link: {
12
+ url: 'https://www.google.com',
13
+ },
14
+ field_date_start: '2025-02-05',
15
+ field_date_end: '2025-03-07',
16
+ field_favorite: true
10
17
  },
11
18
  {
12
- content: 'This is the second slider',
13
- image:
14
- 'https://picsum.photos/1024/480/?image=54',
15
- link: '/asbestos-removal-notification',
16
- dateStart: '2024-12-01T09:45:00+11:00',
17
- dateEnd: '2024-12-12T09:45:00+11:00',
18
- favorite: ''
19
+ field_title: 'This is the second slider',
20
+ field_image: {
21
+ field_media_image: {
22
+ uri: {
23
+ url: '/sites/default/files/2025-01/large-2023%20WorkSafe%20Awards.jpg'
24
+ }
25
+ }
26
+ },
27
+ field_link: {
28
+ url: '/news/2019-11/winners-named-distinguished-worksafe-awards',
29
+ },
30
+ field_date_start: '2025-02-05',
31
+ field_date_end: '2025-07-05',
32
+ field_favorite: false
19
33
  },
20
34
  {
21
- content: 'This is the third slider',
22
- image:
23
- 'https://picsum.photos/1024/480/?image=56',
24
- link: '/dangerous-goods-licences',
25
- dateStart: '2024-01-12T09:45:00+11:00',
26
- dateEnd: '2024-12-12T09:45:00+11:00',
27
- favorite: ''
35
+ field_title: 'This is the third slider',
36
+ field_image: {
37
+ field_media_image: {
38
+ uri: {
39
+ url: '/sites/default/files/2024-12/header-image-workwell-oelg-project.jpg'
40
+ }
41
+ }
42
+ },
43
+ field_link: {
44
+ url: '/resources/workwell-ageing-workforce-ready-age-difference',
45
+ },
46
+ field_date_start: '2024-01-12',
47
+ field_date_end: '2024-12-12',
48
+ favorite: false
28
49
  },
29
50
  {
30
- content: 'This is the fourth slider',
31
- image:
32
- 'https://picsum.photos/1024/480/?image=58',
33
- link: '/construction',
34
- dateStart: '2025-10-30T09:45:00+11:00',
35
- dateEnd: '2025-12-12T09:45:00+11:00',
36
- favorite: ''
51
+ field_title: 'This is the fourth slider',
52
+ field_image: {
53
+ field_media_image: {
54
+ uri: {
55
+ url: '/sites/default/files/styles/large/public/2018-06/Topics-explosives_0.jpg'
56
+ }
57
+ }
58
+ },
59
+ field_link: {
60
+ url: '/explosives',
61
+ },
62
+ field_date_start: '2025-01-30',
63
+ field_date_end: '2025-12-12',
64
+ field_favorite: false
37
65
  },
38
66
  {
39
- content: '',
40
- image:
41
- 'https://picsum.photos/1024/480/?image=60',
42
- link: '/construction',
43
- dateStart: '2024-10-30T09:45:00+11:00',
44
- dateEnd: '2025-12-12T09:45:00+11:00',
45
- favorite: ''
67
+ field_title: '',
68
+ field_image: {
69
+ field_media_image: {
70
+ uri: {
71
+ url: '/sites/default/files/styles/large/public/2022-07/card-bricklaying-3x2.jpg'
72
+ }
73
+ }
74
+ },
75
+ field_link: {
76
+ url: '/construction',
77
+ },
78
+ field_date_start: '2024-10-30',
79
+ field_date_end: '2025-12-12',
80
+ field_favorite: false
46
81
  },
47
- {
48
- content: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla consectetur ligula ex',
49
- image:
50
- 'https://picsum.photos/1024/480/?image=62',
51
- link: '/construction',
52
- dateStart: '2024-10-30T09:45:00+11:00',
53
- dateEnd: '2025-11-12T09:45:00+11:00',
54
- favorite: ''
55
- },
56
- ]
57
-
82
+ ]