comand-component-library 4.2.50 → 4.2.52

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 (57) hide show
  1. package/dist/comand-component-library.js +2663 -2332
  2. package/dist/style.css +1 -1
  3. package/package.json +2 -2
  4. package/src/ComponentLibrary.vue +639 -1267
  5. package/src/assets/data/box-product.json +15 -10
  6. package/src/assets/data/box-user.json +8 -8
  7. package/src/assets/data/list-of-tags.json +1 -1
  8. package/src/assets/data/pages/boxes-team-overview.json +8 -8
  9. package/src/componentSettingsDataAndControls.vue +82 -10
  10. package/src/components/CmdAddressData.vue +2 -0
  11. package/src/components/CmdAddressDataItem.vue +2 -1
  12. package/src/components/CmdBackToTopButton.vue +12 -3
  13. package/src/components/CmdBankAccountData.vue +2 -0
  14. package/src/components/CmdBasicForm.vue +6 -2
  15. package/src/components/CmdBox.vue +62 -35
  16. package/src/components/CmdBoxWrapper.vue +6 -0
  17. package/src/components/CmdBreadcrumbs.vue +2 -0
  18. package/src/components/CmdCodeOutput.vue +2 -0
  19. package/src/components/CmdCompanyLogo.vue +2 -0
  20. package/src/components/CmdContainer.vue +100 -87
  21. package/src/components/CmdCookieDisclaimer.vue +12 -1
  22. package/src/components/CmdCopyrightInformation.vue +2 -0
  23. package/src/components/CmdFakeSelect.vue +10 -6
  24. package/src/components/CmdFancyBox.vue +2 -0
  25. package/src/components/CmdFlexibleScrollContainer.vue +2 -0
  26. package/src/components/CmdForm.vue +2 -0
  27. package/src/components/CmdFormElement.vue +11 -1
  28. package/src/components/CmdFormFilters.vue +2 -0
  29. package/src/components/CmdGoogleMaps.vue +2 -0
  30. package/src/components/CmdHeadline.vue +23 -1
  31. package/src/components/CmdIcon.vue +2 -0
  32. package/src/components/CmdImage.vue +3 -0
  33. package/src/components/CmdImageGallery.vue +3 -1
  34. package/src/components/CmdImageZoom.vue +2 -0
  35. package/src/components/CmdInnerLink.vue +2 -0
  36. package/src/components/CmdInputGroup.vue +2 -0
  37. package/src/components/CmdLink.vue +16 -10
  38. package/src/components/CmdList.vue +168 -86
  39. package/src/components/CmdListOfLinksItem.vue +2 -0
  40. package/src/components/CmdListOfRequirements.vue +2 -0
  41. package/src/components/CmdLoginForm.vue +2 -2
  42. package/src/components/CmdMailTool.vue +2 -0
  43. package/src/components/CmdMailToolEntry.vue +2 -1
  44. package/src/components/CmdMailToolFilter.vue +2 -0
  45. package/src/components/CmdMainNavigation.vue +2 -0
  46. package/src/components/CmdMultistepFormProgressBar.vue +16 -10
  47. package/src/components/CmdProgressBar.vue +1 -1
  48. package/src/components/CmdSiteSearch.vue +10 -1
  49. package/src/components/CmdSlideButton.vue +3 -4
  50. package/src/components/CmdSlideshow.vue +10 -1
  51. package/src/components/CmdSmartSearch.vue +42 -11
  52. package/src/components/CmdSystemMessage.vue +8 -5
  53. package/src/components/CmdTable.vue +8 -6
  54. package/src/components/CmdTabs.vue +37 -3
  55. package/src/components/CmdThumbnailScroller.vue +12 -3
  56. package/src/components/CmdUploadForm.vue +12 -1
  57. package/src/components/CmdFlexContainer.vue +0 -109
@@ -1,4 +1,5 @@
1
1
  <template>
2
+ <!-- begin CmdBreadcrumbs ---------------------------------------------------------------------------------------- -->
2
3
  <ul class="cmd-breadcrumbs">
3
4
  <li v-if="breadcrumbLabel" class="breadcrumb-label">{{ breadcrumbLabel }}</li>
4
5
  <li v-for="(link, index) in breadcrumbLinks || []" :key="index">
