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.
- package/dist/comand-component-library.css +1 -1
- package/dist/comand-component-library.umd.min.js +1 -1
- package/package.json +47 -41
- package/src/App.vue +373 -135
- package/src/ComponentDocumentation.vue +156 -0
- package/src/ComponentLibraryHelp.vue +20 -0
- package/src/assets/data/accordion.json +21 -24
- package/src/assets/data/address-data.json +34 -0
- package/src/assets/data/bank-account-data.json +22 -0
- package/src/assets/data/box-product.json +14 -4
- package/src/assets/data/box-user.json +48 -22
- package/src/assets/data/breadcrumbs.json +11 -3
- package/src/assets/data/cookie-disclaimer.json +4 -4
- package/src/assets/data/fake-select-colors.json +4 -0
- package/src/assets/data/fake-select-filter-options.json +14 -0
- package/src/assets/data/fake-select-options-with-icons.json +6 -12
- package/src/assets/data/fake-select-options.json +3 -3
- package/src/assets/data/list-of-links-section-anchors.json +23 -0
- package/src/assets/data/list-of-links-top-header-navigation.json +20 -0
- package/src/assets/data/list-of-links.json +42 -0
- package/src/assets/data/main-navigation.json +48 -0
- package/src/assets/data/multistep-form-progress-bar.json +33 -0
- package/src/assets/data/select-options.json +4 -0
- package/src/assets/data/{share-buttons.json → share-buttons-page-by-json.json} +8 -8
- package/src/assets/data/share-buttons-page-by-property.json +30 -0
- package/src/assets/data/switch-language.json +20 -0
- package/src/assets/data/table-large.json +1 -1
- package/src/assets/data/table-small.json +1 -1
- package/src/assets/styles/global-styles.scss +43 -13
- package/src/assets/styles/transitions.scss +21 -1
- package/src/components/CmdAccordion.vue +43 -42
- package/src/components/CmdAddressData.vue +124 -56
- package/src/components/CmdBackToTopButton.vue +3 -3
- package/src/components/CmdBankAccountData.vue +104 -0
- package/src/components/CmdBox.vue +253 -56
- package/src/components/CmdBoxSiteSearch.vue +138 -39
- package/src/components/CmdBoxWrapper.vue +206 -0
- package/src/components/CmdBreadcrumbs.vue +29 -13
- package/src/components/CmdCompanyLogo.vue +6 -4
- package/src/components/CmdCookieDisclaimer.vue +99 -75
- package/src/components/CmdCopyrightInformation.vue +1 -1
- package/src/components/CmdCustomHeadline.vue +93 -0
- package/src/components/CmdFakeSelect.vue +285 -60
- package/src/components/CmdFancyBox.vue +47 -33
- package/src/components/CmdForm.vue +107 -0
- package/src/components/CmdFormElement.vue +515 -81
- package/src/components/CmdFormFilters.vue +25 -11
- package/src/components/CmdGoogleMaps.vue +9 -3
- package/src/components/CmdImageGallery.vue +28 -5
- package/src/components/CmdImageZoom.vue +9 -1
- package/src/components/CmdListOfLinks.vue +169 -0
- package/src/components/CmdLoginForm.vue +143 -63
- package/src/components/CmdMainNavigation.vue +140 -42
- package/src/components/CmdMultipleSwitch.vue +33 -2
- package/src/components/CmdMultistepFormProgressBar.vue +60 -10
- package/src/components/CmdOpeningHours.vue +36 -10
- package/src/components/CmdPager.vue +7 -5
- package/src/components/CmdProgressBar.vue +20 -3
- package/src/components/CmdShareButtons.vue +64 -9
- package/src/components/CmdSiteHeader.vue +27 -14
- package/src/components/CmdSlideButton.vue +5 -2
- package/src/components/CmdSlideshow.vue +23 -7
- package/src/components/CmdSwitchButton.vue +10 -3
- package/src/components/CmdSwitchLanguage.vue +18 -10
- package/src/components/CmdSystemMessage.vue +30 -17
- package/src/components/CmdTable.vue +15 -7
- package/src/components/CmdTabs.vue +43 -3
- package/src/components/CmdThumbnailScroller.vue +22 -6
- package/src/components/CmdTooltip.vue +184 -11
- package/src/components/CmdUploadForm.vue +198 -92
- package/src/components/CmdWidthLimitationWrapper.vue +9 -6
- package/src/composables/event.js +8 -0
- package/src/composables/scrollspy.js +52 -0
- package/src/directives/focus.js +19 -0
- package/src/directives/telephone.js +1 -1
- package/src/documentation/commonProps.js +6 -0
- package/src/documentation/components/ComponentCode.vue +50 -0
- package/src/documentation/components/ComponentProperties.vue +237 -0
- package/src/documentation/components/ExampleSectionWrapper.vue +46 -0
- package/src/documentation/components/ViewCodeData.vue +113 -0
- package/src/documentation/data/CmdAccordionHelp.js +22 -0
- package/src/documentation/data/CmdAddressDataHelp.js +17 -0
- package/src/documentation/data/CmdBackToTopButtonHelp.js +3 -0
- package/src/documentation/data/CmdBankAccountDataHelp.js +8 -0
- package/src/documentation/data/CmdBoxHelp.js +45 -0
- package/src/documentation/data/CmdBoxSiteSearchHelp.js +11 -0
- package/src/documentation/data/CmdBreadcrumbsHelp.js +6 -0
- package/src/documentation/data/CmdCompanyLogoHelp.js +8 -0
- package/src/documentation/data/CmdCookieDisclaimerHelp.js +9 -0
- package/src/documentation/data/CmdCopyrightInformation.js +2 -0
- package/src/documentation/data/CmdCustomHeadlineHelp.js +8 -0
- package/src/documentation/data/CmdFakeSelectHelp.js +60 -0
- package/src/documentation/data/CmdFancyBoxHelp.js +7 -0
- package/src/documentation/data/CmdFooterNavigationHelp.js +5 -0
- package/src/documentation/data/CmdFormElementHelp.js +189 -0
- package/src/documentation/data/CmdFormFiltersHelp.js +6 -0
- package/src/documentation/data/CmdFormHelp.js +10 -0
- package/src/documentation/data/CmdGoogleMapsHelp.js +5 -0
- package/src/documentation/data/CmdImageGalleryHelp.js +5 -0
- package/src/documentation/data/CmdImageZoomHelp.js +6 -0
- package/src/documentation/data/CmdListOfLinksHelp.js +24 -0
- package/src/documentation/data/CmdLoginFormHelp.js +6 -0
- package/src/documentation/data/CmdMainNavigationHelp.js +7 -0
- package/src/documentation/data/CmdMultistepFormProgressBarHelp.js +6 -0
- package/src/documentation/data/CmdOpeningHoursHelp.js +10 -0
- package/src/documentation/data/CmdPagerHelp.js +7 -0
- package/src/documentation/data/CmdProgressBarHelp.js +13 -0
- package/src/documentation/data/CmdShareButtonsHelp.js +13 -0
- package/src/documentation/data/CmdSiteHeaderHelp.js +21 -0
- package/src/documentation/data/CmdSlideButtonHelp.js +10 -0
- package/src/documentation/data/CmdSlideshowHelp.js +7 -0
- package/src/documentation/data/CmdSwitchLanguageHelp.js +6 -0
- package/src/documentation/data/CmdSystemMessageHelp.js +32 -0
- package/src/documentation/data/CmdTableHelp.js +14 -0
- package/src/documentation/data/CmdTabsHelp.js +10 -0
- package/src/documentation/data/CmdThumbnailScrollerHelp.js +5 -0
- package/src/documentation/data/CmdTooltipHelp.js +13 -0
- package/src/documentation/data/CmdUploadFormHelp.js +17 -0
- package/src/documentation/data/CmdWidthLimitationWrapperHelp.js +7 -0
- package/src/documentation/data/componentsDescription.json +158 -0
- package/src/documentation/generated/CmdAccordionPropertyDescriptions.json +57 -0
- package/src/documentation/generated/CmdAddressDataPropertyDescriptions.json +32 -0
- package/src/documentation/generated/CmdBackToTopButtonPropertyDescriptions.json +12 -0
- package/src/documentation/generated/CmdBankAccountDataPropertyDescriptions.json +34 -0
- package/src/documentation/generated/CmdBoxPropertyDescriptions.json +91 -0
- package/src/documentation/generated/CmdBoxSiteSearchPropertyDescriptions.json +41 -0
- package/src/documentation/generated/CmdBoxWrapperPropertyDescriptions.json +47 -0
- package/src/documentation/generated/CmdBreadcrumbsPropertyDescriptions.json +17 -0
- package/src/documentation/generated/CmdCompanyLogoPropertyDescriptions.json +27 -0
- package/src/documentation/generated/CmdCookieDisclaimerPropertyDescriptions.json +22 -0
- package/src/documentation/generated/CmdCustomHeadlinePropertyDescriptions.json +22 -0
- package/src/documentation/generated/CmdFakeSelectPropertyDescriptions.json +79 -0
- package/src/documentation/generated/CmdFancyBoxPropertyDescriptions.json +62 -0
- package/src/documentation/generated/CmdFooterNavigationPropertyDescriptions.json +17 -0
- package/src/documentation/generated/CmdFormElementPropertyDescriptions.json +178 -0
- package/src/documentation/generated/CmdFormFiltersPropertyDescriptions.json +32 -0
- package/src/documentation/generated/CmdFormPropertyDescriptions.json +40 -0
- package/src/documentation/generated/CmdGoogleMapsPropertyDescriptions.json +7 -0
- package/src/documentation/generated/CmdImageGalleryPropertyDescriptions.json +22 -0
- package/src/documentation/generated/CmdImageZoomPropertyDescriptions.json +12 -0
- package/src/documentation/generated/CmdListOfLinksPropertyDescriptions.json +60 -0
- package/src/documentation/generated/CmdLoginFormPropertyDescriptions.json +90 -0
- package/src/documentation/generated/CmdMainNavigationPropertyDescriptions.json +62 -0
- package/src/documentation/generated/CmdMultipleSwitchPropertyDescriptions.json +52 -0
- package/src/documentation/generated/CmdMultistepFormProgressBarPropertyDescriptions.json +17 -0
- package/src/documentation/generated/CmdOpeningHoursPropertyDescriptions.json +42 -0
- package/src/documentation/generated/CmdPagerPropertyDescriptions.json +37 -0
- package/src/documentation/generated/CmdProgressBarPropertyDescriptions.json +32 -0
- package/src/documentation/generated/CmdShareButtonsPropertyDescriptions.json +34 -0
- package/src/documentation/generated/CmdSiteHeaderPropertyDescriptions.json +27 -0
- package/src/documentation/generated/CmdSlideButtonPropertyDescriptions.json +25 -0
- package/src/documentation/generated/CmdSlideshowPropertyDescriptions.json +42 -0
- package/src/documentation/generated/CmdSwitchButtonPropertyDescriptions.json +79 -0
- package/src/documentation/generated/CmdSwitchLanguagePropertyDescriptions.json +7 -0
- package/src/documentation/generated/CmdSystemMessagePropertyDescriptions.json +40 -0
- package/src/documentation/generated/CmdTablePropertyDescriptions.json +62 -0
- package/src/documentation/generated/CmdTabsPropertyDescriptions.json +27 -0
- package/src/documentation/generated/CmdThumbnailScrollerPropertyDescriptions.json +32 -0
- package/src/documentation/generated/CmdTooltipPropertyDescriptions.json +17 -0
- package/src/documentation/generated/CmdUploadFormPropertyDescriptions.json +90 -0
- package/src/documentation/generated/CmdWidthLimitationWrapperPropertyDescriptions.json +41 -0
- package/src/documentation/generated/frameworkIcons.json +730 -0
- package/src/documentation/generated/logosIcons.json +110 -0
- package/src/documentation/tabs.js +46 -0
- package/src/documentation/views/ContainerPage.vue +237 -0
- package/src/documentation/views/HelpHome.vue +13 -0
- package/src/documentation/views/IconFont.vue +80 -0
- package/src/documentation/views/components/CmdAccordionHelp.vue +78 -0
- package/src/documentation/views/components/CmdAddressDataHelp.vue +65 -0
- package/src/documentation/views/components/CmdBackToTopButtonHelp.vue +62 -0
- package/src/documentation/views/components/CmdBankAccountDataHelp.vue +88 -0
- package/src/documentation/views/components/CmdBoxHelp.vue +137 -0
- package/src/documentation/views/components/CmdBoxSiteSearchHelp.vue +60 -0
- package/src/documentation/views/components/CmdBoxWrapperHelp.vue +111 -0
- package/src/documentation/views/components/CmdBreadcrumbsHelp.vue +51 -0
- package/src/documentation/views/components/CmdCompanyLogoHelp.vue +48 -0
- package/src/documentation/views/components/CmdCookieDisclaimerHelp.vue +105 -0
- package/src/documentation/views/components/CmdCustomHeadlineHelp.vue +53 -0
- package/src/documentation/views/components/CmdFakeSelectHelp.vue +175 -0
- package/src/documentation/views/components/CmdFancyBoxHelp.vue +79 -0
- package/src/documentation/views/components/CmdFormElementHelp.vue +412 -0
- package/src/documentation/views/components/CmdFormFiltersHelp.vue +69 -0
- package/src/documentation/views/components/CmdFormHelp.vue +41 -0
- package/src/documentation/views/components/CmdGoogleMapsHelp.vue +55 -0
- package/src/documentation/views/components/CmdImageGalleryHelp.vue +46 -0
- package/src/documentation/views/components/CmdImageZoomHelp.vue +34 -0
- package/src/documentation/views/components/CmdListOfLinksHelp.vue +64 -0
- package/src/documentation/views/components/CmdLoginFormHelp.vue +117 -0
- package/src/documentation/views/components/CmdMainNavigationHelp.vue +94 -0
- package/src/documentation/views/components/CmdMultistepFormProgressBarHelp.vue +49 -0
- package/src/documentation/views/components/CmdOpeningHoursHelp.vue +49 -0
- package/src/documentation/views/components/CmdPagerHelp.vue +57 -0
- package/src/documentation/views/components/CmdProgressBarHelp.vue +47 -0
- package/src/documentation/views/components/CmdShareButtonsHelp.vue +65 -0
- package/src/documentation/views/components/CmdSiteHeaderHelp.vue +72 -0
- package/src/documentation/views/components/CmdSlideButtonHelp.vue +90 -0
- package/src/documentation/views/components/CmdSlideshowHelp.vue +60 -0
- package/src/documentation/views/components/CmdSwitchLanguageHelp.vue +64 -0
- package/src/documentation/views/components/CmdSystemMessageHelp.vue +86 -0
- package/src/documentation/views/components/CmdTableHelp.vue +84 -0
- package/src/documentation/views/components/CmdTabsHelp.vue +52 -0
- package/src/documentation/views/components/CmdThumbnailScrollerHelp.vue +50 -0
- package/src/documentation/views/components/CmdTooltipHelp.vue +59 -0
- package/src/documentation/views/components/CmdUploadFormHelp.vue +59 -0
- package/src/documentation/views/components/CmdWidthLimitationWrapperHelp.vue +46 -0
- package/src/index.js +7 -3
- package/src/main.js +25 -15
- package/src/mixins/CmdAddressData/DefaultMessageProperties.js +17 -0
- package/src/mixins/CmdBox/DefaultMessageProperties.js +10 -0
- package/src/mixins/CmdFakeSelect/DefaultMessageProperties.js +9 -0
- package/src/mixins/CmdFormElement/DefaultMessageProperties.js +9 -0
- package/src/mixins/CmdImageGallery/DefaultMessageProperties.js +9 -0
- package/src/mixins/CmdSiteSearch/DefaultMessageProperties.js +14 -0
- package/src/mixins/CmdUploadForm/DefaultMessageProperties.js +5 -1
- package/src/mixins/FieldValidation.js +220 -0
- package/src/mixins/GlobalDefaultMessageProperties.js +15 -0
- package/src/mixins/Tooltip.js +26 -0
- package/src/router/index.js +67 -0
- package/src/utilities.js +3 -6
- package/src/utils/common.js +6 -0
- package/src/utils/dom.js +8 -0
- package/src/utils/globalSequence.js +13 -0
- package/src/utils/string.js +8 -0
- package/src/assets/data/address.json +0 -13
- package/src/assets/data/footer-navigation.json +0 -38
- package/src/assets/data/languages.json +0 -31
- package/src/assets/data/multisteps.json +0 -27
- package/src/assets/data/navigation.json +0 -47
- package/src/assets/data/pager.json +0 -11
- package/src/assets/data/top-header-navigation.json +0 -27
- package/src/components/CmdFooterNavigation.vue +0 -71
- package/src/components/CmdMainHeadline.vue +0 -75
- 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,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>
|