comand-component-library 3.1.43 → 3.1.46

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 (236) 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 -40
  4. package/src/App.vue +379 -136
  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-countries.json +12 -12
  16. package/src/assets/data/fake-select-filter-options.json +14 -0
  17. package/src/assets/data/fake-select-options-with-icons.json +6 -12
  18. package/src/assets/data/fake-select-options.json +3 -3
  19. package/src/assets/data/list-of-links-section-anchors.json +23 -0
  20. package/src/assets/data/list-of-links-top-header-navigation.json +20 -0
  21. package/src/assets/data/list-of-links.json +42 -0
  22. package/src/assets/data/main-navigation.json +48 -0
  23. package/src/assets/data/multistep-form-progress-bar.json +33 -0
  24. package/src/assets/data/select-options.json +4 -0
  25. package/src/assets/data/{share-buttons.json → share-buttons-page-by-json.json} +8 -8
  26. package/src/assets/data/share-buttons-page-by-property.json +30 -0
  27. package/src/assets/data/switch-language.json +20 -0
  28. package/src/assets/data/table-large.json +1 -1
  29. package/src/assets/data/table-small.json +1 -1
  30. package/src/assets/styles/global-styles.scss +43 -14
  31. package/src/assets/styles/transitions.scss +21 -1
  32. package/src/components/CmdAccordion.vue +43 -42
  33. package/src/components/CmdAddressData.vue +124 -56
  34. package/src/components/CmdBackToTopButton.vue +3 -3
  35. package/src/components/CmdBankAccountData.vue +104 -0
  36. package/src/components/CmdBox.vue +253 -56
  37. package/src/components/CmdBoxSiteSearch.vue +138 -39
  38. package/src/components/CmdBoxWrapper.vue +206 -0
  39. package/src/components/CmdBreadcrumbs.vue +29 -13
  40. package/src/components/CmdCompanyLogo.vue +6 -4
  41. package/src/components/CmdCookieDisclaimer.vue +99 -75
  42. package/src/components/CmdCopyrightInformation.vue +1 -1
  43. package/src/components/CmdCustomHeadline.vue +93 -0
  44. package/src/components/CmdFakeSelect.vue +330 -66
  45. package/src/components/CmdFancyBox.vue +47 -33
  46. package/src/components/CmdForm.vue +107 -0
  47. package/src/components/CmdFormElement.vue +528 -83
  48. package/src/components/CmdFormFilters.vue +25 -11
  49. package/src/components/CmdGoogleMaps.vue +9 -3
  50. package/src/components/CmdImageGallery.vue +28 -5
  51. package/src/components/CmdImageZoom.vue +9 -1
  52. package/src/components/CmdListOfLinks.vue +169 -0
  53. package/src/components/CmdLoginForm.vue +146 -66
  54. package/src/components/CmdMainNavigation.vue +140 -42
  55. package/src/components/CmdMultipleSwitch.vue +33 -2
  56. package/src/components/CmdMultistepFormProgressBar.vue +60 -10
  57. package/src/components/CmdOpeningHours.vue +36 -10
  58. package/src/components/CmdPager.vue +7 -5
  59. package/src/components/CmdProgressBar.vue +21 -4
  60. package/src/components/CmdShareButtons.vue +64 -9
  61. package/src/components/CmdSiteHeader.vue +25 -12
  62. package/src/components/CmdSlideButton.vue +5 -2
  63. package/src/components/CmdSlideshow.vue +23 -7
  64. package/src/components/CmdSwitchButton.vue +15 -6
  65. package/src/components/CmdSwitchLanguage.vue +18 -10
  66. package/src/components/CmdSystemMessage.vue +30 -17
  67. package/src/components/CmdTable.vue +15 -7
  68. package/src/components/CmdTabs.vue +43 -3
  69. package/src/components/CmdThumbnailScroller.vue +22 -6
  70. package/src/components/CmdTooltip.vue +184 -11
  71. package/src/components/CmdUploadForm.vue +830 -176
  72. package/src/components/CmdWidthLimitationWrapper.vue +9 -6
  73. package/src/composables/event.js +8 -0
  74. package/src/composables/scrollspy.js +52 -0
  75. package/src/directives/focus.js +19 -0
  76. package/src/directives/telephone.js +1 -1
  77. package/src/documentation/commonProps.js +6 -0
  78. package/src/documentation/components/ComponentCode.vue +50 -0
  79. package/src/documentation/components/ComponentProperties.vue +237 -0
  80. package/src/documentation/components/ExampleSectionWrapper.vue +46 -0
  81. package/src/documentation/components/ViewCodeData.vue +113 -0
  82. package/src/documentation/data/CmdAccordionHelp.js +22 -0
  83. package/src/documentation/data/CmdAddressDataHelp.js +17 -0
  84. package/src/documentation/data/CmdBackToTopButtonHelp.js +3 -0
  85. package/src/documentation/data/CmdBankAccountDataHelp.js +8 -0
  86. package/src/documentation/data/CmdBoxHelp.js +45 -0
  87. package/src/documentation/data/CmdBoxSiteSearchHelp.js +11 -0
  88. package/src/documentation/data/CmdBreadcrumbsHelp.js +6 -0
  89. package/src/documentation/data/CmdCompanyLogoHelp.js +8 -0
  90. package/src/documentation/data/CmdCookieDisclaimerHelp.js +9 -0
  91. package/src/documentation/data/CmdCopyrightInformation.js +2 -0
  92. package/src/documentation/data/CmdCustomHeadlineHelp.js +8 -0
  93. package/src/documentation/data/CmdFakeSelectHelp.js +60 -0
  94. package/src/documentation/data/CmdFancyBoxHelp.js +7 -0
  95. package/src/documentation/data/CmdFooterNavigationHelp.js +5 -0
  96. package/src/documentation/data/CmdFormElementHelp.js +189 -0
  97. package/src/documentation/data/CmdFormFiltersHelp.js +6 -0
  98. package/src/documentation/data/CmdFormHelp.js +10 -0
  99. package/src/documentation/data/CmdGoogleMapsHelp.js +5 -0
  100. package/src/documentation/data/CmdImageGalleryHelp.js +5 -0
  101. package/src/documentation/data/CmdImageZoomHelp.js +6 -0
  102. package/src/documentation/data/CmdListOfLinksHelp.js +24 -0
  103. package/src/documentation/data/CmdLoginFormHelp.js +6 -0
  104. package/src/documentation/data/CmdMainNavigationHelp.js +7 -0
  105. package/src/documentation/data/CmdMultistepFormProgressBarHelp.js +6 -0
  106. package/src/documentation/data/CmdOpeningHoursHelp.js +10 -0
  107. package/src/documentation/data/CmdPagerHelp.js +7 -0
  108. package/src/documentation/data/CmdProgressBarHelp.js +13 -0
  109. package/src/documentation/data/CmdShareButtonsHelp.js +13 -0
  110. package/src/documentation/data/CmdSiteHeaderHelp.js +21 -0
  111. package/src/documentation/data/CmdSlideButtonHelp.js +10 -0
  112. package/src/documentation/data/CmdSlideshowHelp.js +7 -0
  113. package/src/documentation/data/CmdSwitchLanguageHelp.js +6 -0
  114. package/src/documentation/data/CmdSystemMessageHelp.js +32 -0
  115. package/src/documentation/data/CmdTableHelp.js +14 -0
  116. package/src/documentation/data/CmdTabsHelp.js +10 -0
  117. package/src/documentation/data/CmdThumbnailScrollerHelp.js +5 -0
  118. package/src/documentation/data/CmdTooltipHelp.js +13 -0
  119. package/src/documentation/data/CmdUploadFormHelp.js +17 -0
  120. package/src/documentation/data/CmdWidthLimitationWrapperHelp.js +7 -0
  121. package/src/documentation/data/componentsDescription.json +158 -0
  122. package/src/documentation/generated/CmdAccordionPropertyDescriptions.json +57 -0
  123. package/src/documentation/generated/CmdAddressDataPropertyDescriptions.json +32 -0
  124. package/src/documentation/generated/CmdBackToTopButtonPropertyDescriptions.json +12 -0
  125. package/src/documentation/generated/CmdBankAccountDataPropertyDescriptions.json +34 -0
  126. package/src/documentation/generated/CmdBoxPropertyDescriptions.json +91 -0
  127. package/src/documentation/generated/CmdBoxSiteSearchPropertyDescriptions.json +41 -0
  128. package/src/documentation/generated/CmdBoxWrapperPropertyDescriptions.json +47 -0
  129. package/src/documentation/generated/CmdBreadcrumbsPropertyDescriptions.json +17 -0
  130. package/src/documentation/generated/CmdCompanyLogoPropertyDescriptions.json +27 -0
  131. package/src/documentation/generated/CmdCookieDisclaimerPropertyDescriptions.json +22 -0
  132. package/src/documentation/generated/CmdCustomHeadlinePropertyDescriptions.json +22 -0
  133. package/src/documentation/generated/CmdFakeSelectPropertyDescriptions.json +79 -0
  134. package/src/documentation/generated/CmdFancyBoxPropertyDescriptions.json +62 -0
  135. package/src/documentation/generated/CmdFooterNavigationPropertyDescriptions.json +17 -0
  136. package/src/documentation/generated/CmdFormElementPropertyDescriptions.json +178 -0
  137. package/src/documentation/generated/CmdFormFiltersPropertyDescriptions.json +32 -0
  138. package/src/documentation/generated/CmdFormPropertyDescriptions.json +40 -0
  139. package/src/documentation/generated/CmdGoogleMapsPropertyDescriptions.json +7 -0
  140. package/src/documentation/generated/CmdImageGalleryPropertyDescriptions.json +22 -0
  141. package/src/documentation/generated/CmdImageZoomPropertyDescriptions.json +12 -0
  142. package/src/documentation/generated/CmdListOfLinksPropertyDescriptions.json +60 -0
  143. package/src/documentation/generated/CmdLoginFormPropertyDescriptions.json +90 -0
  144. package/src/documentation/generated/CmdMainNavigationPropertyDescriptions.json +62 -0
  145. package/src/documentation/generated/CmdMultipleSwitchPropertyDescriptions.json +52 -0
  146. package/src/documentation/generated/CmdMultistepFormProgressBarPropertyDescriptions.json +17 -0
  147. package/src/documentation/generated/CmdOpeningHoursPropertyDescriptions.json +42 -0
  148. package/src/documentation/generated/CmdPagerPropertyDescriptions.json +37 -0
  149. package/src/documentation/generated/CmdProgressBarPropertyDescriptions.json +32 -0
  150. package/src/documentation/generated/CmdShareButtonsPropertyDescriptions.json +34 -0
  151. package/src/documentation/generated/CmdSiteHeaderPropertyDescriptions.json +27 -0
  152. package/src/documentation/generated/CmdSlideButtonPropertyDescriptions.json +25 -0
  153. package/src/documentation/generated/CmdSlideshowPropertyDescriptions.json +42 -0
  154. package/src/documentation/generated/CmdSwitchButtonPropertyDescriptions.json +79 -0
  155. package/src/documentation/generated/CmdSwitchLanguagePropertyDescriptions.json +7 -0
  156. package/src/documentation/generated/CmdSystemMessagePropertyDescriptions.json +40 -0
  157. package/src/documentation/generated/CmdTablePropertyDescriptions.json +62 -0
  158. package/src/documentation/generated/CmdTabsPropertyDescriptions.json +27 -0
  159. package/src/documentation/generated/CmdThumbnailScrollerPropertyDescriptions.json +32 -0
  160. package/src/documentation/generated/CmdTooltipPropertyDescriptions.json +17 -0
  161. package/src/documentation/generated/CmdUploadFormPropertyDescriptions.json +90 -0
  162. package/src/documentation/generated/CmdWidthLimitationWrapperPropertyDescriptions.json +41 -0
  163. package/src/documentation/generated/frameworkIcons.json +730 -0
  164. package/src/documentation/generated/logosIcons.json +110 -0
  165. package/src/documentation/tabs.js +46 -0
  166. package/src/documentation/views/ContainerPage.vue +237 -0
  167. package/src/documentation/views/HelpHome.vue +13 -0
  168. package/src/documentation/views/IconFont.vue +80 -0
  169. package/src/documentation/views/components/CmdAccordionHelp.vue +78 -0
  170. package/src/documentation/views/components/CmdAddressDataHelp.vue +65 -0
  171. package/src/documentation/views/components/CmdBackToTopButtonHelp.vue +62 -0
  172. package/src/documentation/views/components/CmdBankAccountDataHelp.vue +88 -0
  173. package/src/documentation/views/components/CmdBoxHelp.vue +137 -0
  174. package/src/documentation/views/components/CmdBoxSiteSearchHelp.vue +60 -0
  175. package/src/documentation/views/components/CmdBoxWrapperHelp.vue +111 -0
  176. package/src/documentation/views/components/CmdBreadcrumbsHelp.vue +51 -0
  177. package/src/documentation/views/components/CmdCompanyLogoHelp.vue +48 -0
  178. package/src/documentation/views/components/CmdCookieDisclaimerHelp.vue +105 -0
  179. package/src/documentation/views/components/CmdCustomHeadlineHelp.vue +53 -0
  180. package/src/documentation/views/components/CmdFakeSelectHelp.vue +175 -0
  181. package/src/documentation/views/components/CmdFancyBoxHelp.vue +79 -0
  182. package/src/documentation/views/components/CmdFormElementHelp.vue +412 -0
  183. package/src/documentation/views/components/CmdFormFiltersHelp.vue +69 -0
  184. package/src/documentation/views/components/CmdFormHelp.vue +41 -0
  185. package/src/documentation/views/components/CmdGoogleMapsHelp.vue +55 -0
  186. package/src/documentation/views/components/CmdImageGalleryHelp.vue +46 -0
  187. package/src/documentation/views/components/CmdImageZoomHelp.vue +34 -0
  188. package/src/documentation/views/components/CmdListOfLinksHelp.vue +64 -0
  189. package/src/documentation/views/components/CmdLoginFormHelp.vue +117 -0
  190. package/src/documentation/views/components/CmdMainNavigationHelp.vue +94 -0
  191. package/src/documentation/views/components/CmdMultistepFormProgressBarHelp.vue +49 -0
  192. package/src/documentation/views/components/CmdOpeningHoursHelp.vue +49 -0
  193. package/src/documentation/views/components/CmdPagerHelp.vue +57 -0
  194. package/src/documentation/views/components/CmdProgressBarHelp.vue +47 -0
  195. package/src/documentation/views/components/CmdShareButtonsHelp.vue +65 -0
  196. package/src/documentation/views/components/CmdSiteHeaderHelp.vue +72 -0
  197. package/src/documentation/views/components/CmdSlideButtonHelp.vue +90 -0
  198. package/src/documentation/views/components/CmdSlideshowHelp.vue +60 -0
  199. package/src/documentation/views/components/CmdSwitchLanguageHelp.vue +64 -0
  200. package/src/documentation/views/components/CmdSystemMessageHelp.vue +86 -0
  201. package/src/documentation/views/components/CmdTableHelp.vue +84 -0
  202. package/src/documentation/views/components/CmdTabsHelp.vue +52 -0
  203. package/src/documentation/views/components/CmdThumbnailScrollerHelp.vue +50 -0
  204. package/src/documentation/views/components/CmdTooltipHelp.vue +59 -0
  205. package/src/documentation/views/components/CmdUploadFormHelp.vue +59 -0
  206. package/src/documentation/views/components/CmdWidthLimitationWrapperHelp.vue +46 -0
  207. package/src/index.js +6 -3
  208. package/src/main.js +25 -15
  209. package/src/mixins/CmdAddressData/DefaultMessageProperties.js +17 -0
  210. package/src/mixins/CmdBox/DefaultMessageProperties.js +10 -0
  211. package/src/mixins/CmdFakeSelect/DefaultMessageProperties.js +9 -0
  212. package/src/mixins/CmdFormElement/DefaultMessageProperties.js +9 -0
  213. package/src/mixins/CmdImageGallery/DefaultMessageProperties.js +9 -0
  214. package/src/mixins/CmdSiteSearch/DefaultMessageProperties.js +14 -0
  215. package/src/mixins/CmdUploadForm/DefaultMessageProperties.js +53 -0
  216. package/src/mixins/FieldValidation.js +220 -0
  217. package/src/mixins/GlobalDefaultMessageProperties.js +15 -0
  218. package/src/mixins/I18n.js +56 -0
  219. package/src/mixins/Tooltip.js +26 -0
  220. package/src/router/index.js +67 -0
  221. package/src/utilities.js +3 -6
  222. package/src/utils/GetFileExtension.js +15 -0
  223. package/src/utils/common.js +6 -0
  224. package/src/utils/dom.js +8 -0
  225. package/src/utils/globalSequence.js +13 -0
  226. package/src/utils/string.js +8 -0
  227. package/src/assets/data/address.json +0 -13
  228. package/src/assets/data/footer-navigation.json +0 -38
  229. package/src/assets/data/languages.json +0 -31
  230. package/src/assets/data/multisteps.json +0 -27
  231. package/src/assets/data/navigation.json +0 -47
  232. package/src/assets/data/pager.json +0 -11
  233. package/src/assets/data/top-header-navigation.json +0 -27
  234. package/src/components/CmdFooterNavigation.vue +0 -71
  235. package/src/components/CmdMainHeadline.vue +0 -75
  236. 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,56 @@
