comand-component-library 4.1.12 → 4.1.14
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/dist/comand-component-library.js +1659 -1630
- package/dist/comand-component-library.umd.cjs +27 -27
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/ComponentLibrary.vue +1 -0
- package/src/components/CmdBasicForm.vue +46 -31
- package/src/components/CmdForm.vue +15 -1
- package/src/utils/ContactFormValidation.js +3 -3
@@ -12,6 +12,7 @@
|
|
12
12
|
:legend="legend"
|
13
13
|
:submitButton="submitButtonProperties"
|
14
14
|
:formAction="formAction"
|
15
|
+
ref="form"
|
15
16
|
>
|
16
17
|
<div v-if="configuration.salutation" class="flex-container no-flex order-male-female">
|
17
18
|
<!-- begin cmd-form-element -->
|
@@ -19,7 +20,7 @@
|
|
19
20
|
element="input"
|
20
21
|
type="radio"
|
21
22
|
:labelText="getMessage('basic_form.labeltext.salutation_male')"
|
22
|
-
:name="configuration.salutation?.name
|
23
|
+
:name="configuration.salutation?.name"
|
23
24
|
inputValue="m"
|
24
25
|
:replaceInputType="configuration.salutation?.replaceInputType"
|
25
26
|
v-model="formData.salutation.value"
|
@@ -33,7 +34,7 @@
|
|
33
34
|
element="input"
|
34
35
|
type="radio"
|
35
36
|
:labelText="getMessage('basic_form.labeltext.salutation_female')"
|
36
|
-
:name="configuration.salutation?.name
|
37
|
+
:name="configuration.salutation?.name"
|
37
38
|
inputValue="f"
|
38
39
|
:replaceInputType="configuration.salutation?.replaceInputType"
|
39
40
|
v-model="formData.salutation.value"
|
@@ -56,7 +57,7 @@
|
|
56
57
|
iconClass="icon-user-profile"
|
57
58
|
:labelText="getMessage('basic_form.labeltext.last_name')"
|
58
59
|
:required="configuration.lastName?.required"
|
59
|
-
:name="configuration.lastName?.name
|
60
|
+
:name="configuration.lastName?.name"
|
60
61
|
:placeholder="getMessage('basic_form.placeholder.last_name')"
|
61
62
|
v-model="formData.lastName.value"
|
62
63
|
:status="formData.lastName.error ? 'error' : ''"
|
@@ -74,7 +75,7 @@
|
|
74
75
|
:labelText="getMessage('basic_form.labeltext.first_name')"
|
75
76
|
:placeholder="getMessage('basic_form.placeholder.first_name')"
|
76
77
|
:required="configuration.firstName?.required"
|
77
|
-
:name="configuration.firstName?.name
|
78
|
+
:name="configuration.firstName?.name"
|
78
79
|
v-model="formData.firstName.value"
|
79
80
|
:status="formData.firstName.error ? 'error' : ''"
|
80
81
|
:i18n="i18n"
|
@@ -92,7 +93,7 @@
|
|
92
93
|
:labelText="getMessage('basic_form.labeltext.email')"
|
93
94
|
:placeholder="getMessage('basic_form.placeholder.email')"
|
94
95
|
:required="configuration.email?.required"
|
95
|
-
:name="configuration.email?.name
|
96
|
+
:name="configuration.email?.name"
|
96
97
|
v-model="formData.email.value"
|
97
98
|
:status="formData.email.error ? 'error' : ''"
|
98
99
|
:i18n="i18n"
|
@@ -110,7 +111,7 @@
|
|
110
111
|
:placeholder="getMessage('basic_form.placeholder.phone')"
|
111
112
|
v-model="formData.phone.value"
|
112
113
|
:required="configuration.phone?.required"
|
113
|
-
:name="configuration.phone?.name
|
114
|
+
:name="configuration.phone?.name"
|
114
115
|
:status="formData.phone.error ? 'error' : ''"
|
115
116
|
:i18n="i18n"
|
116
117
|
@validate="onValidate"
|
@@ -126,7 +127,7 @@
|
|
126
127
|
:labelText="getMessage('basic_form.labeltext.country')"
|
127
128
|
:selectOptions="configuration.country?.selectOptions"
|
128
129
|
:required="configuration.country?.required"
|
129
|
-
:name="configuration.country?.name
|
130
|
+
:name="configuration.country?.name"
|
130
131
|
v-model="formData.country.value"
|
131
132
|
:status="formData.country.error ? 'error' : ''"
|
132
133
|
:i18n="i18n"
|
@@ -143,7 +144,7 @@
|
|
143
144
|
:labelText="getMessage('basic_form.labeltext.street_no')"
|
144
145
|
:placeholder="getMessage('basic_form.placeholder.street_no')"
|
145
146
|
:required="configuration.streetNo?.required"
|
146
|
-
:name="configuration.streetNo?.name
|
147
|
+
:name="configuration.streetNo?.name"
|
147
148
|
v-model="formData.streetNo.value"
|
148
149
|
:status="formData.streetNo.error ? 'error' : ''"
|
149
150
|
:i18n="i18n"
|
@@ -159,7 +160,7 @@
|
|
159
160
|
:labelText="getMessage('basic_form.labeltext.pobox')"
|
160
161
|
:placeholder="getMessage('basic_form.placeholder.pobox')"
|
161
162
|
:required="configuration.pobox?.required"
|
162
|
-
:name="configuration.pobox?.name
|
163
|
+
:name="configuration.pobox?.name"
|
163
164
|
v-model="formData.pobox.value"
|
164
165
|
:status="formData.pobox.error ? 'error' : ''"
|
165
166
|
:i18n="i18n"
|
@@ -177,7 +178,7 @@
|
|
177
178
|
:labelText="getMessage('basic_form.labeltext.zip')"
|
178
179
|
:placeholder="getMessage('basic_form.placeholder.zip')"
|
179
180
|
:required="configuration.zip?.required"
|
180
|
-
:name="configuration.zip?.name
|
181
|
+
:name="configuration.zip?.name"
|
181
182
|
v-model="formData.zip.value"
|
182
183
|
:status="formData.zip.error ? 'error' : ''"
|
183
184
|
:i18n="i18n"
|
@@ -193,7 +194,7 @@
|
|
193
194
|
:labelText="getMessage('basic_form.labeltext.city')"
|
194
195
|
:placeholder="getMessage('basic_form.placeholder.city')"
|
195
196
|
:required="configuration.city?.required"
|
196
|
-
:name="configuration.city?.name
|
197
|
+
:name="configuration.city?.name"
|
197
198
|
v-model="formData.city.value"
|
198
199
|
:status="formData.city.error ? 'error' : ''"
|
199
200
|
:i18n="i18n"
|
@@ -210,7 +211,7 @@
|
|
210
211
|
:labelText="getMessage('basic_form.labeltext.additional_address_info')"
|
211
212
|
:placeholder="getMessage('basic_form.placeholder.additional_address_info')"
|
212
213
|
:required="configuration.additionalAddressInfo?.required"
|
213
|
-
:name="configuration.additionalAddressInfo?.name
|
214
|
+
:name="configuration.additionalAddressInfo?.name"
|
214
215
|
v-model="formData.additionalAddressInfo.value"
|
215
216
|
:status="formData.additionalAddressInfo.error ? 'error' : ''"
|
216
217
|
:i18n="i18n"
|
@@ -226,7 +227,7 @@
|
|
226
227
|
:labelText="getMessage('basic_form.labeltext.user_message')"
|
227
228
|
:placeholder="getMessage('basic_form.placeholder.user_message')"
|
228
229
|
:required="configuration.userMessage?.required"
|
229
|
-
:name="configuration.userMessage?.name
|
230
|
+
:name="configuration.userMessage?.name"
|
230
231
|
:textCharactersLeft="getMessage('basic_form.text.characters_left')"
|
231
232
|
:maxlength="configuration.userMessage?.maxLength"
|
232
233
|
v-model="formData.userMessage.value"
|
@@ -246,7 +247,7 @@
|
|
246
247
|
element="input"
|
247
248
|
type="checkbox"
|
248
249
|
:required="configuration.acceptPrivacy?.required"
|
249
|
-
:name="configuration.acceptPrivacy?.name
|
250
|
+
:name="configuration.acceptPrivacy?.name"
|
250
251
|
:replaceInputType="configuration.acceptPrivacy?.replaceInputType"
|
251
252
|
v-model="formData.acceptPrivacy.value"
|
252
253
|
:status="formData.acceptPrivacy.error ? 'error' : ''"
|
@@ -343,27 +344,33 @@ export default {
|
|
343
344
|
return {
|
344
345
|
salutation: {
|
345
346
|
default: "m",
|
346
|
-
replaceInputType: true
|
347
|
+
replaceInputType: true,
|
348
|
+
name: "salutation"
|
347
349
|
},
|
348
350
|
lastName: {
|
349
351
|
required: true,
|
350
|
-
type: "text"
|
352
|
+
type: "text",
|
353
|
+
name: "last-name"
|
351
354
|
},
|
352
355
|
firstName: {
|
353
356
|
required: false,
|
354
|
-
type: "text"
|
357
|
+
type: "text",
|
358
|
+
name: "first-name"
|
355
359
|
},
|
356
360
|
email: {
|
357
361
|
required: true,
|
358
|
-
type: "email"
|
362
|
+
type: "email",
|
363
|
+
name: "email"
|
359
364
|
},
|
360
365
|
phone: {
|
361
366
|
required: false,
|
362
|
-
type: "phone"
|
367
|
+
type: "phone",
|
368
|
+
name: "phone"
|
363
369
|
},
|
364
370
|
country: {
|
365
371
|
required: false,
|
366
372
|
element: "select",
|
373
|
+
name: "country",
|
367
374
|
selectOptions: [
|
368
375
|
{
|
369
376
|
text: "Please select...",
|
@@ -381,27 +388,33 @@ export default {
|
|
381
388
|
},
|
382
389
|
streetNo: {
|
383
390
|
required: false,
|
384
|
-
type: "text"
|
391
|
+
type: "text",
|
392
|
+
name: "street-no"
|
385
393
|
},
|
386
394
|
zip: {
|
387
395
|
required: false,
|
388
|
-
type: "number"
|
396
|
+
type: "number",
|
397
|
+
name: "zip"
|
389
398
|
},
|
390
399
|
city: {
|
391
400
|
required: false,
|
392
|
-
type: "text"
|
401
|
+
type: "text",
|
402
|
+
name: "city"
|
393
403
|
},
|
394
404
|
additionalAddressInfo: {
|
395
405
|
required: false,
|
396
|
-
type: "text"
|
406
|
+
type: "text",
|
407
|
+
name: "additional-address-info"
|
397
408
|
},
|
398
409
|
userMessage: {
|
399
|
-
required:
|
400
|
-
element: "textarea"
|
410
|
+
required: true,
|
411
|
+
element: "textarea",
|
412
|
+
name: "user-message"
|
401
413
|
},
|
402
414
|
acceptPrivacy: {
|
403
415
|
required: true,
|
404
|
-
replaceInputType: true
|
416
|
+
replaceInputType: true,
|
417
|
+
name: "accept-privacy"
|
405
418
|
}
|
406
419
|
}
|
407
420
|
}
|
@@ -481,21 +494,23 @@ export default {
|
|
481
494
|
|
482
495
|
for(let i = 0; i < configurationEntries.length; i++) {
|
483
496
|
// assign formData values to form-element key
|
484
|
-
customSubmitFormData.set(configurationEntries[i], this.formData[configurationEntries[i]].value)
|
497
|
+
customSubmitFormData.set(this.configuration[configurationEntries[i]].name, this.formData[configurationEntries[i]].value)
|
485
498
|
}
|
486
499
|
|
487
|
-
fetch(this.formAction, {method: "POST", body: customSubmitFormData}).then((response) => {
|
500
|
+
fetch(this.formAction, {method: this.cmdForm?.formMethod || "POST", body: customSubmitFormData}).then((response) => {
|
488
501
|
if(response.ok) {
|
489
|
-
|
502
|
+
this.$refs.form.showMessage("success", "Message sent successfully!")
|
503
|
+
|
490
504
|
} else {
|
491
|
-
|
505
|
+
this.$refs.form.showMessage("error", "Message could not be sent!")
|
492
506
|
}
|
493
507
|
}).catch((error) => {
|
508
|
+
this.$refs.form.showMessage("error", "Message could not be sent!")
|
494
509
|
console.error(error)
|
495
510
|
})
|
496
511
|
|
497
512
|
// prevent original levent form CmdForm (to avoid submit and reload)
|
498
|
-
|
513
|
+
event.originalEvent.preventDefault()
|
499
514
|
},
|
500
515
|
onCountrySelect(event) {
|
501
516
|
this.cityBeforeZip = event === 'us' || event === 'uk';
|
@@ -7,6 +7,7 @@
|
|
7
7
|
legend.text
|
8
8
|
}}
|
9
9
|
</legend>
|
10
|
+
<CmdSystemMessage v-if="systemMessage.show && systemMessage.message" :validationStatus="systemMessage.validationStatus" :system-message="systemMessage.message"/>
|
10
11
|
<!-- begin default-slot-content -->
|
11
12
|
<slot v-if="useSlot"></slot>
|
12
13
|
<!-- end default-slot-content -->
|
@@ -71,14 +72,22 @@
|
|
71
72
|
|
72
73
|
<script>
|
73
74
|
import {createHtmlId} from "@"
|
75
|
+
import CmdSystemMessage from "@/components/CmdSystemMessage.vue";
|
74
76
|
|
75
77
|
export default {
|
76
78
|
name: "CmdForm",
|
79
|
+
components: {CmdSystemMessage},
|
77
80
|
emits: ["submit"],
|
78
81
|
data() {
|
79
82
|
return {
|
80
83
|
errorOccurred: false,
|
81
|
-
formValues: {}
|
84
|
+
formValues: {},
|
85
|
+
showSystemMessage: false,
|
86
|
+
systemMessage: {
|
87
|
+
show: false,
|
88
|
+
validationStatus: "",
|
89
|
+
message: ""
|
90
|
+
}
|
82
91
|
}
|
83
92
|
},
|
84
93
|
props: {
|
@@ -177,6 +186,11 @@ export default {
|
|
177
186
|
},
|
178
187
|
methods: {
|
179
188
|
createHtmlId,
|
189
|
+
showMessage(validationStatus, message) {
|
190
|
+
this.systemMessage.show = true
|
191
|
+
this.systemMessage.validationStatus = validationStatus
|
192
|
+
this.systemMessage.message = message
|
193
|
+
},
|
180
194
|
submitFormData(event) {
|
181
195
|
// fill form-data with names and value
|
182
196
|
let formdata = {}
|
@@ -15,12 +15,12 @@ class ContactFormValidator {
|
|
15
15
|
formData.lastName.value, ContactFormValidator.PATTERN_SURNAME, this.label('form_error_invalid_surname'))
|
16
16
|
[formData.email.error, formData.email.errorMessage] = this.validateRequired(
|
17
17
|
formData.email.value, ContactFormValidator.PATTERN_EMAIL, this.label('form_error_invalid_email'))
|
18
|
-
[formData.
|
19
|
-
formData.
|
18
|
+
[formData.userMessage.error, formData.userMessage.errorMessage] = this.validateRequired(
|
19
|
+
formData.userMessage.value, ContactFormValidator.PATTERN_MESSAGE, this.label('form_error_invalid_message'))
|
20
20
|
formData.acceptPrivacy.error = false
|
21
21
|
formData.error = formData.lastName.error
|
22
22
|
|| formData.email.error
|
23
|
-
|| formData.
|
23
|
+
|| formData.userMessage.error
|
24
24
|
return formData
|
25
25
|
}
|
26
26
|
|