comand-component-library 4.2.10 → 4.2.12

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 (31) hide show
  1. package/dist/comand-component-library.js +8106 -8023
  2. package/dist/style.css +1 -1
  3. package/package.json +3 -2
  4. package/src/ComponentLibrary.vue +24 -5
  5. package/src/assets/data/switch-language.json +28 -28
  6. package/src/assets/lists-of-data/.htaccess +1 -1
  7. package/src/assets/lists-of-data/casual-01.json +1 -1
  8. package/src/assets/lists-of-data/founder-01.json +111 -0
  9. package/src/assets/lists-of-data/investor-01.json +114 -0
  10. package/src/components/CmdFakeSelect.vue +5 -5
  11. package/src/components/CmdForm.vue +1 -1
  12. package/src/components/CmdImageZoom.vue +33 -7
  13. package/src/components/CmdInputGroup.vue +3 -4
  14. package/src/components/CmdLink.vue +3 -2
  15. package/src/components/CmdListOfImages.vue +5 -5
  16. package/src/components/CmdListOfRequirements.vue +6 -6
  17. package/src/components/CmdLoginForm.vue +92 -63
  18. package/src/components/CmdMailTool.vue +1 -7
  19. package/src/components/CmdMailToolEntry.vue +51 -6
  20. package/src/components/CmdMailToolFilter.vue +35 -29
  21. package/src/components/CmdMultistepFormProgressBar.vue +68 -96
  22. package/src/components/CmdNewsletterSubscription.vue +1 -0
  23. package/src/components/CmdSiteSearch.vue +6 -1
  24. package/src/components/CmdSwitchLanguage.vue +0 -3
  25. package/src/components/CmdTabs.vue +6 -2
  26. package/src/components/CmdTooltip.vue +16 -2
  27. package/src/components/CmdUploadForm.vue +3 -1
  28. package/src/main.js +5 -1
  29. package/src/mixins/CmdMailToolEntry/DefaultMessageProperties.js +2 -1
  30. package/src/mixins/CmdSiteSearch/DefaultMessageProperties.js +1 -1
  31. package/src/mixins/FieldValidation.js +1 -1
@@ -4,7 +4,7 @@
4
4
  "type": "casual",
5
5
  "imgSrc": "https://comand-ui.com/samples/images/user-images/fake-user-2.jpg",
6
6
  "bgImgSrc": "/images/background-images/background-matrix.jpg",
7
- "lastName": "Miller",
7
+ "lastName": "Casual",
8
8
  "middleName": "",
9
9
  "firstName": "Jackson",
10
10
  "birthdate": "1975-07-11",
