comand-component-library 3.1.45 → 3.1.48

Sign up to get free protection for your applications and to get access to all the features.
Files changed (233) hide show
  1. package/dist/comand-component-library.css +1 -1
  2. package/dist/comand-component-library.umd.min.js +1 -1
  3. package/package.json +47 -41
  4. package/src/App.vue +373 -135
  5. package/src/ComponentDocumentation.vue +156 -0
  6. package/src/ComponentLibraryHelp.vue +20 -0
  7. package/src/assets/data/accordion.json +21 -24
  8. package/src/assets/data/address-data.json +34 -0
  9. package/src/assets/data/bank-account-data.json +22 -0
  10. package/src/assets/data/box-product.json +14 -4
  11. package/src/assets/data/box-user.json +48 -22
  12. package/src/assets/data/breadcrumbs.json +11 -3
  13. package/src/assets/data/cookie-disclaimer.json +4 -4
  14. package/src/assets/data/fake-select-colors.json +4 -0
  15. package/src/assets/data/fake-select-filter-options.json +14 -0
  16. package/src/assets/data/fake-select-options-with-icons.json +6 -12
  17. package/src/assets/data/fake-select-options.json +3 -3
  18. package/src/assets/data/list-of-links-section-anchors.json +23 -0
  19. package/src/assets/data/list-of-links-top-header-navigation.json +20 -0
  20. package/src/assets/data/list-of-links.json +42 -0
  21. package/src/assets/data/main-navigation.json +48 -0
  22. package/src/assets/data/multistep-form-progress-bar.json +33 -0
  23. package/src/assets/data/select-options.json +4 -0
  24. package/src/assets/data/{share-buttons.json → share-buttons-page-by-json.json} +8 -8
  25. package/src/assets/data/share-buttons-page-by-property.json +30 -0
  26. package/src/assets/data/switch-language.json +20 -0
  27. package/src/assets/data/table-large.json +1 -1
  28. package/src/assets/data/table-small.json +1 -1
  29. package/src/assets/styles/global-styles.scss +43 -13
  30. package/src/assets/styles/transitions.scss +21 -1
  31. package/src/components/CmdAccordion.vue +43 -42
  32. package/src/components/CmdAddressData.vue +124 -56
  33. package/src/components/CmdBackToTopButton.vue +3 -3
  34. package/src/components/CmdBankAccountData.vue +104 -0
  35. package/src/components/CmdBox.vue +253 -56
  36. package/src/components/CmdBoxSiteSearch.vue +138 -39
  37. package/src/components/CmdBoxWrapper.vue +206 -0
  38. package/src/components/CmdBreadcrumbs.vue +29 -13
  39. package/src/components/CmdCompanyLogo.vue +6 -4
  40. package/src/components/CmdCookieDisclaimer.vue +99 -75
  41. package/src/components/CmdCopyrightInformation.vue +1 -1
  42. package/src/components/CmdCustomHeadline.vue +93 -0
  43. package/src/components/CmdFakeSelect.vue +285 -60
  44. package/src/components/CmdFancyBox.vue +47 -33
  45. package/src/components/CmdForm.vue +107 -0
  46. package/src/components/CmdFormElement.vue +515 -81
  47. package/src/components/CmdFormFilters.vue +25 -11
  48. package/src/components/CmdGoogleMaps.vue +9 -3
  49. package/src/components/CmdImageGallery.vue +28 -5
  50. package/src/components/CmdImageZoom.vue +9 -1
  51. package/src/components/CmdListOfLinks.vue +169 -0
  52. package/src/components/CmdLoginForm.vue +143 -63
  53. package/src/components/CmdMainNavigation.vue +140 -42
  54. package/src/components/CmdMultipleSwitch.vue +33 -2
  55. package/src/components/CmdMultistepFormProgressBar.vue +60 -10
  56. package/src/components/CmdOpeningHours.vue +36 -10
  57. package/src/components/CmdPager.vue +7 -5
  58. package/src/components/CmdProgressBar.vue +20 -3
  59. package/src/components/CmdShareButtons.vue +64 -9
  60. package/src/components/CmdSiteHeader.vue +27 -14
  61. package/src/components/CmdSlideButton.vue +5 -2
  62. package/src/components/CmdSlideshow.vue +23 -7
  63. package/src/components/CmdSwitchButton.vue +10 -3
  64. package/src/components/CmdSwitchLanguage.vue +18 -10
  65. package/src/components/CmdSystemMessage.vue +30 -17
  66. package/src/components/CmdTable.vue +15 -7
  67. package/src/components/CmdTabs.vue +43 -3
  68. package/src/components/CmdThumbnailScroller.vue +22 -6
  69. package/src/components/CmdTooltip.vue +184 -11
  70. package/src/components/CmdUploadForm.vue +198 -92
  71. package/src/components/CmdWidthLimitationWrapper.vue +9 -6
  72. package/src/composables/event.js +8 -0
  73. package/src/composables/scrollspy.js +52 -0
  74. package/src/directives/focus.js +19 -0
  75. package/src/directives/telephone.js +1 -1
  76. package/src/documentation/commonProps.js +6 -0
  77. package/src/documentation/components/ComponentCode.vue +50 -0
  78. package/src/documentation/components/ComponentProperties.vue +237 -0
  79. package/src/documentation/components/ExampleSectionWrapper.vue +46 -0
  80. package/src/documentation/components/ViewCodeData.vue +113 -0
  81. package/src/documentation/data/CmdAccordionHelp.js +22 -0
  82. package/src/documentation/data/CmdAddressDataHelp.js +17 -0
  83. package/src/documentation/data/CmdBackToTopButtonHelp.js +3 -0
  84. package/src/documentation/data/CmdBankAccountDataHelp.js +8 -0
  85. package/src/documentation/data/CmdBoxHelp.js +45 -0
  86. package/src/documentation/data/CmdBoxSiteSearchHelp.js +11 -0
  87. package/src/documentation/data/CmdBreadcrumbsHelp.js +6 -0
  88. package/src/documentation/data/CmdCompanyLogoHelp.js +8 -0
  89. package/src/documentation/data/CmdCookieDisclaimerHelp.js +9 -0
  90. package/src/documentation/data/CmdCopyrightInformation.js +2 -0
  91. package/src/documentation/data/CmdCustomHeadlineHelp.js +8 -0
  92. package/src/documentation/data/CmdFakeSelectHelp.js +60 -0
  93. package/src/documentation/data/CmdFancyBoxHelp.js +7 -0
  94. package/src/documentation/data/CmdFooterNavigationHelp.js +5 -0
  95. package/src/documentation/data/CmdFormElementHelp.js +189 -0
  96. package/src/documentation/data/CmdFormFiltersHelp.js +6 -0
  97. package/src/documentation/data/CmdFormHelp.js +10 -0
  98. package/src/documentation/data/CmdGoogleMapsHelp.js +5 -0
  99. package/src/documentation/data/CmdImageGalleryHelp.js +5 -0
  100. package/src/documentation/data/CmdImageZoomHelp.js +6 -0
  101. package/src/documentation/data/CmdListOfLinksHelp.js +24 -0
  102. package/src/documentation/data/CmdLoginFormHelp.js +6 -0
  103. package/src/documentation/data/CmdMainNavigationHelp.js +7 -0
  104. package/src/documentation/data/CmdMultistepFormProgressBarHelp.js +6 -0
  105. package/src/documentation/data/CmdOpeningHoursHelp.js +10 -0
  106. package/src/documentation/data/CmdPagerHelp.js +7 -0
  107. package/src/documentation/data/CmdProgressBarHelp.js +13 -0
  108. package/src/documentation/data/CmdShareButtonsHelp.js +13 -0
  109. package/src/documentation/data/CmdSiteHeaderHelp.js +21 -0
  110. package/src/documentation/data/CmdSlideButtonHelp.js +10 -0
  111. package/src/documentation/data/CmdSlideshowHelp.js +7 -0
  112. package/src/documentation/data/CmdSwitchLanguageHelp.js +6 -0
  113. package/src/documentation/data/CmdSystemMessageHelp.js +32 -0
  114. package/src/documentation/data/CmdTableHelp.js +14 -0
  115. package/src/documentation/data/CmdTabsHelp.js +10 -0
  116. package/src/documentation/data/CmdThumbnailScrollerHelp.js +5 -0
  117. package/src/documentation/data/CmdTooltipHelp.js +13 -0
  118. package/src/documentation/data/CmdUploadFormHelp.js +17 -0
  119. package/src/documentation/data/CmdWidthLimitationWrapperHelp.js +7 -0
  120. package/src/documentation/data/componentsDescription.json +158 -0
  121. package/src/documentation/generated/CmdAccordionPropertyDescriptions.json +57 -0
  122. package/src/documentation/generated/CmdAddressDataPropertyDescriptions.json +32 -0
  123. package/src/documentation/generated/CmdBackToTopButtonPropertyDescriptions.json +12 -0
  124. package/src/documentation/generated/CmdBankAccountDataPropertyDescriptions.json +34 -0
  125. package/src/documentation/generated/CmdBoxPropertyDescriptions.json +91 -0
  126. package/src/documentation/generated/CmdBoxSiteSearchPropertyDescriptions.json +41 -0
  127. package/src/documentation/generated/CmdBoxWrapperPropertyDescriptions.json +47 -0
  128. package/src/documentation/generated/CmdBreadcrumbsPropertyDescriptions.json +17 -0
  129. package/src/documentation/generated/CmdCompanyLogoPropertyDescriptions.json +27 -0
  130. package/src/documentation/generated/CmdCookieDisclaimerPropertyDescriptions.json +22 -0
  131. package/src/documentation/generated/CmdCustomHeadlinePropertyDescriptions.json +22 -0
  132. package/src/documentation/generated/CmdFakeSelectPropertyDescriptions.json +79 -0
  133. package/src/documentation/generated/CmdFancyBoxPropertyDescriptions.json +62 -0
  134. package/src/documentation/generated/CmdFooterNavigationPropertyDescriptions.json +17 -0
  135. package/src/documentation/generated/CmdFormElementPropertyDescriptions.json +178 -0
  136. package/src/documentation/generated/CmdFormFiltersPropertyDescriptions.json +32 -0
  137. package/src/documentation/generated/CmdFormPropertyDescriptions.json +40 -0
  138. package/src/documentation/generated/CmdGoogleMapsPropertyDescriptions.json +7 -0
  139. package/src/documentation/generated/CmdImageGalleryPropertyDescriptions.json +22 -0
  140. package/src/documentation/generated/CmdImageZoomPropertyDescriptions.json +12 -0
  141. package/src/documentation/generated/CmdListOfLinksPropertyDescriptions.json +60 -0
  142. package/src/documentation/generated/CmdLoginFormPropertyDescriptions.json +90 -0
  143. package/src/documentation/generated/CmdMainNavigationPropertyDescriptions.json +62 -0
  144. package/src/documentation/generated/CmdMultipleSwitchPropertyDescriptions.json +52 -0
  145. package/src/documentation/generated/CmdMultistepFormProgressBarPropertyDescriptions.json +17 -0
  146. package/src/documentation/generated/CmdOpeningHoursPropertyDescriptions.json +42 -0
  147. package/src/documentation/generated/CmdPagerPropertyDescriptions.json +37 -0
  148. package/src/documentation/generated/CmdProgressBarPropertyDescriptions.json +32 -0
  149. package/src/documentation/generated/CmdShareButtonsPropertyDescriptions.json +34 -0
  150. package/src/documentation/generated/CmdSiteHeaderPropertyDescriptions.json +27 -0
  151. package/src/documentation/generated/CmdSlideButtonPropertyDescriptions.json +25 -0
  152. package/src/documentation/generated/CmdSlideshowPropertyDescriptions.json +42 -0
  153. package/src/documentation/generated/CmdSwitchButtonPropertyDescriptions.json +79 -0
  154. package/src/documentation/generated/CmdSwitchLanguagePropertyDescriptions.json +7 -0
  155. package/src/documentation/generated/CmdSystemMessagePropertyDescriptions.json +40 -0
  156. package/src/documentation/generated/CmdTablePropertyDescriptions.json +62 -0
  157. package/src/documentation/generated/CmdTabsPropertyDescriptions.json +27 -0
  158. package/src/documentation/generated/CmdThumbnailScrollerPropertyDescriptions.json +32 -0
  159. package/src/documentation/generated/CmdTooltipPropertyDescriptions.json +17 -0
  160. package/src/documentation/generated/CmdUploadFormPropertyDescriptions.json +90 -0
  161. package/src/documentation/generated/CmdWidthLimitationWrapperPropertyDescriptions.json +41 -0
  162. package/src/documentation/generated/frameworkIcons.json +730 -0
  163. package/src/documentation/generated/logosIcons.json +110 -0
  164. package/src/documentation/tabs.js +46 -0
  165. package/src/documentation/views/ContainerPage.vue +237 -0
  166. package/src/documentation/views/HelpHome.vue +13 -0
  167. package/src/documentation/views/IconFont.vue +80 -0
  168. package/src/documentation/views/components/CmdAccordionHelp.vue +78 -0
  169. package/src/documentation/views/components/CmdAddressDataHelp.vue +65 -0
  170. package/src/documentation/views/components/CmdBackToTopButtonHelp.vue +62 -0
  171. package/src/documentation/views/components/CmdBankAccountDataHelp.vue +88 -0
  172. package/src/documentation/views/components/CmdBoxHelp.vue +137 -0
  173. package/src/documentation/views/components/CmdBoxSiteSearchHelp.vue +60 -0
  174. package/src/documentation/views/components/CmdBoxWrapperHelp.vue +111 -0
  175. package/src/documentation/views/components/CmdBreadcrumbsHelp.vue +51 -0
  176. package/src/documentation/views/components/CmdCompanyLogoHelp.vue +48 -0
  177. package/src/documentation/views/components/CmdCookieDisclaimerHelp.vue +105 -0
  178. package/src/documentation/views/components/CmdCustomHeadlineHelp.vue +53 -0
  179. package/src/documentation/views/components/CmdFakeSelectHelp.vue +175 -0
  180. package/src/documentation/views/components/CmdFancyBoxHelp.vue +79 -0
  181. package/src/documentation/views/components/CmdFormElementHelp.vue +412 -0
  182. package/src/documentation/views/components/CmdFormFiltersHelp.vue +69 -0
  183. package/src/documentation/views/components/CmdFormHelp.vue +41 -0
  184. package/src/documentation/views/components/CmdGoogleMapsHelp.vue +55 -0
  185. package/src/documentation/views/components/CmdImageGalleryHelp.vue +46 -0
  186. package/src/documentation/views/components/CmdImageZoomHelp.vue +34 -0
  187. package/src/documentation/views/components/CmdListOfLinksHelp.vue +64 -0
  188. package/src/documentation/views/components/CmdLoginFormHelp.vue +117 -0
  189. package/src/documentation/views/components/CmdMainNavigationHelp.vue +94 -0
  190. package/src/documentation/views/components/CmdMultistepFormProgressBarHelp.vue +49 -0
  191. package/src/documentation/views/components/CmdOpeningHoursHelp.vue +49 -0
  192. package/src/documentation/views/components/CmdPagerHelp.vue +57 -0
  193. package/src/documentation/views/components/CmdProgressBarHelp.vue +47 -0
  194. package/src/documentation/views/components/CmdShareButtonsHelp.vue +65 -0
  195. package/src/documentation/views/components/CmdSiteHeaderHelp.vue +72 -0
  196. package/src/documentation/views/components/CmdSlideButtonHelp.vue +90 -0
  197. package/src/documentation/views/components/CmdSlideshowHelp.vue +60 -0
  198. package/src/documentation/views/components/CmdSwitchLanguageHelp.vue +64 -0
  199. package/src/documentation/views/components/CmdSystemMessageHelp.vue +86 -0
  200. package/src/documentation/views/components/CmdTableHelp.vue +84 -0
  201. package/src/documentation/views/components/CmdTabsHelp.vue +52 -0
  202. package/src/documentation/views/components/CmdThumbnailScrollerHelp.vue +50 -0
  203. package/src/documentation/views/components/CmdTooltipHelp.vue +59 -0
  204. package/src/documentation/views/components/CmdUploadFormHelp.vue +59 -0
  205. package/src/documentation/views/components/CmdWidthLimitationWrapperHelp.vue +46 -0
  206. package/src/index.js +7 -3
  207. package/src/main.js +25 -15
  208. package/src/mixins/CmdAddressData/DefaultMessageProperties.js +17 -0
  209. package/src/mixins/CmdBox/DefaultMessageProperties.js +10 -0
  210. package/src/mixins/CmdFakeSelect/DefaultMessageProperties.js +9 -0
  211. package/src/mixins/CmdFormElement/DefaultMessageProperties.js +9 -0
  212. package/src/mixins/CmdImageGallery/DefaultMessageProperties.js +9 -0
  213. package/src/mixins/CmdSiteSearch/DefaultMessageProperties.js +14 -0
  214. package/src/mixins/CmdUploadForm/DefaultMessageProperties.js +5 -1
  215. package/src/mixins/FieldValidation.js +220 -0
  216. package/src/mixins/GlobalDefaultMessageProperties.js +15 -0
  217. package/src/mixins/Tooltip.js +26 -0
  218. package/src/router/index.js +67 -0
  219. package/src/utilities.js +3 -6
  220. package/src/utils/common.js +6 -0
  221. package/src/utils/dom.js +8 -0
  222. package/src/utils/globalSequence.js +13 -0
  223. package/src/utils/string.js +8 -0
  224. package/src/assets/data/address.json +0 -13
  225. package/src/assets/data/footer-navigation.json +0 -38
  226. package/src/assets/data/languages.json +0 -31
  227. package/src/assets/data/multisteps.json +0 -27
  228. package/src/assets/data/navigation.json +0 -47
  229. package/src/assets/data/pager.json +0 -11
  230. package/src/assets/data/top-header-navigation.json +0 -27
  231. package/src/components/CmdFooterNavigation.vue +0 -71
  232. package/src/components/CmdMainHeadline.vue +0 -75
  233. package/src/components/CmdTopHeaderNavigation.vue +0 -88
