feat: login component, icon svg symbols, project structure

This commit is contained in:
NGPixel 2017-12-30 02:00:49 -05:00
parent 2d5a3203db
commit 8b30d31457
37 changed files with 863 additions and 23300 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 297 KiB

View File

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="80" height="105" viewBox="0 0 80 105">
<g fill-rule="evenodd">
<g id="death-star" fill="#000000" fill-opacity="0.05">
<path d="M20 10a5 5 0 0 1 10 0v50a5 5 0 0 1-10 0V10zm15 35a5 5 0 0 1 10 0v50a5 5 0 0 1-10 0V45zM20 75a5 5 0 0 1 10 0v20a5 5 0 0 1-10 0V75zm30-65a5 5 0 0 1 10 0v50a5 5 0 0 1-10 0V10zm0 65a5 5 0 0 1 10 0v20a5 5 0 0 1-10 0V75zM35 10a5 5 0 0 1 10 0v20a5 5 0 0 1-10 0V10zM5 45a5 5 0 0 1 10 0v50a5 5 0 0 1-10 0V45zm0-35a5 5 0 0 1 10 0v20a5 5 0 0 1-10 0V10zm60 35a5 5 0 0 1 10 0v50a5 5 0 0 1-10 0V45zm0-35a5 5 0 0 1 10 0v20a5 5 0 0 1-10 0V10z" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 658 B

View File

@ -1,3 +1,3 @@
<svg width='84' height='48' viewBox='0 0 84 48' xmlns='http://www.w3.org/2000/svg'>
<path d='M0 0h12v6H0V0zm28 8h12v6H28V8zm14-8h12v6H42V0zm14 0h12v6H56V0zm0 8h12v6H56V8zM42 8h12v6H42V8zm0 16h12v6H42v-6zm14-8h12v6H56v-6zm14 0h12v6H70v-6zm0-16h12v6H70V0zM28 32h12v6H28v-6zM14 16h12v6H14v-6zM0 24h12v6H0v-6zm0 8h12v6H0v-6zm14 0h12v6H14v-6zm14 8h12v6H28v-6zm-14 0h12v6H14v-6zm28 0h12v6H42v-6zm14-8h12v6H56v-6zm0-8h12v6H56v-6zm14 8h12v6H70v-6zm0 8h12v6H70v-6zM14 24h12v6H14v-6zm14-8h12v6H28v-6zM14 8h12v6H14V8zM0 8h12v6H0V8z' fill='#039be5' fill-opacity='0.4' fill-rule='evenodd'/>
<path d='M0 0h12v6H0V0zm28 8h12v6H28V8zm14-8h12v6H42V0zm14 0h12v6H56V0zm0 8h12v6H56V8zM42 8h12v6H42V8zm0 16h12v6H42v-6zm14-8h12v6H56v-6zm14 0h12v6H70v-6zm0-16h12v6H70V0zM28 32h12v6H28v-6zM14 16h12v6H14v-6zM0 24h12v6H0v-6zm0 8h12v6H0v-6zm14 0h12v6H14v-6zm14 8h12v6H28v-6zm-14 0h12v6H14v-6zm28 0h12v6H42v-6zm14-8h12v6H56v-6zm0-8h12v6H56v-6zm14 8h12v6H70v-6zm0 8h12v6H70v-6zM14 24h12v6H14v-6zm14-8h12v6H28v-6zM14 8h12v6H14V8zM0 8h12v6H0V8z' fill='#000000' fill-opacity='0.05' fill-rule='evenodd'/>
</svg>

Before

Width:  |  Height:  |  Size: 586 B

After

Width:  |  Height:  |  Size: 587 B

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,5 @@
'use strict'
require('./scss/app.scss')
require('./js/compatibility.js')
require('./js/app.js')

View File

@ -12,7 +12,7 @@ import { ApolloClient } from 'apollo-client'
import { HttpLink } from 'apollo-link-http'
import { InMemoryCache } from 'apollo-cache-inmemory'
import store from './store'
import icons from '../svg/nc-icons.svg'
import icons from '../svg/icons.svg'
// ====================================
// Load Modules
@ -47,6 +47,7 @@ import modalDiscardPageComponent from './components/modal-discard-page.vue'
import modalMovePageComponent from './components/modal-move-page.vue'
import modalProfile2faComponent from './components/modal-profile-2fa.vue'
import modalUpgradeSystemComponent from './components/modal-upgrade-system.vue'
import navigatorComponent from './components/navigator.vue'
import pageLoaderComponent from './components/page-loader.vue'
import searchComponent from './components/search.vue'
import toggleComponent from './components/toggle.vue'
@ -127,6 +128,7 @@ Vue.component('modalDiscardPage', modalDiscardPageComponent)
Vue.component('modalMovePage', modalMovePageComponent)
Vue.component('modalProfile2fa', modalProfile2faComponent)
Vue.component('modalUpgradeSystem', modalUpgradeSystemComponent)
Vue.component('navigator', navigatorComponent)
Vue.component('pageLoader', pageLoaderComponent)
Vue.component('search', searchComponent)
Vue.component('setup', setupComponent)

View File

@ -0,0 +1,37 @@
// =======================================
// Intl polyfill
// =======================================
// Requirement: Safari 9 and below
if (!global.Intl) {
require('intl')
require('intl/locale-data/jsonp/en')
require('intl/locale-data/jsonp/fr')
}
// =======================================
// Promise polyfill
// =======================================
// Requirement: IE 11 and below
if (!window.Promise) {
window.Promise = require('bluebird')
}
// =======================================
// Array.from polyfill
// =======================================
// Requirement: IE 11 and below
if (!Array.from) {
require('./polyfills/array-from')
}
// =======================================
// Fetch polyfill
// =======================================
// Requirement: Safari 9 and below, IE 11 and below
if (!window.fetch) {
require('whatwg-fetch')
}

View File

@ -1,23 +1,18 @@
<template lang="pug">
.login(:class='{ "is-error": error }')
.login-container(:class='{ "is-expanded": strategies.length > 1 }')
.login-error(v-if='error')
strong
i.icon-warning-outline
| {{ error.title }}
span {{ error.message }}
.login-providers(v-show='strategies.length > 1')
button(v-for='strategy in strategies', :class='{ "is-active": strategy.key === selectedStrategy }', @click='selectStrategy(strategy.key, strategy.useForm)', :title='strategy.title')
em(v-html='strategy.icon')
span {{ strategy.title }}
.login-providers-fill
.login-frame
h1 {{ siteTitle }}
h2 {{ $t('auth:loginrequired') }}
form(method='post', action='/login')
input#login-user(type='text', name='email', :placeholder='$t("auth:fields.emailuser")')
input#login-pass(type='password', name='password', :placeholder='$t("auth:fields.password")')
button.button.is-light-blue.is-fullwidth(type='submit')
span {{ $t('auth:actions.login') }}
input(type='text', name='email', :placeholder='$t("auth:fields.emailuser")')
input(type='password', name='password', :placeholder='$t("auth:fields.password")')
button.button.is-orange.is-fullwidth(@click='login')
span {{ $t('auth:actions.login') }}
.login-copyright
span {{ $t('footer.poweredby') }}
a(href='https://wiki.js.org', rel='external', title='Wiki.js') Wiki.js
@ -62,9 +57,17 @@ export default {
}).catch(err => {
console.error(err)
})
},
login() {
this.$store.dispatch('alert', {
style: 'error',
icon: 'gg-warning',
msg: 'Email or password is invalid'
})
}
},
mounted() {
this.$store.commit('navigator/subtitleStatic', 'Login')
this.refreshStrategies()
}
}

View File

@ -0,0 +1,69 @@
<template lang="pug">
.navigator
.navigator-bar
.navigator-fab
.navigator-fab-button(@click='toggleMainMenu')
svg.icons.is-24(role='img')
title Navigation
use(xlink:href='#gg-apps-grid')
.navigator-title
h1 {{ siteTitle }}
.navigator-subtitle(:class='subtitleClass')
svg.icons.is-24(role='img', v-if='subtitleIcon')
title {{subtitleText}}
use(:xlink:href='subtitleIconClass')
h2 {{subtitleText}}
.navigator-action
.navigator-action-item
svg.icons.is-32(role='img')
title User
use(xlink:href='#nc-user-circle')
.navigator-row
.navigator-nav
</template>
<script>
/* global CONSTANTS, graphQL, siteConfig */
import { mapState } from 'vuex'
export default {
name: 'navigator',
data() {
return { }
},
computed: {
...mapState('navigator', [
'subtitleShown',
'subtitleStyle',
'subtitleText',
'subtitleIcon'
]),
siteTitle() {
return siteConfig.title
},
subtitleClass() {
return {
'is-active': this.subtitleShown,
'is-error': this.subtitleStyle === 'error',
'is-warning': this.subtitleStyle === 'warning',
'is-success': this.subtitleStyle === 'success',
'is-info': this.subtitleStyle === 'info'
}
},
subtitleIconClass() { return '#' + this.subtitleIcon }
},
methods: {
toggleMainMenu() {
this.$store.dispatch('navigator/alert', {
style: 'success',
icon: 'nc-check-simple',
msg: 'Changes were saved successfully!'
})
}
},
mounted() {
}
}
</script>

View File

