comand-component-library 4.0.7 → 4.0.9

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 (34) hide show
  1. package/dist/comand-component-library.js +2682 -2376
  2. package/dist/comand-component-library.umd.cjs +3 -3
  3. package/dist/style.css +1 -1
  4. package/package.json +2 -2
  5. package/src/ComponentLibrary.vue +95 -17
  6. package/src/assets/data/list-of-links.json +13 -1
  7. package/src/assets/data/pages/list-of-downloads.json +56 -0
  8. package/src/assets/data/pages/list-of-site-links.json +78 -0
  9. package/src/assets/data/social-networks-page-by-json.json +2 -2
  10. package/src/assets/styles/component-library-global-styles.scss +19 -7
  11. package/src/componentSettingsDataAndControls.vue +27 -2
  12. package/src/components/CmdFakeSelect.vue +10 -21
  13. package/src/components/CmdFormElement.vue +5 -2
  14. package/src/components/CmdInputGroup.vue +1 -1
  15. package/src/components/CmdListOfLinks.vue +72 -12
  16. package/src/components/CmdListOfLinksItem.vue +14 -3
  17. package/src/components/CmdPageFooter.vue +83 -0
  18. package/src/components/CmdPagination.vue +4 -4
  19. package/src/components/CmdSidebar.vue +2 -0
  20. package/src/components/CmdSocialNetworks.vue +39 -27
  21. package/src/components/CmdSwitchLanguage.vue +3 -1
  22. package/src/components/CmdTextImageBlock.vue +44 -15
  23. package/src/components/CmdWidthLimitationWrapper.vue +27 -6
  24. package/src/components/EditComponentWrapper.vue +4 -0
  25. package/src/index.js +3 -1
  26. package/src/main.js +1 -1
  27. package/src/mixins/CmdFakeSelect/DefaultMessageProperties.js +0 -1
  28. package/src/mixins/pages/BasicForm/DefaultMessageProperties.js +28 -0
  29. package/src/pages/BasicForm.vue +341 -0
  30. package/src/pages/PageOverview.vue +53 -0
  31. package/src/pages/PageWrapper.vue +260 -0
  32. package/src/pages/SegmentedListsOfLinks.vue +34 -0
  33. /package/src/assets/styles/{transitions.scss → transitions.css} +0 -0
  34. /package/src/mixins/{CmdPager → CmdPagination}/DefaultMessageProperties.js +0 -0
@@ -21,17 +21,22 @@
21
21
 
22
22
  <!-- begin list of networks -->
23
23
  <ul v-if="validNetworks.length > 0" :class="['button-wrapper', {'no-gap': !useGap}]">
24
- <!-- begin cmd-social-networks (default view) -->
25
- <CmdSocialNetworksItem
26
- v-if="!editModeContext"
27
- v-for="(entry, index) in validNetworks"
28
- :key="index"
29
- :network="entry"
30
- :userMustAcceptDataPrivacy="userMustAcceptDataPrivacy"
31
- :buttonTextAlign="buttonTextAlign"
32
- :dataPrivacyAccepted="dataPrivacyAccepted"
33
- />
34
- <!-- end cmd-social-networks (default view) -->
24
+ <template v-if="!editModeContext">
25
+ <!-- begin cmd-social-networks (default view) -->
26
+ <CmdSocialNetworksItem
27
+ v-for="(entry, index) in validNetworks"
28
+ :key="index"
29
+ :network="entry"
30
+ :userMustAcceptDataPrivacy="userMustAcceptDataPrivacy"
31
+ :buttonTextAlign="buttonTextAlign"
32
+ :dataPrivacyAccepted="dataPrivacyAccepted"
33
+ />
34
+ <!-- end cmd-social-networks (default view) -->
35
+
36
+ <!-- begin slot-content -->
37
+ <slot></slot>
38
+ <!-- end slot-content -->
39
+ </template>
35
40
 
36
41
  <!-- begin edit-mode -->
37
42
  <EditComponentWrapper
@@ -62,9 +67,12 @@
62
67
  </template>
63
68
 
64
69
  <script>
65
- import {buildComponentPath} from "../utils/editmode.js"
70
+ // import mixins (EditMode only)
66
71
  import EditMode from "../mixins/EditMode.vue"
67
72
 