1
+ export default {
2
+ props: {
3
+ /**
4
+ * Message properties for internationalization.
5
+ *
6
+ * You can either specify an object with key-value-pairs or a function which
7
+ * takes at least one input parameter (the key) and returns the according
8
+ * message.
9
+ *
10
+ * If key-value-pairs are provided, the value can be either a string or a
11
+ * function. If it is a function, then it is called with an array of
12
+ * replacements for placeholders in the message.
13
+ *
14
+ * If a function is provided, it is called with two parameters. The first
15
+ * parameter is the message key and the second parameter is an array of
16
+ * replacements for placeholders in the message.
17
+ *
18
+ * Example:
19
+ * <pre>
20
+ * {
21
+ * "my.message1": "My {0} test message with {1} placeholders",
22
+ * "my.message2": params => "My {0} message".replace("{0}", params[0])
23
+ * }
24
+ * </pre>
25
+ */
26
+ i18n: {
27
+ type: [Object, Function],
28
+ default: () => ({})
29
+ }
30
+ },
31
+ methods: {
32
+ getMessage(key, ...params) {
33
+ if (!key) {
34
+ return ""
35
+ }
36
+ let messages = this.i18n
37
+ if (typeof this.i18n === "function") {
38
+ messages = this.i18n.call(this, key, params)
39
+ if (typeof messages !== "object") {
40
+ return messages
41
+ }
42
+ }
43
+ let message =
44
+ messages[key] ||
45
+ (this.defaultMessageProperties && this.defaultMessageProperties[key]) ||
46
+ key
47
+ if (typeof message === "function") {
48
+ return message.call(this, params || [])
49
+ }
50
+ if (Array.isArray(params) && params.length) {
51
+ params.forEach((param, index) => (message = message.replace("{" + index + "}", param)))
52
+ }
53
+ return message
54
+ }
55
+ }
56
+ }
@@ -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,15 @@
1
+ /**
2
+ * @param filename
3
+ * @returns {string} file extension of given filename or empty string if filename is empty/undefined
4
+ */
5
+ function getFileExtension(filename) {
6
+ if (filename) {
7
+ const positionOfLastDot = filename.lastIndexOf(".")
8
+ if (positionOfLastDot > -1) {
9
+ return filename.substring(positionOfLastDot + 1)
10
+ }
11
+ }
12
+ return ""
13
+ }
14
+
15
+ export { getFileExtension }
@@ -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
- ]