@ -0,0 +1,78 @@
// Production steps of ECMA-262, Edition 6, 22.1.2.1
if (!Array.from) {
Array.from = (function () {
var toStr = Object.prototype.toString
var isCallable = function (fn) {
return typeof fn === 'function' || toStr.call(fn) === '[object Function]'
}
var toInteger = function (value) {
var number = Number(value)
if (isNaN(number)) { return 0 }
if (number === 0 || !isFinite(number)) { return number }
return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number))
}
var maxSafeInteger = Math.pow(2, 53) - 1
var toLength = function (value) {
var len = toInteger(value)
return Math.min(Math.max(len, 0), maxSafeInteger)
}
// The length property of the from method is 1.
return function from (arrayLike/*, mapFn, thisArg */) {
// 1. Let C be the this value.
var C = this
// 2. Let items be ToObject(arrayLike).
var items = Object(arrayLike)
// 3. ReturnIfAbrupt(items).
if (arrayLike == null) {
throw new TypeError('Array.from requires an array-like object - not null or undefined')
}
// 4. If mapfn is undefined, then let mapping be false.
var mapFn = arguments.length > 1 ? arguments[1] : void undefined
var T
if (typeof mapFn !== 'undefined') {
// 5. else
// 5. a If IsCallable(mapfn) is false, throw a TypeError exception.
if (!isCallable(mapFn)) {
throw new TypeError('Array.from: when provided, the second argument must be a function')
}
// 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.
if (arguments.length > 2) {
T = arguments[2]
}
}
// 10. Let lenValue be Get(items, "length").
// 11. Let len be ToLength(lenValue).
var len = toLength(items.length)
// 13. If IsConstructor(C) is true, then
// 13. a. Let A be the result of calling the [[Construct]] internal method
// of C with an argument list containing the single item len.
// 14. a. Else, Let A be ArrayCreate(len).
var A = isCallable(C) ? Object(new C(len)) : new Array(len)
// 16. Let k be 0.
var k = 0
// 17. Repeat, while k < len… (also steps a - h)
var kValue
while (k < len) {
kValue = items[k]
if (mapFn) {
A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k)
} else {
A[k] = kValue
}
k += 1
}
// 18. Let putStatus be Put(A, "length", len, true).
A.length = len
// 20. Return A.
return A
}
}())
}

View File

@ -1,7 +1,6 @@
import Vue from 'vue'
import Vuex from 'vuex'
import alert from './modules/alert'
import anchor from './modules/anchor'
import editor from './modules/editor'
import editorCodeblock from './modules/editor-codeblock'
@ -15,6 +14,7 @@ import modalDiscardPage from './modules/modal-discard-page'
import modalMovePage from './modules/modal-move-page'
import modalProfile2fa from './modules/modal-profile-2fa'
import modalUpgradeSystem from './modules/modal-upgrade-system'
import navigator from './modules/navigator'
import pageLoader from './modules/page-loader'
Vue.use(Vuex)
@ -27,12 +27,12 @@ export default new Vuex.Store({
loadingChange: (state, loadingState) => { state.loading = loadingState }
},
actions: {
alert({ dispatch }, opts) { dispatch('navigator/alert', opts) },
startLoading({ commit }) { commit('loadingChange', true) },
stopLoading({ commit }) { commit('loadingChange', false) }
},
getters: {},
modules: {
alert,
anchor,
editor,
editorCodeblock,
@ -46,6 +46,7 @@ export default new Vuex.Store({
modalMovePage,
modalProfile2fa,
modalUpgradeSystem,
navigator,
pageLoader
}
})

View File

@ -1,32 +0,0 @@
'use strict'
import debounce from 'lodash/debounce'
export default {
state: {
shown: false,
style: 'green',
icon: 'check',
msg: ''
},
getters: {},
mutations: {
alertChange: (state, opts) => {
state.shown = (opts.shown === true)
state.style = opts.style || 'green'
state.icon = opts.icon || 'check'
state.msg = opts.msg || ''
}
},
actions: {
alert({ commit, dispatch }, opts) {
opts.shown = true
commit('alertChange', opts)
dispatch('alertDismiss')
},
alertDismiss: debounce(({ commit }) => {
let opts = { shown: false }
commit('alertChange', opts)
}, 3000)
}
}

View File

@ -0,0 +1,40 @@
import debounce from 'lodash/debounce'
export default {
namespaced: true,
state: {
subtitleShown: false,
subtitleStyle: '',
subtitleIcon: false,
subtitleText: '',
subtitleStatic: 'Welcome'
},
getters: {},
mutations: {
subtitleChange (state, opts) {
state.subtitleShown = (opts.shown === true)
state.subtitleStyle = opts.style || ''
state.subtitleIcon = opts.icon || false
state.subtitleText = opts.msg || ''
},
subtitleStatic (state, text) {
state.subtitleText = text
state.subtitleStatic = text
}
},
actions: {
alert ({ commit, dispatch }, opts) {
opts.shown = true
commit('subtitleChange', opts)
dispatch('alertDismiss')
},
alertDismiss: debounce(({ commit, state }) => {
let opts = {
shown: false,
style: state.subtitleStyle,
msg: state.subtitleStatic
}
commit('subtitleChange', opts)
}, 5000)
}
}

View File

@ -3,7 +3,7 @@
$primary: 'indigo';
@import "base/variables";
@import "base/colors";
@import "base/material";
@import "base/reset";
@import "base/mixins";
@import "base/fonts";
@ -21,9 +21,11 @@ $primary: 'indigo';
@import 'components/grid';
@import 'components/hero';
@import 'components/history';
@import 'components/login';
@import 'components/markdown-content';
@import 'components/modal';
@import 'components/nav';
@import 'components/navigator';
@import 'components/panel';
@import 'components/search';
@import 'components/setup';
@ -32,9 +34,7 @@ $primary: 'indigo';
@import 'components/toggle';
@import 'components/typography';
@import 'libs/nucleo-icons';
@import 'libs/twemoji-awesome';
@import 'libs/jquery-contextmenu';
@import 'node_modules/highlight.js/styles/atom-one-dark';
@import 'node_modules/simplemde/dist/simplemde.min';
@import 'node_modules/diff2html/dist/diff2html.min';
@ -45,6 +45,4 @@ $primary: 'indigo';
@import 'layout/_loader';
@import 'layout/_rtl';
@import 'pages/login';
@import 'base/print';

View File

@ -12,12 +12,11 @@ html {
}
#app {
padding-bottom: 67px;
position: relative;
min-height: 100%;
&.is-fullscreen {
width: 100vw;
//width: 100vw;
height: 100vh;
}
}

View File

@ -13,7 +13,7 @@
fill: none;
}
@each $size in 16,18,20,24,48,64,96,128 {
@each $size in 16,18,20,24,32,48,64,96,128 {
&.is-#{$size} {
width: #{$size}px;
height: #{$size}px;

View File

@ -325,3 +325,27 @@ $material-colors: (
@function mc($color-name, $color-variant: '500') {
@return material-color($color-name, $color-variant);
}
@mixin md-elevation-0 {
box-shadow: none !important;
}
@mixin md-elevation-1 {
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2);
}
@mixin md-elevation-2 {
box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
}
@mixin md-elevation-3 {
box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.3);
}
@mixin md-elevation-4 {
box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.3);
}
@mixin md-elevation-5 {
box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.3);
}

View File

@ -1,16 +1,22 @@
.login {
background-color: #0288d1;
background-color: mc('blue', '800');
background-image: url('../svg/login-bg-motif.svg');
background-repeat: repeat;
background-size: 30%;
background-size: 200px;
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
animation: loginBgReveal 20s linear infinite;
&.is-error {
background-image: linear-gradient(to right, mc('red', '400'), mc('red', '600'));
@include keyframes(loginBgReveal) {
0% {
background-position-y: 0;
}
100% {
background-position-y: -800px;
}
}
&::before {
@ -23,6 +29,20 @@
left: 0;
width: 100vw;
height: 100vh;
@include until($tablet) {
display: none;
}
}
&::after {
content: '';
position: absolute;
background-image: linear-gradient(to bottom, rgba(mc('blue', '800'), 1) 0%, rgba(mc('blue', '800'), 0) 100%);
top: 0;
left: 0;
width: 100vw;
height: 25vh;
}
&-container {
@ -32,6 +52,7 @@
align-items: stretch;
box-shadow: 0 14px 28px rgba(0,0,0,0.2);
border-radius: 6px;
animation: zoomIn .5s ease;
&.is-expanded {
width: 650px;
@ -39,45 +60,23 @@
.login-frame {
border-radius: 0 6px 6px 0;
border-left: none;
@include until($tablet) {
border-radius: 0;
}
}
}
@include until($tablet) {
width: 350px;
width: 100%;
border-radius: 0;
&.is-expanded {
width: 400px;
width: 100%;
}
}
}
&-error {
position: absolute;
bottom: 105%;
width: 100%;
min-height: 50px;
background-image: radial-gradient(ellipse at top left, rgba(255,255,255,.9) 0%,rgba(255,255,255,.8) 100%);
box-shadow: 0 5px 10px rgba(0,0,0,0.2);
border-radius: 6px;
color: mc('red', '800');
display: flex;
justify-content: center;
align-items: center;
padding: 1rem;
strong {
font-weight: 600;
text-transform: uppercase;
display: block;
padding: 0 1rem 0 0;
border-right: 1px solid mc('red', '200');
}
span {
padding: 0 0 0 1rem;
display: block;
}
}
&-providers {
display: flex;
flex-direction: column;
@ -90,15 +89,18 @@
@include until($tablet) {
width: 50px;
border-radius: 0;
}
button {
flex: 1 1;
flex: 0 1 50px;
padding: 5px 15px;
border: none;
color: #FFF;
background: linear-gradient(to right, rgba(mc('light-blue', '800'), .7), rgba(mc('light-blue', '800'), 1));
border-top: 1px solid rgba(mc('light-blue', '900'), .5);
// background: linear-gradient(to right, rgba(mc('light-blue', '800'), .7), rgba(mc('light-blue', '800'), 1));
// border-top: 1px solid rgba(mc('light-blue', '900'), .5);
background: linear-gradient(to right, rgba(0,0,0, .5), rgba(0,0,0, .7));
border-top: 1px solid rgba(0,0,0, .2);
font-family: $core-font-standard;
font-weight: 600;
text-align: left;
@ -117,7 +119,7 @@
}
&:hover {
background-color: mc('light-blue', '900');
background-color: rgba(0,0,0, .4);
}
&:first-child {
@ -130,7 +132,7 @@
&.is-active {
background-image: linear-gradient(to right, rgba(255,255,255,1) 0%,rgba(255,255,255,.77) 100%);
color: mc('light-blue', '700');
color: mc('grey', '800');
cursor: default;
&:hover {
@ -138,7 +140,7 @@
}
svg path {
fill: mc('light-blue', '800');
fill: mc('grey', '800');
}
}
@ -177,6 +179,11 @@
}
}
}
&-fill {
flex: 1 1 0;
background: linear-gradient(to right, rgba(mc('light-blue', '800'), .7), rgba(mc('light-blue', '800'), 1));
}
}
&-frame {
@ -192,7 +199,9 @@
text-align: center;
@include until($tablet) {
width: 350px;
width: 100%;
border-radius: 0;
border: none;
}
h1 {
@ -220,7 +229,7 @@
input[type=text], input[type=password] {
width: 100%;
border: 1px solid #FFF;
border: 1px solid rgba(mc('light-blue','500'), .5);
border-radius: 3px;
background-color: rgba(255,255,255,.9);
box-shadow: inset 0 0 0 3px rgba(255,255,255, .25);
@ -237,12 +246,22 @@
outline: none;
border-color: mc('light-blue','500');
background-color: rgba(255,255,255,1);
box-shadow: inset 0 0 0 3px rgba(mc('light-blue','500'), .25);
box-shadow: inset 0 0 8px rgba(mc('light-blue','500'), .5);
color: mc('light-blue', '800');
}
}
.button {
background-image: linear-gradient(to top, mc('deep-orange', '400') 0%, mc('deep-orange', '400') 50%, mc('orange', '500') 100%);
background-repeat: no-repeat;
background-size: 100% 200%;
&:hover {
background-position-y: 100%;
}
}
}
&-copyright {
@ -259,8 +278,16 @@
a {
font-weight: 600;
color: mc('light-blue', '500');
color: mc('blue', '500');
margin-left: .25rem;
@include until($tablet) {
color: mc('blue', '200');
}
}
@include until($tablet) {
color: mc('blue', '50');
}
}

