comand-component-library 4.3.7 → 4.3.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.
- package/dist/comand-component-library.css +1 -1
- package/dist/comand-component-library.js +2717 -2546
- package/package.json +1 -1
- package/src/ComponentLibrary.vue +42 -1
- package/src/assets/data/listOfComponents.json +1 -0
- package/src/assets/data/multistep-form-wrapper-page-1.json +30 -1
- package/src/componentSettingsDataAndControls.vue +3 -0
- package/src/components/CmdFormElement.vue +1 -0
- package/src/components/CmdInputGroup.vue +4 -0
- package/src/components/CmdLoginForm.vue +3 -3
- package/src/components/CmdMultistepFormProgressBar.vue +0 -13
- package/src/components/CmdSystemMessage.vue +3 -3
- package/src/components/CmdToast.vue +125 -0
package/package.json
CHANGED
package/src/ComponentLibrary.vue
CHANGED
|
@@ -1839,7 +1839,7 @@
|
|
|
1839
1839
|
<p> date (YMD/default): {{ formatDate('2025-01-28', "", "-") }}</p>
|
|
1840
1840
|
<p> date (DMY): {{ formatDate('2025-01-28', "dmy") }}</p>
|
|
1841
1841
|
<p> date (MDY): {{ formatDate('2025-01-28', "mdy", "/") }}</p>
|
|
1842
|
-
<p> date (invalid)
|
|
1842
|
+
<p> date (invalid): {{ formatDate('invalid') }}</p>
|
|
1843
1843
|
<div class="inline-size">
|
|
1844
1844
|
<CmdThumbnailScroller ref="CmdThumbnailScroller" v-bind="cmdThumbnailScrollerSettingsData"
|
|
1845
1845
|
:thumbnailScrollerItems="thumbnailScrollerData" />
|
|
@@ -1847,6 +1847,31 @@
|
|
|
1847
1847
|
</CmdWidthLimitationWrapper>
|
|
1848
1848
|
<!-- end thumbnail-scroller --------------------------------------------------------------------------------------------------->
|
|
1849
1849
|
|
|
1850
|
+
<!-- begin toast --------------------------------------------------------------------------------------------------->
|
|
1851
|
+
<CmdWidthLimitationWrapper>
|
|
1852
|
+
<h2 class="headline-demopage" id="section-toast">
|
|
1853
|
+
<span>Toast</span>
|
|
1854
|
+
<a href="#" class="button small icon-cog" title="Open Component Settings"
|
|
1855
|
+
@click.prevent="openSettingsSidebar('CmdToast')">
|
|
1856
|
+
</a>
|
|
1857
|
+
</h2>
|
|
1858
|
+
<div class="button-wrapper">
|
|
1859
|
+
<button type="button" class="button" @click.prevent="toggleToast('modal')">
|
|
1860
|
+
<span>Open Toast (as modal)</span>
|
|
1861
|
+
</button>
|
|
1862
|
+
<button type="button" class="button" @click.prevent="toggleToast">
|
|
1863
|
+
<span>Toggle Toast (default)</span>
|
|
1864
|
+
</button>
|
|
1865
|
+
</div>
|
|
1866
|
+
this.showToast: {{ this.showToast }}
|
|
1867
|
+
<CmdToast
|
|
1868
|
+
message="This is a message!"
|
|
1869
|
+
ref="cmdToast"
|
|
1870
|
+
@close="toggleToast"
|
|
1871
|
+
/>
|
|
1872
|
+
</CmdWidthLimitationWrapper>
|
|
1873
|
+
<!-- end toast --------------------------------------------------------------------------------------------------->
|
|
1874
|
+
|
|
1850
1875
|
<!-- begin toggle-darkmode --------------------------------------------------------------------------------------------------->
|
|
1851
1876
|
<CmdWidthLimitationWrapper>
|
|
1852
1877
|
<h2 class="headline-demopage" id="section-toggle-dark-mode">
|
|
@@ -2174,6 +2199,7 @@ export default {
|
|
|
2174
2199
|
"page-2-telephone": "12345/67890"
|
|
2175
2200
|
}
|
|
2176
2201
|
},
|
|
2202
|
+
showToast: false,
|
|
2177
2203
|
|
|
2178
2204
|
// assign data from json files to data-properties
|
|
2179
2205
|
addressData,
|
|
@@ -2391,6 +2417,21 @@ export default {
|
|
|
2391
2417
|
showError() {
|
|
2392
2418
|
alert("Error")
|
|
2393
2419
|
},
|
|
2420
|
+
toggleToast(type) {
|
|
2421
|
+
const dialog = this.$refs.cmdToast
|
|
2422
|
+
|
|
2423
|
+
if (!this.showToast) {
|
|
2424
|
+
if (type === "modal") {
|
|
2425
|
+
dialog.showModal()
|
|
2426
|
+
} else {
|
|
2427
|
+
dialog.show()
|
|
2428
|
+
}
|
|
2429
|
+
this.showToast = true
|
|
2430
|
+
} else {
|
|
2431
|
+
dialog.closeDialog()
|
|
2432
|
+
this.showToast = false
|
|
2433
|
+
}
|
|
2434
|
+
},
|
|
2394
2435
|
showFancyBox(type, content, ariaLabelText) {
|
|
2395
2436
|
if (type === "text") {
|
|
2396
2437
|
openFancyBox({
|
|
@@ -19,5 +19,34 @@
|
|
|
19
19
|
"placeholder": "First Name",
|
|
20
20
|
"required": true,
|
|
21
21
|
"disabled": false
|
|
22
|
-
}
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"component": "CmdInputGroup",
|
|
25
|
+
"labelText": "Label for input-group (checkboxes):",
|
|
26
|
+
"inputTypes": "checkbox",
|
|
27
|
+
"toggleSwitches": true,
|
|
28
|
+
"required": true,
|
|
29
|
+
"value": ["option1"],
|
|
30
|
+
"name": "input-group-checkboxes",
|
|
31
|
+
"inputElements": [
|
|
32
|
+
{
|
|
33
|
+
"labelText": "Option 1",
|
|
34
|
+
"id": "option1",
|
|
35
|
+
"name": "checkbox-options",
|
|
36
|
+
"value": "option1"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"labelText": "Option 2",
|
|
40
|
+
"id": "option2",
|
|
41
|
+
"name": "checkbox-options",
|
|
42
|
+
"value": "option2"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"labelText": "Option 3",
|
|
46
|
+
"id": "option3",
|
|
47
|
+
"name": "checkbox-options",
|
|
48
|
+
"value": "option3"
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|
|
23
52
|
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<!-- begin CmdLoginForm ---------------------------------------------------------------------------------------- -->
|
|
3
|
-
<fieldset v-
|
|
3
|
+
<fieldset v-if="!sendLogin" class="cmd-login-form flex-container">
|
|
4
4
|
<legend :class="{hidden : !legendLoginForm.show, 'align-left': legendLoginForm.align === 'left'}">
|
|
5
5
|
{{ legendLoginForm.text }}
|
|
6
6
|
</legend>
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
<!-- end default-login-button -->
|
|
67
67
|
|
|
68
68
|
<!-- begin form elements -->
|
|
69
|
-
<div v-
|
|
69
|
+
<div v-if="showLogin" :class="['login-fields flex-container', {'vertical': orientation === 'vertical'}]">
|
|
70
70
|
<!-- begin CmdFormElement -->
|
|
71
71
|
<CmdFormElement
|
|
72
72
|
element="input"
|
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
<!-- end login-form -->
|
|
154
154
|
|
|
155
155
|
<!-- begin send-login-form -->
|
|
156
|
-
<fieldset v-
|
|
156
|
+
<fieldset v-if="sendLogin" class="cmd-login-form flex-container">
|
|
157
157
|
<legend :class="{hidden : !legendForgotLoginForm.show, 'align-left': legendForgotLoginForm.align === 'left'}">
|
|
158
158
|
{{ legendForgotLoginForm.text }}
|
|
159
159
|
</legend>
|
|
@@ -345,19 +345,6 @@ export default {
|
|
|
345
345
|
}
|
|
346
346
|
}
|
|
347
347
|
|
|
348
|
-
&.success {
|
|
349
|
-
.number {
|
|
350
|
-
border-color: var(--success-color);
|
|
351
|
-
color: var(--success-color);
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
.active {
|
|
355
|
-
.number {
|
|
356
|
-
background: var(--success-color) !important;
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
|
|
361
348
|
:is(.active, .router-link-exact-active):not(.disabled) {
|
|
362
349
|
a {
|
|
363
350
|
background: var(--button-primary-background-highlighted);
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
v-if="showSystemMessage"
|
|
6
6
|
:class="['cmd-system-message', 'system-message', 'flex-container', 'flex-direction-column', { 'full-width': fullWidth }, systemMessageTextAlign, validationStatus]"
|
|
7
7
|
:role="validationStatus === 'error' ? 'alert' : 'dialog'"
|
|
8
|
-
:aria-labelledby="
|
|
8
|
+
:aria-labelledby="ariaId"
|
|
9
9
|
>
|
|
10
10
|
<!-- begin slot-content -->
|
|
11
11
|
<slot>
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
:headlineText="systemMessage"
|
|
17
17
|
:headlineLevel="messageHeadlineLevel"
|
|
18
18
|
:textAlign="textAlign"
|
|
19
|
-
:id="
|
|
19
|
+
:id="ariaId"
|
|
20
20
|
/>
|
|
21
21
|
<!-- end CmdHeadline -->
|
|
22
22
|
</slot>
|
|
@@ -50,7 +50,7 @@ export default {
|
|
|
50
50
|
data() {
|
|
51
51
|
return {
|
|
52
52
|
showSystemMessage: true,
|
|
53
|
-
|
|
53
|
+
ariaId: this.ariaReferenceId || this.buildHtmlId("system-message") // mixin requires id to be defined
|
|
54
54
|
}
|
|
55
55
|
},
|
|
56
56
|
props: {
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<!-- begin CmdToast ---------------------------------------------------------------------------------------- -->
|
|
3
|
+
<transition :name="transition">
|
|
4
|
+
<dialog class="cmd-toast box" ref="cmdToast">
|
|
5
|
+
<slot>
|
|
6
|
+
<header>
|
|
7
|
+
<CmdHeadline
|
|
8
|
+
v-if="cmdHeadlineProps"
|
|
9
|
+
v-bind="cmdHeadlineProps"
|
|
10
|
+
/>
|
|
11
|
+
<a href="#" @click.prevent="closeModal">
|
|
12
|
+
<CmdIcon v-bind="cmdIconProps" />
|
|
13
|
+
</a>
|
|
14
|
+
</header>
|
|
15
|
+
<p>{{ message }}</p>
|
|
16
|
+
this.dialogIsOpen: {{ this.dialogIsOpen }}
|
|
17
|
+
</slot>
|
|
18
|
+
</dialog>
|
|
19
|
+
</transition>
|
|
20
|
+
<!-- end CmdToast ---------------------------------------------------------------------------------------- -->
|
|
21
|
+
</template>
|
|
22
|
+
|
|
23
|
+
<script>
|
|
24
|
+
export default {
|
|
25
|
+
name: 'CmdToast',
|
|
26
|
+
data() {
|
|
27
|
+
return {
|
|
28
|
+
dialogIsOpen: true
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
props: {
|
|
32
|
+
/**
|
|
33
|
+
* message shown in toast
|
|
34
|
+
*/
|
|
35
|
+
message: {
|
|
36
|
+
type: String,
|
|
37
|
+
required: true
|
|
38
|
+
},
|
|
39
|
+
/**
|
|
40
|
+
* properties for CmdHeadline-component
|
|
41
|
+
*/
|
|
42
|
+
cmdHeadline: {
|
|
43
|
+
type: Object,
|
|
44
|
+
required: false
|
|
45
|
+
},
|
|
46
|
+
/**
|
|
47
|
+
* properties for CmdIcon-component
|
|
48
|
+
*/
|
|
49
|
+
cmdIcon: {
|
|
50
|
+
type: Object,
|
|
51
|
+
required: false
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
computed: {
|
|
55
|
+
cmdHeadlineProps() {
|
|
56
|
+
return {
|
|
57
|
+
headlineLevel: 6,
|
|
58
|
+
headlineText: "Information",
|
|
59
|
+
...this?.cmdHeadline
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
cmdIconProps() {
|
|
63
|
+
return {
|
|
64
|
+
iconClass: "icon-cancel",
|
|
65
|
+
tooltip: "Close Toast",
|
|
66
|
+
...this?.cmdIcon
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
transition() {
|
|
70
|
+
return this.dialogIsOpen ? 'fade-in' : 'fade-out'
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
methods: {
|
|
74
|
+
closeModal() {
|
|
75
|
+
this.dialogIsOpen = false
|
|
76
|
+
this.$emit("close", true);
|
|
77
|
+
},
|
|
78
|
+
showModal() {
|
|
79
|
+
this.dialogIsOpen = true
|
|
80
|
+
this.$refs.cmdToast.showModal()
|
|
81
|
+
},
|
|
82
|
+
show() {
|
|
83
|
+
this.dialogIsOpen = true
|
|
84
|
+
this.$refs.cmdToast.show()
|
|
85
|
+
},
|
|
86
|
+
closeDialog() {
|
|
87
|
+
// Close only if the dialog is open; avoids immediate reopen if already closed.
|
|
88
|
+
const dialog = this.$refs.cmdToast
|
|
89
|
+
if (this.dialogIsOpen === true && dialog && (dialog.open || dialog.hasAttribute?.('open'))) {
|
|
90
|
+
dialog.close()
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
</script>
|
|
96
|
+
|
|
97
|
+
<style>
|
|
98
|
+
/* begin cmd-toast ---------------------------------------------------------------------------------------- */
|
|
99
|
+
.cmd-toast {
|
|
100
|
+
position: fixed;
|
|
101
|
+
margin-right: 2rem;
|
|
102
|
+
margin-left: auto;
|
|
103
|
+
top: auto;
|
|
104
|
+
bottom: 7rem;
|
|
105
|
+
z-index: 1000;
|
|
106
|
+
transition: margin-right linear 3s;
|
|
107
|
+
|
|
108
|
+
header {
|
|
109
|
+
display: flex;
|
|
110
|
+
|
|
111
|
+
a {
|
|
112
|
+
margin-left: auto;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.fade-in {
|
|
118
|
+
margin-right: 2rem;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.fade-out {
|
|
122
|
+
margin-right: 100%;
|
|
123
|
+
}
|
|
124
|
+
/* end cmd-toast ---------------------------------------------------------------------------------------- */
|
|
125
|
+
</style>
|