@worksafevictoria/wcl7.5 1.5.0 → 1.7.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 (99) 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 +6 -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 +56 -51
  10. package/src/components/Common/CardGridItem/card-grid-item-caret.vue +7 -4
  11. package/src/components/Common/CardGridItem/card-grid-item-icon.vue +15 -19
  12. package/src/components/Common/CardGridItem/index.vue +77 -63
  13. package/src/components/Containers/Carousel/index.vue +14 -7
  14. package/src/components/Containers/HomepageHeader/index.stories.js +60 -36
  15. package/src/components/Containers/HomepageHeader/index.vue +2 -26
  16. package/src/components/Containers/HomepageHeaderNew/index.stories.js +15 -15
  17. package/src/components/Containers/HomepageHeaderNew/index.vue +97 -68
  18. package/src/components/Containers/SectionGroup/index.vue +1 -1
  19. package/src/components/Containers/Subheader/index.vue +5 -1
  20. package/src/components/Global/AppFooter/FooterSocialShare/index.vue +1 -1
  21. package/src/components/Global/AppFooter/index.vue +14 -7
  22. package/src/components/Global/AppFooter/styles.scss +3 -0
  23. package/src/components/Global/AppHeaderNew/styles.scss +10 -15
  24. package/src/components/Global/BackToTop/index.vue +8 -8
  25. package/src/components/Global/Cookies/index.stories.js +16 -10
  26. package/src/components/Global/Cookies/index.vue +280 -243
  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/DirectoryFilters/index.vue +3 -0
  30. package/src/components/Global/GlobalNotice/index.vue +79 -100
  31. package/src/components/Global/SocialShare/index.vue +1 -1
  32. package/src/components/Global/Strip/index.vue +1 -1
  33. package/src/components/Paragraphs/Accordion/AccordionItem/index.vue +8 -4
  34. package/src/components/Paragraphs/Accordion/StepperItem/index.vue +23 -23
  35. package/src/components/Paragraphs/Accordion/index.stories.js +21 -18
  36. package/src/components/Paragraphs/Accordion/index.vue +52 -48
  37. package/src/components/Paragraphs/BrowseContent/index.vue +1 -1
  38. package/src/components/Paragraphs/BrowseContent/setup.vue +284 -0
  39. package/src/components/Paragraphs/Chart/Constants.js +952 -952
  40. package/src/components/Paragraphs/Chart/index.vue +232 -241
  41. package/src/components/Paragraphs/Directory/HSCP/Records/SingleRecord/index.stories.js +34 -0
  42. package/src/components/Paragraphs/Directory/HSCP/Records/SingleRecord/index.vue +321 -0
  43. package/src/components/Paragraphs/Directory/HSCP/Records/index.stories.js +19 -0
  44. package/src/components/Paragraphs/Directory/HSCP/Records/index.vue +345 -0
  45. package/src/components/Paragraphs/Directory/HSCP/Records/pagination.vue +179 -0
  46. package/src/components/Paragraphs/Directory/Records/CJ/index.vue +1 -1
  47. package/src/components/Paragraphs/Directory/Records/ISP/index.vue +1 -1
  48. package/src/components/Paragraphs/Directory/Records/PRS/index.stories.js +34 -0
  49. package/src/components/Paragraphs/Directory/Records/PRS/index.vue +5 -1
  50. package/src/components/Paragraphs/Directory/Records/index.storieshide.js +47 -0
  51. package/src/components/Paragraphs/Directory/Records/index.vue +52 -33
  52. package/src/components/Paragraphs/Directory/constants.js +23 -5
  53. package/src/components/Paragraphs/Directory/index.vue +14 -14
  54. package/src/components/Paragraphs/Directory/{Records/styles.scss → styles.scss} +5 -3
  55. package/src/components/Paragraphs/ListGroup/index.vue +5 -1
  56. package/src/components/Paragraphs/Map/Constants.js +4790 -0
  57. package/src/components/Paragraphs/Map/index.mdx +29 -0
  58. package/src/components/Paragraphs/Map/index.stories.js +15 -0
  59. package/src/components/Paragraphs/Map/index.vue +295 -0
  60. package/src/components/Paragraphs/Map/postcode_location.json +3543 -0
  61. package/src/components/Paragraphs/ScrollSpy/index.vue +23 -14
  62. package/src/components/Paragraphs/SelectableCards/index.vue +15 -12
  63. package/src/components/Paragraphs/TabbedCards/index.vue +13 -14
  64. package/src/components/Paragraphs/Tabs/index.vue +19 -17
  65. package/src/components/Paragraphs/TextMedia/MediaTypes/Video/index.vue +9 -9
  66. package/src/components/Paragraphs/TextMedia/index.vue +20 -16
  67. package/src/components/Paragraphs/VideoGrid/index.stories.js +43 -19
  68. package/src/components/Paragraphs/VideoGrid/index.vue +13 -13
  69. package/src/components/Paragraphs/Webform/index.stories.js +82 -69
  70. package/src/components/SubComponents/Breadcrumb/index.vue +4 -0
  71. package/src/components/SubComponents/CardGroup/index.vue +5 -1
  72. package/src/components/SubComponents/FormAddressPostcode/index.vue +35 -37
  73. package/src/components/SubComponents/FormInstance/components/handler/index.vue +25 -29
  74. package/src/components/SubComponents/FormInstance/components/renderer/index.vue +81 -30
  75. package/src/components/SubComponents/FormInstance/models/overrides/file.js +38 -40
  76. package/src/components/SubComponents/FormInstance/services/form-submit-parser.js +22 -15
  77. package/src/components/SubComponents/FormInstance/services/registry-factory.js +1 -1
  78. package/src/components/SubComponents/FormInstance/stories/fileupload.stories.js +57 -0
  79. package/src/components/SubComponents/FormInstance/stories/mocks/fileupload.json +25 -0
  80. package/src/components/SubComponents/FormInstance/style.scss +2 -2
  81. package/src/components/SubComponents/FormInstance/tests/address.test.js +4 -4
  82. package/src/components/SubComponents/FormInstance/tests/checkboxes.test.js +7 -7
  83. package/src/components/SubComponents/FormInstance/tests/customcomposite.test.js +15 -15
  84. package/src/components/SubComponents/FormInstance/tests/date.test.js +8 -8
  85. package/src/components/SubComponents/FormInstance/tests/form-test-utils.js +9 -9
  86. package/src/components/SubComponents/FormInstance/tests/multiple.test.js +13 -13
  87. package/src/components/SubComponents/FormInstance/tests/rule-visible.test.js +120 -120
  88. package/src/components/SubComponents/FormInstance/tests/scale.test.js +6 -6
  89. package/src/components/SubComponents/FormInstance/tests/url.test.js +13 -10
  90. package/src/components/SubComponents/Pagination/index.vue +19 -18
  91. package/src/components/SubComponents/ResourceGroup/index.vue +5 -1
  92. package/src/components/SubComponents/Search/SearchListing/index.vue +20 -20
  93. package/src/components/SubComponents/Search/index.vue +42 -35
  94. package/src/components/SubComponents/VideoThumbnail/index.vue +48 -133
  95. package/src/includes/scss/vars/src/colors.module.scss +28 -1
  96. package/src/index.js +25 -3
  97. package/src/main.js +2 -10
  98. package/src/mock/carousel-items.js +71 -46
  99. package/src/mock/course-provider.js +273 -0
