Merge branch '@release/0.1.1' into trunk

This commit is contained in:
Fergal Moran
2020-09-04 17:57:26 +01:00
85 changed files with 634 additions and 16075 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "bitchmin",
"version": "0.1.0",
"version": "0.1.1",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
@@ -11,19 +11,22 @@
"@mdi/font": "^5.5.55",
"@types/jquery": "^3.5.1",
"@types/jwt-decode": "^2.2.1",
"@types/vue-select": "^2.5.0",
"@types/lodash": "^4.14.161",
"axios": "^0.20.0",
"axios-auth-refresh": "^3.0.0",
"bootstrap": "^4.5.2",
"compass-mixins": "^0.12.10",
"core-js": "^3.6.5",
"dayjs": "^1.8.35",
"decko": "^1.2.0",
"ee-first": "^1.1.1",
"eslint-config-prettier": "^6.11.0",
"eslint-plugin-prettier": "^3.1.4",
"fibers": "^5.0.0",
"fs": "^0.0.1-security",
"jquery": "^3.5.1",
"jwt-decode": "^2.2.0",
"lodash": "^4.17.20",
"popper.js": "^1.16.1",
"prettier": "^2.1.1",
"qs": "^6.9.4",
@@ -32,8 +35,8 @@
"vue-color": "^2.7.1",
"vue-property-decorator": "^8.4.2",
"vue-router": "^3.2.0",
"vue-select": "^3.10.8",
"vue-toasted": "^1.1.28",
"vuetify": "^2.2.11",
"vuex": "^3.5.1"
},
"devDependencies": {
@@ -48,11 +51,14 @@
"eslint": "^7.7.0",
"eslint-plugin-vue": "^6.2.2",
"node-sass": "^4.14.1",
"sass": "^1.19.0",
"sass-loader": "^10.0.1",
"style-resources-loader": "^1.3.2",
"typescript": "~3.9.3",
"vue-cli-plugin-style-resources-loader": "~0.1.4",
"vue-template-compiler": "^2.6.11"
"vue-cli-plugin-vuetify": "~2.0.7",
"vue-template-compiler": "^2.6.11",
"vuetify-loader": "^1.3.0"
},
"eslintConfig": {
"root": true,

View File

@@ -11,6 +11,8 @@
href="<%= BASE_URL %>favicon.ico">
<title>Bitch::Min</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css">
</head>
<body>

View File

@@ -1,35 +1,21 @@
<template>
<div>
<div class="container-scroller" v-if="isAuthenticated">
<v-app id="bitchmin">
<TopBarNav />
<div class="container-fluid page-body-wrapper">
<SideBarNav />
<div class="main-panel">
<div class="content-wrapper">
<router-view />
</div>
<Footer />
</div>
</div>
</div>
<div v-if="!isAuthenticated">
<router-view />
</div>
</div>
<v-main>
<v-container fluid>
<router-view></router-view>
</v-container>
</v-main>
</v-app>
</template>
<script lang="ts">
import { Component, Vue } from 'vue-property-decorator';
import { Component, Prop, Vue } from 'vue-property-decorator';
import TopBarNav from '@/components/TopBarNav.vue'; // @ is an alias to /src
import SideBarNav from '@/components/SideBarNav.vue'; // @ is an alias to /src
import Footer from '@/components/Footer.vue'; // @ is an alias to /src
import vSelect from 'vue-select';
import store from '@/store';
Vue.component('v-select', vSelect);
@Component({
components: {
TopBarNav,
@@ -47,7 +33,8 @@ export default class App extends Vue {
}
}
</script>
<style lang="scss">
@import '@/assets/styles/_mixins.scss';
<style>
#keep .v-navigation-drawer__border {
display: none;
}
</style>

View File

@@ -2,7 +2,6 @@ import { Api } from '@/api/apiBase';
import { AxiosRequestConfig, AxiosResponse } from 'axios';
import { apiConfig } from '@/api/config';
import { ApiResult, DataApiResult } from '@/api/apiResult';
import { DnsUpdate } from '@/models/interfaces';
import { DnsRecord } from '@/models/interfaces/dnsRecord';
export class DnsApi extends Api {

View File

@@ -0,0 +1 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 87.5 100"><defs><style>.cls-1{fill:#1697f6;}.cls-2{fill:#7bc6ff;}.cls-3{fill:#1867c0;}.cls-4{fill:#aeddff;}</style></defs><title>Artboard 46</title><polyline class="cls-1" points="43.75 0 23.31 0 43.75 48.32"/><polygon class="cls-2" points="43.75 62.5 43.75 100 0 14.58 22.92 14.58 43.75 62.5"/><polyline class="cls-3" points="43.75 0 64.19 0 43.75 48.32"/><polygon class="cls-4" points="64.58 14.58 87.5 14.58 43.75 100 43.75 62.5 64.58 14.58"/></svg>

After

Width:  |  Height:  |  Size: 539 B

View File

@@ -1,9 +0,0 @@
@import '~bootstrap/scss/bootstrap';
// @import '~@mdi/font/scss/variables';
// @import '~@mdi/font/scss/icons';
@import 'assets/styles/vendor/mdi/css/materialdesignicons.min.css';
@import 'theme/style';
@import 'custom/alerts';
@import '~vue-select/src/scss/vue-select';

View File

@@ -1,29 +0,0 @@
.alert {
font-size: $default-font-size;
i {
font-size: 1.25rem;
margin-right: 1.25rem;
vertical-align: middle;
line-height: 0.5;
}
}
@each $color, $value in $theme-colors {
.alert-#{$color} {
@include alert-variant(
rgba(theme-color($color), 0.2),
theme-color-level($color, 1),
theme-color-level($color, 3)
);
}
}
@each $color, $value in $theme-colors {
.alert-fill-#{$color} {
@include alert-variant(
theme-color($color),
theme-color($color),
color(white)
);
}
}

View File

@@ -1,272 +0,0 @@
/* Dashboard */
.card-statistics {
.highlight-icon {
height: 53px;
width: 53px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50px;
i {
font-size: 27px;
}
}
.card-col {
border-right: 1px solid $border-color;
&:last-child {
border-right: none;
}
@include media-breakpoint-down(sm) {
padding-left: 0;
padding-right: 0;
position: relative;
border: none;
&:first-child,
&:nth-child(2),
&:nth-child(3) {
&:after,
&:before {
content: "";
position: absolute;
background: $border-color;
}
}
&:first-child {
&:before {
bottom: 0;
width: 94.2%;
height: 1px;
right: 0;
}
&:after {
bottom: 0;
width: 1px;
height: 100%;
right: 0;
}
}
&:nth-child(2) {
&:before {
bottom: 0;
width: 94.2%;
height: 1px;
left: 0;
}
}
&:nth-child(3) {
&:before {
width: 1px;
height: 100%;
right: 0;
}
}
}
}
}
.card-revenue-table {
.revenue-item {
border-bottom: 1px solid $border-color;
@extend .py-3;
&:last-child {
border-bottom: 0;
@extend .pb-0;
}
&:first-child {
@extend .pt-0;
}
.revenue-desc {
margin-right: auto;
width: 80%;
p {
margin-bottom: 0;
}
}
.revenue-amount {
margin-left: auto;
width: 40%;
p {
font-size: 1.25rem;
font-family: $type-1;
font-weight: 600;
text-align: right;
.rtl & {
text-align: left;
}
}
}
}
}
.card-revenue {
background: linear-gradient(120deg, #556cdc, #128bfc, #18bef1);
background-size: cover;
color: color(white);
.highlight-text {
font-size: 1.875rem;
font-family: $type-1;
font-weight: 500;
}
.badge {
background-color: rgba(color(white), .2);
font-size: 1.125rem;
padding: 0.5rem 1.25rem;
}
}
.product-chart-wrapper {
height: 92%;
}
#dashboardTrendingProgress {
width: 60px;
}
.dashboard-bar-chart-legend {
.col {
text-align: center;
display: flex;
align-items: center;
flex-direction: column;
.bg {
margin-left: auto;
margin-right: auto;
height: 5px;
width: 30px;
display: block;
margin-top: 5px;
}
&:nth-child(1) {
.bg {
background: theme-color(info);
}
}
&:nth-child(2) {
.bg {
background: theme-color(primary);
}
}
&:nth-child(3) {
.bg {
background: theme-color(danger);
}
}
}
}
.intro-banner {
background: #dbe4ec;
display: flex;
align-items: center;
padding: 20px;
border-radius: 2px;
.banner-image {
width: 24%;
max-width: 100%;
img {
display: block;
margin: auto;
}
}
.content-area {
width: 58%;
color: $black;
display: flex;
flex-direction: column;
align-items: end;
}
}
.sales-mini-tabs {
border-bottom: none;
.nav-item {
.nav-link {
border: none;
font-weight: 500;
padding: 5px 15px;
border-radius: 2px;
transition-duration: 0.7s;
transition-property: "color";
&.active {
font-weight: 600;
background: lighten($card-bg-varient, 4%);
color: theme-color(primary);
}
}
}
}
.purchase-popup {
@extend .grid-margin;
background: #fff;
padding: 15px 20px;
@include border-radius(3px);
.btn {
margin-right: 20px;
font-weight: 500;
color: $white;
@include border-radius(5px);
@include transition-duration(0.2s);
&.download-button {
background: rgba(249, 249, 249, 0.7);
color: #969292;
border: 1px solid darken(#e4e4e4,5%);
}
&.purchase-button {
background-color: rgba(172, 50 ,228, 0.9);
@include background-image(theme-gradient-color(primary));
color: $white;
border: none;
line-height: 1;
vertical-align: middle;
}
}
p {
margin-bottom: auto;
margin-top: auto;
color: darken(#e4e4e4,40%);
font-weight: 400;
vertical-align: middle;
line-height: 1;
}
i {
vertical-align: middle;
line-height: 1;
margin: auto 0;
color: darken(#e4e4e4,20%);
}
}

View File

@@ -1,163 +0,0 @@
/* Demo Styles */
// Add spacing to Boostrap components for demo purpose
.template-demo {
> .btn {
@extend .mt-3;
@extend .mr-3;
}
.slider-wrap {
height: 100px;
}
> .btn-toolbar {
@extend .mt-3;
@extend .mr-3;
}
> .btn-group,
> .btn-group-vertical {
@extend .mt-2;
@extend .mr-2;
}
.progress {
margin-top: 1.5rem;
}
.circle-progress {
@extend .mt-2;
}
> h2,
> h3,
> h4,
> h5,
> h6,
> h1 {
border-top: 1px solid $border-color;
padding: 0.5rem 0 0;
}
.ul-slider {
&.noUi-horizontal {
margin-top: 2rem;
}
&.noUi-vertical {
margin-right: 2rem;
}
}
> .dropdown {
display: inline-block;
@extend .mr-2;
margin-bottom: 0.5rem;
}
nav {
.breadcrumb {
margin-bottom: 1.375rem;
}
&:last-child {
.breadcrumb {
margin-bottom: 0;
}
}
}
.editable-form {
> .form-group {
border-bottom: 1px solid $border-color;
padding-bottom: 0.8rem;
margin-bottom: 0.8rem;
}
}
.circle-progress {
padding: 15px;
}
.circle-progress-block {
@extend .mb-3;
@extend .px-2;
}
}
.demo-modal {
position: static;
display: block;
.modal-dialog {
@extend .mt-0;
&.modal-lg {
max-width: 100%;
}
}
}
.loader-demo-box {
@extend .border;
@extend .border-secondary;
@extend .rounded;
width: 100%;
height: 200px;
@extend .d-flex;
@extend .align-items-center;
}
.dropdown-menu-static-demo {
height: 250px;
margin-bottom: 20px;
}
.rounded-legend {
ul {
li {
list-style-type: none;
color: $text-muted;
font-size: .75rem;
.legend-dots {
width: 1rem;
height: 1rem;
border-radius: 100%;
display: inline-block;
vertical-align: text-bottom;
margin-right: .5rem;
.rtl & {
margin-left: .5rem;
}
}
}
}
&.legend-horizontal {
@include display-flex;
ul {
li {
display: inline-block;
margin-right: 1.5rem;
.rtl & {
margin-right: auto;
margin-left: 1.5rem;
}
}
}
}
&.legend-top-right {
ul {
float: right;
.rtl & {
float: left;
}
}
}
&.legend-vertical {
ul {
li {
margin-top: 1rem;
}
}
}
}

View File

@@ -1,22 +0,0 @@
/* Footer */
.footer {
background: $footer-bg;
color: $footer-color;
border-top: 1px solid darken($footer-bg, 5%);
padding: 30px 1rem;
transition: all $action-transition-duration $action-transition-timing-function;
-moz-transition: all $action-transition-duration $action-transition-timing-function;
-webkit-transition: all $action-transition-duration $action-transition-timing-function;
-ms-transition: all $action-transition-duration $action-transition-timing-function;
font-size: calc(#{$default-font-size} - 0.05rem);
font-family: $type1-regular;
a {
color: theme-color(success);
font-size: inherit;
}
@media (max-width: 991px) {
margin-left: 0;
width: 100%;
}
}

View File

@@ -1,19 +0,0 @@
// Functions
@function social-color($key: "twitter") {
@return map-get($social-colors, $key);
}
@function theme-gradient-color($key: "primary") {
@return map-get($theme-gradient-colors, $key);
}
// Social Color
@each $color, $value in $social-colors {
.text-#{$color} {
@include text-color(social-color($color));
}
}
@each $color, $value in $social-colors {
.bg-#{$color} {
background: social-color($color);
}
}

View File

@@ -1,185 +0,0 @@
/* Layouts */
.navbar {
&.fixed-top {
+ .page-body-wrapper {
padding-top: $navbar-height;
}
}
}
// Sidebar Icon Only
.sidebar-icon-only {
@media (min-width: 992px) {
.navbar {
.navbar-brand-wrapper {
width: $sidebar-width-icon;
.brand-logo {
display: none;
}
.brand-logo-mini {
display: inline-block;
}
}
.navbar-menu-wrapper {
width: calc(100% - #{$sidebar-width-icon});
}
}
.sidebar {
width: $sidebar-width-icon;
.nav {
overflow: visible;
.nav-item {
position: relative;
padding: 0;
.nav-link {
display: block;
text-align: center;
.menu-title,
.badge,.menu-sub-title {
display: none;
}
.menu-title {
@include border-radius(0 5px 5px 0px);
@at-root #{selector-append(".rtl", &)} {
@include border-radius(5px 0 0 5px);
}
}
i {
&.menu-icon {
margin-right: 0;
margin-left: 0;
}
&.menu-arrow {
display: none;
}
}
&[aria-expanded] {
.menu-title{
@include border-radius(0 5px 0 0px);
@at-root #{selector-append(".rtl", &)} {
@include border-radius(5px 0 0 0);
}
}
}
}
&.nav-profile {
display: none;
}
&.nav-category {
display: none;
}
&.nav-doc {
margin: 0;
i {
display: block;
}
}
.collapse {
display: none;
}
&.hover-open {
.nav-link {
.menu-title {
@include display-flex;
@include align-items(center);
background: $icon-only-menu-bg-light;
padding: 0.5rem 1.4rem;
left: $sidebar-width-icon;
position: absolute;
text-align: left;
top: 0;
bottom: 0;
width: $icon-only-collapse-width;
z-index: 1;
line-height: 1.8;
@at-root #{selector-append(".rtl", &)} {
left: auto;
right: $sidebar-width-icon;
text-align: left;
}
&:after {
display: none;
}
}
}
.collapse,
.collapsing {
display: block;
padding: .5rem 0;
background: $icon-only-menu-bg-light;
@include border-radius(0 0 5px 0);
position: absolute;
left: $sidebar-width-icon;
width: $icon-only-collapse-width;
@at-root #{selector-append(".rtl", &)} {
left: auto;
right:$sidebar-width-icon;
@include border-radius(0 0 0 5px);
}
}
}
}
&.sub-menu {
padding: $sidebar-icon-only-submenu-padding;
.nav-item {
.nav-link {
text-align: left;
padding-left: 20px;
}
}
@at-root #{selector-append(".rtl", &)} {
.nav-item {
margin-right: auto;
margin-left: 0;
.nav-link {
text-align: right;
&:before{
left: 0;
right: unset;
}
}
}
}
}
}
.sidebar-actions {
display: none;
}
}
.main-panel {
width: calc(100% - #{$sidebar-width-icon});
}
}
}
//RTL layout
.rtl {
direction: rtl;
text-align: right;
.sidebar {
.nav {
padding-right: 0;
}
}
.product-chart-wrapper,
.sidebar-fixed .nav,
.table-responsive,
ul.chats {
&::-webkit-scrollbar {
width: 0.5em;
}
&::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
}
&::-webkit-scrollbar-thumb {
background-color: darkgrey;
outline: 1px solid slategrey;
}
}
}

