comand-component-library 4.0.7 → 4.0.9

Sign up to get free protection for your applications and to get access to all the features.
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
+ }