comand-component-library 3.1.45 → 3.1.46

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 +25 -12
  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 +6 -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,110 @@
1
+ [
2
+ {
3
+ "name": "android",
4
+ "iconClass": "icon-android"
5
+ },
6
+ {
7
+ "name": "apple",
8
+ "iconClass": "icon-apple"
9
+ },
10
+ {
11
+ "name": "chrome",
12
+ "iconClass": "icon-chrome"
13
+ },
14
+ {
15
+ "name": "css3",
16
+ "iconClass": "icon-css3"
17
+ },
18
+ {
19
+ "name": "edge",
20
+ "iconClass": "icon-edge"
21
+ },
22
+ {
23
+ "name": "facebook",
24
+ "iconClass": "icon-facebook"
25
+ },
26
+ {
27
+ "name": "facebook-square",
28
+ "iconClass": "icon-facebook-square"
29
+ },
30
+ {
31
+ "name": "firefox",
32
+ "iconClass": "icon-firefox"
33
+ },
34
+ {
35
+ "name": "flickr",
36
+ "iconClass": "icon-flickr"
37
+ },
38
+ {
39
+ "name": "google-analytics",
40
+ "iconClass": "icon-google-analytics"
41
+ },
42
+ {
43
+ "name": "html5",
44
+ "iconClass": "icon-html5"
45
+ },
46
+ {
47
+ "name": "linkedin",
48
+ "iconClass": "icon-linkedin"
49
+ },
50
+ {
51
+ "name": "linkedin-square",
52
+ "iconClass": "icon-linkedin-square"
53
+ },
54
+ {
55
+ "name": "opera",
56
+ "iconClass": "icon-opera"
57
+ },
58
+ {
59
+ "name": "safari",
60
+ "iconClass": "icon-safari"
61
+ },
62
+ {
63
+ "name": "skype",
64
+ "iconClass": "icon-skype"
65
+ },
66
+ {
67
+ "name": "social-networks",
68
+ "iconClass": "icon-social-networks"
69
+ },
70
+ {
71
+ "name": "tumblr",
72
+ "iconClass": "icon-tumblr"
73
+ },
74
+ {
75
+ "name": "tumblr-square",
76
+ "iconClass": "icon-tumblr-square"
77
+ },
78
+ {
79
+ "name": "linux",
80
+ "iconClass": "icon-linux"
81
+ },
82
+ {
83
+ "name": "twitch",
84
+ "iconClass": "icon-twitch"
85
+ },
86
+ {
87
+ "name": "twitter",
88
+ "iconClass": "icon-twitter"
89
+ },
90
+ {
91
+ "name": "twitter-square",
92
+ "iconClass": "icon-twitter-square"
93
+ },
94
+ {
95
+ "name": "windows8",
96
+ "iconClass": "icon-windows8"
97
+ },
98
+ {
99
+ "name": "xing",
100
+ "iconClass": "icon-xing"
101
+ },
102
+ {
103
+ "name": "xing-square",
104
+ "iconClass": "icon-xing-square"
105
+ },
106
+ {
107
+ "name": "youtube",
108
+ "iconClass": "icon-youtube"
109
+ }
110
+ ]
@@ -0,0 +1,46 @@
1
+ import {ref} from "vue"
2
+ import router from "../router"
3
+
4
+ const tabs = [{name: 'Component'}, {name: 'Properties'}]
5
+ const tabProps = {
6
+ tabs,
7
+ stretchTabs: true,
8
+ useSlot: true,
9
+ activeTab: ref(0)
10
+ }
11
+ const tabHandlers = {
12
+ activeTab: setActiveTab
13
+ }
14
+
15
+ function getActiveTab(tabName) {
16
+ const tabIndex = tabs.map(tab => tab.name.toLowerCase()).indexOf(tabName?.toLowerCase())
17
+ if (tabIndex > -1) {
18
+ return tabIndex
19
+ }
20
+ return 0
21
+ }
22
+
23
+ // set url-parameter if tab is clicked
24
+ function setActiveTab(index) {
25
+ const tab = tabs[index]
26
+ if (tab) {
27
+ router.push({
28
+ name: router.currentRoute.name,
29
+ params: {
30
+ tab: tab.name.toLowerCase()
31
+ }
32
+ })
33
+ }
34
+ }
35
+
36
+ function routeHandler(to) {
37
+ tabProps.activeTab = getActiveTab(to.params.tab)
38
+ }
39
+
40
+ export {
41
+ tabs,
42
+ tabProps,
43
+ tabHandlers,
44
+ setActiveTab,
45
+ routeHandler
46
+ }
@@ -0,0 +1,237 @@
1
+ <script setup>
2
+ // import functions
3
+ import {defineProps, defineAsyncComponent, computed, ref} from "vue"
4
+ import {useRoute, useRouter} from "vue-router"
5
+ import {isFrameMode} from "../../utils/common"
6
+ import {useScrollspy} from "../../composables/scrollspy"
7
+
8
+ // import components
9
+ import CmdListOfLinks from "../../components/CmdListOfLinks"
10
+
11
+ // import data
12
+ import componentDescription from "../data/componentsDescription"
13
+
14
+ const props = defineProps({
15
+ componentName: {
16
+ type: String,
17
+ required: true
18
+ },
19
+ previousComponentName: {
20
+ type: String,
21
+ required: true
22
+ },
23
+ nextComponentName: {
24
+ type: String,
25
+ required: true
26
+ },
27
+ activeTab: {
28
+ type: Number,
29
+ default: 0
30
+ }
31
+ })
32
+ const componentNameHelp = computed(() => props.componentName + "Help")
33
+ const idMainContainer = computed(() => {
34
+ if(isFrameMode()) {
35
+ return props.componentName.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase()
36
+ }
37
+ return null
38
+ })
39
+ const HelpView = computed(
40
+ () => componentNameHelp.value
41
+ ? defineAsyncComponent(() => import("./components/" + componentNameHelp.value))
42
+ : {render: () => ""}
43
+ )
44
+ const iconToggleSidebar = computed(() => showPageAnchors.value ? "icon-double-arrow-right" : "icon-double-arrow-left")
45
+
46
+ const route = useRoute()
47
+ const router = useRouter()
48
+ const scrollSpy = useScrollspy(() => examples.value.querySelectorAll(".example-section"))
49
+ const examples = ref(null)
50
+ const listOfLinks = ref([])
51
+ const showPageAnchors = ref(true)
52
+
53
+ function getAnchorId(sectionSelector) {
54
+ return "#" + sectionSelector.querySelector(".pre-headline-text")
55
+ ?.innerText
56
+ .replace(/[# ]/g, "")
57
+ .toLowerCase()
58
+ }
59
+
60
+ function getHeadlineText(sectionSelector) {
61
+ if (sectionSelector.classList.contains("has-pre-headline-text")) {
62
+ return sectionSelector.querySelector(".pre-headline-text + *")?.innerText
63
+ }
64
+ return sectionSelector.querySelector("*:first-child")?.innerText
65
+ }
66
+
67
+ function onViewResolve() {
68
+ scrollSpy.reset()
69
+ listOfLinks.value = []
70
+ const sectionSelector = examples.value.querySelectorAll(".example-section > .cmd-custom-headline")
71
+ for (let i = 0 ; i < sectionSelector.length; i++) {
72
+ listOfLinks.value.push({
73
+ text: getHeadlineText(sectionSelector.item(i)),
74
+ path: getAnchorId(sectionSelector.item(i))
75
+ })
76
+ }
77
+ }
78
+ </script>
79
+
80
+ <template>
81
+ <main :id="idMainContainer">
82
+ <aside v-if="listOfLinks.length > 1" class="flex-container no-gap" id="page-anchors">
83
+ <a href="#" @click.prevent="showPageAnchors = !showPageAnchors" title="Toggle Iterations-Sidebar">
84
+ <span :class="iconToggleSidebar"></span>
85
+ </a>
86
+ <transition v-show="showPageAnchors" name="slide-right">
87
+ <CmdListOfLinks
88
+ :cmdCustomHeadline="{headlineText: 'Iterations', headlineLevel: 6}"
89
+ :sectionAnchors="true"
90
+ :activeSection="scrollSpy.activeItem"
91
+ :links="listOfLinks"
92
+ />
93
+ </transition>
94
+ </aside>
95
+ <template v-if="!isFrameMode()">
96
+ <a href="#" @click.prevent="router.go(-1)">
97
+ <span class="icon-single-arrow-left"></span>
98
+ <span>Back to previous component</span>
99
+ </a>
100
+ <h1>{{ componentDescription[props.componentName]?.headline }}</h1>
101
+ <p>{{ componentDescription[props.componentName]?.shorttext }}</p>
102
+ </template>
103
+ <div class="flex-container vertical">
104
+ <section id="tabs-wrapper" ref="examples">
105
+ <div v-show="isFrameMode()" id="frame-component-target"></div>
106
+ <Suspense @resolve="onViewResolve">
107
+ <HelpView />
108
+ </Suspense>
109
+ </section>
110
+ <template v-if="!isFrameMode()">
111
+ <section class="flex-container" id="component-link-wrapper">
112
+ <router-link :to="{name: previousComponentName, params: {tab: route.params.tab}}">
113
+ <span class="icon-single-arrow-left"></span>
114
+ <span>{{ previousComponentName }}</span>
115
+ </router-link>
116
+ <router-link :to="{name: nextComponentName, params: {tab: route.params.tab}}">
117
+ <span>{{ nextComponentName }}</span>
118
+ <span class="icon-single-arrow-right"></span>
119
+ </router-link>
120
+ </section>
121
+ </template>
122
+ </div>
123
+ <footer></footer>
124
+ </main>
125
+ </template>
126
+
127
+ <style lang="scss">
128
+ main {
129
+ #page-anchors {
130
+ position: fixed;
131
+ right: 0;
132
+ z-index: 100;
133
+ background: var(--pure-white);
134
+ border: var(--default-border);
135
+ border-right: 0;
136
+ top: var(--default-margin);
137
+ box-shadow: -.2rem .2rem .4rem #999;
138
+
139
+ > a {
140
+ flex: none;
141
+ display: flex;
142
+ align-items: center;
143
+ text-decoration: none;
144
+ padding: .2rem;
145
+ border-right: var(--default-border);
146
+
147
+ span[class*="icon"] {
148
+ font-size: 1rem;
149
+ }
150
+
151
+ &:hover, &:active, &:focus {
152
+ background: var(--primary-color);
153
+
154
+ span[class*="icon"] {
155
+ color: var(--pure-white);
156
+ }
157
+ }
158
+ }
159
+
160
+ .cmd-custom-headline {
161
+ margin: 0;
162
+ padding: var(--default-padding);
163
+ }
164
+
165
+ ul {
166
+ gap: 0;
167
+ margin: 0;
168
+
169
+ li {
170
+ transition: var(--default-transition);
171
+
172
+ a {
173
+ display: block;
174
+ padding: calc(var(--default-padding) / 2);
175
+ transition: var(--default-transition);
176
+ font-size: 1.2rem;
177
+ }
178
+
179
+ &.active {
180
+ background: var(--primary-color);
181
+ transition: var(--default-transition);
182
+ color: var(--pure-white);
183
+
184
+ a {
185
+ span, span[class*="icon"] {
186
+ color: var(--pure-white);
187
+ transition: var(--default-transition);
188
+ }
189
+ }
190
+
191
+ }
192
+ }
193
+ }
194
+ }
195
+ }
196
+
197
+ #tabs-wrapper {
198
+ > .cmd-tabs {
199
+ > ul > li {
200
+ border: 0;
201
+ border-bottom: var(--default-border);
202
+ font-weight: bold;
203
+
204
+ &:first-child {
205
+ border-right: var(--default-border);
206
+ }
207
+
208
+ &.active {
209
+ top: 0;
210
+ }
211
+ }
212
+
213
+ > div {
214
+ border: 0;
215
+ border-bottom: var(--default-border);
216
+ padding: calc(var(--default-padding) * 2)
217
+ }
218
+ }
219
+ }
220
+
221
+ #component-link-wrapper {
222
+ margin-top: auto;
223
+ justify-content: space-between;
224
+
225
+ a {
226
+ flex: none;
227
+ display: flex;
228
+ align-items: center;
229
+
230
+ span[class*="icon"] {
231
+ font-size: 1.2rem;
232
+ text-decoration: none;
233
+ }
234
+ }
235
+ }
236
+ </style>
237
+
@@ -0,0 +1,13 @@
1
+ <template>
2
+ HOME!!!
3
+ </template>
4
+
5
+ <script>
6
+ export default {
7
+ name: "HelpHome"
8
+ }
9
+ </script>
10
+
11
+ <style scoped>
12
+
13
+ </style>
@@ -0,0 +1,80 @@
1
+ <template>
2
+ <main>
3
+ <h1>Icon Fonts</h1>
4
+ <CmdFormElement
5
+ element="input"
6
+ type="search"
7
+ id="component-search"
8
+ labelText="Search icons"
9
+ placeholder="Search icons"
10
+ :showLabel="false"
11
+ :showSearchButton="false"
12
+ fieldIconClass="icon-search"
13
+ v-model="filterIcons"
14
+ />
15
+ <h2>Framework Icons</h2>
16
+ <div class="grid-container-create-columns">
17
+ <div v-for="(icon, index) in filteredFrameworkIcons" :key="index">
18
+ <span :class="icon.iconClass"></span>
19
+ <span>{{ icon.name }}</span>
20
+ </div>
21
+ </div>
22
+ <hr/>
23
+ <h2>Logos Icons</h2>
24
+ <div class="grid-container-create-columns">
25
+ <div v-for="(icon, index) in filteredLogosIcons" :key="index">
26
+ <span :class="icon.iconClass"></span>
27
+ <span>{{ icon.name }}</span>
28
+ </div>
29
+ </div>
30
+ </main>
31
+ </template>
32
+
33
+ <script>
34
+ import CmdFormElement from "../../components/CmdFormElement"
35
+
36
+ import frameworkIcons from "../generated/frameworkIcons"
37
+ import logosIcons from "../generated/logosIcons"
38
+
39
+ export default {
40
+ name: "IconFont",
41
+ components: {CmdFormElement},
42
+ data() {
43
+ return {
44
+ filterIcons: "",
45
+ sortedFrameworkIcons: this.sortIcons(frameworkIcons),
46
+ sortedLogosIcons: this.sortIcons(logosIcons)
47
+ }
48
+ },
49
+ computed: {
50
+ filteredFrameworkIcons() {
51
+ return this.filteredIcons(this.sortedFrameworkIcons)
52
+ },
53
+ filteredLogosIcons() {
54
+ return this.filteredIcons(this.sortedLogosIcons)
55
+ }
56
+ },
57
+ methods: {
58
+ filteredIcons(iconFont) {
59
+ const filterTerm = this.filterIcons.trim().toLowerCase()
60
+
61
+ if (filterTerm) {
62
+ return iconFont.filter((item) => {
63
+ return item.name.toLowerCase().includes(filterTerm)
64
+ })
65
+ }
66
+ return iconFont
67
+ },
68
+ sortIcons(icons) {
69
+ return icons.sort((a, b) => {
70
+ // compare icon-names to sort alphabetical
71
+ return a.name.localeCompare(b.name)
72
+ })
73
+ }
74
+ }
75
+ }
76
+ </script>
77
+
78
+ <style scoped>
79
+
80
+ </style>
@@ -0,0 +1,78 @@
1
+ <script setup>
2
+ // import functions
3
+ import {tabProps, tabHandlers} from "../../tabs"
4
+ import {isFrameMode} from "../../../utils/common"
5
+
6
+ // import components
7
+ import CmdAccordion from "../../../components/CmdAccordion"
8
+ import ComponentProperties from "../../components/ComponentProperties"
9
+ import ViewCodeData from "../../components/ViewCodeData"
10
+ import CmdCustomHeadline from "../../../components/CmdCustomHeadline"
11
+ import CmdTabs from "../../../components/CmdTabs"
12
+
13
+ // import example-data
14
+ import CmdCode from "../../data/CmdAccordionHelp"
15
+ import accordion from '../../../assets/data/accordion.json'
16
+ import propertyDescriptions from "../../generated/CmdAccordionPropertyDescriptions.json"
17
+
18
+ const propertyStructures = {
19
+ accordionData: [
20
+ {
21
+ "headline": "<string>",
22
+ "icon": {
23
+ "iconClass": "<string>",
24
+ "tooltip": "<string>"
25
+ },
26
+ "content": "<string>",
27
+ "status": "<boolean>"
28
+ }
29
+ ],
30
+ iconClosed: {
31
+ "iconClass": "<string>",
32
+ "tooltip": "<string>"
33
+ },
34
+ iconOpen: {
35
+ "iconClass": "<string>",
36
+ "tooltip": "<string>"
37
+ }
38
+ }
39
+ </script>
40
+
41
+ <template>
42
+ <CmdTabs v-show="!isFrameMode()" v-bind="tabProps" :active-tab="tabProps.activeTab" v-on="tabHandlers">
43
+ <template v-slot:tab-content-0>
44
+ <h2>Component</h2>
45
+ <CmdCustomHeadline preHeadlineText="Example #1" headlineText="Content given by slot" :headlineLevel="3" />
46
+ <ViewCodeData :isFirstComponent="true" :code="CmdCode[0]">
47
+ <teleport to="#frame-component-target" :disabled="!isFrameMode()">
48
+ <CmdAccordion :accordionData="2" toggleMode="multiple">
49
+ <template v-slot:accordionHeadline0>
50
+ <h4>Accordion 1</h4>
51
+ </template>
52
+ <template v-slot:accordionContent0>
53
+ <p>
54
+ Content for accordion 1
55
+ </p>
56
+ </template>
57
+ <template v-slot:accordionHeadline1>
58
+ <h4>Accordion 2</h4>
59
+ </template>
60
+ <template v-slot:accordionContent1>
61
+ <p>
62
+ Content for accordion 2
63
+ </p>
64
+ </template>
65
+ </CmdAccordion>
66
+ </teleport>
67
+ </ViewCodeData>
68
+ <hr />
69
+ <CmdCustomHeadline preHeadlineText="Example #2" headlineText="Content given by json-file" :headlineLevel="3" />
70
+ <ViewCodeData :code="CmdCode[1]" :data="accordion.accordionData1">
71
+ <CmdAccordion :accordionData="accordion.accordionData1" />
72
+ </ViewCodeData>
73
+ </template>
74
+ <template v-slot:tab-content-1>
75
+ <ComponentProperties :properties="CmdAccordion.props" :propertyDescriptions="propertyDescriptions" :propertyStructures="propertyStructures"/>
76
+ </template>
77
+ </CmdTabs>
78
+ </template>
@@ -0,0 +1,65 @@
1
+ <script setup>
2
+ // import functions
3
+ import {tabProps, tabHandlers} from "../../tabs"
4
+ import {isFrameMode} from "../../../utils/common"
5
+
6
+ // import components
7
+ import CmdAddressData from "../../../components/CmdAddressData"
8
+ import ComponentProperties from "../../components/ComponentProperties"
9
+ import ViewCodeData from "../../components/ViewCodeData"
10
+ import CmdTabs from "../../../components/CmdTabs"
11
+ import ExampleSectionWrapper from "../../components/ExampleSectionWrapper"
12
+
13
+ // import example-data
14
+ import CmdCode from "../../data/CmdAddressDataHelp"
15
+ import addressData from '../../../assets/data/address-data.json'
16
+ import propertyDescriptions from "../../generated/CmdAddressDataPropertyDescriptions.json"
17
+
18
+ const propertyStructures = {
19
+ addressData: {
20
+ "company": "<string>",
21
+ "address": {
22
+ "streetNo": "<string>",
23
+ "zip": "<number>",
24
+ "city": "<string>"
25
+ },
26
+ "telephone": "<string>",
27
+ "mobilephone": "<string>",
28
+ "fax": "<string>",
29
+ "email": "<string>"
30
+ }
31
+ }
32
+ </script>
33
+
34
+ <template>
35
+ <CmdTabs v-show="!isFrameMode()" v-bind="tabProps" :active-tab="tabProps.activeTab" v-on="tabHandlers">
36
+ <template v-slot:tab-content-0>
37
+ <h2>Component</h2>
38
+ <ExampleSectionWrapper componentName="CmdAddressData" headlineText="List with labels">
39
+ <ViewCodeData :isFirstComponent="true" :code="CmdCode[0]" :data="addressData">
40
+ <teleport to="#frame-component-target" :disabled="!isFrameMode()">
41
+ <CmdAddressData
42
+ :addressData="addressData"
43
+ :linkGoogleMaps="true"
44
+ :cmdCustomHeadline="{ headlineText: 'Address', headlineLevel: 5}"
45
+ />
46
+ </teleport>
47
+ </ViewCodeData>
48
+ </ExampleSectionWrapper>
49
+ <hr />
50
+ <ExampleSectionWrapper componentName="CmdAddressData" headlineText="List without labels">
51
+ <ViewCodeData :code="CmdCode[1]" :data="addressData">
52
+ <CmdAddressData
53
+ :addressData="addressData"
54
+ :showLabels="false"
55
+ :linkGoogleMaps="false"
56
+ :cmdCustomHeadline="{ headlineText: 'Address', headlineLevel: 5}"
57
+ />
58
+ </ViewCodeData>
59
+ </ExampleSectionWrapper>
60
+ </template>
61
+ <template v-slot:tab-content-1>
62
+ <ComponentProperties :properties="CmdAddressData.props" :propertyDescriptions="propertyDescriptions" :propertyStructures="propertyStructures" />
63
+ </template>
64
+ </CmdTabs>
65
+ </template>
@@ -0,0 +1,62 @@
1
+ <script setup>
2
+ // import functions
3
+ import {ref, onMounted} from "vue"
4
+ import {tabProps, tabHandlers} from "../../tabs"
5
+ import {isFrameMode} from "../../../utils/common"
6
+
7
+ // import components
8
+ import CmdBackToTopButton from "../../../components/CmdBackToTopButton"
9
+ import ComponentProperties from "../../components/ComponentProperties"
10
+ import CmdTabs from "../../../components/CmdTabs"
11
+ import ViewCodeData from "../../components/ViewCodeData"
12
+ import ExampleSectionWrapper from "../../components/ExampleSectionWrapper"
13
+
14
+ // import example-data
15
+ import CmdCode from "../../data/CmdBackToTopButtonHelp"
16
+ import propertyDescriptions from "../../generated/CmdBackToTopButtonPropertyDescriptions.json"
17
+
18
+ const propertyStructures = {
19
+ iconBackToTop: {
20
+ "iconBackToTop": {
21
+ "iconClass": "<string>",
22
+ "tooltip": "<number>"
23
+ }
24
+ }
25
+ }
26
+
27
+ const backToTop = ref(null)
28
+ onMounted(() => {
29
+ backToTop.value.windowScrollY = 1
30
+ backToTop.value.windowInnerHeight = 0
31
+ backToTop.value.bodyScrollHeight = 1
32
+ window.removeEventListener('resize', backToTop.value.onViewportChange);
33
+ window.removeEventListener('scroll', backToTop.value.onViewportChange);
34
+ })
35
+ </script>
36
+
37
+ <template>
38
+ <CmdTabs v-show="!isFrameMode()" v-bind="tabProps" :active-tab="tabProps.activeTab" v-on="tabHandlers">
39
+ <template v-slot:tab-content-0>
40
+ <h2>Component</h2>
41
+ <ExampleSectionWrapper componentName="CmdABackToTopButton" headlineText="Back-to-top-button">
42
+ <ViewCodeData :isFirstComponent="true" :code="CmdCode[0]">
43
+ <teleport to="#frame-component-target" :disabled="!isFrameMode()">
44
+ <CmdBackToTopButton id="view-component" ref="backToTop" />
45
+ </teleport>
46
+ </ViewCodeData>
47
+ </ExampleSectionWrapper>
48
+ </template>
49
+ <template v-slot:tab-content-1>
50
+ <ComponentProperties :properties="CmdBackToTopButton.props" :propertyDescriptions="propertyDescriptions" :propertyStructures="propertyStructures" />
51
+ </template>
52
+ </CmdTabs>
53
+ </template>
54
+
55
+ <style lang="scss">
56
+ #view-component {
57
+ position: relative;
58
+ bottom: auto;
59
+ left: 0;
60
+ right: auto;
61
+ }
62
+ </style>