Skip to content

Commit ba0e225

Browse files
committed
feat: vue-perfect-scrollbar moved to template
VuePerfectScrollbar removed from library because when used in CNavbarNav component wasn't working after transpilation. CNavbarNav component replaced with CNavbarNavItems component, which doesn't have nav and VuePerfectScrollbar wrappers.
1 parent fa93027 commit ba0e225

File tree

4 files changed

+122
-145
lines changed

4 files changed

+122
-145
lines changed

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@coreui/vue",
33
"description": "CoreUI Vue Bootstrap 4 layout components",
4-
"version": "3.0.0-alpha-bridge",
4+
"version": "3.0.0-bridge-alpha",
55
"license": "MIT",
66
"main": "dist/coreui-vue.common.js",
77
"module": "dist/coreui-vue.esm.js",
@@ -65,7 +65,6 @@
6565
"vue": "^2.6.6",
6666
"vue-clickaway": "^2.2.2",
6767
"vue-functional-data-merge": "^2.0.7",
68-
"vue-perfect-scrollbar": "^0.1.0"
6968
},
7069
"devDependencies": {
7170
"@babel/plugin-transform-runtime": "^7.1.0",

src/components/Sidebar/CSidebarNav.vue

Lines changed: 0 additions & 139 deletions
This file was deleted.
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
<template>
2+
<ul class="nav">
3+
<template v-for="(item, index) in items">
4+
<template v-if="item.title">
5+
<CSidebarNavTitle
6+
:key="index"
7+
:name="item.name"
8+
:classes="item.class"
9+
:wrapper="item.wrapper"
10+
/>
11+
</template>
12+
<template v-else-if="item.divider">
13+
<CSidebarNavDivider :key="index" :classes="item.class"/>
14+
</template>
15+
<template v-else-if="item.label">
16+
<CSidebarNavLabel
17+
:key="index"
18+
:name="item.name"
19+
:url="item.url"
20+
:icon="item.icon"
21+
:label="item.label"
22+
:classes="item.class"
23+
/>
24+
</template>
25+
<template v-else>
26+
<template v-if="item.children">
27+
<!-- First level dropdown -->
28+
<CSidebarNavDropdown
29+
:key="index"
30+
:name="item.name"
31+
:url="item.url"
32+
:icon="item.icon"
33+
>
34+
<template v-for="(childL1, index1) in item.children">
35+
<template v-if="childL1.children">
36+
<!-- Second level dropdown -->
37+
<CSidebarNavDropdown :key="index1"
38+
:name="childL1.name"
39+
:url="childL1.url"
40+
:icon="childL1.icon">
41+
<li
42+
:key="index2"
43+
class="nav-item"
44+
v-for="(childL2, index2) in childL1.children"
45+
>
46+
<CSidebarNavLink
47+
:name="childL2.name"
48+
:url="childL2.url"
49+
:icon="childL2.icon"
50+
:badge="childL2.badge"
51+
:variant="item.variant"
52+
/>
53+
</li>
54+
</CSidebarNavDropdown>
55+
</template>
56+
<template v-else>
57+
<CSidebarNavItem :key="index1" :classes="item.class">
58+
<CSidebarNavLink
59+
:name="childL1.name"
60+
:url="childL1.url"
61+
:icon="childL1.icon"
62+
:badge="childL1.badge"
63+
:variant="item.variant"
64+
/>
65+
</CSidebarNavItem>
66+
</template>
67+
</template>
68+
</CSidebarNavDropdown>
69+
</template>
70+
<template v-else>
71+
<CSidebarNavItem :key="index" :classes="item.class">
72+
<CSidebarNavLink
73+
:name="item.name"
74+
:url="item.url"
75+
:icon="item.icon"
76+
:badge="item.badge"
77+
:variant="item.variant"
78+
/>
79+
</CSidebarNavItem>
80+
</template>
81+
</template>
82+
</template>
83+
</ul>
84+
</template>
85+
86+
<script>
87+
import CSidebarNavDivider from './CSidebarNavDivider'
88+
import CSidebarNavDropdown from './CSidebarNavDropdown'
89+
import CSidebarNavLink from './CSidebarNavLink'
90+
import CSidebarNavTitle from './CSidebarNavTitle'
91+
import CSidebarNavItem from './CSidebarNavItem'
92+
import CSidebarNavLabel from './CSidebarNavLabel'
93+
94+
export default {
95+
name: 'CSidebarNavItems',
96+
props: {
97+
items: {
98+
type: Array,
99+
required: true,
100+
default: () => []
101+
}
102+
},
103+
components: {
104+
CSidebarNavDivider,
105+
CSidebarNavDropdown,
106+
CSidebarNavLink,
107+
CSidebarNavTitle,
108+
CSidebarNavItem,
109+
CSidebarNavLabel
110+
}
111+
}
112+
</script>

src/components/Sidebar/index.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import CSidebarFooter from './CSidebarFooter'
1616
import CSidebarForm from './CSidebarForm'
1717
import CSidebarHeader from './CSidebarHeader'
1818
import CSidebarMinimizer from './CSidebarMinimizer'
19-
import CSidebarNav from './CSidebarNav'
19+
import CSidebarNavItems from './CSidebarNavItems'
2020
import CSidebarNavDivider from './CSidebarNavDivider'
2121
import CSidebarNavDropdown from './CSidebarNavDropdown'
2222
import CSidebarNavItem from './CSidebarNavItem'
@@ -26,7 +26,12 @@ import CSidebarNavTitle from './CSidebarNavTitle'
2626
import CSidebarToggler from './CSidebarToggler'
2727

2828
export {
29-
Sidebar, SidebarFooter, SidebarForm, SidebarHeader, SidebarMinimizer, SidebarNav, SidebarNavDivider, SidebarNavItem, SidebarNavDropdown, SidebarNavLabel, SidebarNavLink, SidebarNavTitle, SidebarToggler,
30-
CSidebar, CSidebarFooter, CSidebarForm, CSidebarHeader, CSidebarMinimizer, CSidebarNav, CSidebarNavDivider, CSidebarNavItem,
31-
CSidebarNavDropdown, CSidebarNavLabel, CSidebarNavLink, CSidebarNavTitle, CSidebarToggler
29+
Sidebar, SidebarFooter, SidebarForm,
30+
SidebarHeader, SidebarMinimizer, SidebarNav,
31+
SidebarNavDivider, SidebarNavItem, SidebarNavDropdown,
32+
SidebarNavLabel, SidebarNavLink, SidebarNavTitle, SidebarToggler,
33+
CSidebar, CSidebarFooter, CSidebarForm, CSidebarHeader,
34+
CSidebarMinimizer, CSidebarNavItems, CSidebarNavDivider,
35+
CSidebarNavItem, CSidebarNavDropdown, CSidebarNavLabel,
36+
CSidebarNavLink, CSidebarNavTitle, CSidebarToggler
3237
}

0 commit comments

Comments
 (0)