comand-component-library 4.0.9 → 4.0.11
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 +3466 -2981
- package/dist/comand-component-library.umd.cjs +3 -3
- package/dist/style.css +1 -1
- package/package.json +2 -2
- package/src/ComponentLibrary.vue +30 -5
- package/src/assets/data/box-user.json +4 -4
- package/src/assets/data/pages/boxes-faqs.json +45 -0
- package/src/assets/data/pages/boxes-team-overview.json +302 -0
- package/src/assets/data/pages/list-of-downloads.json +2 -2
- package/src/assets/data/pages/list-of-site-links.json +2 -2
- package/src/assets/data/social-networks-page-by-json.json +4 -4
- package/src/componentSettingsDataAndControls.vue +0 -10
- package/src/components/CmdBox.vue +11 -4
- package/src/components/CmdCopyrightInformation.vue +2 -2
- package/src/components/CmdSiteHeader.vue +8 -1
- package/src/components/CmdSocialNetworks.vue +2 -18
- package/src/components/CmdSocialNetworksItem.vue +16 -0
- package/src/index.js +6 -0
- package/src/mixins/pages/BasicForm/DefaultMessageProperties.js +2 -0
- package/src/pages/BasicForm.vue +142 -111
- package/src/pages/ContactInformation.vue +59 -0
- package/src/pages/MultipleBoxWrapper.vue +48 -0
- package/src/pages/{SegmentedListsOfLinks.vue → MultipleListsOfLinks.vue} +3 -3
- package/src/pages/PageOverview.vue +41 -14
package/src/pages/BasicForm.vue
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
<template>
|
2
2
|
<div class="cmd-pages-basic-form">
|
3
|
+
<!-- being CmdForm -->
|
3
4
|
<CmdForm :action="formAction"
|
4
5
|
@submit="onSubmit"
|
5
6
|
novalidate="novalidate"
|
@@ -12,9 +13,9 @@
|
|
12
13
|
element="input"
|
13
14
|
type="radio"
|
14
15
|
:labelText="getMessage('basic_form.labeltext.salutation_male')"
|
15
|
-
name="salutation"
|
16
|
-
inputValue="
|
17
|
-
:
|
16
|
+
:name="configuration.salutation?.name || salutation"
|
17
|
+
inputValue="m"
|
18
|
+
:replaceInputType="configuration.salutation?.replaceInputType"
|
18
19
|
v-model="formData.salutation"
|
19
20
|
@validate="onValidate"
|
20
21
|
/>
|
@@ -25,52 +26,65 @@
|
|
25
26
|
element="input"
|
26
27
|
type="radio"
|
27
28
|
:labelText="getMessage('basic_form.labeltext.salutation_female')"
|
28
|
-
name="salutation"
|
29
|
-
|
29
|
+
:name="configuration.salutation?.name || salutation"
|
30
|
+
inputValue="f"
|
31
|
+
:replaceInputType="configuration.salutation?.replaceInputType"
|
30
32
|
v-model="formData.salutation"
|
31
33
|
@validate="onValidate"
|
32
34
|
/>
|
33
35
|
<!-- end cmd-form-element -->
|
34
36
|
</div>
|
37
|
+
|
38
|
+
<!-- begin slot (top) -->
|
39
|
+
<slot name="top"></slot>
|
40
|
+
<!-- end slot (top) -->
|
41
|
+
|
35
42
|
<div class="flex-container">
|
36
43
|
<!-- begin cmd-form-element -->
|
37
44
|
<CmdFormElement
|
45
|
+
v-if="configuration.lastName"
|
38
46
|
element="input"
|
39
|
-
type="text"
|
47
|
+
:type="configuration.lastName?.type || 'text'"
|
40
48
|
iconClass="icon-user-profile"
|
41
49
|
:labelText="getMessage('basic_form.labeltext.last_name')"
|
42
|
-
:tooltipText="formData.
|
43
|
-
required="required"
|
50
|
+
:tooltipText="formData.lastName.error ? formData.lastName.errorMessage : 'Type your surname!'"
|
51
|
+
:required="configuration.lastName?.required"
|
52
|
+
:name="configuration.lastName?.name || 'last-name'"
|
44
53
|
:placeholder="getMessage('basic_form.placeholder.last_name')"
|
45
|
-
v-model="formData.
|
46
|
-
:status="formData.
|
54
|
+
v-model="formData.lastName.value"
|
55
|
+
:status="formData.lastName.error ? 'error' : ''"
|
47
56
|
@validate="onValidate"
|
48
57
|
/>
|
49
58
|
<!-- end cmd-form-element -->
|
50
59
|
|
51
60
|
<!-- begin cmd-form-element -->
|
52
61
|
<CmdFormElement
|
62
|
+
v-if="configuration.firstName"
|
53
63
|
element="input"
|
54
|
-
type="text"
|
64
|
+
:type="configuration.firstName?.type || 'text'"
|
55
65
|
iconClass="icon-user-profile"
|
56
66
|
:labelText="getMessage('basic_form.labeltext.first_name')"
|
57
|
-
:tooltipText="formData.
|
67
|
+
:tooltipText="formData.firstName.error ? formData.firstName.errorMessage : 'Type your first name!'"
|
58
68
|
:placeholder="getMessage('basic_form.placeholder.first_name')"
|
59
|
-
|
60
|
-
:
|
69
|
+
:required="configuration.firstName?.required"
|
70
|
+
:name="configuration.firstName?.name || 'first-name'"
|
71
|
+
v-model="formData.firstName.value"
|
72
|
+
:status="formData.firstName.error ? 'error' : ''"
|
61
73
|
@validate="onValidate"
|
62
74
|
/>
|
63
75
|
<!-- end cmd-form-element -->
|
64
76
|
</div>
|
65
|
-
<div class="flex-container">
|
77
|
+
<div v-if="configuration.email || configuration.phone" class="flex-container">
|
66
78
|
<!-- begin cmd-form-element -->
|
67
79
|
<CmdFormElement
|
80
|
+
v-if="configuration.email"
|
68
81
|
element="input"
|
69
|
-
type="email"
|
82
|
+
:type="configuration.email?.type || 'email'"
|
70
83
|
iconClass="icon-mail"
|
71
84
|
:labelText="getMessage('basic_form.labeltext.email')"
|
72
85
|
:placeholder="getMessage('basic_form.placeholder.email')"
|
73
|
-
required="required"
|
86
|
+
:required="configuration.email?.required"
|
87
|
+
:name="configuration.email?.name || 'email'"
|
74
88
|
v-model="formData.email.value"
|
75
89
|
:status="formData.email.error ? 'error' : ''"
|
76
90
|
:tooltipText="formData.email.error ? formData.email.errorMessage : 'Type your email!'"
|
@@ -80,12 +94,15 @@
|
|
80
94
|
|
81
95
|
<!-- begin cmd-form-element -->
|
82
96
|
<CmdFormElement
|
97
|
+
v-if="configuration.phone"
|
83
98
|
element="input"
|
84
|
-
type="phone"
|
99
|
+
:type="configuration.phone?.type || 'tel'"
|
85
100
|
iconClass="icon-phone"
|
86
101
|
:labelText="getMessage('basic_form.labeltext.phone')"
|
87
102
|
:placeholder="getMessage('basic_form.placeholder.phone')"
|
88
103
|
v-model="formData.phone.value"
|
104
|
+
:required="configuration.phone?.required"
|
105
|
+
:name="configuration.phone?.name || 'phone'"
|
89
106
|
:status="formData.phone.error ? 'error' : ''"
|
90
107
|
:tooltipText="formData.phone.error ? formData.phone.errorMessage : 'Type your phone number!'"
|
91
108
|
@validate="onValidate"
|
@@ -97,13 +114,14 @@
|
|
97
114
|
<!-- begin cmd-form-element -->
|
98
115
|
<CmdFormElement
|
99
116
|
element="input"
|
100
|
-
type="text"
|
117
|
+
:type="configuration.streetNo?.type || 'text'"
|
101
118
|
:labelText="getMessage('basic_form.labeltext.street_no')"
|
102
119
|
:placeholder="getMessage('basic_form.placeholder.street_no')"
|
103
|
-
required="required"
|
104
|
-
|
105
|
-
|
106
|
-
:
|
120
|
+
:required="configuration.streetNo?.required"
|
121
|
+
:name="configuration.streetNo?.name || 'street-no'"
|
122
|
+
v-model="formData.streetNo.value"
|
123
|
+
:status="formData.streetNo.error ? 'error' : ''"
|
124
|
+
:tooltipText="formData.streetNo.error ? formData.streetNo.errorMessage : 'Type your street and number!'"
|
107
125
|
@validate="onValidate"
|
108
126
|
/>
|
109
127
|
<!-- end cmd-form-element -->
|
@@ -112,9 +130,11 @@
|
|
112
130
|
<!-- begin cmd-form-element -->
|
113
131
|
<CmdFormElement
|
114
132
|
element="input"
|
115
|
-
type="number"
|
133
|
+
:type="configuration.zip?.type || 'number'"
|
116
134
|
:labelText="getMessage('basic_form.labeltext.zip')"
|
117
135
|
:placeholder="getMessage('basic_form.placeholder.zip')"
|
136
|
+
:required="configuration.zip?.required"
|
137
|
+
:name="configuration.zip?.name || 'zip'"
|
118
138
|
v-model="formData.zip.value"
|
119
139
|
:status="formData.zip.error ? 'error' : ''"
|
120
140
|
:tooltipText="formData.zip.error ? formData.zip.errorMessage : 'Type your zip/postal code!'"
|
@@ -124,9 +144,11 @@
|
|
124
144
|
<!-- begin cmd-form-element -->
|
125
145
|
<CmdFormElement
|
126
146
|
element="input"
|
127
|
-
type="text"
|
147
|
+
:type="configuration.city?.type || 'text'"
|
128
148
|
:labelText="getMessage('basic_form.labeltext.city')"
|
129
149
|
:placeholder="getMessage('basic_form.placeholder.city')"
|
150
|
+
:required="configuration.city?.required"
|
151
|
+
:name="configuration.city?.name || 'zip'"
|
130
152
|
v-model="formData.city.value"
|
131
153
|
:status="formData.city.error ? 'error' : ''"
|
132
154
|
:tooltipText="formData.city.error ? formData.city.errorMessage : 'Type your city!'"
|
@@ -138,25 +160,45 @@
|
|
138
160
|
<!-- begin cmd-form-element -->
|
139
161
|
<CmdFormElement
|
140
162
|
element="input"
|
141
|
-
type="text"
|
163
|
+
:type="configuration.additionalAddressInfo?.type || 'text'"
|
142
164
|
:labelText="getMessage('basic_form.labeltext.additional_address_info')"
|
143
165
|
:placeholder="getMessage('basic_form.placeholder.additional_address_info')"
|
144
|
-
required="required"
|
145
|
-
|
146
|
-
|
147
|
-
:
|
166
|
+
:required="configuration.additionalAddressInfo?.required"
|
167
|
+
:name="configuration.additionalAddressInfo?.name || 'additional-address-info'"
|
168
|
+
v-model="formData.additionalAddressInfo.value"
|
169
|
+
:status="formData.additionalAddressInfo.error ? 'error' : ''"
|
170
|
+
:tooltipText="formData.additionalAddressInfo.error ? formData.additionalAddressInfo.errorMessage : 'Type additional address information!'"
|
148
171
|
@validate="onValidate"
|
149
172
|
/>
|
150
173
|
<!-- end cmd-form-element -->
|
151
174
|
</div>
|
152
175
|
|
176
|
+
<!-- begin cmd-form-element -->
|
177
|
+
<CmdFormElement
|
178
|
+
:type="configuration.additionalText?.type || 'textarea'"
|
179
|
+
:labelText="getMessage('basic_form.labeltext.additional_text')"
|
180
|
+
:placeholder="getMessage('basic_form.placeholder.additional_text')"
|
181
|
+
:required="configuration.additionalText?.required"
|
182
|
+
:name="configuration.additionalText?.name || 'additional-text'"
|
183
|
+
v-model="formData.additionalText.value"
|
184
|
+
:status="formData.additionalText.error ? 'error' : ''"
|
185
|
+
@validate="onValidate"
|
186
|
+
/>
|
187
|
+
<!-- end cmd-form-element -->
|
188
|
+
|
189
|
+
<!-- begin slot (bottom) -->
|
190
|
+
<slot name="bottom"></slot>
|
191
|
+
<!-- end slot (bottom) -->
|
192
|
+
|
153
193
|
<!-- begin cmd-form-element -->
|
154
194
|
<CmdFormElement
|
155
195
|
element="input"
|
156
196
|
type="checkbox"
|
157
|
-
:required="
|
158
|
-
|
159
|
-
:
|
197
|
+
:required="configuration.acceptPrivacy?.required"
|
198
|
+
:name="configuration.acceptPrivacy?.name || 'accept-privacy'"
|
199
|
+
:replaceInputType="configuration.acceptPrivacy?.replaceInputType"
|
200
|
+
v-model="formData.acceptPrivacy.value"
|
201
|
+
:status="formData.acceptPrivacy.error ? 'error' : ''"
|
160
202
|
@validate="onValidate">
|
161
203
|
<template v-slot:labeltext>
|
162
204
|
<span ref="dataPrivacy" v-html="getMessage('basic_form.labeltext.data_privacy')"></span>
|
@@ -164,12 +206,12 @@
|
|
164
206
|
</CmdFormElement>
|
165
207
|
<!-- end cmd-form-element -->
|
166
208
|
</CmdForm>
|
209
|
+
<!-- end CmdForm -->
|
167
210
|
</div>
|
168
211
|
</template>
|
169
212
|
|
170
213
|
<script>
|
171
214
|
// import mixins
|
172
|
-
// import mixins
|
173
215
|
import I18n from "../mixins/I18n"
|
174
216
|
import DefaultMessageProperties from "../mixins/pages/BasicForm/DefaultMessageProperties"
|
175
217
|
import FieldValidation from "../mixins/FieldValidation"
|
@@ -189,16 +231,17 @@ export default {
|
|
189
231
|
return {
|
190
232
|
//validator: new ContactFormValidator(name => this.label(name)),
|
191
233
|
formData: {
|
192
|
-
salutation:
|
193
|
-
|
194
|
-
|
234
|
+
salutation: this.configuration.salutation.default,
|
235
|
+
lastName: {value: ''},
|
236
|
+
firstName: {value: ''},
|
195
237
|
email: {value: ''},
|
196
238
|
phone: {value: ''},
|
197
|
-
|
239
|
+
streetNo: {value: ''},
|
198
240
|
zip: {value: ''},
|
199
241
|
city: {value: ''},
|
200
|
-
|
201
|
-
|
242
|
+
additionalAddressInfo: {value: ''},
|
243
|
+
additionalText: {value: ''},
|
244
|
+
acceptPrivacy: {value: false}
|
202
245
|
},
|
203
246
|
nativeButton: {
|
204
247
|
icon: {
|
@@ -211,8 +254,58 @@ export default {
|
|
211
254
|
}
|
212
255
|
},
|
213
256
|
props: {
|
214
|
-
|
215
|
-
|
257
|
+
configuration: {
|
258
|
+
type: Object,
|
259
|
+
default() {
|
260
|
+
return {
|
261
|
+
salutation: {
|
262
|
+
name: "salutation",
|
263
|
+
default: "m",
|
264
|
+
replaceInputType: true
|
265
|
+
},
|
266
|
+
lastName: {
|
267
|
+
name: "surname",
|
268
|
+
required: true,
|
269
|
+
type: "text"
|
270
|
+
},
|
271
|
+
firstName: {
|
272
|
+
required: false,
|
273
|
+
type: "text"
|
274
|
+
},
|
275
|
+
email: {
|
276
|
+
required: true,
|
277
|
+
type: "email"
|
278
|
+
},
|
279
|
+
phone: {
|
280
|
+
required: false,
|
281
|
+
type: "phone"
|
282
|
+
},
|
283
|
+
streetNo: {
|
284
|
+
required: false,
|
285
|
+
type: "text"
|
286
|
+
},
|
287
|
+
zip: {
|
288
|
+
required: false,
|
289
|
+
type: "number"
|
290
|
+
},
|
291
|
+
city: {
|
292
|
+
required: false,
|
293
|
+
type: "text"
|
294
|
+
},
|
295
|
+
additionalAddressInfo: {
|
296
|
+
required: false,
|
297
|
+
type: "text"
|
298
|
+
},
|
299
|
+
additionalText: {
|
300
|
+
required: false,
|
301
|
+
type: "textarea"
|
302
|
+
},
|
303
|
+
acceptPrivacy: {
|
304
|
+
required: true,
|
305
|
+
replaceInputType: true
|
306
|
+
}
|
307
|
+
}
|
308
|
+
}
|
216
309
|
},
|
217
310
|
receiverEmailAddress: {
|
218
311
|
type: String,
|
@@ -234,18 +327,13 @@ export default {
|
|
234
327
|
}
|
235
328
|
}
|
236
329
|
},
|
237
|
-
/*
|
238
330
|
mounted() {
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
event.preventDefault()
|
243
|
-
openFancyBox({url: event.target.getAttribute('href')})
|
244
|
-
})
|
245
|
-
})
|
331
|
+
this.$refs.dataPrivacy?.querySelector('.fancybox')?.addEventListener('click', event => {
|
332
|
+
event.preventDefault()
|
333
|
+
openFancyBox({url: event.target.getAttribute('href')})
|
246
334
|
})
|
247
335
|
},
|
248
|
-
|
336
|
+
|
249
337
|
methods: {
|
250
338
|
onSubmit(event) {
|
251
339
|
this.onValidate();
|
@@ -256,20 +344,6 @@ export default {
|
|
256
344
|
return;
|
257
345
|
}
|
258
346
|
|
259
|
-
alert(`
|
260
|
-
Form submit:
|
261
|
-
salutation: ${this.formData.salutation}
|
262
|
-
last_name: ${this.formData.last_name.value}
|
263
|
-
first_name: ${this.formData.first_name.value}
|
264
|
-
email: ${this.formData.email.value}
|
265
|
-
phone: ${this.formData.phone.value}
|
266
|
-
street_no: ${this.formData.street_no.value}
|
267
|
-
zip: ${this.formData.zip.value}
|
268
|
-
city: ${this.formData.city.value}
|
269
|
-
additional_address_info: ${this.formData.additional_address_info.value}
|
270
|
-
privacy: ${this.formData.privacy.value}
|
271
|
-
`);
|
272
|
-
|
273
347
|
event.preventDefault();
|
274
348
|
},
|
275
349
|
onValidate() {
|
@@ -281,54 +355,11 @@ export default {
|
|
281
355
|
openFancyBox({url: link})
|
282
356
|
}
|
283
357
|
},
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
// ...(this.editModeContextData || {})
|
288
|
-
// },
|
289
|
-
// update(props) {
|
290
|
-
// props.cmdHeadline = {
|
291
|
-
// ...(props.cmdHeadline || {}),
|
292
|
-
// }
|
293
|
-
// props.cmdHeadline.headlineText = data[0].headlineText
|
294
|
-
// }
|
295
|
-
// }
|
296
|
-
// },
|
297
|
-
// onDelete() {
|
298
|
-
// console.log("ContactForm.onDelete()")
|
299
|
-
// return {
|
300
|
-
// editModeContextData: {
|
301
|
-
// ...(this.editModeContextData || {})
|
302
|
-
// }
|
303
|
-
// }
|
304
|
-
// }
|
305
|
-
// openDataPrivacy(url) {
|
306
|
-
// openFancyBox({url})
|
307
|
-
// }
|
358
|
+
openDataPrivacy(url) {
|
359
|
+
openFancyBox({url})
|
360
|
+
}
|
308
361
|
}
|
309
362
|
}
|
310
|
-
|
311
|
-
// @Watch('$store.state.currentLanguage')
|
312
|
-
// private languageChanged(): void {
|
313
|
-
// this.formData = Object.assign({}, {
|
314
|
-
// salutation: 'M',
|
315
|
-
// surname: {value: ''},
|
316
|
-
// email: {value: ''},
|
317
|
-
// message: {value: ''},
|
318
|
-
// privacy: {value: false}
|
319
|
-
// } as ContactFormData);
|
320
|
-
// this.labelsChanged()
|
321
|
-
// }
|
322
|
-
//
|
323
|
-
// @Watch('$store.state.labels')
|
324
|
-
// private labelsChanged(): void {
|
325
|
-
// this.$nextTick(() => {
|
326
|
-
// this.$el.querySelectorAll('.fancybox').forEach(link => link.addEventListener('click', e => {
|
327
|
-
// e.preventDefault()
|
328
|
-
// this.openDataPrivacy(link.getAttribute('href'))
|
329
|
-
// }))
|
330
|
-
// })
|
331
|
-
// }
|
332
363
|
</script>
|
333
364
|
|
334
365
|
<style>
|
@@ -0,0 +1,59 @@
|
|
1
|
+
<template>
|
2
|
+
<!-- begin CmdBasicForm -->
|
3
|
+
<BasicForm v-if="contactFormOnly" v-bind="basicForm" />
|
4
|
+
<!-- end CmdBasicForm -->
|
5
|
+
|
6
|
+
<div v-else class="flex-container">
|
7
|
+
<!-- begin CmdBasicForm -->
|
8
|
+
<BasicForm v-bind="basicForm" />
|
9
|
+
<!-- end CmdBasicForm -->
|
10
|
+
|
11
|
+
<!-- begin additional-columns -->
|
12
|
+
<div class="flex-container vertical">
|
13
|
+
<!-- begin CmdAddressData -->
|
14
|
+
<CmdAddressData v-if="cmdAddressData" v-bind="cmdAddressData" />
|
15
|
+
<!-- end CmdAddressData -->
|
16
|
+
|
17
|
+
<!-- begin CmdGoogleMaps -->
|
18
|
+
<CmdGoogleMaps v-if="cmdGoogleMaps" v-bind="cmdGoogleMaps" />
|
19
|
+
<!-- end CmdGoogleMaps -->
|
20
|
+
|
21
|
+
<!-- begin slot-content -->
|
22
|
+
<slot name="additional-info"></slot>
|
23
|
+
<!-- end slot-content -->
|
24
|
+
</div>
|
25
|
+
<!-- end additional-columns -->
|
26
|
+
</div>
|
27
|
+
</template>
|
28
|
+
|
29
|
+
<script>
|
30
|
+
export default {
|
31
|
+
name: "ContactInformation",
|
32
|
+
props: {
|
33
|
+
basicForm: {
|
34
|
+
type: Object,
|
35
|
+
default: null
|
36
|
+
},
|
37
|
+
cmdAddressData: {
|
38
|
+
type: Object,
|
39
|
+
default: null
|
40
|
+
},
|
41
|
+
cmdGoogleMaps: {
|
42
|
+
type: Object,
|
43
|
+
default: null
|
44
|
+
}
|
45
|
+
},
|
46
|
+
computed: {
|
47
|
+
contactFormOnly() {
|
48
|
+
return !(this.cmdAddressData || this.cmdGoogleMaps || !this.isSlotEmpty)
|
49
|
+
},
|
50
|
+
isSlotEmpty() {
|
51
|
+
return !this.$scopedSlots['custom-info']
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
55
|
+
</script>
|
56
|
+
|
57
|
+
<style>
|
58
|
+
|
59
|
+
</style>
|
@@ -0,0 +1,48 @@
|
|
1
|
+
<template>
|
2
|
+
<div class="cmd-page-multiple-box-wrapper flex-container vertical">
|
3
|
+
<template v-for="(segment, index) in segments" :key="index">
|
4
|
+
<!-- begin CmdBoxWrapper -->
|
5
|
+
<CmdBoxWrapper
|
6
|
+
:boxesPerRow="segment.boxesPerRow"
|
7
|
+
:useRowViewAsDefault="segment.useRowViewAsDefault"
|
8
|
+
:useGap="segment.useGap"
|
9
|
+
:cmdHeadline="segment.cmdHeadline"
|
10
|
+
>
|
11
|
+
<template v-slot="slotProps">
|
12
|
+
<!-- begin CmdBox -->
|
13
|
+
<CmdBox
|
14
|
+
:use-slots="['box-body']"
|
15
|
+
v-for="(box, index) in segment.boxes"
|
16
|
+
:key="index"
|
17
|
+
v-bind="box"
|
18
|
+
:rowView="slotProps.rowView"
|
19
|
+
>
|
20
|
+
box {{box}}
|
21
|
+
</CmdBox>
|
22
|
+
<!-- end CmdBox -->
|
23
|
+
</template>
|
24
|
+
</CmdBoxWrapper>
|
25
|
+
<!-- end CmdBoxWrapper -->
|
26
|
+
|
27
|
+
<!-- begin slot-content -->
|
28
|
+
<slot name="multiple-box-wrapper-slot-${index}"></slot>
|
29
|
+
<!-- end slot-content -->
|
30
|
+
</template>
|
31
|
+
</div>
|
32
|
+
</template>
|
33
|
+
|
34
|
+
<script>
|
35
|
+
export default {
|
36
|
+
name: "MultipleBoxWrapper",
|
37
|
+
props: {
|
38
|
+
segments: {
|
39
|
+
type: Array,
|
40
|
+
default: null
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
44
|
+
</script>
|
45
|
+
|
46
|
+
<style>
|
47
|
+
|
48
|
+
</style>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<template>
|
2
|
-
<div class="cmd-page-
|
2
|
+
<div class="cmd-page-multiple-lists-of-links flex-container vertical">
|
3
3
|
<template v-for="(segment, index) in segments" :key="index">
|
4
4
|
<!-- begin CmdListOfLinks -->
|
5
5
|
<CmdListOfLinks
|
@@ -11,7 +11,7 @@
|
|
11
11
|
<!-- end CmdListOfLinks -->
|
12
12
|
|
13
13
|
<!-- begin slot-content -->
|
14
|
-
<slot name="
|
14
|
+
<slot name="multiple-lists-of-links-slot-${index}"></slot>
|
15
15
|
<!-- end slot-content -->
|
16
16
|
</template>
|
17
17
|
</div>
|
@@ -19,7 +19,7 @@
|
|
19
19
|
|
20
20
|
<script>
|
21
21
|
export default {
|
22
|
-
name: "
|
22
|
+
name: "MultipleListsOfLinks",
|
23
23
|
props: {
|
24
24
|
segments: {
|
25
25
|
type: Array,
|
@@ -8,36 +8,63 @@
|
|
8
8
|
</CmdWidthLimitationWrapper>
|
9
9
|
<!-- end basic-form ------------------------------------------------------------------------------------------------------------------------------------------------------->
|
10
10
|
|
11
|
-
<!-- begin
|
11
|
+
<!-- begin basic-form ------------------------------------------------------------------------------------------------------------------------------------------------------->
|
12
|
+
<CmdWidthLimitationWrapper>
|
13
|
+
<h2 class="headline-demopage" id="section-contact-information">
|
14
|
+
<span>Contact Information</span>
|
15
|
+
</h2>
|
16
|
+
<ContactInformation
|
17
|
+
:cmdBasicForm="{}"
|
18
|
+
:cmdAddressData="{}"
|
19
|
+
:cmdGoogleMaps="{}">
|
20
|
+
<template v-slot:additional-info>
|
21
|
+
Additional information given by slot
|
22
|
+
</template>
|
23
|
+
</ContactInformation>
|
24
|
+
</CmdWidthLimitationWrapper>
|
25
|
+
<!-- end basic-form ------------------------------------------------------------------------------------------------------------------------------------------------------->
|
26
|
+
|
27
|
+
<!-- begin multiple-lists-of-links ------------------------------------------------------------------------------------------------------------------------------------------------------->
|
12
28
|
<CmdWidthLimitationWrapper>
|
13
|
-
<h2 class="headline-demopage" id="section-
|
14
|
-
<span>
|
29
|
+
<h2 class="headline-demopage" id="section-multiple-lists-of-links-downloads">
|
30
|
+
<span>Multiple Lists of links</span>
|
15
31
|
</h2>
|
16
32
|
<h3>Downloads</h3>
|
17
|
-
<
|
33
|
+
<MultipleListsOfLinks :segments="listOfDownloadsData" />
|
18
34
|
<hr />
|
19
35
|
<h3>SiteMap</h3>
|
20
|
-
<
|
36
|
+
<MultipleListsOfLinks :segments="listOfSiteLinksData" />
|
21
37
|
</CmdWidthLimitationWrapper>
|
22
|
-
<!-- end
|
38
|
+
<!-- end multiple-lists-of-links ------------------------------------------------------------------------------------------------------------------------------------------------------->
|
39
|
+
|
40
|
+
<!-- begin multiple-box-wrapper ------------------------------------------------------------------------------------------------------------------------------------------------------->
|
41
|
+
<CmdWidthLimitationWrapper>
|
42
|
+
<h2 class="headline-demopage" id="section-multiple-box-wrapper">
|
43
|
+
<span>Multiple Box Wrapper</span>
|
44
|
+
</h2>
|
45
|
+
<h3>FAQs</h3>
|
46
|
+
<MultipleBoxWrapper :segments="faqsData" />
|
47
|
+
<hr />
|
48
|
+
<h3>Team Overview</h3>
|
49
|
+
<MultipleBoxWrapper :segments="boxesTeamOverviewData" />
|
50
|
+
</CmdWidthLimitationWrapper>
|
51
|
+
<!-- end multiple-box-wrapper ------------------------------------------------------------------------------------------------------------------------------------------------------->
|
23
52
|
</template>
|
24
53
|
|
25
54
|
<script>
|
26
|
-
// import page-templates
|
27
|
-
import BasicForm from "@/pages/BasicForm.vue"
|
28
|
-
import SegmentedListsOfLinks from "@/pages/SegmentedListsOfLinks.vue"
|
29
|
-
|
30
55
|
// import example data
|
56
|
+
import addressData from "@/assets/data/address-data.json"
|
57
|
+
import faqsData from "@/assets/data/pages/boxes-faqs.json"
|
58
|
+
import boxesTeamOverviewData from "@/assets/data/pages/boxes-team-overview.json"
|
31
59
|
import listOfDownloadsData from "@/assets/data/pages/list-of-downloads.json"
|
32
60
|
import listOfSiteLinksData from "@/assets/data/pages/list-of-site-links.json"
|
33
61
|
export default {
|
34
62
|
name: "PageOverview",
|
35
|
-
components: {
|
36
|
-
BasicForm,
|
37
|
-
SegmentedListsOfLinks
|
38
|
-
},
|
39
63
|
data() {
|
40
64
|
return {
|
65
|
+
addressData,
|
66
|
+
faqsData,
|
67
|
+
boxesTeamOverviewData,
|
41
68
|
listOfDownloadsData,
|
42
69
|
listOfSiteLinksData,
|
43
70
|
basicForm: {
|