@@ -0,0 +1,220 @@
1
+ // import mixins
2
+ import I18n from "./I18n"
3
+ import GlobalDefaultMessageProperties from "./GlobalDefaultMessageProperties"
4
+
5
+ export default {
6
+ data() {
7
+ return {
8
+ validationStatus: "",
9
+ capsLockActivated: false
10
+ }
11
+ },
12
+ mixins: [
13
+ I18n,
14
+ GlobalDefaultMessageProperties
15
+ ],
16
+ props: {
17
+ /**
18
+ * validation message shown on clicking the status-icon of a form-element with state
19
+ */
20
+ validationMessage: {
21
+ type: String,
22
+ required: false
23
+ },
24
+ /**
25
+ * link to faq/help
26
+ */
27
+ helplink: {
28
+ type: Object,
29
+ default() {
30
+ return {
31
+ show: true,
32
+ url: "helpurl",
33
+ target: "help",
34
+ text: "Open help",
35
+ // text: this.getMessage("cmdfieldvalidation.open_detailed_help"),
36
+ icon: {
37
+ iconClass: "icon-questionmark-circle",
38
+ tooltip: "Open help in new tab"
39
+ }
40
+ }
41
+ }
42
+ },
43
+ /**
44
+ * define custom requirement for validation
45
+ *
46
+ * prepared functions are already defined in FieldValidation.js
47
+ */
48
+ customRequirements: {
49
+ type: Array,
50
+ required: false
51
+ },
52
+ /**
53
+ * toggle requirements in tooltip
54
+ */
55
+ showRequirements: {
56
+ type: Boolean,
57
+ default: true
58
+ },
59
+ iconError: {
60
+ type: String,
61
+ default: "icon-error-circle"
62
+ } ,
63
+ iconWarning: {
64
+ type: String,
65
+ default: "icon-exclamation-circle"
66
+ },
67
+ iconSuccess: {
68
+ type: String,
69
+ default: "icon-check-circle"
70
+ },
71
+ iconInfo: {
72
+ type: String,
73
+ default: "icon-info-circle"
74
+ },
75
+ iconCapsLock: {
76
+ type: String,
77
+ default: "icon-home"
78
+ },
79
+ iconHelp: {
80
+ type: String,
81
+ default: "icon-questionmark-circle"
82
+ }
83
+ },
84
+ computed: {
85
+ getValidationMessage() {
86
+ if (this.validationStatus !== "") {
87
+ if (this.validationStatus === "error" && !this.validationMessage) {
88
+ return this.getMessage("cmdfieldvalidation.information_not_filled_correctly")
89
+ }
90
+ if (this.validationStatus === "warning" && this.capsLockActivated) {
91
+ return this.getMessage("cmdfieldvalidation.caps_lock_is_activated")
92
+ }
93
+ if (this.validationStatus === "success") {
94
+ return this.getMessage("cmdfieldvalidation.information_filled_correctly")
95
+ }
96
+ }
97
+ return ""
98
+ },
99
+ getStatusIconClass() {
100
+ if (this.validationStatus !== "") {
101
+ if (!this.capsLockActivated) {
102
+ if (this.validationStatus === "error") {
103
+ return this.iconError
104
+ } else if (this.validationStatus === "warning") {
105
+ return this.iconWarning
106
+ } else if (this.validationStatus === "success") {
107
+ return this.iconSuccess
108
+ }
109
+ return this.iconInfo
110
+ } else {
111
+ return this.iconCapsLock
112
+ }
113
+ }
114
+ return this.iconHelp
115
+ },
116
+ inputRequirements() {
117
+ const standardRequirements = []
118
+ // check if field is required
119
+ if(this.$attrs.required) {
120
+ standardRequirements.push({
121
+ message: this.getRequirementMessage(),
122
+ valid(value, attributes) {
123
+ return !attributes.required || value.length > 0
124
+ }
125
+ })
126
+ }
127
+ // check if filed has a minimum length
128
+ if(this.$attrs.minlength) {
129
+ standardRequirements.push({
130
+ message: "Input has minimum length (" + this.value.length + "/" + this.$attrs.minlength + ")",
131
+ valid(value, attributes) {
132
+ return value.length >= attributes.minlength
133
+ }
134
+ })
135
+ }
136
+ // check is field has custom requirements defined
137
+ if(!this.customRequirements || !this.customRequirements.length) {
138
+ return standardRequirements
139
+ }
140
+ // duplicate existing requirements into new (combined) array
141
+ return [...standardRequirements, ...this.customRequirements]
142
+ }
143
+ },
144
+ methods: {
145
+ checkForCapsLock(event) {
146
+ if ((["password", "number", "url", "email"].includes(this.$attrs.type)) && event.getModifierState("CapsLock")) {
147
+ this.capsLockActivated = true
148
+ this.validationStatus = "warning"
149
+ } else {
150
+ this.capsLockActivated = false
151
+ this.validationStatus = ""
152
+ }
153
+ },
154
+ getRequirementMessage() {
155
+ return this.getMessage("cmdfieldvalidation.required_field_is_filled")
156
+ }
157
+ }
158
+ }
159
+
160
+ function validateSpecialCharacters(message = "Field contains Special character") {
161
+ return {
162
+ message,
163
+ valid(value) {
164
+ return !/^[a-z0-9\s]*$/i.test(value)
165
+ }
166
+ }
167
+ }
168
+
169
+ function validateNumbers(message = "Field contains numbers") {
170
+ return {
171
+ message, // short for message: message
172
+ valid(value) {
173
+ return /\d/.test(value)
174
+ }
175
+ }
176
+ }
177
+
178
+ function validateNumbersOnly(message = "Field contains numbers only") {
179
+ return {
180
+ message, // short for message: message
181
+ valid(value) {
182
+ return /^\d*$/.test(value)
183
+ }
184
+ }
185
+ }
186
+
187
+ function validateCharacters(message = "Field contains at least one character") {
188
+ return {
189
+ message,
190
+ valid(value) {
191
+ return /[a-z]/i.test(value)
192
+ }
193
+ }
194
+ }
195
+
196
+ function validateCapitalLetters(message = "Field contains capital letters") {
197
+ return {
198
+ message,
199
+ valid(value) {
200
+ return /[A-Z]/.test(value)
201
+ }
202
+ }
203
+ }
204
+ /*
205
+ function validateMaxlength(message = "Input has maximum length") {
206
+ return {
207
+ message,
208
+ valid(value, attributes) {
209
+ return value.length <= attributes.maxlength
210
+ }
211
+ }
212
+ }
213
+ */
214
+ export {
215
+ validateSpecialCharacters,
216
+ validateNumbers,
217
+ validateNumbersOnly,
218
+ validateCharacters,
219
+ validateCapitalLetters
220
+ }
@@ -0,0 +1,15 @@
1
+ export default {
2
+ data() {
3
+ return {
4
+ defaultMessageProperties: {
5
+ "cmdfieldvalidation.open_detailed_help": "Open detailed help!",
6
+
7
+ "cmdfieldvalidation.information_not_filled_correctly": "This information is not filled correctly!",
8
+ "cmdfieldvalidation.information_filled_correctly": "This information is filled correctly!",
9
+ "cmdfieldvalidation.caps_lock_is_activated": "Attention: Caps lock is activated!",
10
+ "cmdfieldvalidation.required_field_is_filled": "Required field is filled!",
11
+ "cmdfieldvalidation.field_contains_special_character": "Field contains Special character"
12
+ }
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,26 @@
1
+ import {nextSequenceValue} from "../utils/globalSequence";
2
+
3
+ export default {
4
+ data() {
5
+ return {
6
+ tooltip: false,
7
+ tooltipId: "tooltip-" + nextSequenceValue()
8
+ }
9
+ },
10
+ props: {
11
+ /**
12
+ * useCustomTooltip
13
+ */
14
+ useCustomTooltip: {
15
+ type: Boolean,
16
+ default: true
17
+ },
18
+ /**
19
+ * allow closing tooltip by escape-key
20
+ */
21
+ allowEscapeKey: {
22
+ type: Boolean,
23
+ default: true
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,67 @@
1
+ import { createRouter, createWebHistory } from "vue-router"
2
+ import {routeHandler as tabsRouteHandler} from "../documentation/tabs"
3
+ import ContainerPage from "../documentation/views/ContainerPage"
4
+ import HelpHome from "../documentation/views/HelpHome"
5
+ import IconFont from "../documentation/views/IconFont"
6
+ import componentsDescription from "../documentation/data/componentsDescription"
7
+ import ComponentDocumentation from "../ComponentDocumentation"
8
+
9
+ const routes = []
10
+
11
+ const componentNames = Object.keys(componentsDescription)
12
+
13
+ routes.push({
14
+ path: "/",
15
+ name: "home",
16
+ component: HelpHome
17
+ })
18
+
19
+ routes.push({
20
+ path: "/subsubpage/:param1/:param2",
21
+ name: "subsubpage",
22
+ redirect: {
23
+ name: componentNames[0]
24
+ }
25
+ })
26
+
27
+ const componentsRoute = {
28
+ path: "/components",
29
+ name: "components",
30
+ component: ComponentDocumentation,
31
+ redirect: {
32
+ name: componentNames[0]
33
+ },
34
+ children: []
35
+ }
36
+
37
+ for(let i = 0 ; i < componentNames.length ; i++) {
38
+ componentsRoute.children.push(
39
+ {
40
+ path: componentNames[i] + "/:tab?",
41
+ name: componentNames[i],
42
+ component: ContainerPage,
43
+ props: () => ({
44
+ componentName: componentNames[i],
45
+ previousComponentName: i === 0 ? componentNames[componentNames.length - 1] : componentNames[i - 1],
46
+ nextComponentName: i === componentNames.length - 1 ? componentNames[0] : componentNames[i + 1]
47
+ })
48
+ }
49
+ )
50
+ }
51
+
52
+ routes.push(componentsRoute)
53
+
54
+ routes.push({
55
+ path: "/iconfont",
56
+ name: "iconfont",
57
+ component: IconFont
58
+ })
59
+
60
+ const router = createRouter({
61
+ history: createWebHistory(process.env.BASE_URL),
62
+ routes
63
+ })
64
+
65
+ router.beforeEach(tabsRouteHandler)
66
+
67
+ export default router
package/src/utilities.js CHANGED
@@ -1,11 +1,8 @@
1
1
  function getRoute (entry) {
2
- if(entry.link.path) {
3
- return entry.link.path
4
- }
5
- return {
6
- name: entry.link.name,
7
- params: entry.link.params || {} // if entry.link.params is set (or return empty object)
2
+ if(entry.path) {
3
+ return entry.path
8
4
  }
5
+ return entry.route
9
6
  }
10
7
 
11
8
  export { getRoute }
@@ -0,0 +1,6 @@
1
+ function isFrameMode() {
2
+ const frameUrl = new URL(location)
3
+ return frameUrl.searchParams.has("frameMode")
4
+ }
5
+
6
+ export {isFrameMode}
@@ -0,0 +1,8 @@
1
+ function getOffsetTop(el) {
2
+ if (el.offsetParent) {
3
+ return el.offsetTop + getOffsetTop(el.offsetParent)
4
+ }
5
+ return el.offsetTop
6
+ }
7
+
8
+ export {getOffsetTop}
@@ -0,0 +1,13 @@
1
+ const sequences = {}
2
+
3
+ function nextSequenceValue(sequenceName = "defaultSequence") {
4
+ const currentValue = sequences[sequenceName] || 0 // get currentValue for specific sequence (else set value to 0)
5
+ sequences[sequenceName] = currentValue + 1 // raise currentValue by 1
6
+ return sequences[sequenceName]
7
+ }
8
+
9
+ function currentSequenceValue(sequenceName = "defaultSequence") {
10
+ return sequences[sequenceName] || 0 // get currentValue for specific sequence (else set value to 0)
11
+ }
12
+
13
+ export {nextSequenceValue, currentSequenceValue}
@@ -0,0 +1,8 @@
1
+ function capitalize(string) {
2
+ if(string) {
3
+ return string.slice(0, 1).toUpperCase() + string.slice(1)
4
+ }
5
+ return ""
6
+ }
7
+
8
+ export {capitalize}
@@ -1,13 +0,0 @@
1
- {
2
- "address": {
3
- "streetNo": "Steinmetzstraße 16",
4
- "zip": 41515,
5
- "city": "Grevenbroich"
6
- },
7
- "telephone": "+1 (0)1234/56789",
8
- "mobilephone": "+1 555-12345",
9
- "fax": "+1 (0)1234/567810",
10
- "email": "youremail@provider.com"
11
- }
12
-
13
-
@@ -1,38 +0,0 @@
1
- [
2
- {
3
- "iconClass": "icon-user-profile",
4
- "type": "href",
5
- "linkName": "",
6
- "path": "#",
7
- "target": "",
8
- "tooltip": "Link without name, but tooltip"
9
- },
10
- {
11
- "type": "href",
12
- "linkName": "Private policy",
13
- "path": "",
14
- "target": "",
15
- "fancybox": true
16
- },
17
- {
18
- "type": "href",
19
- "linkName": "CoManD-Website",
20
- "path": "http://www.comand-cms.com",
21
- "target": "_blank"
22
- },
23
- {
24
- "type": "href",
25
- "linkName": "Router with path",
26
- "path": "http://www.comand-cms.com"
27
- },
28
- {
29
- "type": "href",
30
- "linkName": "Router with name",
31
- "path": "#"
32
- },
33
- {
34
- "type": "href",
35
- "linkName": "Router with name and params",
36
- "path": "#"
37
- }
38
- ]
@@ -1,31 +0,0 @@
1
- [
2
- {
3
- "iso2": "de",
4
- "name": "Deutsch",
5
- "tooltip": "Sprache zu deutsch wechseln",
6
- "link": {
7
- "type": "router",
8
- "path": "/"
9
- }
10
- },
11
- {
12
- "iso2": "en",
13
- "name": "English",
14
- "tooltip": "Switch language to English",
15
- "link": {
16
- "type": "router",
17
- "name": "somename",
18
- "params": {
19
- "id": 123
20
- }
21
- }
22
- },
23
- {
24
- "iso2": "fr",
25
- "name": "Francais",
26
- "tooltip": "Switch language to Francais",
27
- "link": {
28
- "path": "#"
29
- }
30
- }
31
- ]
@@ -1,27 +0,0 @@
1
- [
2
- {
3
- "path": "",
4
- "name": "Contact",
5
- "iconClass": "icon-address"
6
- },
7
- {
8
- "path": "",
9
- "name": "Settings",
10
- "iconClass": "icon-configuration"
11
- },
12
- {
13
- "path": "",
14
- "name": "Attachments",
15
- "iconClass": "icon-attachment"
16
- },
17
- {
18
- "path": "",
19
- "name": "Terms and Conditions",
20
- "iconClass": "icon-section-sign"
21
- },
22
- {
23
- "path": "",
24
- "name": "Summary",
25
- "iconClass": "icon-rows"
26
- }
27
- ]
@@ -1,47 +0,0 @@
1
- [
2
- {
3
- "name": "Entry 1",
4
- "href": "",
5
- "target": "",
6
- "subentries": []
7
- },
8
- {
9
- "name": "Entry 2",
10
- "href": "",
11
- "target": "",
12
- "subentries": [
13
- {
14
- "name": "Entry 2.1",
15
- "href": "",
16
- "target": "",
17
- "subentries": [
18
- {
19
- "name": "Entry 2.1.1",
20
- "href": "",
21
- "target": ""
22
- },
23
- {
24
- "name": "Entry 2.1.2",
25
- "href": "",
26
- "target": ""
27
- },
28
- {
29
- "name": "Entry 2.1.3",
30
- "href": "",
31
- "target": ""
32
- }
33
- ]
34
- },
35
- {
36
- "name": "Entry 2.2",
37
- "href": "",
38
- "target": ""
39
- }
40
- ]
41
- },
42
- {
43
- "name": "CoManD-CMS",
44
- "href": "http://www.comand-cms.com",
45
- "target": "_blank"
46
- }
47
- ]
@@ -1,11 +0,0 @@
1
- [
2
- {
3
- "item": "<p>Content 1</p>"
4
- },
5
- {
6
- "item": "<p>Content 2</p>"
7
- },
8
- {
9
- "item": "<p>Content 3</p>"
10
- }
11
- ]
@@ -1,27 +0,0 @@
1
- [
2
- {
3
- "linkType": "href",
4
- "path": "http://www.comand-cms.com",
5
- "target": "_blank",
6
- "icon": {
7
- "iconClass": "icon-globe",
8
- "tooltip": "CoManD-CMS"
9
- }
10
- },
11
- {
12
- "linkType": "href",
13
- "path": "#anchor-section4",
14
- "icon": {
15
- "iconClass": "icon-mail",
16
- "tooltip": "Contact"
17
- }
18
- },
19
- {
20
- "linkType": "href",
21
- "path": "#anchor-section3",
22
- "icon": {
23
- "iconClass": "icon-user-profile",
24
- "tooltip": "Login"
25
- }
26
- }
27
- ]
@@ -1,71 +0,0 @@
1
- <template>
2
- <div class="cmd-footer-navigation">
3
- <h4 v-if="headline">{{ headline }}</h4>
4
- <ul class="flex-container">
5
- <li v-for="(link, index) in footerNavigation" :key="index">
6
- <router-link v-if="link.type === 'router'" :to="getRoute(link)" :title="link.tooltip">
7
- <span v-if="link.iconClass" :class="link.iconClass"></span>
8
- <span v-if="link.linkName">{{ link.linkName }}</span>
9
- </router-link>
10
- <a v-else :href="link.path" :target="link.target" @click="executeLink(link, $event)"
11
- :title="link.tooltip">
12
- <span v-if="link.iconClass" :class="link.iconClass"></span>
13
- <span v-if="link.linkName">{{ link.linkName }}</span>
14
- </a>
15
- </li>
16
- </ul>
17
- </div>
18
- </template>
19
-
20
- <script>
21
- import {getRoute} from "../utilities.js"
22
- import {openFancyBox} from "./CmdFancyBox.vue"
23
-
24
- export default {
25
- name: "CmdFooterNavigation",
26
- props: {
27
- /**
28
- * headlien above links
29
- */
30
- headline: {
31
- type: String,
32
- required: false
33
- },
34
- /**
35
- * list of links shown vertically
36
- */
37
- footerNavigation: {
38
- type: Array,
39
- required: false
40
- }
41
- },
42
- methods: {
43
- getRoute(language) {
44
- return getRoute(language)
45
- },
46
- executeLink(link, event) {
47
- if (link.fancybox) {
48
- event.preventDefault()
49
- openFancyBox({url: link.link.path})
50
- }
51
- }
52
- }
53
- }
54
- </script>
55
-
56
- <style lang="scss">
57
- /* begin cmd-footer-navigation ---------------------------------------------------------------------------------------- */
58
- .cmd-footer-navigation {
59
- ul {
60
- flex-direction: column;
61
- gap: calc(var(--default-gap) / 2);
62
-
63
- li {
64
- list-style: none;
65
- margin-left: 0;
66
- }
67
- }
68
- }
69
-
70
- /* end cmd-footer-navigation ------------------------------------------------------------------------------------------ */
71
- </style>