comand-component-library 3.1.22 → 3.1.26
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 +3 -4
- package/src/App.vue +30 -9
- package/src/assets/data/accordion.json +13 -4
- package/src/components/CmdAccordion.vue +84 -15
- package/src/components/CmdAddressData.vue +12 -0
- package/src/components/CmdBackToTopButton.vue +3 -0
- package/src/components/CmdBox.vue +16 -1
- package/src/components/CmdBoxSiteSearch.vue +3 -0
- package/src/components/CmdBreadcrumbs.vue +9 -0
- package/src/components/CmdCompanyLogo.vue +12 -0
- package/src/components/CmdCookieDisclaimer.vue +15 -4
- package/src/components/CmdCopyrightInformation.vue +2 -8
- package/src/components/CmdFakeSelect.vue +33 -6
- package/src/components/CmdFancyBox.vue +31 -1
- package/src/components/CmdFooterNavigation.vue +6 -0
- package/src/components/CmdGoogleMaps.vue +3 -0
- package/src/components/CmdImageGallery.vue +3 -2
- package/src/components/CmdImageZoom.vue +6 -0
- package/src/components/CmdMainHeadline.vue +9 -0
- package/src/components/CmdMainNavigation.vue +24 -0
- package/src/components/CmdMultipleSwitch.vue +1 -5
- package/src/components/CmdMultistepFormProgressBar.vue +6 -0
- package/src/components/CmdOpeningHours.vue +23 -2
- package/src/components/CmdPager.vue +24 -2
- package/src/components/CmdProgressBar.vue +10 -4
- package/src/components/CmdShareButtons.vue +6 -0
- package/src/components/CmdSiteHeader.vue +12 -16
- package/src/components/CmdSlideButton.vue +3 -0
- package/src/components/CmdSlideshow.vue +25 -6
- package/src/components/CmdUploadForm.vue +5 -5
- package/src/index.js +3 -1
- package/src/main.js +2 -2
@@ -4,7 +4,7 @@
|
|
4
4
|
aria-labelledby="fancybox">
|
5
5
|
<div class="popup" :class="{'image' : fancyBoxImageUrl || fancyBoxGallery }">
|
6
6
|
<div class="button-wrapper no-flex"
|
7
|
-
v-if="(
|
7
|
+
v-if="(fancyboxOptions.printButtons && (fancyboxOptions.printButtons.color || fancyboxOptions.printButtons.grayscale)) || fancyboxOptions.closeIcon">
|
8
8
|
<a href="#"
|
9
9
|
v-if="fancyboxOptions.printButtons && fancyboxOptions.printButtons.color"
|
10
10
|
:class="['button', fancyboxOptions.printButtons.color.iconClass]"
|
@@ -69,10 +69,16 @@
|
|
69
69
|
const FancyBox = defineComponent({
|
70
70
|
name: "CmdFancyBox",
|
71
71
|
props: {
|
72
|
+
/**
|
73
|
+
* set if content should be loaded by url
|
74
|
+
*/
|
72
75
|
url: {
|
73
76
|
type: String,
|
74
77
|
required: false
|
75
78
|
},
|
79
|
+
/**
|
80
|
+
* options to show at top (closeIcon, printButtons)
|
81
|
+
*/
|
76
82
|
fancyboxOptions: {
|
77
83
|
type: Object,
|
78
84
|
default() {
|
@@ -94,34 +100,58 @@
|
|
94
100
|
}
|
95
101
|
}
|
96
102
|
},
|
103
|
+
/**
|
104
|
+
* allow closing fancybox by escape-key
|
105
|
+
*/
|
97
106
|
allowEscapeKey: {
|
98
107
|
type: Boolean,
|
99
108
|
default: true
|
100
109
|
},
|
110
|
+
/**
|
111
|
+
* the content shown in the main area
|
112
|
+
*/
|
101
113
|
content: {
|
102
114
|
type: String,
|
103
115
|
required: false
|
104
116
|
},
|
117
|
+
/**
|
118
|
+
*
|
119
|
+
*/
|
105
120
|
elements: {
|
106
121
|
type: Array,
|
107
122
|
required: false
|
108
123
|
},
|
124
|
+
/**
|
125
|
+
* use if a gallery of images should be opened (and navigated) inside fancybox
|
126
|
+
*/
|
109
127
|
fancyBoxGallery: {
|
110
128
|
type: Array,
|
111
129
|
required: false
|
112
130
|
},
|
131
|
+
/**
|
132
|
+
* if gallery is used, you can set default index
|
133
|
+
*/
|
113
134
|
defaultGalleryIndex: {
|
114
135
|
type: Number,
|
115
136
|
required: false
|
116
137
|
},
|
138
|
+
/**
|
139
|
+
* show/hide entire fancybox
|
140
|
+
*/
|
117
141
|
show: {
|
118
142
|
type: Boolean,
|
119
143
|
default: false
|
120
144
|
},
|
145
|
+
/**
|
146
|
+
* show/hide overlay (around fancybox, above website)
|
147
|
+
*/
|
121
148
|
showOverlay: {
|
122
149
|
type: Boolean,
|
123
150
|
default: true
|
124
151
|
},
|
152
|
+
/**
|
153
|
+
* show slide-buttons (left/previous and right/next)
|
154
|
+
*/
|
125
155
|
slideButtons: {
|
126
156
|
type: Object,
|
127
157
|
default() {
|
@@ -24,10 +24,16 @@ import {openFancyBox} from "./CmdFancyBox.vue"
|
|
24
24
|
export default {
|
25
25
|
name: "CmdFooterNavigation",
|
26
26
|
props: {
|
27
|
+
/**
|
28
|
+
* headlien above links
|
29
|
+
*/
|
27
30
|
headline: {
|
28
31
|
type: String,
|
29
32
|
required: false
|
30
33
|
},
|
34
|
+
/**
|
35
|
+
* list of links shown vertically
|
36
|
+
*/
|
31
37
|
footerNavigation: {
|
32
38
|
type: Array,
|
33
39
|
required: false
|
@@ -15,11 +15,12 @@ import {openFancyBox} from "./CmdFancyBox"
|
|
15
15
|
|
16
16
|
export default {
|
17
17
|
name: "CmdImageGallery",
|
18
|
-
|
19
18
|
props: {
|
19
|
+
/**
|
20
|
+
* list of images (incl. captions)
|
21
|
+
*/
|
20
22
|
images: Array
|
21
23
|
},
|
22
|
-
|
23
24
|
methods: {
|
24
25
|
showFancyBox(index) {
|
25
26
|
openFancyBox({fancyBoxGallery: this.images, defaultGalleryIndex: index})
|
@@ -17,10 +17,16 @@
|
|
17
17
|
export default {
|
18
18
|
name: "CmdImageZoom",
|
19
19
|
props: {
|
20
|
+
/**
|
21
|
+
* url for small images
|
22
|
+
*/
|
20
23
|
smallImageUrl: {
|
21
24
|
type: String,
|
22
25
|
required: true
|
23
26
|
},
|
27
|
+
/**
|
28
|
+
* url for large image
|
29
|
+
*/
|
24
30
|
largeImageUrl: {
|
25
31
|
type: String,
|
26
32
|
required: true
|
@@ -13,14 +13,23 @@
|
|
13
13
|
export default {
|
14
14
|
name: "CmdMainHeadline",
|
15
15
|
props: {
|
16
|
+
/**
|
17
|
+
* main/h1-headline
|
18
|
+
*/
|
16
19
|
mainHeadline: {
|
17
20
|
type: String,
|
18
21
|
required: true
|
19
22
|
},
|
23
|
+
/**
|
24
|
+
* small pre-headline above main-headline
|
25
|
+
*/
|
20
26
|
preHeadline: {
|
21
27
|
type: String,
|
22
28
|
required: false
|
23
29
|
},
|
30
|
+
/**
|
31
|
+
* icon-class for icon shown left/before headline
|
32
|
+
*/
|
24
33
|
iconClass: {
|
25
34
|
type: String,
|
26
35
|
required: false
|
@@ -58,18 +58,30 @@ export default {
|
|
58
58
|
}
|
59
59
|
},
|
60
60
|
props: {
|
61
|
+
/**
|
62
|
+
* toggle if main-entries (on firt-level) should be (horizontally) stretched equally
|
63
|
+
*/
|
61
64
|
stretchMainItems: {
|
62
65
|
type: Boolean,
|
63
66
|
default: false
|
64
67
|
},
|
68
|
+
/**
|
69
|
+
* set if navigation should persist on mobile and not be collapsed to off-canvas
|
70
|
+
*/
|
65
71
|
persistOnMobile: {
|
66
72
|
type: Boolean,
|
67
73
|
default: false
|
68
74
|
},
|
75
|
+
/**
|
76
|
+
* list of all navigation-entries (incl. sub-entries)
|
77
|
+
*/
|
69
78
|
navigationEntries: {
|
70
79
|
type: Array,
|
71
80
|
required: true
|
72
81
|
},
|
82
|
+
/**
|
83
|
+
* link shown inside off-canvas-navigation to close itself
|
84
|
+
*/
|
73
85
|
closeOffcanvas: {
|
74
86
|
type: Object,
|
75
87
|
default: function () {
|
@@ -80,6 +92,9 @@ export default {
|
|
80
92
|
}
|
81
93
|
}
|
82
94
|
},
|
95
|
+
/**
|
96
|
+
* button to open off-canvas-navigation
|
97
|
+
*/
|
83
98
|
buttonOffcanvas: {
|
84
99
|
type: Object,
|
85
100
|
default: function () {
|
@@ -90,14 +105,23 @@ export default {
|
|
90
105
|
}
|
91
106
|
}
|
92
107
|
},
|
108
|
+
/**
|
109
|
+
* icon to show if an navigation-entry has sub-entries
|
110
|
+
*/
|
93
111
|
subentriesIconClass: {
|
94
112
|
type: String,
|
95
113
|
default: "icon-single-arrow-down"
|
96
114
|
},
|
115
|
+
/**
|
116
|
+
* icon to show if a sub-entry has further sub-entries
|
117
|
+
*/
|
97
118
|
subSubentriesIconClass: {
|
98
119
|
type: String,
|
99
120
|
default: "icon-single-arrow-right"
|
100
121
|
},
|
122
|
+
/**
|
123
|
+
* toggle if overlay over content should be shown if off-canvas is open
|
124
|
+
*/
|
101
125
|
showContentOverlay: {
|
102
126
|
type: Boolean,
|
103
127
|
default: true
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<template>
|
2
|
-
<div :class="['label', 'multiple-switch',
|
2
|
+
<div :class="['label', 'multiple-switch', {disabled: status === 'disabled', error: status === 'error'}]">
|
3
3
|
<span v-if="labelText">{{ labelText }}</span>
|
4
4
|
<span class="flex-container no-gap no-flex">
|
5
5
|
<label :class="{disabled: status === 'disabled'}" :for="multipleswitch.id"
|
@@ -28,10 +28,6 @@ export default {
|
|
28
28
|
required: false,
|
29
29
|
default: ""
|
30
30
|
},
|
31
|
-
htmlClass: {
|
32
|
-
type: String,
|
33
|
-
required: false
|
34
|
-
},
|
35
31
|
labelText: {
|
36
32
|
type: String,
|
37
33
|
required: false
|
@@ -21,10 +21,16 @@ export default {
|
|
21
21
|
}
|
22
22
|
},
|
23
23
|
props: {
|
24
|
+
/**
|
25
|
+
* list of multisteps
|
26
|
+
*/
|
24
27
|
multisteps: {
|
25
28
|
type: Array,
|
26
29
|
required: true
|
27
30
|
},
|
31
|
+
/**
|
32
|
+
* icon-class for separator shown inbetween multisteps
|
33
|
+
*/
|
28
34
|
separatorIconClass: {
|
29
35
|
type: String,
|
30
36
|
required: true
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<template>
|
2
2
|
<div class="cmd-opening-hours">
|
3
3
|
<h4 v-if="headline">{{ headline }}</h4>
|
4
|
-
<a v-if="
|
4
|
+
<a v-if="pathToDetails" :href="pathToDetails" :class="{'closed': closed}">{{ textOpenClosed }}</a>
|
5
5
|
<span v-else :class="{'closed': closed}">{{ textOpenClosed }}</span>
|
6
6
|
<dl>
|
7
7
|
<template v-for="day in openingHours" :key="day.day">
|
@@ -20,30 +20,51 @@
|
|
20
20
|
export default {
|
21
21
|
name: "CmdOpeningHours",
|
22
22
|
props: {
|
23
|
+
/**
|
24
|
+
* headline above displayed opening hours
|
25
|
+
*/
|
23
26
|
headline: {
|
24
27
|
type: String,
|
25
28
|
required: false
|
26
29
|
},
|
27
|
-
|
30
|
+
/**
|
31
|
+
* set a path to a detail page
|
32
|
+
*/
|
33
|
+
pathToDetails: {
|
28
34
|
type: String,
|
29
35
|
required: false
|
30
36
|
},
|
37
|
+
/**
|
38
|
+
* toggles if "closed"-text will be shown
|
39
|
+
*/
|
31
40
|
closed: {
|
32
41
|
type: Boolean,
|
33
42
|
default: false
|
34
43
|
},
|
44
|
+
/**
|
45
|
+
* text for open/closed-information
|
46
|
+
*/
|
35
47
|
textOpenClosed: {
|
36
48
|
type: String,
|
37
49
|
required: true
|
38
50
|
},
|
51
|
+
/**
|
52
|
+
* list of opening-hours
|
53
|
+
*/
|
39
54
|
openingHours: {
|
40
55
|
type: Array,
|
41
56
|
required: true
|
42
57
|
},
|
58
|
+
/**
|
59
|
+
* text to show if holidays closed (shown below opening-hours)
|
60
|
+
*/
|
43
61
|
textHolidaysClosed: {
|
44
62
|
type: String,
|
45
63
|
required: false
|
46
64
|
},
|
65
|
+
/**
|
66
|
+
* additional/miscellaneous text (shown below holiday-closed-text/opening hours)
|
67
|
+
*/
|
47
68
|
textMiscInfo: {
|
48
69
|
type: String,
|
49
70
|
required: false
|
@@ -47,25 +47,47 @@ export default {
|
|
47
47
|
}
|
48
48
|
},
|
49
49
|
props: {
|
50
|
+
/**
|
51
|
+
* number of items displayed
|
52
|
+
*/
|
50
53
|
items: {
|
51
54
|
type: Number,
|
52
55
|
required: true
|
53
56
|
},
|
57
|
+
/**
|
58
|
+
* number of items shown per page
|
59
|
+
*/
|
54
60
|
itemsPerPage: {
|
55
61
|
type: Number,
|
56
62
|
required: true
|
57
63
|
},
|
64
|
+
/**
|
65
|
+
* show links as buttons
|
66
|
+
*/
|
58
67
|
showLinksAsButtons: {
|
59
68
|
type: Boolean,
|
60
69
|
default: true
|
61
70
|
},
|
71
|
+
/**
|
72
|
+
*
|
73
|
+
*/
|
62
74
|
prevButton: {
|
63
75
|
type: Object,
|
64
|
-
|
76
|
+
default: function() {
|
77
|
+
return {
|
78
|
+
iconClass: "icon-single-arrow-left",
|
79
|
+
buttonText: "prev"
|
80
|
+
}
|
81
|
+
}
|
65
82
|
},
|
66
83
|
nextButton: {
|
67
84
|
type: Object,
|
68
|
-
|
85
|
+
default: function() {
|
86
|
+
return {
|
87
|
+
iconClass: "icon-single-arrow-right",
|
88
|
+
buttonText: "next"
|
89
|
+
}
|
90
|
+
}
|
69
91
|
}
|
70
92
|
},
|
71
93
|
computed: {
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<template>
|
2
2
|
<label class="cmd-progressbar" :for="id">
|
3
|
-
<span>{{ labelText }}</span>
|
3
|
+
<span v-if="labelText">{{ labelText }}</span>
|
4
4
|
<span class="progressbar">
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
<span>{{ loadingStatus }}%</span><!-- do not place inside progress-tag (will not be displayed then) -->
|
6
|
+
<progress v-bind="$attrs" :id="id" :value="loadingStatus"></progress>
|
7
|
+
</span>
|
8
8
|
</label>
|
9
9
|
</template>
|
10
10
|
|
@@ -17,10 +17,16 @@ export default {
|
|
17
17
|
}
|
18
18
|
},
|
19
19
|
props: {
|
20
|
+
/**
|
21
|
+
* label-text for progress-bar
|
22
|
+
*/
|
20
23
|
labelText: {
|
21
24
|
type: String,
|
22
25
|
required: false
|
23
26
|
},
|
27
|
+
/**
|
28
|
+
* id for progress-bar
|
29
|
+
*/
|
24
30
|
id: {
|
25
31
|
type: String,
|
26
32
|
required: true
|
@@ -12,10 +12,16 @@
|
|
12
12
|
export default {
|
13
13
|
name: "CmdContentFooter",
|
14
14
|
props: {
|
15
|
+
/**
|
16
|
+
* stretch-buttons to share horizontal space vertically
|
17
|
+
*/
|
15
18
|
stretchButtons: {
|
16
19
|
type: Boolean,
|
17
20
|
default: true
|
18
21
|
},
|
22
|
+
/**
|
23
|
+
* list of share-buttons (i.e. facebook, twitter etc.)
|
24
|
+
*/
|
19
25
|
shareButtons: {
|
20
26
|
type: Array,
|
21
27
|
required: true
|
@@ -19,34 +19,30 @@ export default {
|
|
19
19
|
CmdMainNavigation
|
20
20
|
},
|
21
21
|
props: {
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
},
|
22
|
+
/**
|
23
|
+
* list of main-navigation-entries (incl. sub-entries) given to inner navigationcomponent
|
24
|
+
*/
|
26
25
|
mainNavigationEntries: {
|
27
26
|
type: Array,
|
28
27
|
required: true
|
29
28
|
},
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
},
|
34
|
-
linkLogo: {
|
35
|
-
type: Object,
|
36
|
-
required: false
|
37
|
-
},
|
38
|
-
logo: {
|
39
|
-
type: Object,
|
40
|
-
required: false
|
41
|
-
},
|
29
|
+
/**
|
30
|
+
* activated sticky-header (stays on top if page is scrolled
|
31
|
+
*/
|
42
32
|
sticky: {
|
43
33
|
type: Boolean,
|
44
34
|
default: true
|
45
35
|
},
|
36
|
+
/**
|
37
|
+
* use a grid for positioning of inner-elements (else a flex-container will be used)
|
38
|
+
*/
|
46
39
|
useGrid: {
|
47
40
|
type: Boolean,
|
48
41
|
default: true
|
49
42
|
},
|
43
|
+
/**
|
44
|
+
* use only if default-button of inner navigation-component should not be used
|
45
|
+
*/
|
50
46
|
closeOffcanvas: {
|
51
47
|
type: Object,
|
52
48
|
required: false
|
@@ -10,10 +10,8 @@
|
|
10
10
|
</figure>
|
11
11
|
</a>
|
12
12
|
<figure v-else-if="!currentItem.href && currentItem && !useSlot" :key="index" class="slideshow-item">
|
13
|
-
<template>
|
14
13
|
<img :src="currentItem.imgPath" :alt="currentItem.alt"/>
|
15
14
|
<figcaption>{{ currentItem.figcaption }}</figcaption>
|
16
|
-
</template>
|
17
15
|
</figure>
|
18
16
|
<div
|
19
17
|
class="image-wrapper"
|
@@ -57,30 +55,51 @@ export default {
|
|
57
55
|
CmdSlideButton
|
58
56
|
},
|
59
57
|
props: {
|
58
|
+
/**
|
59
|
+
* use slot for images
|
60
|
+
*/
|
60
61
|
useSlot: {
|
61
62
|
type: Boolean,
|
62
63
|
default: false
|
63
64
|
},
|
65
|
+
/**
|
66
|
+
* activate if images should switch automatically
|
67
|
+
*/
|
64
68
|
autoplay: {
|
65
69
|
type: Boolean,
|
66
70
|
default: false
|
67
71
|
},
|
72
|
+
/**
|
73
|
+
* set milliseconds to switch images (if autoplay is activated only)
|
74
|
+
*/
|
75
|
+
autoplayInterval: {
|
76
|
+
type: Number,
|
77
|
+
default: 5000
|
78
|
+
},
|
79
|
+
/**
|
80
|
+
* shows buttons/icons to let user quick jump to each image
|
81
|
+
*/
|
68
82
|
showQuickLinkIcons: {
|
69
83
|
type: Boolean,
|
70
84
|
default: true
|
71
85
|
},
|
86
|
+
/**
|
87
|
+
* activate if current number of each image should be displayed
|
88
|
+
*/
|
72
89
|
showCounter: {
|
73
90
|
type: Boolean,
|
74
91
|
default: false
|
75
92
|
},
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
},
|
93
|
+
/**
|
94
|
+
* list of images to display (use slot smust be set to false)
|
95
|
+
*/
|
80
96
|
slideshowItems: {
|
81
97
|
type: Array,
|
82
98
|
required: true
|
83
99
|
},
|
100
|
+
/**
|
101
|
+
* slide-buttons (next/previous) to switch images
|
102
|
+
*/
|
84
103
|
slideButtons: {
|
85
104
|
type: Object,
|
86
105
|
default() {
|
@@ -34,14 +34,14 @@
|
|
34
34
|
</span>
|
35
35
|
</li>
|
36
36
|
</ul>
|
37
|
-
<CmdSystemMessage v-if="!listOfFiles.length"
|
38
|
-
|
37
|
+
<CmdSystemMessage v-if="!listOfFiles.length" status="warning" :fullWidth="true"
|
38
|
+
message="No files selected for upload!">
|
39
39
|
</CmdSystemMessage>
|
40
|
-
<CmdSystemMessage v-else :
|
40
|
+
<CmdSystemMessage v-else :status="messageStatusUploadSize()" :fullWidth="true">
|
41
41
|
<p>Current upload size is {{ formatSize(uploadSize) }} (of max. {{ formatSize(maxUploadSize) }}).</p>
|
42
42
|
</CmdSystemMessage>
|
43
|
-
<CmdSystemMessage v-if="uploadSize > maxUploadSize"
|
44
|
-
|
43
|
+
<CmdSystemMessage v-if="uploadSize > maxUploadSize" status="error" :fullWidth="true"
|
44
|
+
message="Total file size to large!">
|
45
45
|
</CmdSystemMessage>
|
46
46
|
<CmdFormElement
|
47
47
|
v-if="enableComment"
|
package/src/index.js
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
import "clickout-event"
|
2
|
+
|
1
3
|
export { default as CmdAccordion } from '@/components/CmdAccordion'
|
2
4
|
export { default as CmdAddressData } from '@/components/CmdAddressData'
|
3
5
|
export { default as CmdBackToTopButton } from '@/components/CmdBackToTopButton'
|
@@ -31,4 +33,4 @@ export { default as CmdTabs } from '@/components/CmdTabs'
|
|
31
33
|
export { default as CmdThumbnailScroller } from '@/components/CmdThumbnailScroller'
|
32
34
|
export { default as CmdTooltip } from '@/components/CmdTooltip'
|
33
35
|
export { default as CmdTopHeaderNavigation } from '@/components/CmdTopHeaderNavigation'
|
34
|
-
export { default as CmdWidthLimitationWrapper } from '@/components/CmdWidthLimitationWrapper'
|
36
|
+
export { default as CmdWidthLimitationWrapper } from '@/components/CmdWidthLimitationWrapper'
|
package/src/main.js
CHANGED
@@ -6,7 +6,7 @@ import 'comand-frontend-framework/src/assets/css/framework-iconfont.css'
|
|
6
6
|
import { createApp } from 'vue'
|
7
7
|
import App from './App.vue'
|
8
8
|
import { createRouter, createWebHistory } from 'vue-router'
|
9
|
-
import
|
9
|
+
import "clickout-event"
|
10
10
|
|
11
11
|
/* import additional iconfont containing company-logos */
|
12
12
|
import '@/assets/styles/logos-iconfont.css'
|
@@ -34,4 +34,4 @@ const router = createRouter({
|
|
34
34
|
]
|
35
35
|
})
|
36
36
|
|
37
|
-
createApp(App).use(router).
|
37
|
+
createApp(App).use(router).mount('#app')
|