@@ -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
@@ -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'
@@ -29,6 +30,7 @@ import TaskFinder from './components/Paragraphs/TaskFinder/index.vue'
29
30
  import ListGroup from './components/Paragraphs/ListGroup/index.vue'
30
31
  import ScrollSpy from './components/Paragraphs/ScrollSpy/index.vue'
31
32
  import Directory from './components/Paragraphs/Directory/index.vue'
33
+ import HscpDirectory from './components/Paragraphs/Directory/HSCP/Records/index.vue'
32
34
  import SelectableCards from './components/Paragraphs/SelectableCards/index.vue'
33
35
  import VideoMedia from './components/Paragraphs/VideoPlayer/index.vue'
34
36
  import VideoGrid from './components/Paragraphs/VideoGrid/index.vue'
@@ -41,6 +43,7 @@ import MarketingBanner from './components/Paragraphs/MarketingBanner/index.vue'
41
43
  import RelatedInformation from './components/Paragraphs/RelatedInformation/index.vue'
42
44
  import Calculator from './components/Paragraphs/Calculator/index.vue'
43
45
  import Chart from './components/Paragraphs/Chart/index.vue'
46
+ import GeoChart from './components/Paragraphs/Map/index.vue'
44
47
 
45
48
  // SubComponents
46
49
  import FormAddressPostcode from './components/SubComponents/FormAddressPostcode/index.vue'
@@ -55,6 +58,9 @@ import Search from './components/SubComponents/Search/index.vue'
55
58
  import VideoThumbnail from './components/SubComponents/VideoThumbnail/index.vue'
56
59
  import ResourceGroup from './components/SubComponents/ResourceGroup/index.vue'
57
60
 
61
+ // Temp Components for testing
62
+ import BrowseContent2 from './components/Paragraphs/BrowseContent/setup.vue'
63
+
58
64
  // Export Global Components
59
65
  export {
60
66
  Container,
@@ -78,7 +84,8 @@ export {
78
84
  Cookies,
79
85
  BackToTop,
80
86
  GlobalNotice,
81
- ContrastMode
87
+ ContrastMode,
88
+ CarouselComponent,
82
89
  }
83
90
 
84
91
  // Export Paragraphs
@@ -91,6 +98,7 @@ export {
91
98
  ListGroup,
92
99
  ScrollSpy,
93
100
  Directory,
101
+ HscpDirectory,
94
102
  SelectableCards,
95
103
  Statistics,
96
104
  ProofPoints,
@@ -100,7 +108,8 @@ export {
100
108
  MarketingBanner,
101
109
  RelatedInformation,
102
110
  Calculator,
103
- Chart
111
+ Chart,
112
+ GeoChart,
104
113
  }
105
114
 
106
115
  // Export Sub Components
@@ -114,5 +123,18 @@ export {
114
123
  Breadcrumb,
115
124
  Search,
116
125
  VideoThumbnail,
117
- ResourceGroup
126
+ ResourceGroup,
127
+ }
128
+
129
+ // Export for BrowseContent
130
+ import DirectoryFilters from './components/Global/DirectoryFilters/index.vue'
131
+ import Switcher from './components/Paragraphs/BrowseContent/switcher.vue'
132
+
133
+ export {
134
+ // CardGroup, already imported
135
+ DirectoryFilters,
136
+ Switcher,
118
137
  }
138
+
139
+ // Temp Components for testing
140
+ 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)
@@ -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: '2025-12-01T09:45:00+11:00',
17
- dateEnd: '2025-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
+ ]