View File

@@ -1,58 +0,0 @@
/* Miscellanoeous */
body,
html {
overflow-x: hidden;
padding-right: 0 !important; // resets padding right added by Bootstrap modal
}
*:-moz-full-screen,
*:-webkit-full-screen,
*:fullscreen *:-ms-fullscreen {
overflow: auto;
}
.container-scroller {
overflow: hidden;
}
pre {
background: color(gray-lighter);
padding: 15px;
font-size: 14px;
}
code {
padding: 5px;
color: theme-color(danger);
font-family: $type1-light;
font-size: $default-font-size;
border-radius: 4px;
}
.page-header {
@extend .d-flex;
@extend .justify-content-between;
@extend .align-items-center;
margin: 0 0 1.5rem 0;
.breadcrumb {
border: 0;
margin-bottom: 0;
}
}
.page-title {
color: $page-title-color;
font-size: 1.125rem;
margin-bottom: 0;
.page-title-icon {
display: inline-block;
width: 36px;
height: 36px;
border-radius: 4px;
text-align: center;
box-shadow: 0px 3px 8.3px 0.7px rgba(163, 93, 255, 0.35);
i {
font-size: .9375rem;
line-height: 36px;
}
}
}

View File

@@ -1,365 +0,0 @@
/* Navbar */
.navbar {
font-family: $type1-light;
background: $navbar-bg;
transition:background $action-transition-duration $action-transition-timing-function;
-webkit-transition:background $action-transition-duration $action-transition-timing-function;
-moz-transition:background $action-transition-duration $action-transition-timing-function;
-ms-transition:background $action-transition-duration $action-transition-timing-function;
.navbar-brand {
width: 110px;
}
.navbar-brand-wrapper {
transition: width $action-transition-duration $action-transition-timing-function, background $action-transition-duration $action-transition-timing-function;
-webkit-transition: width $action-transition-duration $action-transition-timing-function, background $action-transition-duration $action-transition-timing-function;
-moz-transition: width $action-transition-duration $action-transition-timing-function, background $action-transition-duration $action-transition-timing-function;
-ms-transition: width $action-transition-duration $action-transition-timing-function, background $action-transition-duration $action-transition-timing-function;
background: $navbar-bg;
width: $sidebar-width-lg;
height: $navbar-height;
@media (max-width: 991px) {
width: 55px;
}
.navbar-brand {
color: lighten(color(gray-dark), 20%);
font-size: 1.5rem;
line-height: 48px;
margin-right: 0;
padding: .25rem 0;
width: 100%;
&:active,
&:focus,
&:hover {
color: lighten(color(gray-dark), 10%);
}
img {
width: calc(#{$sidebar-width-lg} - 120px );
max-width: 100%;
height: 28px;
margin: auto;
vertical-align: middle;
}
&.brand-logo-mini {
display: none;
img {
width: calc(#{$sidebar-width-icon} - 50px );
max-width: 100%;
height: 28px;
margin: auto;
}
}
}
}
.navbar-menu-wrapper {
transition: width $action-transition-duration $action-transition-timing-function;
-webkit-transition: width $action-transition-duration $action-transition-timing-function;
-moz-transition: width $action-transition-duration $action-transition-timing-function;
-ms-transition: width $action-transition-duration $action-transition-timing-function;
color: $navbar-menu-color;
padding-left: 24px;
padding-right: 24px;
width: calc(100% - #{$sidebar-width-lg});
height: $navbar-height;
@media (max-width: 991px) {
width: auto;
padding-left: 15px;
padding-right: 15px;
}
.navbar-toggler {
border: 0;
color: inherit;
height: $navbar-height;
@include border-radius(0px);
padding-left: 5px;
padding-right: 20px;
&:not(.navbar-toggler-right) {
font-size: 1.5rem;
@media (max-width: 991px) {
display: none;
}
}
&.navbar-toggler-right{
@media (max-width:991px){
padding-left: 15px;
padding-right: 11px;
border-right: none;
}
}
}
.search-field {
.input-group {
input {
font-size: $default-font-size;
padding: .5rem;
@include input-placeholder {
font-size: $navbar-font-size;
color: $navbar-menu-color;
font-family: $type1-light;
}
}
i {
font-size: 17px;
margin-right: 0;
color: $navbar-menu-color;
}
.input-group-text {
background: transparent;
}
}
.rtl & {
@extend .ml-0;
@extend .mr-4;
}
}
.count-indicator {
position: relative;
.count-symbol,
.count-number {
position: absolute;
border-radius: 100%;
border: 2px solid $white;
}
.count-symbol {
top: 17px;
right: -3px;
width: 10px;
height: 10px;
}
.count-number {
min-width: 14px;
height: 14px;
font-size: .5rem;
color: $white;
bottom: 16px;
right: -5px;
line-height: 1;
text-align: center;
}
&:after {
display: none;
}
}
.navbar-nav {
flex-direction: row;
align-items: center;
.nav-item {
.nav-link {
color: inherit;
font-size: $navbar-font-size;
margin-left: 1.5rem;
margin-right: 1.5rem;
height: $navbar-height;
@include display-flex;
@include align-items(center);
@media (max-width: 767px) {
margin-left: .8rem;
margin-right: .8rem;
}
i {
font-size: $navbar-icon-font-size;
}
}
&.dropdown {
.dropdown-toggle {
&:after {
color: theme-color(primary);
font-size: 1rem;
}
}
.dropdown-menu {
@extend .dropdownAnimation;
border: none;
@include border-radius(5px);
-webkit-box-shadow: 0px 3px 21px 0px rgba(0, 0, 0, 0.2);
-moz-box-shadow: 0px 3px 21px 0px rgba(0, 0, 0, 0.2);
box-shadow: 0px 3px 21px 0px rgba(0, 0, 0, 0.2);
&.navbar-dropdown {
position: absolute;
font-size: 0.9rem;
margin-top: 0;
.rtl & {
right: auto;
left: 0;
}
padding: 0;
.dropdown-item {
@extend .d-flex;
@extend .align-items-center;
margin-bottom: 0;
padding: 11px 13px;
cursor: pointer;
i {
font-size: 17px;
}
.ellipsis {
max-width: 200px;
overflow: hidden;
text-overflow: ellipsis;
}
.rtl & {
i{
@extend .mr-0;
margin-left: 10px;
}
}
}
.dropdown-divider {
margin: 0;
}
}
}
@media (max-width: 991px) {
position: static;
.navbar-dropdown {
left: 20px;
right: 20px;
top: $navbar-height;
width: calc(100% - 40px);
}
}
}
&.nav-settings {
padding-left: 20px;
padding-right: 5px;
.nav-link{
margin-right: 0;
margin-left: 0;
}
}
&.nav-profile {
.nav-link {
@extend .d-flex;
.nav-profile-img {
position: relative;
width: 32px;
height: 32px;
img {
width: 32px;
height: 32px;
border-radius: 100%;
}
.availability-status {
position: absolute;
width: 10px;
height: 10px;
border-radius: 100%;
border: 2px solid #ffffff;
bottom: 5px;
right: -5px;
&.online {
background: theme-color(success);
}
&.offline {
background: theme-color(danger);
}
&.busy {
background: theme-color(warning);
}
}
}
.nav-profile-text {
margin-left: 1.25rem;
.rtl & {
margin-left: 0;
margin-right: 1.25rem;
}
p {
line-height: 1;
}
@media (max-width: 767px) {
display: none;
}
}
&.dropdown-toggle {
&:after {
line-height: 2;
}
}
}
}
}
&.navbar-nav-right {
@media (min-width: 992px) {
margin-left: auto;
.rtl & {
margin-left: 0;
margin-right: auto;
}
}
}
}
}
}
@media (max-width:991px) {
.navbar {
flex-direction: row;
.navbar-brand-wrapper {
width: 75px;
.navbar-brand {
&.brand-logo {
display: none;
}
&.brand-logo-mini {
display: inline-block;
}
}
}
}
.navbar-collapse {
display: flex;
margin-top: 0.5rem;
}
}
@media (max-width:480px) {
.navbar {
.navbar-brand-wrapper {
width: 55px;
.brand-logo-mini{
padding-top: 0px;
}
}
}
}
/* Navbar color variations */
@each $color, $value in $theme-gradient-colors {
.navbar {
&.navbar-#{$color} {
.navbar-menu-wrapper {
background: $value;
color: $white;
.nav-profile-text {
p {
@extend .text-white;
}
}
.search-field {
.input-group {
input {
@include input-placeholder {
color: $white;
}
}
i {
color: $white;
}
}
}
}
}
}
}

View File

@@ -1,136 +0,0 @@
/* Reset Styles */
body {
padding: 0;
margin: 0;
overflow-x: hidden;
}
.form-control,
.form-control:focus {
-webkit-box-shadow: none;
-moz-box-shadow: none
}
.form-control {
box-shadow: none
}
.form-control:focus {
outline: 0;
box-shadow: none
}
a,
div,
h1,
h2,
h3,
h4,
h5,
p,
span {
text-shadow: none
}
[type=button]:focus,
a:active,
a:focus,
a:visited,
button::-moz-focus-inner,
input[type=reset]::-moz-focus-inner,
input[type=button]::-moz-focus-inner,
input[type=submit]::-moz-focus-inner,
input[type=file]>input[type=button]::-moz-focus-inner,
select::-moz-focus-inner {
outline: 0
}
input,
.form-control:focus,
input:focus,
select:focus,
textarea:focus,
button:focus {
outline: none;
outline-width: 0;
outline-color: transparent;
box-shadow: none;
outline-style: none;
}
textarea {
resize: none;
overflow-x: hidden;
}
.btn,
.btn-group.open .dropdown-toggle,
.btn:active,
.btn:focus,
.btn:hover,
.btn:visited,
a,
a:active,
a:checked,
a:focus,
a:hover,
a:visited,
body,
button,
button:active,
button:hover,
button:visited,
div,
input,
input:active,
input:focus,
input:hover,
input:visited,
select,
select:active,
select:focus,
select:visited,
textarea,
textarea:active,
textarea:focus,
textarea:hover,
textarea:visited {
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none
}
.btn.active.focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn:active:focus,
.btn:focus,
button,
button:active,
button:checked,
button:focus,
button:hover,
button:visited {
outline: 0;
outline-offset: 0
}
.bootstrap-select .dropdown-toggle:focus {
outline: 0 ;
outline-offset: 0;
}
.dropdown-menu>li>a:active,
.dropdown-menu>li>a:focus,
.dropdown-menu>li>a:hover,
.dropdown-menu>li>a:visited {
outline: 0;
}
a:focus,
input:focus {
border-color: transparent;
outline: none
}

View File

@@ -1,240 +0,0 @@
/* Sidebar */
.sidebar {
min-height: calc(100vh - #{$navbar-height});
background: $sidebar-light-bg;
font-family: $type1-regular;
padding: 0;
width: $sidebar-width-lg;
z-index: 11;
transition: width $action-transition-duration $action-transition-timing-function, background $action-transition-duration $action-transition-timing-function;
-webkit-transition: width $action-transition-duration $action-transition-timing-function, background $action-transition-duration $action-transition-timing-function;
-moz-transition: width $action-transition-duration $action-transition-timing-function, background $action-transition-duration $action-transition-timing-function;
-ms-transition: width $action-transition-duration $action-transition-timing-function, background $action-transition-duration $action-transition-timing-function;
.nav {
overflow: hidden;
flex-wrap: nowrap;
flex-direction: column;
margin-bottom: 60px;
.nav-item {
padding:0 $sidebar-menu-padding-x;
@include transition-duration(0.25s);
transition-property: background;
-webkit-transition-property: background;
.collapse {
z-index: 999;
}
.nav-link {
@include display-flex;
@include align-items(center);
white-space: nowrap;
padding:$sidebar-menu-padding-y 0 $sidebar-menu-padding-y 0;
color: $sidebar-light-menu-color;
@include transition-duration(0.45s);
transition-property: color;
-webkit-transition-property: color;
i {
color: inherit;
&.menu-icon {
font-size: $sidebar-icon-font-size;
line-height: 1;
margin-left: auto;
.rtl & {
margin-left: 0;
margin-right: auto;
}
color: $sidebar-light-menu-icon-color;
&:before {
vertical-align: middle;
}
}
&.menu-arrow {
font: normal normal normal 24px/1 "Material Design Icons";
line-height: 1;
font-size: $sidebar-icon-font-size;
margin-left: auto;
.rtl & {
margin-left: 0;
margin-right: auto;
}
color: $sidebar-light-menu-arrow-color;
&:before{
content: "\f141";
font-size: inherit;
color: inherit;
}
+ .menu-icon {
margin-left: .25rem;
.rtl & {
margin-left: 0;
margin-right: .25rem;
}
}
}
}
.menu-title {
color: inherit;
display: inline-block;
font-size: $sidebar-menu-font-size;
line-height: 1;
vertical-align: middle;
}
.badge {
margin-right: auto;
margin-left: 1rem;
}
&[aria-expanded="true"]{
.menu-arrow{
&:before{
content: "\f140";
}
}
}
}
&.active {
background: $sidebar-light-menu-active-bg;
> .nav-link {
.menu-title {
color: $sidebar-light-menu-active-color;
font-family: $type1-medium;
}
i {
color: theme-color(primary);
}
}
}
&:hover{
background: $sidebar-light-menu-hover-bg;
}
&.nav-profile {
.nav-link {
height: auto;
line-height: 1;
border-top: 0;
padding: 1.25rem 0;
.nav-profile-image {
width: 44px;
height: 44px;
img {
width: 44px;
height: 44px;
border-radius: 100%;
}
}
.nav-profile-text {
margin-left: 1rem;
.rtl & {
margin-left: auto;
margin-right: 1rem;
}
}
.nav-profile-badge {
font-size: 1.125rem;
margin-left: auto;
.rtl & {
margin-left: 0;
margin-right: auto;
}
}
}
}
&.sidebar-actions {
margin-top: 1rem;
.nav-link {
border-top: 0;
display: block;
height: auto;
}
&:hover {
background: initial;
.nav-link {
color: initial;
}
}
}
}
&:not(.sub-menu) {
> .nav-item {
&:hover {
&:not(.nav-category):not(.nav-profile) {
> .nav-link {
color: $sidebar-light-menu-hover-color;
}
}
}
}
}
&.sub-menu {
margin-bottom: 20px;
margin-top:0;
list-style: none;
.nav-item {
padding: 0;
.nav-link {
color: $sidebar-light-submenu-color;
padding: $sidebar-submenu-item-padding;
position: relative;
font-size: $sidebar-submenu-font-size;
line-height: 1;
height: auto;
border-top: 0;
&:before {
content: "\F054";
font-family: "Material Design Icons";
display: block;
position: absolute;
left:0px;
.rtl & {
left: auto;
right: 0;
}
top:50%;
@include transform(translateY(-50%));
color: lighten($sidebar-light-submenu-color, 10%);
font-size: .75rem;
}
&.active {
color: $sidebar-light-menu-active-color;
background: transparent;
}
&:hover {
color: $sidebar-light-submenu-hover-color;
}
}
&:hover {
background: transparent;
}
}
}
}
}
/* style for off-canvas menu*/
@media screen and (max-width: 991px) {
.sidebar-offcanvas {
position: fixed;
max-height: calc(100vh - #{$navbar-height});
top: $navbar-height;
bottom: 0;
overflow: auto;
right: -$sidebar-width-lg;
-webkit-transition: all 0.25s ease-out;
-o-transition: all 0.25s ease-out;
transition: all 0.25s ease-out;
&.active {
right: 0;
}
}
}

View File

@@ -1,118 +0,0 @@
/* Typography */
body {
font-size: 1rem;
font-family: $type1-regular;
font-weight: initial;
line-height: normal;
-webkit-font-smoothing: antialiased;
}
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
font-family: $type1-medium;
}
p {
font-size: $default-font-size;
}
h1,
.h1 {
font-size: 2.19rem;
}
h2,
.h2 {
font-size: 1.88rem;
}
h3,
.h3 {
font-size: 1.56rem;
}
h4,
.h4 {
font-size: 1.13rem;
}
h5,
.h5 {
font-size: 1rem;
}
h6,
.h6 {
font-size: .9375rem;
}
p {
font-size: .9375rem;
line-height: 1.5;
}
.display-1 {
font-size: 3.75rem;
@media (max-width: 991px) {
font-size: 3rem;
}
}
.display-2 {
font-size: 3.125rem;
@media (max-width: 991px) {
font-size: 2.5rem;
}
}
.display-3 {
font-size: 2.5rem;
@media (max-width: 991px) {
font-size: 2rem;
}
}
.display-4 {
font-size: 1.875rem;
@media (max-width: 991px) {
font-size: 1.5rem;
}
}
.display-5 {
font-size: 1.25rem;
@media (max-width: 991px) {
font-size: 1rem;
}
}
.blockquote {
padding: 1.25rem;
border: 1px solid $border-color;
}
address {
p {
margin-bottom: 0;
}
}
//blockqoute color variations
@each $color, $value in $theme-colors {
.blockquote-#{$color} {
@include blockquote($value);
}
}
.error-page {
h1 {
font-size: 12rem;
@media (max-width: 991px) {
font-size: 8rem;
}
}
}
.icon-lg {
font-size: 2.5rem;
}
.icon-md {
font-size: 1.875rem;
}
.icon-sm {
font-size: 1rem;
}

View File

@@ -1,211 +0,0 @@
/* Utilities */
.grid-margin {
margin-bottom: $card-spacing-y;
}
.grid-margin-sm-0 {
@media (min-width: 576px) {
margin-bottom: 0;
}
}
.grid-margin-md-0 {
@media (min-width: 768px) {
margin-bottom: 0;
}
}
.grid-margin-lg-0 {
@media (min-width: 992px) {
margin-bottom: 0;
}
}
.grid-margin-xl-0 {
@media (min-width: 1200px) {
margin-bottom: 0;
}
}
.img-lg {
width: 92px;
height: 92px;
}
.img-sm {
width: 43px;
height: 43px;
}
.img-xs {
width: 37px;
height: 37px;
}
.img-ss {
width: 35px;
height: 35px;
}
.stretch-card {
@include display-flex;
@include align-items(stretch);
@include justify-content(stretch);
>.card{
width: 100%;
min-width: 100%;
}
}
.border-right-sm {
@media (min-width: 576px) {
border-right: $border-width solid $border-color;
}
}
.border-right-md {
@media (min-width: 768px) {
border-right: $border-width solid $border-color;
}
}
.border-right-lg {
@media (min-width: 992px) {
border-right: $border-width solid $border-color;
}
}
.border-left-sm {
@media (min-width: 576px) {
border-left: $border-width solid $border-color;
}
}
.border-left-md {
@media (min-width: 768px) {
border-left: $border-width solid $border-color;
}
}
.border-left-lg {
@media (min-width: 992px) {
border-left: $border-width solid $border-color;
}
}
.text-gray {
color: #8c8c8c;
}
.text-black {
color: $black;
}
.text-small {
font-size: 12px;
}
.flex-grow {
flex-grow: 1;
}
.font-weight-light {
font-family: $type1-light;
}
.font-weight-bold {
font-family: $type1-bold;
}
.font-weight-normal {
font-family: $type1-regular;
}
.image-grouped {
display: flex;
.text-avatar,
img {
@extend .img-ss;
border-radius: 100%;
margin-left: -10px;
z-index: 0;
border: 4px solid $card-bg;
transform: scale(1);
transition-duration: 0.3s;
transition-timing-function: ease;
transition-property: "box-shadow", "z-index", "transform", "border-width";
&:first-child {
margin-left: 0;
}
&:hover {
z-index: 1;
box-shadow: 0 0 5px -2px rgba(0, 0, 0, 0.5);
transform: scale(1.05);
border-width: 0;
}
}
.text-avatar {
@extend .bg-inverse-primary;
color: theme-color(primary);
font-size: 11px;
font-weight: 600;
}
}
.aligner-wrapper {
position: relative;
.absolute {
position: absolute;
&.absolute-center {
top: 50%;
transform: translateY(-50%);
bottom: 0;
right: 0;
left: 0;
margin: auto;
}
&.left {
left: 0;
}
&.right {
right: 0;
}
&.bottom {
bottom: 0;
}
&.top {
top: 0;
}
}
}
.v-strock-1 {
width: 2px;
}
.v-strock-2 {
width: 3px;
}
.v-strock-3 {
width: 4px;
}
.v-strock-4 {
width: 5px;
}
.dot-indicator {
width: 10px;
height: 10px;
border-radius: 100%;
&.dot-indicator-sm {
width: 6px;
height: 6px;
}
}
@each $color, $value in $theme-gradient-colors {
.bg-gradient-#{$color} {
background: theme-gradient-color($color) !important;
}
}

View File

@@ -1,365 +0,0 @@
////////// COLOR SYSTEM //////////
$blue: #5E50F9;
$indigo: #6610f2;
$purple: #6a008a;
$pink: #E91E63;
$red: #f96868;
$orange: #f2a654;
$yellow: #f6e84e;
$green: #46c35f;
$teal: #58d8a3;
$cyan: #57c7d4;
$black: #000;
$white: #ffffff;
$white-smoke: #f2f7f8;
$violet: #41478a;
$darkslategray : #2e383e;
$dodger-blue : #3498db;
$colors: (blue: $blue,
indigo: $indigo,
purple: $purple,
pink: $pink,
red: $red,
orange: $orange,
yellow: $yellow,
green: $green,
teal: $teal,
cyan: $cyan,
white: $white,
gray: #434a54,
gray-light: #aab2bd,
gray-lighter: #e8eff4,
gray-lightest: #e6e9ed,
gray-dark: #0f1531,
black: #000000);
$theme-colors: (primary: #b66dff,
secondary: #c3bdbd,
success: #1bcfb4,
info: #198ae3,
warning: #fed713,
danger: #fe7c96,
light: #f8f9fa,
dark: #3e4b5b);
$theme-gradient-colors: (primary: linear-gradient(to right, #da8cff, #9a55ff),
secondary: linear-gradient(to right, #e7ebf0, #868e96),
success: linear-gradient(to right, #84d9d2, #07cdae),
info: linear-gradient(to right, #90caf9, #047edf 99%),
warning: linear-gradient(to right, #f6e384, #ffd500),
danger: linear-gradient(to right, #ffbf96, #fe7096),
light: linear-gradient(to bottom, #f4f4f4, #e4e4e9),
dark: linear-gradient(89deg, #5e7188, #3e4b5b));
////////// COLOR SYSTEM //////////
////////// COLOR VARIABLES //////////
$content-bg: #f2edf3;
$footer-bg: $content-bg;
$footer-color: color(dark);
$border-color: #ebedf2;
$circle-border:$white;
////////// COLOR VARIABLES //////////
////////// SOCIAL COLORS //////////
$social-colors: (twitter: #2caae1,
facebook: #3b579d,
google: #dc4a38,
linkedin: #0177b5,
pinterest: #cc2127,
youtube: #e52d27,
github: #333333,
behance: #1769ff,
dribbble: #ea4c89,
reddit: #ff4500);
////////// SOCIAL COLORS //////////
////////// FONTS//
$type-1: 'roboto',
sans-serif;
$type-2: $type-1;
$type1-light: 'ubuntu-light',
sans-serif;
$type1-regular: 'ubuntu-regular',
sans-serif;
$type1-medium: 'ubuntu-medium',
sans-serif;
$type1-bold: 'ubuntu-bold',
sans-serif;
$default-font-size: .875rem; // 14px as base font size
$text-muted: #9c9fa6;
$body-color: #343a40;
////////// FONT VARIABLES //////////
///////// CARD ////////
$card-bg: #fff;
$card-description-color: #76838f;
$card-title-color: $body-color;
$card-bg-varient: #fff;
///////// CARD ////////
//////// TABLES ////////
$table-accent-bg: $content-bg;
$table-hover-bg: $content-bg;
$table-cell-padding: .9375rem;
$table-border-color: $border-color;
$table-inverse-bg: #2a2b32;
$table-inverse-color: color(white);
//////// TABLES ////////
////////// MODALS VARIABLES //////////
$modal-content-bg: $content-bg;
////////// MODALS VARIABLES //////////
///////// NAVBAR ////////
$navbar-bg: #fff;
$navbar-height: 70px;
$navbar-menu-color: #9c9fa6;
$navbar-font-size: .875rem;
$navbar-icon-font-size: 1.25rem;
$mail-head-bg:#303a40;
$u-name-color:$black;
$file-name:$black;
///////// NAVBAR ////////
///////// BUTTONS ////////
$button-fixed-width: 150px;
$btn-padding-y: .875rem;
$btn-padding-x: 2.5rem;
$btn-line-height: 1;
$btn-padding-y-xs: .5rem;
$btn-padding-x-xs: .75rem;
$btn-padding-y-sm: .50rem;
$btn-padding-x-sm: .81rem;
$btn-padding-y-lg: 1rem;
$btn-padding-x-lg: 3rem;
$btn-font-size: .875rem;
$btn-font-size-xs: .625rem;
$btn-font-size-sm: .875rem;
$btn-font-size-lg: .875rem;
$btn-border-radius: .1875rem;
$btn-border-radius-xs: .1875rem;
$btn-border-radius-sm: .1875rem;
$btn-border-radius-lg: .1875rem;
///////// BUTTONS ////////
////////// TOOLTIP VARIABLES //////////
//default styles
$tooltip-font-size: .75rem;
$tooltip-padding-y: .4rem;
$tooltip-padding-x: .75rem;
$tooltip-border-radius: .375rem;
////////// TOOLTIP VARIABLES //////////
///////// FORMS /////////
$input-bg: color(white);
$input-border-radius: 2px;
$input-placeholder-color: #c9c8c8;
$input-font-size: .8125rem;
$input-padding-y: 0.94rem;
$input-padding-x: 1.375rem;
$input-line-height: 1;
$input-padding-y-xs: .5rem;
$input-padding-x-xs: .75rem;
$input-padding-y-sm: .50rem;
$input-padding-x-sm: .81rem;
$input-padding-y-lg: .94rem;
$input-padding-x-lg: 1.94rem;
$input-height: 2.875rem;
$input-height-sm: 2.575rem;
$input-height-lg: 3.175rem;
///////// FORMS /////////
//////// DROPDOWNS ///////
$dropdown-border-color: $border-color;
$dropdown-divider-bg: $border-color;
$dropdown-link-color: $body-color;
$dropdown-header-color: $body-color;
$dropdown-menu-box-shadow: 0px 1px 15px 1px rgba(230, 234, 236, 0.35);
$dropdown-hover-bg: #f8f9fa;
//////// DROPDOWNS ///////
////////// MEASUREMENT AND PROPERTY VARIABLES //////////
$boxed-container-width: 1200px;
$border-property: 1px solid $border-color;
$card-spacing-y: 2.5rem;
$card-padding-y: 2.5rem;
$card-padding-x: 2.5rem;
$card-border-radius: .3125rem;
$grid-gutter-width: 40px;
$action-transition-duration: 0.25s;
$action-transition-timing-function: ease;
////////// OTHER VARIABLES //////////
////////// BREAD CRUMBS VARIABLES //////////
// default styles
$breadcrumb-padding-y: 0.56rem;
$breadcrumb-padding-x: 1.13rem;
$breadcrumb-item-padding: .5rem;
$breadcrumb-margin-bottom: 1rem;
$breadcrumb-font-size: $default-font-size;
$breadcrumb-bg: transparent;
$breadcrumb-border-color: $border-color;
$breadcrumb-divider-color: $gray-600;
$breadcrumb-active-color: $gray-700;
$breadcrumb-divider: "/";
// custom styles
$breadcrumb-custom-padding-y: 0;
$breadcrumb-custom-padding-x: 0;
$breadcrumb-custom-item-padding-y: 0.56rem;
$breadcrumb-custom-item-padding-x: 10px;
$breadcrumb-custom-item-color: $black;
$breadcrumb-item-bg: #dbe3e6;
////////// BREAD CRUMBS VARIABLES //////////
////////// MODALS VARIABLES //////////
$modal-inner-padding: .9375rem;
$modal-dialog-margin: 10px;
$modal-dialog-margin-y-sm-up: 30px;
$modal-title-line-height: $line-height-base;
$modal-content-box-shadow-xs: 0 3px 9px rgba($black, .5);
$modal-content-box-shadow-sm-up: 0 5px 15px rgba($black, .5);
$modal-backdrop-bg: $black;
$modal-backdrop-opacity: .5;
$modal-header-border-color: $border-color;
$modal-content-border-color: $border-color;
$modal-footer-border-color: $border-color;
$modal-header-border-width: $border-width;
$modal-content-border-width: $border-width;
$modal-footer-border-width: $border-width;
$modal-header-padding-x: 26px;
$modal-header-padding-y: 25px;
$modal-body-padding-x: 26px;
$modal-body-padding-y: 35px;
$modal-footer-padding-x: 31px;
$modal-footer-padding-y: 15px;
$modal-lg: 90%;
$modal-md: 500px;
$modal-sm: 300px;
$modal-transition: transform .4s ease;
////////// MODALS VARIABLES //////////
///////// TABS VARIABLES //////////
$nav-tabs-border-color: #ebedf2;
$nav-tabs-link-bg: #f6f8fa;
$nav-tabs-link-color: #000000;
$nav-tabs-link-hover-border-color: $nav-tabs-border-color $nav-tabs-border-color $nav-tabs-border-color;
$nav-tabs-link-active-color: $body-color;
$nav-tabs-link-active-bg: $white;
$nav-tabs-link-active-border-color: $nav-tabs-border-color $nav-tabs-border-color $nav-tabs-link-active-bg;
$nav-pills-custom-bg: #fcfcfd;
//////// TABS VARIABLES /////////
$accent-color: $white;
$chat-container-height:100%s;
$text-gray:gray;
$bullet-line-list-shape-bg: color(white) !default;
$arrow-color: $white;
$tab-head-bg: darken(#f2edf3, 2%);
$accordian-shadow-color:rgba(230, 234, 236, 0.35);
$landing-bg:#1a142dfa;
$private-btn-bg:#eae2ec;
$circle-img-border: $white;
$bottom-submenu-bg: $white;
$chat-bottom-btn: $white;
$form-focus-bg:$white;
$form-focus-bg: $white;
$form-focus-color:$black;
$landing-bg-color: $white;
$mail-hover-color: rgba(240, 244, 249, 0.8);
//////// CALENDAR //////////////
$fullcalendar-color: #a8b2b9;
//////// CALENDAR //////////////
//////// MISC //////////////
$page-title-color: $body-color;
//////// MISC //////////////
////////// SIDEBAR ////////
$sidebar-width-lg: 260px;
$sidebar-width-mini: 185px;
$sidebar-width-icon: 70px;
$sidebar-light-bg: $white;
$sidebar-light-menu-color: #3e4b5b;
$sidebar-light-submenu-color: #888;
$sidebar-light-menu-active-bg: $white;
$sidebar-light-menu-active-color: theme-color(primary);
$sidebar-light-menu-hover-bg: darken($sidebar-light-bg, 1%);
$sidebar-light-menu-hover-color: darken($sidebar-light-menu-color, 10%);
$sidebar-light-submenu-hover-color: darken($sidebar-light-submenu-color, 20%);
$sidebar-light-menu-icon-color: #bba8bff5;
$sidebar-light-menu-arrow-color: #9e9da0;
$sidebar-light-menu-border-color: #f2edf3;
$sidebar-menu-font-size: $default-font-size;
$sidebar-menu-padding-y: 1.125rem;
$sidebar-menu-padding-x: 2.25rem;
$sidebar-submenu-font-size: .8125rem;
$sidebar-submenu-item-padding: .75rem 2rem .75rem 2rem;
$sidebar-icon-font-size: 1.125rem;
$sidebar-arrow-font-size: .625rem;
$sidebar-profile-bg: transparent;
$sidebar-profile-padding: .75rem 1.625rem .75rem 1.188rem;
$rtl-sidebar-submenu-padding: 0 1.5rem 0 0;
$sidebar-icon-only-menu-padding: .5rem 1.625rem .5rem 1.188rem;
$sidebar-icon-only-submenu-padding: 0 0 0 1.5rem;
$icon-only-collapse-width: 190px;
$icon-only-menu-bg-light: $sidebar-light-menu-hover-bg;
///////// SIDEBAR ////////
$bullet-line-list-shape-bg: color(white) !default;

View File

@@ -1,31 +0,0 @@
.page-body-wrapper {
min-height: calc(100vh - #{$navbar-height});
@include display-flex();
@include flex-direction(row);
padding-left: 0;
padding-right: 0;
&.full-page-wrapper {
width: 100%;
min-height: 100vh;
}
}
.main-panel {
transition: width $action-transition-duration $action-transition-timing-function, margin $action-transition-duration $action-transition-timing-function;
width: calc(100% - #{$sidebar-width-lg});
min-height: calc(100vh - #{$navbar-height});
@include display-flex();
@include flex-direction(column);
@media (max-width: 991px) {
margin-left: 0;
width: 100%;
}
}
.content-wrapper {
background: $content-bg;
padding: 2.75rem 2.25rem;
width: 100%;
@include flex-grow(1);
}

View File

@@ -1,20 +0,0 @@
#resizable-grid {
.drag-item {
position: relative;
.dismiss {
position: absolute;
top: 7px;
right: 25px;
font-size: 15px;
font-weight: bold;
color: lighten(theme-color(danger), 10%);
background: lighten(color(gray-light), 40%);
height: 15px;
width: 16px;
line-height: 13px;
cursor: pointer;
text-align: center;
@include border-radius(100%);
}
}
}

View File

@@ -1,35 +0,0 @@
/* Badges */
.badge {
border-radius: .125rem;
font-size: 11px;
font-weight: initial;
line-height: 1;
padding: .375rem .5625rem;
font-family: $type1-medium;
&.badge-pill {
border-radius: 10rem;
}
}
/*Badge variations*/
@each $color, $value in $theme-colors {
.badge-#{$color} {
@include badge-variations($value);
}
}
/*Badge gradient variations*/
@each $color, $value in $theme-gradient-colors {
.badge-gradient-#{$color} {
@include badge-gradient-variations($value);
}
}
/*Badge outlined variations*/
@each $color, $value in $theme-colors {
.badge-outline-#{$color} {
@include badge-outline-variations($value);
}
}

View File

@@ -1,22 +0,0 @@
/* Bootstrap Progress */
.progress {
@include border-radius(3px);
height: 8px;
.progress-bar {
@include border-radius(3px);
}
&.progress-sm{
height: 0.375rem;
}
&.progress-md {
height: 8px;
}
&.progress-lg {
height: 15px;
}
&.progress-xl {
height: 18px;
}
}

View File

@@ -1,90 +0,0 @@
/* Breadcrumbs */
.breadcrumb {
border: $border-width solid $border-color;
.breadcrumb-item {
font-size: $breadcrumb-font-size;
&.active {
color: rgba($body-color, 0.8);
}
}
&.breadcrumb-custom {
padding: $breadcrumb-custom-padding-y $breadcrumb-custom-padding-x;
border-color: $breadcrumb-item-bg;
.breadcrumb-item {
font-size: $breadcrumb-font-size;
background: $breadcrumb-item-bg;
padding: $breadcrumb-custom-item-padding-y $breadcrumb-custom-item-padding-x;
color: $breadcrumb-custom-item-color;
display: inline-block;
vertical-align: top;
&:last-child {
background: transparent;
}
&:before{
content: "";
}
a {
position: relative;
color: inherit;
border: 1px solid $breadcrumb-item-bg;
display: inline-block;
vertical-align: top;
&:before,&:after{
position: absolute;
top: -9px;
width: 0;
height: 0;
content: "";
border-top: 21px solid transparent;
border-bottom: 21px solid transparent;
}
&:before{
right: -22px;
z-index: 3;
border-left-color: $breadcrumb-item-bg;
border-left-style: solid;
border-left-width: 12px;
}
&:after{
border-top: 21px solid transparent;
border-bottom: 22px solid transparent;
border-left: 12px solid $white;
top: -9px;
right: -23px;
}
}
span{
display: inline-block;
vertical-align: top;
}
&.active {
color: rgba($body-color, 0.8);
}
}
}
&.bg-success,&.bg-dark,&.bg-danger,&.bg-warning,&.bg-primary,&.bg-info{
border: none;
.breadcrumb-item{
color: $white;
&:before{
color: inherit;
}
a,span{
color: inherit;
}
}
}
}
/* inverse breadcrumb */
@each $color, $value in $theme-colors {
.bg-inverse-#{$color} {
@include breadcrumb-inverse-variant($value);
}
}

View File

@@ -1,104 +0,0 @@
/* Buttons */
.btn {
font-size: $btn-font-size;
line-height: 1;
font-family: $type1-bold;
i {
font-size: 1rem;
}
&.btn-rounded {
@include border-radius(50px);
}
&.btn-fw {
min-width: $button-fixed-width;
}
&.btn-sm {
font-size: $btn-font-size-sm;
}
&.btn-lg {
font-size: $btn-font-size-lg;
}
&.btn-xs {
padding: $btn-padding-y-xs $btn-padding-x-xs;
font-size: $btn-font-size-xs;
}
/* Buttons with only icons */
&.btn-icon {
width: 42px;
height: 42px;
padding: 0;
}
/* Buttons with icon and text */
&.btn-icon-text {
.btn-icon-prepend {
margin-right: .5rem;
}
.btn-icon-append {
margin-left: .5rem;
}
}
&.btn-social-icon {
width: 50px;
height: 50px;
padding: 0;
}
}
.btn-group {
.btn {
+ .btn {
border-left: 0;
}
}
}
.btn-toolbar {
.btn-group {
+.btn-group {
@extend .ml-2;
}
}
}
/*social buttons*/
@each $color, $value in $social-colors {
.btn-#{$color} {
@include social-button(social-color($color));
}
.btn-outline-#{$color} {
@include social-outline-button(social-color($color));
}
}
/* inverse buttons */
@each $color, $value in $theme-colors {
.btn-inverse-#{$color} {
@include button-inverse-variant($value);
}
.btn-#{$color}:not(.btn-light) {
color: $white;
&:hover,
&:focus,
&:active {
color: $white;
}
&:focus,
&:active {
background: $value;
border-color: $value;
}
}
.btn-outline-#{$color} {
&:hover,
&:focus,
&:active {
background: theme-gradient-color($color);
color: $black;
}
}
}
/* gradient buttons */
@each $color, $value in $theme-gradient-colors {
.btn-gradient-#{$color} {
@include button-gradient-variant($value);
}
}

View File

@@ -1,91 +0,0 @@
/* Cards */
.card {
border: 0;
background: $card-bg;
.card-body {
padding: $card-padding-y $card-padding-x;
+ .card-body {
padding-top: 1rem;
}
}
.card-title {
color: $card-title-color;
margin-bottom: 0.75rem;
text-transform: capitalize;
font-family: $type1-medium;
font-size: 1.125rem;
}
.card-subtitle {
@extend .text-gray;
font-family: $type1-regular;
margin-top: 0.625rem;
margin-bottom: 0.625rem;
}
.card-description {
color: $card-description-color;
margin-bottom: 1.5rem;
font-family: $type1-regular;
}
&.card-outline-success {
border: 1px solid theme-color("success");
}
&.card-outline-primary {
border: 1px solid theme-color("primary");
}
&.card-outline-warning {
border: 1px solid theme-color("warning");
}
&.card-outline-danger {
border: 1px solid theme-color("danger");
}
&.card-rounded {
@include border-radius(5px);
}
&.card-faded {
background: #b5b0b2;
border-color: #b5b0b2;
}
&.card-circle-progress {
color: $white;
text-align: center;
}
&.card-img-holder {
position: relative;
.card-img-absolute {
position: absolute;
top: 0;
right: 0;
height: 100%;
}
}
&.bg-blue-gradient {
background: linear-gradient(to right, #065efd, #3169fd, #6f79fc);
color: #fff;
}
&.bg-orange-gradient {
background: linear-gradient(to right, #ff7f2e, #fe7452);
color: #fff;
}
&.bg-green-gradient {
background: linear-gradient(to right, #24e8a6, #09cdd1);
color: #fff;
}
&.card-no-shadow {
box-shadow: none;
}
}
@each $color, $value in $theme-colors {
.card-inverse-#{$color} {
@include card-inverse-variant(
rgba(theme-color($color), 0.2),
theme-color-level($color, 1),
theme-color-level($color, 3)
);
}
}

View File

@@ -1,234 +0,0 @@
/* Checkboxes and Radios */
.form-check {
position: relative;
display: block;
margin-top: 15px;
margin-bottom: 10px;
padding-left: 0;
.form-check-label {
display: block;
margin-left: 1.75rem;
font-size: $default-font-size;
line-height: 1.5;
.rtl & {
margin-left: 0;
margin-right: 1.75rem;
}
input {
position: absolute;
top: 0;
left: 0;
.rtl & {
left: auto;
right: 0;
}
margin-left: 0;
margin-top: 0;
z-index: 1;
cursor: pointer;
opacity: 0;
filter: alpha(opacity=0);
}
input[type="checkbox"] {
+ .input-helper {
&:before,
&:after {
position: absolute;
top: 0;
left: 0;
.rtl & {
left: auto;
right: 0;
}
}
&:before {
content: "";
width: 18px;
height: 18px;
border-radius: 2px;
border: solid theme-color(primary);
border-width: 2px;
@include transition(all);
transition-duration: 0s;
-webkit-transition-duration: 250ms;
transition-duration: 250ms;
}
&:after {
@include transition(all);
transition-duration: 0s;
-webkit-transition-duration: 250ms;
transition-duration: 250ms;
font-family: Material Design Icons;
opacity: 0;
filter: alpha(opacity=0);
-webkit-transform: scale(0);
-ms-transform: scale(0);
-o-transform: scale(0);
transform: scale(0);
content: '\F12C';
font-size: .9375rem;
font-weight: bold;
color: $white;
}
}
&:checked {
+.input-helper {
&:before {
background: theme-gradient-color(primary);
border-width: 0;
}
&:after {
width: 18px;
opacity: 1;
line-height: 18px;
filter: alpha(opacity=100);
-webkit-transform: scale(1);
-ms-transform: scale(1);
-o-transform: scale(1);
transform: scale(1);
}
}
}
&:disabled {
+ .input-helper {
&:before {
border-color: $border-color;
}
}
&:checked {
+ .input-helper {
&:after {
background: $border-color;
color: $white;
}
}
}
}
}
input[type="radio"] {
+.input-helper {
&:before {
position: absolute;
content: "";
top: 0;
left: 0;
.rtl & {
left: auto;
right: 0;
}
border: solid theme-color(primary);
border-width: 2px;
width: 20px;
height: 20px;
border-radius: 50%;
@include transition(all);
transition-duration: 0s;
-webkit-transition-duration: 250ms;
transition-duration: 250ms;
}
&:after {
content: "";
width: 8px;
height: 8px;
background: $white;
border-radius: 50%;
top: 6px;
left: 6px;
.rtl & {
left: auto;
right: 6px;
}
-webkit-transition: all;
-o-transition: all;
transition: all;
transition-duration: 0s;
-webkit-transition-duration: 250ms;
transition-duration: 250ms;
opacity: 0;
filter: alpha(opacity=0);
-webkit-transform: scale(0);
-ms-transform: scale(0);
-o-transform: scale(0);
transform: scale(0);
position: absolute;
}
}
&:checked {
+.input-helper {
&:before {
background: theme-gradient-color(primary);
border-width: 0;
}
&:after {
opacity: 1;
line-height: 1.5;
filter: alpha(opacity=100);
-webkit-transform: scale(1);
-ms-transform: scale(1);
-o-transform: scale(1);
transform: scale(1);
}
}
}
&:disabled {
+ .input-helper {
&:before {
border-color: $border-color;
}
}
&:checked {
+ .input-helper {
&:before {
background: $border-color;
}
&:after {
background: $white;
}
}
}
}
}
}
}
@each $color, $value in $theme-gradient-colors {
.form-check-#{$color} {
&.form-check {
label {
input[type="checkbox"],
input[type="radio"] {
+.input-helper {
&:before {
border-color: theme-color($color);
}
}
&:checked {
+.input-helper {
&:before {
background: $value;
}
}
}
}
}
}
}
}
@media (min-width: 576px) {
.form-inline .form-check {
}
}

View File

@@ -1,34 +0,0 @@
/* Dropdowns */
.dropdown {
.dropdown-toggle {
&:after {
border-top: 0;
border-right: 0;
border-left: 0;
border-bottom: 0;
font: normal normal normal 24px/1 "Material Design Icons";
content: "\f140";
width: auto;
height: auto;
vertical-align: baseline;
font-size: .75rem;
}
}
.dropdown-menu {
margin-top: .75rem;
font-size: $default-font-size;
box-shadow: $dropdown-menu-box-shadow;
.dropdown-item {
font-size: 1rem;
padding: .25rem 1.5rem;
&:active {
background: initial;
}
&:hover {
background-color: $dropdown-hover-bg;
color: $white;
}
}
}
}

View File

@@ -1,67 +0,0 @@
/* Forms */
.form-group {
margin-bottom: 1.5rem;
}
.input-group-append,
.input-group-prepend {
color: $input-placeholder-color;
width: auto;
border: none;
.input-group-text {
border-color: $border-color;
padding: $input-padding-y .75rem;
color: $input-placeholder-color;
}
}
.form-control {
border: 1px solid $border-color;
font-family: $type1-regular;
font-size: $input-font-size;
&:focus {
background-color: $form-focus-bg;
color: $form-focus-color;
outline: none;
}
}
select {
&.form-control {
padding: .4375rem .75rem;
border: 0;
outline: 1px solid $border-color;
color: $input-placeholder-color;
&:focus {
outline: 1px solid $border-color;
}
@each $color, $value in $theme-colors {
&.border-#{$color} {
outline: 1px solid $value;
&:focus {
outline: 1px solid $value;
}
}
}
}
}
.form-group {
label {
font-size: $default-font-size;
line-height: 1;
vertical-align: top;
margin-bottom: .5rem;
}
&.has-danger {
.form-control {
border-color: theme-color(danger);
}
}
.file-upload-default {
visibility: hidden;
position: absolute;
}
.file-upload-info {
background: transparent;
}
}

View File

@@ -1,23 +0,0 @@
/* Icons */
.icons-list {
border-left: 1px solid $border-color;
border-top: 1px solid $border-color;
>div {
border-bottom: 1px solid $border-color;
border-right: 1px solid $border-color;
@include display-flex;
@include align-items(center);
padding:15px 15px;
font-family: $type1-regular;
font-size: $default-font-size;
i {
display: inline-block;
font-size: 20px;
width: 40px;
text-align: left;
color: theme-color(primary);
}
}
}

View File

@@ -1,170 +0,0 @@
/* Lists */
ul,
ol,
dl {
padding-left: 1rem;
font-size: $default-font-size;
li {
line-height: 1.8;
}
}
.list-ticked,
.list-arrow,
.list-star {
list-style: none;
padding: 0;
li {
padding-left: 1.5rem;
&:before {
font-family: "Material Design Icons";
margin-left: -1.5rem;
width: 1.5rem;
margin-right: .5rem;
}
}
}
.list-ticked {
li {
&:before {
content: '\F12D';
color: theme-color(danger);
}
}
}
.list-arrow {
li {
&:before {
content: '\F142';
color: theme-color(success);
}
}
}
.list-star {
li {
&:before {
content: '\F4CE';
color: theme-color(warning);
}
}
}
.gradient-bullet-list {
padding-left: 0;
.rtl & {
padding-right: 0;
}
li {
position: relative;
list-style-type: none;
padding-left: 25px;
line-height: 1;
padding-bottom: 25px;
&:before,
&:after {
content:"";
position: absolute;
}
&:before {
top: 0;
left: 0;
width: 15px;
height: 15px;
border-radius: 100%;
}
&:after {
width: 11px;
height: 11px;
top: 2px;
left: 2px;
background: $card-bg;
border-radius: 100%;
}
&:nth-child(1) {
&:before {
background: theme-gradient-color(danger);
}
}
&:nth-child(2) {
&:before {
background: theme-gradient-color(info);
}
}
&:nth-child(3) {
&:before {
background: theme-gradient-color(warning);
}
}
&:nth-child(4) {
&:before {
background: theme-gradient-color(success);
}
}
&:nth-child(5) {
&:before {
background: theme-gradient-color(primary);
}
}
}
}
.bullet-line-list {
padding-left: 30px;
margin-bottom: 0;
position: relative;
list-style-type: none;
.rtl & {
padding-right: 0px;
}
li {
position: relative;
line-height: 1;
padding-bottom: 10px;
&:before {
content: "";
position: absolute;
border-radius: 100%;
width: 12px;
height: 12px;
left: -28px;
top: 6px;
border: 3px solid theme-color(primary);
margin-right: 15px;
z-index: 2;
background: $bullet-line-list-shape-bg;
}
&:after {
content: "";
border: 1px solid $border-color;
position: absolute;
bottom: 0;
left: -23px;
height: 100%;
}
&:first-child {
&:after {
content: "";
height: 80%;
}
}
&:last-child {
padding-bottom: 0;
&:after {
content: "";
top: 0;
height: 30%;
}
}
}
}

View File

@@ -1,122 +0,0 @@
/* Preview */
.preview-list {
.preview-item {
@include display-flex;
@include flex-direction(row);
@include align-items(flex-start);
padding: .75rem 1.5rem;
font-size: .875rem;
&:last-child {
border-bottom: 0;
}
&:hover {
background: $dropdown-link-hover-bg;
}
.form-check {
margin-top: 8px;
margin-right: 1rem;
}
.preview-thumbnail {
color: color(white);
position: relative;
img,
.preview-icon {
width: 36px;
height: 36px;
border-radius: 100%;
}
.preview-icon {
padding: 6px;
text-align: center;
@include display-flex;
@include align-items(center);
@include justify-content(center);
i {
font-size: 1.125rem;
margin: 0;
.rtl & {
@extend .ml-0;
}
}
}
.badge {
border: 2px solid color(white);
border-radius: 100%;
bottom: 5px;
display: block;
height: 14px;
left: -5px;
padding: 0;
position: absolute;
width: 14px;
&.badge-online {
@extend .badge-success;
}
&.badge-offline {
@extend .badge-info;
}
&.badge-busy {
@extend .badge-warning;
}
}
}
.preview-item-content {
line-height: 1;
padding-left: 15px;
&:first-child {
padding-left: 0;
}
p {
margin-bottom: 10px;
.content-category {
font-family: 'source-sans-pro-semibold', sans-serif;
padding-right: 15px;
border-right: 1px solid $border-color;
@extend .text-muted;
}
}
.rtl & {
padding-left: 0;
padding-right: 1rem;
margin-right: 0;
margin-left: auto;
}
}
.preview-actions {
@include display-flex;
@include flex-direction(row);
i {
width: 29px;
color: color(gray-lightest);
height: 29px;
border: 2px solid color(gray-lightest);
border-radius: 100%;
padding: 3px 6px;
display: inline-block;
&:first-child {
margin-right: 10px;
}
}
}
}
&.comment-preview {
.preview-item {
padding: .87rem 0;
&:first-child {
padding-top: 0;
}
p {
line-height: 27px;
}
}
}
&.bordered {
.preview-item {
border-bottom: 1px solid $border-color;
&:last-child {
border-bottom: 0;
}
}
}
}

View File

@@ -1,46 +0,0 @@
/* Tables */
.table {
margin-bottom: 0;
thead {
th {
border-top: 0;
border-bottom-width: 1px;
font-family: $type1-medium;
font-weight: initial;
i {
margin-left: 0.325rem;
}
}
}
th,
td {
vertical-align: middle;
font-size: $default-font-size;
line-height: 1;
white-space: nowrap;
img {
width: 36px;
height: 36px;
border-radius: 100%;
}
.badge {
margin-bottom: 0;
}
}
&.table-borderless {
border: none;
tr,
td,
th {
border: none;
}
}
}

View File

@@ -1,78 +0,0 @@
/* Tabs */
.add-items {
margin-bottom: 1.5rem;
overflow: hidden;
input[type="text"] {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
width: 100%;
background: transparent;
}
.btn {
margin-left: .5rem;
.rtl & {
margin-left: auto;
margin-right: .5rem;
}
}
}
.list-wrapper {
height: 100%;
max-height: 100%;
ul {
padding: 0;
text-align: left;
list-style: none;
margin-bottom: 0;
li {
@extend .d-flex;
@extend .align-items-center;
@extend .justify-content-start;
font-size: .9375rem;
padding: .4rem 0;
border-bottom: 1px solid $border-color;
&:first-child {
border-bottom: none;
}
.form-check{
@extend %ellipsor;
max-width: 90%;
margin-top: .25rem;
margin-bottom: .25rem;
.form-check-label{
@extend%ellipsor;
}
}
}
}
input[type="checkbox"] {
margin-right: 15px;
}
.remove {
@extend .ml-auto;
@extend .text-secondary;
.rtl & {
@extend .ml-0;
@extend .mr-auto;
}
cursor: pointer;
font-size: 1.438rem;
font-weight: 600;
width: 1.25rem;
height: 1.25rem;
line-height: 20px;
text-align: center;
}
.completed {
text-decoration: line-through;
text-decoration-color: theme-color(info);
.remove {
@extend .text-primary;
}
}
}

View File

@@ -1,47 +0,0 @@
/* Auth */
.auth {
.auth-form-light {
background: $white;
select {
color: $input-placeholder-color;
}
.input-group {
.form-control {
&:focus,
&:active {
border-color: $border-color;
}
}
}
}
.brand-logo {
margin-bottom: 2rem;
img {
width: 150px;
}
}
form {
.form-group {
margin-bottom: 1.5rem;
label {
font-size: .8125rem;
}
.form-control {
background: transparent;
border-radius: 0;
font-size: .9375rem;
}
}
.auth-form-btn {
height: 50px;
line-height: 1.5;
}
.auth-link {
font-size: $default-font-size;
&:hover {
color: initial;
}
}
}
}

View File

@@ -1,70 +0,0 @@
/* Animation Mixins */
@keyframes dropdownAnimation {
from {
opacity: 0;
transform: translate3d(0, -30px, 0);
}
to {
opacity: 1;
transform: none;
transform: translate3d(0, 0px, 0);
}
}
.dropdownAnimation {
animation-name: dropdownAnimation;
@include animation-duration($action-transition-duration);
@include animation-fill-mode(both);
}
@mixin transition($settings) {
-webkit-transition: $settings;
-moz-transition: $settings;
-ms-transition: $settings;
-o-transition: $settings;
transition: $settings;
}
@keyframes fadeOut {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
.fadeOut {
animation-name: fadeOut;
}
.infinite-spin {
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
animation-name: spin;
animation-duration: 3s;
animation-iteration-count: infinite;
animation-timing-function: linear;
}
@keyframes fadeInUp {
from {
opacity: 0;
transform: translate3d(0, 100%, 0);
}
to {
opacity: 1;
transform: none;
}
}
.fadeInUp {
animation-name: fadeInUp;
}

View File

@@ -1,21 +0,0 @@
// Background Mixins //
@mixin bg($color) {
background: $color;
}
@mixin bg-gradient($color1, $color2) {
background: $color1;
/* For browsers that do not support gradients */
background: -webkit-linear-gradient(90deg, $color1, $color2);
/* For Safari 5.1 to 6.0 */
background: -o-linear-gradient(90deg, $color1, $color2);
/* For Opera 11.1 to 12.0 */
background: -moz-linear-gradient(90deg, $color1, $color2);
/* For Firefox 3.6 to 15 */
background: linear-gradient(90deg, $color1, $color2);
/* Standard syntax */
}
@mixin bg-inverse-variant($color) {
background: rgba($color, 0.2);
}

View File

@@ -1,17 +0,0 @@
//Badge Mixins
//Badge vriations
@mixin badge-variations($color) {
border: 1px solid $color;
color: $white;
}
// Badge outlined variations
@mixin badge-outline-variations($color) {
color: $color;
border: 1px solid $color;
}
// Badge outlined variations
@mixin badge-gradient-variations($color) {
background: $color;
color: $white;
}

View File

@@ -1,8 +0,0 @@
// BlockQuote Mixins //
@mixin blockquote($color) {
border-color: $color;
.blockquote-footer {
color: $color;
}
}

View File

@@ -1,42 +0,0 @@
// Breadcrumb color variations
@mixin breadcrumb-inverse-variant($color) {
background: lighten($color, 25%);
border-color: $color;
.breadcrumb-item {
color: $color;
&:before {
color: inherit;
}
a {
color: inherit;
}
}
&.breadcrumb-custom {
background: transparent;
.breadcrumb-item {
background: lighten($color, 25%);
a {
color: $color;
border: none;
&:before {
border-left-color: lighten($color, 25%);
}
}
span {
color: $color;
}
&:last-child {
background: transparent;
}
}
}
}

View File

@@ -1,81 +0,0 @@
@mixin social-button($color) {
background: $color;
color: $white;
&:hover,
&:focus {
background: darken($color, 10%);
color: $white;
}
&.btn-social-icon-text {
padding: 0 1.5rem 0 0;
background: lighten($color, 10%);
i {
background: $color;
padding: .75rem;
display: inline-block;
margin-right: 1.5rem;
}
}
}
@mixin social-outline-button($color) {
border: 1px solid $color;
color: $color;
&:hover {
background: $color;
color: $white;
}
}
@mixin button-inverse-variant($color, $color-hover: $white) {
background-color: rgba($color, 0.2);
background-image: none;
border-color: rgba($color, 0);
&:not(.btn-inverse-light) {
color: $color;
}
@include hover {
color: $color-hover;
background-color: $color;
border-color: $color;
}
&.focus,
&:focus {
box-shadow: 0 0 0 3px rgba($color, .5);
}
&.disabled,
&:disabled {
color: $color;
background-color: transparent;
}
&.active,
&:active,
.show > &.dropdown-toggle {
color: $color-hover;
background-color: $color;
border-color: $color;
}
}
@mixin button-gradient-variant($value) {
background: $value;
border: 0;
&:not([disabled]):not(.disabled):active,
&:not([disabled]):not(.disabled).active,
.show > &.dropdown-toggle {
background: $value;
}
&:hover {
opacity: .8;
}
&:not(.btn-gradient-light) {
color: $white;
&:hover,
&:focus,
&:active {
color: $white;
}
}
@include transition(opacity .3s ease);
}

View File

@@ -1,7 +0,0 @@
// Cards Mixins
@mixin card-inverse-variant($bg, $border, $color) {
background: $bg;
border: 1px solid $border;
color: $color;
}

View File

@@ -1,66 +0,0 @@
/* Miscellaneous Mixins */
// general transform
@mixin transform($transforms) {
-moz-transform: $transforms;
-o-transform: $transforms;
-ms-transform: $transforms;
-webkit-transform: $transforms;
transform: $transforms;
}
// rotate
@mixin rotate ($deg) {
@include transform(rotate(#{$deg}deg));
}
// scale
@mixin scale($scale) {
@include transform(scale($scale));
}
// translate
@mixin translate ($x, $y) {
@include transform(translate($x, $y));
}
// skew
@mixin skew ($x, $y) {
@include transform(skew(#{$x}deg, #{$y}deg));
}
//transform origin
@mixin transform-origin ($origin) {
moz-transform-origin: $origin;
-o-transform-origin: $origin;
-ms-transform-origin: $origin;
-webkit-transform-origin: $origin;
transform-origin: $origin;
}
//Ellipsis
%ellipsor{
text-overflow: ellipsis;
overflow: hidden;
max-width:100%;
white-space: nowrap;
}
@mixin ellipsor {
text-overflow: ellipsis;
overflow: hidden;
max-width: 100%;
white-space: nowrap;
}
// Placeholder
@mixin placeholder {
&::-webkit-input-placeholder {
@content
}
&:-moz-placeholder {
@content
}
&::-moz-placeholder {
@content
}
&:-ms-input-placeholder {
@content
}
}

View File

@@ -1,19 +0,0 @@
// Pagination variations
@mixin pagination-variants($color) {
.page-item {
&.active {
.page-link {
background: $color;
border-color: $color;
}
}
.page-link {
&:hover {
background: lighten($color,5%);
border-color: $color;
color: $white;
}
}
}
}

View File

@@ -1,42 +0,0 @@
// popover color variations //
@mixin popover-variant($color) {
border-color: $color;
.popover-header {
background: theme-gradient-color($color);
color: $white;
border-bottom: 0;
}
&.bs-popover-top {
.arrow {
&:before,
&:after {
border-top-color: theme-color($color);
}
}
}
&.bs-popover-right {
.arrow {
&:before,
&:after {
border-right-color: theme-color($color);
}
}
}
&.bs-popover-bottom {
.arrow {
&:before,
&:after {
border-bottom-color: theme-color($color);
}
}
}
&.bs-popover-left {
.arrow {
&:before,
&:after {
border-left-color: theme-color($color);
}
}
}
}

View File

@@ -1,3 +0,0 @@
@mixin text-color($color) {
color: $color;
}

View File

@@ -1,28 +0,0 @@
// Tooltip color variations
@mixin tooltip-variant($color) {
.tooltip-inner {
background: theme-gradient-color($color);
color: $white;
}
&.bs-tooltip-top {
.arrow::before {
border-top-color: theme-color($color);
}
}
&.bs-tooltip-right {
.arrow::before {
border-right-color: theme-color($color);
}
}
&.bs-tooltip-bottom {
.arrow::before {
border-bottom-color: theme-color($color);
}
}
&.bs-tooltip-left {
.arrow::before {
border-left-color: theme-color($color);
}
}
}

View File

@@ -1,115 +0,0 @@
/*-------------------------------------------------------------------
===== Table of Contents =====
* Bootstrap functions
* Template variables
* SCSS Compass Functions
* Boostrap Main SCSS
* Template mixins
+ Animation Mixins
+ Background Mixins
+ Badge Mixins
+ Button Mixins
+ Miscellaneous Mixins
+ BlockQuote Mixins
+ Cards Mixins
+ Color Functions Mixins
+ Tooltips
+ popovers
* Core Styles
+ Reset Styles
+ Fonts
+ Functions
+ Backgrounds
+ Typography
+ Miscellaneous
+ Footer
+ Layouts
+ Utilities
+ Demo styles
* Components
+ Badges
+ Boostrap Progress
+ Buttons
+ Breadcrumbs
+ Cards
+ Checkboxes and Radios
+ Dropdowns
+ Forms
+ Icons
+ Preview
+ Tables
+ Todo List
* Landing screens
+ Auth
-------------------------------------------------------------------*/
/*-------------------------------------------------------------------*/
/* === Import Bootstrap functions and variables === */
@import "../../../../node_modules/bootstrap/scss/functions";
@import "../../../../node_modules/bootstrap/scss/variables";
/*-------------------------------------------------------------------*/
/* === Import template variables === */
@import './variables';
/*-------------------------------------------------------------------*/
/* === SCSS Compass Functions === */
@import "../../../../node_modules/compass-mixins/lib/compass";
@import "../../../../node_modules/compass-mixins/lib/animate";
/*-------------------------------------------------------------------*/
/* === Boostrap Main SCSS === */
@import "../../../../node_modules/bootstrap/scss/bootstrap";
/*-------------------------------------------------------------------*/
/* === Template mixins === */
@import "./mixins/misc";
@import "./mixins/animation";
@import "./mixins/background";
@import "./mixins/badges";
@import "./mixins/blockqoute";
@import "./mixins/buttons";
@import "./mixins/breadcrumbs";
@import "./mixins/cards";
@import "./mixins/pagination";
@import "./mixins/popovers";
@import "./mixins/tooltips";
@import "./mixins/text";
/*-------------------------------------------------------------------*/
/* === Core Styles === */
@import "./reset";
@import "./functions";
@import "./typography";
@import "./misc";
@import "./footer";
@import "./utilities";
@import "./demo";
@import "./dashboard";
/*-------------------------------------------------------------------*/
/* === Components === */
@import "./components/badges";
@import "./components/bootstrap-progress";
@import "./components/buttons";
@import "./components/breadcrumbs";
@import "./components/cards";
@import "./components/checkbox-radio";
@import "./components/dropdown";
@import "./components/forms";
@import "./components/icons";
@import "./components/lists";
@import "./components/preview";
@import "./components/tables";
@import "./components/todo-list";
/*-------------------------------------------------------------------*/
/* === Landing screens === */
@import "./landing-screens/auth";
@import './navbar';
@import './sidebar';
@import './layouts';
@import './vertical-wrapper';

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -1,29 +1,20 @@
<template>
<div class="card">
<div class="card-header header-sm">
<div class="d-flex align-items-center">
<div class="wrapper d-flex align-items-center media-info text-linkedin">
<h2 class="card-title ml-3">Existing records</h2>
</div>
<div class="wrapper ml-auto action-bar" v-if="callInProgress">
<i class="mdi mdi-image-filter-vintage text-danger mdi-spin"></i>
</div>
</div>
</div>
<div class="card-body">
<transition name="fade">
<div class="alert alert-fill-danger" role="alert" v-if="errorMessage">
<i class="mdi mdi-alert-circle"></i>
{{errorMessage}}
</div>
</transition>
<table class="table table-hover table-bordered" v-if="records && records.length > 0">
<thead class="thead-dark">
<v-card outlined>
<template slot="progress">
<v-progress-linear color="deep-purple" height="10" indeterminate></v-progress-linear>
</template>
<v-card-title>Existing records</v-card-title>
<v-card-text>
<v-row>
<v-alert type="error" v-if="errorMessage">{{errorMessage}}</v-alert>
<v-simple-table>
<template v-slot:default>
<thead>
<tr>
<th scope="col">Host</th>
<th scope="col">IP</th>
<th scope="col">Added</th>
<th scope="col">#</th>
<th class="text-left">Host</th>
<th class="text-left">IP</th>
<th class="text-left">Added</th>
<th class="text-left">Actions</th>
</tr>
</thead>
<tbody>
@@ -32,42 +23,25 @@
<td>{{host.ip}}</td>
<td>{{host.created_on | formatDate}}</td>
<td>
<div class="btn-group" role="group" aria-label="Basic example">
<button
@click="refreshRecord(host)"
data-toggle="tooltip"
title="Refresh record in BIND"
type="button"
class="btn btn-sm btn-primary btn-rounded btn-icon"
>
<i class="mdi mdi-refresh"></i>
</button>
<button
@click="verifyRecord(host)"
data-toggle="tooltip"
title="Verify record in BIND"
type="button"
:disabled="callInProgress"
class="btn btn-sm btn-primary btn-rounded btn-icon"
>
<i class="mdi mdi-eye-check"></i>
</button>
<button
@click="deleteRecord(host)"
data-toggle="tooltip"
title="Delete record"
type="button"
class="btn btn-sm btn-primary btn-rounded btn-icon"
>
<i class="mdi mdi-delete"></i>
</button>
</div>
<v-btn-toggle dense background-color="pink" rounded>
<v-btn icon color="pink" @click="refreshRecord(host)">
<v-icon dark>mdi-refresh</v-icon>
</v-btn>
<v-btn icon color="pink" @click="verifyRecord(host)">
<v-icon dark>mdi-eye-check</v-icon>
</v-btn>
<v-btn icon color="pink" @click="deleteRecord(host)">
<v-icon dark>mdi-delete</v-icon>
</v-btn>
</v-btn-toggle>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</template>
</v-simple-table>
</v-row>
</v-card-text>
</v-card>
</template>
<script lang="ts">
@@ -78,7 +52,6 @@ import dayjs from 'dayjs';
// eslint-disable-next-line @typescript-eslint/no-unused-vars
import relativeTime from 'dayjs/plugin/relativeTime';
import localizedFormat from 'dayjs/plugin/localizedFormat';
import { error } from 'jquery';
@Component({
name: 'DnsRecordsList',

View File

@@ -1,24 +1,31 @@
<template>
<div class="card">
<div class="card-header">Add new record</div>
<div class="card-body">
<form class="forms-sample" @submit.prevent="processUpdate">
<div class="form-group">
<label for="ipAddress">IP Address</label>
<input type="text" class="form-control" id="ipAddress" v-model="ipAddress" />
</div>
<v-card class="mx-auto" outlined>
<template slot="progress">
<v-progress-linear color="deep-purple" height="10" indeterminate></v-progress-linear>
</template>
<v-card-title>Add New Host</v-card-title>
<v-card-text>
<v-row align="start" justify="start" class="mx-0">
<v-form ref="form" v-model="valid" :lazy-validation="lazy">
<v-text-field
v-model="hostName"
:rules="hostNameRules"
label="Host Name"
required
></v-text-field>
<div class="form-group">
<label for="hostName">Host name</label>
<input type="text" class="form-control" id="hostName" v-model="hostName" />
</div>
<div class="alert alert-danger" role="alert" v-if="error">{{error}}</div>
<button type="submit" class="btn btn-gradient-primary mr-2">Submit</button>
<button class="btn btn-light">Cancel</button>
</form>
<p v-if="msg">{{ msg }}</p>
</div>
</div>
<v-text-field
v-model="ipAddress"
:rules="ipAddressRules"
label="IP Address"
required
></v-text-field>
<v-btn color="warning" :disabled="!valid" @click="processUpdate">Add record</v-btn>
</v-form>
</v-row>
</v-card-text>
</v-card>
</template>
<script lang="ts">
import { Component, PropSync, Vue } from 'vue-property-decorator';
@@ -30,14 +37,36 @@ import { DataApiResult } from '@/api/apiResult';
name: 'DnsUpdateForm',
})
export default class DnsUpdateForm extends Vue {
public ipAddress = '';
public hostName = '';
public msg = '';
msg = '';
error = '';
valid = true;
lazy = false;
@PropSync("inrecords")
hostName = '';
hostNameRules = [
(v: string) => !!v || 'Host name is required',
(v: string) =>
(v && v.length < 253) || 'Hostname cannot exceed 253 characters',
];
ipAddress = '';
ipAddressRules = [
(v: string) => !!v || 'IP address is required',
(v: string) =>
/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(
v
) || 'Invalid IP Address',
(v: string) =>
(v && v.length < 16) || 'IP address cannot exceed 16 characters',
];
@PropSync('inrecords')
public records!: DnsRecord[];
validate() {
// this.$refs.form.validate();
}
processUpdate() {
dnsApi
.updateDnsRecord(this.hostName, this.ipAddress)

View File

@@ -1,99 +1,153 @@
<template>
<div class="hello">
<h1>{{ msg }}</h1>
<p>
For a guide and recipes on how to configure / customize this project,
<br />check out the
<v-container>
<v-row class="text-center">
<v-col cols="12">
<v-img
:src="require('../assets/logo.svg')"
class="my-3"
contain
height="200"
/>
</v-col>
<v-col class="mb-4">
<h1 class="display-2 font-weight-bold mb-3">
Welcome to Vuetify
</h1>
<p class="subheading font-weight-regular">
For help and collaboration with other Vuetify developers,
<br>please join our online
<a
href="https://cli.vuejs.org"
href="https://community.vuetifyjs.com"
target="_blank"
rel="noopener"
>vue-cli documentation</a>.
>Discord Community</a>
</p>
<h3>Installed CLI Plugins</h3>
<ul>
<li>
</v-col>
<v-col
class="mb-5"
cols="12"
>
<h2 class="headline font-weight-bold mb-3">
What's next?
</h2>
<v-row justify="center">
<a
href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel"
v-for="(next, i) in whatsNext"
:key="i"
:href="next.href"
class="subheading mx-3"
target="_blank"
rel="noopener"
>babel</a>
</li>
<li>
>
{{ next.text }}
</a>
</v-row>
</v-col>
<v-col
class="mb-5"
cols="12"
>
<h2 class="headline font-weight-bold mb-3">
Important Links
</h2>
<v-row justify="center">
<a
href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-router"
v-for="(link, i) in importantLinks"
:key="i"
:href="link.href"
class="subheading mx-3"
target="_blank"
rel="noopener"
>router</a>
</li>
<li>
>
{{ link.text }}
</a>
</v-row>
</v-col>
<v-col
class="mb-5"
cols="12"
>
<h2 class="headline font-weight-bold mb-3">
Ecosystem
</h2>
<v-row justify="center">
<a
href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint"
v-for="(eco, i) in ecosystem"
:key="i"
:href="eco.href"
class="subheading mx-3"
target="_blank"
rel="noopener"
>eslint</a>
</li>
<li>
<a
href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-typescript"
target="_blank"
rel="noopener"
>typescript</a>
</li>
</ul>
<h3>Essential Links</h3>
<ul>
<li>
<a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a>
</li>
<li>
<a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a>
</li>
<li>
<a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a>
</li>
<li>
<a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a>
</li>
<li>
<a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a>
</li>
</ul>
<h3>Ecosystem</h3>
<ul>
<li>
<a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a>
</li>
<li>
<a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a>
</li>
<li>
<a
href="https://github.com/vuejs/vue-devtools#vue-devtools"
target="_blank"
rel="noopener"
>vue-devtools</a>
</li>
<li>
<a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a>
</li>
<li>
<a
href="https://github.com/vuejs/awesome-vue"
target="_blank"
rel="noopener"
>awesome-vue</a>
</li>
</ul>
</div>
>
{{ eco.text }}
</a>
</v-row>
</v-col>
</v-row>
</v-container>
</template>
<script lang="ts">
import { Component, Prop, Vue } from 'vue-property-decorator';
import Vue from 'vue'
@Component
export default class HelloWorld extends Vue {
@Prop() private msg!: string;
}
export default Vue.extend({
name: 'HelloWorld',
data: () => ({
ecosystem: [
{
text: 'vuetify-loader',
href: 'https://github.com/vuetifyjs/vuetify-loader',
},
{
text: 'github',
href: 'https://github.com/vuetifyjs/vuetify',
},
{
text: 'awesome-vuetify',
href: 'https://github.com/vuetifyjs/awesome-vuetify',
},
],
importantLinks: [
{
text: 'Documentation',
href: 'https://vuetifyjs.com',
},
{
text: 'Chat',
href: 'https://community.vuetifyjs.com',
},
{
text: 'Made with Vuetify',
href: 'https://madewithvuejs.com/vuetify',
},
{
text: 'Twitter',
href: 'https://twitter.com/vuetifyjs',
},
{
text: 'Articles',
href: 'https://medium.com/vuetify',
},
],
whatsNext: [
{
text: 'Explore components',
href: 'https://vuetifyjs.com/components/api-explorer',
},
{
text: 'Select a layout',
href: 'https://vuetifyjs.com/getting-started/pre-made-layouts',
},
{
text: 'Frequently Asked Questions',
href: 'https://vuetifyjs.com/getting-started/frequently-asked-questions',
},
],
}),
})
</script>

View File

@@ -1,54 +1,27 @@
<template>
<nav class="sidebar sidebar-offcanvas" id="sidebar">
<ul class="nav">
<li class="nav-item nav-profile">
<router-link to="/" class="nav-link">
<div class="nav-profile-image">
<img src="https://placebeard.it/128x128" alt="profile" />
<span class="login-status online"></span>
<!--change to offline or busy as needed-->
</div>
<div class="nav-profile-text d-flex flex-column">
<span
class="font-weight-bold mb-2"
>{{ this.$store.state.user.fullName }}</span>
<span class="text-secondary text-small">Beard Manager</span>
</div>
<i class="mdi mdi-bookmark-check text-success nav-profile-badge"></i>
</router-link>
</li>
<li class="nav-item" v-if="false">
<router-link class="nav-link" to="/debug">
<span class="menu-title">Debug</span>
<i class="mdi mdi-bug menu-icon"></i>
</router-link>
</li>
<li class="nav-item">
<router-link class="nav-link" to="/bitchns">
<span class="menu-title">DNS Config</span>
<i class="mdi mdi-dns menu-icon"></i>
</router-link>
</li>
<li class="nav-item">
<router-link class="nav-link" to="/myip">
<span class="menu-title">My IP Address</span>
<i class="mdi mdi-ip menu-icon"></i>
</router-link>
</li>
<li class="nav-item">
<router-link class="nav-link" to="/jwt">
<span class="menu-title">JWT Decoder</span>
<i class="mdi mdi-code-array menu-icon"></i>
</router-link>
</li>
<li class="nav-item">
<router-link class="nav-link" to="/lights">
<span class="menu-title">Lights</span>
<i class="mdi mdi-lightbulb menu-icon"></i>
</router-link>
</li>
</ul>
</nav>
<v-navigation-drawer v-model="drawer" app clipped color="grey lighten-4">
<v-list dense class="grey lighten-4">
<template v-for="(item, i) in items">
<v-row v-if="item.heading" :key="i" align="center">
<v-col cols="6">
<v-subheader v-if="item.heading">{{ item.heading }}</v-subheader>
</v-col>
<v-col cols="6" class="text-right">
<v-btn small text>edit</v-btn>
</v-col>
</v-row>
<v-divider v-else-if="item.divider" :key="i" dark class="my-4"></v-divider>
<v-list-item v-else :key="i" link @click="$router.push({ path: item.route })">
<v-list-item-action>
<v-icon>{{ item.icon }}</v-icon>
</v-list-item-action>
<v-list-item-content>
<v-list-item-title class="grey--text">{{ item.title }}</v-list-item-title>
</v-list-item-content>
</v-list-item>
</template>
</v-list>
</v-navigation-drawer>
</template>
<script>
@@ -56,6 +29,13 @@ import { Component, Vue } from 'vue-property-decorator';
@Component
export default class SideBarNav extends Vue {
drawer = null;
items = [
{ title: 'Debug', icon: 'mdi-bug', route: 'debug' },
{ title: 'DNS Config', icon: 'mdi-dns', route: 'bitchns' },
{ title: 'IP Tools', icon: 'mdi-ip', route: 'myip' },
{ title: 'JWT Decoder', icon: 'mdi-code-array', route: 'jwt' },
{ title: 'Lights', icon: 'mdi-lightbulb', route: 'lights' },
];
}
</script>

View File

@@ -1,138 +1,15 @@
<template>
<nav class="navbar default-layout-navbar col-lg-12 col-12 p-0 fixed-top d-flex flex-row">
<div
class="text-center navbar-brand-wrapper d-flex align-items-center justify-content-center"
>
<a class="navbar-brand brand-logo" href="/">
<img src="/images/logo.png" alt="logo" />
</a>
<a class="navbar-brand brand-logo-mini" href="/">
<img src="/images/logo-mini.svg" alt="logo" />
</a>
</div>
<div class="navbar-menu-wrapper d-flex align-items-stretch">
<button
class="navbar-toggler navbar-toggler align-self-center"
type="button"
data-toggle="minimize"
>
<span class="mdi mdi-menu"></span>
</button>
<div class="search-field d-none d-md-block">
<form class="d-flex align-items-center h-100" action="#">
<div class="input-group">
<div class="input-group-prepend bg-transparent">
<i class="input-group-text border-0 mdi mdi-magnify"></i>
</div>
<input
type="text"
class="form-control bg-transparent border-0"
placeholder="Search projects"
/>
</div>
</form>
</div>
<ul class="navbar-nav navbar-nav-right">
<li class="nav-item dropdown">
<a
class="nav-link count-indicator dropdown-toggle"
id="notificationDropdown"
href="#"
data-toggle="dropdown"
>
<i class="mdi mdi-bell-outline"></i>
<span class="count-symbol bg-danger"></span>
</a>
<div
class="dropdown-menu dropdown-menu-right navbar-dropdown preview-list"
aria-labelledby="notificationDropdown"
>
<h6 class="p-3 mb-0">Notifications</h6>
<div class="dropdown-divider"></div>
<a class="dropdown-item preview-item">
<div class="preview-thumbnail">
<div class="preview-icon bg-success">
<i class="mdi mdi-calendar"></i>
</div>
</div>
<div
class="preview-item-content d-flex align-items-start flex-column justify-content-center"
>
<h6 class="preview-subject font-weight-normal mb-1">Event today</h6>
<p
class="text-gray ellipsis mb-0"
>Just a reminder that you have an event today</p>
</div>
</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item preview-item">
<div class="preview-thumbnail">
<div class="preview-icon bg-warning">
<i class="mdi mdi-settings"></i>
</div>
</div>
<div
class="preview-item-content d-flex align-items-start flex-column justify-content-center"
>
<h6 class="preview-subject font-weight-normal mb-1">Settings</h6>
<p class="text-gray ellipsis mb-0">Update dashboard</p>
</div>
</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item preview-item">
<div class="preview-thumbnail">
<div class="preview-icon bg-info">
<i class="mdi mdi-link-variant"></i>
</div>
</div>
<div
class="preview-item-content d-flex align-items-start flex-column justify-content-center"
>
<h6 class="preview-subject font-weight-normal mb-1">Launch Admin</h6>
<p class="text-gray ellipsis mb-0">New admin wow!</p>
</div>
</a>
<div class="dropdown-divider"></div>
<h6 class="p-3 mb-0 text-center">See all notifications</h6>
</div>
</li>
<li class="nav-item nav-profile dropdown">
<a
class="nav-link dropdown-toggle"
id="profileDropdown"
href="#"
data-toggle="dropdown"
aria-expanded="false"
>
<div class="nav-profile-img">
<img src="https://placebeard.it/128x128" alt="image" />
<span class="availability-status online"></span>
</div>
<div class="nav-profile-text">
<p class="mb-1 text-black">{{this.$store.state.user.fullName}}</p>
</div>
</a>
<div class="dropdown-menu navbar-dropdown" aria-labelledby="profileDropdown">
<a class="dropdown-item" href="#">
<i class="mdi mdi-cached mr-2 text-success"></i> Activity Log
</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" @click="signout">
<i class="mdi mdi-logout mr-2 text-primary"></i> Signout
</a>
</div>
</li>
</ul>
<button
class="navbar-toggler navbar-toggler-right d-lg-none align-self-center"
type="button"
data-toggle="offcanvas"
>
<span class="mdi mdi-menu"></span>
</button>
</div>
</nav>
<v-app-bar app clipped-left color="#90CAF9">
<v-app-bar-nav-icon @click="drawer = !drawer"></v-app-bar-nav-icon>
<span class="title ml-3 mr-5">
Bitch&nbsp;
<span class="font-weight-light">Mints</span>
</span>
<v-spacer></v-spacer>
<v-btn icon>
<v-icon>mdi-exit-to-app</v-icon>
</v-btn>
</v-app-bar>
</template>
<script>
import { Component, Prop, Vue } from 'vue-property-decorator';

View File

@@ -6,6 +6,8 @@ import router from './router';
import store from '@/store';
import $ from 'jquery';
import 'bootstrap';
import vuetify from '@/plugins/vuetify';
Vue.config.productionTip = false;
Vue.use(Toasted, {
@@ -16,5 +18,6 @@ Vue.use(Toasted, {
new Vue({
router,
store,
render: (h) => h(App),
vuetify,
render: (h) => h(App)
}).$mount('#app');

View File

@@ -1 +0,0 @@
export interface DnsUpdate {}

View File

@@ -3,5 +3,4 @@ export * from './authResult';
export * from './userLoginModel';
export * from './user';
export * from './user';
export * from './dnsUpdapte';
export * from './light';

View File

@@ -0,0 +1,9 @@
import Vue from 'vue';
import Vuetify from 'vuetify';
import 'vuetify/dist/vuetify.min.css';
Vue.use(Vuetify);
const opts = {};
export default new Vuetify(opts);

View File

@@ -1,22 +1,24 @@
<template>
<div>
<div class="page-header">
<h3 class="page-title">
<span class="page-title-icon bg-gradient-primary text-white mr-2">
<i class="mdi mdi-dns"></i>
</span> BitchMints Dynamic DNS Stuff
</h3>
</div>
<div class="row">
<div class="col-md-6 grid-margin stretch-card">
<DnsUpdateForm :inrecords.sync="dnsRecords"/>
</div>
<div class="col-md-6 grid-margin stretch-card">
<DnsRecordsList :inrecords.sync="dnsRecords"/>
</div>
</div>
</div>
<v-container id="dashboard" fluid tag="section">
<v-row>
<v-col cols="12" sm="4" lg="4">
<DnsUpdateForm :inrecords="dnsRecords" />
</v-col>
<v-col cols="12" sm="8" lg="8">
<DnsRecordsList :inrecords="dnsRecords" />
</v-col>
</v-row>
</v-container>
<!-- <v-container fluid grid-list-xl>
<v-layout row wrap>
<v-flex sm4 xs4>
<DnsUpdateForm :inrecords="dnsRecords" />
</v-flex>
<v-flex d-flex lg4 sm6 xs12>
<DnsRecordsList :inrecords="dnsRecords" />
</v-flex>
</v-layout>
</v-container>-->
</template>
<script lang="ts">

View File

@@ -1,50 +1,44 @@
<template>
<div>
<div class="page-header">
<h3 class="page-title">JWT Token Decoder</h3>
</div>
<div class="row">
<div class="col-md-12 grid-margin stretch-card">
<div class="card">
<div class="card-body">
<form class="forms-sample">
<div class="form-group">
<label for="exampleInputUsername1">Enter JWT Token</label>
<input
type="text"
class="form-control"
<v-row>
<v-col cols="12" class="pa-4" sm="5" lg="5">
<v-card class="elevation-12">
<v-list-item>
<v-list-item-content>
<v-list-item-title class="headline">JWT Token Decoder</v-list-item-title>
</v-list-item-content>
</v-list-item>
<v-card-text>
<v-form ref="form">
<v-text-field
v-model="token"
label="JWT Token"
@keydown="tokenChanged"
placeholder="JWT Token"
/>
</div>
required
></v-text-field>
</v-form>
<transition name="fade">
<div v-if="error" class="alert alert-danger" role="alert">{{error}}</div>
</transition>
</form>
<!-- <table class="table table-bordered" v-if="decoded.iat"> -->
<div class="row" v-if="decoded">
<div
class="col-md-6"
</v-card-text>
</v-card>
</v-col>
<v-col cols="12" class="pa-4" sm="7" lg="7">
<v-row>
<v-col
cols="12"
sm="6"
v-for="(value, propertyName) in decoded"
:key="propertyName"
>
<div class="wrapper ml-3">
<dl>
<dt>
{{propertyName | narrativeText}}
<small>({{propertyName}})</small>
</dt>
<dd>{{value | transformValue(propertyName)}}</dd>
</dl>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<v-card class="pa-2">
<v-card-title>{{propertyName | narrativeText}}</v-card-title>
<v-card-subtitle>({{propertyName}})</v-card-subtitle>
<v-card-text>{{value | transformValue(propertyName)}}</v-card-text>
</v-card>
</v-col>
</v-row>
</v-col>
</v-row>
</template>
<script lang="ts">
import { Component, Vue } from 'vue-property-decorator';

View File

@@ -1,52 +1,47 @@
<template>
<div>
<div class="page-header">
<h3 class="page-title">
<span class="page-title-icon bg-gradient-primary text-white mr-2">
<i class="mdi mdi-home"></i>
</span> Lights
</h3>
</div>
<div class="row">
<div class="col-md-6 grid-margin stretch-card">
<div class="card">
<div class="card-body" v-if="currentLight && currentLight.supportsColour">
<form class="forms-sample" @submit.prevent="processUpdate">
<div class="form-group">
<label for="light-list">Choose light</label>
<v-row>
<v-col cols="12" class="pa-12" sm="4" lg="4">
<v-skeleton-loader
v-if="lights.length===0"
class="mx-auto"
max-width="300"
type="list-item-avatar-three-line"
></v-skeleton-loader>
<v-card class="elevation-12" v-if="lights.length !== 0 && currentLight">
<v-list-item>
<v-list-item-content>
<v-list-item-title class="headline">Light Settings</v-list-item-title>
</v-list-item-content>
</v-list-item>
<v-card-text>
<v-select
label="name"
:options="lights"
:value="currentLight"
@input="light => onLightChange(light)"
label="Choose light"
item-text="name"
item-value="id"
:items="lights"
v-model="currentLight"
/>
</div>
<div class="form-group">
<label for="brightness">Brightness</label>
<input
type="range"
max="254"
class="form-control-range"
id="brightness"
<v-slider
@change="light => changeBrightness(currentLight)"
:max="254"
v-model="currentLight.brightness"
/>
</div>
<div class="form-group">
<label for="colour">Colour</label>
<compact-picker
v-model="currentLight.rgbColour"
label="Brightness"
></v-slider>
<v-row justify="space-around">
<v-color-picker
@input="changeColour"
></compact-picker>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
v-model="currentLight.rgbColour"
class="ma-2"
:swatches="swatches"
show-swatches
hide-mode-switch
></v-color-picker>
</v-row>
</v-card-text>
</v-card>
</v-col>
</v-row>
</template>
<script lang="ts">
@@ -58,6 +53,7 @@ var colors = require('vue-color');
import { Component, Vue } from 'vue-property-decorator';
import { lightsApi } from '@/api';
import { Light } from '@/models/interfaces';
import { debounce } from 'decko';
@Component({
components: {
@@ -65,11 +61,36 @@ import { Light } from '@/models/interfaces';
},
})
export default class Lights extends Vue {
error = '';
loading = true;
transition = 'scale-transition';
transitions = [
{
text: 'None',
value: undefined,
},
{
text: 'Fade Transition',
value: 'fade-transition',
},
{
text: 'Scale Transition',
value: 'scale-transition',
},
];
lights: Light[] = [];
currentLight: Light | null = null;
swatches = [
['#FF0000', '#AA0000', '#550000'],
['#FFFF00', '#AAAA00', '#555500'],
['#00FF00', '#00AA00', '#005500'],
['#00FFFF', '#00AAAA', '#005555'],
['#0000FF', '#0000AA', '#000055'],
];
async mounted() {
this.lights = await lightsApi.getLights();
this.currentLight = this.lights[0];
this.loading = false;
console.log('Lights', 'mounted', 'lights', this.lights);
}
@@ -79,26 +100,26 @@ export default class Lights extends Vue {
light.id,
parseInt(light.brightness.toString())
);
if (result) {
Vue.toasted.success('Brightness changed');
} else {
if (!result) {
Vue.toasted.error('Failed to set the brightness');
}
}
@debounce(1000)
async changeColour(value: any) {
console.log('Lights', 'changeColour', value);
if (this.currentLight != null) {
this.currentLight.rgbColour = value.hex;
this.currentLight.rgbColour = value;
const result = await lightsApi.changeColour(
this.currentLight.id,
this.currentLight.rgbColour
);
if (result) {
Vue.toasted.success('Colour changed');
} else {
if (!result) {
Vue.toasted.error('Failed to set the colour');
}
}
}
onLightChange(light: any): void {
console.log('Lights', 'onLightChange', light, this.currentLight);
this.currentLight = light;

View File

@@ -2,10 +2,11 @@ module.exports = {
pluginOptions: {
'style-resources-loader': {
preProcessor: 'scss',
patterns: []
}
patterns: [],
},
},
configureWebpack: {
devtool: "source-map"
}
}
devtool: 'source-map',
},
transpileDependencies: ['vuetify'],
};

View File

@@ -1051,6 +1051,11 @@
resolved "https://registry.yarnpkg.com/@types/jwt-decode/-/jwt-decode-2.2.1.tgz#afdf5c527fcfccbd4009b5fd02d1e18241f2d2f2"
integrity sha512-aWw2YTtAdT7CskFyxEX2K21/zSDStuf/ikI3yBqmwpwJF0pS+/IX5DWv+1UFffZIbruP6cnT9/LAJV1gFwAT1A==
"@types/lodash@^4.14.161":
version "4.14.161"
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.161.tgz#a21ca0777dabc6e4f44f3d07f37b765f54188b18"
integrity sha512-EP6O3Jkr7bXvZZSZYlsgt5DIjiGr0dXP1/jVEwVLTFgg0d+3lWVQkRavYVQszV7dYUwvg0B8R0MBDpcmXg7XIA==
"@types/mime@*":
version "2.0.3"
resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.3.tgz#c893b73721db73699943bfc3653b1deb7faa4a3a"
@@ -1133,13 +1138,6 @@
dependencies:
source-map "^0.6.1"
"@types/vue-select@^2.5.0":
version "2.5.0"
resolved "https://registry.yarnpkg.com/@types/vue-select/-/vue-select-2.5.0.tgz#b674ab3f37bb591e0c9f37b984a52342422f284f"
integrity sha512-dQh+ytU5dNTTD41Be6YkN1icu/VTaVe1ntcHktk5/OLuhVsDAketgXaILPEGx91Mi3c8Gj+f2Yg+JMW/9gwEuw==
dependencies:
vue ">=2.0.0"
"@types/webpack-dev-server@^3.11.0":
version "3.11.0"
resolved "https://registry.yarnpkg.com/@types/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#bcc3b85e7dc6ac2db25330610513f2228c2fcfb2"
@@ -2496,6 +2494,21 @@ check-types@^8.0.3:
resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552"
integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==
"chokidar@>=2.0.0 <4.0.0", chokidar@^3.3.0, chokidar@^3.4.1:
version "3.4.2"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d"
integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==
dependencies:
anymatch "~3.1.1"
braces "~3.0.2"
glob-parent "~5.1.0"
is-binary-path "~2.1.0"
is-glob "~4.0.1"
normalize-path "~3.0.0"
readdirp "~3.4.0"
optionalDependencies:
fsevents "~2.1.2"
chokidar@^2.1.8:
version "2.1.8"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917"
@@ -2515,21 +2528,6 @@ chokidar@^2.1.8:
optionalDependencies:
fsevents "^1.2.7"
chokidar@^3.3.0, chokidar@^3.4.1:
version "3.4.2"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d"
integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==
dependencies:
anymatch "~3.1.1"
braces "~3.0.2"
glob-parent "~5.1.0"
is-binary-path "~2.1.0"
is-glob "~4.0.1"
normalize-path "~3.0.0"
readdirp "~3.4.0"
optionalDependencies:
fsevents "~2.1.2"
chownr@^1.1.1, chownr@^1.1.2:
version "1.1.4"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
@@ -3222,6 +3220,11 @@ decamelize@^1.1.2, decamelize@^1.2.0:
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
decko@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decko/-/decko-1.2.0.tgz#fd43c735e967b8013306884a56fbe665996b6817"
integrity sha1-/UPHNelnuAEzBohKVvvmZZlraBc=
decode-uri-component@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
@@ -3346,6 +3349,11 @@ destroy@~1.0.4:
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
detect-libc@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
detect-node@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c"
@@ -4026,6 +4034,13 @@ faye-websocket@~0.11.1:
dependencies:
websocket-driver ">=0.5.1"
fibers@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/fibers/-/fibers-5.0.0.tgz#3a60e0695b3ee5f6db94e62726716fa7a59acc41"
integrity sha512-UpGv/YAZp7mhKHxDvC1tColrroGRX90sSvh8RMZV9leo+e5+EkRVgCEZPlmXeo3BUNQTZxUaVdLskq1Q2FyCPg==
dependencies:
detect-libc "^1.0.3"
figgy-pudding@^3.5.1:
version "3.5.2"
resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
@@ -4045,7 +4060,7 @@ file-entry-cache@^5.0.1:
dependencies:
flat-cache "^2.0.1"
file-loader@^4.2.0:
file-loader@^4.0.0, file-loader@^4.2.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af"
integrity sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA==
@@ -4960,6 +4975,11 @@ internal-ip@^4.3.0:
default-gateway "^4.2.0"
ipaddr.js "^1.9.0"
interpret@^1.0.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
invariant@^2.2.2, invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
@@ -5568,7 +5588,7 @@ loader-utils@^0.2.16:
json5 "^0.5.0"
object-assign "^4.0.1"
loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0:
loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.0, loader-utils@^1.2.3, loader-utils@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
@@ -5636,7 +5656,7 @@ lodash.uniq@^4.5.0:
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.3, lodash@~4.17.10:
lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.3, lodash@~4.17.10:
version "4.17.20"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
@@ -6255,6 +6275,14 @@ nth-check@^1.0.2, nth-check@~1.0.1:
dependencies:
boolbase "~1.0.0"
null-loader@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/null-loader/-/null-loader-3.0.0.tgz#3e2b6c663c5bda8c73a54357d8fa0708dc61b245"
integrity sha512-hf5sNLl8xdRho4UPBOOeoIwT3WhjYcMUQm0zj44EhD6UscMAz72o2udpoDFBgykucdEDGIcd6SXbc/G6zssbzw==
dependencies:
loader-utils "^1.2.3"
schema-utils "^1.0.0"
num2fraction@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
@@ -7375,6 +7403,13 @@ readdirp@~3.4.0:
dependencies:
picomatch "^2.2.1"
rechoir@^0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=
dependencies:
resolve "^1.1.6"
redent@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
@@ -7553,7 +7588,7 @@ resolve-url@^0.2.1:
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
resolve@^1.10.0, resolve@^1.3.2, resolve@^1.8.1:
resolve@^1.1.6, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.8.1:
version "1.17.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==
@@ -7680,6 +7715,13 @@ sass-loader@^10.0.1:
schema-utils "^2.7.0"
semver "^7.3.2"
sass@^1.19.0:
version "1.26.10"
resolved "https://registry.yarnpkg.com/sass/-/sass-1.26.10.tgz#851d126021cdc93decbf201d1eca2a20ee434760"
integrity sha512-bzN0uvmzfsTvjz0qwccN1sPm2HxxpNI/Xa+7PlUEMS+nQvbyuEK7Y0qFqxlPHhiNHb1Ze8WQJtU31olMObkAMw==
dependencies:
chokidar ">=2.0.0 <4.0.0"
sax@~1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
@@ -7738,7 +7780,7 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.3.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
semver@^7.2.1, semver@^7.3.2:
semver@^7.1.2, semver@^7.2.1, semver@^7.3.2:
version "7.3.2"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
@@ -7864,6 +7906,15 @@ shell-quote@^1.6.1:
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2"
integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==
shelljs@^0.8.3:
version "0.8.4"
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2"
integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==
dependencies:
glob "^7.0.0"
interpret "^1.0.0"
rechoir "^0.6.2"
signal-exit@^3.0.0, signal-exit@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
@@ -8923,6 +8974,15 @@ vue-cli-plugin-style-resources-loader@~0.1.4:
resolved "https://registry.yarnpkg.com/vue-cli-plugin-style-resources-loader/-/vue-cli-plugin-style-resources-loader-0.1.4.tgz#6087a86132ea8125aa89e5f8e0a978fbc8cf6f59"
integrity sha512-aK2TyVThZO6oVPZJpCckha8ALcg1RXKYLNqtuy1fNv+24x6zGWKpSK+FHAo47B7yeRlFS9DbKo+cvUFMqWaZ7Q==
vue-cli-plugin-vuetify@~2.0.7:
version "2.0.7"
resolved "https://registry.yarnpkg.com/vue-cli-plugin-vuetify/-/vue-cli-plugin-vuetify-2.0.7.tgz#fcb4f1655e7c9199ee40dcbf6465e2355fd074d5"
integrity sha512-4riK5bzyvkZ4CxpQk/Vl6z8n8tmJUhuxh+k8xc/MZRdCt9RxAm3G4SxcEweroqKGXg+CRRfhqysaEQVtd4D40Q==
dependencies:
null-loader "^3.0.0"
semver "^7.1.2"
shelljs "^0.8.3"
vue-color@^2.7.1:
version "2.7.1"
resolved "https://registry.yarnpkg.com/vue-color/-/vue-color-2.7.1.tgz#ca035109ea0010f0d60b889b97d63d37ac712f2d"
@@ -8985,11 +9045,6 @@ vue-router@^3.2.0:
resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.4.3.tgz#fa93768616ee338aa174f160ac965167fa572ffa"
integrity sha512-BADg1mjGWX18Dpmy6bOGzGNnk7B/ZA0RxuA6qedY/YJwirMfKXIDzcccmHbQI0A6k5PzMdMloc0ElHfyOoX35A==
vue-select@^3.10.8:
version "3.10.8"
resolved "https://registry.yarnpkg.com/vue-select/-/vue-select-3.10.8.tgz#5d0839cba228a9a5efa1a88e5436840eb3fd0c7a"
integrity sha512-PnjtZWCTiSr04bs8ctPIiU41qnBK+oh/SOe6Pb4gElMMxofDFwUxiUe++mz0+84aTy4zrleGxtvVVyWbiPYBiw==
vue-style-loader@^4.1.0, vue-style-loader@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.2.tgz#dedf349806f25ceb4e64f3ad7c0a44fba735fcf8"
@@ -9016,11 +9071,24 @@ vue-toasted@^1.1.28:
resolved "https://registry.yarnpkg.com/vue-toasted/-/vue-toasted-1.1.28.tgz#dbabb83acc89f7a9e8765815e491d79f0dc65c26"
integrity sha512-UUzr5LX51UbbiROSGZ49GOgSzFxaMHK6L00JV8fir/CYNJCpIIvNZ5YmS4Qc8Y2+Z/4VVYRpeQL2UO0G800Raw==
vue@>=2.0.0, vue@^2.6.11:
vue@^2.6.11:
version "2.6.12"
resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.12.tgz#f5ebd4fa6bd2869403e29a896aed4904456c9123"
integrity sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==
vuetify-loader@^1.3.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/vuetify-loader/-/vuetify-loader-1.6.0.tgz#05df0805b3ab2ff0de198109d34f9da3f69da667"
integrity sha512-1bx3YeZ712dT1+QMX+XSFlP0O5k5O5Ui9ysBBmUZ9bWkAEHWZJQI9soI+qG5qmeFxUC0L9QYMCIKP0hOL/pf3Q==
dependencies:
file-loader "^4.0.0"
loader-utils "^1.2.0"
vuetify@^2.2.11:
version "2.3.10"
resolved "https://registry.yarnpkg.com/vuetify/-/vuetify-2.3.10.tgz#c8cbc77ee1224b5a132f501a3762dee6d8c95a06"
integrity sha512-KzL/MhZ7ajubm9kwbdCoA/cRV50RX+a5Hcqiwt7Am1Fni2crDtl2no05UNwKroTfscrYYf07gq3WIFSurPsnCA==
vuex@^3.5.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.5.1.tgz#f1b8dcea649bc25254cf4f4358081dbf5da18b3d"