View File

@ -0,0 +1,133 @@
.navigator {
position: fixed;
top: 0;
left: 0;
width: 100%;
&-bar {
display: flex;
justify-content: flex-start;
align-items: stretch;
background-color: rgba(mc('grey', '900'), .7);
}
&-fab {
&-button {
width: 50px;
height: 50px;
background-color: #FFF;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
transition: all .4s ease;
svg use {
transition: all .4s ease;
}
&:hover {
svg use {
color: mc('blue', '500');
fill: mc('blue', '500');
}
}
}
}
&-title {
background-image: linear-gradient(to bottom right, mc('blue', '500') 0%, mc('blue', '700') 50%, mc('blue', '900') 100%);
background-size: 200%;
background-repeat: no-repeat;
padding: 0 1rem;
display: inline-flex;
align-items: center;
justify-content: center;
transition: all .4s ease;
cursor: pointer;
&:hover {
background-position-y: -50px;
}
h1 {
font-size: 1.2rem;
color: #FFF;
font-weight: 500;
}
}
&-subtitle {
background-repeat: no-repeat;
background-position-x: -100vw;
color: #FFF;
flex: 1 1 auto;
display: flex;
justify-content: flex-start;
align-items: center;
padding: 0 1rem;
transition: background-position-x 1s ease;
&.is-error {
background-image: linear-gradient(to right, rgba(mc('red', '500'), 1), rgba(mc('red', '500'), 0));
}
&.is-warning {
background-image: linear-gradient(to right, rgba(mc('orange', '500'), 1), rgba(mc('orange', '500'), 0));
}
&.is-success {
background-image: linear-gradient(to right, rgba(mc('green', '500'), 1), rgba(mc('green', '500'), 0));
}
&.is-info {
background-image: linear-gradient(to right, rgba(mc('blue', '500'), 1), rgba(mc('blue', '500'), 0));
}
&.is-active {
background-position-x: 0;
}
svg {
margin-right: .5rem;
animation: flash 1s linear;
use {
color: #FFF;
fill: #FFF;
stroke: #FFF;
transition: all .4s ease;
}
}
h2 {
font-size: 1rem;
font-weight: 400;
}
}
&-action {
display: flex;
justify-content: flex-end;
align-items: stretch;
&-item {
display: flex;
justify-content: center;
align-items: center;
width: 50px;
cursor: pointer;
svg use {
color: #FFF;
fill: #FFF;
transition: all .4s ease;
}
&:hover {
svg use {
color: mc('blue', '500');
fill: mc('blue', '500');
}
}
}
}
}

View File

@ -1,131 +0,0 @@
@charset "UTF-8";
/*!
* jQuery contextMenu - Plugin for simple contextMenu handling
*
* Version: v2.2.5-dev
*
* Authors: Björn Brala (SWIS.nl), Rodney Rehm, Addy Osmani (patches for FF)
* Web: http://swisnl.github.io/jQuery-contextMenu/
*
* Copyright (c) 2011-2016 SWIS BV and contributors
*
* Licensed under
* MIT License http://www.opensource.org/licenses/mit-license
*
* Date: 2016-08-27T11:09:08.919Z
*/
.context-menu-icon {
display: list-item;
font-family: inherit;
}
.context-menu-icon::before {
position: absolute;
top: 50%;
left: 0;
width: 2em;
font-family: FontAwesome;
font-size: 14px;
font-style: normal;
font-weight: normal;
line-height: 1;
color: mc('blue', '500');
text-align: center;
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
-o-transform: translateY(-50%);
transform: translateY(-50%);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.context-menu-icon.context-menu-hover:before {
color: #fff;
}
.context-menu-icon.context-menu-disabled::before {
color: #bbb;
}
.context-menu-list {
position: absolute;
display: inline-block;
min-width: 13em;
max-width: 26em;
padding: 0 0;
margin: .3em;
font-family: inherit;
font-size: 14px;
list-style-type: none;
background: #fff;
border: 1px solid mc('blue', '500');
border-radius: .2em;
-webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, .25);
box-shadow: 0 2px 5px rgba(0, 0, 0, .25);
}
.context-menu-item {
position: relative;
padding: 7px 2em;
color: #69707a;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
background-color: #fff;
font-size: 14px;
text-align: left;
}
.context-menu-separator {
padding: 0;
margin: .35em 0;
border-bottom: 1px solid #e6e6e6;
}
.context-menu-item.context-menu-hover {
color: #fff;
cursor: pointer;
background-color: mc('blue', '500');
}
.context-menu-item.context-menu-disabled {
color: #bbb;
cursor: default;
background-color: #fff;
}
.context-menu-input.context-menu-hover {
cursor: default;
}
.context-menu-submenu:after {
position: absolute;
top: 50%;
right: .5em;
z-index: 1;
width: 0;
height: 0;
content: '';
border-color: transparent transparent transparent #2f2f2f;
border-style: solid;
border-width: .25em 0 .25em .25em;
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
-o-transform: translateY(-50%);
transform: translateY(-50%);
}
.context-menu-item > .context-menu-list {
top: .3em;
/* re-positioned by js */
right: -.3em;
display: none;
}
.context-menu-item.context-menu-visible > .context-menu-list {
display: block;
}
.context-menu-accesskey {
text-decoration: underline;
}

File diff suppressed because it is too large Load Diff

361
client/svg/icons.svg Normal file
View File