@@ -29,6 +30,7 @@
29
30
  <span class="separator" v-if="index < breadcrumbLinks.length - 1">{{ breadcrumbSeparator }}</span>
30
31
  </li>
31
32
  </ul>
33
+ <!-- end CmdBreadcrumbs ---------------------------------------------------------------------------------------- -->
32
34
  </template>
33
35
 
34
36
  <script>
@@ -1,5 +1,6 @@
1
1
 
2
2
  <template>
3
+ <!-- begin CmdOutput ---------------------------------------------------------------------------------------- -->
3
4
  <div :class="['cmd-code-output', {box : styleAsBox}]" style="max-height: maxHeight">
4
5
  <a v-if="allowCopyByClick" href="#" @click.prevent="copyToClipboard()" :title="cmdIcon.tooltip">
5
6
  <!-- begin CmdIcon -->
@@ -20,6 +21,7 @@
20
21
  </code>
21
22
  <!-- end unformatted code -->
22
23
  </div>
24
+ <!-- end CmdOutput ---------------------------------------------------------------------------------------- -->
23
25
  </template>
24
26
 
25
27
  <script>
@@ -1,4 +1,5 @@
1
1
  <template>
2
+ <!-- begin CmdCompanyLogo ---------------------------------------------------------------------------------------- -->
2
3
  <div class="cmd-company-logo company-logo">
3
4
  <router-link v-if="link?.type === 'router'" :to="link?.path" :title="link?.tooltip">
4
5
  <!-- begin CmdImage -->
@@ -14,6 +15,7 @@
14
15
  <CmdImage v-else :image="image" @image-loaded="onImageLoaded" />
15
16
  <!-- end CmdImage -->
16
17
  </div>
18
+ <!-- end CmdCompanyLogo ---------------------------------------------------------------------------------------- -->
17
19
  </template>
18
20
 
19
21
  <script>
@@ -1,93 +1,111 @@
1
1
  <template>
2
+ <!-- begin CmdContainer ---------------------------------------------------------------------------------------- -->
2
3
  <div class="cmd-container">
3
- <!-- begin cmd-headline -->
4
- <CmdHeadline
5
- v-if="cmdHeadline"
6
- v-bind="cmdHeadline"
7
- />
8
- <!-- end cmd-headline -->
4
+ <!-- begin CmdHeadline -->
5
+ <CmdHeadline v-if="cmdHeadline" v-bind="cmdHeadline" />
6
+ <!-- end CmdHeadline -->
9
7
 
10
- <!-- begin contentAboveSlot -->
11
- <div v-if="contentAboveSlot" v-html="contentAboveSlot"></div>
12
- <!-- end contentAboveSlot -->
13
-
14
- <!-- begin slot-content (one column/slot-item only) -->
15
- <slot v-if="oneSlotItem()"></slot>
16
- <!-- end slot-content (one column/slot-item only) -->
17
-
18
- <!-- begin grid-/flex-container to wrap multiple columns/items -->
19
- <div v-else :class="[setInnerClass, 'inner-slot-wrapper']">
20
- <!-- begin slot-content (multiple columns only) -->
21
- <slot><p>{{innerText}}</p></slot>
22
- <!-- end slot-content (multiple columns only) -->
8
+ <div :class="htmlClasses">
9
+ <!-- begin slot-content -->
10
+ <slot></slot>
11
+ <!-- end slot-content -->
23
12
  </div>
24
- <!-- end grid-/flex-container to wrap multiple columns/items -->
25
-
26
- <!-- begin contentBelowSlot -->
27
- <div v-if="contentBelowSlot" v-html="contentBelowSlot"></div>
28
- <!-- end contentBelowSlot -->
29
13
  </div>
14
+ <!-- end CmdContainer ---------------------------------------------------------------------------------------- -->
30
15
  </template>
31
16
 
32
17
  <script>
