comand-component-library 4.0.9 → 4.0.10
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/comand-component-library.js +3479 -3009
- 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/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/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: {
|