@ -0,0 +1,361 @@
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="nc-check-simple" viewBox="0 0 64 64">
<g>
<g class="nc-icon-wrapper">
<polygon fill="none" stroke="currentColor" stroke-linecap="square" stroke-miterlimit="10" points="24,54 4,34 12,26 24,38 52,10 60,18 " stroke-linejoin="miter"/>
</g>
</g>
</symbol>
<symbol id="nc-world-2" viewBox="0 0 64 64">
<g>
<g class="nc-icon-wrapper">
<path data-cap="butt" data-color="color-2" fill="none" stroke-miterlimit="10" d="M9.6,12 c5.5,7.3,12.5,10,22.4,10c9.8,0,16.9-2.7,22.4-10" stroke-linejoin="miter" stroke-linecap="butt"/>
<path data-cap="butt" data-color="color-2" fill="none" stroke-miterlimit="10" d="M9.6,52 c5.5-7.3,12.5-10,22.4-10c9.8,0,16.9,2.7,22.4,10" stroke-linejoin="miter" stroke-linecap="butt"/>
<path data-cap="butt" data-color="color-2" fill="none" stroke-miterlimit="10" d="M32,62c10.6-5.1,16-16.6,16-30 S42.6,7.1,32,2" stroke-linejoin="miter" stroke-linecap="butt"/>
<path data-cap="butt" data-color="color-2" fill="none" stroke-miterlimit="10" d="M32,62c-10.6-5.1-16-16.6-16-30 S21.4,7.1,32,2" stroke-linejoin="miter" stroke-linecap="butt"/>
<polyline data-cap="butt" data-color="color-2" fill="none" stroke-miterlimit="10" points="32,62 32,59.3 32,4.7 32,2 " stroke-linejoin="miter" stroke-linecap="butt"/>
<line data-cap="butt" data-color="color-2" fill="none" stroke-miterlimit="10" x1="2" y1="32" x2="62" y2="32" stroke-linejoin="miter" stroke-linecap="butt"/>
<circle fill="none" stroke="currentColor" stroke-linecap="square" stroke-miterlimit="10" cx="32" cy="32" r="30" stroke-linejoin="miter"/>
</g>
</g>
</symbol>
<symbol id="nc-webpage-2" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<path fill="#E6E6E6" d="M45,2H3C1.89545,2,1,2.89539,1,4v3h46V4C47,2.89539,46.10455,2,45,2z"/>
<rect x="1" y="7" fill="#43A6DD" width="46" height="12"/>
<path fill="#E6E6E6" d="M16,19v27h29c1.10455,0,2-0.89545,2-2V19H16z"/>
<path fill="#444444" d="M1,19v25c0,1.10455,0.89545,2,2,2h13V19H1z"/>
<circle fill="#E6E6E6" cx="8" cy="13" r="3"/>
<path fill="#E6E6E6" d="M42,14h-4c-0.55225,0-1-0.44727-1-1s0.44775-1,1-1h4c0.55225,0,1,0.44727,1,1S42.55225,14,42,14z"/>
<path fill="#E6E6E6" d="M33,14h-9c-0.55225,0-1-0.44727-1-1s0.44775-1,1-1h9c0.55225,0,1,0.44727,1,1S33.55225,14,33,14z"/>
<path fill="#B3B3B3" d="M28.90455,36h-7.80911C20.49045,36,20,35.50955,20,34.90456v-9.80911C20,24.49045,20.49045,24,21.09545,24 h7.80911C29.50955,24,30,24.49045,30,25.09545v9.80911C30,35.50955,29.50955,36,28.90455,36z"/>
<path fill="#B3B3B3" d="M42,26h-8c-0.55225,0-1-0.44727-1-1s0.44775-1,1-1h8c0.55225,0,1,0.44727,1,1S42.55225,26,42,26z"/>
<path fill="#B3B3B3" d="M42,31h-8c-0.55225,0-1-0.44727-1-1s0.44775-1,1-1h8c0.55225,0,1,0.44727,1,1S42.55225,31,42,31z"/>
<path fill="#B3B3B3" d="M42,36h-8c-0.55225,0-1-0.44727-1-1s0.44775-1,1-1h8c0.55225,0,1,0.44727,1,1S42.55225,36,42,36z"/>
<path fill="#B3B3B3" d="M42,41H21c-0.55225,0-1-0.44727-1-1s0.44775-1,1-1h21c0.55225,0,1,0.44727,1,1S42.55225,41,42,41z"/>
</g>
</g>
</symbol>
<symbol id="nc-square-remove-12" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<path fill="#E86C60" d="M45,1H3C1.89543,1,1,1.89543,1,3v42c0,1.10457,0.89543,2,2,2h42c1.10457,0,2-0.89543,2-2V3 C47,1.89543,46.10457,1,45,1z"/>
<path fill="#FFFFFF" d="M34.29289,30.29289L28,24l6.29289-6.29289c0.39053-0.39053,0.39053-1.02369,0-1.41422l-2.58578-2.58579 c-0.39053-0.39052-1.02369-0.39052-1.41422,0L24,20l-6.29289-6.29289c-0.39053-0.39052-1.02369-0.39052-1.41422,0l-2.58579,2.58579 c-0.39052,0.39053-0.39052,1.02369,0,1.41422L20,24l-6.29289,6.29289c-0.39052,0.39053-0.39052,1.02369,0,1.41422l2.58579,2.58578 c0.39053,0.39053,1.02369,0.39053,1.41422,0L24,28l6.29289,6.29289c0.39053,0.39053,1.02369,0.39053,1.41422,0l2.58578-2.58578 C34.68342,31.31658,34.68342,30.68342,34.29289,30.29289z"/>
</g>
</g>
</symbol>
<symbol id="nc-spaceship" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<path fill="#B3B3B3" d="M11.95508,23.2124c-0.26562,0-0.51953-0.10547-0.70703-0.29297l-6.85547-6.85547 c-0.32227-0.32227-0.38574-0.82227-0.1543-1.21484c0.75-1.27197,1.62891-2.41504,2.6123-3.39844 c4.95605-4.95605,12.31738-6.36621,18.75195-3.59424C25.90625,7.9873,26.125,8.25928,26.18848,8.5835 c0.06348,0.32373-0.03711,0.6582-0.26953,0.89355l-13.25195,13.4375c-0.18652,0.18994-0.44238,0.29688-0.70801,0.29785 C11.95703,23.2124,11.95605,23.2124,11.95508,23.2124z"/>
<path fill="#B3B3B3" d="M32.64258,43.8999c-0.25879,0-0.51465-0.1001-0.70703-0.29297l-6.91602-6.91602 c-0.18848-0.18799-0.29395-0.44336-0.29297-0.70996c0.00098-0.26611,0.10742-0.521,0.29688-0.70801l13.44922-13.30322 c0.23438-0.23145,0.56738-0.33154,0.89062-0.27148c0.32324,0.06152,0.5957,0.27832,0.72754,0.57959 c2.84473,6.46729,1.4541,13.875-3.54199,18.87158c-0.98145,0.98193-2.125,1.86035-3.39844,2.61182 C32.99219,43.85449,32.81738,43.8999,32.64258,43.8999z"/>
<path fill="#E6E6E6" d="M8.04395,27.34131c-0.14941,0.37207-0.0625,0.79688,0.2207,1.08008l11.31348,11.31348 c0.19141,0.19141,0.44727,0.29297,0.70703,0.29297c0.12793,0,0.25586-0.02441,0.37891-0.07422 c0.18848-0.07733,14.57507-6.15625,21.92511-21.36444L29.36237,5.36237C14.12976,12.69263,8.11975,27.1521,8.04395,27.34131z"/>
<path fill="#E86C60" d="M46.4502,1.55273c-0.20117-0.20215-0.49414-0.31104-0.76074-0.29297 c-6.34113,0.33087-11.74622,1.89819-16.32709,4.1026l13.22681,13.22681c2.21027-4.5733,3.79181-9.96222,4.15009-16.27423 C46.75586,2.03125,46.65039,1.75439,46.4502,1.55273z"/>
<path fill="#76B5B5" d="M27.35547,25.64062c-1.28027,0-2.56055-0.4873-3.53516-1.46191c-1.94922-1.94922-1.94922-5.12158,0-7.0708 l0,0c1.9502-1.95117,5.12305-1.94922,7.07129,0c0.94434,0.94434,1.46484,2.19971,1.46484,3.53516 c0,1.33594-0.52051,2.59131-1.46484,3.53564C29.91699,25.15332,28.63672,25.64062,27.35547,25.64062z"/>
<path fill="#EA9860" d="M5.51074,45.05273c-0.73438,0-1.31543-0.03564-1.58496-0.05566 c-0.49414-0.03662-0.88672-0.4292-0.92285-0.92334c-0.07129-0.95557-0.33398-5.81396,1.46191-7.60938l0,0l0,0 C5.40918,35.52002,6.66406,35,8,35s2.59082,0.52002,3.53516,1.46436c1.94922,1.94971,1.94922,5.12158,0,7.07129 C10.24707,44.82422,7.37988,45.05273,5.51074,45.05273z"/>
</g>
</g>
</symbol>
<symbol id="nc-settings" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<path fill="#8E8E8E" d="M21,18.69922l-6.42957-6.42957l0.86511-2.59583c0.12012-0.35938,0.02637-0.75586-0.24121-1.02344 L9.53809,2.99414c-0.39062-0.39062-1.02344-0.39062-1.41406,0L2.4668,8.65039C2.2793,8.83789,2.17383,9.0918,2.17383,9.35742 S2.2793,9.87695,2.4668,10.06445l5.65723,5.65723c0.19043,0.19043,0.44629,0.29297,0.70703,0.29297 c0.10547,0,0.21289-0.0166,0.31641-0.05176l2.59497-0.86499l6.42944,6.42944c0.39061,0.39062,0.90234,0.58594,1.41406,0.58594 S20.60938,21.91797,21,21.52734C21.78125,20.74609,21.78125,19.48047,21,18.69922z"/>
<path fill="#E86C60" d="M20.73654,31.26346l12.701,12.70101c2.76142,2.76142,7.23857,2.76142,9.99999,0l0.00001-0.00001 c2.76142-2.76142,2.76142-7.23857,0-9.99999l-12.701-12.70101L20.73654,31.26346z"/>
<path fill="#C9514B" d="M39.32031,40.84668c-0.25586,0-0.51172-0.09766-0.70703-0.29297L30.1543,32.0957 c-0.39062-0.39062-0.39062-1.02344,0-1.41406s1.02344-0.39062,1.41406,0l8.45898,8.45801c0.39062,0.39062,0.39062,1.02344,0,1.41406 C39.83203,40.74902,39.57617,40.84668,39.32031,40.84668z"/>
<path fill="#B3B3B3" d="M45.85059,9.26562c-0.10742-0.33105-0.37891-0.58203-0.7168-0.66406 c-0.3418-0.08105-0.69531,0.01953-0.94141,0.26562l-5.24023,5.23926l-5.65723-5.65723l5.24023-5.23926 c0.24609-0.24609,0.34668-0.60254,0.26562-0.94043c-0.08203-0.33887-0.33301-0.61035-0.66406-0.71777 c-1.53906-0.49902-3.13477-0.68066-4.73633-0.54199c-6.14941,0.53223-11.06641,5.9873-10.96094,12.1582 c0.0166,0.95117,0.14551,1.89648,0.38574,2.81738L4.07617,32.53516c-1.59863,1.41211-2.51465,3.36328-2.58105,5.49414 s0.72754,4.13477,2.23535,5.64258c1.44922,1.44922,3.35742,2.23828,5.39648,2.23828c0.08203,0,0.16504-0.00098,0.24707-0.00391 c2.13086-0.06641,4.08203-0.9834,5.49316-2.58105l16.54883-18.74805c1.76855,0.46289,3.58789,0.51172,5.4209,0.14844 c4.35057-0.86621,7.93555-4.16895,9.13184-8.41309C46.62695,13.97461,46.58691,11.53809,45.85059,9.26562z M10,39 c-1.10455,0-2-0.89545-2-2c0-1.10461,0.89545-2,2-2s2,0.89539,2,2C12,38.10455,11.10455,39,10,39z"/>
</g>
</g>
</symbol>
<symbol id="nc-preferences" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<path fill="#B3B3B3" d="M45,10H14V6h31c0.55228,0,1,0.44772,1,1v2C46,9.55229,45.55228,10,45,10z"/>
<path fill="#43A6DD" d="M14,10H3c-0.55228,0-1-0.44771-1-1V7c0-0.55228,0.44772-1,1-1h11V10z"/>
<path fill="#B3B3B3" d="M45,26H32v-4h13c0.55228,0,1,0.44772,1,1v2C46,25.55228,45.55228,26,45,26z"/>
<path fill="#43A6DD" d="M32,26H3c-0.55228,0-1-0.44772-1-1v-2c0-0.55228,0.44772-1,1-1h29V26z"/>
<path fill="#B3B3B3" d="M45,42H14v-4h31c0.55228,0,1,0.44772,1,1v2C46,41.55228,45.55228,42,45,42z"/>
<path fill="#43A6DD" d="M14,42H3c-0.55228,0-1-0.44772-1-1v-2c0-0.55228,0.44772-1,1-1h11V42z"/>
<path fill="#E6E6E6" d="M19,15h-8c-0.55225,0-1-0.44775-1-1V2c0-0.55225,0.44775-1,1-1h8c0.55225,0,1,0.44775,1,1v12 C20,14.55225,19.55225,15,19,15z"/>
<path fill="#E6E6E6" d="M37,31h-8c-0.55225,0-1-0.44775-1-1V18c0-0.55225,0.44775-1,1-1h8c0.55225,0,1,0.44775,1,1v12 C38,30.55225,37.55225,31,37,31z"/>
<path fill="#E6E6E6" d="M19,47h-8c-0.55225,0-1-0.44775-1-1V34c0-0.55225,0.44775-1,1-1h8c0.55225,0,1,0.44775,1,1v12 C20,46.55225,19.55225,47,19,47z"/>
<rect x="20" y="6" fill="#898989" width="3" height="4"/>
<rect x="38" y="22" fill="#898989" width="3" height="4"/>
<rect x="20" y="38" fill="#898989" width="3" height="4"/>
</g>
</g>
</symbol>
<symbol id="nc-palette" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<path fill="#444444" d="M40.432,13.098c-5.528-2.646-10.562-1.053-14.606,0.227c-3.601,1.14-5.704,1.703-7.025,0.075 c-0.402-0.537-0.091-1.572,0.237-2.668c0.482-1.608,1.083-3.609-0.242-5.337c-1.709-2.243-5.522-1.924-8.023-0.212 C4.653,9.491,1,16.526,1,24c0,12.682,10.318,23,23,23c10.247,0,19.348-6.878,22.143-16.758 C46.465,28.94,49.051,17.407,40.432,13.098z M34,28c-2.209,0-4-1.791-4-4s1.791-4,4-4c2.209,0,4,1.791,4,4S36.209,28,34,28z"/>
<circle fill="#E86C60" cx="10" cy="24" r="3"/>
<circle fill="#EFD358" cx="15" cy="34" r="3"/>
<circle fill="#43A6DD" cx="26" cy="38" r="3"/>
</g>
</g>
</symbol>
<symbol id="nc-image" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<path fill="#223E49" d="M45,45H3c-1.105,0-2-0.895-2-2V5c0-1.105,0.895-2,2-2h42c1.105,0,2,0.895,2,2v38C47,44.105,46.105,45,45,45z "/>
<circle fill="#EFD358" cx="21" cy="15" r="4"/>
<path fill="#5A7A84" d="M41.792,35.39l-10-13c-0.378-0.492-1.207-0.492-1.585,0l-8.243,10.715l-6.184-7.73 c-0.379-0.475-1.183-0.475-1.562,0l-8,10C5.697,36.028,6.161,37,7,37h34C41.829,37,42.298,36.047,41.792,35.39z"/>
</g>
</g>
</symbol>
<symbol id="nc-home-52" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<path fill="#C9514B" d="M8,18V7c0-0.55228,0.44771-1,1-1h4c0.55229,0,1,0.44772,1,1v6.09091L8,18z"/>
<path fill="#E6E6E6" d="M24,3L7,18.11108v25.88843c0,1.10455,0.89545,2,2,2h30c1.10461,0,2-0.89545,2-2V18.11108L24,3z"/>
<path fill="#E86C60" d="M45.99951,23.99951c-0.23975,0-0.48047-0.08594-0.67236-0.25977L24,4.35107L2.67285,23.73975 c-0.40918,0.37109-1.0415,0.33984-1.4126-0.06738c-0.37158-0.40918-0.3418-1.04102,0.06689-1.41309l22-20 c0.38184-0.3457,0.96387-0.3457,1.3457,0l22,20c0.40869,0.37207,0.43848,1.00391,0.06689,1.41309 C46.54248,23.88916,46.27148,23.99951,45.99951,23.99951z"/>
<path fill="#A67C52" d="M28,33h-8c-0.55228,0-1,0.44772-1,1v12h10V34C29,33.44772,28.55228,33,28,33z"/>
<path fill="#43A6DD" d="M28,27h-8c-0.55228,0-1-0.44772-1-1v-6c0-0.55228,0.44772-1,1-1h8c0.55228,0,1,0.44772,1,1v6 C29,26.55228,28.55228,27,28,27z"/>
<path fill="#72C472" d="M14.31403,46C14.74866,45.09009,15,44.07587,15,43c0-3.86603-3.13397-7-7-7c-3.86597,0-7,3.13397-7,7 c0,1.07587,0.25134,2.09009,0.68597,3H14.31403z"/>
<path fill="#72C472" d="M46.31403,46C46.74866,45.09009,47,44.07587,47,43c0-3.86603-3.13397-7-7-7c-3.86597,0-7,3.13397-7,7 c0,1.07587,0.25134,2.09009,0.68597,3H46.31403z"/>
</g>
</g>
</symbol>
<symbol id="nc-dashboard-30" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<path fill="#444444" d="M24,47C11.31738,47,1,36.68213,1,24S11.31738,1,24,1s23,10.31787,23,23S36.68262,47,24,47z"/>
<path fill="#E86C60" d="M24,11c-0.55273,0-1-0.44775-1-1V8c0-0.55225,0.44727-1,1-1s1,0.44775,1,1v2C25,10.55225,24.55273,11,24,11z "/>
<path fill="#E86C60" d="M40,25h-2c-0.55273,0-1-0.44775-1-1s0.44727-1,1-1h2c0.55273,0,1,0.44775,1,1S40.55273,25,40,25z"/>
<path fill="#E86C60" d="M33.89941,15.10059c-0.25586,0-0.51172-0.09766-0.70703-0.29297c-0.39062-0.39062-0.39062-1.02344,0-1.41406 l1.41406-1.41406c0.39062-0.39062,1.02344-0.39062,1.41406,0s0.39062,1.02344,0,1.41406l-1.41406,1.41406 C34.41113,15.00293,34.15527,15.10059,33.89941,15.10059z"/>
<path fill="#43A6DD" d="M14.10059,15.10059c0.25586,0,0.51172-0.09766,0.70703-0.29297c0.39062-0.39062,0.39062-1.02344,0-1.41406 l-1.41406-1.41406c-0.39062-0.39062-1.02344-0.39062-1.41406,0s-0.39062,1.02344,0,1.41406l1.41406,1.41406 C13.58887,15.00293,13.84473,15.10059,14.10059,15.10059z"/>
<path fill="#E86C60" d="M33.89941,32.89941c-0.25586,0-0.51172,0.09766-0.70703,0.29297c-0.39062,0.39062-0.39062,1.02344,0,1.41406 l1.41406,1.41406c0.39062,0.39062,1.02344,0.39062,1.41406,0s0.39062-1.02344,0-1.41406l-1.41406-1.41406 C34.41113,32.99707,34.15527,32.89941,33.89941,32.89941z"/>
<path fill="#43A6DD" d="M14.10059,32.89941c0.25586,0,0.51172,0.09766,0.70703,0.29297c0.39062,0.39062,0.39062,1.02344,0,1.41406 l-1.41406,1.41406c-0.39062,0.39062-1.02344,0.39062-1.41406,0s-0.39062-1.02344,0-1.41406l1.41406-1.41406 C13.58887,32.99707,13.84473,32.89941,14.10059,32.89941z"/>
<path fill="#43A6DD" d="M10,25H8c-0.55273,0-1-0.44775-1-1s0.44727-1,1-1h2c0.55273,0,1,0.44775,1,1S10.55273,25,10,25z"/>
<path fill="#FFFFFF" d="M26.12132,26.12132c-1.16963,1.16963-3.07302,1.16963-4.24264,0S17,17,17,17 s7.95169,3.70905,9.12132,4.87868S27.29095,24.95169,26.12132,26.12132z"/>
</g>
</g>
</symbol>
<symbol id="nc-cloud-download-95" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<path fill="#43A6DD" d="M38.86328,21.04102C37.89014,13.09766,31.08936,7,23,7C14.69971,7,7.84326,13.31836,7.08789,21.51074 C3.46875,22.74609,1,26.13867,1,30c0,4.96289,4.0376,9,9,9h28c4.9624,0,9-4.03711,9-9 C47,25.32812,43.42236,21.47656,38.86328,21.04102z"/>
<path fill="#FFFFFF" d="M29.29297,26.29297L25,30.58594V17c0-0.55273-0.44775-1-1-1s-1,0.44727-1,1v13.58594l-4.29297-4.29297 c-0.39062-0.39062-1.02344-0.39062-1.41406,0s-0.39062,1.02344,0,1.41406l5.99933,5.99933 c0.09235,0.09253,0.20306,0.16577,0.32568,0.21655C23.74017,33.97345,23.86981,34,24,34s0.25983-0.02655,0.38202-0.07709 c0.12262-0.05078,0.23334-0.12402,0.32568-0.21655l5.99933-5.99933c0.39062-0.39062,0.39062-1.02344,0-1.41406 S29.68359,25.90234,29.29297,26.29297z"/>
</g>
</g>
</symbol>
<symbol id="nc-cloud-upload-96" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<path fill="#43A6DD" d="M38.86328,21.04102C37.89062,13.09766,31.08887,7,23,7C14.69922,7,7.84277,13.31836,7.08789,21.51074 C3.46875,22.74609,1,26.13867,1,30c0,4.96289,4.03711,9,9,9h28c4.96289,0,9-4.03711,9-9 C47,25.3291,43.42285,21.47754,38.86328,21.04102z"/>
<path fill="#FFFFFF" d="M30.70703,22.29297l-5.99872-5.99872c-0.09247-0.09277-0.20343-0.16638-0.32654-0.21729 c-0.24426-0.10095-0.51935-0.10095-0.76361,0c-0.12299,0.0509-0.23401,0.12451-0.32648,0.21729l-5.99872,5.99872 c-0.39062,0.39062-0.39062,1.02344,0,1.41406s1.02344,0.39062,1.41406,0L23,19.41406V33c0,0.55273,0.44727,1,1,1s1-0.44727,1-1 V19.41406l4.29297,4.29297C29.48828,23.90234,29.74414,24,30,24s0.51172-0.09766,0.70703-0.29297 C31.09766,23.31641,31.09766,22.68359,30.70703,22.29297z"/>
</g>
</g>
</symbol>
<symbol id="nc-code" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<path fill="#335262" d="M12,34.828l-9.414-9.414c-0.781-0.781-0.781-2.047,0-2.828L12,13.172L14.829,16l-8,8l8,8L12,34.828z"/>
<path fill="#335262" d="M36,34.828L33.171,32l8-8l-8-8L36,13.172l9.414,9.414c0.781,0.781,0.781,2.047,0,2.828L36,34.828z"/>
<rect x="5.507" y="22" transform="matrix(0.2427 -0.9701 0.9701 0.2427 -5.1069 41.4583)" fill="#EA9860" width="36.985" height="4"/>
</g>
</g>
</symbol>
<symbol id="nc-chat-33" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<path fill="#BADEFC" d="M47,29c0-7.168-7.626-13-17-13s-17,5.832-17,13s7.626,13,17,13c1.119,0,2.211-0.088,3.27-0.247l8.283,4.141 C41.694,45.965,41.847,46,42,46c0.183,0,0.365-0.05,0.526-0.149C42.82,45.668,43,45.347,43,45v-7.64C45.492,35.097,47,32.182,47,29z "/>
<path fill="#43A6DD" d="M22,2C10.42,2,1,9.626,1,19c0,3.603,1.381,7.038,4,9.96V39c0,0.347,0.18,0.668,0.474,0.851 C5.635,39.95,5.817,40,6,40c0.153,0,0.306-0.035,0.447-0.105l9.33-4.665C17.812,35.741,19.903,36,22,36c11.58,0,21-7.626,21-17 S33.58,2,22,2z"/>
</g>
</g>
</symbol>
<symbol id="nc-man-23" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<rect x="18" y="24" fill-rule="evenodd" clip-rule="evenodd" fill="#EAC3A2" width="12" height="15"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1D9C5" d="M35,12v8c0,6.0650005-4.9349995,11-11,11s-11-4.9349995-11-11v-8 H35z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#72C472" d="M46,44.0092545 c0-1.6619644-1.2289314-3.5469093-2.7504997-4.2125969L30,34c-1.6879997,1.25-3.7539997,2-6,2s-4.3120003-0.75-5.9820004-2 L4.753592,39.7966576C3.232825,40.4612465,2,42.3496704,2,44.0092545v2.9878159C2,47.550972,2.4498155,48,3.001672,48h41.9966583 C45.5515404,48,46,47.5621185,46,46.9970703V44.0092545z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#444444" d="M13,11.9989014 c0-3.3131027,2.5352898-6.9043617,5.6539803-8.0181808l7.4057007-2.6448898 c0.5193291-0.1854706,1.1393986,0.0623283,1.3841782,0.551899L29,5c3.3137093,0,6,2.6930313,6,6v6c0-2.7614212-2.2385788-5-5-5H18 c-2.7614202,0-5,2.2385788-5,5V11.9989014z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M24,36c-2.2459717,0-4.3120117-0.75-5.9819946-2 l-0.0055542,0.0024414l0,0l-2.4395752,1.0661011l1.9101353,4.6680298c0.2560425,0.625721,1.0463161,0.8223228,1.5656967,0.3895035 L24,36l4.9513283,4.1261063c0.519371,0.4328079,1.3096256,0.2362289,1.5656853-0.389473l1.9126129-4.673645L30,34 C28.3120117,35.25,26.2460327,36,24,36z"/>
</g>
</g>
</symbol>
<symbol id="nc-cd-reader" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<path data-cap="butt" data-color="color-2" fill="none" stroke-miterlimit="10" d="M41.553,24 C41.845,22.713,42,21.375,42,20c0-9.941-8.059-18-18-18S6,10.059,6,20c0,1.375,0.155,2.714,0.447,4" stroke-linejoin="miter" stroke-linecap="butt"/>
<rect x="2" y="30" fill="none" stroke="currentColor" stroke-linecap="square" stroke-miterlimit="10" width="44" height="16" stroke-linejoin="miter"/>
<line fill="none" stroke="currentColor" stroke-linecap="square" stroke-miterlimit="10" x1="12" y1="38" x2="36" y2="38" stroke-linejoin="miter"/>
<path data-color="color-2" fill="none" stroke-linecap="square" stroke-miterlimit="10" d="M12.683,16 c1.205-3.41,3.907-6.112,7.317-7.317" stroke-linejoin="miter"/>
<circle data-color="color-2" fill="none" stroke-linecap="square" stroke-miterlimit="10" cx="24" cy="20" r="4" stroke-linejoin="miter"/>
</g>
</g>
</symbol>
<symbol id="nc-check-bold" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<polygon fill="#72C472" points="4,22 8,18 18,26 40,9 44,12 18,38 "/>
</g>
</g>
</symbol>
<symbol id="nc-circle" viewBox="0 0 64 64">
<g>
<g class="nc-icon-wrapper">
<path fill="currentColor" d="M32,2C15.458,2,2,15.458,2,32c0,4.089,0.809,8.054,2.403,11.783c0.434,1.016,1.608,1.485,2.625,1.053 c1.016-0.435,1.487-1.609,1.053-2.625C6.7,38.98,6,35.545,6,32C6,17.664,17.664,6,32,6s26,11.664,26,26c0,14.337-11.664,26-26,26 c-5.899,0-11.46-1.926-16.083-5.569c-0.868-0.684-2.124-0.534-2.809,0.332c-0.684,0.867-0.535,2.125,0.333,2.809 C18.776,59.777,25.193,62,32,62c16.542,0,30-13.458,30-30S48.542,2,32,2z"/>
</g>
</g>
</symbol>
<symbol id="nc-ms-dots" viewBox="0 0 100 100">
<g>
<g class="nc-icon-wrapper">
<g transform="rotate(0)">
<circle cx="73.801" cy="68.263" fill="#1d2830" r="3" transform="rotate(359.025 50.0005 50.0005)">
<animateTransform attributeName="transform" type="rotate" calcMode="spline" values="0 50 50;360 50 50" times="0;1" keySplines="0.5 0 0.5 1" repeatCount="indefinite" dur="1.5s" begin="0s"/>
</circle>
<circle cx="68.263" cy="73.801" fill="#064d69" r="3" transform="rotate(359.99 49.9195 49.9196)">
<animateTransform attributeName="transform" type="rotate" calcMode="spline" values="0 50 50;360 50 50" times="0;1" keySplines="0.5 0 0.5 1" repeatCount="indefinite" dur="1.5s" begin="-0.062s"/>
</circle>
<circle cx="61.481" cy="77.716" fill="#7ba6b7" r="3" transform="rotate(0.743403 50 50)">
<animateTransform attributeName="transform" type="rotate" calcMode="spline" values="0 50 50;360 50 50" times="0;1" keySplines="0.5 0 0.5 1" repeatCount="indefinite" dur="1.5s" begin="-0.125s"/>
</circle>
<circle cx="53.916" cy="79.743" fill="#dee7e6" r="3" transform="rotate(3.26022 50 50)">
<animateTransform attributeName="transform" type="rotate" calcMode="spline" values="0 50 50;360 50 50" times="0;1" keySplines="0.5 0 0.5 1" repeatCount="indefinite" dur="1.5s" begin="-0.187s"/>
</circle>
<circle cx="46.084" cy="79.743" fill="#e23046" r="3" transform="rotate(7.84189 50 50)">
<animateTransform attributeName="transform" type="rotate" calcMode="spline" values="0 50 50;360 50 50" times="0;1" keySplines="0.5 0 0.5 1" repeatCount="indefinite" dur="1.5s" begin="-0.25s"/>
</circle>
<circle cx="38.519" cy="77.716" fill="#1d2830" r="3" transform="rotate(14.6086 50 50)">
<animateTransform attributeName="transform" type="rotate" calcMode="spline" values="0 50 50;360 50 50" times="0;1" keySplines="0.5 0 0.5 1" repeatCount="indefinite" dur="1.5s" begin="-0.312s"/>
</circle>
<circle cx="31.737" cy="73.801" fill="#064d69" r="3" transform="rotate(24.1076 50 50)">
<animateTransform attributeName="transform" type="rotate" calcMode="spline" values="0 50 50;360 50 50" times="0;1" keySplines="0.5 0 0.5 1" repeatCount="indefinite" dur="1.5s" begin="-0.375s"/>
</circle>
<circle cx="26.199" cy="68.263" fill="#7ba6b7" r="3" transform="rotate(36.3884 50 50)">
<animateTransform attributeName="transform" type="rotate" calcMode="spline" values="0 50 50;360 50 50" times="0;1" keySplines="0.5 0 0.5 1" repeatCount="indefinite" dur="1.5s" begin="-0.437s"/>
</circle>
<animateTransform attributeName="transform" type="rotate" calcMode="spline" values="0 50 50;0 50 50" times="0;1" keySplines="0.5 0 0.5 1" repeatCount="indefinite" dur="1.5s"/>
</g>
</g>
</g>
</symbol>
<symbol id="nc-metrics" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<path fill="#5B5B5B" d="M7,2C5.896,2,5,2.896,5,4v28.082C2.613,33.468,1,36.047,1,39c0,4.411,3.589,8,8,8 c2.953,0,5.532-1.613,6.918-4H44c1.104,0,2-0.896,2-2C46,19.495,28.505,2,7,2z"/>
<path fill="#E86C60" d="M9,43c-1.068,0-2.073-0.416-2.828-1.171c-1.56-1.56-1.56-4.098,0-5.657 c1.082-1.082,9.109-6.434,13.799-9.527c0.396-0.261,0.922-0.208,1.258,0.127s0.39,0.861,0.128,1.258 c-3.096,4.691-8.45,12.722-9.528,13.799C11.073,42.584,10.068,43,9,43z"/>
<path fill="#444444" d="M37.188,35c-0.455,0-0.866-0.312-0.974-0.775c-2.561-11.079-11.368-19.89-22.439-22.447 c-0.538-0.124-0.874-0.661-0.75-1.199c0.125-0.538,0.662-0.874,1.199-0.749c11.812,2.727,21.208,12.126,23.939,23.945 c0.124,0.538-0.211,1.075-0.749,1.199C37.339,34.992,37.263,35,37.188,35z"/>
<path fill="#72C472" d="M28.911,20.089c-0.256,0-0.512-0.098-0.707-0.293c-3.982-3.985-8.972-6.758-14.429-8.018 c-0.538-0.125-0.874-0.662-0.75-1.2c0.125-0.538,0.662-0.87,1.199-0.75c5.823,1.345,11.146,4.302,15.394,8.553 c0.391,0.391,0.391,1.024,0,1.415C29.423,19.991,29.167,20.089,28.911,20.089z"/>
</g>
</g>
</symbol>
<symbol id="nc-key-26" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<path fill="#C6C6C6" d="M23,34h-8c-0.55273,0-1-0.44775-1-1v-8c0-0.26514,0.10547-0.51953,0.29297-0.70703l22-22 C36.48047,2.10547,36.73438,2,37,2h8c0.55273,0,1,0.44775,1,1v8c0,0.26514-0.10547,0.51953-0.29297,0.70703l-3,3 C42.51953,14.89453,42.26562,15,42,15h-5v5c0,0.55225-0.44727,1-1,1h-5v5c0,0.26514-0.10547,0.51953-0.29297,0.70703l-7,7 C23.51953,33.89453,23.26562,34,23,34z"/>
<path fill="#999999" d="M25,20c-0.25586,0-0.51172-0.09766-0.70703-0.29297c-0.39062-0.39062-0.39062-1.02344,0-1.41406l13-13 c0.39062-0.39062,1.02344-0.39062,1.41406,0s0.39062,1.02344,0,1.41406l-13,13C25.51172,19.90234,25.25586,20,25,20z"/>
<path fill="#5B5B5B" d="M15,20C7.83203,20,2,25.83154,2,33s5.83203,13,13,13s13-5.83154,13-13S22.16797,20,15,20z M12,39 c-1.65686,0-3-1.34314-3-3s1.34314-3,3-3s3,1.34314,3,3S13.65686,39,12,39z"/>
</g>
</g>
</symbol>
<symbol id="nc-database" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<path fill="#444444" d="M24,47c-9.21094,0-19-2.45312-19-7V8c0-0.55225,0.44775-1,1-1h36c0.55225,0,1,0.44775,1,1v32 C43,44.54688,33.21094,47,24,47z"/>
<path fill="#B3B3B3" d="M24,15c-9.21094,0-19-2.45312-19-7s9.78906-7,19-7s19,2.45312,19,7S33.21094,15,24,15z"/>
<path fill="#B3B3B3" d="M43,19c0,2.08789-7.22803,5-19,5S5,21.08789,5,19v3.16351C8.54883,24.69165,16.3067,26,24,26 c7.69324,0,15.45111-1.30829,19-3.83643V19z"/>
<path fill="#B3B3B3" d="M43,30c0,2.08789-7.22803,5-19,5S5,32.08789,5,30v3.16351C8.54883,35.69165,16.3067,37,24,37 c7.69324,0,15.45111-1.30829,19-3.83643V30z"/>
</g>
</g>
</symbol>
<symbol id="nc-connect" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<path fill="#223E49" d="M27,38H9v-4h18c0.55228,0,1,0.44772,1,1v2C28,37.55228,27.55228,38,27,38z"/>
<path fill="#223E49" d="M37.30371,37.05957l-8.46595-13.54534c-0.29277-0.46842-0.15028-1.08549,0.31822-1.37814l1.69631-1.05958 c0.46832-0.29253,1.08512-0.15011,1.37778,0.31813l8.46623,13.54578L37.30371,37.05957z"/>
<path fill="#223E49" d="M16.09837,26.52993l-1.69631-1.05958c-0.4685-0.29264-0.61098-0.90971-0.31822-1.37813l8.21986-13.15178 l3.39258,2.11914l-8.22014,13.15222C17.18349,26.68004,16.5667,26.82246,16.09837,26.52993z"/>
<circle fill="#5A7A84" cx="9" cy="36" r="7"/>
<circle fill="#5A7A84" cx="24" cy="12" r="7"/>
<circle fill="#5A7A84" cx="39" cy="36" r="7"/>
</g>
</g>
</symbol>
<symbol id="nc-radar" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<path fill="#E6E6E6" d="M24,47C11.31787,47,1,36.68213,1,24S11.31787,1,24,1s23,10.31787,23,23S36.68213,47,24,47z M24,3 C12.42041,3,3,12.42041,3,24s9.42041,21,21,21s21-9.42041,21-21S35.57959,3,24,3z"/>
<path fill="#B3B3B3" d="M24,11c-7.17969,0-13,5.82031-13,13s5.82031,13,13,13s13-5.82031,13-13S31.17969,11,24,11z M24,35 c-6.07513,0-11-4.92487-11-11s4.92487-11,11-11s11,4.92487,11,11S30.07513,35,24,35z"/>
<path fill="#E86C60" d="M40.26349,7.73651L24,24l16.26349,16.26349C44.42566,36.10132,47,30.35126,47,24 C47,17.64868,44.42566,11.89868,40.26349,7.73651z"/>
<path fill="#C64B4B" d="M40.2558,7.7442l-1.41345,1.41345C42.6449,12.96021,45,18.21021,45,24s-2.3551,11.03979-6.15765,14.84235 l1.41345,1.41345C44.42053,36.09106,47,30.34106,47,24S44.42053,11.90894,40.2558,7.7442z"/>
<path fill="#C64B4B" d="M33.19238,14.80762L31.7782,16.2218C33.7688,18.2124,35,20.9624,35,24 c0,3.03754-1.2312,5.7876-3.2218,7.7782l1.41418,1.41418C35.54492,30.83984,37,27.58984,37,24S35.54492,17.16016,33.19238,14.80762z "/>
<path fill="#444444" d="M24.58785,26.94381c-2.1101,0.40292-3.93457-1.42155-3.53165-3.53165 c0.22392-1.17269,1.18327-2.13203,2.35596-2.35596c2.1101-0.40292,3.93457,1.42155,3.53165,3.53165 C26.71988,25.76054,25.76054,26.71988,24.58785,26.94381z"/>
</g>
</g>
</symbol>
<symbol id="nc-man-38" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<rect x="17.9983292" y="24" fill-rule="evenodd" clip-rule="evenodd" fill="#EAC3A2" width="12" height="17"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#F1D9C5" d="M34.9983292,12v8c0,6.0650005-4.9349995,11-11,11 s-11-4.9349995-11-11v-8H34.9983292z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#C6A279" d="M12.9983292,11.9989014 c0-3.3131027,2.5352898-6.9043617,5.6539803-8.0181808l7.4057007-2.6448898 c0.5193291-0.1854706,1.1393986,0.0623283,1.3841782,0.551899L28.9983292,5c3.3137093,0,6,2.6930313,6,6v6 c0-2.7614212-2.2385788-5-5-5h-12c-2.7614202,0-5,2.2385788-5,5V11.9989014z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#444444" d="M46,44.0092545 c0-1.6619644-1.2289314-3.5469093-2.7504997-4.2125969L30,34l-6.0016708,6l-5.9803295-6L4.753592,39.7966576 C3.232825,40.4612465,2,42.3496704,2,44.0092545v2.9878159C2,47.550972,2.4498155,48,3.001672,48h41.9966583 C45.5515404,48,46,47.5621185,46,46.9970703V44.0092545z"/>
</g>
</g>
</symbol>
<symbol id="nc-alert" viewBox="0 0 64 64">
<g>
<g class="nc-icon-wrapper">
<polygon fill="none" stroke="currentColor" stroke-linecap="square" stroke-miterlimit="10" points="4,60 32,8 60,60 " stroke-linejoin="miter"/>
<line data-color="color-2" fill="none" stroke-linecap="square" stroke-miterlimit="10" x1="32" y1="28" x2="32" y2="43" stroke-linejoin="miter"/>
<circle data-color="color-2" fill="none" stroke-linecap="square" stroke-miterlimit="10" cx="32" cy="50" r="1" stroke-linejoin="miter"/>
<circle data-color="color-2" data-stroke="none" cx="32" cy="50" r="1" stroke-linejoin="miter" stroke-linecap="square" fill="currentColor" stroke="none"/>
</g>
</g>
</symbol>
<symbol id="nc-sidebar" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<path d="M29,8H1V41a2,2,0,0,0,2,2H29Z" fill="#badefc"/>
<path d="M47,8H28V43H45a2,2,0,0,0,2-2Z" fill="#458bc4"/>
<path d="M41,25H34a1,1,0,0,1,0-2h7a1,1,0,0,1,0,2Z" fill="#fff"/>
<path d="M41,19H34a1,1,0,0,1,0-2h7a1,1,0,0,1,0,2Z" fill="#fff"/>
<path d="M41,31H34a1,1,0,0,1,0-2h7a1,1,0,0,1,0,2Z" fill="#fff"/>
<path d="M41,37H34a1,1,0,0,1,0-2h7a1,1,0,0,1,0,2Z" fill="#fff"/>
<path d="M3,5H45a2,2,0,0,1,2,2v4a0,0,0,0,1,0,0H1a0,0,0,0,1,0,0V7A2,2,0,0,1,3,5Z" fill="#444444"/>
</g>
</g>
</symbol>
<symbol id="nc-webpage-2-2" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<path fill="#E6E6E6" d="M45,2H3C1.89545,2,1,2.89539,1,4v3h46V4C47,2.89539,46.10455,2,45,2z"/>
<rect x="1" y="7" fill="#43A6DD" width="46" height="12"/>
<path fill="#E6E6E6" d="M16,19v27h29c1.10455,0,2-0.89545,2-2V19H16z"/>
<path fill="#444444" d="M1,19v25c0,1.10455,0.89545,2,2,2h13V19H1z"/>
<circle fill="#E6E6E6" cx="8" cy="13" r="3"/>
<path fill="#E6E6E6" d="M42,14h-4c-0.55225,0-1-0.44727-1-1s0.44775-1,1-1h4c0.55225,0,1,0.44727,1,1S42.55225,14,42,14z"/>
<path fill="#E6E6E6" d="M33,14h-9c-0.55225,0-1-0.44727-1-1s0.44775-1,1-1h9c0.55225,0,1,0.44727,1,1S33.55225,14,33,14z"/>
<path fill="#B3B3B3" d="M28.90455,36h-7.80911C20.49045,36,20,35.50955,20,34.90456v-9.80911C20,24.49045,20.49045,24,21.09545,24 h7.80911C29.50955,24,30,24.49045,30,25.09545v9.80911C30,35.50955,29.50955,36,28.90455,36z"/>
<path fill="#B3B3B3" d="M42,26h-8c-0.55225,0-1-0.44727-1-1s0.44775-1,1-1h8c0.55225,0,1,0.44727,1,1S42.55225,26,42,26z"/>
<path fill="#B3B3B3" d="M42,31h-8c-0.55225,0-1-0.44727-1-1s0.44775-1,1-1h8c0.55225,0,1,0.44727,1,1S42.55225,31,42,31z"/>
<path fill="#B3B3B3" d="M42,36h-8c-0.55225,0-1-0.44727-1-1s0.44775-1,1-1h8c0.55225,0,1,0.44727,1,1S42.55225,36,42,36z"/>
<path fill="#B3B3B3" d="M42,41H21c-0.55225,0-1-0.44727-1-1s0.44775-1,1-1h21c0.55225,0,1,0.44727,1,1S42.55225,41,42,41z"/>
</g>
</g>
</symbol>
<symbol id="gg-apps-grid" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper" fill="currentColor">
<path d="M8 16h8V8H8v8zm12 24h8v-8h-8v8zM8 40h8v-8H8v8zm0-12h8v-8H8v8zm12 0h8v-8h-8v8zM32 8v8h8V8h-8zm-12 8h8V8h-8v8zm12 12h8v-8h-8v8zm0 12h8v-8h-8v8z"/>
</g>
</g>
</symbol>
<symbol id="nc-user-circle" viewBox="0 0 48 48">
<g>
<g class="nc-icon-wrapper">
<path fill="currentColor" d="M24,1C11.317,1,1,11.318,1,24s10.317,23,23,23s23-10.318,23-23S36.683,1,24,1z M38,39.608v-0.126 c0-2.153-1.154-4.141-3.023-5.209l-4.162-2.388C28.901,33.851,26.383,35,24,35s-4.901-1.148-6.815-3.115l-4.162,2.387 C11.154,35.341,10,37.329,10,39.482v0.126C5.715,35.761,3,30.198,3,24C3,12.42,12.421,3,24,3s21,9.42,21,21 C45,30.198,42.285,35.761,38,39.608z"/>
<path data-color="color-2" d="M24,12c-4.418,0-8,3.582-8,8v4c0,4.418,3.582,9,8,9s8-4.582,8-9v-4C32,15.582,28.418,12,24,12 z"/>
</g>
</g>
</symbol>
<symbol id='gg-warning' viewBox="0 0 48 48">
<g class="nc-icon-wrapper" fill="currentColor">
<path d="M2 42h44L24 4 2 42zm24-6h-4v-4h4v4zm0-8h-4v-8h4v8z"></path>
</g>
</symbol>
</svg>

