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.
- package/dist/comand-component-library.js +8106 -8023
- package/dist/style.css +1 -1
- package/package.json +3 -2
- package/src/ComponentLibrary.vue +24 -5
- package/src/assets/data/switch-language.json +28 -28
- package/src/assets/lists-of-data/.htaccess +1 -1
- package/src/assets/lists-of-data/casual-01.json +1 -1
- package/src/assets/lists-of-data/founder-01.json +111 -0
- package/src/assets/lists-of-data/investor-01.json +114 -0
- package/src/components/CmdFakeSelect.vue +5 -5
- package/src/components/CmdForm.vue +1 -1
- package/src/components/CmdImageZoom.vue +33 -7
- package/src/components/CmdInputGroup.vue +3 -4
- package/src/components/CmdLink.vue +3 -2
- package/src/components/CmdListOfImages.vue +5 -5
- package/src/components/CmdListOfRequirements.vue +6 -6
- package/src/components/CmdLoginForm.vue +92 -63
- package/src/components/CmdMailTool.vue +1 -7
- package/src/components/CmdMailToolEntry.vue +51 -6
- package/src/components/CmdMailToolFilter.vue +35 -29
- package/src/components/CmdMultistepFormProgressBar.vue +68 -96
- package/src/components/CmdNewsletterSubscription.vue +1 -0
- package/src/components/CmdSiteSearch.vue +6 -1
- package/src/components/CmdSwitchLanguage.vue +0 -3
- package/src/components/CmdTabs.vue +6 -2
- package/src/components/CmdTooltip.vue +16 -2
- package/src/components/CmdUploadForm.vue +3 -1
- package/src/main.js +5 -1
- package/src/mixins/CmdMailToolEntry/DefaultMessageProperties.js +2 -1
- package/src/mixins/CmdSiteSearch/DefaultMessageProperties.js +1 -1
- 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": "
|
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("
|
362
|
+
return this.getMessage("form_element.validation_tooltip.an_error_occurred")
|
363
363
|
} else if (this.validationStatus === 'success') {
|
364
|
-
return this.getMessage("
|
364
|
+
return this.getMessage("form_element.validation_tooltip.information_is_filled_correctly")
|
365
365
|
}
|
366
|
-
return this.getMessage("
|
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
|
|
@@ -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
|
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
|
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
|
-
|
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.
|
81
|
-
const mouseY = e.pageY - e.target.getBoundingClientRect().y - window.
|
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("
|
275
|
+
return this.getMessage("form_element.validation_tooltip.an_error_occurred")
|
276
276
|
} else if (this.validationStatus === 'success') {
|
277
|
-
return this.getMessage("
|
277
|
+
return this.getMessage("form_element.validation_tooltip.information_is_filled_correctly")
|
278
278
|
}
|
279
|
-
return this.getMessage("
|
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
|
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
|
-
|
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
|
-
//
|
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
|
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
|
|