v1.0.0
@@ -12,6 +12,9 @@
|
|||||||
// Header options
|
// Header options
|
||||||
1. '.header-fixed' - Fixed Header
|
1. '.header-fixed' - Fixed Header
|
||||||
|
|
||||||
|
// Brand options
|
||||||
|
1. '.brand-minimized' - Minimized brand (Only symbol)
|
||||||
|
|
||||||
// Sidebar options
|
// Sidebar options
|
||||||
1. '.sidebar-fixed' - Fixed Sidebar
|
1. '.sidebar-fixed' - Fixed Sidebar
|
||||||
2. '.sidebar-hidden' - Hidden Sidebar
|
2. '.sidebar-hidden' - Hidden Sidebar
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "coreui-vue",
|
"name": "@coreui/vue",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "Open Source Admin Template",
|
"description": "",
|
||||||
"author": "Łukasz Holeczek <lukasz@holeczek.pl>",
|
"author": "Łukasz Holeczek <lukasz@holeczek.pl>",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -14,9 +14,10 @@
|
|||||||
"lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs"
|
"lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bootstrap-vue": "1.0.0-beta.7",
|
"bootstrap-vue": "1.0.0-beta.9",
|
||||||
"chart.js": "2.7.0",
|
"chart.js": "2.7.0",
|
||||||
"font-awesome": "^4.7.0",
|
"font-awesome": "^4.7.0",
|
||||||
|
"is-url-external": "^1.0.3",
|
||||||
"simple-line-icons": "^2.4.1",
|
"simple-line-icons": "^2.4.1",
|
||||||
"vue": "2.4.4",
|
"vue": "2.4.4",
|
||||||
"vue-chartjs": "2.8.7",
|
"vue-chartjs": "2.8.7",
|
||||||
@@ -35,7 +36,7 @@
|
|||||||
"connect-history-api-fallback": "^1.3.0",
|
"connect-history-api-fallback": "^1.3.0",
|
||||||
"copy-webpack-plugin": "^4.0.1",
|
"copy-webpack-plugin": "^4.0.1",
|
||||||
"css-loader": "0.28.7",
|
"css-loader": "0.28.7",
|
||||||
"eslint": "4.7.1",
|
"eslint": "4.7.2",
|
||||||
"eslint-friendly-formatter": "3.0.0",
|
"eslint-friendly-formatter": "3.0.0",
|
||||||
"eslint-loader": "1.9.0",
|
"eslint-loader": "1.9.0",
|
||||||
"eslint-plugin-html": "3.2.2",
|
"eslint-plugin-html": "3.2.2",
|
||||||
@@ -45,7 +46,7 @@
|
|||||||
"eslint-plugin-promise": "3.5.0",
|
"eslint-plugin-promise": "3.5.0",
|
||||||
"eslint-plugin-standard": "3.0.1",
|
"eslint-plugin-standard": "3.0.1",
|
||||||
"eventsource-polyfill": "^0.9.6",
|
"eventsource-polyfill": "^0.9.6",
|
||||||
"express": "4.15.4",
|
"express": "4.15.5",
|
||||||
"extract-text-webpack-plugin": "3.0.0",
|
"extract-text-webpack-plugin": "3.0.0",
|
||||||
"file-loader": "0.11.2",
|
"file-loader": "0.11.2",
|
||||||
"friendly-errors-webpack-plugin": "1.6.1",
|
"friendly-errors-webpack-plugin": "1.6.1",
|
||||||
@@ -57,7 +58,7 @@
|
|||||||
"karma-coverage": "^1.1.1",
|
"karma-coverage": "^1.1.1",
|
||||||
"karma-mocha": "^1.3.0",
|
"karma-mocha": "^1.3.0",
|
||||||
"karma-phantomjs-launcher": "1.0.4",
|
"karma-phantomjs-launcher": "1.0.4",
|
||||||
"karma-phantomjs-shim": "^1.4.0",
|
"karma-phantomjs-shim": "^1.5.0",
|
||||||
"karma-sinon-chai": "1.3.2",
|
"karma-sinon-chai": "1.3.2",
|
||||||
"karma-sourcemap-loader": "^0.3.7",
|
"karma-sourcemap-loader": "^0.3.7",
|
||||||
"karma-spec-reporter": "0.0.31",
|
"karma-spec-reporter": "0.0.31",
|
||||||
|
|||||||
@@ -1,33 +1,17 @@
|
|||||||
// scss-lint:disable all
|
// scss-lint:disable all
|
||||||
@charset "UTF-8";
|
|
||||||
|
|
||||||
.animated {
|
.animated {
|
||||||
-webkit-animation-duration: 1s;
|
|
||||||
animation-duration: 1s;
|
animation-duration: 1s;
|
||||||
-webkit-animation-fill-mode: both;
|
// animation-fill-mode: both;
|
||||||
animation-fill-mode: both;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.animated.infinite {
|
.animated.infinite {
|
||||||
-webkit-animation-iteration-count: infinite;
|
|
||||||
animation-iteration-count: infinite;
|
animation-iteration-count: infinite;
|
||||||
}
|
}
|
||||||
|
|
||||||
.animated.hinge {
|
.animated.hinge {
|
||||||
-webkit-animation-duration: 2s;
|
|
||||||
animation-duration: 2s;
|
animation-duration: 2s;
|
||||||
}
|
}
|
||||||
|
|
||||||
@-webkit-keyframes fadeIn {
|
|
||||||
from {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
to {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes fadeIn {
|
@keyframes fadeIn {
|
||||||
from {
|
from {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
@@ -39,6 +23,5 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.fadeIn {
|
.fadeIn {
|
||||||
-webkit-animation-name: fadeIn;
|
|
||||||
animation-name: fadeIn;
|
animation-name: fadeIn;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,8 +11,8 @@
|
|||||||
app-dashboard,
|
app-dashboard,
|
||||||
app-root {
|
app-root {
|
||||||
display: flex;
|
display: flex;
|
||||||
min-height: 100vh;
|
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
min-height: 100vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-header {
|
.app-header {
|
||||||
@@ -26,12 +26,12 @@ app-root {
|
|||||||
.app-body {
|
.app-body {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
overflow-x: hidden;
|
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
|
overflow-x: hidden;
|
||||||
|
|
||||||
.main {
|
.main {
|
||||||
min-width: 0;
|
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
min-width: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar {
|
.sidebar {
|
||||||
@@ -134,11 +134,6 @@ app-root {
|
|||||||
.sidebar-minimized {
|
.sidebar-minimized {
|
||||||
.sidebar {
|
.sidebar {
|
||||||
flex: 0 0 $sidebar-minimized-width;
|
flex: 0 0 $sidebar-minimized-width;
|
||||||
.sidebar-header,
|
|
||||||
.sidebar-form,
|
|
||||||
.sidebar-footer {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&.sidebar-hidden {
|
&.sidebar-hidden {
|
||||||
@@ -344,6 +339,10 @@ app-root {
|
|||||||
.nav {
|
.nav {
|
||||||
width: $mobile-sidebar-width !important;
|
width: $mobile-sidebar-width !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sidebar-minimizer {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.main, .app-footer {
|
.main, .app-footer {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
.app-header.navbar {
|
.app-header.navbar {
|
||||||
position: relative;
|
position: relative;
|
||||||
height: $navbar-height;
|
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
height: $navbar-height;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
background-color: $navbar-bg;
|
background-color: $navbar-bg;
|
||||||
@@ -101,3 +101,14 @@
|
|||||||
.navbar-divider {
|
.navbar-divider {
|
||||||
background-color: rgba(0,0,0,.075);
|
background-color: rgba(0,0,0,.075);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.brand-minimized {
|
||||||
|
.app-header.navbar {
|
||||||
|
.navbar-brand {
|
||||||
|
width: $navbar-brand-minimized-width;
|
||||||
|
background-color: $navbar-brand-minimized-bg;
|
||||||
|
background-image: $navbar-brand-minimized-logo;
|
||||||
|
background-size: $navbar-brand-minimized-logo-size;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -78,7 +78,8 @@
|
|||||||
|
|
||||||
.nav {
|
.nav {
|
||||||
@include sidebar-width($sidebar-borders, $sidebar-width);
|
@include sidebar-width($sidebar-borders, $sidebar-width);
|
||||||
flex-direction: column !important;
|
flex-direction: column;
|
||||||
|
min-height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-title {
|
.nav-title {
|
||||||
@@ -148,8 +149,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
color: $sidebar-nav-link-hover-color !important;
|
color: $sidebar-nav-link-hover-color;
|
||||||
background: $sidebar-nav-link-hover-bg !important;
|
background: $sidebar-nav-link-hover-bg;
|
||||||
@include borders($sidebar-nav-link-hover-borders);
|
@include borders($sidebar-nav-link-hover-borders);
|
||||||
|
|
||||||
i {
|
i {
|
||||||
@@ -160,6 +161,21 @@
|
|||||||
background-image: $sidebar-nav-dropdown-indicator-hover;
|
background-image: $sidebar-nav-dropdown-indicator-hover;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@each $color, $value in $theme-colors {
|
||||||
|
&.nav-link-#{$color} {
|
||||||
|
background: $value;
|
||||||
|
i {
|
||||||
|
color: rgba(255,255,255,.7);
|
||||||
|
}
|
||||||
|
&:hover {
|
||||||
|
background: darken($value,5%) !important;
|
||||||
|
i {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ex. <a class="nav-link nav-dropdown-toggle" href="#">Components</a>
|
// ex. <a class="nav-link nav-dropdown-toggle" href="#">Components</a>
|
||||||
@@ -239,6 +255,39 @@
|
|||||||
padding: $sidebar-footer-padding-y $sidebar-footer-padding-x;
|
padding: $sidebar-footer-padding-y $sidebar-footer-padding-x;
|
||||||
background: $sidebar-footer-bg;
|
background: $sidebar-footer-bg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sidebar-minimizer {
|
||||||
|
position: relative;
|
||||||
|
flex: 0 0 $sidebar-minimizer-height;
|
||||||
|
background-color: $sidebar-minimizer-bg;
|
||||||
|
border: 0;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
width: $sidebar-minimizer-height;
|
||||||
|
height: $sidebar-minimizer-height;
|
||||||
|
content: "";
|
||||||
|
background-image: $sidebar-minimizer-indicator;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
background-size: $sidebar-minimizer-height / 4;
|
||||||
|
transition: .3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:focus,
|
||||||
|
&.focus {
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: $sidebar-minimizer-hover-bg;
|
||||||
|
&::before {
|
||||||
|
background-image: $sidebar-minimizer-hover-indicator;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@include media-breakpoint-up(lg) {
|
@include media-breakpoint-up(lg) {
|
||||||
@@ -312,6 +361,11 @@
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sidebar-minimizer::before {
|
||||||
|
width: 100%;
|
||||||
|
transform: rotate(-180deg);
|
||||||
|
}
|
||||||
|
|
||||||
.nav-item {
|
.nav-item {
|
||||||
width: $sidebar-minimized-width;
|
width: $sidebar-minimized-width;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
// scss-lint:disable all
|
||||||
// Core Admin Variables
|
// Core Admin Variables
|
||||||
|
|
||||||
$enable-sidebar-nav-rounded: false !default;
|
$enable-sidebar-nav-rounded: false !default;
|
||||||
@@ -57,6 +58,11 @@ $navbar-brand-border: (
|
|||||||
)
|
)
|
||||||
) !default;
|
) !default;
|
||||||
|
|
||||||
|
$navbar-brand-minimized-width: 50px !default
|
||||||
|
$navbar-brand-minimized-bg: #fff !default;
|
||||||
|
$navbar-brand-minimized-logo: url('../img/logo-symbol.png') !default;
|
||||||
|
$navbar-brand-minimized-logo-size: 24px !default;
|
||||||
|
|
||||||
$navbar-color: $gray-600 !default;
|
$navbar-color: $gray-600 !default;
|
||||||
$navbar-hover-color: $gray-800 !default;
|
$navbar-hover-color: $gray-800 !default;
|
||||||
$navbar-active-color: $gray-800 !default;
|
$navbar-active-color: $gray-800 !default;
|
||||||
@@ -127,6 +133,17 @@ $sidebar-footer-bg: rgba(0,0,0,.2) !default;
|
|||||||
$sidebar-footer-padding-y: .75rem !default;
|
$sidebar-footer-padding-y: .75rem !default;
|
||||||
$sidebar-footer-padding-x: 1rem !default;
|
$sidebar-footer-padding-x: 1rem !default;
|
||||||
|
|
||||||
|
// Sidebar Minimizer
|
||||||
|
|
||||||
|
$sidebar-minimizer-height: 50px !default;
|
||||||
|
$sidebar-minimizer-bg: rgba(0,0,0,.2) !default;
|
||||||
|
$sidebar-minimizer-indicator-color: $gray-600 !default;
|
||||||
|
$sidebar-minimizer-indicator: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='#{$sidebar-minimizer-indicator-color}' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E"), "#", "%23") !default;
|
||||||
|
$sidebar-minimizer-hover-bg: rgba(0,0,0,.3) !default;
|
||||||
|
$sidebar-minimizer-hover-indicator-color:$sidebar-nav-link-hover-color !default;
|
||||||
|
$sidebar-minimizer-hover-indicator: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='#{$sidebar-minimizer-hover-indicator-color}' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E"), "#", "%23") !default;
|
||||||
|
|
||||||
|
|
||||||
// Top Navigation
|
// Top Navigation
|
||||||
|
|
||||||
$top-nav-bg: #fff !default;
|
$top-nav-bg: #fff !default;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/**
|
/*!
|
||||||
* CoreUI - Open Source Bootstrap Admin Template
|
* CoreUI - Open Source Bootstrap Admin Template
|
||||||
* @version v1.0.0
|
* @version v1.0.0
|
||||||
* @link http://coreui.io
|
* @link http://coreui.io
|
||||||
|
|||||||
@@ -128,6 +128,19 @@ export default {
|
|||||||
icon: 'icon-star'
|
icon: 'icon-star'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Download CoreUI',
|
||||||
|
url: 'http://coreui.io/vue/',
|
||||||
|
icon: 'icon-cloud-download',
|
||||||
|
class: 'mt-auto',
|
||||||
|
variant: 'success'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Try CoreUI PRO',
|
||||||
|
url: 'http://coreui.io/pro/vue/',
|
||||||
|
icon: 'icon-layers',
|
||||||
|
variant: 'danger'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<header class="app-header navbar">
|
<header class="app-header navbar">
|
||||||
<button class="navbar-toggler mobile-sidebar-toggler d-lg-none" type="button" @click="mobileSidebarToggle">☰</button>
|
<button class="navbar-toggler mobile-sidebar-toggler d-lg-none" type="button" @click="mobileSidebarToggle">☰</button>
|
||||||
<b-link class="navbar-brand" to="#"></b-link>
|
<b-link class="navbar-brand" to="#"></b-link>
|
||||||
<button class="navbar-toggler sidebar-toggler d-md-down-none" type="button" @click="sidebarMinimize">☰</button>
|
<button class="navbar-toggler sidebar-toggler d-md-down-none" type="button" @click="sidebarToggle">☰</button>
|
||||||
<b-nav is-nav-bar class="d-md-down-none">
|
<b-nav is-nav-bar class="d-md-down-none">
|
||||||
<b-nav-item class="px-3">Dashboard</b-nav-item>
|
<b-nav-item class="px-3">Dashboard</b-nav-item>
|
||||||
<b-nav-item class="px-3">Users</b-nav-item>
|
<b-nav-item class="px-3">Users</b-nav-item>
|
||||||
|
|||||||
@@ -21,22 +21,22 @@
|
|||||||
<!-- Second level dropdown -->
|
<!-- Second level dropdown -->
|
||||||
<SidebarNavDropdown :name="childL1.name" :url="childL1.url" :icon="childL1.icon">
|
<SidebarNavDropdown :name="childL1.name" :url="childL1.url" :icon="childL1.icon">
|
||||||
<li class="nav-item" v-for="(childL2, index) in childL1.children">
|
<li class="nav-item" v-for="(childL2, index) in childL1.children">
|
||||||
<SidebarNavLink :name="childL2.name" :url="childL2.url" :icon="childL2.icon" :badge="childL2.badge"/>
|
<SidebarNavLink :name="childL2.name" :url="childL2.url" :icon="childL2.icon" :badge="childL2.badge" :variant="item.variant"/>
|
||||||
</li>
|
</li>
|
||||||
</SidebarNavDropdown>
|
</SidebarNavDropdown>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<li class="nav-item">
|
<SidebarNavItem :classes="item.class">
|
||||||
<SidebarNavLink :name="childL1.name" :url="childL1.url" :icon="childL1.icon" :badge="childL1.badge"/>
|
<SidebarNavLink :name="childL1.name" :url="childL1.url" :icon="childL1.icon" :badge="childL1.badge" :variant="item.variant"/>
|
||||||
</li>
|
</SidebarNavItem>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</SidebarNavDropdown>
|
</SidebarNavDropdown>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<li class="nav-item">
|
<SidebarNavItem :classes="item.class">
|
||||||
<SidebarNavLink :name="item.name" :url="item.url" :icon="item.icon" :badge="item.badge"/>
|
<SidebarNavLink :name="item.name" :url="item.url" :icon="item.icon" :badge="item.badge" :variant="item.variant"/>
|
||||||
</li>
|
</SidebarNavItem>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
@@ -44,15 +44,18 @@
|
|||||||
<slot></slot>
|
<slot></slot>
|
||||||
</nav>
|
</nav>
|
||||||
<SidebarFooter/>
|
<SidebarFooter/>
|
||||||
|
<SidebarMinimizer/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import SidebarFooter from './SidebarFooter'
|
import SidebarFooter from './SidebarFooter'
|
||||||
import SidebarForm from './SidebarForm'
|
import SidebarForm from './SidebarForm'
|
||||||
import SidebarHeader from './SidebarHeader'
|
import SidebarHeader from './SidebarHeader'
|
||||||
|
import SidebarMinimizer from './SidebarMinimizer'
|
||||||
import SidebarNavDropdown from './SidebarNavDropdown'
|
import SidebarNavDropdown from './SidebarNavDropdown'
|
||||||
import SidebarNavLink from './SidebarNavLink'
|
import SidebarNavLink from './SidebarNavLink'
|
||||||
import SidebarNavTitle from './SidebarNavTitle'
|
import SidebarNavTitle from './SidebarNavTitle'
|
||||||
|
import SidebarNavItem from './SidebarNavItem'
|
||||||
export default {
|
export default {
|
||||||
name: 'sidebar',
|
name: 'sidebar',
|
||||||
props: {
|
props: {
|
||||||
@@ -66,9 +69,11 @@ export default {
|
|||||||
SidebarFooter,
|
SidebarFooter,
|
||||||
SidebarForm,
|
SidebarForm,
|
||||||
SidebarHeader,
|
SidebarHeader,
|
||||||
|
SidebarMinimizer,
|
||||||
SidebarNavDropdown,
|
SidebarNavDropdown,
|
||||||
SidebarNavLink,
|
SidebarNavLink,
|
||||||
SidebarNavTitle
|
SidebarNavTitle,
|
||||||
|
SidebarNavItem
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleClick (e) {
|
handleClick (e) {
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
<template>
|
||||||
|
<button class="sidebar-minimizer" type="button" @click="sidebarMinimize();brandMinimize()"></button>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'sidebar-minimizer',
|
||||||
|
methods: {
|
||||||
|
sidebarMinimize () {
|
||||||
|
document.body.classList.toggle('sidebar-minimized')
|
||||||
|
},
|
||||||
|
brandMinimize () {
|
||||||
|
document.body.classList.toggle('brand-minimized')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
<template>
|
||||||
|
<li :class="classList">
|
||||||
|
<slot></slot>
|
||||||
|
</li>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'sidebar-nav-item',
|
||||||
|
props: {
|
||||||
|
classes: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
classList () {
|
||||||
|
return [
|
||||||
|
'nav-item',
|
||||||
|
...this.itemClasses
|
||||||
|
]
|
||||||
|
},
|
||||||
|
itemClasses () {
|
||||||
|
return this.classes ? this.classes.split(' ') : ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -1,29 +1,58 @@
|
|||||||
<template>
|
<template>
|
||||||
<router-link :to="url" class="nav-link">
|
<div v-if="linkExternal">
|
||||||
<i :class="icon"></i> {{name}}
|
<a :href="url" :class="classList">
|
||||||
<b-badge v-if="badge.text" :variant="badge.variant">{{badge.text}}</b-badge>
|
<i :class="icon"></i> {{name}}
|
||||||
</router-link>
|
<b-badge v-if="badge && badge.text" :variant="badge.variant">{{badge.text}}</b-badge>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<router-link :to="url" :class="classList">
|
||||||
|
<i :class="icon"></i> {{name}}
|
||||||
|
<b-badge v-if="badge && badge.text" :variant="badge.variant">{{badge.text}}</b-badge>
|
||||||
|
</router-link>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
import isExternal from 'is-url-external'
|
||||||
name: 'sidebar-nav-link',
|
|
||||||
props: {
|
export default {
|
||||||
name: {
|
name: 'sidebar-nav-link',
|
||||||
type: String,
|
props: {
|
||||||
default: ''
|
name: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
url: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
icon: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
badge: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {}
|
||||||
|
},
|
||||||
|
variant: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
}
|
||||||
},
|
},
|
||||||
url: {
|
computed: {
|
||||||
type: String,
|
classList () {
|
||||||
default: ''
|
return [
|
||||||
},
|
'nav-link',
|
||||||
icon: {
|
this.linkVariant
|
||||||
type: String,
|
]
|
||||||
default: ''
|
},
|
||||||
},
|
linkVariant () {
|
||||||
badge: {
|
return this.variant ? `nav-link-${this.variant}` : ''
|
||||||
default: ''
|
},
|
||||||
|
linkExternal () {
|
||||||
|
return isExternal(this.url)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<li class="nav-title" v-bind:class="classes">
|
<li :class="classList">
|
||||||
<template v-if="wrapper && wrapper.element">
|
<template v-if="wrapper && wrapper.element">
|
||||||
<component v-bind:is="wrapper.element" v-bind="wrapper.attributes">
|
<component v-bind:is="wrapper.element" v-bind="wrapper.attributes">
|
||||||
{{name}}
|
{{name}}
|
||||||
@@ -12,20 +12,31 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
name: {
|
name: {
|
||||||
type: String,
|
type: String,
|
||||||
default: ''
|
default: ''
|
||||||
|
},
|
||||||
|
classes: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
wrapper: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
classes: {
|
computed: {
|
||||||
type: String,
|
classList () {
|
||||||
default: ''
|
return [
|
||||||
},
|
'nav-title',
|
||||||
wrapper: {
|
...this.itemClasses
|
||||||
type: Object,
|
]
|
||||||
default: () => {}
|
},
|
||||||
|
itemClasses () {
|
||||||
|
return this.classes ? this.classes.split(' ') : ''
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 959 B After Width: | Height: | Size: 959 B |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 839 B After Width: | Height: | Size: 839 B |
|
Before Width: | Height: | Size: 787 B After Width: | Height: | Size: 787 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 628 B After Width: | Height: | Size: 628 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 887 B After Width: | Height: | Size: 887 B |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 773 B After Width: | Height: | Size: 773 B |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 752 B After Width: | Height: | Size: 752 B |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 624 B After Width: | Height: | Size: 624 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 986 B After Width: | Height: | Size: 986 B |
|
Before Width: | Height: | Size: 889 B After Width: | Height: | Size: 889 B |
|
Before Width: | Height: | Size: 820 B After Width: | Height: | Size: 820 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 676 B After Width: | Height: | Size: 676 B |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 721 B After Width: | Height: | Size: 721 B |
|
Before Width: | Height: | Size: 782 B After Width: | Height: | Size: 782 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 809 B After Width: | Height: | Size: 809 B |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 830 B After Width: | Height: | Size: 830 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1020 B After Width: | Height: | Size: 1020 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 636 B After Width: | Height: | Size: 636 B |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 781 B After Width: | Height: | Size: 781 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 838 B After Width: | Height: | Size: 838 B |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 711 B After Width: | Height: | Size: 711 B |
|
Before Width: | Height: | Size: 941 B After Width: | Height: | Size: 941 B |
|
Before Width: | Height: | Size: 785 B After Width: | Height: | Size: 785 B |
|
Before Width: | Height: | Size: 806 B After Width: | Height: | Size: 806 B |
|
Before Width: | Height: | Size: 841 B After Width: | Height: | Size: 841 B |
|
Before Width: | Height: | Size: 808 B After Width: | Height: | Size: 808 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 885 B After Width: | Height: | Size: 885 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |