comand-component-library 4.0.2 → 4.0.3
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/README.md +32 -32
- package/dist/comand-component-library.js +3264 -1450
- package/dist/comand-component-library.umd.cjs +3 -4
- package/dist/index.html +16 -16
- package/dist/style.css +1 -1
- package/dist/styles/demopage-only.css +4 -0
- package/dist/styles/templates/casual.css +3 -0
- package/package.json +4 -4
- package/src/App.vue +2117 -0
- package/src/ComponentLibrary.vue +150 -586
- package/src/assets/data/fake-select-options.json +3 -2
- package/src/assets/data/form-elements.json +1 -1
- package/src/assets/styles/global-styles.scss +17 -4
- package/src/componentSettingsDataAndControls.vue +705 -0
- package/src/components/CmdAddressData.vue +1 -2
- package/src/components/CmdBox.vue +60 -42
- package/src/components/CmdCopyrightInformation.vue +5 -3
- package/src/components/CmdFakeSelect.vue +138 -67
- package/src/components/CmdFancyBox.vue +2 -2
- package/src/components/CmdFormElement.vue +53 -27
- package/src/components/CmdGoogleMaps.vue +5 -0
- package/src/components/CmdHeadline.vue +13 -5
- package/src/components/CmdIcon.vue +6 -2
- package/src/components/CmdImage.vue +6 -1
- package/src/components/CmdImageGallery.vue +15 -4
- package/src/components/CmdInputGroup.vue +76 -24
- package/src/components/CmdListOfLinks.vue +20 -7
- package/src/components/CmdListOfRequirements.vue +10 -18
- package/src/components/CmdLoginForm.vue +14 -2
- package/src/components/CmdMainNavigation.vue +5 -1
- package/src/components/CmdMultistepFormProgressBar.vue +12 -7
- package/src/components/CmdOpeningHoursItem.vue +1 -3
- package/src/components/CmdPagination.vue +5 -1
- package/src/components/CmdSiteFooter.vue +11 -1
- package/src/components/CmdSiteHeader.vue +1 -0
- package/src/components/CmdSlideButton.vue +7 -1
- package/src/components/CmdSlideshow.vue +33 -5
- package/src/components/CmdSocialNetworks.vue +18 -13
- package/src/components/CmdSocialNetworksItem.vue +5 -1
- package/src/components/CmdSystemMessage.vue +7 -1
- package/src/components/CmdTabs.vue +5 -5
- package/src/components/CmdTextImageBlock.vue +11 -2
- package/src/components/CmdThumbnailScroller.vue +22 -4
- package/src/components/CmdTooltip.vue +49 -14
- package/src/components/CmdTooltipForFormElements.vue +96 -0
- package/src/components/CmdUploadForm.vue +25 -20
- package/src/components/CmdWidthLimitationWrapper.vue +1 -1
- package/src/components/ComponentSettings.vue +1 -1
- package/src/main.js +1 -1
- package/src/assets/data/accordion.json +0 -45
@@ -28,7 +28,11 @@ export default {
|
|
28
28
|
*/
|
29
29
|
type: {
|
30
30
|
type: String,
|
31
|
-
default: "auto"
|
31
|
+
default: "auto",
|
32
|
+
validator(value) {
|
33
|
+
return value === "auto" ||
|
34
|
+
value === "iconify"
|
35
|
+
}
|
32
36
|
},
|
33
37
|
/**
|
34
38
|
* icon-class for icon from local iconfont
|
@@ -65,7 +69,7 @@ export default {
|
|
65
69
|
|
66
70
|
<style>
|
67
71
|
.iconify {
|
68
|
-
font-size: var(--icon-size);
|
72
|
+
font-size: var(--default-icon-size);
|
69
73
|
vertical-align: text-bottom;
|
70
74
|
|
71
75
|
& + span, span + & {
|
@@ -376,6 +376,11 @@ export default {
|
|
376
376
|
display: block;
|
377
377
|
}
|
378
378
|
|
379
|
+
figcaption {
|
380
|
+
border-bottom-left-radius: var(--default-border-radius);
|
381
|
+
border-bottom-right-radius: var(--default-border-radius);
|
382
|
+
}
|
383
|
+
|
379
384
|
&.text-center {
|
380
385
|
figcaption {
|
381
386
|
text-align: center;
|
@@ -401,7 +406,7 @@ export default {
|
|
401
406
|
transform: translateX(-50%) translateY(-50%);
|
402
407
|
font-size: 10rem;
|
403
408
|
color: var(--pure-white);
|
404
|
-
text-shadow: var(--text-shadow);
|
409
|
+
text-shadow: var(--default-text-shadow);
|
405
410
|
z-index: 10;
|
406
411
|
}
|
407
412
|
|
@@ -15,13 +15,13 @@
|
|
15
15
|
href="#"
|
16
16
|
@click.prevent="showFancyBox(index)"
|
17
17
|
:title="getMessage('cmdimagegallery.tooltip.open_large_image')">
|
18
|
-
<CmdImage :image="image.image" :figcaption="image
|
18
|
+
<CmdImage :image="image.image" :figcaption="figcaption(image)"/>
|
19
19
|
</a>
|
20
20
|
<!-- end images linked to fancybox -->
|
21
21
|
|
22
22
|
<!-- begin images not linked to fancybox -->
|
23
23
|
<div v-else v-for="(image, index) in images" :key="`i${index}`" class="image-wrapper">
|
24
|
-
<CmdImage :image="image.image" :figcaption="image
|
24
|
+
<CmdImage :image="image.image" :figcaption="figcaption(image)"/>
|
25
25
|
</div>
|
26
26
|
<!-- end images not linked to fancybox -->
|
27
27
|
</template>
|
@@ -89,7 +89,11 @@ export default {
|
|
89
89
|
*/
|
90
90
|
figcaptionPosition: {
|
91
91
|
type: String,
|
92
|
-
|
92
|
+
required: false,
|
93
|
+
validator(value) {
|
94
|
+
return value === "top" ||
|
95
|
+
value === "bottom"
|
96
|
+
}
|
93
97
|
}
|
94
98
|
},
|
95
99
|
methods: {
|
@@ -107,6 +111,13 @@ export default {
|
|
107
111
|
}
|
108
112
|
}
|
109
113
|
},
|
114
|
+
figcaption(image) {
|
115
|
+
const figcaption = {...image.figcaption}
|
116
|
+
if(this.figcaptionPosition) {
|
117
|
+
figcaption.position = this.figcaptionPosition
|
118
|
+
}
|
119
|
+
return figcaption
|
120
|
+
},
|
110
121
|
onAddItem() {
|
111
122
|
this.editModeContext.content.addContent(
|
112
123
|
buildComponentPath(this, 'props', 'images', -1),
|
@@ -162,7 +173,7 @@ export default {
|
|
162
173
|
|
163
174
|
img {
|
164
175
|
border: var(--default-border);
|
165
|
-
border-radius: var(--border-radius);
|
176
|
+
border-radius: var(--default-border-radius);
|
166
177
|
max-height: 30rem;
|
167
178
|
}
|
168
179
|
|
@@ -2,19 +2,22 @@
|
|
2
2
|
<div :class="[
|
3
3
|
'cmd-input-group label',
|
4
4
|
validationStatus,
|
5
|
-
{
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
5
|
+
{
|
6
|
+
inline: labelInline,
|
7
|
+
'multiple-switch': multipleSwitch,
|
8
|
+
disabled: disabled,
|
9
|
+
'toggle-switch': toggleSwitch,
|
10
|
+
'has-state': validationStatus
|
10
11
|
}
|
11
12
|
]"
|
12
13
|
:aria-labelledby="htmlId">
|
14
|
+
|
15
|
+
<!-- begin label -->
|
13
16
|
<span v-show="showLabel" class="label-text">
|
14
|
-
|
17
|
+
<span :id="htmlId">{{ labelText }}<sup v-if="required">*</sup></span>
|
15
18
|
|
16
|
-
<!-- begin
|
17
|
-
<
|
19
|
+
<!-- begin CmdTooltipForFormElements -->
|
20
|
+
<CmdTooltipForFormElements
|
18
21
|
v-if="useCustomTooltip && (validationStatus === '' || validationStatus === 'error')"
|
19
22
|
ref="tooltip"
|
20
23
|
:showRequirements="showRequirements"
|
@@ -27,9 +30,10 @@
|
|
27
30
|
:relatedId="tooltipId"
|
28
31
|
:role="validationStatus === 'error' ? 'alert' : 'dialog'"
|
29
32
|
/>
|
30
|
-
<!-- end
|
33
|
+
<!-- end CmdTooltipForFormElements -->
|
31
34
|
|
32
|
-
|
35
|
+
<!-- begin status-icon -->
|
36
|
+
<a v-if="(required || inputRequirements.length > 0) && showStatusIcon"
|
33
37
|
href="#"
|
34
38
|
@click.prevent
|
35
39
|
:title="validationTooltip"
|
@@ -40,7 +44,11 @@
|
|
40
44
|
<CmdIcon :iconClass="getStatusIconClass"/>
|
41
45
|
<!-- end CmdIcon -->
|
42
46
|
</a>
|
47
|
+
<!-- end status-icon -->
|
43
48
|
</span>
|
49
|
+
<!-- end label -->
|
50
|
+
|
51
|
+
<!-- begin view without slot -->
|
44
52
|
<span v-if="!useSlot" :class="['flex-container', {'no-flex': !stretchHorizontally, 'no-gap': multipleSwitch}]">
|
45
53
|
<label v-for="(inputElement, index) in inputElements" :key="index" :for="inputElement.id">
|
46
54
|
<input
|
@@ -53,12 +61,16 @@
|
|
53
61
|
:class="{'replace-input-type': replaceInputType, 'toggle-switch': toggleSwitch}"
|
54
62
|
/>
|
55
63
|
<!-- begin CmdIcon -->
|
56
|
-
<CmdIcon
|
57
|
-
|
64
|
+
<CmdIcon
|
65
|
+
v-if="multipleSwitch && inputElement.iconClass"
|
66
|
+
:iconClass="inputElement.iconClass"
|
67
|
+
:type="inputElement.iconType"
|
68
|
+
/>
|
58
69
|
<!-- end CmdIcon -->
|
59
|
-
<span v-if="inputElement.labelText">{{ inputElement.labelText }}</span>
|
70
|
+
<span v-if="inputElement.labelText" class="label-text">{{ inputElement.labelText }}</span>
|
60
71
|
</label>
|
61
72
|
</span>
|
73
|
+
<!-- end view without slot -->
|
62
74
|
|
63
75
|
<!-- begin useSlot -->
|
64
76
|
<div v-else class="flex-container no-flex">
|
@@ -82,11 +94,6 @@ export default {
|
|
82
94
|
Identifier,
|
83
95
|
Tooltip
|
84
96
|
],
|
85
|
-
data() {
|
86
|
-
return {
|
87
|
-
value: ""
|
88
|
-
}
|
89
|
-
},
|
90
97
|
props: {
|
91
98
|
/**
|
92
99
|
* set value for v-model (must be named modelValue in vue3 if default v-model should be used)
|
@@ -102,6 +109,13 @@ export default {
|
|
102
109
|
type: Boolean,
|
103
110
|
default: false
|
104
111
|
},
|
112
|
+
/**
|
113
|
+
* activate if interactive status-icon (to show requirements) should be shown inline with label
|
114
|
+
*/
|
115
|
+
showStatusIcon: {
|
116
|
+
type: Boolean,
|
117
|
+
default: true
|
118
|
+
},
|
105
119
|
/**
|
106
120
|
* list of input-elements inside group
|
107
121
|
*
|
@@ -118,18 +132,29 @@ export default {
|
|
118
132
|
*/
|
119
133
|
inputTypes: {
|
120
134
|
type: String,
|
121
|
-
default: "radio"
|
135
|
+
default: "radio",
|
136
|
+
validator(value) {
|
137
|
+
return value === "checkbox" ||
|
138
|
+
value === "radio"
|
139
|
+
}
|
122
140
|
},
|
123
141
|
/**
|
124
142
|
* set status for label and inner form-elements
|
125
143
|
*
|
126
|
-
* @allowedValues: error, warning, success, info
|
144
|
+
* @allowedValues: "", error, warning, success, info
|
127
145
|
*
|
128
146
|
* @affectsStyling: true
|
129
147
|
*/
|
130
148
|
status: {
|
131
149
|
type: String,
|
132
|
-
required: false
|
150
|
+
required: false,
|
151
|
+
validator(value) {
|
152
|
+
return value === "" ||
|
153
|
+
value === "error" ||
|
154
|
+
value === "warning" ||
|
155
|
+
value === "success" ||
|
156
|
+
value === "info"
|
157
|
+
}
|
133
158
|
},
|
134
159
|
/**
|
135
160
|
* for replacing native checkboxes/radio-buttons by custom ones (based on frontend-framework)
|
@@ -267,6 +292,7 @@ export default {
|
|
267
292
|
</script>
|
268
293
|
|
269
294
|
<style>
|
295
|
+
/* begin cmd-input-group ------------------------------------------------------------------------------------------ */
|
270
296
|
.cmd-input-group {
|
271
297
|
&.inline {
|
272
298
|
display: flex;
|
@@ -279,24 +305,50 @@ export default {
|
|
279
305
|
}
|
280
306
|
|
281
307
|
/* overwrite default behavior from frontend-framework */
|
282
|
-
.label-text {
|
308
|
+
> .label-text {
|
283
309
|
display: inline-flex;
|
310
|
+
margin-bottom: calc(var(--default-margin) / 2);
|
284
311
|
|
285
|
-
> span + a
|
312
|
+
> span + a:has([class*="icon-"]) {
|
286
313
|
margin-left: calc(var(--default-margin) / 2);
|
287
314
|
}
|
315
|
+
|
316
|
+
&:hover, &:active, &:focus {
|
317
|
+
span {
|
318
|
+
color: var(--hyperlink-color-highlighted)
|
319
|
+
}
|
320
|
+
|
321
|
+
& + .flex-container {
|
322
|
+
label:not(:has(input:checked)) .label-text {
|
323
|
+
color: var(--default-text-color);
|
324
|
+
}
|
325
|
+
|
326
|
+
input {
|
327
|
+
border-color: var(--default-border-color);
|
328
|
+
}
|
329
|
+
}
|
330
|
+
}
|
288
331
|
}
|
289
332
|
|
290
333
|
&.has-state {
|
291
|
-
|
334
|
+
&.error {
|
335
|
+
--status-color: var(--error-color);
|
336
|
+
}
|
337
|
+
|
338
|
+
label, [class*="icon-"] {
|
292
339
|
color: var(--status-color);
|
293
340
|
}
|
294
341
|
|
295
342
|
&.multiple-switch {
|
296
343
|
label {
|
297
344
|
border-color: var(--status-color);
|
345
|
+
|
346
|
+
> * {
|
347
|
+
color: var(--status-color);
|
348
|
+
}
|
298
349
|
}
|
299
350
|
}
|
300
351
|
}
|
301
352
|
}
|
353
|
+
/* end cmd-input-group ------------------------------------------------------------------------------------------ */
|
302
354
|
</style>
|
@@ -8,7 +8,7 @@
|
|
8
8
|
<!-- end cmd-headline -->
|
9
9
|
|
10
10
|
<!-- begin list of links -->
|
11
|
-
<ul :class="['flex-container', {'no-gap': !useGap},'align-' + align, setStretchClass]">
|
11
|
+
<ul :class="['flex-container', {'no-gap': !useGap}, 'align-' + align, setStretchClass]">
|
12
12
|
<CmdListOfLinksItem
|
13
13
|
v-if="!editModeContext"
|
14
14
|
v-for="(link, index) in links"
|
@@ -106,7 +106,12 @@ export default {
|
|
106
106
|
*/
|
107
107
|
align: {
|
108
108
|
type: String,
|
109
|
-
default: "left"
|
109
|
+
default: "left",
|
110
|
+
validator(value) {
|
111
|
+
return value === "left" ||
|
112
|
+
value === "center" ||
|
113
|
+
value === "right"
|
114
|
+
}
|
110
115
|
},
|
111
116
|
/**
|
112
117
|
* properties for CmdHeadline-component
|
@@ -129,7 +134,11 @@ export default {
|
|
129
134
|
*/
|
130
135
|
orientation: {
|
131
136
|
type: String,
|
132
|
-
default: "vertical"
|
137
|
+
default: "vertical",
|
138
|
+
validator(value) {
|
139
|
+
return value === "horizontal" ||
|
140
|
+
value === "vertical"
|
141
|
+
}
|
133
142
|
}
|
134
143
|
},
|
135
144
|
computed: {
|
@@ -183,6 +192,14 @@ export default {
|
|
183
192
|
list-style: none;
|
184
193
|
margin-left: 0;
|
185
194
|
}
|
195
|
+
|
196
|
+
&.align-center {
|
197
|
+
justify-content: center;
|
198
|
+
}
|
199
|
+
|
200
|
+
&.align-right li {
|
201
|
+
text-align: right;
|
202
|
+
}
|
186
203
|
}
|
187
204
|
|
188
205
|
&.horizontal {
|
@@ -195,10 +212,6 @@ export default {
|
|
195
212
|
display: flex;
|
196
213
|
}
|
197
214
|
|
198
|
-
&.align-center {
|
199
|
-
justify-content: center;
|
200
|
-
}
|
201
|
-
|
202
215
|
&.align-right {
|
203
216
|
justify-content: flex-end;
|
204
217
|
}
|
@@ -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
|
-
|
5
|
+
{{ headlineRequirements }}<template v-if="labelText"><br/><em>{{ labelText }}</em></template>
|
6
6
|
</CmdHeadline>
|
7
7
|
<!-- end CmdHeadline -->
|
8
8
|
|
@@ -154,27 +154,23 @@ export default {
|
|
154
154
|
/* begin cmd-list-of-requirements ------------------------------------------------------------------------------------------ */
|
155
155
|
.cmd-list-of-requirements {
|
156
156
|
dl {
|
157
|
-
|
158
|
-
|
157
|
+
span[class*="icon-"] {
|
158
|
+
color: var(--status-color);
|
159
|
+
}
|
159
160
|
|
160
|
-
|
161
|
-
|
162
|
-
}
|
161
|
+
.error, .error span {
|
162
|
+
--status-color: var(--error-color);
|
163
163
|
}
|
164
164
|
|
165
|
-
.warning {
|
165
|
+
.warning, .warning span {
|
166
166
|
--status-color: var(--warning-color);
|
167
167
|
}
|
168
168
|
|
169
|
-
.success {
|
170
|
-
--status-color: var(--success-color)
|
171
|
-
|
172
|
-
[class*="icon-"] {
|
173
|
-
color: var(--status-color);
|
174
|
-
}
|
169
|
+
.success, .success span {
|
170
|
+
--status-color: var(--success-color);
|
175
171
|
}
|
176
172
|
|
177
|
-
.info {
|
173
|
+
.info, .info span {
|
178
174
|
--status-color: var(--info-color);
|
179
175
|
}
|
180
176
|
|
@@ -182,10 +178,6 @@ export default {
|
|
182
178
|
color: var(--status-color);
|
183
179
|
}
|
184
180
|
|
185
|
-
[class*="icon-"] {
|
186
|
-
color: var(--status-color);
|
187
|
-
}
|
188
|
-
|
189
181
|
& ~ a {
|
190
182
|
display: flex;
|
191
183
|
align-items: center;
|
@@ -15,6 +15,7 @@
|
|
15
15
|
<CmdFormElement
|
16
16
|
element="input"
|
17
17
|
type="text"
|
18
|
+
ref="username"
|
18
19
|
:name="cmdFormElementUsername.name"
|
19
20
|
:id="cmdFormElementUsername.id"
|
20
21
|
v-model="username"
|
@@ -46,7 +47,7 @@
|
|
46
47
|
<div class="option-wrapper flex-container">
|
47
48
|
<template v-if="options.forgotPassword || options.createAccount">
|
48
49
|
<!-- begin link for 'forgot password' -->
|
49
|
-
<a v-if="options.forgotPassword" href="#" @click.prevent="
|
50
|
+
<a v-if="options.forgotPassword" href="#" @click.prevent="toggleSendLoginView">
|
50
51
|
<!-- begin CmdIcon -->
|
51
52
|
<CmdIcon v-if="options.forgotPassword.icon?.show && options.forgotPassword.icon?.iconClass"
|
52
53
|
:iconClass="options.forgotPassword.icon.iconClass"
|
@@ -134,7 +135,7 @@
|
|
134
135
|
<!-- end CmdFormElement -->
|
135
136
|
|
136
137
|
<div class="option-wrapper flex-container">
|
137
|
-
<a href="#" @click.prevent="
|
138
|
+
<a href="#" @click.prevent="toggleSendLoginView">
|
138
139
|
<!-- begin CmdIcon -->
|
139
140
|
<CmdIcon
|
140
141
|
v-if="options.backToLoginForm && options.backToLoginForm.icon && options.backToLoginForm.icon.show && options.backToLoginForm.icon.iconClass"
|
@@ -392,6 +393,17 @@ export default {
|
|
392
393
|
}
|
393
394
|
},
|
394
395
|
methods: {
|
396
|
+
toggleSendLoginView() {
|
397
|
+
this.sendLogin = !this.sendLogin
|
398
|
+
|
399
|
+
this.$nextTick(() => {
|
400
|
+
if(this.sendLogin) {
|
401
|
+
this.$refs.sendPassword.setFocus()
|
402
|
+
} else {
|
403
|
+
this.$refs.username.setFocus()
|
404
|
+
}
|
405
|
+
})
|
406
|
+
},
|
395
407
|
modelChange() {
|
396
408
|
this.$emit("update:modelValue", { "username": this.username, "password": this.password })
|
397
409
|
},
|
@@ -219,7 +219,11 @@ export default {
|
|
219
219
|
*/
|
220
220
|
offcanvasPosition: {
|
221
221
|
type: String,
|
222
|
-
default: "right"
|
222
|
+
default: "right",
|
223
|
+
validator(value) {
|
224
|
+
return value === "right" ||
|
225
|
+
value === "left"
|
226
|
+
}
|
223
227
|
},
|
224
228
|
/**
|
225
229
|
* button to open off-canvas-navigation
|
@@ -119,7 +119,8 @@ export default {
|
|
119
119
|
gap: var(--default-gap);
|
120
120
|
|
121
121
|
li {
|
122
|
-
border: var(--default-border)
|
122
|
+
border: var(--default-border);
|
123
|
+
border-color: var(--primary-color-reduced-opacity);
|
123
124
|
border-radius: var(--default-border-radius);;
|
124
125
|
|
125
126
|
a, a.active {
|
@@ -138,6 +139,14 @@ export default {
|
|
138
139
|
color: var(--default-text-color) !important;
|
139
140
|
}
|
140
141
|
}
|
142
|
+
|
143
|
+
&.active {
|
144
|
+
border-color: var(--primary-color);
|
145
|
+
|
146
|
+
& ~li {
|
147
|
+
border-color: var(--border-color);
|
148
|
+
}
|
149
|
+
}
|
141
150
|
}
|
142
151
|
}
|
143
152
|
|
@@ -174,7 +183,7 @@ export default {
|
|
174
183
|
border: var(--default-border);
|
175
184
|
border-radius: var(--full-circle);
|
176
185
|
background: var(--pure-white);
|
177
|
-
color: var(--text-color);
|
186
|
+
color: var(--default-text-color);
|
178
187
|
margin: 0;
|
179
188
|
position: absolute;
|
180
189
|
right: 0;
|
@@ -219,10 +228,6 @@ export default {
|
|
219
228
|
}
|
220
229
|
}
|
221
230
|
|
222
|
-
&:not(:first-child) {
|
223
|
-
border-left: .2rem solid var(--border-color);
|
224
|
-
}
|
225
|
-
|
226
231
|
&:last-child {
|
227
232
|
a {
|
228
233
|
[class*="icon-"] {
|
@@ -247,7 +252,7 @@ export default {
|
|
247
252
|
|
248
253
|
& + [class*="icon-"] {
|
249
254
|
&:last-child {
|
250
|
-
color: var(--text-color);
|
255
|
+
color: var(--default-text-color);
|
251
256
|
}
|
252
257
|
}
|
253
258
|
}
|
@@ -197,13 +197,11 @@ export default {
|
|
197
197
|
toggleClosedStatus(period) {
|
198
198
|
period === 'am' ? this.editableDay.amClosed = !this.editableDay.amClosed : this.editableDay.pmClosed = !this.editableDay.pmClosed
|
199
199
|
},
|
200
|
-
getTime(time
|
200
|
+
getTime(time) {
|
201
201
|
if (this.timeFormatter) {
|
202
202
|
return this.timeFormatter(time.hours, time.mins)
|
203
203
|
}
|
204
204
|
|
205
|
-
console.log("suffix", suffix)
|
206
|
-
|
207
205
|
return timeFormatting(":", " " + this.abbreviationTextAm, " " + this.abbreviationTextPm, false)(time.hours, time.mins)
|
208
206
|
},
|
209
207
|
updateHandlerProvider() {
|
@@ -17,7 +17,11 @@ export default {
|
|
17
17
|
*/
|
18
18
|
orientation: {
|
19
19
|
type: String,
|
20
|
-
default:
|
20
|
+
default: "horizontal",
|
21
|
+
validator(value) {
|
22
|
+
return value === "horizontal" ||
|
23
|
+
value === "vertical"
|
24
|
+
}
|
21
25
|
}
|
22
26
|
}
|
23
27
|
}
|
@@ -29,6 +33,8 @@ export default {
|
|
29
33
|
padding: var(--grid-gap) 0;
|
30
34
|
border-top: var(--default-border);
|
31
35
|
background: var(--default-background-color);
|
36
|
+
margin-top: auto;
|
37
|
+
flex: none;
|
32
38
|
|
33
39
|
footer {
|
34
40
|
max-width: var(--max-width);
|
@@ -46,6 +52,10 @@ export default {
|
|
46
52
|
width: 100%;
|
47
53
|
flex: none;
|
48
54
|
}
|
55
|
+
|
56
|
+
+ .cmd-copyright-information {
|
57
|
+
margin-top: 0;
|
58
|
+
}
|
49
59
|
}
|
50
60
|
</style>
|
51
61
|
|
@@ -21,7 +21,13 @@ export default {
|
|
21
21
|
*/
|
22
22
|
slideButtonType: {
|
23
23
|
type: String,
|
24
|
-
default: "next"
|
24
|
+
default: "next",
|
25
|
+
validator(value) {
|
26
|
+
return value === "next" ||
|
27
|
+
value === "prev" ||
|
28
|
+
value === "up" ||
|
29
|
+
value === "down"
|
30
|
+
}
|
25
31
|
},
|
26
32
|
/**
|
27
33
|
* default slide-buttons
|
@@ -180,12 +180,15 @@ export default {
|
|
180
180
|
}
|
181
181
|
},
|
182
182
|
beforeUnmount() {
|
183
|
-
|
184
|
-
window.clearInterval(this.hnd);
|
185
|
-
this.hnd = null;
|
186
|
-
}
|
183
|
+
this.stopAutoplay()
|
187
184
|
},
|
188
185
|
methods: {
|
186
|
+
stopAutoplay() {
|
187
|
+
if (this.hnd !== null) {
|
188
|
+
window.clearInterval(this.hnd);
|
189
|
+
this.hnd = null;
|
190
|
+
}
|
191
|
+
},
|
189
192
|
itemProvider() {
|
190
193
|
return {
|
191
194
|
"image": {
|
@@ -302,6 +305,19 @@ export default {
|
|
302
305
|
immediate: true,
|
303
306
|
deep: true
|
304
307
|
},
|
308
|
+
autoplay() {
|
309
|
+
if(this.autoplay) {
|
310
|
+
this.setupSlider()
|
311
|
+
} else {
|
312
|
+
this.stopAutoplay()
|
313
|
+
}
|
314
|
+
},
|
315
|
+
autoplayInterval() {
|
316
|
+
if(this.autoplay) {
|
317
|
+
this.stopAutoplay()
|
318
|
+
this.setupSlider()
|
319
|
+
}
|
320
|
+
},
|
305
321
|
currentItem() {
|
306
322
|
// wait to nextTick to ensure ref is available
|
307
323
|
this.$nextTick(() => {
|
@@ -334,6 +350,18 @@ export default {
|
|
334
350
|
background: var(--primary-color);
|
335
351
|
}
|
336
352
|
|
353
|
+
&:has(figcaption) {
|
354
|
+
img {
|
355
|
+
border-bottom-left-radius: 0;
|
356
|
+
border-bottom-right-radius: 0;
|
357
|
+
}
|
358
|
+
|
359
|
+
figcaption {
|
360
|
+
border-bottom-left-radius: var(--default-border-radius);
|
361
|
+
border-bottom-right-radius: var(--default-border-radius);
|
362
|
+
}
|
363
|
+
}
|
364
|
+
|
337
365
|
.inner-slideshow-wrapper {
|
338
366
|
display: flex;
|
339
367
|
justify-content: center;
|
@@ -441,7 +469,7 @@ export default {
|
|
441
469
|
top: .5rem;
|
442
470
|
right: 5.5rem;
|
443
471
|
padding: 0 0.2rem;
|
444
|
-
border-radius: var(--border-radius);
|
472
|
+
border-radius: var(--default-border-radius);
|
445
473
|
background: var(--pure-white-reduced-opacity);
|
446
474
|
}
|
447
475
|
}
|