|
1 | 1 | <template> |
2 | 2 | <navclass="sidebar-nav"> |
3 | 3 | <VuePerfectScrollbarclass="scroll-area":settings="psSettings"@ps-scroll-y="scrollHandle"> |
4 | | - <ulclass="nav"> |
5 | | - <templatev-for="(item,index)innavItems"> |
6 | | - <templatev-if="item.title"> |
7 | | - <SidebarNavTitle:key="index":name="item.name":classes="item.class":wrapper="item.wrapper"/> |
8 | | - </template> |
9 | | - <templatev-else-if="item.divider"> |
10 | | - <SidebarNavDivider:key="index":classes="item.class"/> |
11 | | - </template> |
12 | | - <templatev-else-if="item.label"> |
13 | | - <SidebarNavLabel:key="index":name="item.name":url="item.url":icon="item.icon":label="item.label":classes="item.class"/> |
14 | | - </template> |
15 | | - <templatev-else> |
16 | | - <templatev-if="item.children"> |
17 | | -<!-- First level dropdown--> |
18 | | - <SidebarNavDropdown:key="index":name="item.name":url="item.url":icon="item.icon"> |
19 | | - <templatev-for="(childL1,index1)initem.children"> |
20 | | - <templatev-if="childL1.children"> |
21 | | -<!-- Second level dropdown--> |
22 | | - <SidebarNavDropdown:key="index1":name="childL1.name":url="childL1.url":icon="childL1.icon"> |
23 | | - <li:key="index2"class="nav-item"v-for="(childL2, index2) in childL1.children"> |
24 | | - <SidebarNavLink:name="childL2.name":url="childL2.url":icon="childL2.icon":badge="childL2.badge":variant="item.variant"/> |
25 | | - </li> |
26 | | - </SidebarNavDropdown> |
27 | | - </template> |
28 | | - <templatev-else> |
29 | | - <SidebarNavItem:key="index1":classes="item.class"> |
30 | | - <SidebarNavLink:name="childL1.name":url="childL1.url":icon="childL1.icon":badge="childL1.badge":variant="item.variant"/> |
31 | | - </SidebarNavItem> |
32 | | - </template> |
33 | | - </template> |
34 | | - </SidebarNavDropdown> |
| 4 | + <ulclass="nav"> |
| 5 | + <templatev-for="(item,index)innavItems"> |
| 6 | + <templatev-if="item.title"> |
| 7 | + <SidebarNavTitle:key="index":name="item.name":classes="item.class":wrapper="item.wrapper"/> |
| 8 | + </template> |
| 9 | + <templatev-else-if="item.divider"> |
| 10 | + <SidebarNavDivider:key="index":classes="item.class"/> |
| 11 | + </template> |
| 12 | + <templatev-else-if="item.label"> |
| 13 | + <SidebarNavLabel:key="index":name="item.name":url="item.url":icon="item.icon":label="item.label":classes="item.class"/> |
35 | 14 | </template> |
36 | 15 | <templatev-else> |
37 | | - <SidebarNavItem:key="index":classes="item.class"> |
38 | | - <SidebarNavLink:name="item.name":url="item.url":icon="item.icon":badge="item.badge":variant="item.variant"/> |
39 | | - </SidebarNavItem> |
| 16 | + <templatev-if="item.children"> |
| 17 | +<!-- First level dropdown--> |
| 18 | + <SidebarNavDropdown:key="index":name="item.name":url="item.url":icon="item.icon"> |
| 19 | + <templatev-for="(childL1,index1)initem.children"> |
| 20 | + <templatev-if="childL1.children"> |
| 21 | +<!-- Second level dropdown--> |
| 22 | + <SidebarNavDropdown:key="index1":name="childL1.name":url="childL1.url":icon="childL1.icon"> |
| 23 | + <li:key="index2"class="nav-item"v-for="(childL2, index2) in childL1.children"> |
| 24 | + <SidebarNavLink:name="childL2.name":url="childL2.url":icon="childL2.icon":badge="childL2.badge":variant="item.variant"/> |
| 25 | + </li> |
| 26 | + </SidebarNavDropdown> |
| 27 | + </template> |
| 28 | + <templatev-else> |
| 29 | + <SidebarNavItem:key="index1":classes="item.class"> |
| 30 | + <SidebarNavLink:name="childL1.name":url="childL1.url":icon="childL1.icon":badge="childL1.badge":variant="item.variant"/> |
| 31 | + </SidebarNavItem> |
| 32 | + </template> |
| 33 | + </template> |
| 34 | + </SidebarNavDropdown> |
| 35 | + </template> |
| 36 | + <templatev-else> |
| 37 | + <SidebarNavItem:key="index":classes="item.class"> |
| 38 | + <SidebarNavLink:name="item.name":url="item.url":icon="item.icon":badge="item.badge":variant="item.variant"/> |
| 39 | + </SidebarNavItem> |
| 40 | + </template> |
40 | 41 | </template> |
41 | 42 | </template> |
42 | | - </template> |
43 | | - </ul> |
44 | | - <slot></slot> |
| 43 | + </ul> |
| 44 | + <slot></slot> |
45 | 45 | </VuePerfectScrollbar> |
46 | 46 | </nav> |
47 | 47 | </template> |
@@ -74,11 +74,15 @@ export default { |
74 | 74 | VuePerfectScrollbar |
75 | 75 | }, |
76 | 76 | data () { |
77 | | -return { |
78 | | - psSettings: { |
| 77 | +return {} |
| 78 | + }, |
| 79 | + computed: { |
| 80 | +psSettings: ()=> { |
| 81 | +// ToDo: find better rtl fix |
| 82 | +return { |
79 | 83 | maxScrollbarLength:200, |
80 | 84 | minScrollbarLength:40, |
81 | | - suppressScrollX:true, |
| 85 | + suppressScrollX:getComputedStyle(document.querySelector('html')).direction!=='rtl', |
82 | 86 | wheelPropagation:false, |
83 | 87 | interceptRailY:styles=> ({...styles, height:0 }) |
84 | 88 | } |
|