@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.
- package/.storybook/preview.js +20 -13
- package/bin/deploy.sh +1 -1
- package/lib/utility.js +10 -8
- package/package.json +6 -5
- package/src/assets/icons/AppFooter/x-ws-footer.svg +10 -0
- package/src/assets/icons/AppFooter/x-ww-footer.svg +28 -0
- package/src/assets/icons/SocialShare/x-icon-white.svg +28 -0
- package/src/assets/styles/modal.scss +51 -0
- package/src/components/Common/CardGrid/index.vue +56 -51
- package/src/components/Common/CardGridItem/card-grid-item-caret.vue +7 -4
- package/src/components/Common/CardGridItem/card-grid-item-icon.vue +15 -19
- package/src/components/Common/CardGridItem/index.vue +77 -63
- package/src/components/Containers/Carousel/index.vue +14 -7
- package/src/components/Containers/HomepageHeader/index.stories.js +60 -36
- package/src/components/Containers/HomepageHeader/index.vue +2 -26
- package/src/components/Containers/HomepageHeaderNew/index.stories.js +15 -15
- package/src/components/Containers/HomepageHeaderNew/index.vue +97 -68
- package/src/components/Containers/SectionGroup/index.vue +1 -1
- package/src/components/Containers/Subheader/index.vue +5 -1
- package/src/components/Global/AppFooter/FooterSocialShare/index.vue +1 -1
- package/src/components/Global/AppFooter/index.vue +14 -7
- package/src/components/Global/AppFooter/styles.scss +3 -0
- package/src/components/Global/AppHeaderNew/styles.scss +10 -15
- package/src/components/Global/BackToTop/index.vue +8 -8
- package/src/components/Global/Cookies/index.stories.js +16 -10
- package/src/components/Global/Cookies/index.vue +280 -243
- package/src/components/Global/Cookies/styles.scss +54 -54
- package/src/components/Global/DirectoryFilters/SingleTaxonomy/index.vue +50 -133
- package/src/components/Global/DirectoryFilters/index.vue +3 -0
- package/src/components/Global/GlobalNotice/index.vue +79 -100
- package/src/components/Global/SocialShare/index.vue +1 -1
- package/src/components/Global/Strip/index.vue +1 -1
- package/src/components/Paragraphs/Accordion/AccordionItem/index.vue +8 -4
- package/src/components/Paragraphs/Accordion/StepperItem/index.vue +23 -23
- package/src/components/Paragraphs/Accordion/index.stories.js +21 -18
- package/src/components/Paragraphs/Accordion/index.vue +52 -48
- package/src/components/Paragraphs/BrowseContent/index.vue +1 -1
- package/src/components/Paragraphs/BrowseContent/setup.vue +284 -0
- package/src/components/Paragraphs/Chart/Constants.js +952 -952
- package/src/components/Paragraphs/Chart/index.vue +232 -241
- package/src/components/Paragraphs/Directory/HSCP/Records/SingleRecord/index.stories.js +34 -0
- package/src/components/Paragraphs/Directory/HSCP/Records/SingleRecord/index.vue +321 -0
- package/src/components/Paragraphs/Directory/HSCP/Records/index.stories.js +19 -0
- package/src/components/Paragraphs/Directory/HSCP/Records/index.vue +345 -0
- package/src/components/Paragraphs/Directory/HSCP/Records/pagination.vue +179 -0
- package/src/components/Paragraphs/Directory/Records/CJ/index.vue +1 -1
- package/src/components/Paragraphs/Directory/Records/ISP/index.vue +1 -1
- package/src/components/Paragraphs/Directory/Records/PRS/index.stories.js +34 -0
- package/src/components/Paragraphs/Directory/Records/PRS/index.vue +5 -1
- package/src/components/Paragraphs/Directory/Records/index.storieshide.js +47 -0
- package/src/components/Paragraphs/Directory/Records/index.vue +52 -33
- package/src/components/Paragraphs/Directory/constants.js +23 -5
- package/src/components/Paragraphs/Directory/index.vue +14 -14
- package/src/components/Paragraphs/Directory/{Records/styles.scss → styles.scss} +5 -3
- package/src/components/Paragraphs/ListGroup/index.vue +5 -1
- package/src/components/Paragraphs/Map/Constants.js +4790 -0
- package/src/components/Paragraphs/Map/index.mdx +29 -0
- package/src/components/Paragraphs/Map/index.stories.js +15 -0
- package/src/components/Paragraphs/Map/index.vue +295 -0
- package/src/components/Paragraphs/Map/postcode_location.json +3543 -0
- package/src/components/Paragraphs/ScrollSpy/index.vue +23 -14
- package/src/components/Paragraphs/SelectableCards/index.vue +15 -12
- package/src/components/Paragraphs/TabbedCards/index.vue +13 -14
- package/src/components/Paragraphs/Tabs/index.vue +19 -17
- package/src/components/Paragraphs/TextMedia/MediaTypes/Video/index.vue +9 -9
- package/src/components/Paragraphs/TextMedia/index.vue +20 -16
- package/src/components/Paragraphs/VideoGrid/index.stories.js +43 -19
- package/src/components/Paragraphs/VideoGrid/index.vue +13 -13
- package/src/components/Paragraphs/Webform/index.stories.js +82 -69
- package/src/components/SubComponents/Breadcrumb/index.vue +4 -0
- package/src/components/SubComponents/CardGroup/index.vue +5 -1
- package/src/components/SubComponents/FormAddressPostcode/index.vue +35 -37
- package/src/components/SubComponents/FormInstance/components/handler/index.vue +25 -29
- package/src/components/SubComponents/FormInstance/components/renderer/index.vue +81 -30
- package/src/components/SubComponents/FormInstance/models/overrides/file.js +38 -40
- package/src/components/SubComponents/FormInstance/services/form-submit-parser.js +22 -15
- package/src/components/SubComponents/FormInstance/services/registry-factory.js +1 -1
- package/src/components/SubComponents/FormInstance/stories/fileupload.stories.js +57 -0
- package/src/components/SubComponents/FormInstance/stories/mocks/fileupload.json +25 -0
- package/src/components/SubComponents/FormInstance/style.scss +2 -2
- package/src/components/SubComponents/FormInstance/tests/address.test.js +4 -4
- package/src/components/SubComponents/FormInstance/tests/checkboxes.test.js +7 -7
- package/src/components/SubComponents/FormInstance/tests/customcomposite.test.js +15 -15
- package/src/components/SubComponents/FormInstance/tests/date.test.js +8 -8
- package/src/components/SubComponents/FormInstance/tests/form-test-utils.js +9 -9
- package/src/components/SubComponents/FormInstance/tests/multiple.test.js +13 -13
- package/src/components/SubComponents/FormInstance/tests/rule-visible.test.js +120 -120
- package/src/components/SubComponents/FormInstance/tests/scale.test.js +6 -6
- package/src/components/SubComponents/FormInstance/tests/url.test.js +13 -10
- package/src/components/SubComponents/Pagination/index.vue +19 -18
- package/src/components/SubComponents/ResourceGroup/index.vue +5 -1
- package/src/components/SubComponents/Search/SearchListing/index.vue +20 -20
- package/src/components/SubComponents/Search/index.vue +42 -35
- package/src/components/SubComponents/VideoThumbnail/index.vue +48 -133
- package/src/includes/scss/vars/src/colors.module.scss +28 -1
- package/src/index.js +25 -3
- package/src/main.js +2 -10
- package/src/mock/carousel-items.js +71 -46
- package/src/mock/course-provider.js +273 -0
|
@@ -1,84 +1,82 @@
|
|
|
1
1
|
import WebformPara from './index.vue'
|
|
2
2
|
|
|
3
3
|
export default {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
4
|
+
title: 'Paragraphs/Webform',
|
|
5
|
+
component: WebformPara,
|
|
6
|
+
tags: ['autodocs'],
|
|
7
|
+
argTypes: {
|
|
8
|
+
preview: {
|
|
9
|
+
control: 'boolean',
|
|
10
|
+
table: {
|
|
11
|
+
disable: true,
|
|
13
12
|
},
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
},
|
|
14
|
+
processID: {
|
|
15
|
+
control: 'text',
|
|
16
|
+
table: {
|
|
17
|
+
disable: true,
|
|
19
18
|
},
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
},
|
|
20
|
+
formid: {
|
|
21
|
+
control: 'text',
|
|
22
|
+
},
|
|
23
|
+
type: {
|
|
24
|
+
control: 'text',
|
|
25
|
+
table: {
|
|
26
|
+
disable: true,
|
|
25
27
|
},
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
},
|
|
29
|
+
webFormJson: {
|
|
30
|
+
control: 'object',
|
|
31
|
+
table: {
|
|
32
|
+
disable: true,
|
|
31
33
|
},
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
34
|
+
},
|
|
35
|
+
changed: {
|
|
36
|
+
table: {
|
|
37
|
+
disable: true,
|
|
37
38
|
},
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
},
|
|
40
|
+
submitted: {
|
|
41
|
+
table: {
|
|
42
|
+
disable: true,
|
|
42
43
|
},
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
},
|
|
45
|
+
rendered: {
|
|
46
|
+
table: {
|
|
47
|
+
disable: true,
|
|
47
48
|
},
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
},
|
|
50
|
+
nextPage: {
|
|
51
|
+
table: {
|
|
52
|
+
disable: true,
|
|
52
53
|
},
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
},
|
|
55
|
+
prevPage: {
|
|
56
|
+
table: {
|
|
57
|
+
disable: true,
|
|
57
58
|
},
|
|
58
|
-
prevPage: {
|
|
59
|
-
table: {
|
|
60
|
-
disable: true
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
59
|
},
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
60
|
+
},
|
|
61
|
+
args: {
|
|
62
|
+
preview: true,
|
|
63
|
+
type: 'api',
|
|
64
|
+
formid: 'review_of_an_agent_decision',
|
|
65
|
+
// contentApiUrl: process.env.CONTENT_API_URL,
|
|
66
|
+
contentApiUrl: 'https://content-dev-v2.api.worksafe.vic.gov.au',
|
|
67
|
+
processID: `proc-id-form-api
|
|
70
68
|
.toLowerCase()
|
|
71
69
|
.split(' ')
|
|
72
|
-
.join('-')}
|
|
73
|
-
|
|
74
|
-
|
|
70
|
+
.join('-')}`,
|
|
71
|
+
},
|
|
72
|
+
}
|
|
75
73
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
74
|
+
const Template = (args) => ({
|
|
75
|
+
components: { WebformPara },
|
|
76
|
+
setup() {
|
|
77
|
+
return { args }
|
|
78
|
+
},
|
|
79
|
+
template: `
|
|
82
80
|
<div>
|
|
83
81
|
<h2>This is a web page with embedded webform</h2>
|
|
84
82
|
<p> Below is an example webform</p>
|
|
@@ -87,8 +85,23 @@ export default {
|
|
|
87
85
|
<div style="background-color: lightgrey">
|
|
88
86
|
<webform-para v-bind="args" />
|
|
89
87
|
</div>
|
|
88
|
+
<b>Change contentApiUrl from "staging" to "dev" if form not found (file form may only exist in dev)</b>
|
|
90
89
|
</div>
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
90
|
+
`,
|
|
91
|
+
})
|
|
92
|
+
|
|
93
|
+
export const Default = Template.bind({})
|
|
94
|
+
|
|
95
|
+
export const Files = Template.bind()
|
|
96
|
+
// export const Files = {}
|
|
97
|
+
Files.args = {
|
|
98
|
+
preview: false,
|
|
99
|
+
type: 'api',
|
|
100
|
+
formid: 'bbtest_webform_file_upload',
|
|
101
|
+
// contentApiUrl: process.env.CONTENT_API_URL,
|
|
102
|
+
contentApiUrl: 'https://content-dev-v2.api.worksafe.vic.gov.au',
|
|
103
|
+
processID: `proc-id-form-api
|
|
104
|
+
.toLowerCase()
|
|
105
|
+
.split(' ')
|
|
106
|
+
.join('-')}`,
|
|
107
|
+
}
|
|
@@ -179,7 +179,11 @@ export default {
|
|
|
179
179
|
},
|
|
180
180
|
selectedCard(card) {
|
|
181
181
|
// Some custom logic for gov caretaker logic
|
|
182
|
-
if (
|
|
182
|
+
if (
|
|
183
|
+
(this.$config
|
|
184
|
+
? this.$config.public.caretaker
|
|
185
|
+
: process.env.CARETAKER) === 'true'
|
|
186
|
+
) {
|
|
183
187
|
if (!isGovSite(card?.selectedCard?.link)) {
|
|
184
188
|
// this.$store.commit('page/SET_CARETAKER_REF', 'card-group')
|
|
185
189
|
// this.$root.$emit('caretaker-open', card?.selectedCard?.link)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="suburb-postcode-search">
|
|
3
3
|
<input
|
|
4
|
-
:id="`suburb-postcode-search-input-${
|
|
4
|
+
:id="`suburb-postcode-search-input-${$.uid}`"
|
|
5
5
|
v-model="suburb.text"
|
|
6
6
|
autocomplete="no"
|
|
7
7
|
:placeholder="inputPlaceholder"
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
aria-controls="sp-suggestions"
|
|
11
11
|
:class="{
|
|
12
12
|
'suburb-postcode-search--show-shadow': showShadow,
|
|
13
|
-
[inputClassName]: true
|
|
13
|
+
[inputClassName]: true,
|
|
14
14
|
}"
|
|
15
15
|
@keyup.prevent="searchSuburbPostcodeDebounce($event)"
|
|
16
16
|
/>
|
|
@@ -41,7 +41,8 @@
|
|
|
41
41
|
</template>
|
|
42
42
|
<script>
|
|
43
43
|
import axios from 'axios'
|
|
44
|
-
import debounce from 'lodash
|
|
44
|
+
import { debounce } from 'lodash-es'
|
|
45
|
+
|
|
45
46
|
import { detectBrowser } from '../../../../lib/detect-browser'
|
|
46
47
|
import { BSpinner } from 'bootstrap-vue-next'
|
|
47
48
|
|
|
@@ -51,51 +52,51 @@ export default {
|
|
|
51
52
|
props: {
|
|
52
53
|
showShadow: {
|
|
53
54
|
type: Boolean,
|
|
54
|
-
default: false
|
|
55
|
+
default: false,
|
|
55
56
|
},
|
|
56
57
|
inputPlaceholder: {
|
|
57
58
|
type: String,
|
|
58
|
-
default: 'Search for a suburb or postcode'
|
|
59
|
+
default: 'Search for a suburb or postcode',
|
|
59
60
|
},
|
|
60
61
|
showFullAddress: {
|
|
61
62
|
type: Boolean,
|
|
62
|
-
default: false
|
|
63
|
+
default: false,
|
|
63
64
|
},
|
|
64
65
|
geocode: {
|
|
65
66
|
type: Boolean,
|
|
66
|
-
default: false
|
|
67
|
+
default: false,
|
|
67
68
|
},
|
|
68
69
|
reverseGeocode: {
|
|
69
70
|
type: Boolean,
|
|
70
|
-
default: false
|
|
71
|
+
default: false,
|
|
71
72
|
},
|
|
72
73
|
baseUrl: {
|
|
73
74
|
type: String,
|
|
74
|
-
default: ''
|
|
75
|
+
default: '',
|
|
75
76
|
},
|
|
76
77
|
inputClassName: {
|
|
77
78
|
type: String,
|
|
78
|
-
default: ''
|
|
79
|
-
}
|
|
79
|
+
default: '',
|
|
80
|
+
},
|
|
80
81
|
},
|
|
81
82
|
data() {
|
|
82
83
|
return {
|
|
83
84
|
suburb: {
|
|
84
85
|
text: null,
|
|
85
86
|
value: null,
|
|
86
|
-
location: null
|
|
87
|
+
location: null,
|
|
87
88
|
},
|
|
88
89
|
results: [],
|
|
89
90
|
show: false,
|
|
90
91
|
searchSuburbPostcodeDebounce: debounce(this.searchSuburbPostcode, 500, {
|
|
91
|
-
trailing: true
|
|
92
|
+
trailing: true,
|
|
92
93
|
}),
|
|
93
94
|
options: {
|
|
94
95
|
enableHighAccuracy: true,
|
|
95
96
|
timeout: 5000,
|
|
96
|
-
maximumAge: 0
|
|
97
|
+
maximumAge: 0,
|
|
97
98
|
},
|
|
98
|
-
searchingAddress: false
|
|
99
|
+
searchingAddress: false,
|
|
99
100
|
}
|
|
100
101
|
},
|
|
101
102
|
computed: {
|
|
@@ -105,7 +106,7 @@ export default {
|
|
|
105
106
|
},
|
|
106
107
|
isIE() {
|
|
107
108
|
return window && navigator && this.detectBrowser(navigator) === 'IE'
|
|
108
|
-
}
|
|
109
|
+
},
|
|
109
110
|
},
|
|
110
111
|
watch: {
|
|
111
112
|
suburb: {
|
|
@@ -115,8 +116,8 @@ export default {
|
|
|
115
116
|
if (!this.suburb.location && this.suburb.text.length === 0) {
|
|
116
117
|
this.$emit('cleared')
|
|
117
118
|
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
119
|
+
},
|
|
120
|
+
},
|
|
120
121
|
},
|
|
121
122
|
methods: {
|
|
122
123
|
detectBrowser,
|
|
@@ -145,10 +146,9 @@ export default {
|
|
|
145
146
|
|
|
146
147
|
try {
|
|
147
148
|
const response = await (this?.$axios || axios).get(
|
|
148
|
-
`${
|
|
149
|
-
window.origin
|
|
150
|
-
|
|
151
|
-
}`
|
|
149
|
+
`${
|
|
150
|
+
this.baseUrl || window.origin
|
|
151
|
+
}/places/api/v1/place/autocomplete/json?${this.queryString}`,
|
|
152
152
|
)
|
|
153
153
|
const predictions = response?.data?.predictions || []
|
|
154
154
|
if (
|
|
@@ -182,28 +182,28 @@ export default {
|
|
|
182
182
|
},
|
|
183
183
|
async getLatLng(address) {
|
|
184
184
|
const geocodedAddress = await (this.$axios || axios).get(
|
|
185
|
-
`${this.baseUrl}/places/api/v1/geocode/json?address=${address}&components=country:au&sensor=false
|
|
185
|
+
`${this.baseUrl}/places/api/v1/geocode/json?address=${address}&components=country:au&sensor=false`,
|
|
186
186
|
)
|
|
187
187
|
if (geocodedAddress.data?.results[0]) {
|
|
188
188
|
return Promise.resolve(
|
|
189
|
-
geocodedAddress.data.results[0].geometry.location
|
|
189
|
+
geocodedAddress.data.results[0].geometry.location,
|
|
190
190
|
)
|
|
191
191
|
}
|
|
192
192
|
},
|
|
193
193
|
async searchAddressByLatLng(lat, lng) {
|
|
194
194
|
const geocodedAddress = await (this.$axios || axios).get(
|
|
195
|
-
`${this.baseUrl}/places/api/v1/geocode/json?latlng=${lat},${lng}
|
|
195
|
+
`${this.baseUrl}/places/api/v1/geocode/json?latlng=${lat},${lng}`,
|
|
196
196
|
)
|
|
197
197
|
if (geocodedAddress.data?.results[0]) {
|
|
198
198
|
return Promise.resolve(
|
|
199
|
-
geocodedAddress.data.results[0].formatted_address
|
|
199
|
+
geocodedAddress.data.results[0].formatted_address,
|
|
200
200
|
)
|
|
201
201
|
}
|
|
202
202
|
},
|
|
203
203
|
async updateValue(v) {
|
|
204
204
|
this.suburb = {
|
|
205
205
|
text: v.description,
|
|
206
|
-
value: v.structured_formatting.main_text
|
|
206
|
+
value: v.structured_formatting.main_text,
|
|
207
207
|
}
|
|
208
208
|
if (this.geocode && this.suburb.value) {
|
|
209
209
|
this.suburb.location = await this.getLatLng(this.suburb.value)
|
|
@@ -213,10 +213,8 @@ export default {
|
|
|
213
213
|
// Next tick is too fast
|
|
214
214
|
// have to wait for DOM to update
|
|
215
215
|
let self = this
|
|
216
|
-
setTimeout(function() {
|
|
217
|
-
document
|
|
218
|
-
.getElementById(`suburb-postcode-search-input-${_uid}`)
|
|
219
|
-
.focus()
|
|
216
|
+
setTimeout(function () {
|
|
217
|
+
document.getElementById(`suburb-postcode-search-input-${$.uid}`).focus()
|
|
220
218
|
}, 100)
|
|
221
219
|
},
|
|
222
220
|
focusPrevious(e) {
|
|
@@ -236,7 +234,7 @@ export default {
|
|
|
236
234
|
return navigator.geolocation.getCurrentPosition(
|
|
237
235
|
self.findAndUpdateAddress,
|
|
238
236
|
self.errorFindingLocation,
|
|
239
|
-
self.options
|
|
237
|
+
self.options,
|
|
240
238
|
)
|
|
241
239
|
} else {
|
|
242
240
|
return false
|
|
@@ -244,7 +242,7 @@ export default {
|
|
|
244
242
|
},
|
|
245
243
|
async findAndUpdateAddress(pos) {
|
|
246
244
|
let {
|
|
247
|
-
coords: { latitude, longitude }
|
|
245
|
+
coords: { latitude, longitude },
|
|
248
246
|
} = pos
|
|
249
247
|
let foundAddress = await this.searchAddressByLatLng(latitude, longitude)
|
|
250
248
|
this.suburb = {
|
|
@@ -252,16 +250,16 @@ export default {
|
|
|
252
250
|
value: foundAddress,
|
|
253
251
|
location: {
|
|
254
252
|
lat: latitude,
|
|
255
|
-
lng: longitude
|
|
256
|
-
}
|
|
253
|
+
lng: longitude,
|
|
254
|
+
},
|
|
257
255
|
}
|
|
258
256
|
this.searchingAddress = false
|
|
259
257
|
this.$emit('suburbChange', this.suburb)
|
|
260
258
|
},
|
|
261
259
|
errorFindingLocation(err) {
|
|
262
260
|
console.warn(err)
|
|
263
|
-
}
|
|
264
|
-
}
|
|
261
|
+
},
|
|
262
|
+
},
|
|
265
263
|
}
|
|
266
264
|
</script>
|
|
267
265
|
<style lang="scss" scoped>
|
|
@@ -39,31 +39,31 @@ export default {
|
|
|
39
39
|
name: 'FormHandler',
|
|
40
40
|
components: {
|
|
41
41
|
FormRenderer,
|
|
42
|
-
FormAlert
|
|
42
|
+
FormAlert,
|
|
43
43
|
},
|
|
44
44
|
props: {
|
|
45
45
|
formid: {
|
|
46
46
|
type: String,
|
|
47
|
-
required: true
|
|
47
|
+
required: true,
|
|
48
48
|
},
|
|
49
49
|
contentApiUrl: {
|
|
50
50
|
type: String,
|
|
51
51
|
required: false,
|
|
52
|
-
default: ''
|
|
52
|
+
default: '',
|
|
53
53
|
},
|
|
54
54
|
webFormJson: {
|
|
55
55
|
type: Object,
|
|
56
56
|
required: false,
|
|
57
|
-
default: () => null
|
|
57
|
+
default: () => null,
|
|
58
58
|
},
|
|
59
59
|
preview: {
|
|
60
60
|
type: Boolean,
|
|
61
|
-
required: false
|
|
61
|
+
required: false,
|
|
62
62
|
},
|
|
63
63
|
processID: {
|
|
64
64
|
type: String,
|
|
65
|
-
required: true
|
|
66
|
-
}
|
|
65
|
+
required: true,
|
|
66
|
+
},
|
|
67
67
|
},
|
|
68
68
|
data() {
|
|
69
69
|
return {
|
|
@@ -77,7 +77,7 @@ export default {
|
|
|
77
77
|
sid: '',
|
|
78
78
|
successMessage: `<h1>Your submission has been successful.</h1><p>A confirmation email will be sent to the email account provided.</p><p><a class="cta-button" href="/">Back to Homepage</a></p>`,
|
|
79
79
|
submitErrorMessage: `<h1>Unable to submit</h1><p>Unfortunately something has gone wrong when processing your submission. Please try again.</p><p><a class="cta-button" href="/">Back to Homepage</a></p>`,
|
|
80
|
-
notFoundMessage: `<h1>Unable to find form</h1><p>Unfortunately the form you are looking for cannot be found. Please try again or return to the our home page.</p><p><a class="cta-button" href="/">Back to Homepage</a></p
|
|
80
|
+
notFoundMessage: `<h1>Unable to find form</h1><p>Unfortunately the form you are looking for cannot be found. Please try again or return to the our home page.</p><p><a class="cta-button" href="/">Back to Homepage</a></p>`,
|
|
81
81
|
}
|
|
82
82
|
},
|
|
83
83
|
async mounted() {
|
|
@@ -89,7 +89,7 @@ export default {
|
|
|
89
89
|
if (!webFormJson || !this.form) {
|
|
90
90
|
this.setAlert(!webFormJson ? this.notFoundMessage : this.notFoundMessage)
|
|
91
91
|
}
|
|
92
|
-
this.scrollToTopOfForm()
|
|
92
|
+
// this.scrollToTopOfForm()
|
|
93
93
|
this.loading = false
|
|
94
94
|
},
|
|
95
95
|
methods: {
|
|
@@ -98,7 +98,7 @@ export default {
|
|
|
98
98
|
? {
|
|
99
99
|
message,
|
|
100
100
|
isError: isError ?? true,
|
|
101
|
-
fields: fields ?? []
|
|
101
|
+
fields: fields ?? [],
|
|
102
102
|
}
|
|
103
103
|
: null
|
|
104
104
|
if (sid) {
|
|
@@ -109,7 +109,7 @@ export default {
|
|
|
109
109
|
this.formApi.initialise(
|
|
110
110
|
this.contentApiUrl,
|
|
111
111
|
this.formid,
|
|
112
|
-
this.$axios || axios
|
|
112
|
+
this.$axios || axios,
|
|
113
113
|
)
|
|
114
114
|
this.formSubmitParser.initialise(this.formid, this.$axios || axios)
|
|
115
115
|
this.formRenderParser.initialise(this.contentApiUrl, this.preview)
|
|
@@ -117,23 +117,19 @@ export default {
|
|
|
117
117
|
async submitForm(submission, formioinstance) {
|
|
118
118
|
this.setAlert(null)
|
|
119
119
|
this.loading = true
|
|
120
|
-
const submitPayload = this.formSubmitParser.parse(
|
|
120
|
+
const submitPayload = await this.formSubmitParser.parse(
|
|
121
121
|
submission,
|
|
122
122
|
this.form,
|
|
123
|
-
formioinstance
|
|
123
|
+
formioinstance,
|
|
124
124
|
)
|
|
125
125
|
const isFormStandAlone = submitPayload && !submitPayload.webform_id
|
|
126
126
|
if (!isFormStandAlone) {
|
|
127
|
-
const {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
submitPayload,
|
|
134
|
-
this.preview,
|
|
135
|
-
this.form.tree
|
|
136
|
-
)
|
|
127
|
+
const { submitted, message, fields, sid } =
|
|
128
|
+
await this.formApi.submitForm(
|
|
129
|
+
submitPayload,
|
|
130
|
+
this.preview,
|
|
131
|
+
this.form.tree,
|
|
132
|
+
)
|
|
137
133
|
if (!submitPayload) {
|
|
138
134
|
this.setAlert(this.submitErrorMessage)
|
|
139
135
|
} else if (!submitted) {
|
|
@@ -152,13 +148,13 @@ export default {
|
|
|
152
148
|
FormCallbackQueue.enqueue(async () => {
|
|
153
149
|
await element.onRender(this.$refs.formhandler)
|
|
154
150
|
this.$emit(eventName)
|
|
155
|
-
})
|
|
151
|
+
}),
|
|
156
152
|
)
|
|
157
153
|
},
|
|
158
154
|
changed(event) {
|
|
159
155
|
const getSubmitButton = () =>
|
|
160
156
|
this.$refs.formhandler?.querySelector(
|
|
161
|
-
"button[type='submit'], .btn-wizard-nav-submit"
|
|
157
|
+
"button[type='submit'], .btn-wizard-nav-submit",
|
|
162
158
|
)
|
|
163
159
|
|
|
164
160
|
let isSubmitDisabledWhileUpdating
|
|
@@ -174,7 +170,7 @@ export default {
|
|
|
174
170
|
await elementModel.onchange(
|
|
175
171
|
event.component,
|
|
176
172
|
event.instance,
|
|
177
|
-
this.$axios || axios
|
|
173
|
+
this.$axios || axios,
|
|
178
174
|
)
|
|
179
175
|
}
|
|
180
176
|
submitButton = getSubmitButton()
|
|
@@ -200,9 +196,9 @@ export default {
|
|
|
200
196
|
},
|
|
201
197
|
getFormOptions() {
|
|
202
198
|
return {
|
|
203
|
-
noAlerts: true
|
|
199
|
+
noAlerts: true,
|
|
204
200
|
}
|
|
205
|
-
}
|
|
206
|
-
}
|
|
201
|
+
},
|
|
202
|
+
},
|
|
207
203
|
}
|
|
208
204
|
</script>
|