@@ -0,0 +1,111 @@
1
+ {
2
+ "person": {
3
+ "id": 1,
4
+ "type": "founder",
5
+ "imgSrc": "https://comand-ui.com/samples/images/user-images/fake-user-6.jpg",
6
+ "bgImgSrc": "/images/background-images/background-abstract-1.jpg",
7
+ "lastName": "Founder",
8
+ "middleName": "",
9
+ "firstName": "Michael",
10
+ "birthdate": "1985-08-12",
11
+ "gender": "m",
12
+ "profession": "Marketing",
13
+ "countryIso": "de",
14
+ "companyName": "The Next Unicorn Inc.",
15
+ "about": "Making the world better step by step!",
16
+ "group": "Friends"
17
+ },
18
+ "account": {
19
+ "online": true,
20
+ "type": "premium",
21
+ "created": "2023-03-17"
22
+ },
23
+ "tags": [
24
+ {
25
+ "name": "Marketing"
26
+ },
27
+ {
28
+ "name": "Sales"
29
+ },
30
+ {
31
+ "name": "Procurement"
32
+ }
33
+ ],
34
+ "contact": [
35
+ {
36
+ "name": "companyName",
37
+ "iconClass": "icon-company",
38
+ "data": "Your company name",
39
+ "labelText": "companyName"
40
+ },
41
+ {
42
+ "name": "address",
43
+ "iconClass": "icon-location-set",
44
+ "labelText": "Address",
45
+ "streetNo": "Your Street/No",
46
+ "zip": "Your zip",
47
+ "city": "Grevenbroich",
48
+ "miscInfo": "Misc. info",
49
+ "country": "de",
50
+ "tooltip": "Open address on GoogleMaps™ (in new tab)"
51
+ },
52
+ {
53
+ "name": "phone",
54
+ "iconClass": "icon-phone",
55
+ "data": "Your phone number",
56
+ "labelText": "Telephone",
57
+ "tooltip": "Call number",
58
+ "href": "00492181818123"
59
+ },
60
+ {
61
+ "name": "phone",
62
+ "iconClass": "icon-device-smartphone",
63
+ "data": "Your mobile phone number",
64
+ "labelText": "Mobile phone",
65
+ "tooltip": "Call number",
66
+ "href": "00491721055725"
67
+ },
68
+ {
69
+ "name": "email",
70
+ "iconClass": "icon-mail",
71
+ "data": "Your email address",
72
+ "labelText": "Email",
73
+ "tooltip": "Send mail",
74
+ "href": "biock@biock.com"
75
+ },
76
+ {
77
+ "name": "url",
78
+ "iconClass": "icon-globe",
79
+ "data": "Your web site",
80
+ "labelText": "Web site",
81
+ "tooltip": "Open website in browser",
82
+ "href": "https://www.biock.com"
83
+ }
84
+ ],
85
+ "networks": [
86
+ {
87
+ "buttonClass": "social-network-facebook",
88
+ "iconClass": "icon-facebook",
89
+ "type": "href",
90
+ "path": "https://www.facebook.com",
91
+ "target": "_blank",
92
+ "tooltip": "Visit profile on facebook"
93
+ },
94
+ {
95
+ "buttonClass": "social-network-x",
96
+ "iconClass": "icon-x",
97
+ "type": "href",
98
+ "path": "https://www.twitter.com",
99
+ "target": "_blank",
100
+ "tooltip": "Visit profile on X"
101
+ },
102
+ {
103
+ "buttonClass": "social-network-linkedin",
104
+ "iconClass": "icon-linkedin",
105
+ "type": "href",
106
+ "path": "https://www.linkedin.com",
107
+ "target": "_blank",
108
+ "tooltip": "Visit profile on linkedin"
109
+ }
110
+ ]
111
+ }
@@ -0,0 +1,114 @@
1
+ {
2
+ "person": {
3
+ "id": 1,
4
+ "type": "investor",
5
+ "imgSrc": "/images/user-images/fake-user-1.jpg",
6
+ "bgImgSrc": "/images/background-images/golden-gate-bridge.jpg",
7
+ "imgStyle": "color",
8
+ "lastName": "Investor",
9
+ "middleName": "",
10
+ "firstName": "Julia",
11
+ "birthdate": "1980-12-22",
12
+ "gender": "f",
13
+ "countryIso": "de",
14
+ "gmt": "+1",
15
+ "profession": "Owner",
16
+ "companyName": "VC Investments",
17
+ "companyLink": "",
18
+ "about": "I am a great investor!"
19
+ },
20
+ "account": {
21
+ "online": true,
22
+ "type": "premium",
23
+ "isMyAccount": true,
24
+ "created": "2023-03-18"
25
+ },
26
+ "tags": [
27
+ {
28
+ "name": "Trainings"
29
+ },
30
+ {
31
+ "name": "Investment"
32
+ },
33
+ {
34
+ "name": "Fundings"
35
+ }
36
+ ],
37
+ "contact": [
38
+ {
39
+ "name": "companyName",
40
+ "iconClass": "icon-company",
41
+ "data": "Your company name",
42
+ "labelText": "companyName"
43
+ },
44
+ {
45
+ "name": "address",
46
+ "iconClass": "icon-location-set",
47
+ "labelText": "Address",
48
+ "streetNo": "Your Street/No",
49
+ "zip": "Your zip",
50
+ "city": "San Francisco",
51
+ "miscInfo": "Misc. info",
52
+ "country": "de",
53
+ "tooltip": "Open address on GoogleMaps™ (in new tab)"
54
+ },
55
+ {
56
+ "name": "phone",
57
+ "iconClass": "icon-phone",
58
+ "data": "Your phone number",
59
+ "labelText": "Telephone",
60
+ "tooltip": "Call number",
61
+ "href": "00492181818123"
62
+ },
63
+ {
64
+ "name": "phone",
65
+ "iconClass": "icon-device-smartphone",
66
+ "data": "Your mobile phone number",
67
+ "labelText": "Mobile phone",
68
+ "tooltip": "Call number",
69
+ "href": "00491721055725"
70
+ },
71
+ {
72
+ "name": "email",
73
+ "iconClass": "icon-mail",
74
+ "data": "Your email address",
75
+ "labelText": "Email",
76
+ "tooltip": "Send mail",
77
+ "href": "biock@biock.com"
78
+ },
79
+ {
80
+ "name": "url",
81
+ "iconClass": "icon-globe",
82
+ "data": "Your web site",
83
+ "labelText": "Web site",
84
+ "tooltip": "Open website in browser",
85
+ "href": "https://www.biock.com"
86
+ }
87
+ ],
88
+ "networks": [
89
+ {
90
+ "buttonClass": "social-network-facebook",
91
+ "iconClass": "icon-facebook",
92
+ "type": "href",
93
+ "path": "https://www.facebook.com",
94
+ "target": "_blank",
95
+ "tooltip": "Visit profile on facebook"
96
+ },
97
+ {
98
+ "buttonClass": "social-network-x",
99
+ "iconClass": "icon-x",
100
+ "type": "href",
101
+ "path": "https://www.twitter.com",
102
+ "target": "_blank",
103
+ "tooltip": "Visit profile on X"
104
+ },
105
+ {
106
+ "buttonClass": "social-network-linkedin",
107
+ "iconClass": "icon-linkedin",
108
+ "type": "href",
109
+ "path": "https://www.linkedin.com",
110
+ "target": "_blank",
111
+ "tooltip": "Visit profile on linkedin"
112
+ }
113
+ ]
114
+ }
@@ -359,11 +359,11 @@ export default {
359
359
 
360
360
  // set default-tooltip if customTooltip is not set
361
361
  if (this.validationStatus === 'error') {
362
- return this.getMessage("cmdformelement.validation_tooltip.an_error_occurred")
362
+ return this.getMessage("form_element.validation_tooltip.an_error_occurred")
363
363
  } else if (this.validationStatus === 'success') {
364
- return this.getMessage("cmdformelement.validation_tooltip.information_is_filled_correctly")
364
+ return this.getMessage("form_element.validation_tooltip.information_is_filled_correctly")
365
365
  }
366
- return this.getMessage("cmdformelement.validation_tooltip.open_field_requirements")
366
+ return this.getMessage("form_element.validation_tooltip.open_field_requirements")
367
367
  },