73
+ // import utils (EditMode only)
74
+ import {buildComponentPath} from "../utils/editmode.js"
75
+
68
76
  export default {
69
77
  name: "CmdSocialNetworks",
70
78
  mixins: [EditMode],
@@ -110,7 +118,7 @@ export default {
110
118
  default: false
111
119
  },
112
120
  /**
113
- * list of networks (i.e. facebook, twitter etc.)
121
+ * list of networks (i.e. facebook, linkedin etc.)
114
122
  */
115
123
  networks: {
116
124
  type: Array,
@@ -162,7 +170,7 @@ export default {
162
170
  }
163
171
  },
164
172
  /**
165
- * properties for cmdFormElement
173
+ * properties for CmdFormElement-component
166
174
  *
167
175
  * userMustAcceptDataPrivacy-property must be activated
168
176
  */
@@ -217,7 +225,7 @@ export default {
217
225
  this.itemProvider)
218
226
  },
219
227
  itemProvider() {
220
- return {
228
+ return {
221
229
  "id": "social-network-facebook",
222
230
  "path": "https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fdevelopment.comand-cms.com%2Fmodule%2Fteam.html",
223
231
  "tooltip": "Share this page on facebook",
@@ -369,9 +377,9 @@ export default {
369
377
  li {
370
378
  flex: 1;
371
379
 
372
- .button {
373
- display: flex;
374
- }
380
+ .button {
381
+ display: flex;
382
+ }
375
383
  }
376
384
  }
377
385
  }
@@ -401,8 +409,8 @@ export default {
401
409
  --social-network-color: #3c5a99;
402
410
  }
403
411
 
404
- #social-network-twitter {
405
- --social-network-color: #6bacde;
412
+ #social-network-x {
413
+ --social-network-color: #14171a;
406
414
  }
407
415
 
408
416
  #social-network-xing {
@@ -419,14 +427,18 @@ export default {
419
427
  @import "../assets/styles/variables";
420
428
 
421
429
  @container (max-width: #{$small-max-width}) {
422
- .button-wrapper {
423
- .button {
424
- flex: none;
425
- width: auto !important;
430
+ .cmd-social-networks {
431
+ container-type: normal; /* do not set to 'inline-size' to avoid to be stretched vertically on small devices */
426
432
 
427
- [class*="icon-"] {
428
- & + span {
429
- display: none;
433
+ .button-wrapper {
434
+ .button {
435
+ flex: none;
436
+ width: auto !important;
437
+
438
+ [class*="icon-"] {
439
+ & + span {
440
+ display: none;
441
+ }
430
442
  }
431
443
  }
432
444
  }
@@ -95,8 +95,10 @@ export default {
95
95
  a:not([class*="active"]) {
96
96
  filter: contrast(.5);
97
97
 
98
- &:hover, &:focus, &:active {
98
+ &:hover, &:focus-visible, &:active, &.active {
99
99
  filter: none;
100
+ padding: 0; /* overwrite default settings from frontend-framework for .active */
101
+ background: none; /* overwrite default settings from frontend-framework for .active */
100
102
  }
101
103
  }
102
104
  }
@@ -1,8 +1,8 @@
1
1
  <template>
2
- <div class="cmd-text-image-block flex-container vertical">
2
+ <div :class="['cmd-text-image-block flex-container', orientation]">
3
3
  <!-- begin cmdHeadline -->
4
4
  <CmdHeadline
5
- v-if="(cmdHeadline?.headlineText || editModeContext) && headlinePosition === 'aboveImage'"
5
+ v-if="(cmdHeadline?.headlineText || editModeContext) && (headlinePosition === 'aboveImage' && orientation === 'vertical')"
6
6
  v-bind="cmdHeadline"
7
7
  />
8
8
  <!-- end cmdHeadline -->
@@ -16,14 +16,19 @@
16
16
  />
17
17
  <!-- end cmdImage -->
18
18
 
19
- <!-- begin cmdHeadline -->
20
- <CmdHeadline
21
- v-if="(cmdHeadline?.headlineText || editModeContext) && headlinePosition === 'belowImage'"
22
- v-bind="cmdHeadline"
23
- />
24
- <!-- end cmdHeadline -->
19
+ <div class="flex-container vertical">
20
+ <!-- begin cmdHeadline -->
21
+ <CmdHeadline
22
+ v-if="(cmdHeadline?.headlineText || editModeContext) && (headlinePosition === 'belowImage' || orientation === 'horizontal')"
23
+ v-bind="cmdHeadline"
24
+ />
25
+ <!-- end cmdHeadline -->
26
+
27
+ <!-- begin continuous text -->
28
+ <div v-if="htmlContent" v-html="htmlContent" :class="textAlign"></div>
29
+ <!-- end continuous text -->
30
+ </div>
25
31
 
26
- <!-- begin continuous text -->
27
32
  <!-- begin edit-mode -->
28
33
  <EditComponentWrapper
29
34
  v-if="editModeContext"
@@ -47,14 +52,14 @@
47
52
  </template>
48
53
  </EditComponentWrapper>
49
54
  <!-- end edit-mode -->
50
-
51
- <div v-else-if="htmlContent" v-html="htmlContent" :class="textAlign"></div>
52
- <!-- end continuous text -->
53
55
  </div>
54
56
  </template>
55
57
 
56
58
  <script>
59
+ // import mixins (editMode only)
57
60
  import EditMode from "../mixins/EditMode.vue"
61
+
62
+ // import utils (editMode only)
58
63
  import {updateHandlerProvider} from "../utils/editmode.js"
59
64
 
60
65
  export default {
@@ -66,8 +71,18 @@ export default {
66
71
  }
67
72
  },
68
73
  props: {
69
- editModeContextData: {
70
- type: Object
74
+ /**
75
+ * orientation for entire component
76
+ *
77
+ * @allowedValues: "vertical", "horizontal"
78
+ */
79
+ orientation: {
80
+ type: String,
81
+ default: "vertical",
82
+ validator(value) {
83
+ return value === "vertical" ||
84
+ value === "horizontal"
85
+ }
71
86
  },
72
87
  /**
73
88
  * content for continuous text (can contain html-tags)
@@ -104,7 +119,7 @@ export default {
104
119
  }
105
120
  },
106
121
  /**
107
- * properties for CmdHeadline-component
122
+ * property for CmdHeadline-component
108
123
  */
109
124
  cmdHeadline: {
110
125
  type: Object,
@@ -116,6 +131,12 @@ export default {
116
131
  cmdImage: {
117
132
  type: Object,
118
133
  required: false
134
+ },
135
+ /**
136
+ * editMode only
137
+ */
138
+ editModeContextData: {
139
+ type: Object
119
140
  }
120
141
  },
121
142
  computed: {
@@ -163,7 +184,15 @@ export default {
163
184
  </script>
164
185
 
165
186
  <style>
187
+ /* begin cmd-text-image-block ---------------------------------------------------------------------------------------- */
188
+ .cmd-text-image-block {
189
+ > .flex-container {
190
+ gap: calc(var(--default-gap) / 2);
191
+ }
192
+ }
193
+
166
194
  .edit-mode .cmd-text-image-block textarea {
167
195
  width: 100%;
168
196
  }
197
+ /* end cmd-text-image-block ---------------------------------------------------------------------------------------- */
169
198
  </style>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div class="cmd-width-limitation-wrapper" :class="{'sticky': sticky}">
3
3
  <!-- begin slot-content in section -->
4
- <section v-if="innerWrapper" :class="setInnerClass" :id="anchorId">
4
+ <section v-if="useInnerSection" :class="setInnerClass" :id="anchorId">
5
5
  <!-- begin cmd-headline -->
6
6
  <CmdHeadline
7
7
  v-if="cmdHeadline"
@@ -11,9 +11,19 @@
11
11
  />
12
12
  <!-- end cmd-headline -->
13
13
 
14
- <!-- begin slot-content -->
15
- <slot></slot>
16
- <!-- end slot-content -->
14
+ <!-- begin slot-content (one column only) -->
15
+ <slot v-if="numberOfColumns === 1" ></slot>
16
+ <!-- end slot-content (one column only) -->
17
+
18
+ <!-- begin grid-/flex-container to wrap multiple columns/items -->
19
+ <div v-else :class="useGrid ? 'grid-container-create-columns' : 'flex-container'">
20
+ <div v-for="index in numberOfColumns" :key="`i${index}`" :class="useGrid ? 'grid-item' : 'flex-item'">
21
+ <!-- begin slot-content (multiple columns only) -->
22
+ <slot></slot>
23
+ <!-- end slot-content (multiple columns only) -->
24
+ </div>
25
+ </div>
26
+ <!-- end grid-/flex-container to wrap multiple columns/items -->
17
27
  </section>
18
28
  <!-- end slot-content in section -->
19
29
 
@@ -32,6 +42,17 @@
32
42
  export default {
33
43
  name: "CmdWidthLimitationWrapper",
34
44
  props: {
45
+ numberOfColumns: {
46
+ type: Number,
47
+ default: 1,
48
+ validator(value) {
49
+ return value >= 0
50
+ }
51
+ },
52
+ useGrid: {
53
+ type: Boolean,
54
+ default: false
55
+ },
35
56
  /**
36
57
  * set a html-tag as inner tag
37
58
  *
@@ -41,7 +62,7 @@ export default {
41
62
  type: String,
42
63
  default: "section",
43
64
  validator(value) {
44
- return value;
65
+ return value
45
66
  }
46
67
  },
47
68
  /**
@@ -50,7 +71,7 @@ export default {
50
71
  * (if deactivated, content will be directly placed inside cmd-width-limitation-wrapper)
51
72
  *
52
73
  */
53
- innerWrapper: {
74
+ useInnerSection: {
54
75
  type: Boolean,
55
76
  default: true
56
77
  },
@@ -530,6 +530,10 @@ function buildComponentPath(component) {
530
530
  }
531
531
  }
532
532
  }
533
+
534
+ &.active {
535
+ background: hsla(0, 0%, 100%, .2);
536
+ }
533
537
  }
534
538
 
535
539
  &.active {
package/src/index.js CHANGED
@@ -25,8 +25,10 @@ export { default as CmdListOfLinks } from '@/components/CmdListOfLinks.vue'
25
25
  export { default as CmdLoginForm } from '@/components/CmdLoginForm.vue'
26
26
  export { default as CmdMainNavigation } from '@/components/CmdMainNavigation.vue'
27
27
  export { default as CmdMultistepFormProgressBar } from '@/components/CmdMultistepFormProgressBar.vue'
28
+ export { default as CmdNewsletterSubscription } from '@/components/CmdNewsletterSubscription.vue'
28
29
  export { default as CmdOpeningHours } from '@/components/CmdOpeningHours.vue'
29
- export { default as CmdPager } from '@/components/CmdPagination.vue'
30
+ export { default as CmdPagination } from '@/components/CmdPagination.vue'
31
+ export { default as CmdPageFooter } from '@/components/CmdPageFooter.vue'
30
32
  export { default as CmdProgressBar } from '@/components/CmdProgressBar.vue'
31
33
  export { default as CmdSidebar } from '@/components/CmdSidebar.vue'
32
34
  export { default as CmdSiteFooter } from '@/components/CmdSiteFooter.vue'
package/src/main.js CHANGED
@@ -27,7 +27,7 @@ import '@/assets/styles/editmode-iconfont.css'
27
27
  import '@/assets/styles/component-library-global-styles.scss'
28
28
 
29
29
  /* import css for global transitions */
30
- import '@/assets/styles/transitions.scss'
30
+ import '@/assets/styles/transitions.css'
31
31
 
32
32
  /* import css-example for your custom styles */
33
33
  import '@/assets/styles/template.css'
@@ -7,7 +7,6 @@ export default {
7
7
  "cmdfakeselect.linktext.select_all_options": "Select all options",
8
8
  "cmdfakeselect.headline.an_option_is_selected": "An option is selected",
9
9
  "cmdfakeselect.option.options_selected": "{0} options selected"
10
-
11
10
  }
12
11
  }
13
12
  }
@@ -0,0 +1,28 @@
1
+ export default {
2
+ data() {
3
+ return {
4
+ defaultMessageProperties: {
5
+ "basic_form.legend": "Basic Form",
6
+ "basic_form.labeltext.salutation_male": "Mr.",
7
+ "basic_form.labeltext.salutation_female": "Mrs.",
8
+ "basic_form.labeltext.last_name": "Last name:",
9
+ "basic_form.placeholder.last_name": "Last name:",
10
+ "basic_form.labeltext.first_name": "First name:",
11
+ "basic_form.placeholder.first_name": "First name:",
12
+ "basic_form.labeltext.email": "Email:",
13
+ "basic_form.placeholder.email": "Email:",
14
+ "basic_form.labeltext.phone": "Phone:",
15
+ "basic_form.placeholder.phone": "Phone:",
16
+ "basic_form.labeltext.street_no": "Street/No.:",
17
+ "basic_form.placeholder.street_no": "Street/No.:",
18
+ "basic_form.labeltext.zip": "Zip:",
19
+ "basic_form.placeholder.zip": "Zip:",
20
+ "basic_form.labeltext.city": "City:",
21
+ "basic_form.placeholder.city": "City:",
22
+ "basic_form.labeltext.additional_address_info": "Additional address information",
23
+ "basic_form.placeholder.additional_address_info": "Additional address information",
24
+ "basic_form.labeltext.data_privacy": "I accept handling and saving of my personal data a mentioned in the <a href='/content/data-privacy-en.html' class='fancybox'>private policy</a>."
25
+ }
26
+ }
27
+ }
28
+ }