After

Width:  |  Height:  |  Size: 35 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 30 KiB

View File

@ -156,6 +156,7 @@
"fuse-box": "2.5.0-beta.1",
"graphql-tag": "^2.6.1",
"i18next-xhr-backend": "1.5.0",
"intl": "1.2.5",
"jest": "22.0.4",
"jest-junit": "3.4.1",
"js-cookie": "2.2.0",
@ -178,7 +179,8 @@
"vue-template-compiler": "2.5.13",
"vue-template-es2015-compiler": "1.6.0",
"vuex": "3.0.1",
"vuex-persistedstate": "2.4.2"
"vuex-persistedstate": "2.4.2",
"whatwg-fetch": "2.0.3"
},
"jest": {
"testResultsProcessor": "./node_modules/jest-junit",

View File

@ -1,5 +1,3 @@
'use strict'
/* global wiki */
// ------------------------------------

View File

@ -1,5 +1,3 @@
'use strict'
/* global wiki */
// ------------------------------------

View File

@ -1,5 +1,3 @@
'use strict'
/* global wiki */
// ------------------------------------

View File

@ -1,5 +1,3 @@
'use strict'
/* global wiki */
// ------------------------------------
@ -25,7 +23,7 @@ module.exports = {
}).catch((err) => {
return cb(err, null) || true
})
}
))
})
)
}
}