368
368
  // get the displayed option name
369
369
  optionName() {
@@ -540,7 +540,7 @@ export default {
540
540
  text-decoration: none !important;
541
541
 
542
542
  &[class*="icon"]:last-child {
543
- margin-left: auto !important;
543
+ margin-left: auto !important; /* overwrite default settings from frontend-framework */
544
544
  }
545
545
  }
546
546
  }
@@ -579,7 +579,7 @@ export default {
579
579
  }
580
580
 
581
581
  > [class*="icon-"]:last-child {
582
- margin-left: auto;
582
+ margin-left: auto !important; /* overwrite default settings from frontend-framework */
583
583
  font-size: var(--icon-size-small);
584
584
  }
585
585
 
@@ -304,7 +304,7 @@ export default {
304
304
  }
305
305
  }
306
306
 
307
- .button, .button:last-child {
307
+ [type="submit"].button {
308
308
  margin-left: auto;
309
309
  }
310
310
 
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div class="cmd-image-zoom flex-container">
3
3
  <!-- begin small image -->
4
- <a href="#" class="no-flex thumbnails-imagezoom" :title="imageSmall.image.tooltip">
4
+ <a href="#" class="no-flex thumbnail-imagezoom" :title="imageSmall.image.tooltip">
5
5
  <!-- begin CmdImage for small image -->
6
6
  <CmdImage v-bind="imageSmall" :figcaption="{}"
7
7
  @mouseover="onMouseOver"
@@ -9,16 +9,17 @@
9
9
  @mouseout="onMouseOut"
10
10
  />
11
11
  <!-- end CmdImage for small image -->
12
+ <div class="zoom-overlay"></div>
12
13
  </a>
13
14
  <!-- end small image -->
14
15
 
15
16
  <!-- begin large image -->
16
- <div class="zoom-container">
17
+ <div class="zoom-container">
17
18
  <!-- begin CmdImage for large image -->
18
19
  <CmdImage v-bind="imageLarge" :useFigureTag="false" />
19
20
  <!-- end CmdImage for large image -->
20
21
  </div>
21
- <div class="zoom-overlay"></div>
22
+
22
23
  <!-- end large image -->
23
24
  </div>
24
25
  </template>
@@ -77,8 +78,8 @@ function positionOverlay(vm, e) {
77
78
  const largeImageWidth = largeImage.getBoundingClientRect().width
78
79
  const largeImageHeight = largeImage.getBoundingClientRect().height
79
80
 
80
- const mouseX = e.pageX - e.target.getBoundingClientRect().x - window.pageXOffset
81
- const mouseY = e.pageY - e.target.getBoundingClientRect().y - window.pageYOffset
81
+ const mouseX = e.pageX - e.target.getBoundingClientRect().x - window.scrollX
82
+ const mouseY = e.pageY - e.target.getBoundingClientRect().y - window.scrollY
82
83
 
83
84
  const overlayWidth = Math.min(smallImageWidth, largeImageContainer.getBoundingClientRect().width / largeImageWidth * smallImageWidth)
84
85
  const overlayHeight = Math.min(smallImageHeight, largeImageContainer.getBoundingClientRect().height / largeImageHeight * smallImageHeight)
@@ -115,12 +116,16 @@ function clamp(value, min, max) {
115
116
  .cmd-image-zoom {
116
117
  overflow: hidden;
117
118
 
119
+ .thumbnail-imagezoom {
120
+ align-self: flex-start;
121
+ }
122
+
118
123
  .zoom-container {
119
- display: block !important;
120
124
  overflow: hidden;
121
125
 
122
126
  > img {
123
127
  max-width: none;
128
+ max-height: none;
124
129
  }
125
130
  }
126
131
 
@@ -133,5 +138,26 @@ function clamp(value, min, max) {
133
138
  }
134
139
  }
135
140
 
141
+ </style>
142
+
143
+ <style lang="scss">
144
+ @import '../assets/styles/variables';
145
+
146
+ @media only screen and (max-width: $small-max-width) {
147
+ .cmd-image-zoom {
148
+ .thumbnail-imagezoom {
149
+ align-self: center;
150
+ }
151
+
152
+ .zoom-container {
153
+ max-height: 40vh;
154
+ flex: none;
155
+
156
+ > img {
157
+ max-height: none;
158
+ }
159
+ }
160
+ }
161
+ }
136
162
  /* end cmd-imagezoom ------------------------------------------------------------------------------------------ */
137
- </style>
163
+ </style>
@@ -272,11 +272,11 @@ export default {
272
272
 
273
273
  // set default-tooltip if customTooltip is not set
274
274
  if (this.validationStatus === 'error') {
275
- return this.getMessage("cmdformelement.validation_tooltip.an_error_occurred")
275
+ return this.getMessage("form_element.validation_tooltip.an_error_occurred")
276
276
  } else if (this.validationStatus === 'success') {
277
- return this.getMessage("cmdformelement.validation_tooltip.information_is_filled_correctly")
277
+ return this.getMessage("form_element.validation_tooltip.information_is_filled_correctly")
278
278
  }
279
- return this.getMessage("cmdformelement.validation_tooltip.open_field_requirements")
279
+ return this.getMessage("form_element.validation_tooltip.open_field_requirements")
280
280
  },
281
281
  inputValue: {
282
282
  // read inputValue
@@ -322,7 +322,6 @@ export default {
322
322
  /* overwrite default behavior from frontend-framework */
323
323
  > .label-text {
324
324
  display: inline-flex;
325
- margin: 0;
326
325
 
327
326
  > span + a:has([class*="icon-"]) {
328
327
  margin-left: calc(var(--default-margin) / 2);
@@ -23,7 +23,7 @@
23
23
  <!-- end router-link -->
24
24
 
25
25
  <!-- begin button -->
26
- <button v-else-if="linkType === 'button'" :class="['cmd-link button', {'primary': primaryButton, 'box': styleAsBox, 'fancybox': fancybox}]" type="submit" @click="emitClick($event, 'button')" :title="icon?.tooltip">
26
+ <button v-else-if="linkType === 'button' || linkType === 'submit'" :class="['cmd-link button', {'primary': primaryButton, 'box': styleAsBox, 'fancybox': fancybox}]" type="submit" @click="emitClick($event, 'button')" :title="icon?.tooltip">
27
27
  <CmdInnerLink :text="text" :icon="icon" :image="image">
28
28
  <slot></slot>
29
29
  </CmdInnerLink>
@@ -48,7 +48,8 @@ export default {
48
48
  validator(value) {
49
49
  return value === "href" ||
50
50
  value === "router" ||
51
- value === "button"
51
+ value === "button" ||
52
+ value === "submit"
52
53
  }
53
54
  },
54
55
  /**
@@ -6,7 +6,7 @@
6
6
  ]">
7
7
  <!-- begin cmd-headline -->
8
8
  <CmdHeadline
9
- v-if="cmdHeadline?.headlineText || editModeContext"
9
+ v-if="cmdHeadline?.headlineText"
10
10
  v-bind="cmdHeadline"
11
11
  />
12
12
  <!-- end cmd-headline -->
@@ -32,7 +32,7 @@
32
32
 
33
33
  <script>
34
34
  // import mixins (editMode only)
35
- // import EditMode from "../mixins/EditMode.vue"
35
+ import EditMode from "../mixins/EditMode.vue"
36
36
 
37
37
  // import utils (editMode only)
38
38
  // import {buildComponentPath, updateHandlerProvider} from "../utils/editmode.js"
@@ -40,7 +40,7 @@
40
40
  export default {
41
41
  name: "CmdListOfImages",
42
42
  emits: ["click"],
43
- // mixins: [EditMode],
43
+ //mixins: [EditMode],
44
44
  props: {
45
45
  /**
46
46
  * style component like a box
@@ -80,7 +80,7 @@ export default {
80
80
  }
81
81
  },
82
82
  methods: {
83
- /*
83
+ /*
84
84
  onAddItem() {
85
85
  this.editModeContext.content.addContent(
86
86
  buildComponentPath(this, 'props', 'links', -1),
@@ -107,7 +107,7 @@ export default {
107
107
  }
108
108
  })
109
109
  }
110
- */
110
+ */
111
111
  }
112
112
  }
113
113
  </script>
@@ -2,7 +2,7 @@
2
2
  <div class="cmd-list-of-requirements">
3
3
  <!-- begin CmdHeadline -->
4
4
  <CmdHeadline v-if="showHeadline" :headline-level="cmdHeadline.headlineLevel">
5
- {{ headlineRequirements }}<template v-if="labelText"><br/><em>{{ labelText }}</em></template>
5
+ {{ headlineRequirements }}<template v-if="labelText"><br/>"{{ labelText }}"</template>
6
6
  </CmdHeadline>
7
7
  <!-- end CmdHeadline -->
8
8
 
@@ -159,22 +159,22 @@ export default {
159
159
  }
160
160
 
161
161
  .error, .error span {
162
- --status-color: var(--error-color);
162
+ --status-color: var(--error-color) !important; /* assure status-color is not overwritten by form-element-status */
163
163
  }
164
164
 
165
165
  .warning, .warning span {
166
- --status-color: var(--warning-color);
166
+ --status-color: var(--warning-color) !important; /* assure status-color is not overwritten by form-element-status */
167
167
  }
168
168
 
169
169
  .success, .success span {
170
- --status-color: var(--success-color);
170
+ --status-color: var(--success-color) !important; /* assure status-color is not overwritten by form-element-status */
171
171
  }
172
172
 
173
173
  .info, .info span {
174
- --status-color: var(--info-color);
174
+ --status-color: var(--info-color) !important; /* assure status-color is not overwritten by form-element-status */
175
175
  }
176
176
 
177
- dt {
177
+ dt, dt span[class*="icon-"] {
178
178
  color: var(--status-color);
179
179
  }
180
180