33
18
  export default {
34
19
  name: "CmdContainer",
35
20
  props: {
36
- /**
37
- * define (html-)content to display above slot-content
21
+ /** define container-type
38
22
  *
39
- * @canContainHtml: true
23
+ * @affectsStyling: true
24
+ * @allowedValues: "", "default", "flex", "grid"
40
25
  */
41
- contentAboveSlot: {
26
+ containerType: {
42
27
  type: String,
43
- required: false
28
+ default: "default",
29
+ validator(value) {
30
+ return value === "" ||
31
+ value === "default" ||
32
+ value === "flex" ||
33
+ value === "grid"
34
+ }
44
35
  },
45
36
  /**
46
- * define inner-text
37
+ * define content-orientation
38
+ *
39
+ * containerType-property must be set to "flex"
40
+ *
41
+ * @affectsStyling: true
42
+ * @allowedValues: "vertical", "horizontal"
47
43
  */
48
- innerText: {
49
- type: String ,
50
- required: false
44
+ contentOrientation: {
45
+ type: String,
46
+ default: "vertical",
47
+ validator(value) {
48
+ return value === "horizontal" ||
49
+ value === "vertical"
50
+ }
51
51
  },
52
52
  /**
53
- * define (html-)content to display below slot-content
53
+ * activate if no gap between items should be used
54
54
  *
55
- * @canContainHtml: true
55
+ * @affectsStyling: true
56
56
  */
57
- contentBelowSlot: {
58
- type: String,
59
- required: false
57
+ noGap: {
58
+ type: Boolean,
59
+ default: true
60
60
  },
61
61
  /**
62
- * define container-type
62
+ * activate if items should not behave like flex-items (they are now shrunk to their content)
63
63
  *
64
- * @allowedValues: "grid", "flex"
64
+ * @affectsStyling: true
65
65
  */
66
- containerType: {
67
- type: String,
68
- required: false
66
+ flexNone: {
67
+ type: Boolean,
68
+ default: false
69
69
  },
70
70
  /**
71
- * define content-orientation
71
+ * define how the items will be aligned vertically
72
72
  *
73
- * containerType-property must be set to "flex"
73
+ * attention: if alignContentVertical is activated, this property defines the horizontal alignment
74
74
  *
75
- * @allowedValues: "vertical", "horizontal"
75
+ * @allowedValues: top, flex-start, center, flex-end, bottom
76
+ * @affectsStyling: true
76
77
  */
77
- contentOrientation: {
78
+ alignItems: {
78
79
  type: String,
79
- default: "vertical",
80
+ required: false,
80
81
  validator(value) {
81
- return value === "horizontal" ||
82
- value === "vertical"
82
+ return value === "top" ||
83
+ value === "flex-start" ||
84
+ value === "center" ||
85
+ value === "flex-end" ||
86
+ value === "bottom"
83
87
  }
84
88
  },
85
89
  /**
86
- * define a class to set on inner div
90
+ * define how the items will be aligned/justified horizontally.
91
+ *
92
+ * attention: if alignContentVertical is activated, this property defines the vertical alignment/justification
93
+ *
94
+ * @allowedValues: top, flex-start, center, flex-end, bottom, space-between, space-around
95
+ * @affectsStyling: true
87
96
  */
88
- innerClass: {
97
+ justifyContent: {
89
98
  type: String,
90
- required: false
99
+ required: false,
100
+ validator(value) {
101
+ return value === "top" ||
102
+ value === "flex-start" ||
103
+ value === "center" ||
104
+ value === "flex-end" ||
105
+ value === "bottom" ||
106
+ value === "space-between" ||
107
+ value === "space-around"
108
+ }
91
109
  },
92
110
  /**
93
111
  * properties for CmdHeadline-component
@@ -97,43 +115,38 @@ export default {
97
115
  required: false
98
116
  }
99
117
  },
100
- methods: {
101
- addHandlerProvider() {
102
- return ""
103
- },
104
- oneSlotItem() {
105
- if (typeof this.$slots.default !== "function") {
106
- return false
107
- }
118
+ computed: {
119
+ htmlClasses() {
120
+ const htmlClasses = []
108
121
 
109
- const vnodes = this.$slots.default()
122
+ if (this.containerType !== 'default') {
123
+ if (this.containerType === "flex") {
124
+ htmlClasses.push("flex-container")
110
125
 
111
- if (vnodes.length === 1 && typeof vnodes[0].type === "symbol" && Array.isArray(vnodes[0].children)) {
112
- return vnodes[0].children.length === 1
113
- }
114
- if (vnodes.length === 1 && typeof vnodes[0].type === "object" && vnodes[0].type.name === "RenderComponents" && typeof vnodes[0].props === "object" && Array.isArray(vnodes[0].props.components)) {
115
- return vnodes[0].props.components.length === 1
116
- }
117
- return vnodes.length === 1
118
- }
119
- },
120
- computed: {
121
- setInnerClass() {
122
- let htmlClass = this.innerClass || ""
123
- switch (this.containerType) {
124
- case "grid":
125
- htmlClass += " grid-container-create-columns"
126
- break
127
- case "flex":
128
- if (this.contentOrientation === "horizontal") {
129
- htmlClass += " flex-container"
130
- } else if (this.contentOrientation === "vertical") {
131
- htmlClass += " flex-container vertical"
126
+ if (this.contentOrientation) {
127
+ htmlClasses.push(this.contentOrientation === "vertical" ? "flex-direction-column" : null)
128
+ }
129
+ if (this.useGap) {
130
+ htmlClasses.push("no-gap")
132
131
  }
133
- break
134
- default: /* do nothing */
132
+ if (this.flexNone) {
133
+ htmlClasses.push("flex-none")
134
+ }
135
+ if (this.alignItems) {
136
+ htmlClasses.push("align-items-" + this.alignItems)
137
+ }
138
+ }
139
+
140
+ if (this.containerType === "grid") {
141
+ htmlClasses.push("grid-container-create-columns")
142
+ }
135
143
  }
136
- return htmlClass
144
+
145
+ if (this.justifyContent) {
146
+ htmlClasses.push("justify-content-" + this.justifyContent)
147
+ }
148
+
149
+ return htmlClasses.join(" ")
137
150
  }
138
151
  }
139
152
  }
@@ -143,4 +156,4 @@ export default {
143
156
  .cmd-container {
144
157
  min-height: 1rem;
145
158
  }
146
- </style>
159
+ </style>
@@ -1,5 +1,6 @@
1
1
  <template>
2
- <transition name="fade">
2
+ <transition :name="transition">
3
+ <!-- begin CmdCookieDisclaimer ---------------------------------------------------------------------------------------- -->
3
4
  <div class="cmd-cookie-disclaimer flex-container vertical">
4
5
  <!-- begin slot -->
5
6
  <template v-if="useSlot">
@@ -135,6 +136,7 @@
135
136
  <!-- end button-wrapper for 'accept'-buttons -->
136
137
  </div>
137
138
  </div>
139
+ <!-- end CmdCookieDisclaimer ---------------------------------------------------------------------------------------- -->
138
140
  </transition>
139
141
  </template>
140
142
 
@@ -153,6 +155,15 @@ export default {
153
155
  }
154
156
  },
155
157
  props: {
158
+ /**
159
+ * define the transition when cookie disclaimer disappears
160
+ *
161
+ * @allowedValues: "none", "fade", "scroll"
162
+ */
163
+ transition: {
164
+ type: String,
165
+ default: "fade"
166
+ },
156
167
  /**
157
168
  * define icon-class for collapsed box
158
169
  */
@@ -1,7 +1,9 @@
1
1
  <template>
2
+ <!-- begin CmdCopyrightInformation ---------------------------------------------------------------------------------------- -->
2
3
  <div class="cmd-copyright-information" role="contentinfo">
3
4
  <a href="https://www.comand-ui.com" target="comand-ui-website" lang="en" title="CoManD-UI-Website">&copy; CoManD-UI</a>
4
5
  </div>
6
+ <!-- end CmdCopyrightInformation ---------------------------------------------------------------------------------------- -->
5
7
  </template>
6
8
 
7
9
  <script>
@@ -1,4 +1,5 @@
1
1
  <template>
2
+ <!-- begin CmdFakeSelect ---------------------------------------------------------------------------------------- -->
2
3
  <div
3
4
  :class="[
4
5
  validationStatus,
@@ -174,6 +175,7 @@
174
175
  </li>
175
176
  </ul>
176
177
  </div>
178
+ <!-- end CmdFakeSelect ---------------------------------------------------------------------------------------- -->
177
179
  </template>
178
180
 
179
181
  <script>
@@ -525,7 +527,7 @@ export default {
525
527
  /* begin cmd-fake-select ------------------------------------------------------------------------------------------ */
526
528
  .cmd-fake-select {
527
529
  align-self: flex-end;
528
- border-radius: var(--default-border-radius);
530
+ border-radius: var(--form-input-border-radius);
529
531
 
530
532
  > span:first-child {
531
533
  a {
@@ -551,16 +553,16 @@ export default {
551
553
  display: block;
552
554
  min-width: 0;
553
555
  box-shadow: none;
554
- border-radius: var(--default-border-radius);
556
+ border-radius: var(--form-input-border-radius);
555
557
 
556
558
  > li {
557
559
  height: 100%;
558
- border-radius: var(--default-border-radius);
560
+ border-radius: var(--form-input-border-radius);
559
561
 
560
562
  &:first-child {
561
563
  > a {
562
564
  height: inherit;
563
- border: var(--default-border);
565
+ border: var(--form-input-border);
564
566
  background: var(--color-scheme-background);
565
567
  color: var(--color-scheme-text-color);
566
568
  border-radius: var(--default-border-radius);
@@ -631,8 +633,10 @@ export default {
631
633
  display: flex;
632
634
  align-items: center;
633
635
  width: 100%;
634
- padding: .7rem;
635
- padding-top: .8rem;
636
+ padding: var(--form-input-padding);
637
+ padding-top: calc(var(--default-padding) - .06rem);
638
+ padding-right: calc(var(--default-padding) / 2);
639
+ padding-bottom: calc(var(--default-padding) - .06rem);
636
640
  outline: none;
637
641
  border-bottom: var(--default-border);
638
642
  text-decoration: none;
@@ -1,4 +1,5 @@
1
1
  <template>
2
+ <!-- begin CmdFancybox ---------------------------------------------------------------------------------------- -->
2
3
  <dialog
3
4
  ref="dialog"
4
5
  :class="['cmd-fancybox', {'show-overlay': showOverlay, 'image' : fancyBoxImageUrl || fancyBoxGallery, 'image-gallery': fancyBoxGallery}]"
@@ -135,6 +136,7 @@
135
136
  />
136
137
  <!-- end CmdThumbnailScroller -->
137
138
  </dialog>
139
+ <!-- end CmdFancybox ---------------------------------------------------------------------------------------- -->
138
140
  </template>
139
141
 
140
142
  <script>
@@ -1,4 +1,5 @@
1
1
  <template>
2
+ <!-- begin CmdFlexibleScrollContainer ---------------------------------------------------------------------------------------- -->
2
3
  <div :class="['cmd-flexible-scroll-container flexible-scroll-container', {'reverse-order': fixedContainerAtBottom}]">
3
4
  <div class="fixed-wrapper">
4
5
  <!-- begin slot for fixed-wrapper -->
@@ -11,6 +12,7 @@
11
12
  <!-- end slot for scroll-wrapper -->
12
13
  </div>
13
14
  </div>
15
+ <!-- end CmdFlexibleScrollContainer ---------------------------------------------------------------------------------------- -->
14
16
  </template>
15
17
 
16
18
  <script>
@@ -1,4 +1,5 @@
1
1
  <template>
2
+ <!-- begin CmdForm ---------------------------------------------------------------------------------------- -->
2
3
  <form class="cmd-form" :action="formAction" :data-use-validation="useValidation" @submit="onSubmit"
3
4
  :class="{error: errorOccurred}" :novalidate="novalidate" :method="formMethod">
4
5
  <template v-if="useFieldset">
@@ -95,6 +96,7 @@
95
96
  <slot v-else></slot>
96
97
  <!-- end default-slot-content -->
97
98
  </form>
99
+ <!-- end CmdForm ---------------------------------------------------------------------------------------- -->
98
100
  </template>
99
101
 
100
102
  <script>
@@ -1,4 +1,5 @@
1
1
  <template>
2
+ <!-- begin CmdFormElement ---------------------------------------------------------------------------------------- -->
2
3
  <label
3
4
  v-if="(element === 'input' || element === 'select' || element === 'textarea')"
4
5
  :class="[
@@ -283,6 +284,7 @@
283
284
  <!-- end CmdIcon -->
284
285
  </button>
285
286
  <!-- end button -->
287
+ <!-- end CmdFormElement ---------------------------------------------------------------------------------------- -->
286
288
  </template>
287
289
 
288
290
  <script>
@@ -1033,6 +1035,13 @@ export default {
1033
1035
  .inner-input-wrapper {
1034
1036
  margin: 0;
1035
1037
 
1038
+ &:has(.button, button) {
1039
+ input {
1040
+ border-top-right-radius: 0;
1041
+ border-bottom-right-radius: 0;
1042
+ }
1043
+ }
1044
+
1036
1045
  a.deleteicon {
1037
1046
  position: absolute;
1038
1047
  top: 50%;
@@ -1057,7 +1066,8 @@ export default {
1057
1066
 
1058
1067
  a.button {
1059
1068
  right: 0;
1060
-
1069
+ align-self: stretch;
1070
+ aspect-ratio: 1 / 1; /* square */
1061
1071
  & + a {
1062
1072
  right: 5rem;
1063
1073
  }
@@ -1,4 +1,5 @@
1
1
  <template>
2
+ <!-- begin CmdFormFilters ---------------------------------------------------------------------------------------- -->
2
3
  <ul v-if="options.length" class="cmd-form-filters">
3
4
  <li v-if="options.length > 1">
4
5
  <a href="#" @click.prevent="deleteAllFilters">
@@ -17,6 +18,7 @@
17
18
  </a>
18
19
  </li>
19
20
  </ul>
21
+ <!-- end CmdFormElement ---------------------------------------------------------------------------------------- -->
20
22
  </template>
21
23
 
22
24
  <script>
@@ -1,4 +1,5 @@
1
1
  <template>
2
+ <!-- begin CmdGoogleMaps ---------------------------------------------------------------------------------------- -->
2
3
  <div class="cmd-google-maps responsive-wrapper">
3
4
  <!-- begin CmdHeadline -->
4
5
  <CmdHeadline v-if="cmdHeadline" v-bind="cmdHeadline" />
@@ -22,6 +23,7 @@
22
23
  </iframe>
23
24
  <!-- end iframe with google-map -->
24
25
  </div>
26
+ <!-- end CmdGoogleMaps ---------------------------------------------------------------------------------------- -->
25
27
  </template>
26
28
 
27
29
  <script>
@@ -1,10 +1,11 @@
1
1
  <template>
2
+ <!-- begin CmdHeadline ---------------------------------------------------------------------------------------- -->
2
3
  <!-- begin default-view -->
3
4
  <div v-if="!editModeContext || settingsContext || mainSidebarContext || headlineText"
4
5
  :class="['cmd-headline', {'has-pre-headline-text': preHeadlineText, 'has-icon': cmdIcon?.iconClass}, headlineTextAlign]">
5
6
  <!-- begin headline with pre-headline-text -->
6
7
  <template v-if="preHeadlineText">
7
- <component v-if="headlineText" :is="headlineTag">
8
+ <component v-if="headlineText" :is="headlineTag" :class="highlightLevel">
8
9
  <!-- begin CmdIcon -->
9
10
  <CmdIcon v-if="cmdIcon" v-bind="cmdIcon"/>
10
11
  <!-- end CmdIcon -->
@@ -115,6 +116,7 @@
115
116
  </template>
116
117
  </EditComponentWrapper>
117
118
  <!-- end edit-mode -->
119
+ <!-- end CmdHeadline ---------------------------------------------------------------------------------------- -->
118
120
  </template>
119
121
 
120
122
  <script>
@@ -145,6 +147,21 @@ export default {
145
147
  type: [String, Number],
146
148
  default: "2"
147
149
  },
150
+ /**
151
+ * set highlight-level for headline
152
+ *
153
+ * @allowedValues: "none", "primary", "secondary", "tertiary"
154
+ */
155
+ highlightLevel: {
156
+ type: Boolean,
157
+ default: "none",
158
+ validator(value) {
159
+ return value === "none" ||
160
+ value === "primary" ||
161
+ value === "secondary" ||
162
+ value === "tertiary"
163
+ }
164
+ },
148
165
  /**
149
166
  * small pre-headline-text above main-headline
150
167
  *
@@ -314,6 +331,11 @@ export default {
314
331
  }
315
332
 
316
333
  &.has-icon {
334
+ h1, h2, h3, h4, h5, h6 {
335
+ display: flex;
336
+ align-items: center;
337
+ }
338
+
317
339
  &.text-center {
318
340
  justify-content: center;
319
341
 
@@ -1,4 +1,5 @@
1
1
  <template>
2
+ <!-- begin CmdIcon ---------------------------------------------------------------------------------------- -->
2
3
  <!-- begin iconify-icon -->
3
4
  <Icon v-if="isIconify" :icon="iconClass" :title="tooltip" :class="$attrs.class"></Icon>
4
5
  <!-- end iconify-icon -->
@@ -6,6 +7,7 @@
6
7
  <!-- begin icon from local iconfont -->
7
8
  <span v-else :class="[iconClass, $attrs.class]" :title="tooltip"></span>
8
9
  <!-- end icon from local iconfont -->
10
+ <!-- end CmdIcon ---------------------------------------------------------------------------------------- -->
9
11
  </template>
10
12
 
11
13
  <script>
@@ -1,4 +1,5 @@
1
1
  <template>
2
+ <!-- begin CmdImage ---------------------------------------------------------------------------------------- -->
2
3
  <!-- begin edit-mode -->
3
4
  <EditComponentWrapper
4
5
  v-if="editModeContext"
@@ -108,7 +109,9 @@
108
109
  <img v-else class="cmd-image" :src="imageSource" :alt="image?.alt" :title="image?.tooltip" :loading="image?.lazyLoading ? 'lazy' : null" @load="onImageLoaded"/>
109
110
  <!-- end image without figure/figcaption -->
110
111
  <!-- end default-view -->
112
+ <!-- end CmdImage ---------------------------------------------------------------------------------------- -->
111
113
  </template>
114
+
112
115
  <script>
113
116
  import {createUuid} from "../utils/common.js"
114
117
  import {checkAndUploadFile} from "../utils/checkAndUploadFile"
@@ -1,5 +1,6 @@
1
1
  <template>
2
- <div class="grid-container-create-columns cmd-image-gallery">
2
+ <!-- begin CmdImageGallery ---------------------------------------------------------------------------------------- -->
3
+ <div class="cmd-image-gallery grid-container-create-columns">
3
4
  <!-- begin cmd-headline -->
4
5
  <CmdHeadline
5
6
  v-if="cmdHeadline?.headlineText || editModeContext"
@@ -47,6 +48,7 @@
47
48
  </button>
48
49
  <!-- end show placeholder if no image exists (and component is not edited) -->
49
50
  </div>
51
+ <!-- end CmdImageGallery ---------------------------------------------------------------------------------------- -->
50
52
  </template>
51
53
 
52
54
  <script>
@@ -1,4 +1,5 @@
1
1
  <template>
2
+ <!-- begin CmdImageZoom ---------------------------------------------------------------------------------------- -->
2
3
  <div class="cmd-image-zoom flex-container">
3
4
  <!-- begin small image -->
4
5
  <a href="#" class="flex-none thumbnail-imagezoom" :title="imageSmall.image.tooltip">
@@ -22,6 +23,7 @@
22
23
 
23
24
  <!-- end large image -->
24
25
  </div>
26
+ <!-- end CmdImageZoom ---------------------------------------------------------------------------------------- -->
25
27
  </template>
26
28
 
27
29
  <script>
@@ -1,4 +1,5 @@
1
1
  <template>
2
+ <!-- begin CmdInnerLink ---------------------------------------------------------------------------------------- -->
2
3
  <img v-if="image?.src && (image?.position === 'left' || image?.position === 'top' || !image?.position)" :src="image?.src" :alt="image?.alt" />
3
4
  <span v-if="icon?.iconClass && (icon?.position === 'left' || icon?.position === 'top' || !icon?.position)" :class="icon?.iconClass" :title="icon?.tooltip"></span>
4
5
  <span v-if="text">{{ text }}</span>
@@ -7,6 +8,7 @@
7
8
  <!-- begin default-slot -->
8
9
  <slot></slot>
9
10
  <!-- end default-slot -->
11
+ <!-- end CmdInnerLink ---------------------------------------------------------------------------------------- -->
10
12
  </template>
11
13
 
12
14
  <script>
@@ -1,4 +1,5 @@
1
1
  <template>
2
+ <!-- begin CmdInputGroup ---------------------------------------------------------------------------------------- -->
2
3
  <div :class="[
3
4
  'cmd-input-group label',
4
5
  validationStatus,
@@ -80,6 +81,7 @@
80
81
  </div>
81
82
  <!-- end useSlot -->
82
83
  </div>
84
+ <!-- end CmdInputGroup ---------------------------------------------------------------------------------------- -->
83
85
  </template>
84
86
 
85
87
  <script>