View File

@ -1,5 +1,3 @@
'use strict'
/* global wiki */
// ------------------------------------

View File

@ -1,5 +1,3 @@
'use strict'
/* global wiki */
// ------------------------------------

View File

@ -1,5 +1,3 @@
'use strict'
/* global wiki */
// ------------------------------------

View File

@ -32,9 +32,14 @@ module.exports = {
// Load authentication strategies
_.forOwn(_.omitBy(wiki.config.auth.strategies, s => s.enabled === false), (strategyConfig, strategyKey) => {
strategyConfig.callbackURL = `${wiki.config.site.host}${wiki.config.site.path}/login/${strategyKey}/callback`
strategyConfig.callbackURL = `${wiki.config.site.host}${wiki.config.site.path}login/${strategyKey}/callback`
let strategy = require(`../extensions/authentication/${strategyKey}`)
strategy.init(passport, strategyConfig)
try {
strategy.init(passport, strategyConfig)
} catch (err) {
wiki.logger.error(`Authentication Provider ${strategyKey}: [ FAILED ]`)
wiki.logger.error(err)
}
fs.readFile(path.join(wiki.ROOTPATH, `assets/svg/auth-icon-${strategyKey}.svg`), 'utf8').then(iconData => {
strategy.icon = iconData
}).catch(err => {

View File

@ -4,3 +4,4 @@ block body
body
#app.is-fullscreen
login
navigator

View File

@ -4011,6 +4011,10 @@ interpret@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90"
intl@1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/intl/-/intl-1.2.5.tgz#82244a2190c4e419f8371f5aa34daa3420e2abde"
invariant@^2.2.0, invariant@^2.2.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
@ -8479,7 +8483,7 @@ whatwg-encoding@^1.0.1:
dependencies:
iconv-lite "0.4.13"
whatwg-fetch@^2.0.3:
whatwg-fetch@2.0.3, whatwg-fetch@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"