commit ae30de057debedaa72644e08d367ea218cdf4f3d
Author: liangping <18786721@qq.com>
Date: Wed Jul 21 22:07:38 2021 +0800
Initial project
diff --git a/ .prettierignore b/ .prettierignore
new file mode 100644
index 00000000..1a331d22
--- /dev/null
+++ b/ .prettierignore
@@ -0,0 +1,4 @@
+dist
+dev/assets/vendor
+node_modules
+src/node_modules
diff --git a/.browserslistrc b/.browserslistrc
new file mode 100644
index 00000000..d6471a38
--- /dev/null
+++ b/.browserslistrc
@@ -0,0 +1,2 @@
+> 1%
+last 2 versions
diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 00000000..41bf611a
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,21 @@
+module.exports = {
+ root: true,
+ env: {
+ node: true,
+ },
+ extends: ['plugin:vue/recommended', '@vue/airbnb'],
+ parserOptions: {
+ parser: 'babel-eslint',
+ },
+ rules: {
+ 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
+ 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
+
+ semi: ['error', 'never'],
+ 'max-len': 'off',
+ 'linebreak-style': 'off',
+ camelcase: ['error', { properties: 'never', ignoreDestructuring: true, ignoreImports: true }],
+ 'arrow-parens': ['error', 'as-needed'],
+ 'vue/multiline-html-element-content-newline': 'off',
+ },
+}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..3e12d9c2
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,29 @@
+.DS_Store
+node_modules
+/dist
+
+# local env files
+.env.local
+.env.*.local
+
+# Log files
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# Editor directories and files
+.idea
+.vscode/*
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+
+!.vscode/*.code-snippets
+
+# script
+/vuexy-scripts
+
+# Docs
+/docs/.temp
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..79b8a262
--- /dev/null
+++ b/README.md
@@ -0,0 +1,3 @@
+# Vuexy - Vuejs, React, HTML & Laravel Admin Dashboard Template
+
+**Vuexy – Vuejs, React, HTML & Laravel Admin Dashboard Template** – is the most developer friendly & highly customizable Admin Dashboard Template based on Bootstrap 4, Bootstrap Vue & Reactstrap.
diff --git a/babel.config.js b/babel.config.js
new file mode 100644
index 00000000..df195386
--- /dev/null
+++ b/babel.config.js
@@ -0,0 +1,5 @@
+module.exports = {
+ presets: [
+ '@vue/cli-plugin-babel/preset',
+ ],
+}
diff --git a/jsconfig.json b/jsconfig.json
new file mode 100644
index 00000000..ecc10f41
--- /dev/null
+++ b/jsconfig.json
@@ -0,0 +1,9 @@
+{
+ "compilerOptions": {
+ "baseUrl": ".",
+ "paths": {
+ "@/*": ["src/*"],
+ "@core/*": ["src/@core/*"],
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 00000000..e85d9c7a
--- /dev/null
+++ b/package.json
@@ -0,0 +1,87 @@
+{
+ "name": "vuexy-vuejs-react-html-laravel-admin-dashboard-template",
+ "version": "6.4.0",
+ "private": true,
+ "scripts": {
+ "serve": "vue-cli-service serve",
+ "build": "vue-cli-service build",
+ "lint": "vue-cli-service lint",
+ "tauri:build": "vue-cli-service tauri:build",
+ "tauri:serve": "vue-cli-service tauri:serve"
+ },
+ "dependencies": {
+ "@casl/ability": "4.1.6",
+ "@casl/vue": "1.1.1",
+ "@fullcalendar/common": "5.x",
+ "@fullcalendar/core": "5.x",
+ "@fullcalendar/daygrid": "5.x",
+ "@fullcalendar/interaction": "5.x",
+ "@fullcalendar/list": "5.x",
+ "@fullcalendar/timegrid": "5.x",
+ "@fullcalendar/vue": "5.x",
+ "@vue/composition-api": "1.0.0-beta.22",
+ "@vueuse/core": "4.0.0",
+ "animate.css": "4.1.1",
+ "apexcharts": "3.23.0",
+ "axios": "0.21.1",
+ "axios-mock-adapter": "1.19.0",
+ "bootstrap": "4.6.0",
+ "bootstrap-vue": "2.21.1",
+ "chart.js": "2.9.4",
+ "core-js": "3.8.1",
+ "echarts": "4.8.0",
+ "jsonwebtoken": "8.5.1",
+ "leaflet": "1.6.0",
+ "portal-vue": "2.1.7",
+ "postcss-rtl": "1.7.3",
+ "prismjs": "1.19.0",
+ "swiper": "5.4.5",
+ "uuid": "8.3.2",
+ "vee-validate": "3.4.5",
+ "vue": "2.x",
+ "vue-apexcharts": "1.6.0",
+ "vue-autosuggest": "2.2.0",
+ "vue-awesome-swiper": "4.1.1",
+ "vue-chartjs": "3.5.0",
+ "vue-cleave-component": "2.1.3",
+ "vue-clipboard2": "0.3.1",
+ "vue-context": "6.0.0",
+ "vue-echarts": "5.0.0-beta.0",
+ "vue-feather-icons": "5.1.0",
+ "vue-flatpickr-component": "8.1.6",
+ "vue-form-wizard": "0.8.4",
+ "vue-good-table": "2.21.0",
+ "vue-i18n": "8.22.2",
+ "vue-perfect-scrollbar": "0.2.1",
+ "vue-prism-component": "1.1.1",
+ "vue-quill-editor": "3.0.6",
+ "vue-ripple-directive": "2.0.1",
+ "vue-router": "3.4.9",
+ "vue-select": "3.11.2",
+ "vue-slider-component": "3.2.11",
+ "vue-sweetalert2": "4.1.1",
+ "vue-toastification": "1.7.8",
+ "vue-tour": "1.5.0",
+ "vue-tree-halower": "1.8.3",
+ "vue2-leaflet": "2.5.2",
+ "vuedraggable": "2.24.3",
+ "vuex": "3.6.0"
+ },
+ "devDependencies": {
+ "@vue/cli-plugin-babel": "~4.5.9",
+ "@vue/cli-plugin-eslint": "~4.5.9",
+ "@vue/cli-plugin-router": "~4.5.9",
+ "@vue/cli-plugin-vuex": "~4.5.9",
+ "@vue/cli-service": "~4.5.9",
+ "@vue/eslint-config-airbnb": "^5.3.0",
+ "@vuepress/plugin-medium-zoom": "^1.7.1",
+ "babel-eslint": "^10.0.3",
+ "eslint": "6.8.0",
+ "eslint-plugin-import": "^2.22.1",
+ "eslint-plugin-vue": "6.2.2",
+ "sass": "1.32.*",
+ "sass-loader": "^10.1.0",
+ "vue-cli-plugin-tauri": "~1.0.0-beta.3",
+ "vue-template-compiler": "2.x"
+ }
+}
diff --git a/postcss.config.js b/postcss.config.js
new file mode 100644
index 00000000..fa8a7fab
--- /dev/null
+++ b/postcss.config.js
@@ -0,0 +1,5 @@
+const rtl = require('postcss-rtl')
+
+module.exports = {
+ plugins: [rtl()],
+}
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 00000000..60a94e92
Binary files /dev/null and b/public/favicon.ico differ
diff --git a/public/index.html b/public/index.html
new file mode 100644
index 00000000..faf5b8c6
--- /dev/null
+++ b/public/index.html
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ Vuexy - Vuejs Admin Dashboard Template
+
+
+
+ We're sorry but Vuexy - Vuejs Admin Dashboard Template doesn't work properly without JavaScript enabled. Please
+ enable it to continue.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/loader.css b/public/loader.css
new file mode 100644
index 00000000..7bc6e2f7
--- /dev/null
+++ b/public/loader.css
@@ -0,0 +1,84 @@
+body {
+ margin: 0;
+}
+
+#loading-bg {
+ width: 100%;
+ height: 100%;
+ background: #fff;
+ display: block;
+ position: absolute;
+}
+.loading-logo {
+ position: absolute;
+ left: calc(50% - 45px);
+ top: 40%;
+}
+.loading {
+ position: absolute;
+ left: calc(50% - 35px);
+ top: 50%;
+ width: 55px;
+ height: 55px;
+ border-radius: 50%;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ border: 3px solid transparent;
+}
+.loading .effect-1,
+.loading .effect-2 {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ border: 3px solid transparent;
+ border-left: 3px solid rgba(121, 97, 249, 1);
+ border-radius: 50%;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.loading .effect-1 {
+ animation: rotate 1s ease infinite;
+}
+.loading .effect-2 {
+ animation: rotateOpacity 1s ease infinite 0.1s;
+}
+.loading .effect-3 {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ border: 3px solid transparent;
+ border-left: 3px solid rgba(121, 97, 249, 1);
+ -webkit-animation: rotateOpacity 1s ease infinite 0.2s;
+ animation: rotateOpacity 1s ease infinite 0.2s;
+ border-radius: 50%;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.loading .effects {
+ transition: all 0.3s ease;
+}
+
+@keyframes rotate {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(1turn);
+ transform: rotate(1turn);
+ }
+}
+@keyframes rotateOpacity {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ opacity: 0.1;
+ }
+ 100% {
+ -webkit-transform: rotate(1turn);
+ transform: rotate(1turn);
+ opacity: 1;
+ }
+}
diff --git a/public/logo.png b/public/logo.png
new file mode 100644
index 00000000..d012fb48
Binary files /dev/null and b/public/logo.png differ
diff --git a/src/@core/app-config/useAppConfig.js b/src/@core/app-config/useAppConfig.js
new file mode 100644
index 00000000..c74ece5c
--- /dev/null
+++ b/src/@core/app-config/useAppConfig.js
@@ -0,0 +1,142 @@
+import { computed, watch } from '@vue/composition-api'
+import store from '@/store'
+
+export default function usAppConfig() {
+ // ------------------------------------------------
+ // isVerticalMenuCollapsed
+ // ------------------------------------------------
+ const isVerticalMenuCollapsed = computed({
+ get: () => store.state.verticalMenu.isVerticalMenuCollapsed,
+ set: val => {
+ store.commit('verticalMenu/UPDATE_VERTICAL_MENU_COLLAPSED', val)
+ },
+ })
+
+ // ------------------------------------------------
+ // RTL
+ // ------------------------------------------------
+ const isRTL = computed({
+ get: () => store.state.appConfig.layout.isRTL,
+ set: val => {
+ store.commit('appConfig/TOGGLE_RTL', val)
+ },
+ })
+
+ // ------------------------------------------------
+ // Skin
+ // ------------------------------------------------
+ const skin = computed({
+ get: () => store.state.appConfig.layout.skin,
+ set: val => {
+ store.commit('appConfig/UPDATE_SKIN', val)
+ },
+ })
+
+ const skinClasses = computed(() => {
+ if (skin.value === 'bordered') return 'bordered-layout'
+ if (skin.value === 'semi-dark') return 'semi-dark-layout'
+
+ // Do not return any class for dark layout because dark layout updates class in body
+ // Do not return any class for light layout as that is default layout
+ return null
+ })
+
+ // ------------------------------------------------
+ // routerTransition
+ // ------------------------------------------------
+ const routerTransition = computed({
+ get: () => store.state.appConfig.layout.routerTransition,
+ set: val => {
+ store.commit('appConfig/UPDATE_ROUTER_TRANSITION', val)
+ },
+ })
+
+ // *===============================================---*
+ // *--------- LAYOUT ---------------------------------------*
+ // *===============================================---*
+
+ // ------------------------------------------------
+ // layoutType
+ // ------------------------------------------------
+
+ const layoutType = computed({
+ get: () => store.state.appConfig.layout.type,
+ set: val => {
+ store.commit('appConfig/UPDATE_LAYOUT_TYPE', val)
+ },
+ })
+
+ // Reset skin if skin is semi-dark and move to horizontal layout
+ watch(layoutType, val => {
+ if (val === 'horizontal' && skin.value === 'semi-dark') skin.value = 'light'
+ })
+
+ // ------------------------------------------------
+ // Content Width (Full/Boxed)
+ // ------------------------------------------------
+ const contentWidth = computed({
+ get: () => store.state.appConfig.layout.contentWidth,
+ set: val => {
+ store.commit('appConfig/UPDATE_CONTENT_WIDTH', val)
+ },
+ })
+
+ // ------------------------------------------------
+ // isNavMenuHidden
+ // ------------------------------------------------
+ const isNavMenuHidden = computed({
+ get: () => store.state.appConfig.layout.menu.hidden,
+ set: val => {
+ store.commit('appConfig/UPDATE_NAV_MENU_HIDDEN', val)
+ },
+ })
+
+ // *===============================================---*
+ // *--------- NAVBAR ---------------------------------------*
+ // *===============================================---*
+
+ const navbarBackgroundColor = computed({
+ get: () => store.state.appConfig.layout.navbar.backgroundColor,
+ set: val => {
+ store.commit('appConfig/UPDATE_NAVBAR_CONFIG', { backgroundColor: val })
+ },
+ })
+
+ const navbarType = computed({
+ get: () => store.state.appConfig.layout.navbar.type,
+ set: val => {
+ store.commit('appConfig/UPDATE_NAVBAR_CONFIG', { type: val })
+ },
+ })
+
+ // *===============================================---*
+ // *--------- FOOTER ---------------------------------------*
+ // *===============================================---*
+
+ const footerType = computed({
+ get: () => store.state.appConfig.layout.footer.type,
+ set: val => {
+ store.commit('appConfig/UPDATE_FOOTER_CONFIG', { type: val })
+ },
+ })
+
+ return {
+ isVerticalMenuCollapsed,
+ isRTL,
+ skin,
+ skinClasses,
+ routerTransition,
+
+ // Navbar
+ navbarBackgroundColor,
+ navbarType,
+
+ // Footer
+ footerType,
+
+ // Layout
+ layoutType,
+ contentWidth,
+ isNavMenuHidden,
+ }
+}
diff --git a/src/@core/assets/fonts/feather/fonts/feather.eot b/src/@core/assets/fonts/feather/fonts/feather.eot
new file mode 100644
index 00000000..58371d90
Binary files /dev/null and b/src/@core/assets/fonts/feather/fonts/feather.eot differ
diff --git a/src/@core/assets/fonts/feather/fonts/feather.svg b/src/@core/assets/fonts/feather/fonts/feather.svg
new file mode 100644
index 00000000..2eed58ec
--- /dev/null
+++ b/src/@core/assets/fonts/feather/fonts/feather.svg
@@ -0,0 +1,849 @@
+
+
+
+
+
+Created by iconfont
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/assets/fonts/feather/fonts/feather.ttf b/src/@core/assets/fonts/feather/fonts/feather.ttf
new file mode 100644
index 00000000..0b33dac7
Binary files /dev/null and b/src/@core/assets/fonts/feather/fonts/feather.ttf differ
diff --git a/src/@core/assets/fonts/feather/fonts/feather.woff b/src/@core/assets/fonts/feather/fonts/feather.woff
new file mode 100644
index 00000000..9b03a72a
Binary files /dev/null and b/src/@core/assets/fonts/feather/fonts/feather.woff differ
diff --git a/src/@core/assets/fonts/feather/iconfont.css b/src/@core/assets/fonts/feather/iconfont.css
new file mode 100644
index 00000000..014cfe0c
--- /dev/null
+++ b/src/@core/assets/fonts/feather/iconfont.css
@@ -0,0 +1,1112 @@
+@font-face {
+ font-family: 'feather';
+ src: url('fonts/feather.eot?t=1525787366991'); /* IE9*/
+ src: url('fonts/feather.eot?t=1525787366991#iefix') format('embedded-opentype'),
+ /* IE6-IE8 */ url('fonts/feather.woff?t=1525787366991') format('woff'),
+ /* chrome, firefox */ url('fonts/feather.ttf?t=1525787366991') format('truetype'),
+ /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ url('fonts/feather.svg?t=1525787366991#feather')
+ format('svg'); /* iOS 4.1- */
+}
+
+.feather {
+ /* use !important to prevent issues with browser extensions that change fonts */
+ font-family: 'feather' !important;
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+
+ /* Better Font Rendering =========== */
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-alert-octagon:before {
+ content: '\e81b';
+}
+
+.icon-alert-circle:before {
+ content: '\e81c';
+}
+
+.icon-activity:before {
+ content: '\e81d';
+}
+
+.icon-alert-triangle:before {
+ content: '\e81e';
+}
+
+.icon-align-center:before {
+ content: '\e81f';
+}
+
+.icon-airplay:before {
+ content: '\e820';
+}
+
+.icon-align-justify:before {
+ content: '\e821';
+}
+
+.icon-align-left:before {
+ content: '\e822';
+}
+
+.icon-align-right:before {
+ content: '\e823';
+}
+
+.icon-arrow-down-left:before {
+ content: '\e824';
+}
+
+.icon-arrow-down-right:before {
+ content: '\e825';
+}
+
+.icon-anchor:before {
+ content: '\e826';
+}
+
+.icon-aperture:before {
+ content: '\e827';
+}
+
+.icon-arrow-left:before {
+ content: '\e828';
+}
+
+.icon-arrow-right:before {
+ content: '\e829';
+}
+
+.icon-arrow-down:before {
+ content: '\e82a';
+}
+
+.icon-arrow-up-left:before {
+ content: '\e82b';
+}
+
+.icon-arrow-up-right:before {
+ content: '\e82c';
+}
+
+.icon-arrow-up:before {
+ content: '\e82d';
+}
+
+.icon-award:before {
+ content: '\e82e';
+}
+
+.icon-bar-chart:before {
+ content: '\e82f';
+}
+
+.icon-at-sign:before {
+ content: '\e830';
+}
+
+.icon-bar-chart-2:before {
+ content: '\e831';
+}
+
+.icon-battery-charging:before {
+ content: '\e832';
+}
+
+.icon-bell-off:before {
+ content: '\e833';
+}
+
+.icon-battery:before {
+ content: '\e834';
+}
+
+.icon-bluetooth:before {
+ content: '\e835';
+}
+
+.icon-bell:before {
+ content: '\e836';
+}
+
+.icon-book:before {
+ content: '\e837';
+}
+
+.icon-briefcase:before {
+ content: '\e838';
+}
+
+.icon-camera-off:before {
+ content: '\e839';
+}
+
+.icon-calendar:before {
+ content: '\e83a';
+}
+
+.icon-bookmark:before {
+ content: '\e83b';
+}
+
+.icon-box:before {
+ content: '\e83c';
+}
+
+.icon-camera:before {
+ content: '\e83d';
+}
+
+.icon-check-circle:before {
+ content: '\e83e';
+}
+
+.icon-check:before {
+ content: '\e83f';
+}
+
+.icon-check-square:before {
+ content: '\e840';
+}
+
+.icon-cast:before {
+ content: '\e841';
+}
+
+.icon-chevron-down:before {
+ content: '\e842';
+}
+
+.icon-chevron-left:before {
+ content: '\e843';
+}
+
+.icon-chevron-right:before {
+ content: '\e844';
+}
+
+.icon-chevron-up:before {
+ content: '\e845';
+}
+
+.icon-chevrons-down:before {
+ content: '\e846';
+}
+
+.icon-chevrons-right:before {
+ content: '\e847';
+}
+
+.icon-chevrons-up:before {
+ content: '\e848';
+}
+
+.icon-chevrons-left:before {
+ content: '\e849';
+}
+
+.icon-circle:before {
+ content: '\e84a';
+}
+
+.icon-clipboard:before {
+ content: '\e84b';
+}
+
+.icon-chrome:before {
+ content: '\e84c';
+}
+
+.icon-clock:before {
+ content: '\e84d';
+}
+
+.icon-cloud-lightning:before {
+ content: '\e84e';
+}
+
+.icon-cloud-drizzle:before {
+ content: '\e84f';
+}
+
+.icon-cloud-rain:before {
+ content: '\e850';
+}
+
+.icon-cloud-off:before {
+ content: '\e851';
+}
+
+.icon-codepen:before {
+ content: '\e852';
+}
+
+.icon-cloud-snow:before {
+ content: '\e853';
+}
+
+.icon-compass:before {
+ content: '\e854';
+}
+
+.icon-copy:before {
+ content: '\e855';
+}
+
+.icon-corner-down-right:before {
+ content: '\e856';
+}
+
+.icon-corner-down-left:before {
+ content: '\e857';
+}
+
+.icon-corner-left-down:before {
+ content: '\e858';
+}
+
+.icon-corner-left-up:before {
+ content: '\e859';
+}
+
+.icon-corner-up-left:before {
+ content: '\e85a';
+}
+
+.icon-corner-up-right:before {
+ content: '\e85b';
+}
+
+.icon-corner-right-down:before {
+ content: '\e85c';
+}
+
+.icon-corner-right-up:before {
+ content: '\e85d';
+}
+
+.icon-cpu:before {
+ content: '\e85e';
+}
+
+.icon-credit-card:before {
+ content: '\e85f';
+}
+
+.icon-crosshair:before {
+ content: '\e860';
+}
+
+.icon-disc:before {
+ content: '\e861';
+}
+
+.icon-delete:before {
+ content: '\e862';
+}
+
+.icon-download-cloud:before {
+ content: '\e863';
+}
+
+.icon-download:before {
+ content: '\e864';
+}
+
+.icon-droplet:before {
+ content: '\e865';
+}
+
+.icon-edit-2:before {
+ content: '\e866';
+}
+
+.icon-edit:before {
+ content: '\e867';
+}
+
+.icon-edit-1:before {
+ content: '\e868';
+}
+
+.icon-external-link:before {
+ content: '\e869';
+}
+
+.icon-eye:before {
+ content: '\e86a';
+}
+
+.icon-feather:before {
+ content: '\e86b';
+}
+
+.icon-facebook:before {
+ content: '\e86c';
+}
+
+.icon-file-minus:before {
+ content: '\e86d';
+}
+
+.icon-eye-off:before {
+ content: '\e86e';
+}
+
+.icon-fast-forward:before {
+ content: '\e86f';
+}
+
+.icon-file-text:before {
+ content: '\e870';
+}
+
+.icon-film:before {
+ content: '\e871';
+}
+
+.icon-file:before {
+ content: '\e872';
+}
+
+.icon-file-plus:before {
+ content: '\e873';
+}
+
+.icon-folder:before {
+ content: '\e874';
+}
+
+.icon-filter:before {
+ content: '\e875';
+}
+
+.icon-flag:before {
+ content: '\e876';
+}
+
+.icon-globe:before {
+ content: '\e877';
+}
+
+.icon-grid:before {
+ content: '\e878';
+}
+
+.icon-heart:before {
+ content: '\e879';
+}
+
+.icon-home:before {
+ content: '\e87a';
+}
+
+.icon-github:before {
+ content: '\e87b';
+}
+
+.icon-image:before {
+ content: '\e87c';
+}
+
+.icon-inbox:before {
+ content: '\e87d';
+}
+
+.icon-layers:before {
+ content: '\e87e';
+}
+
+.icon-info:before {
+ content: '\e87f';
+}
+
+.icon-instagram:before {
+ content: '\e880';
+}
+
+.icon-layout:before {
+ content: '\e881';
+}
+
+.icon-link-2:before {
+ content: '\e882';
+}
+
+.icon-life-buoy:before {
+ content: '\e883';
+}
+
+.icon-link:before {
+ content: '\e884';
+}
+
+.icon-log-in:before {
+ content: '\e885';
+}
+
+.icon-list:before {
+ content: '\e886';
+}
+
+.icon-lock:before {
+ content: '\e887';
+}
+
+.icon-log-out:before {
+ content: '\e888';
+}
+
+.icon-loader:before {
+ content: '\e889';
+}
+
+.icon-mail:before {
+ content: '\e88a';
+}
+
+.icon-maximize-2:before {
+ content: '\e88b';
+}
+
+.icon-map:before {
+ content: '\e88c';
+}
+
+.icon-map-pin:before {
+ content: '\e88e';
+}
+
+.icon-menu:before {
+ content: '\e88f';
+}
+
+.icon-message-circle:before {
+ content: '\e890';
+}
+
+.icon-message-square:before {
+ content: '\e891';
+}
+
+.icon-minimize-2:before {
+ content: '\e892';
+}
+
+.icon-mic-off:before {
+ content: '\e893';
+}
+
+.icon-minus-circle:before {
+ content: '\e894';
+}
+
+.icon-mic:before {
+ content: '\e895';
+}
+
+.icon-minus-square:before {
+ content: '\e896';
+}
+
+.icon-minus:before {
+ content: '\e897';
+}
+
+.icon-moon:before {
+ content: '\e898';
+}
+
+.icon-monitor:before {
+ content: '\e899';
+}
+
+.icon-more-vertical:before {
+ content: '\e89a';
+}
+
+.icon-more-horizontal:before {
+ content: '\e89b';
+}
+
+.icon-move:before {
+ content: '\e89c';
+}
+
+.icon-music:before {
+ content: '\e89d';
+}
+
+.icon-navigation-2:before {
+ content: '\e89e';
+}
+
+.icon-navigation:before {
+ content: '\e89f';
+}
+
+.icon-octagon:before {
+ content: '\e8a0';
+}
+
+.icon-package:before {
+ content: '\e8a1';
+}
+
+.icon-pause-circle:before {
+ content: '\e8a2';
+}
+
+.icon-pause:before {
+ content: '\e8a3';
+}
+
+.icon-percent:before {
+ content: '\e8a4';
+}
+
+.icon-phone-call:before {
+ content: '\e8a5';
+}
+
+.icon-phone-forwarded:before {
+ content: '\e8a6';
+}
+
+.icon-phone-missed:before {
+ content: '\e8a7';
+}
+
+.icon-phone-off:before {
+ content: '\e8a8';
+}
+
+.icon-phone-incoming:before {
+ content: '\e8a9';
+}
+
+.icon-phone:before {
+ content: '\e8aa';
+}
+
+.icon-phone-outgoing:before {
+ content: '\e8ab';
+}
+
+.icon-pie-chart:before {
+ content: '\e8ac';
+}
+
+.icon-play-circle:before {
+ content: '\e8ad';
+}
+
+.icon-play:before {
+ content: '\e8ae';
+}
+
+.icon-plus-square:before {
+ content: '\e8af';
+}
+
+.icon-plus-circle:before {
+ content: '\e8b0';
+}
+
+.icon-plus:before {
+ content: '\e8b1';
+}
+
+.icon-pocket:before {
+ content: '\e8b2';
+}
+
+.icon-printer:before {
+ content: '\e8b3';
+}
+
+.icon-power:before {
+ content: '\e8b4';
+}
+
+.icon-radio:before {
+ content: '\e8b5';
+}
+
+.icon-repeat:before {
+ content: '\e8b6';
+}
+
+.icon-refresh-ccw:before {
+ content: '\e8b7';
+}
+
+.icon-rewind:before {
+ content: '\e8b8';
+}
+
+.icon-rotate-ccw:before {
+ content: '\e8b9';
+}
+
+.icon-refresh-cw:before {
+ content: '\e8ba';
+}
+
+.icon-rotate-cw:before {
+ content: '\e8bb';
+}
+
+.icon-save:before {
+ content: '\e8bc';
+}
+
+.icon-search:before {
+ content: '\e8bd';
+}
+
+.icon-server:before {
+ content: '\e8be';
+}
+
+.icon-scissors:before {
+ content: '\e8bf';
+}
+
+.icon-share-2:before {
+ content: '\e8c0';
+}
+
+.icon-share:before {
+ content: '\e8c1';
+}
+
+.icon-shield:before {
+ content: '\e8c2';
+}
+
+.icon-settings:before {
+ content: '\e8c3';
+}
+
+.icon-skip-back:before {
+ content: '\e8c4';
+}
+
+.icon-shuffle:before {
+ content: '\e8c5';
+}
+
+.icon-sidebar:before {
+ content: '\e8c6';
+}
+
+.icon-skip-forward:before {
+ content: '\e8c7';
+}
+
+.icon-slack:before {
+ content: '\e8c8';
+}
+
+.icon-slash:before {
+ content: '\e8c9';
+}
+
+.icon-smartphone:before {
+ content: '\e8ca';
+}
+
+.icon-square:before {
+ content: '\e8cb';
+}
+
+.icon-speaker:before {
+ content: '\e8cc';
+}
+
+.icon-star:before {
+ content: '\e8cd';
+}
+
+.icon-stop-circle:before {
+ content: '\e8ce';
+}
+
+.icon-sun:before {
+ content: '\e8cf';
+}
+
+.icon-sunrise:before {
+ content: '\e8d0';
+}
+
+.icon-tablet:before {
+ content: '\e8d1';
+}
+
+.icon-tag:before {
+ content: '\e8d2';
+}
+
+.icon-sunset:before {
+ content: '\e8d3';
+}
+
+.icon-target:before {
+ content: '\e8d4';
+}
+
+.icon-thermometer:before {
+ content: '\e8d5';
+}
+
+.icon-thumbs-up:before {
+ content: '\e8d6';
+}
+
+.icon-thumbs-down:before {
+ content: '\e8d7';
+}
+
+.icon-toggle-left:before {
+ content: '\e8d8';
+}
+
+.icon-toggle-right:before {
+ content: '\e8d9';
+}
+
+.icon-trash-2:before {
+ content: '\e8da';
+}
+
+.icon-trash:before {
+ content: '\e8db';
+}
+
+.icon-trending-up:before {
+ content: '\e8dc';
+}
+
+.icon-trending-down:before {
+ content: '\e8dd';
+}
+
+.icon-triangle:before {
+ content: '\e8de';
+}
+
+.icon-type:before {
+ content: '\e8df';
+}
+
+.icon-twitter:before {
+ content: '\e8e0';
+}
+
+.icon-upload:before {
+ content: '\e8e1';
+}
+
+.icon-umbrella:before {
+ content: '\e8e2';
+}
+
+.icon-upload-cloud:before {
+ content: '\e8e3';
+}
+
+.icon-unlock:before {
+ content: '\e8e4';
+}
+
+.icon-user-check:before {
+ content: '\e8e5';
+}
+
+.icon-user-minus:before {
+ content: '\e8e6';
+}
+
+.icon-user-plus:before {
+ content: '\e8e7';
+}
+
+.icon-user-x:before {
+ content: '\e8e8';
+}
+
+.icon-user:before {
+ content: '\e8e9';
+}
+
+.icon-users:before {
+ content: '\e8ea';
+}
+
+.icon-video-off:before {
+ content: '\e8eb';
+}
+
+.icon-video:before {
+ content: '\e8ec';
+}
+
+.icon-voicemail:before {
+ content: '\e8ed';
+}
+
+.icon-volume-x:before {
+ content: '\e8ee';
+}
+
+.icon-volume-2:before {
+ content: '\e8ef';
+}
+
+.icon-volume-1:before {
+ content: '\e8f0';
+}
+
+.icon-volume:before {
+ content: '\e8f1';
+}
+
+.icon-watch:before {
+ content: '\e8f2';
+}
+
+.icon-wifi:before {
+ content: '\e8f3';
+}
+
+.icon-x-square:before {
+ content: '\e8f4';
+}
+
+.icon-wind:before {
+ content: '\e8f5';
+}
+
+.icon-x:before {
+ content: '\e8f6';
+}
+
+.icon-x-circle:before {
+ content: '\e8f7';
+}
+
+.icon-zap:before {
+ content: '\e8f8';
+}
+
+.icon-zoom-in:before {
+ content: '\e8f9';
+}
+
+.icon-zoom-out:before {
+ content: '\e8fa';
+}
+
+.icon-command:before {
+ content: '\e8fb';
+}
+
+.icon-cloud:before {
+ content: '\e8fc';
+}
+
+.icon-hash:before {
+ content: '\e8fd';
+}
+
+.icon-headphones:before {
+ content: '\e8fe';
+}
+
+.icon-underline:before {
+ content: '\e8ff';
+}
+
+.icon-italic:before {
+ content: '\e900';
+}
+
+.icon-bold:before {
+ content: '\e901';
+}
+
+.icon-crop:before {
+ content: '\e902';
+}
+
+.icon-help-circle:before {
+ content: '\e903';
+}
+
+.icon-paperclip:before {
+ content: '\e904';
+}
+
+.icon-shopping-cart:before {
+ content: '\e905';
+}
+
+.icon-tv:before {
+ content: '\e906';
+}
+
+.icon-wifi-off:before {
+ content: '\e907';
+}
+
+.icon-minimize:before {
+ content: '\e88d';
+}
+
+.icon-maximize:before {
+ content: '\e908';
+}
+
+.icon-gitlab:before {
+ content: '\e909';
+}
+
+.icon-sliders:before {
+ content: '\e90a';
+}
+
+.icon-star-on:before {
+ content: '\e90b';
+}
+
+.icon-heart-on:before {
+ content: '\e90c';
+}
+
+.icon-archive:before {
+ content: '\e90d';
+}
+
+.icon-arrow-down-circle:before {
+ content: '\e90e';
+}
+
+.icon-arrow-up-circle:before {
+ content: '\e90f';
+}
+
+.icon-arrow-left-circle:before {
+ content: '\e910';
+}
+
+.icon-arrow-right-circle:before {
+ content: '\e911';
+}
+
+.icon-bar-chart-line-:before {
+ content: '\e912';
+}
+
+.icon-bar-chart-line:before {
+ content: '\e913';
+}
+
+.icon-book-open:before {
+ content: '\e914';
+}
+
+.icon-code:before {
+ content: '\e915';
+}
+
+.icon-database:before {
+ content: '\e916';
+}
+
+.icon-dollar-sign:before {
+ content: '\e917';
+}
+
+.icon-folder-plus:before {
+ content: '\e918';
+}
+
+.icon-gift:before {
+ content: '\e919';
+}
+
+.icon-folder-minus:before {
+ content: '\e91a';
+}
+
+.icon-git-commit:before {
+ content: '\e91b';
+}
+
+.icon-git-branch:before {
+ content: '\e91c';
+}
+
+.icon-git-pull-request:before {
+ content: '\e91d';
+}
+
+.icon-git-merge:before {
+ content: '\e91e';
+}
+
+.icon-linkedin:before {
+ content: '\e91f';
+}
+
+.icon-hard-drive:before {
+ content: '\e920';
+}
+
+.icon-more-vertical-:before {
+ content: '\e921';
+}
+
+.icon-more-horizontal-:before {
+ content: '\e922';
+}
+
+.icon-rss:before {
+ content: '\e923';
+}
+
+.icon-send:before {
+ content: '\e924';
+}
+
+.icon-shield-off:before {
+ content: '\e925';
+}
+
+.icon-shopping-bag:before {
+ content: '\e926';
+}
+
+.icon-terminal:before {
+ content: '\e927';
+}
+
+.icon-truck:before {
+ content: '\e928';
+}
+
+.icon-zap-off:before {
+ content: '\e929';
+}
+
+.icon-youtube:before {
+ content: '\e92a';
+}
diff --git a/src/@core/auth/jwt/jwtDefaultConfig.js b/src/@core/auth/jwt/jwtDefaultConfig.js
new file mode 100644
index 00000000..9ec9c237
--- /dev/null
+++ b/src/@core/auth/jwt/jwtDefaultConfig.js
@@ -0,0 +1,15 @@
+export default {
+ // Endpoints
+ loginEndpoint: '/jwt/login',
+ registerEndpoint: '/jwt/register',
+ refreshEndpoint: '/jwt/refresh-token',
+ logoutEndpoint: '/jwt/logout',
+
+ // This will be prefixed in authorization header with token
+ // e.g. Authorization: Bearer
+ tokenType: 'Bearer',
+
+ // Value of this property will be used as key to store JWT token in storage
+ storageTokenKeyName: 'accessToken',
+ storageRefreshTokenKeyName: 'refreshToken',
+}
diff --git a/src/@core/auth/jwt/jwtService.js b/src/@core/auth/jwt/jwtService.js
new file mode 100644
index 00000000..51c24f57
--- /dev/null
+++ b/src/@core/auth/jwt/jwtService.js
@@ -0,0 +1,111 @@
+import jwtDefaultConfig from './jwtDefaultConfig'
+
+export default class JwtService {
+ // Will be used by this service for making API calls
+ axiosIns = null
+
+ // jwtConfig <= Will be used by this service
+ jwtConfig = { ...jwtDefaultConfig }
+
+ // For Refreshing Token
+ isAlreadyFetchingAccessToken = false
+
+ // For Refreshing Token
+ subscribers = []
+
+ constructor(axiosIns, jwtOverrideConfig) {
+ this.axiosIns = axiosIns
+ this.jwtConfig = { ...this.jwtConfig, ...jwtOverrideConfig }
+
+ // Request Interceptor
+ this.axiosIns.interceptors.request.use(
+ config => {
+ // Get token from localStorage
+ const accessToken = this.getToken()
+
+ // If token is present add it to request's Authorization Header
+ if (accessToken) {
+ // eslint-disable-next-line no-param-reassign
+ config.headers.Authorization = `${this.jwtConfig.tokenType} ${accessToken}`
+ }
+ return config
+ },
+ error => Promise.reject(error),
+ )
+
+ // Add request/response interceptor
+ this.axiosIns.interceptors.response.use(
+ response => response,
+ error => {
+ // const { config, response: { status } } = error
+ const { config, response } = error
+ const originalRequest = config
+
+ // if (status === 401) {
+ if (response && response.status === 401) {
+ if (!this.isAlreadyFetchingAccessToken) {
+ this.isAlreadyFetchingAccessToken = true
+ this.refreshToken().then(r => {
+ this.isAlreadyFetchingAccessToken = false
+
+ // Update accessToken in localStorage
+ this.setToken(r.data.accessToken)
+ this.setRefreshToken(r.data.refreshToken)
+
+ this.onAccessTokenFetched(r.data.accessToken)
+ })
+ }
+ const retryOriginalRequest = new Promise(resolve => {
+ this.addSubscriber(accessToken => {
+ // Make sure to assign accessToken according to your response.
+ // Check: https://pixinvent.ticksy.com/ticket/2413870
+ // Change Authorization header
+ originalRequest.headers.Authorization = `${this.jwtConfig.tokenType} ${accessToken}`
+ resolve(this.axiosIns(originalRequest))
+ })
+ })
+ return retryOriginalRequest
+ }
+ return Promise.reject(error)
+ },
+ )
+ }
+
+ onAccessTokenFetched(accessToken) {
+ this.subscribers = this.subscribers.filter(callback => callback(accessToken))
+ }
+
+ addSubscriber(callback) {
+ this.subscribers.push(callback)
+ }
+
+ getToken() {
+ return localStorage.getItem(this.jwtConfig.storageTokenKeyName)
+ }
+
+ getRefreshToken() {
+ return localStorage.getItem(this.jwtConfig.storageRefreshTokenKeyName)
+ }
+
+ setToken(value) {
+ localStorage.setItem(this.jwtConfig.storageTokenKeyName, value)
+ }
+
+ setRefreshToken(value) {
+ localStorage.setItem(this.jwtConfig.storageRefreshTokenKeyName, value)
+ }
+
+ login(...args) {
+ return this.axiosIns.post(this.jwtConfig.loginEndpoint, ...args)
+ }
+
+ register(...args) {
+ return this.axiosIns.post(this.jwtConfig.registerEndpoint, ...args)
+ }
+
+ refreshToken() {
+ return this.axiosIns.post(this.jwtConfig.refreshEndpoint, {
+ refreshToken: this.getRefreshToken(),
+ })
+ }
+}
diff --git a/src/@core/auth/jwt/useJwt.js b/src/@core/auth/jwt/useJwt.js
new file mode 100644
index 00000000..85e31c00
--- /dev/null
+++ b/src/@core/auth/jwt/useJwt.js
@@ -0,0 +1,9 @@
+import JwtService from './jwtService'
+
+export default function useJwt(axiosIns, jwtOverrideConfig) {
+ const jwt = new JwtService(axiosIns, jwtOverrideConfig)
+
+ return {
+ jwt,
+ }
+}
diff --git a/src/@core/comp-functions/forms/form-utils.js b/src/@core/comp-functions/forms/form-utils.js
new file mode 100644
index 00000000..c4655211
--- /dev/null
+++ b/src/@core/comp-functions/forms/form-utils.js
@@ -0,0 +1,23 @@
+export const useInputImageRenderer = (inputEl, callback) => {
+ const inputImageRenderer = () => {
+ const file = inputEl.value.files[0]
+ const reader = new FileReader()
+
+ reader.addEventListener(
+ 'load',
+ () => {
+ callback(reader.result)
+ },
+ false,
+ )
+
+ if (file) {
+ reader.readAsDataURL(file)
+ }
+ }
+ return {
+ inputImageRenderer,
+ }
+}
+
+export const _ = null
diff --git a/src/@core/comp-functions/forms/form-validation.js b/src/@core/comp-functions/forms/form-validation.js
new file mode 100644
index 00000000..d7605b3d
--- /dev/null
+++ b/src/@core/comp-functions/forms/form-validation.js
@@ -0,0 +1,66 @@
+import { ref, nextTick } from '@vue/composition-api'
+
+// ===========================================================
+// ! This is coupled with "veeValidate" plugin
+// ===========================================================
+
+export default function formValidation(resetFormData, clearFormData = () => {}) {
+ // ------------------------------------------------
+ // refFormObserver
+ // ! This is for veeValidate Observer
+ // * Used for veeValidate form observer
+ // ------------------------------------------------
+ const refFormObserver = ref(null)
+
+ // ------------------------------------------------
+ // resetObserver
+ // ! This function is coupled with veeValidate
+ // * It resets form observer
+ // ------------------------------------------------
+ const resetObserver = () => {
+ refFormObserver.value.reset()
+ }
+
+ // ------------------------------------------------
+ // getValidationState
+ // ! This function is coupled with veeValidate
+ // * It returns true/false based on validation
+ // ------------------------------------------------
+ // eslint-disable-next-line object-curly-newline
+ const getValidationState = ({ dirty, validated, required: fieldRequired, changed, valid = null }) => {
+ const result = dirty || validated ? valid : null
+ return !fieldRequired && !changed ? null : result
+ }
+
+ // ------------------------------------------------
+ // resetForm
+ // ! This function is coupled with veeValidate
+ // * This uses resetFormData arg to reset form data
+ // ------------------------------------------------
+ const resetForm = () => {
+ resetFormData()
+ nextTick(() => {
+ resetObserver()
+ })
+ }
+
+ // ------------------------------------------------
+ // clearForm
+ // ! This function is coupled with veeValidate
+ // * This uses clearFormData arg to reset form data
+ // ------------------------------------------------
+ const clearForm = () => {
+ clearFormData()
+ nextTick(() => {
+ resetObserver()
+ })
+ }
+
+ return {
+ refFormObserver,
+ resetObserver,
+ getValidationState,
+ resetForm,
+ clearForm,
+ }
+}
diff --git a/src/@core/comp-functions/misc/event-listeners.js b/src/@core/comp-functions/misc/event-listeners.js
new file mode 100644
index 00000000..16dc29ed
--- /dev/null
+++ b/src/@core/comp-functions/misc/event-listeners.js
@@ -0,0 +1,20 @@
+import { ref, onUnmounted } from '@vue/composition-api'
+
+export const useScrollListener = () => {
+ const scrolledTo = ref(null)
+
+ const scrollHandler = () => {
+ scrolledTo.value = window.scrollY
+ }
+
+ window.addEventListener('scroll', scrollHandler)
+ onUnmounted(() => {
+ window.removeEventListener('scroll', scrollHandler)
+ })
+
+ return {
+ scrolledTo,
+ }
+}
+
+export const _ = null
diff --git a/src/@core/comp-functions/ui/app.js b/src/@core/comp-functions/ui/app.js
new file mode 100644
index 00000000..17ccef0d
--- /dev/null
+++ b/src/@core/comp-functions/ui/app.js
@@ -0,0 +1,18 @@
+import store from '@/store'
+import { ref, watch, computed } from '@vue/composition-api'
+
+export const useResponsiveAppLeftSidebarVisibility = () => {
+ const mqShallShowLeftSidebar = ref(false)
+ // Close Active Sidebars and other stuff when going in large device
+ const currentBreakPoint = computed(() => store.getters['app/currentBreakPoint'])
+ watch(currentBreakPoint, (val, oldVal) => {
+ // Reset chats & contacts left sidebar
+ if (oldVal === 'md' && val === 'lg') mqShallShowLeftSidebar.value = false
+ })
+
+ return {
+ mqShallShowLeftSidebar,
+ }
+}
+
+export const _ = {}
diff --git a/src/@core/comp-functions/ui/vertical-menu.js b/src/@core/comp-functions/ui/vertical-menu.js
new file mode 100644
index 00000000..7141e3f6
--- /dev/null
+++ b/src/@core/comp-functions/ui/vertical-menu.js
@@ -0,0 +1,21 @@
+import { onBeforeUnmount } from '@vue/composition-api'
+import userAppConfig from '@core/app-config/useAppConfig'
+
+/**
+ * Collapse vertical menu when route is visited and restore the state on route leave
+ */
+export const useCollapseMenuOnVisit = () => {
+ const { isVerticalMenuCollapsed } = userAppConfig()
+ const wasVerticalMenuCollapsed = isVerticalMenuCollapsed.value
+
+ if (!wasVerticalMenuCollapsed.value) {
+ isVerticalMenuCollapsed.value = true
+ }
+
+ // Restore the original collapse value
+ onBeforeUnmount(() => {
+ isVerticalMenuCollapsed.value = wasVerticalMenuCollapsed
+ })
+}
+
+export const _ = null
diff --git a/src/@core/components/app-auto-suggest/AppAutoSuggest.vue b/src/@core/components/app-auto-suggest/AppAutoSuggest.vue
new file mode 100644
index 00000000..7d2fde54
--- /dev/null
+++ b/src/@core/components/app-auto-suggest/AppAutoSuggest.vue
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+
diff --git a/src/@core/components/app-auto-suggest/useAutoSuggest.js b/src/@core/components/app-auto-suggest/useAutoSuggest.js
new file mode 100644
index 00000000..443f8155
--- /dev/null
+++ b/src/@core/components/app-auto-suggest/useAutoSuggest.js
@@ -0,0 +1,55 @@
+import { ref, watch } from '@vue/composition-api'
+
+export default function useAutoSuggest(props) {
+ const filteredData = ref({})
+
+ /**
+ * Filter group against provided query
+ * Grp Structure:
+ * {
+ * key: 'title',
+ * data: [
+ * title: 'Admin', img: 'someImage.png',
+ * title: 'Template', img: 'otherImage.png',
+ * ]
+ * }
+ * @param {Object} grp Group object to perform filter on
+ * @param {String} query Query string to filter
+ */
+ const filterGrp = (grp, query) => {
+ const exactEle = grp.data.filter(item => item[grp.key].toLowerCase().startsWith(query.toLowerCase()))
+ const containEle = grp.data.filter(
+ // prettier-ignore
+ item => !item[grp.key].toLowerCase().startsWith(query.toLowerCase()) && item[grp.key].toLowerCase().indexOf(query.toLowerCase()) > -1,
+ )
+ return exactEle.concat(containEle).slice(0, props.searchLimit)
+ }
+
+ const searchQuery = ref('')
+ const resetsearchQuery = () => {
+ searchQuery.value = ''
+ }
+
+ const handleSearchQueryUpdate = val => {
+ if (val === '') {
+ filteredData.value = {}
+ } else {
+ const queriedData = {}
+ const dataGrps = Object.keys(props.data)
+
+ dataGrps.forEach((grp, i) => {
+ queriedData[dataGrps[i]] = filterGrp(props.data[grp], val)
+ })
+
+ filteredData.value = queriedData
+ }
+ }
+
+ watch(searchQuery, val => handleSearchQueryUpdate(val))
+
+ return {
+ searchQuery,
+ resetsearchQuery,
+ filteredData,
+ }
+}
diff --git a/src/@core/components/app-collapse/AppCollapse.vue b/src/@core/components/app-collapse/AppCollapse.vue
new file mode 100644
index 00000000..8d527a20
--- /dev/null
+++ b/src/@core/components/app-collapse/AppCollapse.vue
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
diff --git a/src/@core/components/app-collapse/AppCollapseItem.vue b/src/@core/components/app-collapse/AppCollapseItem.vue
new file mode 100644
index 00000000..bfc2cfa7
--- /dev/null
+++ b/src/@core/components/app-collapse/AppCollapseItem.vue
@@ -0,0 +1,87 @@
+
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/components/app-timeline/AppTimeline.vue b/src/@core/components/app-timeline/AppTimeline.vue
new file mode 100644
index 00000000..7cff30a8
--- /dev/null
+++ b/src/@core/components/app-timeline/AppTimeline.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
diff --git a/src/@core/components/app-timeline/AppTimelineItem.vue b/src/@core/components/app-timeline/AppTimelineItem.vue
new file mode 100644
index 00000000..88897b85
--- /dev/null
+++ b/src/@core/components/app-timeline/AppTimelineItem.vue
@@ -0,0 +1,182 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/components/app-tour/AppTour.vue b/src/@core/components/app-tour/AppTour.vue
new file mode 100644
index 00000000..d4e5def6
--- /dev/null
+++ b/src/@core/components/app-tour/AppTour.vue
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ Skip
+
+
+
+
+
+
+ Previous
+
+
+
+
+ Next
+
+
+
+
+
+ Finish
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/components/b-card-actions/BCardActions.vue b/src/@core/components/b-card-actions/BCardActions.vue
new file mode 100644
index 00000000..f2e2f672
--- /dev/null
+++ b/src/@core/components/b-card-actions/BCardActions.vue
@@ -0,0 +1,195 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/components/b-card-actions/BCardActionsContainer.vue b/src/@core/components/b-card-actions/BCardActionsContainer.vue
new file mode 100644
index 00000000..d60744ae
--- /dev/null
+++ b/src/@core/components/b-card-actions/BCardActionsContainer.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
diff --git a/src/@core/components/b-card-actions/index.js b/src/@core/components/b-card-actions/index.js
new file mode 100644
index 00000000..5bb9c908
--- /dev/null
+++ b/src/@core/components/b-card-actions/index.js
@@ -0,0 +1,2 @@
+export { default as BCardActions } from './BCardActions.vue'
+export { default as BCardActionsContainer } from './BCardActionsContainer.vue'
diff --git a/src/@core/components/b-card-code/BCardCode.vue b/src/@core/components/b-card-code/BCardCode.vue
new file mode 100644
index 00000000..501ba22a
--- /dev/null
+++ b/src/@core/components/b-card-code/BCardCode.vue
@@ -0,0 +1,166 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/components/b-card-code/index.js b/src/@core/components/b-card-code/index.js
new file mode 100644
index 00000000..7425748b
--- /dev/null
+++ b/src/@core/components/b-card-code/index.js
@@ -0,0 +1,3 @@
+import BCardCode from './BCardCode.vue'
+
+export default BCardCode
diff --git a/src/@core/components/charts/echart/AppEchartBar.vue b/src/@core/components/charts/echart/AppEchartBar.vue
new file mode 100644
index 00000000..68766bff
--- /dev/null
+++ b/src/@core/components/charts/echart/AppEchartBar.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
diff --git a/src/@core/components/charts/echart/AppEchartDoughnut.vue b/src/@core/components/charts/echart/AppEchartDoughnut.vue
new file mode 100644
index 00000000..c99979a8
--- /dev/null
+++ b/src/@core/components/charts/echart/AppEchartDoughnut.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
diff --git a/src/@core/components/charts/echart/AppEchartLine.vue b/src/@core/components/charts/echart/AppEchartLine.vue
new file mode 100644
index 00000000..268586fb
--- /dev/null
+++ b/src/@core/components/charts/echart/AppEchartLine.vue
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
diff --git a/src/@core/components/charts/echart/AppEchartRadar.vue b/src/@core/components/charts/echart/AppEchartRadar.vue
new file mode 100644
index 00000000..71da6ddc
--- /dev/null
+++ b/src/@core/components/charts/echart/AppEchartRadar.vue
@@ -0,0 +1,73 @@
+
+
+
+
+
diff --git a/src/@core/components/charts/echart/AppEchartScatter.vue b/src/@core/components/charts/echart/AppEchartScatter.vue
new file mode 100644
index 00000000..41809c77
--- /dev/null
+++ b/src/@core/components/charts/echart/AppEchartScatter.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
diff --git a/src/@core/components/charts/echart/AppEchartStackedArea.vue b/src/@core/components/charts/echart/AppEchartStackedArea.vue
new file mode 100644
index 00000000..73202d3f
--- /dev/null
+++ b/src/@core/components/charts/echart/AppEchartStackedArea.vue
@@ -0,0 +1,72 @@
+
+
+
+
+
diff --git a/src/@core/components/charts/echart/theme.json b/src/@core/components/charts/echart/theme.json
new file mode 100644
index 00000000..d40b7095
--- /dev/null
+++ b/src/@core/components/charts/echart/theme.json
@@ -0,0 +1,475 @@
+{
+ "color": [
+ "#826AF9",
+ "#9F87FF",
+ "#D2B0FF",
+ "#F8D3FF"
+ ],
+ "backgroundColor": "rgba(0,0,0,0)",
+ "textStyle": {},
+ "title": {
+ "textStyle": {
+ "color": "#666666"
+ },
+ "subtextStyle": {
+ "color": "#999999"
+ }
+ },
+ "line": {
+ "itemStyle": {
+ "normal": {
+ "borderWidth": "1"
+ }
+ },
+ "lineStyle": {
+ "normal": {
+ "width": "1"
+ }
+ },
+ "symbolSize": "10",
+ "symbol": "emptyCircle",
+ "smooth": false
+ },
+ "radar": {
+ "itemStyle": {
+ "normal": {
+ "borderWidth": "2"
+ }
+ },
+ "lineStyle": {
+ "normal": {
+ "width": "3"
+ }
+ },
+ "symbolSize": "10",
+ "symbol": "emptyCircle",
+ "smooth": true
+ },
+ "bar": {
+ "itemStyle": {
+ "normal": {
+ "barBorderWidth": "0",
+ "barBorderColor": "#444444"
+ },
+ "emphasis": {
+ "barBorderWidth": "0",
+ "barBorderColor": "#444444"
+ }
+ }
+ },
+ "pie": {
+ "itemStyle": {
+ "normal": {
+ "borderWidth": "0",
+ "borderColor": "#444444"
+ },
+ "emphasis": {
+ "borderWidth": "0",
+ "borderColor": "#444444"
+ }
+ }
+ },
+ "scatter": {
+ "itemStyle": {
+ "normal": {
+ "borderWidth": "0",
+ "borderColor": "#444444"
+ },
+ "emphasis": {
+ "borderWidth": "0",
+ "borderColor": "#444444"
+ }
+ }
+ },
+ "boxplot": {
+ "itemStyle": {
+ "normal": {
+ "borderWidth": "0",
+ "borderColor": "#444444"
+ },
+ "emphasis": {
+ "borderWidth": "0",
+ "borderColor": "#444444"
+ }
+ }
+ },
+ "parallel": {
+ "itemStyle": {
+ "normal": {
+ "borderWidth": "0",
+ "borderColor": "#444444"
+ },
+ "emphasis": {
+ "borderWidth": "0",
+ "borderColor": "#444444"
+ }
+ }
+ },
+ "sankey": {
+ "itemStyle": {
+ "normal": {
+ "borderWidth": "0",
+ "borderColor": "#444444"
+ },
+ "emphasis": {
+ "borderWidth": "0",
+ "borderColor": "#444444"
+ }
+ }
+ },
+ "funnel": {
+ "itemStyle": {
+ "normal": {
+ "borderWidth": "0",
+ "borderColor": "#444444"
+ },
+ "emphasis": {
+ "borderWidth": "0",
+ "borderColor": "#444444"
+ }
+ }
+ },
+ "gauge": {
+ "itemStyle": {
+ "normal": {
+ "borderWidth": "0",
+ "borderColor": "#444444"
+ },
+ "emphasis": {
+ "borderWidth": "0",
+ "borderColor": "#444444"
+ }
+ }
+ },
+ "candlestick": {
+ "itemStyle": {
+ "normal": {
+ "color": "#d0648a",
+ "color0": "#ffffff",
+ "borderColor": "#d0648a",
+ "borderColor0": "#22c3aa",
+ "borderWidth": 1
+ }
+ }
+ },
+ "graph": {
+ "itemStyle": {
+ "normal": {
+ "borderWidth": "0",
+ "borderColor": "#444444"
+ }
+ },
+ "lineStyle": {
+ "normal": {
+ "width": 1,
+ "color": "#aaa"
+ }
+ },
+ "symbolSize": "10",
+ "symbol": "emptyCircle",
+ "smooth": true,
+ "color": [
+ "#4ea397",
+ "#22c3aa",
+ "#7bd9a5"
+ ],
+ "label": {
+ "normal": {
+ "textStyle": {
+ "color": "#ffffff"
+ }
+ }
+ }
+ },
+ "map": {
+ "itemStyle": {
+ "normal": {
+ "areaColor": "#eeeeee",
+ "borderColor": "#999999",
+ "borderWidth": "0.5"
+ },
+ "emphasis": {
+ "areaColor": "rgba(34,195,170,0.25)",
+ "borderColor": "#22c3aa",
+ "borderWidth": "0.5"
+ }
+ },
+ "label": {
+ "normal": {
+ "textStyle": {
+ "color": "#28544e"
+ }
+ },
+ "emphasis": {
+ "textStyle": {
+ "color": "rgb(52,158,142)"
+ }
+ }
+ }
+ },
+ "geo": {
+ "itemStyle": {
+ "normal": {
+ "areaColor": "#eeeeee",
+ "borderColor": "#999999",
+ "borderWidth": "0.5"
+ },
+ "emphasis": {
+ "areaColor": "rgba(34,195,170,0.25)",
+ "borderColor": "#22c3aa",
+ "borderWidth": "0.5"
+ }
+ },
+ "label": {
+ "normal": {
+ "textStyle": {
+ "color": "#28544e"
+ }
+ },
+ "emphasis": {
+ "textStyle": {
+ "color": "rgb(52,158,142)"
+ }
+ }
+ }
+ },
+ "categoryAxis": {
+ "axisLine": {
+ "show": true,
+ "lineStyle": {
+ "color": "#cccccc"
+ }
+ },
+ "axisTick": {
+ "show": false,
+ "lineStyle": {
+ "color": "#333333"
+ }
+ },
+ "axisLabel": {
+ "show": true,
+ "textStyle": {
+ "color": "#999999"
+ }
+ },
+ "splitLine": {
+ "show": true,
+ "lineStyle": {
+ "color": [
+ "#eeeeee"
+ ]
+ }
+ },
+ "splitArea": {
+ "show": false,
+ "areaStyle": {
+ "color": [
+ "rgba(250,250,250,0.3)",
+ "rgba(200,200,200,0.3)"
+ ]
+ }
+ }
+ },
+ "valueAxis": {
+ "axisLine": {
+ "show": true,
+ "lineStyle": {
+ "color": "#cccccc"
+ }
+ },
+ "axisTick": {
+ "show": false,
+ "lineStyle": {
+ "color": "#333333"
+ }
+ },
+ "axisLabel": {
+ "show": true,
+ "textStyle": {
+ "color": "#999999"
+ }
+ },
+ "splitLine": {
+ "show": true,
+ "lineStyle": {
+ "color": [
+ "#eeeeee"
+ ]
+ }
+ },
+ "splitArea": {
+ "show": false,
+ "areaStyle": {
+ "color": [
+ "rgba(250,250,250,0.3)",
+ "rgba(200,200,200,0.3)"
+ ]
+ }
+ }
+ },
+ "logAxis": {
+ "axisLine": {
+ "show": true,
+ "lineStyle": {
+ "color": "#cccccc"
+ }
+ },
+ "axisTick": {
+ "show": false,
+ "lineStyle": {
+ "color": "#333333"
+ }
+ },
+ "axisLabel": {
+ "show": true,
+ "textStyle": {
+ "color": "#999999"
+ }
+ },
+ "splitLine": {
+ "show": true,
+ "lineStyle": {
+ "color": [
+ "#eeeeee"
+ ]
+ }
+ },
+ "splitArea": {
+ "show": false,
+ "areaStyle": {
+ "color": [
+ "rgba(250,250,250,0.3)",
+ "rgba(200,200,200,0.3)"
+ ]
+ }
+ }
+ },
+ "timeAxis": {
+ "axisLine": {
+ "show": true,
+ "lineStyle": {
+ "color": "#cccccc"
+ }
+ },
+ "axisTick": {
+ "show": false,
+ "lineStyle": {
+ "color": "#333333"
+ }
+ },
+ "axisLabel": {
+ "show": true,
+ "textStyle": {
+ "color": "#999999"
+ }
+ },
+ "splitLine": {
+ "show": true,
+ "lineStyle": {
+ "color": [
+ "#eeeeee"
+ ]
+ }
+ },
+ "splitArea": {
+ "show": false,
+ "areaStyle": {
+ "color": [
+ "rgba(250,250,250,0.3)",
+ "rgba(200,200,200,0.3)"
+ ]
+ }
+ }
+ },
+ "toolbox": {
+ "iconStyle": {
+ "normal": {
+ "borderColor": "#aaaaaa"
+ },
+ "emphasis": {
+ "borderColor": "#666"
+ }
+ }
+ },
+ "legend": {
+ "textStyle": {
+ "color": "#999999"
+ }
+ },
+ "tooltip": {
+ "axisPointer": {
+ "lineStyle": {
+ "color": "#ccc",
+ "width": 1
+ },
+ "crossStyle": {
+ "color": "#ccc",
+ "width": 1
+ }
+ }
+ },
+ "timeline": {
+ "lineStyle": {
+ "color": "#349e8e",
+ "width": 1
+ },
+ "itemStyle": {
+ "normal": {
+ "color": "#349e8e",
+ "borderWidth": "1"
+ },
+ "emphasis": {
+ "color": "#57e8d2"
+ }
+ },
+ "controlStyle": {
+ "normal": {
+ "color": "#349e8e",
+ "borderColor": "#349e8e",
+ "borderWidth": "0"
+ }
+ },
+ "checkpointStyle": {
+ "color": "#22c3aa",
+ "borderColor": "rgba(34,195,170,0.25)"
+ },
+ "label": {
+ "normal": {
+ "textStyle": {
+ "color": "#349e8e"
+ }
+ }
+ }
+ },
+ "visualMap": {
+ "color": [
+ "#d0648a",
+ "#22c3aa",
+ "rgba(123,217,165,0.2)"
+ ]
+ },
+ "dataZoom": {
+ "backgroundColor": "#fff",
+ "dataBackgroundColor": "#dedede",
+ "fillerColor": "rgba(34,195,170,0.25)",
+ "handleColor": "#dddddd",
+ "handleSize": "100%",
+ "textStyle": {
+ "color": "#999"
+ }
+ },
+ "markPoint": {
+ "label": {
+ "normal": {
+ "textStyle": {
+ "color": "#ffffff"
+ }
+ },
+ "emphasis": {
+ "textStyle": {
+ "color": "#ffffff"
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/components/feather-icon/FeatherIcon.vue b/src/@core/components/feather-icon/FeatherIcon.vue
new file mode 100644
index 00000000..7c140957
--- /dev/null
+++ b/src/@core/components/feather-icon/FeatherIcon.vue
@@ -0,0 +1,45 @@
+
+
+
diff --git a/src/@core/components/scroll-to-top/ScrollToTop.vue b/src/@core/components/scroll-to-top/ScrollToTop.vue
new file mode 100644
index 00000000..999f11e1
--- /dev/null
+++ b/src/@core/components/scroll-to-top/ScrollToTop.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/components/statistics-cards/StatisticCardHorizontal.vue b/src/@core/components/statistics-cards/StatisticCardHorizontal.vue
new file mode 100644
index 00000000..477cb341
--- /dev/null
+++ b/src/@core/components/statistics-cards/StatisticCardHorizontal.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
+ {{ statistic }}
+
+ {{ statisticTitle }}
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/components/statistics-cards/StatisticCardVertical.vue b/src/@core/components/statistics-cards/StatisticCardVertical.vue
new file mode 100644
index 00000000..8d94ab0b
--- /dev/null
+++ b/src/@core/components/statistics-cards/StatisticCardVertical.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+ {{ statistic }}
+
+ {{ statisticTitle }}
+
+
+
+
+
diff --git a/src/@core/components/statistics-cards/StatisticCardWithAreaChart.vue b/src/@core/components/statistics-cards/StatisticCardWithAreaChart.vue
new file mode 100644
index 00000000..dc780624
--- /dev/null
+++ b/src/@core/components/statistics-cards/StatisticCardWithAreaChart.vue
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+ {{ statistic }}
+
+ {{ statisticTitle }}
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/components/statistics-cards/StatisticCardWithLineChart.vue b/src/@core/components/statistics-cards/StatisticCardWithLineChart.vue
new file mode 100644
index 00000000..0323f5e2
--- /dev/null
+++ b/src/@core/components/statistics-cards/StatisticCardWithLineChart.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
+ {{ statistic }}
+
+ {{ statisticTitle }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/components/statistics-cards/chartOptions.js b/src/@core/components/statistics-cards/chartOptions.js
new file mode 100644
index 00000000..f2f85e9d
--- /dev/null
+++ b/src/@core/components/statistics-cards/chartOptions.js
@@ -0,0 +1,122 @@
+import { $themeColors } from '@themeConfig'
+
+export const areaChartOptions = {
+ grid: {
+ show: false,
+ padding: {
+ left: 0,
+ right: 0,
+ },
+ },
+ chart: {
+ toolbar: {
+ show: false,
+ },
+ sparkline: {
+ enabled: true,
+ },
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ stroke: {
+ curve: 'smooth',
+ width: 2.5,
+ },
+ fill: {
+ type: 'gradient',
+ gradient: {
+ shadeIntensity: 0.9,
+ opacityFrom: 0.5,
+ opacityTo: 0.2,
+ stops: [0, 80, 100],
+ },
+ },
+ xaxis: {
+ type: 'numeric',
+ lines: {
+ show: false,
+ },
+ axisBorder: {
+ show: false,
+ },
+ labels: { show: false },
+ },
+ yaxis: [
+ {
+ y: 0,
+ offsetX: 0,
+ offsetY: 0,
+ padding: {
+ left: 0,
+ right: 0,
+ },
+ },
+ ],
+ tooltip: {
+ x: { show: false },
+ },
+ theme: {
+ monochrome: {
+ enabled: true,
+ color: $themeColors.primary,
+ shadeTo: 'light',
+ shadeIntensity: 0.65,
+ },
+ },
+}
+
+export const lineChartOptions = {
+ grid: {
+ show: false,
+ padding: {
+ left: 0,
+ right: 0,
+ },
+ },
+ chart: {
+ type: 'line',
+ dropShadow: {
+ enabled: true,
+ top: 5,
+ left: 0,
+ blur: 4,
+ opacity: 0.1,
+ },
+ toolbar: {
+ show: false,
+ },
+ sparkline: {
+ enabled: true,
+ },
+ },
+ stroke: {
+ width: 5,
+ curve: 'smooth',
+ },
+ xaxis: {
+ type: 'numeric',
+ },
+ colors: [$themeColors.primary],
+ fill: {
+ type: 'gradient',
+ gradient: {
+ shade: 'dark',
+ gradientToColors: ['#A9A2F6'],
+ shadeIntensity: 1,
+ type: 'horizontal',
+ opacityFrom: 1,
+ opacityTo: 1,
+ stops: [0, 100, 100, 100],
+ },
+ },
+ markers: {
+ size: 0,
+ hover: {
+ size: 5,
+ },
+ },
+ tooltip: {
+ x: { show: false },
+ },
+}
diff --git a/src/@core/components/toastification/ToastificationContent.vue b/src/@core/components/toastification/ToastificationContent.vue
new file mode 100644
index 00000000..c398456d
--- /dev/null
+++ b/src/@core/components/toastification/ToastificationContent.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
diff --git a/src/@core/directives/animations.js b/src/@core/directives/animations.js
new file mode 100644
index 00000000..d338d0a9
--- /dev/null
+++ b/src/@core/directives/animations.js
@@ -0,0 +1,32 @@
+export const heightFade = {
+ /* eslint-disable no-param-reassign */
+ inserted(el, binding) {
+ const height = `${el.offsetHeight}px`
+
+ if (binding.modifiers.appear) {
+ el.style.overflow = 'hidden'
+ el.style.maxHeight = '0px'
+ el.style.opacity = 0
+
+ // Focus the element
+ setTimeout(() => {
+ el.style.maxHeight = height
+ el.style.opacity = 1
+ setTimeout(() => {
+ el.style.overflow = 'unset'
+ }, 300)
+ }, 100)
+ } else {
+ el.style.maxHeight = height
+ }
+ },
+ unbind(el) {
+ if (el.style === undefined) return
+ el.style.overflow = 'hidden'
+ el.style.maxHeight = '0px'
+ el.style.opacity = 0
+ },
+ /* eslint-enable no-param-reassign */
+}
+
+export const temp = 2
diff --git a/src/@core/layouts/components/AppBreadcrumb.vue b/src/@core/layouts/components/AppBreadcrumb.vue
new file mode 100644
index 00000000..9fe50837
--- /dev/null
+++ b/src/@core/layouts/components/AppBreadcrumb.vue
@@ -0,0 +1,69 @@
+
+
+
+
+
diff --git a/src/@core/layouts/components/AppFooter.vue b/src/@core/layouts/components/AppFooter.vue
new file mode 100644
index 00000000..ec56834e
--- /dev/null
+++ b/src/@core/layouts/components/AppFooter.vue
@@ -0,0 +1,42 @@
+
+
+
+ Powered By
+ Ping.pub
+
+
+ Buy me a cup of coffee.
+
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/components/Logo.vue b/src/@core/layouts/components/Logo.vue
new file mode 100644
index 00000000..69218aa2
--- /dev/null
+++ b/src/@core/layouts/components/Logo.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/components/app-customizer/AppCustomizer.vue b/src/@core/layouts/components/app-customizer/AppCustomizer.vue
new file mode 100644
index 00000000..dd66fc95
--- /dev/null
+++ b/src/@core/layouts/components/app-customizer/AppCustomizer.vue
@@ -0,0 +1,344 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ Theme Customizer
+
+ Customize & Preview in Real Time
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Menu Collapsed
+
+
+
+
+
+ Menu Hidden
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/components/app-customizer/useAppCustomizer.js b/src/@core/layouts/components/app-customizer/useAppCustomizer.js
new file mode 100644
index 00000000..a12e4530
--- /dev/null
+++ b/src/@core/layouts/components/app-customizer/useAppCustomizer.js
@@ -0,0 +1,109 @@
+import { ref } from '@vue/composition-api'
+import useAppConfig from '@core/app-config/useAppConfig'
+
+export default function useAppCustomizer() {
+ // Customizer
+ const isCustomizerOpen = ref(false)
+
+ // Skin
+ const skinOptions = [
+ { text: 'Light', value: 'light' },
+ { text: 'Bordered', value: 'bordered' },
+ { text: 'Dark', value: 'dark' },
+ { text: 'Semi Dark', value: 'semi-dark' },
+ ]
+
+ // Content Width Options
+ const contentWidthOptions = [
+ { text: 'Full Width', value: 'full' },
+ { text: 'Boxed', value: 'boxed' },
+ ]
+
+ // Router Transition
+ const routerTransitionOptions = [
+ { title: 'Zoom Fade', value: 'zoom-fade' },
+ { title: 'Fade', value: 'fade' },
+ { title: 'Fade Bottom', value: 'fade-bottom' },
+ { title: 'Slide Fade', value: 'slide-fade' },
+ { title: 'Zoom Out', value: 'zoom-out' },
+ { title: 'None', value: 'none' },
+ ]
+
+ // Router Transition
+ const layoutTypeOptions = [
+ { text: 'Vertical', value: 'vertical' },
+ { text: 'Horizontal', value: 'horizontal' },
+ ]
+
+ // Navbar
+ const navbarColors = ['', 'primary', 'secondary', 'success', 'danger', 'warning', 'info', 'dark']
+
+ // Navbar Types
+ const navbarTypes = [
+ { text: 'Floating', value: 'floating' },
+ { text: 'Sticky', value: 'sticky' },
+ { text: 'Static', value: 'static' },
+ { text: 'Hidden', value: 'hidden' },
+ ]
+
+ // Footer Types
+ const footerTypes = [
+ { text: 'Sticky', value: 'sticky' },
+ { text: 'Static', value: 'static' },
+ { text: 'Hidden', value: 'hidden' },
+ ]
+
+ // eslint-disable-next-line object-curly-newline
+ const {
+ isRTL,
+ skin,
+ contentWidth,
+ routerTransition,
+ layoutType,
+ isNavMenuHidden,
+ isVerticalMenuCollapsed,
+ navbarBackgroundColor,
+ navbarType,
+ footerType,
+ } = useAppConfig()
+
+ return {
+ // Customizer
+ isCustomizerOpen,
+
+ // Vertical Menu
+ isVerticalMenuCollapsed,
+
+ // Skin
+ skin,
+ skinOptions,
+
+ // Content Width
+ contentWidth,
+ contentWidthOptions,
+
+ // RTL
+ isRTL,
+
+ // routerTransition
+ routerTransition,
+ routerTransitionOptions,
+
+ // Layout Type
+ layoutType,
+ layoutTypeOptions,
+
+ // NavMenu Hidden
+ isNavMenuHidden,
+
+ // Navbar
+ navbarColors,
+ navbarTypes,
+ navbarBackgroundColor,
+ navbarType,
+
+ // Footer
+ footerTypes,
+ footerType,
+ }
+}
diff --git a/src/@core/layouts/components/app-navbar/AppNavbarHorizontalLayout.vue b/src/@core/layouts/components/app-navbar/AppNavbarHorizontalLayout.vue
new file mode 100644
index 00000000..86b5b478
--- /dev/null
+++ b/src/@core/layouts/components/app-navbar/AppNavbarHorizontalLayout.vue
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/components/app-navbar/AppNavbarHorizontalLayoutBrand.vue b/src/@core/layouts/components/app-navbar/AppNavbarHorizontalLayoutBrand.vue
new file mode 100644
index 00000000..e79ef234
--- /dev/null
+++ b/src/@core/layouts/components/app-navbar/AppNavbarHorizontalLayoutBrand.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/components/app-navbar/AppNavbarVerticalLayout.vue b/src/@core/layouts/components/app-navbar/AppNavbarVerticalLayout.vue
new file mode 100644
index 00000000..39027f56
--- /dev/null
+++ b/src/@core/layouts/components/app-navbar/AppNavbarVerticalLayout.vue
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/components/app-navbar/components/Bookmarks.vue b/src/@core/layouts/components/app-navbar/components/Bookmarks.vue
new file mode 100644
index 00000000..5b449e71
--- /dev/null
+++ b/src/@core/layouts/components/app-navbar/components/Bookmarks.vue
@@ -0,0 +1,196 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ suggestion.title }}
+
+
+
+
+ No Results Found.
+
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/components/app-navbar/components/CartDropdown.vue b/src/@core/layouts/components/app-navbar/components/CartDropdown.vue
new file mode 100644
index 00000000..64f14634
--- /dev/null
+++ b/src/@core/layouts/components/app-navbar/components/CartDropdown.vue
@@ -0,0 +1,177 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+ By {{ item.brand }}
+
+
+
+
+
+
+
+ ${{ item.price }}
+
+
+
+
+
+
+
+
+ Your cart is empty
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/components/app-navbar/components/DarkToggler.vue b/src/@core/layouts/components/app-navbar/components/DarkToggler.vue
new file mode 100644
index 00000000..7d67a5c7
--- /dev/null
+++ b/src/@core/layouts/components/app-navbar/components/DarkToggler.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/components/app-navbar/components/Locale.vue b/src/@core/layouts/components/app-navbar/components/Locale.vue
new file mode 100644
index 00000000..63bd4971
--- /dev/null
+++ b/src/@core/layouts/components/app-navbar/components/Locale.vue
@@ -0,0 +1,83 @@
+
+
+
+
+ {{ currentLocale.name }}
+
+
+
+ {{ localeObj.name }}
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/components/app-navbar/components/NotificationDropdown.vue b/src/@core/layouts/components/app-navbar/components/NotificationDropdown.vue
new file mode 100644
index 00000000..0c02d3d9
--- /dev/null
+++ b/src/@core/layouts/components/app-navbar/components/NotificationDropdown.vue
@@ -0,0 +1,189 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ notification.title }}
+
+
+ {{ notification.subtitle }}
+
+
+
+
+
+
+ System Notifications
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ notification.title }}
+
+
+ {{ notification.subtitle }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/components/app-navbar/components/SearchBar.vue b/src/@core/layouts/components/app-navbar/components/SearchBar.vue
new file mode 100644
index 00000000..3dc4b743
--- /dev/null
+++ b/src/@core/layouts/components/app-navbar/components/SearchBar.vue
@@ -0,0 +1,311 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/components/app-navbar/components/UserDropdown.vue b/src/@core/layouts/components/app-navbar/components/UserDropdown.vue
new file mode 100644
index 00000000..709715c6
--- /dev/null
+++ b/src/@core/layouts/components/app-navbar/components/UserDropdown.vue
@@ -0,0 +1,162 @@
+
+
+
+
+
+ {{ userData.fullName || userData.username }}
+
+
{{ userData.role }}
+
+
+
+
+
+
+
+
+ Profile
+
+
+
+ Inbox
+
+
+
+ Task
+
+
+
+ Chat
+
+
+
+
+
+
+ Settings
+
+
+
+ Pricing
+
+
+
+ FAQ
+
+
+
+ Logout
+
+
+
+
diff --git a/src/@core/layouts/components/app-navbar/search-and-bookmark-data.js b/src/@core/layouts/components/app-navbar/search-and-bookmark-data.js
new file mode 100644
index 00000000..1b4f8ee6
--- /dev/null
+++ b/src/@core/layouts/components/app-navbar/search-and-bookmark-data.js
@@ -0,0 +1,295 @@
+/* eslint-disable */
+// prettier-ignore
+export default {
+ pages: {
+ key: 'title',
+ data: [
+ { title: 'Access Control', route: { name: 'access-control' }, icon: 'ShieldIcon', isBookmarked: false },
+ { title: 'Account Settings', route: { name: 'pages-account-setting' }, icon: 'SettingsIcon', isBookmarked: false },
+ { title: 'Advance Card', route: { name: 'card-advance' }, icon: 'CreditCardIcon', isBookmarked: false },
+ { title: 'Alerts', route: { name: 'components-alert' }, icon: 'AlertTriangleIcon', isBookmarked: false },
+ { title: 'Analytics Cards', route: { name: 'card-analytic' }, icon: 'CreditCardIcon', isBookmarked: false },
+ { title: 'Apex Chart', route: { name: 'charts-apex-chart' }, icon: 'PieChartIcon', isBookmarked: false },
+ { title: 'Aspect', route: { name: 'components-aspect' }, icon: 'AirplayIcon', isBookmarked: false },
+ { title: 'Auto Suggest', route: { name: 'extensions-auto-suggest' }, icon: 'AlignLeftIcon', isBookmarked: false },
+ { title: 'Avatar', route: { name: 'components-avatar' }, icon: 'UserIcon', isBookmarked: false },
+ { title: 'Badge', route: { name: 'components-badge' }, icon: 'TagIcon', isBookmarked: false },
+ { title: 'Basic Card', route: { name: 'card-basic' }, icon: 'CreditCardIcon', isBookmarked: false },
+ { title: 'Blog Detail', route: { name: 'pages-blog-detail', params: { id: 1 } }, icon: 'FileTextIcon', isBookmarked: false },
+ { title: 'Blog Edit', route: { name: 'pages-blog-edit', params: { id: 1 } }, icon: 'FileTextIcon', isBookmarked: false },
+ { title: 'Blog List', route: { name: 'pages-blog-list' }, icon: 'FileTextIcon', isBookmarked: false },
+ { title: 'Breadcrumb', route: { name: 'components-breadcrumb' }, icon: 'HomeIcon', isBookmarked: false },
+ { title: 'BS Table', route: { name: 'table-bs-table' }, icon: 'GridIcon', isBookmarked: false },
+ { title: 'Button Group', route: { name: 'components-button-group' }, icon: 'BoldIcon', isBookmarked: false },
+ { title: 'Button Toolbar', route: { name: 'components-button-toolbar' }, icon: 'BoldIcon', isBookmarked: false },
+ { title: 'Button', route: { name: 'components-button' }, icon: 'BoldIcon', isBookmarked: false },
+ { title: 'Calendar App', route: { name: 'apps-calendar' }, icon: 'CalendarIcon', isBookmarked: true },
+ { title: 'Calendar Component', route: { name: 'components-calendar' }, icon: 'CalendarIcon', isBookmarked: false },
+ { title: 'Card Actions', route: { name: 'card-action' }, icon: 'CreditCardIcon', isBookmarked: false },
+ { title: 'Carousel', route: { name: 'components-carousel' }, icon: 'CopyIcon', isBookmarked: false },
+ { title: 'Chartjs', route: { name: 'charts-chartjs' }, icon: 'PieChartIcon', isBookmarked: false },
+ { title: 'Chat', route: { name: 'apps-chat' }, icon: 'MessageSquareIcon', isBookmarked: true },
+ { title: 'Checkbox', route: { name: 'forms-element-checkbox' }, icon: 'CheckSquareIcon', isBookmarked: false },
+ { title: 'Checkout', route: { name: 'apps-e-commerce-checkout' }, icon: 'DollarSignIcon', isBookmarked: false },
+ { title: 'Clipboard', route: { name: 'extensions-clipboard' }, icon: 'ClipboardIcon', isBookmarked: false },
+ { title: 'Collapse', route: { name: 'components-collapse' }, icon: 'PlusIcon', isBookmarked: false },
+ { title: 'Colors', route: { name: 'ui-colors' }, icon: 'DropletIcon', isBookmarked: false },
+ { title: 'Coming Soon', route: { name: 'misc-coming-soon' }, icon: 'ClockIcon', isBookmarked: false },
+ { title: 'Context Menu', route: { name: 'extensions-context-menu' }, icon: 'MoreVerticalIcon', isBookmarked: false },
+ { title: 'Dashboard Analytics', route: { name: 'dashboard-analytics' }, icon: 'ActivityIcon', isBookmarked: false },
+ { title: 'Dashboard ECommerce', route: { name: 'dashboard-ecommerce' }, icon: 'ShoppingCartIcon', isBookmarked: false },
+ { title: 'Date Time Picker', route: { name: 'extensions-date-time-picker' }, icon: 'ClockIcon', isBookmarked: false },
+ { title: 'Drag & Drop', route: { name: 'extensions-drag-and-drop' }, icon: 'CopyIcon', isBookmarked: false },
+ { title: 'Dropdown', route: { name: 'components-dropdown' }, icon: 'MoreHorizontalIcon', isBookmarked: false },
+ { title: 'Echart', route: { name: 'charts-echart' }, icon: 'PieChartIcon', isBookmarked: false },
+ { title: 'Email', route: { name: 'apps-email' }, icon: 'MailIcon', isBookmarked: true },
+ { title: 'Embed', route: { name: 'components-embed' }, icon: 'TvIcon', isBookmarked: false },
+ { title: 'Error 404', route: { name: 'error-404' }, icon: 'AlertTriangleIcon', isBookmarked: false },
+ { title: 'Error', route: { name: 'misc-error' }, icon: 'AlertTriangleIcon', isBookmarked: false },
+ { title: 'FAQ', route: { name: 'pages-faq' }, icon: 'HelpCircleIcon', isBookmarked: false },
+ { title: 'Feather', route: { name: 'ui-feather' }, icon: 'FeatherIcon', isBookmarked: false },
+ { title: 'File Input', route: { name: 'forms-element-file-input' }, icon: 'FileIcon', isBookmarked: false },
+ { title: 'Forgot Password V1', route: { name: 'auth-forgot-password-v1' }, icon: 'KeyIcon', isBookmarked: false },
+ { title: 'Forgot Password V2', route: { name: 'auth-forgot-password-v2' }, icon: 'KeyIcon', isBookmarked: false },
+ { title: 'Form Datepicker', route: { name: 'forms-element-datepicker' }, icon: 'ClockIcon', isBookmarked: false },
+ { title: 'Form Layout', route: { name: 'form-layout' }, icon: 'GridIcon', isBookmarked: false },
+ { title: 'Form Rating', route: { name: 'forms-element-rating' }, icon: 'StarIcon', isBookmarked: false },
+ { title: 'Form Repeater', route: { name: 'form-repeater' }, icon: 'StarIcon', isBookmarked: false },
+ { title: 'Form Tag', route: { name: 'forms-element-tag' }, icon: 'TagIcon', isBookmarked: false },
+ { title: 'Form Timepicker', route: { name: 'forms-element-timepicker' }, icon: 'ClockIcon', isBookmarked: false },
+ { title: 'Form Validation', route: { name: 'form-validation' }, icon: 'CheckCircleIcon', isBookmarked: false },
+ { title: 'Form Wizard', route: { name: 'form-wizard' }, icon: 'GitCommitIcon', isBookmarked: false },
+ { title: 'Good Table', route: { name: 'table-good-table' }, icon: 'GridIcon', isBookmarked: false },
+ { title: 'I18n', route: { name: 'extensions-i18n' }, icon: 'GlobeIcon', isBookmarked: false },
+ { title: 'Image', route: { name: 'components-image' }, icon: 'ImageIcon', isBookmarked: false },
+ { title: 'Input Group', route: { name: 'forms-element-input-group' }, icon: 'TypeIcon', isBookmarked: false },
+ { title: 'Input Mask', route: { name: 'forms-element-input-mask' }, icon: 'TypeIcon', isBookmarked: false },
+ { title: 'Input', route: { name: 'forms-element-input' }, icon: 'TypeIcon', isBookmarked: false },
+ { title: 'Invoice Add', route: { name: 'apps-invoice-add' }, icon: 'FileTextIcon', isBookmarked: false },
+ { title: 'Invoice Edit', route: { name: 'apps-invoice-edit', params: { id: 4987 } }, icon: 'FileTextIcon', isBookmarked: false },
+ { title: 'Invoice List', route: { name: 'apps-invoice-list' }, icon: 'FileTextIcon', isBookmarked: false },
+ { title: 'Invoice Preview', route: { name: 'apps-invoice-preview', params: { id: 4987 } }, icon: 'FileTextIcon', isBookmarked: false },
+ { title: 'Knowledge Base Category', route: { name: 'pages-knowledge-base-category' }, icon: 'InfoIcon', isBookmarked: false, },
+ { title: 'Knowledge Base Question', route: { name: 'pages-knowledge-base-question' }, icon: 'InfoIcon', isBookmarked: false, },
+ { title: 'Knowledge Base', route: { name: 'pages-knowledge-base' }, icon: 'InfoIcon', isBookmarked: false },
+ { title: 'Leaflet', route: { name: 'maps-leaflet' }, icon: 'MapPinIcon', isBookmarked: false },
+ { title: 'List Group', route: { name: 'components-list-group' }, icon: 'ListIcon', isBookmarked: false },
+ { title: 'Login V1', route: { name: 'auth-login-v1' }, icon: 'LogInIcon', isBookmarked: false },
+ { title: 'Login V2', route: { name: 'auth-login-v2' }, icon: 'LogInIcon', isBookmarked: false },
+ { title: 'Media Objects', route: { name: 'components-media' }, icon: 'ImageIcon', isBookmarked: false },
+ { title: 'Modal', route: { name: 'components-modal' }, icon: 'CopyIcon', isBookmarked: false },
+ { title: 'Nav', route: { name: 'components-nav' }, icon: 'CreditCardIcon', isBookmarked: false },
+ { title: 'Not Authorized', route: { name: 'misc-not-authorized' }, icon: 'XOctagonIcon', isBookmarked: false },
+ { title: 'Overlay', route: { name: 'components-overlay' }, icon: 'CopyIcon', isBookmarked: false },
+ { title: 'Pagination Nav', route: { name: 'components-pagination-nav' }, icon: 'HashIcon', isBookmarked: false },
+ { title: 'Pagination', route: { name: 'components-pagination' }, icon: 'HashIcon', isBookmarked: false },
+ { title: 'Pill Badge', route: { name: 'components-pill-badge' }, icon: 'TagIcon', isBookmarked: false },
+ { title: 'Pill', route: { name: 'components-pill' }, icon: 'TagIcon', isBookmarked: false },
+ { title: 'Popover', route: { name: 'components-popover' }, icon: 'TagIcon', isBookmarked: false },
+ { title: 'Pricing', route: { name: 'pages-pricing' }, icon: 'DollarSignIcon', isBookmarked: false },
+ { title: 'Product Details', route: { name: 'apps-e-commerce-product-details', params: { slug: 'apple-watch-series-5-27' } }, icon: 'BoxIcon', isBookmarked: false, },
+ { title: 'Profile', route: { name: 'pages-profile' }, icon: 'UserIcon', isBookmarked: false },
+ { title: 'Progress', route: { name: 'components-progress' }, icon: 'ChevronsRightIcon', isBookmarked: false },
+ { title: 'Quill Editor', route: { name: 'extensions-quill-editor' }, icon: 'TypeIcon', isBookmarked: false },
+ { title: 'Radio', route: { name: 'forms-element-radio' }, icon: 'DiscIcon', isBookmarked: false },
+ { title: 'Register V1', route: { name: 'auth-register-v1' }, icon: 'UserPlusIcon', isBookmarked: false },
+ { title: 'Register V2', route: { name: 'auth-register-v2' }, icon: 'UserPlusIcon', isBookmarked: false },
+ { title: 'Reset Password V1', route: { name: 'auth-reset-password-v1' }, icon: 'KeyIcon', isBookmarked: false },
+ { title: 'Reset Password V2', route: { name: 'auth-reset-password-v2' }, icon: 'KeyIcon', isBookmarked: false },
+ { title: 'Select', route: { name: 'forms-element-select' }, icon: 'AlignCenterIcon', isBookmarked: false },
+ { title: 'Shop', route: { name: 'apps-e-commerce-shop' }, icon: 'ArchiveIcon', isBookmarked: false },
+ { title: 'Sidebar', route: { name: 'components-sidebar' }, icon: 'SidebarIcon', isBookmarked: false },
+ { title: 'Slider', route: { name: 'extensions-slider' }, icon: 'GitCommitIcon', isBookmarked: false },
+ { title: 'Spinbutton', route: { name: 'forms-element-spinbutton' }, icon: 'TypeIcon', isBookmarked: false },
+ { title: 'Spinner', route: { name: 'components-spinner' }, icon: 'LoaderIcon', isBookmarked: false },
+ { title: 'Statistics Cards', route: { name: 'card-statistic' }, icon: 'CreditCardIcon', isBookmarked: false },
+ { title: 'Sweet Alert', route: { name: 'extensions-sweet-alert' }, icon: 'BellIcon', isBookmarked: false },
+ { title: 'Swiper', route: { name: 'extensions-swiper' }, icon: 'ImageIcon', isBookmarked: false },
+ { title: 'Switch', route: { name: 'forms-element-switch' }, icon: 'ToggleRightIcon', isBookmarked: false },
+ { title: 'Tab', route: { name: 'components-tab' }, icon: 'CreditCardIcon', isBookmarked: false },
+ { title: 'Textarea', route: { name: 'forms-element-textarea' }, icon: 'TypeIcon', isBookmarked: false },
+ { title: 'Time', route: { name: 'components-time' }, icon: 'ClockIcon', isBookmarked: false },
+ { title: 'Timeline', route: { name: 'components-timeline' }, icon: 'GitCommitIcon', isBookmarked: false },
+ { title: 'Toastification', route: { name: 'extensions-toastification' }, icon: 'BellIcon', isBookmarked: false },
+ { title: 'Toasts', route: { name: 'components-toasts' }, icon: 'BellIcon', isBookmarked: false },
+ { title: 'Todo', route: { name: 'apps-todo' }, icon: 'CheckSquareIcon', isBookmarked: true },
+ { title: 'Tooltip', route: { name: 'components-tooltip' }, icon: 'CopyIcon', isBookmarked: false },
+ { title: 'Tour', route: { name: 'extensions-tour' }, icon: 'GlobeIcon', isBookmarked: false },
+ // { title: 'Tree', route: { name: 'extensions-tree' }, icon: 'GitCommitIcon', isBookmarked: false },
+ { title: 'Typography', route: { name: 'ui-typography' }, icon: 'TypeIcon', isBookmarked: false },
+ { title: 'Under Maintenance', route: { name: 'misc-under-maintenance' }, icon: 'MonitorIcon', isBookmarked: false },
+ { title: 'Users Edit', route: { name: 'apps-users-edit', params: { id: 21 } }, icon: 'UserIcon', isBookmarked: false },
+ { title: 'Users List', route: { name: 'apps-users-list' }, icon: 'UserIcon', isBookmarked: false },
+ { title: 'Users View', route: { name: 'apps-users-view', params: { id: 21 } }, icon: 'UserIcon', isBookmarked: false },
+ { title: 'Vue Select', route: { name: 'extensions-vue-select' }, icon: 'AlignCenterIcon', isBookmarked: false },
+ { title: 'Wishlist', route: { name: 'apps-e-commerce-wishlist' }, icon: 'HeartIcon', isBookmarked: false },
+ ],
+ },
+ files: {
+ key: 'file_name',
+ data: [
+ {
+ file_name: "Joe's CV",
+ from: 'Stacy Watson',
+ icon: require('@/assets/images/icons/doc.png'),
+ size: '1.7 mb',
+ },
+ {
+ file_name: 'Passport Image',
+ from: 'Ben Sinitiere',
+ icon: require('@/assets/images/icons/jpg.png'),
+ size: ' 52 kb',
+ },
+ {
+ file_name: 'Questions',
+ from: 'Charleen Patti',
+ icon: require('@/assets/images/icons/doc.png'),
+ size: '1.5 gb',
+ },
+ {
+ file_name: 'Parenting Guide',
+ from: 'Doyle Blatteau',
+ icon: require('@/assets/images/icons/doc.png'),
+ size: '2.3 mb',
+ },
+ {
+ file_name: 'Class Notes',
+ from: 'Gwen Greenlow',
+ icon: require('@/assets/images/icons/doc.png'),
+ size: ' 30 kb',
+ },
+ {
+ file_name: 'Class Attendance',
+ from: 'Tom Alred',
+ icon: require('@/assets/images/icons/xls.png'),
+ size: '52 mb',
+ },
+ {
+ file_name: 'Company Salary',
+ from: 'Nellie Dezan',
+ icon: require('@/assets/images/icons/xls.png'),
+ size: '29 mb',
+ },
+ {
+ file_name: 'Company Logo',
+ from: 'Steve Sheldon',
+ icon: require('@/assets/images/icons/jpg.png'),
+ size: '1.3 mb',
+ },
+ {
+ file_name: 'Crime Rates',
+ from: 'Sherlock Holmes',
+ icon: require('@/assets/images/icons/xls.png'),
+ size: '37 kb',
+ },
+ {
+ file_name: 'Ulysses',
+ from: 'Theresia Wrenne',
+ icon: require('@/assets/images/icons/pdf.png'),
+ size: '7.2 mb',
+ },
+ {
+ file_name: 'War and Peace',
+ from: 'Goldie Highnote',
+ icon: require('@/assets/images/icons/pdf.png'),
+ size: '10.5 mb',
+ },
+ {
+ file_name: 'Vedas',
+ from: 'Ajay Patel',
+ icon: require('@/assets/images/icons/pdf.png'),
+ size: '8.3 mb',
+ },
+ {
+ file_name: 'The Trial',
+ from: 'Sirena Linkert',
+ icon: require('@/assets/images/icons/pdf.png'),
+ size: '1.5 mb',
+ },
+ ],
+ },
+ contacts: {
+ key: 'name',
+ data: [
+ {
+ img: require('@/assets/images/portrait/small/avatar-s-4.jpg'),
+ name: 'Rena Brant',
+ email: 'nephrod@preany.co.uk',
+ time: '21/05/2019',
+ },
+ {
+ img: require('@/assets/images/portrait/small/avatar-s-2.jpg'),
+ name: 'Mariano Packard',
+ email: 'seek@sparaxis.org',
+ time: '14/01/2018',
+ },
+ {
+ img: require('@/assets/images/portrait/small/avatar-s-24.jpg'),
+ name: 'Risa Montufar',
+ email: 'vagary@unblist.org',
+ time: '10/08/2019',
+ },
+ {
+ img: require('@/assets/images/portrait/small/avatar-s-15.jpg'),
+ name: 'Maragaret Cimo',
+ email: 'designed@insanely.net',
+ time: '01/12/2019',
+ },
+ {
+ img: require('@/assets/images/portrait/small/avatar-s-7.jpg'),
+ name: 'Jona Prattis',
+ email: 'unwieldable@unblist.org',
+ time: '21/05/2019',
+ },
+ {
+ img: require('@/assets/images/portrait/small/avatar-s-5.jpg'),
+ name: 'Edmond Chicon',
+ email: 'museist@anaphyte.co.uk',
+ time: '15/11/2019',
+ },
+ {
+ img: require('@/assets/images/portrait/small/avatar-s-25.jpg'),
+ name: 'Abbey Darden',
+ email: 'astema@defectively.co.uk',
+ time: '07/05/2019',
+ },
+ {
+ img: require('@/assets/images/portrait/small/avatar-s-10.jpg'),
+ name: 'Seema Moallankamp',
+ email: 'fernando@storkish.co.uk',
+ time: '13/08/2017',
+ },
+ {
+ img: require('@/assets/images/portrait/small/avatar-s-2.jpg'),
+ name: 'Charleen Warmington',
+ email: 'furphy@cannibal.net',
+ time: '11/08/1891',
+ },
+ {
+ img: require('@/assets/images/portrait/small/avatar-s-25.jpg'),
+ name: 'Geri Linch',
+ email: 'insignia@markab.org',
+ time: '18/01/2015',
+ },
+ {
+ img: require('@/assets/images/portrait/small/avatar-s-23.jpg'),
+ name: 'Shellie Muster',
+ email: 'maxillary@equalize.co.uk',
+ time: '26/07/2019',
+ },
+ {
+ img: require('@/assets/images/portrait/small/avatar-s-20.jpg'),
+ name: 'Jesenia Vanbramer',
+ email: 'hypotony@phonetist.net',
+ time: '12/09/2017',
+ },
+ {
+ img: require('@/assets/images/portrait/small/avatar-s-23.jpg'),
+ name: 'Mardell Channey',
+ email: 'peseta@myrica.com',
+ time: '11/11/2019',
+ },
+ ],
+ },
+}
+/* eslint-enable */
diff --git a/src/@core/layouts/components/content-with-sidebar/ContentWithSidebar.vue b/src/@core/layouts/components/content-with-sidebar/ContentWithSidebar.vue
new file mode 100644
index 00000000..056e14ff
--- /dev/null
+++ b/src/@core/layouts/components/content-with-sidebar/ContentWithSidebar.vue
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/components/layout-content-renderer/LayoutContentRendererDefault.vue b/src/@core/layouts/components/layout-content-renderer/LayoutContentRendererDefault.vue
new file mode 100644
index 00000000..7d58fed5
--- /dev/null
+++ b/src/@core/layouts/components/layout-content-renderer/LayoutContentRendererDefault.vue
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/components/layout-content-renderer/LayoutContentRendererLeft.vue b/src/@core/layouts/components/layout-content-renderer/LayoutContentRendererLeft.vue
new file mode 100644
index 00000000..6e834d3a
--- /dev/null
+++ b/src/@core/layouts/components/layout-content-renderer/LayoutContentRendererLeft.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/components/layout-content-renderer/LayoutContentRendererLeftDetached.vue b/src/@core/layouts/components/layout-content-renderer/LayoutContentRendererLeftDetached.vue
new file mode 100644
index 00000000..208c161e
--- /dev/null
+++ b/src/@core/layouts/components/layout-content-renderer/LayoutContentRendererLeftDetached.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/layout-full/LayoutFull.vue b/src/@core/layouts/layout-full/LayoutFull.vue
new file mode 100644
index 00000000..2010a9e1
--- /dev/null
+++ b/src/@core/layouts/layout-full/LayoutFull.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/layout-horizontal/LayoutHorizontal.vue b/src/@core/layouts/layout-horizontal/LayoutHorizontal.vue
new file mode 100644
index 00000000..21b2d852
--- /dev/null
+++ b/src/@core/layouts/layout-horizontal/LayoutHorizontal.vue
@@ -0,0 +1,216 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/HorizontalNavMenu.vue b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/HorizontalNavMenu.vue
new file mode 100644
index 00000000..7b96c47d
--- /dev/null
+++ b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/HorizontalNavMenu.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-group/HorizontalNavMenuGroup.vue b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-group/HorizontalNavMenuGroup.vue
new file mode 100644
index 00000000..d0aafb8b
--- /dev/null
+++ b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-group/HorizontalNavMenuGroup.vue
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-group/mixinHorizontalNavMenuGroup.js b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-group/mixinHorizontalNavMenuGroup.js
new file mode 100644
index 00000000..6f9a8206
--- /dev/null
+++ b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-group/mixinHorizontalNavMenuGroup.js
@@ -0,0 +1,10 @@
+export default {
+ watch: {
+ $route: {
+ immediate: true,
+ handler() {
+ this.updateIsActive()
+ },
+ },
+ },
+}
diff --git a/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-group/useHorizontalNavMenuGroup.js b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-group/useHorizontalNavMenuGroup.js
new file mode 100644
index 00000000..3b193bb4
--- /dev/null
+++ b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-group/useHorizontalNavMenuGroup.js
@@ -0,0 +1,61 @@
+// eslint-disable-next-line object-curly-newline
+import { ref, nextTick } from '@vue/composition-api'
+// import store from '@/store'
+import { isNavGroupActive } from '@core/layouts/utils'
+
+export default function useHorizontalNavMenuGroup(item) {
+ // ------------------------------------------------
+ // childDropdown
+ // ------------------------------------------------
+ const refChildDropdown = ref(null)
+ const openChildDropdownOnLeft = ref(false)
+
+ // ------------------------------------------------
+ // isActive
+ // ------------------------------------------------
+ const isOpen = ref(false)
+
+ const updateGroupOpen = val => {
+ isOpen.value = val
+ if (val) {
+ nextTick(() => {
+ const childDropdownWidth = refChildDropdown.value.offsetWidth
+ const windowContentWidth = window.innerWidth - 16
+ const { left: childDropdownLeft } = refChildDropdown.value.getBoundingClientRect()
+ const shallDropLeft = childDropdownLeft + childDropdownWidth - windowContentWidth
+ openChildDropdownOnLeft.value = shallDropLeft > 0
+
+ // Add scroll to child dd if don't have much space
+
+ const refChildDropdownTop = refChildDropdown.value.getBoundingClientRect().top
+ const refChildDropdownHeight = refChildDropdown.value.getBoundingClientRect().height
+ if (window.innerHeight - refChildDropdownTop - refChildDropdownHeight - 28 < 1) {
+ const maxHeight = window.innerHeight - refChildDropdownTop - 70
+ refChildDropdown.value.style.maxHeight = `${maxHeight}px`
+ refChildDropdown.value.style.overflowY = 'auto'
+ refChildDropdown.value.style.overflowX = 'hidden'
+ }
+ })
+ } else {
+ openChildDropdownOnLeft.value = false
+ }
+ }
+
+ // ------------------------------------------------
+ // isActive
+ // ------------------------------------------------
+ const isActive = ref(false)
+
+ const updateIsActive = () => {
+ isActive.value = isNavGroupActive(item.children)
+ }
+
+ return {
+ isOpen,
+ isActive,
+ updateGroupOpen,
+ updateIsActive,
+ refChildDropdown,
+ openChildDropdownOnLeft,
+ }
+}
diff --git a/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-header-group/HorizontalNavMenuHeaderGroup.vue b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-header-group/HorizontalNavMenuHeaderGroup.vue
new file mode 100644
index 00000000..7f82f276
--- /dev/null
+++ b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-header-group/HorizontalNavMenuHeaderGroup.vue
@@ -0,0 +1,80 @@
+
+ updateGroupOpen(true)"
+ @mouseleave="() => updateGroupOpen(false)"
+ >
+
+
+ {{ t(item.header) }}
+
+
+
+
+
+
diff --git a/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-header-group/mixinHorizontalNavMenuHeaderGroup.js b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-header-group/mixinHorizontalNavMenuHeaderGroup.js
new file mode 100644
index 00000000..6f9a8206
--- /dev/null
+++ b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-header-group/mixinHorizontalNavMenuHeaderGroup.js
@@ -0,0 +1,10 @@
+export default {
+ watch: {
+ $route: {
+ immediate: true,
+ handler() {
+ this.updateIsActive()
+ },
+ },
+ },
+}
diff --git a/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-header-group/useHorizontalNavMenuHeaderGroup.js b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-header-group/useHorizontalNavMenuHeaderGroup.js
new file mode 100644
index 00000000..d00d7d6f
--- /dev/null
+++ b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-header-group/useHorizontalNavMenuHeaderGroup.js
@@ -0,0 +1,30 @@
+import { ref } from '@vue/composition-api'
+import { isNavGroupActive } from '@core/layouts/utils'
+
+export default function useHorizontalNavMenuHeaderGroup(item) {
+ // ------------------------------------------------
+ // isOpen
+ // ------------------------------------------------
+ const isOpen = ref(false)
+
+ const updateGroupOpen = val => {
+ // eslint-disable-next-line no-use-before-define
+ isOpen.value = val
+ }
+
+ // ------------------------------------------------
+ // isActive
+ // ------------------------------------------------
+ const isActive = ref(false)
+
+ const updateIsActive = () => {
+ isActive.value = isNavGroupActive(item.children)
+ }
+
+ return {
+ isOpen,
+ isActive,
+ updateGroupOpen,
+ updateIsActive,
+ }
+}
diff --git a/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-header-link/HorizontalNavMenuHeaderLink.vue b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-header-link/HorizontalNavMenuHeaderLink.vue
new file mode 100644
index 00000000..2e7ad731
--- /dev/null
+++ b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-header-link/HorizontalNavMenuHeaderLink.vue
@@ -0,0 +1,56 @@
+
+
+
+
+ {{ t(item.title) }}
+
+
+
+
+
diff --git a/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-header-link/mixinHorizontalNavMenuHeaderLink.js b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-header-link/mixinHorizontalNavMenuHeaderLink.js
new file mode 100644
index 00000000..6f9a8206
--- /dev/null
+++ b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-header-link/mixinHorizontalNavMenuHeaderLink.js
@@ -0,0 +1,10 @@
+export default {
+ watch: {
+ $route: {
+ immediate: true,
+ handler() {
+ this.updateIsActive()
+ },
+ },
+ },
+}
diff --git a/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-header-link/useHorizontalNavMenuHeaderLink.js b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-header-link/useHorizontalNavMenuHeaderLink.js
new file mode 100644
index 00000000..d5ebfc2a
--- /dev/null
+++ b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-header-link/useHorizontalNavMenuHeaderLink.js
@@ -0,0 +1,18 @@
+import { ref } from '@vue/composition-api'
+import { isNavLinkActive } from '@core/layouts/utils'
+
+export default function useHorizontalNavMenuHeaderGroup(item) {
+ // ------------------------------------------------
+ // isActive
+ // ------------------------------------------------
+ const isActive = ref(false)
+
+ const updateIsActive = () => {
+ isActive.value = isNavLinkActive(item)
+ }
+
+ return {
+ isActive,
+ updateIsActive,
+ }
+}
diff --git a/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-items/HorizontalNavMenuItems.vue b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-items/HorizontalNavMenuItems.vue
new file mode 100644
index 00000000..08a10d21
--- /dev/null
+++ b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-items/HorizontalNavMenuItems.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
diff --git a/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-link/HorizontalNavMenuLink.vue b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-link/HorizontalNavMenuLink.vue
new file mode 100644
index 00000000..0ce28be7
--- /dev/null
+++ b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-link/HorizontalNavMenuLink.vue
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-link/mixinHorizontalNavMenuLink.js b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-link/mixinHorizontalNavMenuLink.js
new file mode 100644
index 00000000..6f9a8206
--- /dev/null
+++ b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-link/mixinHorizontalNavMenuLink.js
@@ -0,0 +1,10 @@
+export default {
+ watch: {
+ $route: {
+ immediate: true,
+ handler() {
+ this.updateIsActive()
+ },
+ },
+ },
+}
diff --git a/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-link/useHorizontalNavMenuLink.js b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-link/useHorizontalNavMenuLink.js
new file mode 100644
index 00000000..e7b3489e
--- /dev/null
+++ b/src/@core/layouts/layout-horizontal/components/horizontal-nav-menu/components/horizontal-nav-menu-link/useHorizontalNavMenuLink.js
@@ -0,0 +1,18 @@
+import { ref } from '@vue/composition-api'
+import { isNavLinkActive, navLinkProps } from '@core/layouts/utils'
+
+export default function useHorizontalNavMenuLink(item) {
+ const isActive = ref(false)
+
+ const linkProps = navLinkProps(item)
+
+ const updateIsActive = () => {
+ isActive.value = isNavLinkActive(item)
+ }
+
+ return {
+ isActive,
+ linkProps,
+ updateIsActive,
+ }
+}
diff --git a/src/@core/layouts/layout-horizontal/mixinLayoutHorizontal.js b/src/@core/layouts/layout-horizontal/mixinLayoutHorizontal.js
new file mode 100644
index 00000000..50265ed5
--- /dev/null
+++ b/src/@core/layouts/layout-horizontal/mixinLayoutHorizontal.js
@@ -0,0 +1,11 @@
+import { $themeBreakpoints } from '@themeConfig'
+
+export default {
+ watch: {
+ $route() {
+ if (this.$store.state.app.windowWidth < $themeBreakpoints.xl) {
+ this.isVerticalMenuActive = false
+ }
+ },
+ },
+}
diff --git a/src/@core/layouts/layout-horizontal/useLayoutHorizontal.js b/src/@core/layouts/layout-horizontal/useLayoutHorizontal.js
new file mode 100644
index 00000000..4c4837f0
--- /dev/null
+++ b/src/@core/layouts/layout-horizontal/useLayoutHorizontal.js
@@ -0,0 +1,57 @@
+import { computed } from '@vue/composition-api'
+import store from '@/store'
+
+export default function useLayoutHorizontal(navbarMenuType, footerType, isVerticalMenuActive) {
+ const currentBreakpoint = computed(() => store.getters['app/currentBreakPoint'])
+
+ const layoutClasses = computed(() => {
+ const classes = []
+
+ if (currentBreakpoint.value === 'xl') {
+ classes.push('horizontal-menu')
+ } else {
+ classes.push('vertical-overlay-menu')
+ // classes.push('vertical-layout')
+ classes.push(isVerticalMenuActive.value ? 'menu-open' : 'menu-hide')
+ }
+
+ // Navbar
+ classes.push(`navbar-${navbarMenuType.value}`)
+
+ // Footer
+ if (footerType.value === 'sticky') classes.push('footer-fixed')
+ if (footerType.value === 'static') classes.push('footer-static')
+ if (footerType.value === 'hidden') classes.push('footer-hidden')
+
+ return classes
+ })
+
+ // const resizeHandler = () => {
+ // isVerticalMenuActive.value = window.innerWidth >= 1200
+
+ // if (window.innerWidth >= 1200) currentBreakpoint.value = 'xl'
+ // else if (window.innerWidth >= 992) currentBreakpoint.value = 'lg'
+ // else if (window.innerWidth >= 768) currentBreakpoint.value = 'md'
+ // else if (window.innerWidth >= 576) currentBreakpoint.value = 'sm'
+ // else currentBreakpoint.value = 'xs'
+ // }
+
+ const navbarMenuTypeClass = computed(() => {
+ if (navbarMenuType.value === 'sticky') return 'fixed-top'
+ if (navbarMenuType.value === 'static') return ''
+ if (navbarMenuType.value === 'hidden') return 'd-none'
+ return 'floating-nav'
+ })
+
+ const footerTypeClass = computed(() => {
+ if (footerType.value === 'static') return 'footer-static'
+ if (footerType.value === 'hidden') return 'd-none'
+ return ''
+ })
+
+ return {
+ layoutClasses,
+ navbarMenuTypeClass,
+ footerTypeClass,
+ }
+}
diff --git a/src/@core/layouts/layout-vertical/LayoutVertical.vue b/src/@core/layouts/layout-vertical/LayoutVertical.vue
new file mode 100644
index 00000000..29c05722
--- /dev/null
+++ b/src/@core/layouts/layout-vertical/LayoutVertical.vue
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/layout-vertical/components/vertical-nav-menu/VerticalNavMenu.vue b/src/@core/layouts/layout-vertical/components/vertical-nav-menu/VerticalNavMenu.vue
new file mode 100644
index 00000000..7eafc562
--- /dev/null
+++ b/src/@core/layouts/layout-vertical/components/vertical-nav-menu/VerticalNavMenu.vue
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ appName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{ shallShadowBottom = evt.srcElement.scrollTop > 0 }"
+ >
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-group/VerticalNavMenuGroup.vue b/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-group/VerticalNavMenuGroup.vue
new file mode 100644
index 00000000..06c951d7
--- /dev/null
+++ b/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-group/VerticalNavMenuGroup.vue
@@ -0,0 +1,100 @@
+
+
+ updateGroupOpen(!isOpen)"
+ >
+
+
+
+ {{ item.tag }}
+
+
+
+
+
+
+
+
+
diff --git a/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-group/mixinVerticalNavMenuGroup.js b/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-group/mixinVerticalNavMenuGroup.js
new file mode 100644
index 00000000..6f9a8206
--- /dev/null
+++ b/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-group/mixinVerticalNavMenuGroup.js
@@ -0,0 +1,10 @@
+export default {
+ watch: {
+ $route: {
+ immediate: true,
+ handler() {
+ this.updateIsActive()
+ },
+ },
+ },
+}
diff --git a/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-group/useVerticalNavMenuGroup.js b/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-group/useVerticalNavMenuGroup.js
new file mode 100644
index 00000000..9d7b9fbc
--- /dev/null
+++ b/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-group/useVerticalNavMenuGroup.js
@@ -0,0 +1,103 @@
+// eslint-disable-next-line object-curly-newline
+import { ref, watch, inject, computed } from '@vue/composition-api'
+import store from '@/store'
+import { isNavGroupActive } from '@core/layouts/utils'
+
+export default function useVerticalNavMenuGroup(item) {
+ // ------------------------------------------------
+ // isVerticalMenuCollapsed
+ // ------------------------------------------------
+ const isVerticalMenuCollapsed = computed(() => store.state.verticalMenu.isVerticalMenuCollapsed)
+
+ watch(isVerticalMenuCollapsed, val => {
+ /* eslint-disable no-use-before-define */
+ // * Handles case if routing is done outside of vertical menu
+ // i.e. From Customizer Collapse or Using Link
+ if (!isMouseHovered.value) {
+ if (val) isOpen.value = false
+ else if (!val && isActive.value) isOpen.value = true
+ }
+ /* eslint-enable */
+ })
+
+ // ------------------------------------------------
+ // isMouseHovered
+ // ------------------------------------------------
+ const isMouseHovered = inject('isMouseHovered')
+
+ // Collapse menu when menu is collapsed and show on open
+ watch(isMouseHovered, val => {
+ if (isVerticalMenuCollapsed.value) {
+ // * we have used `val && val && isActive.value` to only open active menu on mouseEnter and close all menu on mouseLeave
+ // * If we don't use `isActive.value` with `val` it can open other groups which are not active as well
+ // eslint-disable-next-line no-use-before-define
+ isOpen.value = val && isActive.value
+ }
+ })
+
+ // ------------------------------------------------
+ // openGroups
+ // ------------------------------------------------
+ const openGroups = inject('openGroups')
+
+ // Collapse other groups if one group is opened
+ watch(openGroups, currentOpenGroups => {
+ const clickedGroup = currentOpenGroups[currentOpenGroups.length - 1]
+
+ // If current group is not clicked group or current group is not active => Proceed with closing it
+ // eslint-disable-next-line no-use-before-define
+ if (clickedGroup !== item.title && !isActive.value) {
+ // If clicked group is not child of current group
+ // eslint-disable-next-line no-use-before-define
+ if (!doesHaveChild(clickedGroup)) isOpen.value = false
+ }
+ })
+
+ // ------------------------------------------------
+ // isOpen
+ // ------------------------------------------------
+ const isOpen = ref(false)
+ watch(isOpen, val => {
+ // if group is opened push it to the array
+ if (val) openGroups.value.push(item.title)
+ })
+
+ const updateGroupOpen = val => {
+ // eslint-disable-next-line no-use-before-define
+ isOpen.value = val
+ }
+
+ // ------------------------------------------------
+ // isActive
+ // ------------------------------------------------
+ const isActive = ref(false)
+ watch(isActive, val => {
+ /*
+ If menu is collapsed and not hovered(optional) then don't open group
+ */
+ if (val) {
+ if (!isVerticalMenuCollapsed.value) isOpen.value = val
+ } else {
+ isOpen.value = val
+ }
+ })
+
+ const updateIsActive = () => {
+ isActive.value = isNavGroupActive(item.children)
+ }
+
+ // ------------------------------------------------
+ // Other Methods
+ // ------------------------------------------------
+
+ const doesHaveChild = title => item.children.some(child => child.title === title)
+
+ return {
+ isOpen,
+ isActive,
+ updateGroupOpen,
+ openGroups,
+ isMouseHovered,
+ updateIsActive,
+ }
+}
diff --git a/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-header/index.js b/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-header/index.js
new file mode 100644
index 00000000..5638c875
--- /dev/null
+++ b/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-header/index.js
@@ -0,0 +1,22 @@
+import { useUtils as useI18nUtils } from '@core/libs/i18n'
+import { useUtils as useAclUtils } from '@core/libs/acl'
+
+const { t } = useI18nUtils()
+const { canViewVerticalNavMenuHeader } = useAclUtils()
+
+export default {
+ props: {
+ item: {
+ type: Object,
+ required: true,
+ },
+ },
+ render(h) {
+ const span = h('span', {}, t(this.item.header))
+ const icon = h('feather-icon', { props: { icon: 'MoreHorizontalIcon', size: '18' } })
+ if (canViewVerticalNavMenuHeader(this.item)) {
+ return h('li', { class: 'navigation-header text-truncate' }, [span, icon])
+ }
+ return h()
+ },
+}
diff --git a/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-items/VerticalNavMenuItems.vue b/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-items/VerticalNavMenuItems.vue
new file mode 100644
index 00000000..8a51b752
--- /dev/null
+++ b/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-items/VerticalNavMenuItems.vue
@@ -0,0 +1,39 @@
+
+
+
+
+
diff --git a/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-link/VerticalNavMenuLink.vue b/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-link/VerticalNavMenuLink.vue
new file mode 100644
index 00000000..44775ed9
--- /dev/null
+++ b/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-link/VerticalNavMenuLink.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+ {{ item.tag }}
+
+
+
+
+
+
diff --git a/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-link/mixinVerticalNavMenuLink.js b/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-link/mixinVerticalNavMenuLink.js
new file mode 100644
index 00000000..6f9a8206
--- /dev/null
+++ b/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-link/mixinVerticalNavMenuLink.js
@@ -0,0 +1,10 @@
+export default {
+ watch: {
+ $route: {
+ immediate: true,
+ handler() {
+ this.updateIsActive()
+ },
+ },
+ },
+}
diff --git a/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-link/useVerticalNavMenuLink.js b/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-link/useVerticalNavMenuLink.js
new file mode 100644
index 00000000..4562d57c
--- /dev/null
+++ b/src/@core/layouts/layout-vertical/components/vertical-nav-menu/components/vertical-nav-menu-link/useVerticalNavMenuLink.js
@@ -0,0 +1,18 @@
+import { ref } from '@vue/composition-api'
+import { isNavLinkActive, navLinkProps } from '@core/layouts/utils'
+
+export default function useVerticalNavMenuLink(item) {
+ const isActive = ref(false)
+
+ const linkProps = navLinkProps(item)
+
+ const updateIsActive = () => {
+ isActive.value = isNavLinkActive(item)
+ }
+
+ return {
+ isActive,
+ linkProps,
+ updateIsActive,
+ }
+}
diff --git a/src/@core/layouts/layout-vertical/components/vertical-nav-menu/useVerticalNavMenu.js b/src/@core/layouts/layout-vertical/components/vertical-nav-menu/useVerticalNavMenu.js
new file mode 100644
index 00000000..1df2a1d7
--- /dev/null
+++ b/src/@core/layouts/layout-vertical/components/vertical-nav-menu/useVerticalNavMenu.js
@@ -0,0 +1,42 @@
+import { ref, computed } from '@vue/composition-api'
+import store from '@/store'
+
+export default function useVerticalNavMenu(props) {
+ // ------------------------------------------------
+ // isVerticalMenuCollapsed
+ // ------------------------------------------------
+ const isVerticalMenuCollapsed = computed({
+ get: () => store.state.verticalMenu.isVerticalMenuCollapsed,
+ set: val => {
+ store.commit('verticalMenu/UPDATE_VERTICAL_MENU_COLLAPSED', val)
+ },
+ })
+
+ // ------------------------------------------------
+ // collapseTogglerIcon
+ // ------------------------------------------------
+ const collapseTogglerIcon = computed(() => {
+ if (props.isVerticalMenuActive) {
+ return isVerticalMenuCollapsed.value ? 'unpinned' : 'pinned'
+ }
+ return 'close'
+ })
+
+ const isMouseHovered = ref(false)
+
+ const updateMouseHovered = val => {
+ isMouseHovered.value = val
+ }
+
+ const toggleCollapsed = () => {
+ isVerticalMenuCollapsed.value = !isVerticalMenuCollapsed.value
+ }
+
+ return {
+ isMouseHovered,
+ isVerticalMenuCollapsed,
+ collapseTogglerIcon,
+ toggleCollapsed,
+ updateMouseHovered,
+ }
+}
diff --git a/src/@core/layouts/layout-vertical/mixinVerticalLayout.js b/src/@core/layouts/layout-vertical/mixinVerticalLayout.js
new file mode 100644
index 00000000..50265ed5
--- /dev/null
+++ b/src/@core/layouts/layout-vertical/mixinVerticalLayout.js
@@ -0,0 +1,11 @@
+import { $themeBreakpoints } from '@themeConfig'
+
+export default {
+ watch: {
+ $route() {
+ if (this.$store.state.app.windowWidth < $themeBreakpoints.xl) {
+ this.isVerticalMenuActive = false
+ }
+ },
+ },
+}
diff --git a/src/@core/layouts/layout-vertical/useVerticalLayout.js b/src/@core/layouts/layout-vertical/useVerticalLayout.js
new file mode 100644
index 00000000..705b10dc
--- /dev/null
+++ b/src/@core/layouts/layout-vertical/useVerticalLayout.js
@@ -0,0 +1,84 @@
+import { ref, computed, watch } from '@vue/composition-api'
+import store from '@/store'
+
+export default function useVerticalLayout(navbarType, footerType) {
+ const isVerticalMenuActive = ref(true)
+ const toggleVerticalMenuActive = () => {
+ isVerticalMenuActive.value = !isVerticalMenuActive.value
+ }
+
+ const currentBreakpoint = ref('xl')
+
+ const isVerticalMenuCollapsed = computed(() => store.state.verticalMenu.isVerticalMenuCollapsed)
+
+ const layoutClasses = computed(() => {
+ const classes = []
+
+ if (currentBreakpoint.value === 'xl') {
+ classes.push('vertical-menu-modern')
+ classes.push(isVerticalMenuCollapsed.value ? 'menu-collapsed' : 'menu-expanded')
+ } else {
+ classes.push('vertical-overlay-menu')
+ classes.push(isVerticalMenuActive.value ? 'menu-open' : 'menu-hide')
+ }
+
+ // Navbar
+ classes.push(`navbar-${navbarType.value}`)
+
+ // Footer
+ if (footerType.value === 'sticky') classes.push('footer-fixed')
+ if (footerType.value === 'static') classes.push('footer-static')
+ if (footerType.value === 'hidden') classes.push('footer-hidden')
+
+ return classes
+ })
+
+ // ------------------------------------------------
+ // Resize handler for Breakpoint
+ // ------------------------------------------------
+ watch(currentBreakpoint, val => {
+ isVerticalMenuActive.value = val === 'xl'
+ })
+
+ const resizeHandler = () => {
+ // ? This closes vertical menu when title bar is shown/hidden in mobile browsers.
+ // ? We will watch for breakpoint to overcome this issue
+ // isVerticalMenuActive.value = window.innerWidth >= 1200
+
+ // ! You can use store getter to get breakpoint
+ if (window.innerWidth >= 1200) currentBreakpoint.value = 'xl'
+ else if (window.innerWidth >= 992) currentBreakpoint.value = 'lg'
+ else if (window.innerWidth >= 768) currentBreakpoint.value = 'md'
+ else if (window.innerWidth >= 576) currentBreakpoint.value = 'sm'
+ else currentBreakpoint.value = 'xs'
+ }
+
+ const overlayClasses = computed(() => {
+ if (currentBreakpoint.value !== 'xl' && isVerticalMenuActive.value) return 'show'
+ return null
+ })
+
+ const navbarTypeClass = computed(() => {
+ if (navbarType.value === 'sticky') return 'fixed-top'
+ if (navbarType.value === 'static') return 'navbar-static-top'
+ if (navbarType.value === 'hidden') return 'd-none'
+ return 'floating-nav'
+ })
+
+ const footerTypeClass = computed(() => {
+ if (footerType.value === 'static') return 'footer-static'
+ if (footerType.value === 'hidden') return 'd-none'
+ return ''
+ })
+
+ return {
+ isVerticalMenuActive,
+ toggleVerticalMenuActive,
+ isVerticalMenuCollapsed,
+ layoutClasses,
+ overlayClasses,
+ navbarTypeClass,
+ footerTypeClass,
+ resizeHandler,
+ }
+}
diff --git a/src/@core/layouts/utils.js b/src/@core/layouts/utils.js
new file mode 100644
index 00000000..d277edc4
--- /dev/null
+++ b/src/@core/layouts/utils.js
@@ -0,0 +1,100 @@
+import router from '@/router'
+import { isObject } from '@core/utils/utils'
+import { computed } from '@vue/composition-api'
+
+/**
+ * Return which component to render based on it's data/context
+ * @param {Object} item nav menu item
+ */
+export const resolveVerticalNavMenuItemComponent = item => {
+ if (item.header) return 'vertical-nav-menu-header'
+ if (item.children) return 'vertical-nav-menu-group'
+ return 'vertical-nav-menu-link'
+}
+
+/**
+ * Return which component to render based on it's data/context
+ * @param {Object} item nav menu item
+ */
+export const resolveHorizontalNavMenuItemComponent = item => {
+ if (item.children) return 'horizontal-nav-menu-group'
+ return 'horizontal-nav-menu-link'
+}
+
+/**
+ * Return route name for navigation link
+ * If link is string then it will assume it is route-name
+ * IF link is object it will resolve the object and will return the link
+ * @param {Object, String} link navigation link object/string
+ */
+export const resolveNavDataRouteName = link => {
+ if (isObject(link.route)) {
+ const { route } = router.resolve(link.route)
+ return route.name
+ }
+ return link.route
+}
+
+/**
+ * Check if nav-link is active
+ * @param {Object} link nav-link object
+ */
+export const isNavLinkActive = link => {
+ // Matched routes array of current route
+ const matchedRoutes = router.currentRoute.matched
+
+ // Check if provided route matches route's matched route
+ const resolveRoutedName = resolveNavDataRouteName(link)
+
+ if (!resolveRoutedName) return false
+
+ let chainCompare = true
+ const p1 = typeof router.currentRoute.params
+ const p2 = typeof link.route.params
+ if (p1 === p2) {
+ chainCompare = router.currentRoute.params.chain === link.route.params.chain
+ }
+
+ return matchedRoutes.some(route => (route.name === resolveRoutedName && chainCompare) || route.meta.navActiveLink === resolveRoutedName)
+}
+
+/**
+ * Check if nav group is
+ * @param {Array} children Group children
+ */
+export const isNavGroupActive = children => {
+ // Matched routes array of current route
+ const matchedRoutes = router.currentRoute.matched
+
+ return children.some(child => {
+ // If child have children => It's group => Go deeper(recursive)
+ if (child.children) {
+ return isNavGroupActive(child.children)
+ }
+
+ // else it's link => Check for matched Route
+ return isNavLinkActive(child, matchedRoutes)
+ })
+}
+
+/**
+ * Return b-link props to use
+ * @param {Object, String} item navigation routeName or route Object provided in navigation data
+ */
+// prettier-ignore
+export const navLinkProps = item => computed(() => {
+ const props = {}
+
+ // If route is string => it assumes => Create route object from route name
+ // If route is not string => It assumes it's route object => returns route object
+ if (item.route) props.to = typeof item.route === 'string' ? { name: item.route } : item.route
+ else {
+ props.href = item.href
+ props.target = '_blank'
+ props.rel = 'nofollow'
+ }
+
+ if (!props.target) props.target = item.target || null
+
+ return props
+})
diff --git a/src/@core/libs/acl/index.js b/src/@core/libs/acl/index.js
new file mode 100644
index 00000000..3be95485
--- /dev/null
+++ b/src/@core/libs/acl/index.js
@@ -0,0 +1,7 @@
+import * as utils from './utils'
+
+export const useUtils = () => ({
+ ...utils,
+})
+
+export const _ = null
diff --git a/src/@core/libs/acl/utils.js b/src/@core/libs/acl/utils.js
new file mode 100644
index 00000000..ea72b4be
--- /dev/null
+++ b/src/@core/libs/acl/utils.js
@@ -0,0 +1,96 @@
+import { getCurrentInstance } from '@vue/composition-api'
+
+/**
+ * Returns ability result if ACL is configured or else just return true
+ * Useful if you don't know if ACL is configured or not
+ * Used in @core files to handle absence of ACL without errors
+ * @param {String} action CASL Actions // https://casl.js.org/v4/en/guide/intro#basics
+ * @param {String} subject CASL Subject // https://casl.js.org/v4/en/guide/intro#basics
+ */
+export const can = (action, subject) => {
+ const vm = getCurrentInstance().proxy
+ return vm.$can ? vm.$can(action, subject) : true
+}
+
+/**
+ * Check if user can view item based on it's ability
+ * Based on item's action and resource
+ * @param {Object} item navigation object item
+ */
+export const canViewVerticalNavMenuLink = item => can(item.action, item.resource)
+
+/**
+ * Check if user can view item based on it's ability
+ * Based on item's action and resource & Hide group if all of it's children are hidden
+ * @param {Object} item navigation object item
+ */
+// eslint-disable-next-line arrow-body-style
+export const canViewVerticalNavMenuGroup = item => {
+ // ! This same logic is used in canViewHorizontalNavMenuGroup and canViewHorizontalNavMenuHeaderGroup. So make sure to update logic in them as well
+ const hasAnyVisibleChild = item.children.some(i => can(i.action, i.resource))
+
+ // If resource and action is defined in item => Return based on children visibility (Hide group if no child is visible)
+ // Else check for ability using provided resource and action along with checking if has any visible child
+ if (!(item.action && item.resource)) {
+ return hasAnyVisibleChild
+ }
+ return can(item.action, item.resource) && hasAnyVisibleChild
+}
+
+/**
+ * Check if user can view item based on it's ability
+ * Based on item's action and resource
+ * @param {Object} item navigation object item
+ */
+export const canViewVerticalNavMenuHeader = item => can(item.action, item.resource)
+
+/**
+ * Check if user can view item based on it's ability
+ * Based on item's action and resource
+ * @param {Object} item navigation object item
+ */
+export const canViewHorizontalNavMenuLink = item => can(item.action, item.resource)
+
+/**
+ * Check if user can view item based on it's ability
+ * Based on item's action and resource
+ * @param {Object} item navigation object item
+ */
+export const canViewHorizontalNavMenuHeaderLink = item => can(item.action, item.resource)
+
+/**
+ * Check if user can view item based on it's ability
+ * Based on item's action and resource & Hide group if all of it's children are hidden
+ * @param {Object} item navigation object item
+ */
+// eslint-disable-next-line arrow-body-style
+export const canViewHorizontalNavMenuGroup = item => {
+ // ? Same logic as canViewVerticalNavMenuGroup
+ const hasAnyVisibleChild = item.children.some(i => can(i.action, i.resource))
+
+ // If resource and action is defined in item => Return based on children visibility (Hide group if no child is visible)
+ // Else check for ability using provided resource and action along with checking if has any visible child
+ if (!(item.action && item.resource)) {
+ return hasAnyVisibleChild
+ }
+ return can(item.action, item.resource) && hasAnyVisibleChild
+}
+
+// eslint-disable-next-line arrow-body-style
+export const canViewHorizontalNavMenuHeaderGroup = item => {
+ // ? Same logic as canViewVerticalNavMenuGroup but with extra content
+
+ // eslint-disable-next-line arrow-body-style
+ const hasAnyVisibleChild = item.children.some(grpOrItem => {
+ // If it have children => It's grp
+ // Call ACL function based on grp/link
+ return grpOrItem.children ? canViewHorizontalNavMenuGroup(grpOrItem) : canViewHorizontalNavMenuLink(grpOrItem)
+ })
+
+ // If resource and action is defined in item => Return based on children visibility (Hide group if no child is visible)
+ // Else check for ability using provided resource and action along with checking if has any visible child
+ if (!(item.action && item.resource)) {
+ return hasAnyVisibleChild
+ }
+ return can(item.action, item.resource) && hasAnyVisibleChild
+}
diff --git a/src/@core/libs/i18n/index.js b/src/@core/libs/i18n/index.js
new file mode 100644
index 00000000..3be95485
--- /dev/null
+++ b/src/@core/libs/i18n/index.js
@@ -0,0 +1,7 @@
+import * as utils from './utils'
+
+export const useUtils = () => ({
+ ...utils,
+})
+
+export const _ = null
diff --git a/src/@core/libs/i18n/utils.js b/src/@core/libs/i18n/utils.js
new file mode 100644
index 00000000..0650dbbb
--- /dev/null
+++ b/src/@core/libs/i18n/utils.js
@@ -0,0 +1,15 @@
+import { getCurrentInstance } from '@vue/composition-api'
+
+/**
+ * Returns translated string if i18n package is available to Vue
+ * If i18n is not configured then it will simply return what is being passed
+ * Useful if you don't know if i18n is configured or not
+ * Used in @core files to handle absence of i18n without errors
+ * @param {String} key i18n key to use for translation
+ */
+export const t = key => {
+ const vm = getCurrentInstance().proxy
+ return vm.$t ? vm.$t(key) : key
+}
+
+export const _ = null
diff --git a/src/@core/mixins/ui/forms.js b/src/@core/mixins/ui/forms.js
new file mode 100644
index 00000000..26aa903c
--- /dev/null
+++ b/src/@core/mixins/ui/forms.js
@@ -0,0 +1,15 @@
+// We haven't added icon's computed property because it makes this mixin coupled with UI
+export const togglePasswordVisibility = {
+ data() {
+ return {
+ passwordFieldType: 'password',
+ }
+ },
+ methods: {
+ togglePasswordVisibility() {
+ this.passwordFieldType = this.passwordFieldType === 'password' ? 'text' : 'password'
+ },
+ },
+}
+
+export const _ = null
diff --git a/src/@core/mixins/ui/transition.js b/src/@core/mixins/ui/transition.js
new file mode 100644
index 00000000..272fbd3f
--- /dev/null
+++ b/src/@core/mixins/ui/transition.js
@@ -0,0 +1,58 @@
+export const heightTransition = {
+ /*
+
+ HowTo:
+ 1. Add dynamic style to element and set style as `trHeight`
+ 2. Set transition speed using `transition: 0.35s height;` <= you can use appropriate value;
+ 3. Optionally you can set `overflow: hidden;` to hide element overflow while height is animated.
+ 4. Set initial height using `trSetHeight` before any operation. [mounted hook is recommended - You can use `ref` for dynamic contents]
+ 5. Toggle height using height operations 🍻
+ 6. Toggle usage of $nextTick for height operations is any issue occur [experimental] 🔬
+
+ */
+
+ data() {
+ return {
+ trHeight: null,
+ }
+ },
+ methods: {
+ trAddHeight(val) {
+ // Add height to existing height
+ // Usage: Where new element is append or more height is added (e.g. list append)
+
+ /* Assumes:
+ - Height is assigned and is `String`
+ - Incoming value is valid number in `Number` or `String`
+ */
+ const heightValue = Number(this.trHeight.substring(0, this.trHeight.length - 2))
+ this.trHeight = `${heightValue + Number(val)}px`
+ },
+ trTrimHeight(val) {
+ // Remove height from existing height
+ // Usage: Where new element is removed or height is remove (e.g. list pop/ele remove)
+
+ /* Assumes:
+ - Height is assigned and is `String`
+ - Incoming value is valid number in `Number` or `String`
+ */
+ const heightValue = Number(this.trHeight.substring(0, this.trHeight.length - 2))
+ this.trHeight = `${heightValue - Number(val)}px`
+ },
+ trSetHeight(val) {
+ // Set height
+ // Usage: Mostly for assigning initial value from mounted hook
+
+ /* Assumes:
+ - Height is not assigned and what to assign for add/remove operation
+ - What to set height at something for odd usage
+ - Incoming value is valid number in `Number` or `String`
+ */
+ if (val === null) this.trHeight = 'auto'
+ else this.trHeight = `${Number(val)}px`
+ },
+ },
+}
+
+// Ignore below for now. We will remove it when we add more transition in future.
+export const _ = null
diff --git a/src/@core/scss/base/bootstrap-extended.scss b/src/@core/scss/base/bootstrap-extended.scss
new file mode 100644
index 00000000..89c5f99f
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended.scss
@@ -0,0 +1,47 @@
+// ================================================================================================
+// File Name: bootstrap-extended.scss
+// Description: List of modified Bootstrap files. This is an actual copy of bootstrap.scss
+// excluding files that have not been modified.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import 'bootstrap-extended/include'; // Bootstrap includes
+@import 'components/include'; // Components includes
+
+// Custom template mixins
+@import 'core/mixins/alert'; // Template custom mixins
+
+// Core CSS
+@import 'bootstrap-extended/reboot';
+@import 'bootstrap-extended/helper';
+@import 'bootstrap-extended/type';
+@import 'bootstrap-extended/code';
+@import 'bootstrap-extended/tables';
+@import 'bootstrap-extended/forms';
+@import 'bootstrap-extended/buttons';
+@import 'bootstrap-extended/button-group';
+
+// Components
+@import 'bootstrap-extended/dropdown';
+@import 'bootstrap-extended/navbar';
+@import 'bootstrap-extended/card';
+@import 'bootstrap-extended/breadcrumb';
+@import 'bootstrap-extended/badge';
+@import 'bootstrap-extended/nav';
+@import 'bootstrap-extended/alert';
+@import 'bootstrap-extended/media';
+@import 'bootstrap-extended/progress';
+@import 'bootstrap-extended/list-group';
+@import 'bootstrap-extended/toast';
+@import 'bootstrap-extended/collapse';
+@import 'bootstrap-extended/pagination';
+
+// Components w/ JavaScript
+@import 'bootstrap-extended/modal';
+@import 'bootstrap-extended/popover';
+
+// Utility classes
+@import 'bootstrap-extended/utilities';
diff --git a/src/@core/scss/base/bootstrap-extended/_alert.scss b/src/@core/scss/base/bootstrap-extended/_alert.scss
new file mode 100644
index 00000000..f24e9983
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_alert.scss
@@ -0,0 +1,56 @@
+// Alerts
+
+.alert {
+ font-weight: 500;
+ border: none;
+ padding: 0;
+ // close
+ &.alert-dismissible {
+ .close {
+ padding: 0.5rem $alert-padding-x 0.5rem $alert-padding-x;
+ background-color: transparent !important;
+ box-shadow: none !important;
+ }
+ .alert-body {
+ padding: $alert-padding-y ($alert-padding-x * 2) $alert-padding-y $alert-padding-x;
+ }
+ }
+ .close:focus {
+ outline: 0;
+ }
+
+ .alert-link:hover {
+ text-decoration: underline;
+ }
+
+ // For Alert Content
+ p {
+ font-weight: 500;
+ padding: 2px 0;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+
+ // For alert heading
+ .alert-heading {
+ font-weight: 600;
+ font-size: $font-size-base;
+ padding: $alert-padding-y $alert-padding-x;
+ margin-bottom: 0;
+ }
+ .alert-body {
+ padding: $alert-padding-y $alert-padding-x;
+ i,
+ svg {
+ position: relative;
+ top: -2px;
+ }
+ }
+
+ // For dark alert
+ &.alert-dark {
+ .alert-heading {
+ @include alert-heading-bs($dark);
+ }
+ }
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_badge.scss b/src/@core/scss/base/bootstrap-extended/_badge.scss
new file mode 100644
index 00000000..636da581
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_badge.scss
@@ -0,0 +1,90 @@
+// Badge
+
+.badge {
+ color: $white;
+ &[class*='badge-'] {
+ [class*='icon-'] {
+ line-height: 1;
+ }
+
+ a {
+ color: $white;
+ }
+
+ // badge dropdown alignment
+ .dropdown-toggle,
+ &.dropdown-toggle {
+ span,
+ i,
+ svg {
+ vertical-align: text-top;
+ }
+ i,
+ svg {
+ padding-left: 0.2rem;
+ }
+ &::after {
+ position: relative;
+ top: 0;
+ left: 0;
+ font-size: 1rem;
+ }
+ }
+ .dropdown-menu {
+ a {
+ color: $dropdown-color;
+ }
+ }
+ }
+
+ i,
+ svg {
+ height: 12px;
+ width: 11px;
+ font-size: 12px;
+ stroke-width: 3;
+ vertical-align: top;
+ }
+
+ // square badge
+ &.badge-square {
+ border-radius: 0;
+ }
+
+ // badge-up
+ // to align badge over any element
+ &.badge-up {
+ position: absolute;
+ top: -11px;
+ right: -9px;
+ min-width: 1.429rem;
+ min-height: 1.429rem;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 0.786rem;
+ line-height: 0.786;
+ padding-left: 0.25rem;
+ padding-right: 0.25rem;
+ &.badge-sm {
+ top: -0.5rem;
+ right: -0.5rem;
+ }
+ }
+}
+
+// For fullscreen search
+.badge-icon {
+ i,
+ svg {
+ font-size: 100%;
+ margin-right: 5px;
+ }
+}
+
+// badge dropup pointer
+.dropup {
+ .badge {
+ cursor: pointer;
+ }
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_breadcrumb.scss b/src/@core/scss/base/bootstrap-extended/_breadcrumb.scss
new file mode 100644
index 00000000..e44405fb
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_breadcrumb.scss
@@ -0,0 +1,76 @@
+.breadcrumb {
+ &:not([class*='breadcrumb-']) {
+ .breadcrumb-item + .breadcrumb-item {
+ &:before {
+ content: ' ';
+ background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $body-color), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ color: $body-color;
+ margin-right: $breadcrumb-item-padding;
+ background-size: 14px;
+ }
+ }
+ }
+ .breadcrumb-item + .breadcrumb-item {
+ &:before {
+ height: 20px;
+ }
+ }
+}
+
+/* Component Specific */
+.breadcrumb-slash {
+ &.breadcrumb {
+ .breadcrumb-item + .breadcrumb-item:before {
+ content: '/';
+ }
+ }
+}
+.breadcrumb-dots {
+ &.breadcrumb {
+ .breadcrumb-item + .breadcrumb-item:before {
+ content: '.';
+ position: relative;
+ top: -4px;
+ }
+ }
+}
+.breadcrumb-dashes {
+ &.breadcrumb {
+ .breadcrumb-item + .breadcrumb-item:before {
+ content: '-';
+ }
+ }
+}
+.breadcrumb-pipes {
+ &.breadcrumb {
+ .breadcrumb-item + .breadcrumb-item:before {
+ content: '|';
+ }
+ }
+}
+.breadcrumb-chevron {
+ &.breadcrumb {
+ .breadcrumb-item + .breadcrumb-item:before {
+ content: ' ';
+ background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $body-color), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ color: $body-color;
+ margin-right: $breadcrumb-item-padding;
+ background-size: 14px;
+ }
+ }
+}
+
+@media (max-width: 648px) {
+ .content-header .breadcrumb {
+ display: none;
+ }
+ .breadcrumbs-top {
+ .content-header-title {
+ display: contents !important;
+ }
+ }
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_button-group.scss b/src/@core/scss/base/bootstrap-extended/_button-group.scss
new file mode 100644
index 00000000..21bb5df0
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_button-group.scss
@@ -0,0 +1,59 @@
+//
+// Split button dropdowns
+//
+
+.dropdown-toggle-split {
+ padding-right: $btn-padding-x / 1.9;
+ padding-left: $btn-padding-x / 1.9;
+}
+
+.btn-lg + .dropdown-toggle-split,
+.btn-group-lg > .btn + .dropdown-toggle-split {
+ padding-right: $input-btn-padding-x-lg / 1.75;
+ padding-left: $input-btn-padding-x-lg / 1.75;
+}
+
+.btn-sm + .dropdown-toggle-split,
+.btn-group-sm > .btn + .dropdown-toggle-split {
+ padding-right: $input-btn-padding-x-sm / 1.9;
+ padding-left: $input-btn-padding-x-sm / 1.9;
+}
+
+// button group border
+.btn-group {
+ [class*='btn-']:not([class*='btn-outline-']):not([class*='btn-flat-']):not([class*='btn-gradient-']):not([class*='btn-relief-']) {
+ border-left-color: rgba($black, 0.08) !important;
+ border-right-color: rgba($black, 0.08) !important;
+ }
+}
+
+// remove first btn group border left
+.btn-group
+ > .btn:not([class*='btn-outline-']):not([class*='btn-flat-']):not([class*='btn-gradient-']):not([class*='btn-relief-']):first-child,
+.btn-group
+ > .btn:not([class*='btn-outline-']):not([class*='btn-flat-']):not([class*='btn-gradient-']):not([class*='btn-relief-']):first-of-type {
+ border-left-color: transparent !important;
+}
+
+// remove last btn group border right
+.btn-group
+ > .btn:not([class*='btn-outline-']):not([class*='btn-flat-']):not([class*='btn-gradient-']):not([class*='btn-relief-']):last-child,
+.btn-group
+ > .btn:not([class*='btn-outline-']):not([class*='btn-flat-']):not([class*='btn-gradient-']):not([class*='btn-relief-']):last-of-type {
+ border-right-color: transparent !important;
+}
+
+// toggle button
+.btn-group-toggle {
+ [class*='btn-outline-'] {
+ &:not(:last-child) {
+ border-right-width: 0 !important;
+ }
+ }
+ :not([class*='btn-outline-']) {
+ &.active,
+ &:active {
+ box-shadow: inset $box-shadow;
+ }
+ }
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_buttons.scss b/src/@core/scss/base/bootstrap-extended/_buttons.scss
new file mode 100644
index 00000000..260370c3
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_buttons.scss
@@ -0,0 +1,67 @@
+// var for box shadow of gradient buttons
+// Buttons
+.btn {
+ box-shadow: none;
+ font-weight: 500;
+
+ // gradient button on hover transition
+ &[class*='bg-gradient-'] {
+ transition: all 0.2s ease;
+ &:hover {
+ transform: translateY(-2px);
+ }
+ }
+
+ // Icon button padding
+ &.btn-icon {
+ padding: 0.715rem 0.736rem;
+ }
+ &.btn-sm {
+ &.btn-icon {
+ padding: 0.5rem;
+ line-height: 0.5;
+ }
+ }
+ &.btn-lg {
+ &.btn-icon {
+ padding: 1rem;
+ line-height: 0.75;
+ }
+ }
+
+ &:focus,
+ &.focus,
+ &:active,
+ &.active {
+ outline: none;
+ box-shadow: none;
+ }
+
+ &:not(:disabled):not(.disabled):active:focus,
+ &:not(:disabled):not(.disabled).active:focus {
+ box-shadow: none !important;
+ }
+
+ // feather icons inside btn
+ .feather {
+ vertical-align: bottom;
+ }
+}
+
+// For Waves Input Padding
+.btn.waves-input-wrapper {
+ padding: 0;
+}
+
+@include media-breakpoint-down(sm) {
+ .btn-sm-block {
+ display: block;
+ width: 100%;
+ }
+}
+
+// Remove cursor-pointer from button if button is disabled
+// * setting it to inherit will auto adept cursor
+.waves-effect {
+ cursor: inherit;
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_card.scss b/src/@core/scss/base/bootstrap-extended/_card.scss
new file mode 100644
index 00000000..d879311e
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_card.scss
@@ -0,0 +1,514 @@
+.card {
+ border: none;
+ margin-bottom: $content-padding;
+ box-shadow: $box-shadow;
+ transition: all 0.3s ease-in-out, background 0s, color 0s, border-color 0s;
+ .card {
+ box-shadow: none !important;
+ }
+ .card-title {
+ font-weight: 500;
+ font-size: 1.285rem;
+ margin-bottom: 1.53rem; // Considering sub-title minus margin
+ }
+ .card-bordered {
+ border: $card-border-width solid $card-border-color;
+ }
+ .card-img {
+ object-fit: cover;
+ }
+ .card-img-overlay {
+ border-radius: $card-border-radius;
+ }
+
+ //fullscreen card
+ &.card-fullscreen {
+ display: block;
+ z-index: 9999;
+ position: fixed;
+ width: 100% !important;
+ height: 100% !important;
+ top: 0;
+ right: 0;
+ left: 0;
+ bottom: 0;
+ overflow: auto;
+ }
+ .card-body[class*='border-bottom-'] {
+ border-bottom-width: 2px !important;
+ }
+ .card-img-overlay {
+ &.bg-overlay {
+ background: rgba($black, 0.45);
+ }
+ .text-muted {
+ color: $gray-800 !important;
+ }
+ }
+ &.card-minimal {
+ border: none;
+ box-shadow: none;
+ }
+
+ .card-header {
+ position: relative;
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ border-bottom: none;
+ padding: 1.5rem;
+ background-color: transparent;
+ .card-title {
+ margin-bottom: 0;
+ }
+
+ .heading-elements {
+ position: relative;
+ top: -1px;
+
+ li:not(:first-child) a {
+ margin-left: 0.75rem;
+ }
+
+ a {
+ &.btn {
+ padding-top: 6px;
+ padding-bottom: 6px;
+ }
+ i,
+ svg {
+ height: 1rem;
+ width: 1rem;
+ font-size: 1rem;
+ }
+ &[data-action='collapse'] {
+ i,
+ svg {
+ transition: all 0.25s ease-out;
+ display: inline-block;
+ }
+ &.rotate {
+ i,
+ svg {
+ transform: rotate(-180deg);
+ }
+ }
+ }
+ }
+ }
+
+ & + .card-content > .card-body:first-of-type,
+ & + .card-body {
+ padding-top: 0px;
+ }
+ }
+ .card-footer {
+ border-top: 1px solid $gray-300;
+ background-color: transparent;
+ }
+}
+// Card Column
+.card-columns {
+ .card {
+ margin-bottom: $spacer * 2.2;
+ }
+}
+
+.card-group,
+.card-deck {
+ margin-bottom: 0.75rem;
+}
+
+.card-head-inverse {
+ .heading-elements {
+ i,
+ svg {
+ color: $white;
+ }
+ }
+ color: $white;
+}
+.card-transparent {
+ background-color: transparent;
+}
+
+.text-white {
+ .card-img-overlay {
+ .text-muted {
+ color: $white !important;
+ }
+ }
+ code {
+ background-color: rgba($white, 1);
+ }
+ .heading-elements {
+ i,
+ svg {
+ color: $white;
+ }
+ }
+}
+
+// overlay-img-card
+.overlay-img-card {
+ .card-img-overlay,
+ img {
+ max-height: 34.64rem;
+ }
+}
+
+// IE Specific CSS
+@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
+ // img-fluid class
+ .card-body,
+ .card-content {
+ min-height: 1px;
+ }
+}
+
+//--------------- Advance Cards ---------------
+//---------------------------------------------
+
+// Congratulations Card
+.card-congratulations {
+ background: linear-gradient(118deg, rgba($primary, 1), rgba($primary, 0.7));
+ color: $white;
+
+ // image on left
+ .congratulations-img-left {
+ width: 200px;
+ position: absolute;
+ top: 0;
+ left: 0;
+
+ @include media-breakpoint-down(xs) {
+ width: 140px;
+ }
+ }
+ // image on right
+ .congratulations-img-right {
+ width: 175px;
+ position: absolute;
+ top: 0;
+ right: 0;
+
+ @include media-breakpoint-down(xs) {
+ width: 140px;
+ }
+ }
+
+ .avatar {
+ margin-bottom: 2rem;
+ }
+}
+// congratulation medal card
+.congratulation-medal {
+ position: absolute;
+ top: 0;
+ right: 37px;
+}
+
+// Deposits Card
+.card-deposits {
+ .deposits-divider {
+ margin-top: 1.8rem;
+ margin-bottom: 1.4rem;
+ }
+}
+
+// Employee Task Card
+.card-employee-task {
+ .employee-task {
+ &:not(:last-child) {
+ margin-bottom: 1.5rem;
+ }
+ }
+}
+
+// Developer Meetup Card
+.card-developer-meetup {
+ .meetup-img-wrapper {
+ background-color: rgba($primary, 0.1);
+ }
+ .meetup-header {
+ margin-bottom: 2rem;
+
+ .meetup-day {
+ text-align: center;
+ border-right: 1px solid $custom-control-border-color;
+ padding-right: 1.3rem;
+ margin-right: 1.3rem;
+ }
+ }
+ .media {
+ .avatar .avatar-content {
+ width: 34px;
+ height: 34px;
+ }
+ & + .media {
+ margin-top: 1.2rem;
+ }
+ }
+ .avatar-group {
+ margin-top: 2rem;
+ }
+}
+
+// Profile Card
+.card-profile {
+ text-align: center;
+ .card-body {
+ position: relative;
+ padding: 5rem 2.3rem $card-spacer-y 2.3rem;
+
+ .profile-image-wrapper {
+ display: flex;
+ justify-content: center;
+
+ .profile-image {
+ position: absolute;
+ top: -4rem;
+ padding: 0.5rem;
+ border-radius: 50%;
+ background-color: $white;
+ box-shadow: 0 0 8px 0 rgba($black, 0.14);
+ margin-bottom: 1.15rem;
+
+ img {
+ width: 100px;
+ height: 100px;
+ }
+ }
+ }
+
+ .profile-badge {
+ margin-top: 0.8rem;
+ margin-bottom: 0.8rem;
+ }
+ }
+}
+
+// Apply Job Card
+.card-apply-job {
+ .apply-job-package {
+ padding: 1.2rem;
+ margin-bottom: 1.15rem;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ sup {
+ top: -0.8rem;
+ }
+ }
+}
+
+// Transaction Card
+.card-transaction {
+ .transaction-item {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ &:not(:last-child) {
+ margin-bottom: 1.2rem;
+ }
+
+ .avatar {
+ margin-right: 1.2rem;
+ .avatar-content {
+ width: 42px;
+ height: 42px;
+ }
+ }
+
+ .transaction-title {
+ margin-bottom: 0.2rem;
+ margin-top: 0.2rem;
+ }
+ }
+}
+
+// User Timeline Card
+.card-user-timeline {
+ .user-timeline-title-icon {
+ width: 1.714rem;
+ height: 1.714rem;
+ margin-right: 1.3rem;
+ }
+ .timeline {
+ .timeline-item {
+ &:last-child {
+ .timeline-event {
+ min-height: auto;
+ }
+ }
+ &:not(:last-child) {
+ padding-bottom: 2.3rem;
+ }
+ }
+ }
+}
+
+// Business Card
+.business-card {
+ .business-items {
+ &:not(:last-child) {
+ margin-bottom: 1.3rem;
+ }
+
+ .business-item {
+ border: 1px solid $border-color;
+ border-radius: $border-radius;
+ padding: 1rem 1rem 1rem 1.3rem;
+ &:not(:last-child) {
+ margin-bottom: 0.85rem;
+ }
+ }
+ }
+}
+
+// States Card
+.card-browser-states {
+ .browser-states {
+ margin-top: 2.14rem;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ }
+}
+
+// App Design Card
+.card-app-design {
+ .design-group {
+ margin-bottom: 2rem;
+
+ .avatar:not(:last-child) {
+ margin-right: 0.6rem;
+ }
+ }
+
+ .design-planning-wrapper {
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ &:not(:last-child) {
+ margin-bottom: 1.3rem;
+ }
+
+ .design-planning {
+ padding: 0.5rem;
+ margin-bottom: 0.7rem;
+ text-align: center;
+ background-color: $body-bg;
+ border-radius: $border-radius;
+ min-width: 6.4rem;
+ &:not(:last-child) {
+ margin-right: 0.7rem;
+ }
+ }
+ }
+}
+
+//--------------- Statistics Card ---------------
+//------------------------------------------------
+
+.card-statistics {
+ .card-header {
+ padding-left: 2.4rem;
+ }
+ .statistics-body {
+ padding: 2rem 2.4rem 2.8rem !important;
+
+ .avatar .avatar-content {
+ width: 48px;
+ height: 48px;
+
+ .avatar-icon {
+ width: 24px;
+ height: 24px;
+ }
+ }
+ }
+}
+
+//--------------- Analytics Card ---------------
+//----------------------------------------------
+
+// Chart-dropdown Button
+.chart-dropdown {
+ .btn {
+ font-size: 1rem;
+ font-weight: $font-weight-normal;
+ &:after {
+ display: none;
+ }
+ }
+}
+
+// Revenue Report & Budget Card
+.card-revenue-budget {
+ .revenue-report-wrapper {
+ padding: 1.286rem 1.5rem;
+
+ @include media-breakpoint-up(md) {
+ border-right: 1px solid $border-color;
+ }
+
+ #revenue-report-chart {
+ .apexcharts-series {
+ &[seriesName='Earning'] {
+ transform: scaleY(0.965);
+ }
+ &[seriesName='Expense'] {
+ transform: scaleY(1.035);
+ }
+ }
+ }
+ }
+
+ .budget-wrapper {
+ padding: 2rem 3rem;
+ text-align: center;
+
+ @include media-breakpoint-down(sm) {
+ padding-top: 0;
+ }
+
+ .budget-dropdown {
+ margin-bottom: 2rem;
+ }
+
+ #budget-chart {
+ margin-top: 2rem;
+ margin-bottom: 2rem;
+ }
+ }
+}
+
+// Earnings Card
+.earnings-card {
+ .apexcharts-canvas .apexcharts-pie {
+ .apexcharts-datalabel-label {
+ font-size: 0.8rem;
+ fill: $body-color !important;
+ }
+ .apexcharts-datalabel-value {
+ fill: $headings-color;
+ font-size: 1.286rem;
+ font-weight: 500;
+ }
+ }
+}
+
+// IE Specific CSS
+@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
+ // make icon center in avatar-content
+ #dashboard-analytics,
+ #statistics-card {
+ .avatar {
+ .avatar-content {
+ padding: 0 !important;
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_code.scss b/src/@core/scss/base/bootstrap-extended/_code.scss
new file mode 100644
index 00000000..09a369f2
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_code.scss
@@ -0,0 +1,14 @@
+// Inline code
+code {
+ padding: 0.1rem 0.4rem;
+ font-size: 90%;
+ color: $code-color;
+ background-color: $kbd-bg;
+ @include border-radius($border-radius/2);
+}
+pre {
+ background-color: #f7f7f9;
+ code {
+ background-color: transparent !important;
+ }
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_collapse.scss b/src/@core/scss/base/bootstrap-extended/_collapse.scss
new file mode 100644
index 00000000..6bbf6b34
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_collapse.scss
@@ -0,0 +1,140 @@
+// For Collapse And Accordion
+
+// For collapse-title
+[class*='collapse-'] {
+ .collapse-title {
+ font-weight: 500;
+ font-size: 1.1rem;
+ }
+ .card {
+ margin-bottom: 0;
+ &:last-of-type {
+ margin-bottom: 0;
+ }
+ &:not(:last-of-type) {
+ border-bottom: 1px solid $border-color;
+ }
+ .card-header {
+ cursor: pointer;
+ padding: 1rem 2.8rem 1rem 1rem;
+ }
+ .card-body {
+ padding: 1rem;
+ line-height: 1.5;
+ padding-top: 0.42rem;
+ }
+ }
+}
+
+// For collapse title
+.collapse-title {
+ color: inherit;
+ &:hover {
+ color: inherit;
+ }
+}
+
+// To add a border below collapse/accordion heading
+.collapse-default {
+ .card:first-child {
+ border-top: 0;
+ }
+ .card:last-child {
+ border-bottom: 0;
+ }
+ .card {
+ border-radius: 0;
+ }
+}
+
+// For Collapse with border
+
+.collapse-border {
+ .card {
+ border: 1px solid $border-color;
+ &:not(:last-of-type) {
+ border-bottom: 0;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ &:not(:first-of-type) {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+ }
+ }
+}
+
+// For Collapse with shadow
+.collapse-shadow {
+ box-shadow: 0 0px 4px 0 rgba($black, 0.1);
+ padding: 0.15rem 0.75rem;
+ border-radius: $border-radius;
+ .card {
+ border-radius: 0;
+ transition: border 0.5s ease-in-out, all 0.3s ease-in-out;
+ &.open {
+ border-radius: 0.571rem;
+ margin: 10px 0;
+ border: 0;
+ box-shadow: 0px 0px 8px 0px rgba($black, 0.1) !important;
+ }
+ }
+ .card:first-child {
+ border-top-left-radius: 0.571rem;
+ border-top-right-radius: 0.571rem;
+ }
+ .card:last-child {
+ border-bottom-left-radius: 0.571rem;
+ border-bottom-right-radius: 0.571rem;
+ }
+}
+
+// For Collapse with margin
+.collapse-margin {
+ .card {
+ margin-top: 0.71rem;
+ margin-bottom: 0.71rem;
+ box-shadow: 0 2px 15px 0 rgba($black, 0.05) !important;
+ border-radius: 0.358rem;
+ border-bottom: 0 solid transparent !important;
+ }
+ .card-header {
+ border-radius: 0.358rem;
+ }
+}
+
+// Collapse Icon & Animation
+.collapse-icon {
+ .card-header {
+ position: relative;
+ }
+
+ [data-toggle='collapse'] {
+ &:after {
+ position: absolute;
+ top: 58%;
+ right: 1rem;
+ margin-top: -8px;
+ background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $body-color), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 14px;
+ width: 14px;
+ height: 11px;
+ content: '';
+ transition: all 300ms linear 0s;
+ }
+
+ &:disabled {
+ &:before {
+ background-image: url(str-replace(str-replace($chevron-up, 'currentColor', $body-color), '#', '%23'));
+ }
+ }
+ }
+
+ [aria-expanded='false'] {
+ &:after {
+ transform: rotate(-180deg);
+ }
+ }
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_dropdown.scss b/src/@core/scss/base/bootstrap-extended/_dropdown.scss
new file mode 100644
index 00000000..4fa6004f
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_dropdown.scss
@@ -0,0 +1,255 @@
+// The dropdown menu
+.dropdown {
+ [class*='btn-outline-'].dropdown-toggle.dropdown-toggle-split {
+ border-left: 0 !important;
+ }
+
+ // If don't won't dropdown/up arrow
+ &.no-arrow {
+ .dropdown-toggle {
+ &:after {
+ display: none;
+ }
+ i,
+ svg {
+ margin-right: 0;
+ }
+ }
+ }
+}
+
+// dropdown menu
+.dropdown-menu {
+ // border: 1px solid rgba($black, 0.05); // border opacity has been reduced to make it look same as vue's dropdown border [component page, list view page]
+ border-radius: $dropdown-border-radius;
+ transform: scale(1, 0);
+ box-shadow: $dropdown-box-shadow; // this according to vue version
+
+ .dropdown-item {
+ width: auto;
+ cursor: pointer;
+ }
+
+ // Dropdown Header
+ .dropdown-header {
+ font-weight: 500;
+ line-height: 1;
+ }
+}
+
+.show {
+ > .dropdown-menu {
+ transform: scale(1, 1);
+ opacity: 1;
+ display: block;
+ }
+ .dropdown-toggle {
+ &:focus {
+ box-shadow: none;
+ }
+ }
+
+ // For DD box shadow on show
+ .btn {
+ &.dropdown-toggle {
+ &:focus {
+ box-shadow: none;
+ }
+ }
+ }
+}
+
+.dropdown-toggle {
+ // changed icon caret
+
+ &::after {
+ border: none !important;
+ content: ' ';
+ background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $white), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 16px;
+ color: $body-color;
+ width: 14px;
+ height: 11px;
+ position: relative;
+ top: 1px;
+ right: 0px;
+ left: 0.714rem;
+ padding: 0;
+ margin: 0;
+ vertical-align: 0;
+ }
+ // arrow size according to toggle sizes
+ &.btn-lg {
+ &::after {
+ background-size: 18px;
+ }
+ }
+
+ &.btn-sm {
+ &::after {
+ background-size: 14px;
+ }
+ }
+
+ &.dropdown-toggle-split {
+ &:after {
+ left: 0;
+ }
+ }
+
+ // hide default arrow to show custom icon DD
+ &.nav-hide-arrow {
+ &::after {
+ display: none;
+ }
+ }
+
+ // Prevent the focus on the dropdown toggle when closing dropdowns
+ &:focus {
+ outline: 0;
+ }
+}
+
+// DropUp
+.dropup {
+ position: relative;
+ .dropdown-toggle {
+ // changed icon dropup caret
+ &::after {
+ background-image: url(str-replace(str-replace($chevron-up, 'currentColor', $white), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 16px;
+ width: 14px;
+ height: 11px;
+ content: '';
+ vertical-align: 0.05rem;
+ }
+ }
+ .dropdown-menu {
+ min-width: 8rem;
+ }
+}
+
+// DropLeft
+.dropleft {
+ .dropdown-toggle {
+ // changed icon dropup caret
+ &::before {
+ border: none !important;
+ background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $white), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 16px;
+ width: 14px;
+ height: 11px;
+ content: '';
+ position: relative;
+ left: 0;
+ }
+ }
+ .dropdown-menu {
+ min-width: 8rem;
+ }
+}
+
+// DropRight
+.dropright {
+ .dropdown-toggle {
+ // changed icon dropup caret
+ &::after {
+ border: none !important;
+ background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $white), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 16px;
+ width: 14px;
+ height: 11px;
+ content: '';
+ }
+ }
+ .dropdown-menu {
+ min-width: 8rem;
+ }
+}
+
+// Dropdown ::before position
+.dropdown-menu {
+ // Dropdown margin according to dropdown position
+
+ &[x-placement='bottom-start'],
+ &[x-placement='bottom-end'] {
+ margin-top: $dropdown_spacing;
+ }
+
+ &[x-placement='top-start'],
+ &[x-placement='top-end'] {
+ margin-bottom: $dropdown_spacing;
+ }
+
+ &[x-placement='right-start'] {
+ margin-left: $dropdown_spacing;
+ }
+ &[x-placement='left-start'] {
+ margin-right: $dropdown_spacing;
+ }
+}
+
+// Dropdown icon
+.dropdown,
+.dropup {
+ &.dropdown-icon-wrapper {
+ .dropdown-toggle {
+ &:after {
+ display: none;
+ }
+ }
+ .dropdown-menu {
+ min-width: auto;
+ .dropdown-item {
+ padding: 0.5rem 1.1rem;
+ cursor: pointer;
+ i,
+ svg {
+ height: 1.3rem;
+ width: 1.3rem;
+ font-size: 1.3rem;
+ }
+ }
+ }
+ }
+}
+
+// Dropdown menu animation for Horizontal menu
+.horizontal-menu-wrapper .dropdown-menu,
+.header-navbar .dropdown-menu {
+ animation-duration: 0.3s;
+ animation-fill-mode: both;
+ animation-name: slideIn;
+}
+
+// Hidden dropdown toggle arrow
+.dropdown-toggle.hide-arrow,
+.dropdown-toggle-hide-arrow > .dropdown-toggle {
+ &::before,
+ &::after {
+ display: none;
+ }
+}
+
+@keyframes slideIn {
+ 0% {
+ transform: translateY(1rem);
+ opacity: 0;
+ }
+ 100% {
+ transform: translateY(0rem);
+ opacity: 1;
+ }
+ 0% {
+ transform: translateY(1rem);
+ opacity: 0;
+ }
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_forms.scss b/src/@core/scss/base/bootstrap-extended/_forms.scss
new file mode 100644
index 00000000..8dbc5158
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_forms.scss
@@ -0,0 +1,570 @@
+//
+// Labels
+//
+label {
+ color: $headings-color;
+ font-size: $small-font-size;
+}
+
+// placeholder specific scss
+.form-control {
+ &::placeholder {
+ transition: all 0.2s ease;
+ }
+
+ &:focus {
+ &::placeholder {
+ transform: translate(5px);
+ transition: all 0.2s ease;
+ }
+ &:valid,
+ &.is-valid {
+ box-shadow: $input-focus-box-shadow;
+ }
+ }
+}
+
+.form-control-plaintext {
+ &:focus {
+ outline: none;
+ }
+}
+
+.custom-file-label {
+ line-height: 1.75;
+ height: $custom-file-height !important;
+ &:after {
+ height: 2.58rem;
+ line-height: 1.75;
+ }
+}
+
+.valid-tooltip,
+.invalid-tooltip {
+ top: 102%;
+ left: 5px;
+}
+
+/***************
+* Form Group
+***************/
+
+// input group !important for overriding the dark style
+.input-group {
+ &:not(.bootstrap-touchspin):focus-within {
+ box-shadow: $input-focus-box-shadow;
+ border-radius: $input-border-radius;
+ .form-control,
+ .input-group-text {
+ border-color: $primary;
+ box-shadow: none;
+
+ &.is-valid {
+ border-color: $success;
+ }
+
+ &.is-invalid {
+ border-color: $danger;
+ }
+ }
+ }
+ &.is-valid {
+ .input-group-text {
+ border-color: $success !important;
+ }
+ &:not(.bootstrap-touchspin):focus-within {
+ .input-group-text {
+ border-color: $success;
+ }
+ }
+ }
+ &.is-invalid {
+ .input-group-text {
+ border-color: $danger !important;
+ }
+ &:not(.bootstrap-touchspin):focus-within {
+ .input-group-text {
+ border-color: $danger;
+ }
+ }
+ }
+
+ &.disabled {
+ .input-group-text {
+ background-color: $input-disabled-bg;
+ }
+ }
+
+ &.round {
+ .form-control,
+ .input-group-text,
+ &:focus-within {
+ @include border-radius(1.5rem);
+ }
+ }
+ &.square {
+ .form-control,
+ .input-group-text,
+ &:focus-within {
+ @include border-radius(0);
+ }
+ }
+ &.round,
+ &.square {
+ .input-group-prepend {
+ .input-group-text {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ }
+ .input-group-append {
+ .input-group-text {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ }
+ .form-control {
+ &:not(:first-child) {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ &:not(:last-child) {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ }
+ }
+ &.square {
+ .form-control,
+ .input-group-text {
+ @include border-radius(0);
+ }
+ }
+}
+
+.input-group-text {
+ @include transition($input-transition);
+}
+
+.input-group-prepend {
+ .input-group-text {
+ border-right: 0;
+ }
+}
+
+.input-group-append {
+ .input-group-text {
+ border-left: 0;
+ }
+ &:not(:last-child) .input-group-text {
+ border-right: 0;
+ }
+}
+
+// input group merge
+.input-group-merge {
+ .form-control {
+ &:not(:first-child) {
+ padding-left: 0;
+ border-left: 0;
+ }
+
+ &:not(:last-child) {
+ padding-right: 0;
+ border-right: 0;
+ }
+
+ &.is-valid {
+ ~ .input-group-append {
+ .input-group-text {
+ border-color: $success;
+ }
+ }
+ }
+ }
+ .input-group-prepend {
+ ~ .form-control.is-valid {
+ .input-group-text & {
+ border-color: $success;
+ }
+ }
+ }
+}
+
+// Text area line height
+textarea {
+ &.form-control {
+ line-height: 1.6rem;
+ padding: 0.8rem 1rem !important;
+ }
+
+ &.form-control-sm {
+ padding: 0.4rem 0.857rem !important;
+ }
+
+ &.form-control-lg {
+ padding: 1rem 1.143rem !important;
+ }
+}
+
+// Used for Card - Check it and remove if not used
+.form-actions {
+ border-top: 1px solid darken($body-bg, 10%);
+ padding: 20px 0;
+ margin-top: 20px;
+
+ &.filled {
+ background-color: $body-bg;
+ }
+ &.center {
+ text-align: center;
+ }
+ &.right {
+ text-align: right;
+ }
+
+ &.top {
+ border-top: 0;
+ border-bottom: 1px solid darken($body-bg, 10%);
+ margin-top: 0;
+ margin-bottom: 20px;
+ }
+
+ @include media-breakpoint-down(sm) {
+ .buttons-group {
+ float: left !important;
+ margin-bottom: 10px;
+ }
+ }
+}
+
+// Form-horizontal layout
+.form-horizontal {
+ .form-group {
+ @include media-breakpoint-up(sm) {
+ .label-control {
+ text-align: right;
+ }
+ }
+ }
+}
+
+// Select Inputs Specific SCSS
+select.form-control {
+ &:not([multiple='multiple']) {
+ background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $input-border-color), '#', '%23'));
+ background-position: calc(100% - 12px) 13px, calc(100% - 20px) 13px, 100% 0;
+ background-size: 18px 14px, 18px 14px;
+ background-repeat: no-repeat;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ padding-right: 1.5rem;
+ }
+ &.form-control-lg {
+ background-position: calc(100% - 12px) 16px, calc(100% - 20px) 16px, 100% 0;
+ }
+ &.form-control-sm {
+ background-position: calc(100% - 12px) 8px, calc(100% - 20px) 8px, 100% 0;
+ }
+}
+
+// For customs-select remove double arrow
+.custom-select {
+ -moz-appearance: none; // For firefox
+ -webkit-appearance: none; // for chrome
+}
+
+// Custom Checkbox
+.custom-checkbox {
+ .custom-control-label::before,
+ .custom-control-label::after {
+ top: 0.07rem;
+ }
+
+ .custom-control-label::after {
+ background-size: 57%;
+ }
+}
+
+// Custom Radio
+.custom-radio {
+ .custom-control-label::before {
+ top: 0.1rem;
+ }
+}
+
+// Custom checkbox and radio in common
+.custom-checkbox,
+.custom-radio {
+ &.custom-control {
+ padding-left: 1.8rem;
+
+ .input-group & {
+ padding-left: 1.3rem;
+ }
+ }
+
+ .custom-control-input {
+ width: 1.285rem;
+ height: 1.285rem;
+ }
+
+ .custom-control-label {
+ font-size: $font-size-base;
+ position: static;
+ // vertical-align: middle;
+ &::before,
+ &::after {
+ width: 18px;
+ height: 18px;
+ left: 0;
+ }
+ }
+ .custom-control-input:checked ~ .custom-control-label::before {
+ box-shadow: 0 2px 4px 0 rgba($custom-control-indicator-checked-bg, 0.4) !important;
+ }
+
+ .custom-control-input:disabled ~ .custom-control-label::before {
+ border: none;
+ box-shadow: none !important;
+ }
+
+ .custom-control-input:focus ~ .custom-control-label::before {
+ border-color: none;
+ box-shadow: 0 2px 4px 0 rgba($custom-control-indicator-checked-bg, 0.4) !important;
+ }
+}
+
+// Custom-checkbox when not disabled and active
+.custom-control-input:not(:disabled) {
+ &:active ~ .custom-control-label {
+ &::before {
+ background-color: $primary;
+ border-color: $primary;
+ }
+ }
+}
+
+/* Floating label Group */
+.form-label-group {
+ position: relative;
+ margin-bottom: $form-group-margin-bottom;
+
+ // Form-Control-Large in Floating Label Group
+ .form-control-lg {
+ ~ label {
+ font-size: $input-font-size;
+ padding: 1rem;
+ }
+ }
+
+ // Form-label
+ > label {
+ position: absolute;
+ top: 0;
+ left: 0;
+ display: block;
+ transition: all 0.25s ease-in-out;
+ padding: 0.6rem;
+ pointer-events: none;
+ cursor: text;
+ color: rgba($black, 0.4);
+ font-size: 0.7rem;
+ opacity: 0;
+ }
+ // form-input
+ > input,
+ textarea {
+ // from-input on focus change label color
+ &:focus,
+ &:not(:active) {
+ &:not(:placeholder-shown) ~ label {
+ color: rgba($primary, 1) !important;
+ transition: all 0.25s ease-in-out;
+ opacity: 1;
+ }
+ }
+ &:not(:focus) {
+ &:not(:placeholder-shown) ~ label {
+ color: rgba($black, 0.4) !important;
+ }
+ }
+ // form-label after entering text in input box
+ &:not(:placeholder-shown) ~ label {
+ padding: 0.25rem 0;
+ top: -20px;
+ left: 3px;
+ }
+
+ &.form-control-lg:not(:placeholder-shown) ~ label {
+ top: -23px;
+ }
+
+ &.form-control-sm:not(:placeholder-shown) ~ label {
+ top: -18px;
+ }
+ }
+}
+
+/* Switches */
+
+.custom-switch {
+ padding-left: 0;
+ line-height: 1.7rem;
+
+ .custom-control-label {
+ padding-left: 3.5rem;
+ line-height: 1.7rem;
+
+ /* For bg color of switch*/
+ &::before {
+ border: none;
+ background-color: $switch-bg-color;
+ height: 1.7rem;
+ box-shadow: none !important;
+ transition: opacity 0.25s ease, background-color 0.1s ease;
+ cursor: pointer;
+ user-select: none;
+ top: 0;
+ left: 0;
+ }
+ /*For Switch handle*/
+ &:after {
+ position: absolute;
+ top: 4px;
+ left: 4px;
+ box-shadow: -1px 2px 3px 0 rgba($black, 0.2);
+ background-color: $switch-indicator-color;
+ transition: all 0.15s ease-out;
+ cursor: pointer;
+ user-select: none;
+ }
+
+ /*For Switch text*/
+ .switch-text-left,
+ .switch-text-right,
+ .switch-icon-left,
+ .switch-icon-right {
+ position: absolute;
+ cursor: pointer;
+ user-select: none;
+ line-height: 1.8;
+ i,
+ svg {
+ height: 13px;
+ width: 13px;
+ font-size: 13px;
+ }
+ }
+ .switch-text-left,
+ .switch-icon-left {
+ left: 6px;
+ color: $white;
+ opacity: 0;
+ transform: translateX(8px);
+ transition: opacity 0.1s ease, transform 0.15s ease;
+ }
+ .switch-text-right,
+ .switch-icon-right {
+ right: 13px;
+ opacity: 1;
+ transform: translateX(0px);
+ transition: opacity 0.08s ease, transform 0.15s ease;
+ }
+ &:focus {
+ outline: 0;
+ }
+ }
+
+ /*For Switch label*/
+
+ .switch-label {
+ padding-left: 1rem;
+ }
+
+ // after its checked
+
+ .custom-control-input:checked ~ .custom-control-label::before {
+ box-shadow: none;
+ }
+
+ /*For Switch Handle Animation*/
+ .custom-control-input:checked ~ .custom-control-label::after {
+ transform: translateX(1.4rem);
+ }
+
+ .custom-control-input:checked ~ .custom-control-label {
+ .switch-text-left,
+ .switch-icon-left {
+ transform: translateX(0);
+ opacity: 1;
+ }
+
+ .switch-text-right,
+ .switch-icon-right {
+ transform: translateX(-8px);
+ opacity: 0;
+ }
+ }
+ .custom-control-input:not(:checked) ~ .custom-control-label {
+ .switch-text-left {
+ opacity: 0;
+ }
+ .switch-text-right {
+ opacity: 1;
+ }
+ }
+ .custom-control-input:checked ~ .custom-control-label {
+ .switch-text-right {
+ opacity: 0;
+ }
+ .switch-text-left {
+ opacity: 1;
+ }
+ }
+}
+
+/* Textarea with Counter */
+.textarea-counter-value {
+ background-color: $primary;
+ color: $white;
+ padding: 1px 6px;
+ font-size: 0.6rem;
+ border-radius: 0 0 5px 5px;
+ margin-right: 1rem;
+}
+
+.btn.disabled-max-min {
+ background-color: rgba($black, 0.5) !important;
+ cursor: default;
+}
+
+/* Number Type Input Box Scss for - Remove arrow on hover */
+input[type='number']::-webkit-inner-spin-button,
+input[type='number']::-webkit-outer-spin-button {
+ -webkit-appearance: none;
+}
+
+// IE Specific CSS
+@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
+ // floating Label Group
+ .form-label-group {
+ label {
+ display: none;
+ }
+ }
+
+ // Bootstrap Select
+ select.form-control {
+ &:not([multiple='multiple']) {
+ background: none;
+ }
+ }
+}
+
+// Date & Time Picker - Form Control Bg color
+.picker__input {
+ &.form-control {
+ background-color: $white;
+ }
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_functions.scss b/src/@core/scss/base/bootstrap-extended/_functions.scss
new file mode 100644
index 00000000..57a6eab0
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_functions.scss
@@ -0,0 +1,10 @@
+@function str-replace($string, $search, $replace: '') {
+ $index: str-index($string, $search);
+
+ @if $index {
+ @return str-slice($string, 1, $index - 1) + $replace +
+ str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
+ }
+
+ @return $string;
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_helper.scss b/src/@core/scss/base/bootstrap-extended/_helper.scss
new file mode 100644
index 00000000..759af3d4
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_helper.scss
@@ -0,0 +1,106 @@
+// ================================================================================================
+// File Name: helper.scss
+// Description: Helper classes provides template related customization.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+// Content helpers
+// -------------------------
+
+// typography page icon with list
+.list-style-icons {
+ padding-left: 10px;
+ margin-left: 0;
+ list-style: none;
+ > li svg,
+ > li i {
+ margin-right: 6px;
+ }
+}
+
+//Pull the element
+.pull-up {
+ transition: all 0.25s ease;
+
+ &:hover {
+ transform: translateY(-4px) scale(1.02);
+ box-shadow: 0px 14px 24px rgba(62, 57, 107, 0.2);
+ z-index: 30;
+ }
+}
+
+// Spinner classes
+.spinner {
+ display: inline-block;
+ animation: spin 1s linear infinite;
+}
+@keyframes spin {
+ 0% {
+ transform: rotate(0deg);
+ }
+ 100% {
+ transform: rotate(360deg);
+ }
+}
+
+.spinner-reverse {
+ display: inline-block;
+ animation: spin-reverse 1s linear infinite;
+}
+@keyframes spin-reverse {
+ 0% {
+ transform: rotate(0deg);
+ }
+ 100% {
+ transform: rotate(-360deg);
+ }
+}
+
+// Bullets used in application pages
+.bullet {
+ width: 1rem;
+ height: 1rem;
+ border-radius: 50%;
+ display: inline-block;
+ &.bullet-xs {
+ width: 0.5rem;
+ height: 0.5rem;
+ }
+ &.bullet-sm {
+ width: 0.714rem;
+ height: 0.714rem;
+ }
+ &.bullet-lg {
+ width: 1.25rem;
+ height: 1.25rem;
+ }
+}
+
+// Section Label - used in pages and apps
+.section-label {
+ font-size: 0.85rem;
+ color: $text-muted;
+ text-transform: uppercase;
+ letter-spacing: 0.6px;
+}
+
+// Used for table cell fit
+.cell-fit {
+ width: 0.1%;
+ white-space: nowrap;
+}
+
+// Card match height
+.match-height {
+ > [class*='col'] {
+ display: flex;
+ flex-flow: column;
+
+ > .card {
+ flex: 1 1 auto;
+ }
+ }
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_include.scss b/src/@core/scss/base/bootstrap-extended/_include.scss
new file mode 100644
index 00000000..ea9344dc
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_include.scss
@@ -0,0 +1,24 @@
+// ================================================================================================
+// File Name: include.scss
+// Description: Common components file to include all theme specific custom components.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+// Variables
+// ------------------------------
+
+// Functions
+@import 'bootstrap/scss/functions'; // Bootstrap core function
+@import 'functions'; // Bootstrap extended function
+
+// Variables
+@import 'scss/variables/variables'; // Bootstrap custom variable override (for user purpose)
+@import 'variables'; // Bootstrap extended variable override
+@import 'bootstrap/scss/variables'; // Bootstrap core variable
+
+// Mixins
+@import 'bootstrap/scss/mixins'; // Bootstrap core mixins
+@import 'mixins'; // Bootstrap extended mixins
diff --git a/src/@core/scss/base/bootstrap-extended/_list-group.scss b/src/@core/scss/base/bootstrap-extended/_list-group.scss
new file mode 100644
index 00000000..eec9f403
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_list-group.scss
@@ -0,0 +1,101 @@
+/* ===============================================================================================
+ File Name: list-group.scss
+ Description: Contain list item, list group related extended SCSS.
+ ----------------------------------------------------------------------------------------------
+ Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+ Author: PIXINVENT
+ Author URL: http://www.themeforest.net/user/pixinvent
+================================================================================================*/
+
+// Inline list style with pipeline separator
+
+ul.list-inline {
+ li {
+ display: inline-block;
+ }
+ // used in search page
+ &.list-inline-pipe {
+ > li + li:before {
+ content: ' | ';
+ padding-right: 2px;
+ }
+ }
+}
+
+// bootstrap list group
+.list-group {
+ .list-group-item {
+ line-height: 1.5;
+ &.active {
+ &:hover {
+ background-color: $primary;
+ }
+ &:focus {
+ // color: $body-color;
+ outline: 0;
+ &:hover {
+ color: $white;
+ }
+ }
+ small {
+ color: $white !important;
+ }
+ }
+ &:hover {
+ background-color: $body-bg;
+ }
+
+ i,
+ svg {
+ position: relative;
+ }
+
+ &:not(.active):focus:active {
+ color: inherit;
+ }
+ }
+ .list-group-item-action {
+ &.active {
+ background-color: $primary;
+ color: $white;
+ &:focus {
+ background-color: $primary;
+ }
+ }
+ &:focus {
+ background-color: $body-bg;
+ outline: 0;
+ }
+ }
+
+ // List group with circle for pages like knowledge base
+ &.list-group-circle {
+ border: none;
+ .list-group-item {
+ border: none;
+ position: relative;
+ padding-left: 1.5rem;
+ &:after {
+ content: ' ';
+ background-image: url(str-replace(str-replace($circle, 'currentColor', $body-color), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ color: $body-color;
+ background-size: 10px;
+ position: absolute;
+ height: 10px;
+ width: 10px;
+ top: 1.15rem;
+ left: 0;
+ }
+ &:hover {
+ background-color: transparent;
+ }
+ }
+ }
+}
+
+// for drag and drop border radius on selected
+.list-group-item.gu-mirror {
+ border-radius: 0;
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_media.scss b/src/@core/scss/base/bootstrap-extended/_media.scss
new file mode 100644
index 00000000..a03bf49e
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_media.scss
@@ -0,0 +1,22 @@
+.media-list {
+ .media {
+ padding: 1.25rem;
+ width: 100%;
+ margin-top: 0;
+ .media-left {
+ margin-right: 1rem;
+ }
+ .media-right {
+ margin-left: 1rem;
+ }
+ }
+ a.media {
+ color: $gray-600 !important;
+ }
+}
+
+.media-bordered {
+ .media:not(:first-child) {
+ border-top: 1px solid $border-color;
+ }
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_mixins.scss b/src/@core/scss/base/bootstrap-extended/_mixins.scss
new file mode 100644
index 00000000..46f5b18c
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_mixins.scss
@@ -0,0 +1,13 @@
+// ===============================================================================================
+// File Name: mixins.scss
+// Description: Extended mixins file with new mixins features.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import 'mixins/_type'; //(NEW)
+
+// Components
+@import 'mixins/_navs';
diff --git a/src/@core/scss/base/bootstrap-extended/_modal.scss b/src/@core/scss/base/bootstrap-extended/_modal.scss
new file mode 100644
index 00000000..0c5a3fb0
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_modal.scss
@@ -0,0 +1,175 @@
+// Modals
+
+.modal {
+ // Modal Header
+
+ .modal-header {
+ background-color: $body-bg;
+ border-bottom: none;
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: 0;
+ // close button
+
+ .close {
+ padding: 0.2rem 0.62rem;
+ box-shadow: 0 5px 20px 0 rgba($black, 0.1);
+ border-radius: $border-radius;
+ background: $white;
+ opacity: 1;
+ transition: all 0.23s ease 0.1s;
+ position: relative;
+ transform: translate(8px, -2px);
+
+ // For hover effect of close btn
+ &:hover,
+ &:focus,
+ &:active {
+ opacity: 1;
+ outline: none;
+ transform: translate(5px, 3px);
+ box-shadow: none;
+ }
+ }
+ }
+ // Modal Content
+ .modal-content {
+ border: none;
+ // overflow: unset; updated to "visible" as close icon is not visible in IE
+ overflow: visible;
+ box-shadow: 0 5px 20px 0 rgba($black, 0.1);
+ }
+
+ .modal-footer {
+ padding: $modal-inner-padding;
+ }
+
+ // modal sticky for apps
+ &.modal-sticky {
+ bottom: 0;
+ right: 0;
+ top: auto;
+ left: auto;
+ height: auto;
+ position: fixed;
+ .modal-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ }
+ .modal-dialog {
+ margin-right: #{$content-padding} !important;
+ box-shadow: 0px 0px 24px 0 rgba($black, 0.25);
+ border-radius: $border-radius;
+ }
+ .modal-actions {
+ background: transparent;
+ box-shadow: none;
+ line-height: 0;
+ }
+ }
+}
+
+// Modal XS
+.modal-xs {
+ max-width: 300px;
+}
+
+// Modal XL
+@media (min-width: 1200px) {
+ .modal-xl {
+ margin-left: 3%;
+ margin-right: 3%;
+ }
+}
+
+// Slide In Modal //
+.modal-slide-in,
+.modal-slide-in .modal {
+ padding: 0 !important;
+ overflow: hidden !important;
+}
+
+.modal-slide-in {
+ .modal-dialog {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: auto;
+ margin: 0;
+ max-width: none;
+ width: ($modal-slide-in-width-sm - 5);
+
+ .modal-content {
+ padding-bottom: ($modal-title-line-height * $close-font-size) + $modal-header-padding-y;
+ padding-top: ($modal-title-line-height * $close-font-size) + $modal-header-padding-y;
+ overflow: auto;
+ border-radius: 0;
+ height: 100%;
+ }
+
+ .modal-body {
+ padding-bottom: 0;
+ padding-top: 0;
+ margin: auto 0;
+ flex-grow: 0;
+ }
+
+ @media (min-width: (map-get($grid-breakpoints, sm))) {
+ width: $modal-slide-in-width;
+ }
+
+ &.sidebar-sm {
+ width: $modal-slide-in-width-sm;
+ }
+ &.sidebar-lg {
+ @media (min-width: (map-get($grid-breakpoints, sm))) {
+ width: $modal-slide-in-width-lg;
+ }
+ }
+ }
+
+ .close {
+ top: $modal-header-padding-y / 2;
+ z-index: 10;
+ transform: none;
+ position: absolute;
+ top: 1.5rem;
+ right: $modal-header-padding-x;
+ margin: 0;
+ padding: 0 !important;
+ line-height: 0.5;
+ transform: translate(0, -50%);
+ }
+}
+
+// Slide from Right
+.modal-slide-in.fade .modal-dialog,
+.modal-slide-in .modal.fade .modal-dialog {
+ transform: translateX(100%);
+ transition: transform 0.1s ease-out;
+}
+
+.modal-slide-in.show .modal-dialog,
+.modal-slide-in .modal.show .modal-dialog {
+ transform: translateX(0) !important;
+ transition: transform 0.1s ease-out;
+}
+
+// To remove Max-width of XS Modal in Small Screen
+
+@media (max-width: 576px) {
+ .modal {
+ padding-right: 1rem;
+ padding-left: 1rem;
+ .modal-xs,
+ .modal-sm {
+ max-width: unset;
+ }
+ &.modal-sticky .modal-dialog {
+ margin-right: 0.2rem !important;
+ margin-left: 0.2rem;
+ margin-bottom: 3rem;
+ }
+ }
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_nav.scss b/src/@core/scss/base/bootstrap-extended/_nav.scss
new file mode 100644
index 00000000..7130cf95
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_nav.scss
@@ -0,0 +1,272 @@
+// Component nav and nav/pill tabs
+
+.nav {
+ border-radius: 0.25rem;
+ // for component navs
+ // to wrap border around nav component
+ &.wrap-border {
+ border: 1px solid $nav-component-border-color;
+ li.nav-header {
+ margin: 0 0.5rem;
+ }
+ li.nav-item,
+ div {
+ padding: 2px 0.714rem;
+ }
+ }
+
+ &.nav-left {
+ .nav-item .nav-link {
+ justify-content: flex-start;
+ }
+ }
+
+ &.nav-right {
+ .nav-item .nav-link {
+ justify-content: flex-end;
+ }
+ }
+
+ // Square Border
+ &.square-border {
+ border-radius: 0;
+ .nav-item {
+ .nav-link.active {
+ border-radius: 0;
+ }
+ }
+ }
+
+ // for main menu toggle lock
+ .modern-nav-toggle {
+ padding: 0;
+ margin: 1.571rem 0;
+ }
+
+ // Dropdown without background need arrow color changes
+ .dropdown.show {
+ .dropdown-toggle {
+ &::after {
+ background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $white), '#', '%23'));
+ }
+ }
+ }
+
+ .dropdown-toggle {
+ &:not(.active) {
+ &::after {
+ background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $body-color), '#', '%23'));
+ }
+ }
+ }
+}
+.nav-pills,
+.nav-tabs {
+ // if icon added inside nav-link
+ .nav-link {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ i,
+ svg {
+ margin-right: 0.5rem;
+ }
+ }
+}
+// nav pills
+.nav-pills {
+ margin-bottom: 1rem;
+ // nav item of nav pill
+ .nav-link {
+ padding: $btn-padding-y $btn-padding-x;
+ font-size: $btn-font-size;
+ line-height: $btn-font-size;
+ border: 1px solid transparent;
+ color: $headings-color;
+ &.active {
+ border-color: $nav-pills-link-active-bg;
+ box-shadow: 0 4px 18px -4px rgba($nav-pills-link-active-bg, 0.65);
+ }
+ &.disabled {
+ color: $nav-link-disabled-color;
+ }
+ &.dropdown-toggle::after {
+ top: 1px;
+ left: 1px;
+ }
+ }
+
+ &.dropdown {
+ &.show {
+ .nav-link {
+ color: $white;
+ }
+ .dropdown-item {
+ &.active {
+ &:hover {
+ color: $primary;
+ }
+ }
+ }
+ }
+ }
+
+ // Justified Pills
+ &.nav-justified {
+ @include nav-justified;
+ @include nav-tabs-justified;
+ .nav-link {
+ display: block;
+
+ &.active {
+ border: none;
+
+ &:hover,
+ &:focus {
+ border: none;
+ }
+ }
+ }
+ }
+}
+
+// Basic Nav Tabs
+.nav-tabs {
+ margin-bottom: 1rem;
+ position: relative;
+ // Basic nav item
+ .nav-item {
+ position: relative;
+ }
+ .nav-link {
+ color: $body-color;
+ border: none;
+ min-width: auto;
+ font-weight: 450;
+ padding: 0.61rem 1.2rem;
+ border-radius: 0;
+ position: relative;
+ overflow: hidden;
+
+ &:after {
+ content: '';
+
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 3px;
+ background: linear-gradient(30deg, rgba($primary, 1), rgba($primary, 0.5)) !important;
+ transition: transform 0.3s;
+ transform: translate3d(0, 150%, 0);
+ }
+ &.active {
+ position: relative;
+ color: $primary;
+
+ &:after {
+ transform: translate3d(0, 0, 0);
+ // box-shadow: 0 0 8px 0 rgba($primary, 0.5) !important;
+ }
+ }
+
+ &.dropdown-toggle {
+ &::after {
+ top: 1px;
+ left: 1px;
+ }
+ }
+ }
+ // Justified Tabs
+ &.nav-justified {
+ @include nav-justified;
+ @include nav-tabs-justified;
+
+ .nav-item {
+ a.nav-link {
+ display: block;
+ border-radius: 0;
+
+ &.active {
+ border: none;
+ }
+ &:hover {
+ border-color: transparent;
+ }
+ }
+ }
+ }
+}
+
+// Nav Tabs Vertical
+.nav-vertical {
+ overflow: hidden;
+ .nav.nav-tabs {
+ // nav item styles for vertical nav tabs
+ .nav-item {
+ .nav-link {
+ margin-bottom: 0;
+ &:after {
+ transform: rotate(90deg) translate3d(0, 150%, 0);
+ left: 70%;
+ }
+ &.active {
+ &:after {
+ left: auto;
+ right: -1.4rem;
+ transform: rotate(90deg) translate3d(0, 225%, 0);
+ top: 1.25rem;
+ width: 2.14rem;
+ }
+ }
+ }
+ }
+
+ // vertical nav left tabs
+ &.nav-left {
+ float: left;
+ display: table;
+ margin-right: 1rem;
+
+ ~ .tab-content {
+ .tab-pane {
+ display: none;
+ overflow-y: auto;
+ padding-left: 1rem;
+ &.active {
+ display: block;
+ }
+ }
+ }
+ }
+
+ // vertical right nav tabs
+ &.nav-right {
+ float: right;
+ display: table;
+ margin-left: 1rem;
+
+ .nav-item {
+ .nav-link {
+ &.active {
+ &:after {
+ left: -0.9rem;
+ transform: rotate(90deg) translate3d(0, 10%, 0);
+ }
+ }
+ }
+ }
+
+ ~ .tab-content {
+ .tab-pane {
+ display: none;
+ overflow-y: auto;
+ padding-right: 1rem;
+ &.active {
+ display: block;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_navbar.scss b/src/@core/scss/base/bootstrap-extended/_navbar.scss
new file mode 100644
index 00000000..5c42c4e8
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_navbar.scss
@@ -0,0 +1,670 @@
+/* ===============================================================================================
+ File Name: navbar.scss
+ Description: Contain header navigation bar, vertical main navigation bar and
+ horiznotal main navigation bar related SCSS.
+ ----------------------------------------------------------------------------------------------
+ Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+ Author: PIXINVENT
+ Author URL: http://www.themeforest.net/user/pixinvent
+================================================================================================*/
+
+@function set-navbar-text-color($color) {
+ @if (lightness($color) > 50) {
+ @return $white; // Lighter backgorund, return dark color
+ } @else {
+ @return $black; // Darker background, return light color
+ }
+}
+
+.header-navbar {
+ padding: 0px;
+ min-height: $navbar-height;
+ font-family: $font-family-monospace;
+ transition: 300ms ease all, background 0s;
+ z-index: 997;
+
+ &.fixed-top {
+ left: $menu-expanded-width;
+ }
+
+ // Apply navbar color as per background
+ &[class*='bg-'] {
+ .navbar-nav {
+ .nav-item {
+ > a {
+ color: set-navbar-text-color($theme-dark-body-color) !important;
+
+ i,
+ svg,
+ span {
+ color: set-navbar-text-color($theme-dark-body-color) !important;
+ }
+ }
+
+ .dropdown-menu {
+ i,
+ svg {
+ color: inherit !important;
+ }
+ }
+ }
+
+ .search-input {
+ .input,
+ .search-list .auto-suggestion span {
+ color: $body-color !important;
+ }
+ }
+ }
+ }
+
+ //* Navbar modifiers
+ //*------------------------
+
+ // floating nav
+ &.floating-nav {
+ position: fixed;
+ right: 0;
+ margin: #{$floating-nav-margin} #{$content-padding} 0;
+ width: calc(100vw - (100vw - 100%) - calc(#{$content-padding} * 2) - #{$menu-expanded-width});
+ border-radius: $card-border-radius;
+ z-index: 12;
+ }
+
+ // static nav
+ &.navbar-static-top {
+ top: 0;
+ right: 0;
+ left: $menu-expanded-width;
+ width: calc(100vw - (100vw - 100%) - #{$sidebar-width});
+ background: transparent;
+ box-shadow: none !important; // remove this if removing "menu-shadow" class
+ }
+
+ // add border to navbar
+ &.navbar-border {
+ border-bottom: 1px solid $border-color;
+ }
+
+ // add shadow to navbar
+ &.navbar-shadow {
+ box-shadow: $box-shadow;
+ }
+
+ &.navbar-dark.navbar-border {
+ border-bottom: 1px solid $theme-dark-border-color;
+ }
+
+ // Hide navbar dropdown arrow
+ &:not(.navbar-horizontal) {
+ .nav-link {
+ &.dropdown-toggle::after {
+ display: none;
+ }
+ }
+ }
+
+ //* Navbar modifiers
+ //*------------------------
+
+ .navbar-container {
+ padding: 0.8rem 1rem;
+ // Added more horizontal padding above small screen
+ @include media-breakpoint-up(sm) {
+ padding: 0.8rem 1.4rem;
+ }
+ flex-basis: 100%;
+ transition: 300ms ease all;
+ margin-left: 0;
+
+ // Navbar bookmark primary color on hover
+ .bookmark-wrapper {
+ // for bookmark z-index
+ .bookmark-input {
+ z-index: 1;
+ }
+ }
+
+ // Language dd style
+ .dropdown-language {
+ .selected-language {
+ font-weight: 500;
+ }
+ .nav-link {
+ .flag-icon {
+ margin-right: 0.4rem;
+ }
+ }
+ .dropdown-menu .dropdown-item {
+ .flag-icon {
+ margin-right: 0.4rem;
+ }
+ }
+ }
+
+ ul.navbar-nav {
+ li {
+ line-height: 1.5;
+ &.dropdown {
+ .dropdown-menu {
+ .vertical-layout & {
+ top: 41px !important; // Apply navbar dd position on vertical layouts only (Not for horizontal layout due to hover out issue)
+ }
+ }
+ }
+
+ &.dropdown-language {
+ .dropdown-menu.dropdown-menu-right {
+ right: -2px;
+ }
+ }
+
+ // Cart & Notification badge
+ &.dropdown-cart,
+ &.dropdown-notification {
+ .badge {
+ &.badge-up {
+ right: -3px;
+ }
+ }
+ .dropdown-menu.dropdown-menu-right {
+ right: -2px;
+ padding: 0;
+ left: inherit;
+ &::before {
+ background: $primary;
+ border-color: $primary;
+ }
+ }
+ .dropdown-menu-header {
+ border-top-left-radius: $dropdown-border-radius;
+ border-top-right-radius: $dropdown-border-radius;
+ .dropdown-header {
+ padding: 1.22rem 1.28rem;
+ }
+ }
+ .notification-text {
+ margin-bottom: 0.5rem;
+ font-size: smaller;
+ color: $text-muted;
+ }
+ .dropdown-menu-footer {
+ padding: 1.28rem;
+ }
+ }
+ &.dropdown-notification {
+ .media-body {
+ .media-heading {
+ color: $body-color;
+ margin-bottom: 0;
+ line-height: 1.2;
+ }
+ }
+ }
+
+ // Cart dropdown
+ &.dropdown-cart {
+ .media {
+ position: relative;
+ img {
+ background: $body-bg;
+ }
+ &:hover {
+ .cart-item-remove {
+ visibility: visible;
+ }
+ }
+ }
+ .media-heading {
+ width: 8rem;
+ h6.cart-item-title {
+ display: -webkit-box;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+ }
+ .cart-item-by {
+ color: $text-muted;
+ display: -webkit-box;
+ -webkit-line-clamp: 1;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+ }
+ }
+ .media-body {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ }
+ .cart-item-price {
+ margin-bottom: 0;
+ width: 5rem;
+ text-align: right;
+ }
+
+ .cart-item-remove {
+ position: absolute;
+ top: 10px;
+ right: 17px;
+ width: 14px;
+ height: 14px;
+ cursor: pointer;
+ @include media-breakpoint-up(md) {
+ visibility: hidden;
+ }
+ }
+ }
+
+ > a.nav-link {
+ color: $body-color;
+ padding: 0 0.5rem;
+ position: relative;
+ }
+
+ &.dropdown-user {
+ line-height: 1 !important; // Set due to custom 2 line component in navbar
+ .dropdown-menu {
+ width: 12rem;
+ margin-top: 10px;
+ i,
+ svg {
+ height: 16px;
+ width: 16px;
+ font-size: 16px;
+ vertical-align: top;
+ }
+ }
+ }
+
+ // Logged in user dropdown styles
+ a.dropdown-user-link {
+ display: flex;
+ align-items: center;
+
+ .user-name {
+ display: inline-block;
+ margin-bottom: 0.435rem;
+ margin-left: 0.2rem;
+ }
+
+ .user-status {
+ font-size: smaller;
+ }
+
+ img {
+ box-shadow: 0 4px 8px 0 rgba($black, 0.12), 0 2px 4px 0 rgba($black, 0.08);
+ }
+ }
+
+ // navbar toggle menu size (display below lg)
+ a.menu-toggle {
+ i,
+ svg {
+ height: 1.6rem;
+ width: 1.6rem;
+ font-size: 1.6rem;
+ }
+ }
+
+ a.dropdown-user-link {
+ .user-nav {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-end;
+ float: left;
+ margin-right: $spacer - 0.2;
+ }
+ }
+
+ div.input-group {
+ padding: 0.7rem 1rem;
+ }
+
+ i,
+ svg {
+ &.ficon {
+ height: 1.5rem;
+ width: 1.5rem;
+ font-size: 1.5rem;
+ color: $body-color;
+
+ &:hover {
+ color: $primary;
+ }
+ }
+ }
+
+ .media-list {
+ max-height: 25rem;
+ }
+
+ .scrollable-container {
+ position: relative;
+ }
+ }
+ }
+
+ //Navbar notification css
+ .dropdown-menu-media {
+ width: 30rem;
+
+ .dropdown-menu-header {
+ border-bottom: 1px solid $border-color;
+ }
+
+ .media-list {
+ .media {
+ padding: 0.9rem 1.28rem;
+ border: none;
+ border-bottom: 1px solid $border-color;
+
+ &:hover {
+ background: $body-bg;
+ }
+
+ .media-meta {
+ color: $body-color;
+ }
+ }
+
+ a:last-of-type {
+ .media {
+ border-bottom: none;
+ }
+ }
+ }
+
+ .dropdown-menu-footer {
+ border-top: 1px solid $border-color;
+ }
+ }
+ }
+}
+
+// Navbar shadow on scroll
+.header-navbar-shadow {
+ display: none;
+}
+
+// Floating Navbar
+.navbar-floating {
+ // Floating nav should have same padding across all screen
+ .navbar-container {
+ padding: 0.8rem 1rem;
+ }
+ .header-navbar-shadow {
+ display: block;
+ background: linear-gradient(
+ 180deg,
+ hsla(0, 0%, 97.3%, 0.95) 44%,
+ hsla(0, 0%, 97.3%, 0.46) 73%,
+ hsla(0, 0%, 100%, 0)
+ );
+ padding-top: 2.2rem;
+ background-repeat: repeat;
+ width: 100%;
+ height: 102px;
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 11;
+ }
+}
+
+// Navbar colors
+.navbar-light {
+ background: $white;
+
+ &.navbar-horizontal {
+ background: $white;
+ }
+
+ .navbar-nav {
+ .active {
+ &.nav-link {
+ background-color: rgba($black, 0.03);
+ }
+ }
+
+ .disabled {
+ &.nav-link {
+ color: $nav-link-disabled-color;
+ }
+ }
+ }
+}
+
+.navbar-dark {
+ background: $gray-600;
+
+ .navbar-brand {
+ color: $white !important;
+ }
+
+ &.navbar-horizontal {
+ background: $gray-600;
+ }
+
+ .nav-search {
+ .form-control,
+ .btn-secondary {
+ color: $white;
+ background: $gray-600;
+ }
+ }
+
+ .navbar-nav {
+ li {
+ line-height: 1;
+ }
+
+ .active {
+ &.nav-link {
+ background-color: rgba($white, 0.05);
+ }
+ }
+
+ .disabled {
+ &.nav-link {
+ color: $gray-300;
+ }
+ }
+ }
+}
+
+// Media queries for device support
+// =========================================
+@include media-breakpoint-down(sm) {
+ .header-navbar {
+ // generic navbar dropdown specific
+ .navbar-nav {
+ .show {
+ position: static;
+ }
+
+ .open-navbar-container {
+ padding-top: 0.625rem;
+ }
+ }
+
+ .navbar-container {
+ .show {
+ .dropdown-menu {
+ right: 0;
+ left: 0 !important;
+ float: none;
+ width: auto !important;
+ margin-top: 0;
+ overflow: hidden;
+ }
+ }
+
+ .dropdown-user {
+ .dropdown-menu-right {
+ right: 0 !important;
+ }
+ }
+
+ ul.navbar-nav {
+ li {
+ .dropdown-toggle::after {
+ margin-right: 0;
+ margin-left: -2px;
+ }
+ }
+ }
+ }
+ }
+
+ // dark navbar
+ .navbar-dark {
+ .navbar-header {
+ .navbar-nav {
+ .nav-link {
+ color: $white;
+ }
+ }
+ }
+
+ .navbar-container {
+ .navbar-nav {
+ .nav-link {
+ color: $gray-600;
+ }
+ }
+ }
+ }
+
+ // light navbar
+ .navbar-light {
+ .navbar-header {
+ .navbar-nav {
+ .nav-link {
+ color: $gray-600;
+ }
+ }
+ }
+
+ .navbar-container {
+ .navbar-nav {
+ .nav-link {
+ color: $gray-600;
+ }
+ }
+ }
+ }
+}
+
+// For Medium and down: iPad support for navbr
+
+// navbar static top
+@include media-breakpoint-down(lg) {
+ .header-navbar {
+ // floating nav width
+ &.floating-nav {
+ width: calc(100vw - (100vw - 100%) - calc(#{$content-padding} * 2));
+ }
+ &.navbar-static-top {
+ left: 0;
+ width: 100%;
+ }
+ }
+}
+
+//For responsive sub nav
+@mixin responsive_sub_nav {
+ .header-navbar {
+ .navbar-nav {
+ margin: 0;
+ flex-flow: row wrap;
+
+ .dropdown-menu {
+ position: absolute;
+ }
+
+ .nav-item {
+ float: left;
+ }
+ }
+ }
+}
+
+@include media-breakpoint-down(md) {
+ @include responsive_sub_nav;
+}
+@media (max-width: 767px) {
+ @include responsive_sub_nav;
+}
+
+@include media-breakpoint-down(xs) {
+ .header-navbar {
+ &.floating-nav {
+ width: calc(
+ 100vw - (100vw - 100%) - calc(#{$content-padding} + 0.4rem)
+ ) !important; // SM screen calc as per updated spacings
+ margin-left: 1rem;
+ margin-right: 1.2rem;
+ }
+
+ .navbar-container ul.navbar-nav li .selected-language {
+ display: none;
+ }
+ }
+}
+
+/* ----------- iPhone 5, 5S iPhone 6----------- */
+
+// Set dropdown height as per the screen size
+@mixin extend_mobile_specific($menu_height) {
+ .header-navbar {
+ .navbar-container {
+ .show {
+ .dropdown-menu {
+ max-height: $menu_height;
+ }
+ }
+ }
+ }
+}
+
+/* Landscape */
+
+@media only screen and (min-device-width: 26.78em) and (max-device-width: 47.64em) and (-webkit-min-device-pixel-ratio: 2) and (orientation: landscape) {
+ @include extend_mobile_specific(180px);
+}
+
+/* ----------- iPhone 6+ ----------- */
+
+/* Landscape */
+
+@media only screen and (min-device-width: 29.57em) and (max-device-width: 52.57em) and (-webkit-min-device-pixel-ratio: 3) and (orientation: landscape) {
+ @include extend_mobile_specific(280px);
+}
+
+// for width of navbar in fixed-top
+@media (max-width: 1201px) {
+ .header-navbar {
+ &.fixed-top {
+ left: 0;
+ }
+ }
+
+ .horizontal-layout {
+ .header-navbar {
+ .navbar-container {
+ padding-left: 0.8rem;
+ padding-right: 0.8rem;
+ }
+ }
+ }
+}
+
+@media (max-width: 1199px) {
+ .header-navbar {
+ .navbar-container {
+ ul.navbar-nav li a.dropdown-user-link .user-name {
+ margin-bottom: 0;
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_pagination.scss b/src/@core/scss/base/bootstrap-extended/_pagination.scss
new file mode 100644
index 00000000..d391d293
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_pagination.scss
@@ -0,0 +1,307 @@
+// Pagination
+
+// default look for page item, first and last item
+
+.page-item {
+ border-radius: 5rem;
+
+ &:not(.prev-item),
+ &:not(.next-item),
+ &:not(.first),
+ &:not(.last),
+ &:not(.active) {
+ .page-link {
+ line-height: 1.3;
+ }
+ }
+
+ .page-link {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ &.previous,
+ &.prev,
+ &.next,
+ &.first,
+ &.last {
+ .page-link {
+ width: auto;
+ }
+ }
+
+ &.prev-item,
+ &.next-item {
+ .page-link {
+ transition: all 0.2s ease-out;
+ }
+ }
+
+ // prev and next item separated styles
+ &.prev-item {
+ margin-right: 0.3571rem;
+
+ .page-link {
+ border-radius: 50%;
+
+ &:before {
+ background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $pagination-color), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 14px;
+ color: $body-color;
+ width: 8px;
+ height: 18px;
+ content: '';
+ }
+
+ &:hover {
+ background: $pagination-hover-bg;
+ color: $pagination-hover-color;
+ }
+ &:active,
+ &:hover {
+ background-color: $primary !important;
+ &:before {
+ background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $white), '#', '%23')) !important;
+ }
+ }
+ }
+ &.disabled {
+ .page-link {
+ &:before {
+ background-image: url(str-replace(
+ str-replace($chevron-left, 'currentColor', $pagination-disabled-color),
+ '#',
+ '%23'
+ ));
+ }
+ }
+ }
+
+ & ~ .page-item:nth-child(2) {
+ border-top-left-radius: 5rem;
+ border-bottom-left-radius: 5rem;
+ .page-link {
+ border-top-left-radius: 5rem !important;
+ border-bottom-left-radius: 5rem !important;
+ }
+ }
+
+ & ~ .page-item:nth-last-child(2) {
+ border-top-right-radius: 5rem;
+ border-bottom-right-radius: 5rem;
+ .page-link {
+ border-top-right-radius: 5rem !important;
+ border-bottom-right-radius: 5rem !important;
+ }
+ }
+ }
+
+ &.next-item {
+ margin-left: 0.3571rem;
+
+ .page-link {
+ border-radius: 50%;
+
+ &:after {
+ background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $pagination-color), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 14px;
+ width: 8px;
+ height: 18px;
+ content: '';
+ }
+
+ &:hover {
+ background: $pagination-hover-bg;
+ color: $pagination-hover-color;
+ }
+ &:active,
+ &:hover {
+ background-color: $primary !important;
+ &:after {
+ background-image: url(str-replace(
+ str-replace($chevron-right, 'currentColor', $white),
+ '#',
+ '%23'
+ )) !important;
+ }
+ }
+ }
+ &.disabled {
+ .page-link {
+ &:after {
+ background-image: url(str-replace(
+ str-replace($chevron-right, 'currentColor', $pagination-disabled-color),
+ '#',
+ '%23'
+ ));
+ }
+ }
+ }
+ }
+
+ // prev and next style
+ &.prev,
+ &.previous {
+ .page-link {
+ &:before {
+ background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $pagination-color), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 14px;
+ color: $body-color;
+ width: 12px;
+ height: 18px;
+ content: '';
+ }
+ // &:active,
+ &:hover {
+ &:before {
+ background-image: url(str-replace(
+ str-replace($chevron-left, 'currentColor', $pagination-active-color),
+ '#',
+ '%23'
+ )) !important;
+ }
+ }
+ }
+ &.disabled {
+ .page-link {
+ &:before {
+ background-image: url(str-replace(
+ str-replace($chevron-left, 'currentColor', $pagination-disabled-color),
+ '#',
+ '%23'
+ ));
+ }
+ }
+ }
+ }
+ &.next {
+ .page-link {
+ &:after {
+ background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $pagination-color), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 14px;
+ color: $body-color;
+ width: 12px;
+ height: 18px;
+ content: '';
+ }
+ // &:active,
+ &:hover {
+ &:after {
+ background-image: url(str-replace(
+ str-replace($chevron-right, 'currentColor', $primary),
+ '#',
+ '%23'
+ )) !important;
+ }
+ }
+ }
+ &.disabled {
+ .page-link {
+ &:after {
+ background-image: url(str-replace(
+ str-replace($chevron-right, 'currentColor', $pagination-disabled-color),
+ '#',
+ '%23'
+ ));
+ }
+ }
+ }
+ }
+
+ &.disabled {
+ .page-link {
+ color: $pagination-disabled-color;
+ }
+ }
+
+ // page link customization
+
+ .page-link {
+ border: none;
+ margin: 0;
+ margin-left: 0;
+ font-size: 1rem;
+ min-width: 2.286rem;
+ &:focus {
+ box-shadow: none;
+ }
+
+ &:hover {
+ color: $primary;
+ }
+ }
+
+ // for active page item
+ &.active {
+ background-color: $pagination-bg;
+ border-radius: 0;
+
+ .page-link {
+ z-index: 3;
+ border-radius: 5rem;
+ background-color: $primary;
+ color: $white !important;
+ font-weight: 600;
+ }
+ }
+
+ // if you don't want separated look
+
+ &:first-child:not(.prev-item) {
+ &.active {
+ border-top-left-radius: 1.428rem;
+ border-bottom-left-radius: 1.428rem;
+ .page-link {
+ border-radius: 5rem;
+ }
+ }
+ .page-link {
+ border-top-left-radius: 1.428rem;
+ border-bottom-left-radius: 1.428rem;
+ }
+ }
+
+ &:last-child:not(.next-item) {
+ &.active {
+ border-top-right-radius: 1.428rem;
+ border-bottom-right-radius: 1.428rem;
+ .page-link {
+ border-radius: 5rem;
+ }
+ }
+ .page-link {
+ border-top-right-radius: 1.428rem;
+ border-bottom-right-radius: 1.428rem;
+ }
+ }
+}
+
+// For Pagination Font sizes
+.pagination {
+ // For Pagination lg
+ &.pagination-lg {
+ .page-item {
+ .page-link {
+ font-size: $pagination-font-size-lg;
+ min-width: 2.6rem;
+ }
+ }
+ }
+ // For Pagination sm
+ &.pagination-sm {
+ .page-item {
+ .page-link {
+ font-size: $pagination-font-size-sm;
+ min-width: 2rem;
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_popover.scss b/src/@core/scss/base/bootstrap-extended/_popover.scss
new file mode 100644
index 00000000..44635418
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_popover.scss
@@ -0,0 +1,45 @@
+// Popovers
+
+.popover {
+ box-shadow: $popover-box-shadow;
+ // popover header style
+ .popover-header {
+ @include font-size(1.07rem);
+ border: 1px solid $popover-header-bg;
+ }
+ // popover body style
+ .popover-body {
+ border: 1px solid $popover-border-color;
+ border-top-color: $popover-bg;
+ border-bottom-left-radius: $popover-border-radius;
+ border-bottom-right-radius: $popover-border-radius;
+ }
+ // popover bottom arrow color like header
+ &.bs-popover-bottom {
+ .arrow:after {
+ border-bottom-color: $popover-header-bg;
+ }
+ }
+}
+// To set arrow border as we have added border to popover-body and popover-header
+.bs-popover-top {
+ > .arrow {
+ &::after {
+ bottom: $popover-border-width + 1px;
+ }
+ }
+}
+.bs-popover-right {
+ > .arrow {
+ &::after {
+ left: $popover-border-width + 1px;
+ }
+ }
+}
+.bs-popover-left {
+ > .arrow {
+ &::after {
+ right: $popover-border-width + 1px;
+ }
+ }
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_progress.scss b/src/@core/scss/base/bootstrap-extended/_progress.scss
new file mode 100644
index 00000000..c8268bd9
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_progress.scss
@@ -0,0 +1,20 @@
+/*=========================================================================================
+ File Name: progress.scss
+ Description: Extended bootstrap progress bar scss.
+ ----------------------------------------------------------------------------------------
+ Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+ Author: PIXINVENT
+ Author URL: http://www.themeforest.net/user/pixinvent
+ ----------------------------------------------------------------------------------------
+==========================================================================================*/
+
+.progress {
+ // border radius to set for stacked bars
+ .progress-bar + .progress-bar:not(:last-child) {
+ border-radius: 0;
+ }
+ .progress-bar:last-child {
+ border-top-right-radius: $progress-border-radius;
+ border-bottom-right-radius: $progress-border-radius;
+ }
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_reboot.scss b/src/@core/scss/base/bootstrap-extended/_reboot.scss
new file mode 100644
index 00000000..02cbfea6
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_reboot.scss
@@ -0,0 +1,15 @@
+a {
+ &:focus {
+ outline: none;
+ }
+}
+
+a:not([href]) {
+ color: inherit;
+ text-decoration: none;
+
+ @include hover() {
+ color: inherit;
+ text-decoration: none;
+ }
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_tables.scss b/src/@core/scss/base/bootstrap-extended/_tables.scss
new file mode 100644
index 00000000..a4903098
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_tables.scss
@@ -0,0 +1,122 @@
+// ================================================================================================
+// File Name: tables.scss
+// Description: Tables pages custom scss
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+// table-white-space
+.table-white-space {
+ th,
+ td {
+ white-space: nowrap;
+ }
+}
+
+// table th, td padding
+.table {
+ thead,
+ tfoot {
+ th {
+ vertical-align: top;
+ text-transform: uppercase;
+ font-size: $table-th-font-size;
+ letter-spacing: 0.5px;
+ }
+ }
+ th,
+ td {
+ padding: $table-cell-padding 2rem;
+ vertical-align: middle;
+ }
+ &.table-sm {
+ th,
+ td {
+ padding: $table-cell-padding-sm 0.5rem;
+ &:first-child {
+ padding-left: 0.75rem;
+ }
+ }
+ }
+}
+// if we are not using table-light class then also header color should apply
+.table:not(.table-dark):not(.table-light) {
+ thead:not(.thead-dark) th,
+ tfoot:not(.thead-dark) th {
+ background-color: $table-head-bg;
+ }
+}
+// table inside card, don't need margin bottom
+.table-hover {
+ tbody {
+ tr {
+ cursor: pointer;
+ }
+ }
+}
+// Table - hover animation
+.table-hover-animation {
+ background-color: $body-bg;
+ thead {
+ th {
+ border-bottom: 0;
+ }
+ }
+ th,
+ td {
+ border: 0;
+ }
+ tbody {
+ tr {
+ transition: all 0.25s ease;
+ background-color: $white;
+ &:hover {
+ transform: translateY(-4px);
+ }
+ }
+ }
+}
+
+// table border radius
+.card .table {
+ margin-bottom: 0;
+ border-bottom-left-radius: $border-radius;
+ border-bottom-right-radius: $border-radius;
+ tbody {
+ tr:last-child {
+ td:first-child {
+ border-bottom-left-radius: $border-radius;
+ }
+ td:last-child {
+ border-bottom-right-radius: $border-radius;
+ }
+ }
+ }
+}
+
+// Contexual table inside card radius
+.card {
+ table {
+ tr[class*='table-']:last-child {
+ td:first-child {
+ border-bottom-left-radius: $border-radius;
+ }
+ td:last-child {
+ border-bottom-right-radius: $border-radius;
+ }
+ }
+ }
+}
+
+// IE Specific CSS
+@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
+ .table-hover-animation {
+ tr {
+ &:hover {
+ border-bottom-color: $table-border-color;
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_toast.scss b/src/@core/scss/base/bootstrap-extended/_toast.scss
new file mode 100644
index 00000000..7990e30b
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_toast.scss
@@ -0,0 +1,16 @@
+// Toasts
+
+.toast {
+ &.show {
+ z-index: 1030;
+ }
+ .close:focus {
+ outline: none;
+ }
+}
+
+@include media-breakpoint-down(xs) {
+ .toast {
+ left: 1rem;
+ }
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_type.scss b/src/@core/scss/base/bootstrap-extended/_type.scss
new file mode 100644
index 00000000..5558a4c4
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_type.scss
@@ -0,0 +1,22 @@
+// ================================================================================================
+// File Name: type.scss
+// Description: Type pages custom scss
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+// text heading color
+.text-body-heading {
+ color: $headings-color;
+ &:hover {
+ color: inherit !important;
+ }
+}
+// text body hover color if have link
+.text-body {
+ &[href]:hover {
+ color: $link-hover-color !important;
+ }
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_utilities.scss b/src/@core/scss/base/bootstrap-extended/_utilities.scss
new file mode 100644
index 00000000..59e62a57
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_utilities.scss
@@ -0,0 +1,465 @@
+// ================================================================================================
+// File Name: utilities.scss
+// Description: Utility classes provides color, width, position & background etc..
+// related customization.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+// Sizes Variable for height and width mixins
+$sizes-px: (
+ // in px
+ 50: 50px,
+ 100: 100px,
+ 150: 150px,
+ 200: 200px,
+ 250: 250px,
+ 300: 300px,
+ 350: 350px,
+ 400: 405px,
+ 450: 455px,
+ 500: 500px,
+ 550: 550px,
+ 600: 600px,
+ 650: 650px,
+ 700: 700px,
+ 750: 750px,
+ 800: 800px
+) !default;
+
+$sizes-per: (
+ // in %
+ 5: 5%,
+ 10: 10%,
+ 15: 15%,
+ 20: 20%,
+ 25: 25%,
+ 30: 30%,
+ 35: 35%,
+ 40: 40%,
+ 45: 45%,
+ 50: 50%,
+ 55: 55%,
+ 60: 60%,
+ 65: 65%,
+ 70: 70%,
+ 75: 75%,
+ 80: 80%,
+ 85: 85%,
+ 90: 90%,
+ 95: 95%
+) !default;
+
+//--------------- Text ---------------
+//------------------------------------
+
+// Font Size
+//----------
+//small
+.font-small-1 {
+ font-size: 0.7rem !important;
+
+ // for Feather SVG icons as we are using base size as 1rem
+ @at-root svg#{&} {
+ height: 0.7rem !important;
+ width: 0.7rem !important;
+ }
+}
+.font-small-2 {
+ font-size: 0.8rem !important;
+ @at-root svg#{&} {
+ height: 0.8rem !important;
+ width: 0.8rem !important;
+ }
+}
+.font-small-3 {
+ font-size: 0.9rem !important;
+ @at-root svg#{&} {
+ height: 0.9rem !important;
+ width: 0.9rem !important;
+ }
+}
+.font-small-4 {
+ font-size: 1rem !important;
+ @at-root svg#{&} {
+ height: 1rem !important;
+ width: 1rem !important;
+ }
+}
+//medium
+.font-medium-1 {
+ font-size: 1.1rem !important;
+ @at-root svg#{&} {
+ height: 1.1rem !important;
+ width: 1.1rem !important;
+ }
+}
+.font-medium-2 {
+ font-size: 1.2rem !important;
+ @at-root svg#{&} {
+ height: 1.2rem !important;
+ width: 1.2rem !important;
+ }
+}
+.font-medium-3 {
+ font-size: 1.3rem !important;
+ @at-root svg#{&} {
+ height: 1.3rem !important;
+ width: 1.3rem !important;
+ }
+}
+.font-medium-4 {
+ font-size: 1.4rem !important;
+ @at-root svg#{&} {
+ height: 1.4rem !important;
+ width: 1.4rem !important;
+ }
+}
+.font-medium-5 {
+ font-size: 1.5rem !important;
+ @at-root svg#{&} {
+ height: 1.5rem !important;
+ width: 1.5rem !important;
+ }
+}
+//large
+.font-large-1 {
+ font-size: 2rem !important;
+ @at-root svg#{&} {
+ height: 2rem !important;
+ width: 2rem !important;
+ }
+}
+.font-large-2 {
+ font-size: 3rem !important;
+ @at-root svg#{&} {
+ height: 3rem !important;
+ width: 3rem !important;
+ }
+}
+.font-large-3 {
+ font-size: 4rem !important;
+ @at-root svg#{&} {
+ height: 4rem !important;
+ width: 4rem !important;
+ }
+}
+.font-large-4 {
+ font-size: 5rem !important;
+ @at-root svg#{&} {
+ height: 5rem !important;
+ width: 5rem !important;
+ }
+}
+.font-large-5 {
+ font-size: 6rem !important;
+ @at-root svg#{&} {
+ height: 6rem !important;
+ width: 6rem !important;
+ }
+}
+
+// Line height
+//----------
+.line-height-1 {
+ line-height: 1 !important;
+}
+.line-height-condensed {
+ line-height: 1.5 !important;
+}
+.line-height-inherit {
+ line-height: inherit !important;
+}
+
+// Transform
+//----------
+.rotate-45 {
+ transform: rotate(45deg);
+}
+.rotate-45-inverse {
+ transform: rotate(-45deg);
+}
+.rotate-90 {
+ transform: rotate(90deg);
+}
+.rotate-90-inverse {
+ transform: rotate(-90deg);
+}
+.rotate-180 {
+ transform: rotate(180deg);
+}
+.rotate-180-inverse {
+ transform: rotate(-180deg);
+}
+
+//-------------- Borders --------------
+//-------------------------------------
+
+// Border width - 2px
+.border-2 {
+ border-width: 2px !important;
+}
+.border-top-2 {
+ border-top-width: 2px !important;
+}
+.border-bottom-2 {
+ border-bottom-width: 2px !important;
+}
+.border-left-2 {
+ border-left-width: 2px !important;
+}
+.border-right-2 {
+ border-right-width: 2px !important;
+}
+
+// Border width - 3px
+.border-3 {
+ border-width: 3px !important;
+}
+.border-top-3 {
+ border-top-width: 3px !important;
+}
+.border-bottom-3 {
+ border-bottom-width: 3px !important;
+}
+.border-left-3 {
+ border-left-width: 3px !important;
+}
+.border-right-3 {
+ border-right-width: 3px !important;
+}
+
+// Shapes radius : Round / Square
+.round {
+ @include border-radius(1.5rem);
+}
+.square {
+ @include border-radius(0);
+}
+
+//-------------- Sizing --------------
+//------------------------------------
+
+// Width && Height
+.fit {
+ max-width: 100% !important;
+}
+.half-width {
+ width: 50% !important;
+}
+.full-width {
+ width: 100% !important;
+}
+.full-height {
+ height: 100% !important;
+}
+
+// height & width in PX
+@each $name, $size in $sizes-px {
+ .height-#{$name} {
+ height: $size !important;
+ }
+
+ .width-#{$name} {
+ width: $size !important;
+ }
+}
+
+// height & width in %
+@each $name, $size in $sizes-per {
+ .height-#{$name}-per {
+ height: $size !important;
+ }
+
+ .width-#{$name}-per {
+ width: $size !important;
+ }
+}
+
+//------------- Position -------------
+//------------------------------------
+.position-top-0 {
+ top: 0;
+}
+.position-right-0 {
+ right: 0;
+}
+.position-bottom-0 {
+ bottom: 0;
+}
+.position-left-0 {
+ left: 0;
+}
+
+//------------- Overflow -------------
+//------------------------------------
+.overflow-visible {
+ overflow: visible;
+}
+.overflow-scroll {
+ overflow: scroll;
+}
+.overflow-x-scroll {
+ overflow: scroll;
+}
+.overflow-y-scroll {
+ overflow: scroll;
+}
+
+//-------------- Cursor --------------
+//------------------------------------
+.cursor-pointer {
+ cursor: pointer;
+}
+.cursor-move {
+ cursor: move;
+}
+.cursor-default {
+ cursor: default;
+}
+.cursor-progress {
+ cursor: progress;
+}
+.cursor-not-allowed {
+ cursor: not-allowed;
+}
+
+//-------------- Z-index --------------
+//-------------------------------------
+.zindex-1 {
+ z-index: 1 !important;
+}
+.zindex-2 {
+ z-index: 2 !important;
+}
+.zindex-3 {
+ z-index: 3 !important;
+}
+.zindex-4 {
+ z-index: 4 !important;
+}
+.zindex-0 {
+ z-index: 0 !important;
+}
+.zindex-minus-1 {
+ z-index: -1 !important;
+}
+.zindex-minus-2 {
+ z-index: -2 !important;
+}
+.zindex-minus-3 {
+ z-index: -3 !important;
+}
+.zindex-minus-4 {
+ z-index: -4 !important;
+}
+
+//------------ Box Shadow ------------
+//------------------------------------
+.box-shadow-0 {
+ box-shadow: none !important;
+}
+.box-shadow-1 {
+ box-shadow: 0 2px 5px 0 rgba($black, 0.16), 0 2px 10px 0 rgba($black, 0.12);
+}
+.box-shadow-2 {
+ box-shadow: 0 8px 17px 0 rgba($black, 0.2), 0 6px 20px 0 rgba($black, 0.19);
+}
+.box-shadow-3 {
+ box-shadow: 0 12px 15px 0 rgba($black, 0.24), 0 17px 50px 0 rgba($black, 0.19);
+}
+.box-shadow-4 {
+ box-shadow: 0 16px 28px 0 rgba($black, 0.22), 0 25px 55px 0 rgba($black, 0.21);
+}
+.box-shadow-5 {
+ box-shadow: 0 27px 24px 0 rgba($black, 0.2), 0 40px 77px 0 rgba($black, 0.22);
+}
+.box-shadow-6 {
+ box-shadow: 0 4px 8px 0 rgba($black, 0.12), 0 2px 4px 0 rgba($black, 0.08);
+}
+
+//-------------- Outline --------------
+//-------------------------------------
+.outline-none {
+ outline: none !important;
+}
+
+//-------------- Lists --------------
+//-----------------------------------
+.list-style-inside {
+ list-style: inside;
+}
+.list-style-circle {
+ list-style: circle;
+}
+.list-style-square {
+ list-style: square;
+}
+
+//--------- Background Image ---------
+//------------------------------------
+.bg-cover {
+ background-size: cover !important;
+}
+.background-repeat {
+ background-repeat: repeat !important;
+}
+.background-no-repeat {
+ background-repeat: no-repeat !important;
+}
+
+//-------------- Icons --------------
+//-----------------------------------
+.icon-bg-circle {
+ color: $white;
+ padding: 0.5rem;
+ border-radius: 50%;
+}
+.icon-left {
+ margin-right: 0.5rem;
+}
+.icon-right {
+ margin-right: 0.5rem;
+}
+
+// Used for blockUI
+.blockOverlay {
+ z-index: 1050 !important;
+}
+.blockElement,
+.blockPage {
+ z-index: 1051 !important;
+}
+
+.hidden {
+ display: none;
+ visibility: hidden;
+}
+
+a {
+ &:hover {
+ cursor: pointer;
+ }
+}
+
+//Tables
+//--------------------------
+.table-middle {
+ td {
+ vertical-align: middle;
+ }
+}
+
+//SVG
+//--------------------------
+.fill-current {
+ fill: currentColor;
+}
+
+//Cursor
+//--------------------------
+.pointer-events-none {
+ pointer-events: none;
+}
diff --git a/src/@core/scss/base/bootstrap-extended/_variables.scss b/src/@core/scss/base/bootstrap-extended/_variables.scss
new file mode 100644
index 00000000..e8dc986a
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/_variables.scss
@@ -0,0 +1,499 @@
+// ================================================================================================
+// File Name: variables.scss
+// Description: Custom overrides of Bootstrap variables
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+// Color system
+
+$white: #fff !default;
+$gray-50: #f6f6f6 !default;
+$gray-100: #babfc7 !default; // $gray-lightest
+$gray-200: #ededed !default; // $gray-lighter
+$gray-300: #dae1e7 !default; // $gray-light
+$gray-400: #636363 !default;
+$gray-500: #adb5bd !default;
+$gray-600: #b8c2cc !default; // $gray
+$gray-700: #4e5154 !default;
+$gray-800: #1e1e1e !default; // $gray-dark
+$gray-900: #2a2e30 !default;
+$black: #22292f !default; // 231f48 22292f
+
+$purple: #7367f0 !default; //$primary
+$green: #28c76f !default; //$success
+$blue: #00cfe8 !default; //$info
+$orange: #ff9f43 !default; //$warning
+$red: #ea5455 !default; //$danger
+
+$primary: $purple !default;
+$secondary: #82868b !default;
+$info: $blue !default;
+$warning: $orange !default;
+$light: $gray-50 !default;
+$dark: #4b4b4b !default;
+
+// Spacing
+//
+// Control the default styling of most Bootstrap elements by modifying these
+// variables. Mostly focused on spacing.
+// You can add more entries to the $spacers map, should you need more variation.
+
+// scss-docs-start container-max-widths
+$container-max-widths: (
+ sm: 540px,
+ md: 720px,
+ lg: 960px,
+ xl: 1140px,
+ xxl: 1440px // Custom xxl size
+) !default;
+// scss-docs-end container-max-widths
+
+// stylelint-disable
+$spacer: 1rem !default;
+$spacers: () !default;
+// stylelint-disable-next-line scss/dollar-variable-default
+$spacers: map-merge(
+ (
+ 0: 0,
+ 25: (
+ $spacer * 0.25
+ ),
+ 50: (
+ $spacer * 0.5
+ ),
+ 75: (
+ $spacer * 0.75
+ ),
+ 1: (
+ $spacer
+ ),
+ 2: (
+ $spacer * 1.5
+ ),
+ 3: (
+ $spacer * 3
+ ),
+ 4: (
+ $spacer * 3.5
+ ),
+ 5: (
+ $spacer * 4
+ )
+ ),
+ $spacers
+);
+
+// Body
+//
+// Settings for the `` element.
+$body-bg: #f8f8f8 !default;
+$body-color: #6e6b7b !default;
+
+// Links
+//
+// Style anchor elements.
+
+$link-color: $primary !default;
+$link-hover-color: darken($link-color, 5%) !default;
+$link-hover-decoration: none !default;
+
+// Grid columns
+//
+// Set the number of columns and specify the width of the gutters.
+
+$grid-gutter-width: 2rem !default;
+
+// Components
+//
+// Define common padding and border radius sizes and more.
+
+$line-height-lg: 1.25 !default;
+$line-height-sm: 1 !default;
+
+$border-width: 1px !default;
+$border-color: #ebe9f1 !default;
+$border-radius: 0.357rem !default;
+$border-radius-lg: 0.6rem !default;
+$border-radius-sm: 0.25rem !default;
+
+// shadow
+$box-shadow: 0 4px 24px 0 rgba($black, 0.1) !default;
+// Typography
+
+//
+// Font, line-height, and color for body text, headings, and more.
+
+// stylelint-disable value-keyword-case
+$font-family-sans-serif: 'Montserrat', Helvetica, Arial, serif !default;
+$font-family-monospace: 'Montserrat', Helvetica, Arial, serif !default;
+
+// stylelint-enable value-keyword-case
+$font-size-base: 1rem !default;
+$font-size-lg: ceil($font-size-base * 1.25) !default;
+$font-size-sm: ceil($font-size-base * 0.85) !default;
+
+$font-weight-normal: 400 !default;
+$font-weight-bold: 500 !default;
+$font-weight-bolder: 600 !default;
+
+$line-height-base: 1.45 !default;
+
+$h1-font-size: $font-size-base * 2 !default;
+$h2-font-size: $font-size-base * 1.714 !default;
+$h3-font-size: $font-size-base * 1.5 !default;
+$h4-font-size: $font-size-base * 1.286 !default;
+$h5-font-size: $font-size-base * 1.07 !default;
+
+$headings-font-family: inherit !default;
+$headings-color: #5e5873 !default;
+
+$display1-weight: $font-weight-normal !default;
+$display2-weight: $font-weight-normal !default;
+$display3-weight: $font-weight-normal !default;
+$display4-weight: $font-weight-normal !default;
+
+$lead-font-size: $font-size-base * 1.14 !default;
+$lead-font-weight: $font-weight-normal !default;
+
+$small-font-size: 0.857rem !default;
+
+$text-muted: #b9b9c3 !default;
+$hr-border-color: $border-color !default;
+
+$blockquote-small-color: $text-muted !default;
+
+// Tables
+
+$table-cell-padding: 0.72rem !default;
+
+$table-accent-bg: #fafafc !default;
+$table-hover-bg: #f6f6f9 !default;
+
+$table-border-color: $border-color !default;
+
+$table-head-bg: #f3f2f7 !default;
+$table-head-color: $headings-color !default;
+
+$table-dark-bg: $dark !default;
+$table-dark-border-color: #404040 !default;
+
+$table-th-font-size: 0.857rem !default; // custom
+
+// Buttons + Forms
+$btn-padding-y: 0.786rem !default;
+$btn-padding-x: 1.5rem !default;
+$input-btn-padding-y: 0.75rem !default;
+$input-btn-padding-x: 2rem !default;
+
+$input-btn-padding-y-sm: 0.486rem !default;
+$input-btn-padding-x-sm: 1rem !default;
+$input-btn-font-size-sm: $font-size-base * 0.9 !default;
+
+$input-btn-padding-y-lg: 0.8rem !default;
+$input-btn-padding-x-lg: 2rem !default;
+$input-btn-font-size-lg: $font-size-base * 1.25 !default;
+$btn-line-height: 1 !default;
+$btn-border-radius: 0.358rem !default;
+$btn-border-radius-lg: 0.358rem !default;
+$btn-border-radius-sm: 0.358rem !default;
+
+$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, background 0s, border 0s !default;
+
+// Forms
+$custom-control-border-color: #d8d6de;
+$label-margin-bottom: 0.2857rem !default;
+
+$input-padding-y: 0.438rem !default;
+$input-padding-x: 1rem !default;
+$input-font-size: 1rem !default;
+$input-line-height: $line-height-base !default;
+
+$input-padding-y-sm: 0.188rem !default;
+$input-padding-x-sm: 0.857rem !default;
+$input-font-size-sm: 0.857rem !default;
+
+$input-padding-y-lg: 0.75rem !default;
+$input-padding-x-lg: 1.143rem !default;
+$input-font-size-lg: 1.143rem !default;
+
+$input-disabled-bg: #efefef !default;
+
+$input-color: $body-color !default;
+$input-border-color: $custom-control-border-color !default;
+$input-box-shadow: inset 0 1px 1px rgba($black, 0.075) !default;
+
+$input-border-radius: $border-radius !default;
+$input-border-radius-lg: $border-radius !default;
+$input-border-radius-sm: $border-radius !default;
+
+$input-focus-border-color: $primary !default;
+$input-focus-box-shadow: 0 3px 10px 0 rgba($black, 0.1) !default;
+
+$input-placeholder-color: $text-muted !default;
+$input-plaintext-color: $body-color !default;
+
+$input-height: 2.714rem !default;
+$input-height-sm: 2.142rem !default;
+$input-height-lg: 3.2857rem !default;
+
+$input-group-addon-bg: white !default;
+$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, background 0s, border-color 0s !default;
+
+$custom-control-indicator-border-color: $custom-control-border-color;
+
+$custom-checkbox-indicator-border-radius: 3px !default;
+$custom-checkbox-indicator-checked-color: white !default;
+$custom-checkbox-indicator-indeterminate-color: white !default;
+$custom-checkbox-indicator-icon-checked: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9.5 7.5'%3E%3Cpolyline points='0.75 4.35 4.18 6.75 8.75 0.75' style='fill:none;stroke:%23fff;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px'/%3E%3C/svg%3E");
+
+$custom-checkbox-indicator-icon-indeterminate: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{$custom-checkbox-indicator-indeterminate-color}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-minus'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");
+
+$custom-control-indicator-checked-disabled-bg: rgba($primary, 0.65);
+
+$custom-radio-indicator-icon-checked: none;
+
+$custom-file-height-inner: $input-height !default;
+
+$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator
+$custom-select-disabled-bg: $input-disabled-bg !default;
+$custom-select-bg-size: 10px 10px !default; // In pixels because image dimensions
+$custom-select-indicator-color: $input-border-color !default;
+$custom-select-indicator: url("data:image/svg+xml, ") !default;
+
+// $custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;
+// $custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;
+
+$custom-select-border-radius: $input-border-radius !default;
+$custom-select-focus-box-shadow: $input-focus-box-shadow !default;
+
+$custom-select-padding-y-sm: $input-padding-y-sm !default;
+$custom-select-padding-x-sm: $input-padding-x-sm !default;
+$custom-select-font-size-sm: $input-font-size-sm !default;
+$custom-select-height-sm: $input-height-sm !default;
+
+$custom-select-padding-y-lg: $input-padding-y-lg !default;
+$custom-select-padding-x-lg: $input-padding-x-lg !default;
+$custom-select-font-size-lg: $input-font-size-lg !default;
+$custom-select-height-lg: $input-height-lg !default;
+
+// Dropdowns
+//
+// Dropdown menu container and contents.
+
+$dropdown-border-color: rgba($black, 0.05) !default;
+$dropdown-border-radius: 0.358rem !default;
+$dropdown-box-shadow: 0 5px 25px rgba($black, 0.1) !default;
+
+$dropdown-link-color: $body-color !default;
+$dropdown-link-hover-color: $primary !default;
+$dropdown-link-hover-bg: rgba($primary, 0.12) !default;
+
+$dropdown-divider-bg: rgba($black, 0.08) !default;
+$dropdown-font-size: 1rem !default;
+$dropdown-spacer: 0 !default;
+$zindex-dropdown: 10 !default;
+
+$dropdown-box-shadow: 0 5px 25px 0 rgba($black, 0.1) !default;
+
+$dropdown-link-disabled-color: $text-muted !default;
+
+$dropdown-item-padding-y: 0.65rem !default;
+$dropdown-item-padding-x: 1.28rem !default;
+
+$dropdown-header-color: $headings-color !default;
+
+$dropdown_spacing: 0.5rem; // custom
+
+// Pagination
+
+$pagination-padding-y: 0.5rem !default;
+$pagination-padding-x: 0.85rem !default;
+$pagination-padding-y-lg: 0.5575rem !default;
+$pagination-padding-x-lg: 1rem !default;
+$pagination-padding-y-sm: 0.443rem !default;
+$pagination-padding-x-sm: 0.745rem !default;
+
+$pagination-disabled-color: $text-muted !default;
+
+$pagination-color: $body-color !default;
+$pagination-bg: #f3f2f7 !default;
+
+$pagination-hover-color: $primary !default;
+$pagination-hover-bg: #f3f2f7 !default;
+
+$pagination-active-color: $primary !default;
+
+$pagination-disabled-color: $text-muted !default;
+$pagination-disabled-bg: #f3f2f7 !default;
+
+$pagination-font-size-lg: 1.14rem !default; // custom
+$pagination-font-size-sm: 0.857rem !default; // custom
+
+// Cards
+$card-spacer-y: 1.5rem !default;
+$card-spacer-x: 1.5rem !default;
+$card-border-radius: 0.428rem !default;
+
+//Alerts
+
+$alert-padding-y: 0.71rem !default;
+$alert-padding-x: 1rem !default;
+$alert-border-radius: 0.358rem !default;
+$alert-link-font-weight: 700 !default;
+
+// List group
+
+$list-group-border-radius: 0.358rem !default;
+$list-group-disabled-color: $text-muted !default;
+
+// Nav tabs
+
+$nav-link-padding-y: 0.358rem !default;
+$nav-link-padding-x: 0.5rem !default;
+$nav-link-disabled-color: $text-muted !default;
+
+$nav-tabs-border-width: 0 !default;
+$nav-tabs-border-radius: 0.25 !default;
+$nav-tabs-link-active-color: $primary !default;
+
+$nav-tabs-link-active-bg: transparent !default;
+
+$nav-pills-border-radius: $btn-border-radius !default;
+
+// navbar
+
+$floating-nav-margin: 1.3rem;
+
+// Tooltips
+
+$tooltip-bg: #323232 !default;
+$tooltip-padding-y: 0.4rem !default;
+$tooltip-padding-x: 0.775rem !default;
+$tooltip-font-size: 0.857rem !default;
+$tooltip-border-radius: 0.358rem !default;
+$tooltip-opacity: 1 !default;
+$tooltip-max-width: 220px !default;
+
+// Popovers
+
+$popover-font-size: 1rem !default;
+$popover-border-width: 0 !default;
+$popover-border-radius: 0.358rem !default;
+$popover-border-color: $border-color !default;
+$popover-box-shadow: 0 0 10px 0 rgba($black, 0.1) !default;
+
+$popover-header-bg: $primary !default;
+$popover-header-color: $white !default;
+$popover-header-padding-y: 0.65rem !default;
+$popover-header-padding-x: 1.21rem !default;
+
+// Toasts
+
+$toast-max-width: 380px !default;
+$toast-padding-x: 1.14rem !default;
+$toast-padding-y: 0.15rem !default;
+$toast-font-size: 0.857rem !default;
+$toast-color: $body-color !default;
+$toast-border-width: 0 !default;
+$toast-border-radius: 0.286rem !default;
+$toast-box-shadow: 0 2px 20px 0 rgba($black, 0.08) !default;
+
+$toast-header-color: $body-color !default;
+$toast-header-background-color: $white !default;
+
+// Progress
+
+$progress-height: 0.857rem !default;
+$progress-border-radius: 5rem !default;
+$progress-font-size: $font-size-base * 0.857 !default;
+$progress-bg: rgba($primary, 0.12) !default;
+
+// Breadcrumbs
+
+$breadcrumb-font-size: 1rem !default;
+
+$breadcrumb-padding-y: 0.3rem !default;
+$breadcrumb-item-padding: 0.6rem !default;
+
+$breadcrumb-margin-bottom: 0 !default;
+
+$breadcrumb-bg: transparent !default;
+$breadcrumb-divider-color: $body-color !default;
+$breadcrumb-active-color: $body-color !default;
+
+$breadcrumb-border-radius: 0 !default;
+
+// Carousel
+
+$carousel-control-color: $white !default;
+$carousel-control-prev-icon-bg: url('data:image/svg+xml, ') !default;
+$carousel-control-next-icon-bg: url('data:image/svg+xml, ') !default;
+
+// Badges
+
+$badge-font-size: 85% !default;
+$badge-padding-y: 0.3rem !default;
+$badge-padding-x: 0.5rem !default;
+$badge-font-weight: 600 !default;
+$badge-border-radius: 0.358rem !default;
+
+$badge-pill-padding-x: 0.5rem !default;
+
+// Modal
+$modal-inner-padding: 0.8rem 1.4rem !default;
+
+$modal-footer-border-color: rgba($black, 0.05) !default;
+
+$modal-header-padding-y: 0.8rem !default;
+$modal-header-padding-x: 1.4rem !default;
+$modal-content-border-radius: 0.358rem !default;
+
+$modal-xl: 94% !default;
+$modal-sm: 400px !default;
+
+// Slide In Modal
+$modal-slide-in-width-sm: 25rem !default; // custom
+$modal-slide-in-width: 28rem !default; // custom
+$modal-slide-in-width-lg: 30rem !default; // custom
+
+// Close
+
+$close-font-size: $font-size-base * 2 !default;
+$close-font-weight: 400 !default;
+$close-color: $headings-color !default;
+
+// Code
+
+$code-font-size: 90% !default;
+$kbd-bg: #eee !default;
+
+// Switch
+$custom-switch-width: 3rem !default;
+$custom-switch-indicator-border-radius: 1rem !default;
+$custom-switch-indicator-size: 1rem !default;
+
+//svg color
+$svg-color-light: #626262 !default;
+
+// SVG icons
+// For Breadcrumb
+$double-chevron-right: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-chevrons-right'%3E%3Cpolyline points='13 17 18 12 13 7'%3E%3C/polyline%3E%3Cpolyline points='6 17 11 12 6 7'%3E%3C/polyline%3E%3C/svg%3E";
+// Chevron Icons
+$chevron-left: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-chevron-left'%3E%3Cpolyline points='15 18 9 12 15 6'%3E%3C/polyline%3E%3C/svg%3E";
+$chevron-right: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-chevron-right'%3E%3Cpolyline points='9 18 15 12 9 6'%3E%3C/polyline%3E%3C/svg%3E";
+$chevron-up: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-chevron-up'%3E%3Cpolyline points='18 15 12 9 6 15'%3E%3C/polyline%3E%3C/svg%3E";
+$chevron-down: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-chevron-down'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E";
+
+$download: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-download'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'%3E%3C/path%3E%3Cpolyline points='7 10 12 15 17 10'%3E%3C/polyline%3E%3Cline x1='12' y1='15' x2='12' y2='3'%3E%3C/line%3E%3C/svg%3E";
+$remove: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-x'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E";
+$check: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-check'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E";
+$circle: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-circle'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3C/svg%3E";
+$infoIcon: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-info'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='16' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'%3E%3C/line%3E%3C/svg%3E";
+$warningIcon: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-alert-triangle'%3E%3Cpath d='M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'%3E%3C/path%3E%3Cline x1='12' y1='9' x2='12' y2='13'%3E%3C/line%3E%3Cline x1='12' y1='17' x2='12.01' y2='17'%3E%3C/line%3E%3C/svg%3E";
+$menu: "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' stroke='currentColor' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round' class='css-i6dzq1'%3E%3Cline x1='3' y1='12' x2='21' y2='12'%3E%3C/line%3E%3Cline x1='3' y1='6' x2='21' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='18' x2='21' y2='18'%3E%3C/line%3E%3C/svg%3E";
+
+$chat-bg-light: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIzLjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAyNjAgMjYwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyNjAgMjYwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6I0UxRTBFOTt9Cjwvc3R5bGU+CjxnPgoJPGcgaWQ9ImktbGlrZS1mb29kIj4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjQuNCwxNmMwLjIsMC42LDAuNCwxLjMsMC41LDJoLTMuN2wxLjIsMi4zbDAuNSwwLjlsLTAuMiwwLjFWMjhjMi4yLDEuNywyLjcsNC44LDEsNwoJCQljLTAuOCwxLTEuOSwxLjctMy4yLDEuOVYzN2MtMC45LDMuNS00LjEsNi03LjgsNmgtMjBjLTMuNiwwLTYuOC0yLjUtNy43LTZ2LTAuMWMtMi43LTAuNC00LjYtMy00LjItNS43YzAuMi0xLjMsMC45LTIuNSwxLjktMy4yCgkJCXYtNi44bC0wLjgtMS42bC0wLjQtMC45bDAuOS0wLjRMLTE3LDE4aC0zQy0xNy4yLDUuNi00LjktMi4yLDcuNSwwLjZDMTUuNCwyLjMsMjEuOSw4LjIsMjQuNCwxNnogTS0xMi40LDE4Yy0wLjIsMC0wLjMsMC0wLjQsMC4xCgkJCWwtMy4xLDEuNmwwLjksMS44bDEuMy0wLjdjMC44LTAuNCwxLjgtMC40LDIuNywwbDIuMiwxLjFjMC4zLDAuMSwwLjYsMC4xLDAuOSwwbDIuMi0xLjFjMC44LTAuNCwxLjgtMC40LDIuNywwbDIuMiwxLjEKCQkJYzAuMywwLjEsMC42LDAuMSwwLjksMGwyLjItMS4xYzAuOC0wLjQsMS44LTAuNCwyLjcsMGwyLjIsMS4xQzcuNCwyMiw3LjcsMjIsOCwyMS45bDIuOS0xLjNjMC44LTAuMywxLjctMC4zLDIuNCwwbDIuOSwxLjMKCQkJYzAuMywwLjEsMC42LDAuMSwwLjksMGwzLjEtMS41bC0wLjktMS44bC0xLjQsMC43Yy0wLjgsMC40LTEuNywwLjQtMi42LDAuMWwtMi44LTEuMkMxMi4zLDE4LDEyLjIsMTgsMTIuMSwxOGwwLDAKCQkJYy0wLjEsMC0wLjMsMC0wLjQsMC4xbC0yLjgsMS4yYy0wLjgsMC40LTEuOCwwLjMtMi42LTAuMUw0LDE4LjFDMy45LDE4LDMuNywxOCwzLjYsMThsMCwwYy0wLjIsMC0wLjMsMC0wLjQsMC4xTDEsMTkuMgoJCQljLTAuOCwwLjQtMS44LDAuNC0yLjcsMEwtNCwxOC4xQy00LjEsMTgtNC4zLDE4LTQuNCwxOGwwLDBjLTAuMiwwLTAuMywwLTAuNCwwLjFMLTcsMTkuMmMtMC44LDAuNC0xLjgsMC40LTIuNywwbC0yLjItMS4xCgkJCUMtMTIuMSwxOC0xMi4zLDE4LTEyLjQsMThMLTEyLjQsMThMLTEyLjQsMTh6IE0tMTIuNCwxNmgtNC45Qy0xMy41LDUuMS0xLjUtMC43LDkuNSwzLjJjNiwyLjEsMTAuNyw2LjgsMTIuOCwxMi44aC0yLjFsLTAuMS0wLjEKCQkJTDE5LjksMTZILTEyLjRMLTEyLjQsMTZ6IE0xNy45LDIzLjdsMS40LTAuN2gxLjN2MmgtMzZ2LTEuMWwwLjMtMC4ybDEuNC0wLjdoMi42bDEuNCwwLjdjMC44LDAuNCwxLjgsMC40LDIuNywwbDEuNC0wLjdILTMKCQkJbDEuNCwwLjdjMC44LDAuNCwxLjgsMC40LDIuNywwTDIuMywyM2gyLjZsMS40LDAuN2MwLjcsMC40LDEuNywwLjQsMi41LDBsMS43LTAuN2gzLjJsMS43LDAuN0MxNi4yLDI0LjEsMTcuMSwyNC4xLDE3LjksMjMuN3oKCQkJIE0tMTMuOCwyN2wxNi40LDQuOUwxOC45LDI3SC0xMy44eiBNLTE0LjQsMjloMC4zbDE2LjcsNWwxNi43LTVoMC4zYzEuNywwLDMsMS4zLDMsM3MtMS4zLDMtMywzaC0zNGMtMS43LDAtMy0xLjMtMy0zCgkJCUMtMTcuNCwzMC4zLTE2LjEsMjktMTQuNCwyOXogTS0xMy4xLDM3YzAuOCwyLjQsMy4xLDQsNS43LDRoMjBjMi41LDAsNC44LTEuNiw1LjctNEMxOC4yLDM3LTEzLjEsMzctMTMuMSwzN3oiLz4KCQk8cGF0aCBpZD0icGF0aDZfZmlsbC1jb3B5IiBjbGFzcz0ic3QwIiBkPSJNMjg0LjQsMTZjMC4yLDAuNiwwLjQsMS4zLDAuNSwyaC0zLjdsMS4yLDIuM2wwLjUsMC45bC0wLjIsMC4xVjI4YzIuMiwxLjcsMi43LDQuOCwxLDcKCQkJYy0wLjgsMS0xLjksMS43LTMuMiwxLjlWMzdjLTAuOSwzLjUtNC4xLDYtNy44LDZoLTIwYy0zLjYsMC02LjgtMi41LTcuNy02di0wLjFjLTIuNy0wLjQtNC42LTMtNC4yLTUuN2MwLjItMS4zLDAuOS0yLjUsMS45LTMuMgoJCQl2LTYuOGwtMC44LTEuNmwtMC40LTAuOWwwLjktMC40TDI0MywxOGgtM2MyLjgtMTIuNCwxNS4xLTIwLjIsMjcuNS0xNy40QzI3NS40LDIuMywyODEuOSw4LjIsMjg0LjQsMTZ6IE0yNDcuNSwxOAoJCQljLTAuMiwwLTAuMywwLTAuNCwwLjFsLTMuMSwxLjZsMC45LDEuOGwxLjMtMC43YzAuOC0wLjQsMS44LTAuNCwyLjcsMGwyLjIsMS4xYzAuMywwLjEsMC42LDAuMSwwLjksMGwyLjItMS4xCgkJCWMwLjgtMC40LDEuOC0wLjQsMi43LDBsMi4yLDEuMWMwLjMsMC4xLDAuNiwwLjEsMC45LDBsMi4yLTEuMWMwLjgtMC40LDEuOC0wLjQsMi43LDBsMi4yLDEuMWMwLjMsMC4xLDAuNiwwLjEsMC45LDBsMi45LTEuMwoJCQljMC44LTAuMywxLjctMC4zLDIuNCwwbDIuOSwxLjNjMC4zLDAuMSwwLjYsMC4xLDAuOSwwbDMuMS0xLjVsLTAuOS0xLjhsLTEuNCwwLjdjLTAuOCwwLjQtMS43LDAuNC0yLjYsMC4xbC0yLjgtMS4yCgkJCWMtMC4xLTAuMS0wLjMtMC4xLTAuNC0wLjFsMCwwYy0wLjEsMC0wLjMsMC0wLjQsMC4xbC0yLjgsMS4yYy0wLjgsMC40LTEuOCwwLjMtMi42LTAuMWwtMi4zLTEuMWMtMC4xLTAuMS0wLjMtMC4xLTAuNS0wLjFsMCwwCgkJCWMtMC4yLDAtMC4zLDAtMC40LDAuMWwtMi4yLDEuMWMtMC44LDAuNC0xLjgsMC40LTIuNywwbC0yLjItMS4xYy0wLjEtMC4xLTAuMy0wLjEtMC40LTAuMWwwLDBjLTAuMiwwLTAuMywwLTAuNCwwLjFsLTIuMiwxLjEKCQkJYy0wLjgsMC40LTEuOCwwLjQtMi43LDBsLTIuMi0xLjFDMjQ3LjksMTgsMjQ3LjcsMTgsMjQ3LjUsMThMMjQ3LjUsMThMMjQ3LjUsMTh6IE0yNDcuNSwxNmgtNC45YzMuOS0xMC45LDE1LjktMTYuNywyNi44LTEyLjgKCQkJYzYsMi4xLDEwLjcsNi44LDEyLjgsMTIuOGgtMi4xbC0wLjEtMC4xbC0wLjMsMC4xSDI0Ny41TDI0Ny41LDE2eiBNMjc3LjksMjMuN2wxLjQtMC43aDEuM3YyaC0zNnYtMS4xbDAuMy0wLjJsMS40LTAuN2gyLjYKCQkJbDEuNCwwLjdjMC44LDAuNCwxLjgsMC40LDIuNywwbDEuNC0wLjdoMi42bDEuNCwwLjdjMC44LDAuNCwxLjgsMC40LDIuNywwbDEuNC0wLjdoMi42bDEuNCwwLjdjMC44LDAuNCwxLjcsMC40LDIuNiwwLjFsMS43LTAuNwoJCQloMy4ybDEuNywwLjdDMjc2LjIsMjQuMSwyNzcuMSwyNC4xLDI3Ny45LDIzLjdMMjc3LjksMjMuN3ogTTI0Ni4yLDI3bDE2LjQsNC45TDI3OSwyN0gyNDYuMnogTTI0NS41LDI5aDAuM2wxNi43LDVsMTYuNy01aDAuMwoJCQljMS43LDAsMywxLjMsMywzcy0xLjMsMy0zLDNoLTM0Yy0xLjcsMC0zLTEuMy0zLTNTMjQzLjksMjksMjQ1LjUsMjl6IE0yNDYuOSwzN2MwLjgsMi40LDMuMSw0LDUuNiw0aDIwYzIuNSwwLDQuOC0xLjYsNS43LTQKCQkJSDI0Ni45eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNTkuNSwyMWMtMS4zLTMuNi00LjctNi04LjUtNmgtNDJjLTMuOCwwLTcuMiwyLjQtOC41LDZjLTMuMywwLjMtNS44LDMuMi01LjUsNi41YzAuMiwyLjksMi42LDUuMiw1LjUsNS41CgkJCWMtMS43LDQuNywwLjgsOS44LDUuNCwxMS41YzEsMC4zLDIsMC41LDMsMC41aDQyYzUsMCw5LTQsOS05YzAtMS0wLjItMi4xLTAuNS0zYzMuMy0wLjMsNS44LTMuMiw1LjUtNi41CgkJCUMxNjQuNywyMy42LDE2Mi40LDIxLjMsMTU5LjUsMjF6IE0xNTEsMTdoLTQyYy0yLjcsMC01LjIsMS42LTYuMyw0aDU0LjdDMTU2LjIsMTguNiwxNTMuNywxNywxNTEsMTd6IE0xNDEuNyw0MwoJCQljMi4xLTEuNywzLjMtNC4zLDMuMy03aC0yYzAsMy45LTMuMSw3LTcsN2gtNC4zYzIuMS0xLjcsMy4zLTQuMywzLjMtN2gtMmMwLDMuOS0zLjEsNy03LDdoLTQuM2MyLjEtMS43LDMuMy00LjMsMy4zLTdoLTIKCQkJYzAsMy45LTMuMSw3LTcsN2gtN2MtMy45LDAtNy0zLjEtNy03czMuMS03LDctN2g0MmMzLjksMCw3LDMuMSw3LDdzLTMuMSw3LTcsN0gxNDEuN3ogTTEwOSwyN2MtMywwLTUuOCwxLjUtNy41LDRIMTAxCgkJCWMtMi4yLDAtNC0xLjgtNC00czEuOC00LDQtNGg1OGMyLjIsMCw0LDEuOCw0LDRzLTEuOCw0LTQsNGgtMC41Yy0xLjctMi41LTQuNS00LTcuNS00SDEwOXoiLz4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzksMTE1YzQuNCwwLDgtMy42LDgtOHMtMy42LTgtOC04cy04LDMuNi04LDhTMzQuNiwxMTUsMzksMTE1eiBNNDUsMTA3YzAsMy4zLTIuNyw2LTYsNnMtNi0yLjctNi02CgkJCXMyLjctNiw2LTZTNDUsMTAzLjcsNDUsMTA3eiBNNDIsNzh2LTJoOHYtNkg0MGMtMi4yLDAtNCwxLjgtNCw0djEwSDIybC0xLjMsNEwyMCw5MGgyLjJsMy44LDQwaDI2bDMuOC00MEg1OGwtMC43LTJMNTYsODRINDJWNzh6CgkJCSBNMzgsNzR2MTBoMlY3NGg4di0yaC04QzM4LjksNzIsMzgsNzIuOSwzOCw3NHogTTQwLDg2aDE0LjZsMC43LDJIMjIuOGwwLjctMkg0MHogTTUzLjgsOTBIMjQuMmwzLjYsMzhoMjIuNEw1My44LDkweiIvPgoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMjksOTJoLTZ2NGgtNnY0aC02djE0aC0zbDAuMiwybDMuOCwzMmgzNmwzLjgtMzJsMC4yLTJoLTN2LTE0aC02di00aC02di00SDEyOXogTTE0NywxMTR2LTEyaC00djRoM3Y4SDE0NwoJCQl6IE0xNDQsMTE0di02aC00djZIMTQ0eiBNMTM4LDEyMHYtMTZoLTR2MTkuMkMxMzUuNiwxMjIuNSwxMzcsMTIxLjQsMTM4LDEyMHogTTEzMiwxMjMuOFYxMDBoLTR2MjMuOAoJCQlDMTI5LjMsMTI0LjEsMTMwLjcsMTI0LjEsMTMyLDEyMy44eiBNMTI2LDEyMy4yVjEwNGgtNHYxNkMxMjMsMTIxLjQsMTI0LjQsMTIyLjUsMTI2LDEyMy4yeiBNMTIwLDExNHYtNmgtNHY2SDEyMHogTTExNCwxMTR2LThoMwoJCQl2LTRoLTR2MTJIMTE0eiBNMTQxLDEwMnYtNGgtNHY0aDN2NGgxVjEwMnogTTEzNSwxMDJ2LThoLTR2NGgzdjRIMTM1eiBNMTI5LDk4di00aC00djhoMXYtNEgxMjl6IE0xMjMsMTAydi00aC00djhoMXYtNEgxMjN6CgkJCSBNMTMwLDEyNmM1LjksMCwxMC45LTQuMiwxMS44LTEwaDcuOWwtMy41LDMwaC0zMi40bC0zLjUtMzBoNy45QzExOS4xLDEyMS44LDEyNC4xLDEyNiwxMzAsMTI2eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yMTIsODZ2MmgtNHYtMkgyMTJ6IE0yMTYsODZoLTJ2MmgyVjg2eiBNMTk2LDg2TDE5Niw4NmMtMi43LDAuNy00LjUsMy4zLTMuOSw2YzAuNCwxLjgsMS42LDMuMiwzLjMsMy44CgkJCWwwLjEsMC4ybDEuMSw0LjVjMC4yLDAuOSwxLDEuNSwxLjksMS41bDAsMGw3LDI0LjZjMC4yLDAuOSwxLDEuNCwxLjksMS40aDVjMC45LDAsMS43LTAuNiwxLjktMS40bDctMjQuNmMwLjksMCwxLjctMC42LDEuOS0xLjUKCQkJbDEuMS00LjVsMC4xLTAuMmMyLjYtMC45LDQuMS0zLjcsMy4yLTYuM2MtMC42LTEuNy0yLTMtMy44LTMuM1Y4NmMwLTcuNy02LjMtMTQtMTQtMTRTMTk2LDc4LjMsMTk2LDg2eiBNMjAwLDg2aDZ2MmgtOQoJCQljLTEuNywwLTMsMS4zLTMsM3MxLjMsMywzLDNoMjZjMS43LDAsMy0xLjMsMy0zcy0xLjMtMy0zLTNoLTN2LTJoMmMwLTYuNi01LjQtMTItMTItMTJzLTEyLDUuNC0xMiwxMkgyMDB6IE0xOTguNiwxMDBsLTEtNGgyNC45CgkJCWwtMSw0SDE5OC42eiBNMjA3LjUsMTI2bC02LjktMjRoMTguN2wtNi45LDI0SDIwNy41eiBNMTUwLDI0MmMxMi4yLDAsMjItOS44LDIyLTIycy05LjgtMjItMjItMjJzLTIyLDkuOC0yMiwyMgoJCQlTMTM3LjgsMjQyLDE1MCwyNDJ6IE0xNzQsMjIwYzAsMTMuMy0xMC43LDI0LTI0LDI0cy0yNC0xMC43LTI0LTI0bDAsMGMwLTEzLjMsMTAuNy0yNCwyNC0yNFMxNzQsMjA2LjcsMTc0LDIyMHogTTE0NS42LDIzNy43CgkJCWwyLTAuOWMxLjUtMC42LDMuMi0wLjYsNC43LDBsMiwwLjljMC45LDAuNCwyLDAsMi41LTAuOGwxLjEtMS45YzAuOC0xLjQsMi4yLTIuNCwzLjgtMi44bDIuMS0wLjVjMS0wLjIsMS42LTEuMSwxLjUtMi4xbC0wLjItMi4yCgkJCWMtMC4xLTEuNiwwLjQtMy4yLDEuNC00LjVsMS40LTEuN2MwLjctMC44LDAuNy0xLjksMC0yLjZsLTEuNC0xLjdjLTEuMS0xLjItMS42LTIuOC0xLjQtNC41bDAuMi0yLjJjMC4xLTEtMC42LTEuOS0xLjYtMi4xCgkJCWwtMi4xLTAuNWMtMS42LTAuNC0zLTEuNC0zLjgtMi44bC0xLjEtMS45Yy0wLjUtMC45LTEuNi0xLjItMi41LTAuOGwtMiwwLjljLTEuNSwwLjYtMy4yLDAuNi00LjcsMGwtMi0wLjljLTAuOS0wLjQtMiwwLTIuNSwwLjgKCQkJbC0xLDIuMWMtMC44LDEuNC0yLjIsMi40LTMuOCwyLjhsLTIuMSwwLjVjLTEsMC4yLTEuNiwxLjEtMS41LDIuMWwwLjIsMi4yYzAuMSwxLjYtMC40LDMuMi0xLjQsNC41bC0xLjQsMS43CgkJCWMtMC43LDAuOC0wLjcsMS45LDAsMi42bDEuNCwxLjdjMS4xLDEuMiwxLjYsMi44LDEuNCw0LjVsLTAuMiwyLjJjLTAuMSwxLDAuNiwxLjksMS42LDIuMWwyLjEsMC41YzEuNiwwLjQsMywxLjQsMy44LDIuOGwxLjEsMS45CgkJCUMxNDMuNiwyMzcuOCwxNDQuNywyMzguMSwxNDUuNiwyMzcuN0wxNDUuNiwyMzcuN3ogTTE0OC40LDIzOC43YzEtMC40LDIuMS0wLjQsMy4xLDBsMiwwLjljMS44LDAuOCw0LDAuMSw1LTEuNmwxLjEtMS45CgkJCWMwLjYtMC45LDEuNS0xLjYsMi41LTEuOGwyLjEtMC41YzEuOS0wLjQsMy4zLTIuMywzLjEtNC4ybC0wLjItMi4yYy0wLjEtMS4xLDAuMy0yLjIsMS0zbDEuNC0xLjdjMS4zLTEuNSwxLjMtMy43LDAtNS4ybC0xLjQtMS43CgkJCWMtMC43LTAuOC0xLjEtMS45LTEtM2wwLjItMi4yYzAuMi0yLTEuMS0zLjgtMy4xLTQuMmwtMi4xLTAuNWMtMS4xLTAuMi0yLTAuOS0yLjUtMS44bC0xLjEtMS45Yy0xLTEuNy0zLjItMi40LTUtMS42bC0yLDAuOQoJCQljLTEsMC40LTIuMSwwLjQtMy4xLDBsLTItMC45Yy0xLjgtMC44LTQtMC4xLTUsMS42bC0xLjEsMS45Yy0wLjYsMC45LTEuNSwxLjYtMi41LDEuOGwtMi4xLDAuNWMtMS45LDAuNC0zLjMsMi4zLTMuMSw0LjJsMC4yLDIuMgoJCQljMC4xLDEuMS0wLjMsMi4yLTEsM2wtMS40LDEuN2MtMS4zLDEuNS0xLjMsMy43LDAsNS4ybDEuNCwxLjdjMC43LDAuOCwxLjEsMS45LDEsM2wtMC4yLDIuMmMtMC4yLDIsMS4xLDMuOCwzLjEsNC4ybDIuMSwwLjUKCQkJYzEuMSwwLjIsMiwwLjksMi41LDEuOGwxLjEsMS45YzEsMS43LDMuMiwyLjQsNSwxLjZMMTQ4LjQsMjM4Ljd6IE0xNTIsMjA3YzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMQoJCQlTMTUyLDIwNy42LDE1MiwyMDd6IE0xNTgsMjA5YzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMVMxNTgsMjA5LjYsMTU4LDIwOXogTTE0NywyMTBjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMQoJCQlzLTAuNCwxLTEsMVMxNDcsMjEwLjYsMTQ3LDIxMHogTTE0MSwyMTBjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMXMtMC40LDEtMSwxUzE0MSwyMTAuNiwxNDEsMjEweiBNMTQ0LDIwNWMwLTAuNiwwLjQtMSwxLTEKCQkJczEsMC40LDEsMXMtMC40LDEtMSwxUzE0NCwyMDUuNiwxNDQsMjA1eiBNMTM2LDIxM2MwLTAuNiwwLjQtMSwxLTFzMSwwLjQsMSwxcy0wLjQsMS0xLDFTMTM2LDIxMy42LDEzNiwyMTN6IE0xMzksMjE5CgkJCWMwLTAuNiwwLjQtMSwxLTFzMSwwLjQsMSwxcy0wLjQsMS0xLDFTMTM5LDIxOS42LDEzOSwyMTl6IE0xMzksMjI1YzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMVMxMzksMjI1LjYsMTM5LDIyNXoKCQkJIE0xNDMsMjMyYzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMVMxNDMsMjMyLjYsMTQzLDIzMnogTTE0OCwyMzBjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMXMtMC40LDEtMSwxCgkJCVMxNDgsMjMwLjYsMTQ4LDIzMHogTTE1MywyMzRjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMXMtMC40LDEtMSwxUzE1MywyMzQuNiwxNTMsMjM0eiBNMTU3LDIyOGMwLTAuNiwwLjQtMSwxLTFzMSwwLjQsMSwxCgkJCXMtMC40LDEtMSwxUzE1NywyMjguNiwxNTcsMjI4eiBNMTYzLDIyNGMwLTAuNiwwLjQtMSwxLTFzMSwwLjQsMSwxcy0wLjQsMS0xLDFTMTYzLDIyNC42LDE2MywyMjR6IE0xNTksMjIxYzAtMC42LDAuNC0xLDEtMQoJCQlzMSwwLjQsMSwxcy0wLjQsMS0xLDFTMTU5LDIyMS42LDE1OSwyMjF6IE0xNjMsMjE4YzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMVMxNjMsMjE4LjYsMTYzLDIxOHogTTE1OCwyMTQKCQkJYzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMVMxNTgsMjE0LjYsMTU4LDIxNHogTTEzNCwyMjBjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMXMtMC40LDEtMSwxUzEzNCwyMjAuNiwxMzQsMjIwegoJCQkgTTE1MCwyMjVjMi44LDAsNS0yLjIsNS01cy0yLjItNS01LTVzLTUsMi4yLTUsNVMxNDcuMiwyMjUsMTUwLDIyNXogTTE1NywyMjBjMCwzLjktMy4xLDctNyw3cy03LTMuMS03LTdzMy4xLTcsNy03CgkJCVMxNTcsMjE2LjEsMTU3LDIyMHogTTI0MywxOTFjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMmMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgyNDN6IE0yNjIsMjAwYzAtMC42LDAuNC0xLDEtMWgyCgkJCWMwLjYsMCwxLDAuNCwxLDFzLTAuNCwxLTEsMWgtMkMyNjIuNCwyMDEsMjYyLDIwMC42LDI2MiwyMDB6IE0yNDgsMjA1Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDJjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTEKCQkJSDI0OHogTTIyMywyMDZjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMmMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgyMjN6IE0yMjgsMjEwYy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDIKCQkJYzAuNiwwLDEtMC40LDEtMXMtMC40LTEtMS0xSDIyOHogTTIzNywyMTBjMC0wLjYsMC40LTEsMS0xaDJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFoLTJDMjM3LjQsMjExLDIzNywyMTAuNiwyMzcsMjEwegoJCQkgTTI1MiwyMTFjMC0wLjYsMC40LTEsMS0xaDJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFoLTJDMjUyLjQsMjEyLDI1MiwyMTEuNiwyNTIsMjExeiBNMjY0LDIwOWMtMC42LDAtMSwwLjQtMSwxczAuNCwxLDEsMWgyCgkJCWMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgyNjR6IE0yNTMsMTk1YzAtMC42LDAuNC0xLDEtMWgyYzAuNiwwLDEsMC40LDEsMXMtMC40LDEtMSwxaC0yQzI1My40LDE5NiwyNTMsMTk1LjYsMjUzLDE5NXoKCQkJIE0yMzQsMTk1Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDJjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFIMjM0eiBNMjQwLDIwMGMwLTAuNiwwLjQtMSwxLTFoMmMwLjYsMCwxLDAuNCwxLDFzLTAuNCwxLTEsMQoJCQloLTJDMjQwLjQsMjAxLDI0MCwyMDAuNiwyNDAsMjAweiBNMjE1LDIxNWMwLTAuNSwwLTAuOSwwLTEuNGMtMi41LTEuMS0zLjctNC0yLjYtNi42YzAuMi0wLjUsMC41LTEsMC45LTEuNGMtMC45LTIsMC00LjIsMS45LTUuMgoJCQljLTAuOC0yLjYsMC43LTUuNCwzLjQtNi4ybDAsMGMwLjQtMC41LDAuOS0wLjksMS41LTEuMWMwLjUtMi43LDMuMS00LjUsNS44LTQuMWMwLjcsMC4xLDEuNCwwLjQsMiwwLjhjNS4zLTMuOCwxMS42LTUuOSwxOC4yLTUuOQoJCQljNi44LDAsMTMuMSwyLjIsMTguMiw1LjljMi4zLTEuNiw1LjQtMSw3LDEuM2MwLjQsMC42LDAuNywxLjMsMC44LDJjMC42LDAuMiwxLjEsMC42LDEuNSwxLjFjMi43LDAuOCw0LjIsMy41LDMuNCw2LjJsMCwwCgkJCWMxLjksMSwyLjcsMy4yLDEuOSw1LjJjMS45LDIsMS44LDUuMi0wLjIsN2MtMC40LDAuNC0wLjksMC43LTEuNSwxYzAsMC41LDAsMC45LDAsMS40djFoLTYydi0xSDIxNXogTTIxNS44LDIwNy44CgkJCWMtMC4zLDEuMi0wLjUsMi40LTAuNiwzLjZjLTEuMy0xLTEuNi0yLjktMC42LTQuMmwwLDBDMjE1LDIwNy41LDIxNS40LDIwNy43LDIxNS44LDIwNy44TDIxNS44LDIwNy44eiBNMjE3LjMsMjAzLjIKCQkJYy0wLjQsMC45LTAuNywxLjgtMSwyLjdjLTEtMC40LTEuNi0xLjUtMS4zLTIuNWMwLjItMC41LDAuNi0wLjksMS4xLTEuMkMyMTYuNSwyMDIuNiwyMTYuOSwyMDIuOSwyMTcuMywyMDMuMkwyMTcuMywyMDMuMnoKCQkJIE0yMTkuNiwxOTguN2MtMC41LDAuOS0xLDEuOC0xLjUsMi43Yy0xLjMtMS0xLjUtMi45LTAuNS00LjJjMC4xLTAuMiwwLjMtMC4zLDAuNC0wLjVDMjE4LjMsMTk3LjYsMjE4LjksMTk4LjMsMjE5LjYsMTk4LjcKCQkJTDIxOS42LDE5OC43eiBNMjIwLjgsMTk3YzAuNC0wLjUsMC43LTEsMS4xLTEuNWMtMC4zLTAuNS0wLjktMC43LTEuNC0wLjRzLTAuNywwLjktMC40LDEuNEMyMjAuMywxOTYuNywyMjAuNSwxOTYuOSwyMjAuOCwxOTcKCQkJTDIyMC44LDE5N3ogTTIyNi4xLDE5MS4yYy0xLDAuOS0yLDEuOC0yLjksMi44Yy0wLjMtMC4zLTAuNy0wLjYtMS4xLTAuOGMwLjQtMS42LDIuMS0yLjUsMy43LTIuMQoJCQlDMjI1LjksMTkxLjEsMjI2LDE5MS4yLDIyNi4xLDE5MS4yTDIyNi4xLDE5MS4yeiBNMjY4LjgsMTk0Yy0wLjktMS0xLjktMS45LTIuOS0yLjhjMS41LTAuNiwzLjMsMC4xLDMuOSwxLjcKCQkJYzAsMC4xLDAuMSwwLjIsMC4xLDAuM0MyNjkuNSwxOTMuNCwyNjkuMSwxOTMuNiwyNjguOCwxOTRMMjY4LjgsMTk0eiBNMjcwLjEsMTk1LjVjMC40LDAuNSwwLjgsMSwxLjEsMS40CgkJCWMwLjUtMC4xLDAuOS0wLjcsMC44LTEuMnMtMC43LTAuOS0xLjItMC44QzI3MC41LDE5NS4xLDI3MC4zLDE5NS4zLDI3MC4xLDE5NS41eiBNMjczLjksMjAxLjRjLTAuNS0wLjktMS0xLjgtMS41LTIuNwoJCQljMC44LTAuNCwxLjQtMS4xLDEuNi0yYzEuMywxLjEsMS40LDMsMC40LDQuMkMyNzQuMiwyMDEuMSwyNzQsMjAxLjIsMjczLjksMjAxLjR6IE0yNzUuNiwyMDUuOWMtMC4zLTAuOS0wLjYtMS44LTEtMi43CgkJCWMwLjQtMC4zLDAuOC0wLjYsMS4yLTFjMSwwLjUsMS40LDEuNywxLDIuN0MyNzYuNiwyMDUuMywyNzYuMiwyMDUuNywyNzUuNiwyMDUuOXogTTI3Ni44LDIxMS40Yy0wLjEtMS4yLTAuNC0yLjQtMC42LTMuNgoJCQljMC41LTAuMSwwLjktMC40LDEuMi0wLjZDMjc4LjQsMjA4LjUsMjc4LjEsMjEwLjQsMjc2LjgsMjExLjRMMjc2LjgsMjExLjRMMjc2LjgsMjExLjR6IE0yNzUsMjE0Yy0wLjUtMTYtMTMuOS0yOC42LTI5LjktMjguMQoJCQljLTE1LjMsMC41LTI3LjYsMTIuOC0yOC4xLDI4LjFIMjc1TDI3NSwyMTR6IE03Mi4zLDE5OC4xYy0wLjItMC4zLTAuMy0wLjctMC4zLTEuMXYtMTJoLTJ2MTJjMCwyLjIsMS44LDQsNCw0CgkJCWMxLjIsMCwyLjMtMC41LDMuMS0xLjRjMC42LTAuNywwLjktMS42LDAuOS0yLjV2LTEyaC0ydjEyYzAsMS4xLTAuOSwyLTIsMmwwLDBDNzMuMywxOTksNzIuNywxOTguNyw3Mi4zLDE5OC4xeiBNNzUsMTc2CgkJCWMwLjQsMCwwLjcsMCwxLjEtMC4xYzAuNSwyLjIsMi42LDMuNSw0LjgsM2MwLjUtMC4xLDEtMC4zLDEuNC0wLjZjMS4xLDIuMSwxLjcsNC40LDEuNyw2Ljd2MjRjMCwzLjMtMi43LDYtNiw2aC0zdjkKCQkJYzAsMi44LTIuMiw1LTUsNXMtNS0yLjItNS01di05aC0zYy0zLjMsMC02LTIuNy02LTZ2LTI0YzAtNy43LDYuMy0xNCwxNC0xNEM3MCwxNzMuOCw3Mi4yLDE3Niw3NSwxNzZ6IE01OCwxOTF2MTIKCQkJYzAsMC44LDAuNSwxLjUsMS4yLDEuOGMwLjksMC40LDEuOSwwLjEsMi40LTAuN2MwLjItMC4zLDAuMy0wLjcsMC4zLTEuMXYtMTJoMnYxMmMwLDIuMi0xLjcsNC0zLjksNGMtMC41LDAtMS0wLjEtMS40LTAuMgoJCQljLTAuMi0wLjEtMC40LTAuMi0wLjctMC4zdjIuNWMwLDIuMiwxLjgsNCw0LDRoMTZjMi4yLDAsNC0xLjgsNC00di0yNGMwLTEuNS0wLjItMi45LTAuNy00LjJjLTAuNCwwLjEtMC45LDAuMi0xLjMsMC4yCgkJCWMtMi4xLDAtNC4xLTEuMS01LjItM2MtMy0wLjEtNS42LTItNi41LTQuOUM2Mi40LDE3NCw1OCwxNzksNTgsMTg1VjE5MXogTTY3LDIxNXY5YzAsMS43LDEuMywzLDMsM3MzLTEuMywzLTN2LTlINjd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTS0xNywxOTFjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMmMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgtMTd6IE0yLDIwMGMwLTAuNiwwLjQtMSwxLTFoMgoJCQljMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFIM0MyLjQsMjAxLDIsMjAwLjYsMiwyMDB6IE0tMTIsMjA1Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDJjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFILTEyegoJCQkgTS0zNywyMDZjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMmMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgtMzd6IE0tMzIsMjEwYy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDJjMC42LDAsMS0wLjQsMS0xCgkJCXMtMC40LTEtMS0xSC0zMnogTS0yMywyMTBjMC0wLjYsMC40LTEsMS0xaDJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFoLTJDLTIyLjYsMjExLTIzLDIxMC42LTIzLDIxMHogTS04LDIxMWMwLTAuNiwwLjQtMSwxLTEKCQkJaDJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFoLTJDLTcuNiwyMTItOCwyMTEuNi04LDIxMXogTTQsMjA5Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDJjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFINHoKCQkJIE0tNywxOTVjMC0wLjYsMC40LTEsMS0xaDJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFoLTJDLTYuNiwxOTYtNywxOTUuNi03LDE5NXogTS0yNiwxOTVjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMgoJCQljMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFILTI2eiBNLTIwLDIwMGMwLTAuNiwwLjQtMSwxLTFoMmMwLjYsMCwxLDAuNCwxLDFzLTAuNCwxLTEsMWgtMkMtMTkuNiwyMDEtMjAsMjAwLjYtMjAsMjAweiBNLTQ1LDIxNQoJCQljMC0wLjUsMC0wLjksMC0xLjRjLTIuNS0xLjEtMy43LTQtMi42LTYuNmMwLjItMC41LDAuNS0xLDAuOS0xLjRjLTAuOS0yLDAtNC4yLDEuOS01LjJjLTAuOC0yLjYsMC43LTUuNCwzLjQtNi4ybDAsMAoJCQljMC40LTAuNSwwLjktMC45LDEuNS0xLjFjMC41LTIuNywzLjEtNC41LDUuOC00LjFjMC43LDAuMSwxLjQsMC40LDIsMC44YzUuMy0zLjgsMTEuNi01LjksMTguMi01LjljNi44LDAsMTMuMSwyLjIsMTguMiw1LjkKCQkJYzIuMy0xLjYsNS40LTEsNywxLjNjMC40LDAuNiwwLjcsMS4zLDAuOCwyYzAuNiwwLjIsMS4xLDAuNiwxLjUsMS4xYzIuNywwLjgsNC4yLDMuNSwzLjQsNi4ybDAsMGMxLjksMSwyLjcsMy4yLDEuOSw1LjIKCQkJYzEuOSwyLDEuOCw1LjItMC4yLDdjLTAuNCwwLjQtMC45LDAuNy0xLjUsMWMwLDAuNSwwLDAuOSwwLDEuNHYxaC02MnYtMUgtNDV6IE0tNDQuMiwyMDcuOGMtMC4zLDEuMi0wLjUsMi40LTAuNiwzLjYKCQkJYy0xLjMtMS0xLjYtMi45LTAuNi00LjJsMCwwQy00NSwyMDcuNS00NC42LDIwNy43LTQ0LjIsMjA3LjhMLTQ0LjIsMjA3Ljh6IE0tNDIuNywyMDMuMmMtMC40LDAuOS0wLjcsMS44LTEsMi43CgkJCWMtMS0wLjQtMS42LTEuNS0xLjMtMi41YzAuMi0wLjUsMC42LTAuOSwxLjEtMS4yQy00My41LDIwMi42LTQzLjEsMjAyLjktNDIuNywyMDMuMkwtNDIuNywyMDMuMnogTS00MC40LDE5OC43CgkJCWMtMC41LDAuOS0xLDEuOC0xLjUsMi43Yy0xLjMtMS0xLjUtMi45LTAuNS00LjJjMC4xLTAuMiwwLjMtMC4zLDAuNC0wLjVDLTQxLjcsMTk3LjYtNDEuMSwxOTguMy00MC40LDE5OC43eiBNLTM5LjIsMTk3CgkJCWMwLjMtMC41LDAuNy0xLDEuMS0xLjVjLTAuMy0wLjUtMC45LTAuNy0xLjQtMC40cy0wLjcsMC45LTAuNCwxLjRDLTM5LjcsMTk2LjctMzkuNSwxOTYuOS0zOS4yLDE5N0wtMzkuMiwxOTd6IE0tMzMuOSwxOTEuMgoJCQljLTEsMC45LTIsMS44LTIuOSwyLjhjLTAuMy0wLjMtMC43LTAuNi0xLjEtMC44YzAuNC0xLjYsMi4xLTIuNSwzLjctMi4xQy0zNC4xLDE5MS4xLTM0LDE5MS4yLTMzLjksMTkxLjJMLTMzLjksMTkxLjJ6IE04LjgsMTk0CgkJCWMtMC45LTEtMS45LTEuOS0yLjktMi44YzEuNS0wLjYsMy4zLDAuMSwzLjksMS43YzAsMC4xLDAuMSwwLjIsMC4xLDAuM0M5LjUsMTkzLjQsOS4xLDE5My42LDguOCwxOTRMOC44LDE5NHogTTEwLjEsMTk1LjUKCQkJYzAuNCwwLjUsMC44LDEsMS4xLDEuNGMwLjUtMC4xLDAuOS0wLjcsMC44LTEuMmMtMC4xLTAuNS0wLjctMC45LTEuMi0wLjhDMTAuNSwxOTUuMSwxMC4zLDE5NS4zLDEwLjEsMTk1LjV6IE0xMy45LDIwMS40CgkJCWMtMC41LTAuOS0wLjktMS44LTEuNS0yLjdjMC44LTAuNCwxLjQtMS4xLDEuNi0yYzEuMywxLjEsMS40LDMsMC40LDQuMkMxNC4yLDIwMS4xLDE0LDIwMS4yLDEzLjksMjAxLjR6IE0xNS43LDIwNS45CgkJCWMtMC4zLTAuOS0wLjYtMS44LTEtMi43YzAuNC0wLjMsMC44LTAuNiwxLjItMWMxLDAuNSwxLjQsMS43LDEsMi43QzE2LjYsMjA1LjMsMTYuMiwyMDUuNywxNS43LDIwNS45eiBNMTYuOCwyMTEuNAoJCQljLTAuMS0xLjItMC40LTIuNC0wLjYtMy42YzAuNS0wLjEsMC45LTAuNCwxLjItMC42QzE4LjQsMjA4LjUsMTguMSwyMTAuNCwxNi44LDIxMS40TDE2LjgsMjExLjRMMTYuOCwyMTEuNHogTTE1LDIxNAoJCQljLTAuNS0xNi0xMy45LTI4LjYtMjkuOS0yOC4xYy0xNS4zLDAuNS0yNy42LDEyLjgtMjguMSwyOC4xSDE1TDE1LDIxNHoiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K";
+$chat-bg-dark: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAyNjAgMjYwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyNjAgMjYwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6IzE3MUEyNDt9Cjwvc3R5bGU+CjxnPgoJPGcgaWQ9ImktbGlrZS1mb29kIj4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMjQuNCwxNmMwLjIsMC42LDAuNCwxLjMsMC41LDJoLTMuN2wxLjIsMi4zbDAuNSwwLjlsLTAuMiwwLjFWMjhjMi4yLDEuNywyLjcsNC44LDEsNwoJCQljLTAuOCwxLTEuOSwxLjctMy4yLDEuOVYzN2MtMC45LDMuNS00LjEsNi03LjgsNmgtMjBjLTMuNiwwLTYuOC0yLjUtNy43LTZ2LTAuMWMtMi43LTAuNC00LjYtMy00LjItNS43YzAuMi0xLjMsMC45LTIuNSwxLjktMy4yCgkJCXYtNi44bC0wLjgtMS42bC0wLjQtMC45bDAuOS0wLjRMLTE3LDE4aC0zQy0xNy4yLDUuNi00LjktMi4yLDcuNSwwLjZDMTUuNCwyLjMsMjEuOSw4LjIsMjQuNCwxNnogTS0xMi40LDE4Yy0wLjIsMC0wLjMsMC0wLjQsMC4xCgkJCWwtMy4xLDEuNmwwLjksMS44bDEuMy0wLjdjMC44LTAuNCwxLjgtMC40LDIuNywwbDIuMiwxLjFjMC4zLDAuMSwwLjYsMC4xLDAuOSwwbDIuMi0xLjFjMC44LTAuNCwxLjgtMC40LDIuNywwbDIuMiwxLjEKCQkJYzAuMywwLjEsMC42LDAuMSwwLjksMGwyLjItMS4xYzAuOC0wLjQsMS44LTAuNCwyLjcsMGwyLjIsMS4xQzcuNCwyMiw3LjcsMjIsOCwyMS45bDIuOS0xLjNjMC44LTAuMywxLjctMC4zLDIuNCwwbDIuOSwxLjMKCQkJYzAuMywwLjEsMC42LDAuMSwwLjksMGwzLjEtMS41bC0wLjktMS44bC0xLjQsMC43Yy0wLjgsMC40LTEuNywwLjQtMi42LDAuMWwtMi44LTEuMkMxMi4zLDE4LDEyLjIsMTgsMTIuMSwxOGwwLDAKCQkJYy0wLjEsMC0wLjMsMC0wLjQsMC4xbC0yLjgsMS4yYy0wLjgsMC40LTEuOCwwLjMtMi42LTAuMUw0LDE4LjFDMy45LDE4LDMuNywxOCwzLjYsMThsMCwwYy0wLjIsMC0wLjMsMC0wLjQsMC4xTDEsMTkuMgoJCQljLTAuOCwwLjQtMS44LDAuNC0yLjcsMEwtNCwxOC4xQy00LjEsMTgtNC4zLDE4LTQuNCwxOGwwLDBjLTAuMiwwLTAuMywwLTAuNCwwLjFMLTcsMTkuMmMtMC44LDAuNC0xLjgsMC40LTIuNywwbC0yLjItMS4xCgkJCUMtMTIuMSwxOC0xMi4zLDE4LTEyLjQsMThMLTEyLjQsMThMLTEyLjQsMTh6IE0tMTIuNCwxNmgtNC45Qy0xMy41LDUuMS0xLjUtMC43LDkuNSwzLjJjNiwyLjEsMTAuNyw2LjgsMTIuOCwxMi44aC0yLjFsLTAuMS0wLjEKCQkJTDE5LjksMTZILTEyLjRMLTEyLjQsMTZ6IE0xNy45LDIzLjdsMS40LTAuN2gxLjN2MmgtMzZ2LTEuMWwwLjMtMC4ybDEuNC0wLjdoMi42bDEuNCwwLjdjMC44LDAuNCwxLjgsMC40LDIuNywwbDEuNC0wLjdILTMKCQkJbDEuNCwwLjdjMC44LDAuNCwxLjgsMC40LDIuNywwTDIuMywyM2gyLjZsMS40LDAuN2MwLjcsMC40LDEuNywwLjQsMi41LDBsMS43LTAuN2gzLjJsMS43LDAuN0MxNi4yLDI0LjEsMTcuMSwyNC4xLDE3LjksMjMuN3oKCQkJIE0tMTMuOCwyN2wxNi40LDQuOUwxOC45LDI3SC0xMy44eiBNLTE0LjQsMjloMC4zbDE2LjcsNWwxNi43LTVoMC4zYzEuNywwLDMsMS4zLDMsM3MtMS4zLDMtMywzaC0zNGMtMS43LDAtMy0xLjMtMy0zCgkJCUMtMTcuNCwzMC4zLTE2LjEsMjktMTQuNCwyOXogTS0xMy4xLDM3YzAuOCwyLjQsMy4xLDQsNS43LDRoMjBjMi41LDAsNC44LTEuNiw1LjctNEMxOC4yLDM3LTEzLjEsMzctMTMuMSwzN3oiLz4KCQk8cGF0aCBpZD0icGF0aDZfZmlsbC1jb3B5IiBjbGFzcz0ic3QwIiBkPSJNMjg0LjQsMTZjMC4yLDAuNiwwLjQsMS4zLDAuNSwyaC0zLjdsMS4yLDIuM2wwLjUsMC45bC0wLjIsMC4xVjI4YzIuMiwxLjcsMi43LDQuOCwxLDcKCQkJYy0wLjgsMS0xLjksMS43LTMuMiwxLjlWMzdjLTAuOSwzLjUtNC4xLDYtNy44LDZoLTIwYy0zLjYsMC02LjgtMi41LTcuNy02di0wLjFjLTIuNy0wLjQtNC42LTMtNC4yLTUuN2MwLjItMS4zLDAuOS0yLjUsMS45LTMuMgoJCQl2LTYuOGwtMC44LTEuNmwtMC40LTAuOWwwLjktMC40TDI0MywxOGgtM2MyLjgtMTIuNCwxNS4xLTIwLjIsMjcuNS0xNy40QzI3NS40LDIuMywyODEuOSw4LjIsMjg0LjQsMTZ6IE0yNDcuNSwxOAoJCQljLTAuMiwwLTAuMywwLTAuNCwwLjFsLTMuMSwxLjZsMC45LDEuOGwxLjMtMC43YzAuOC0wLjQsMS44LTAuNCwyLjcsMGwyLjIsMS4xYzAuMywwLjEsMC42LDAuMSwwLjksMGwyLjItMS4xCgkJCWMwLjgtMC40LDEuOC0wLjQsMi43LDBsMi4yLDEuMWMwLjMsMC4xLDAuNiwwLjEsMC45LDBsMi4yLTEuMWMwLjgtMC40LDEuOC0wLjQsMi43LDBsMi4yLDEuMWMwLjMsMC4xLDAuNiwwLjEsMC45LDBsMi45LTEuMwoJCQljMC44LTAuMywxLjctMC4zLDIuNCwwbDIuOSwxLjNjMC4zLDAuMSwwLjYsMC4xLDAuOSwwbDMuMS0xLjVsLTAuOS0xLjhsLTEuNCwwLjdjLTAuOCwwLjQtMS43LDAuNC0yLjYsMC4xbC0yLjgtMS4yCgkJCWMtMC4xLTAuMS0wLjMtMC4xLTAuNC0wLjFsMCwwYy0wLjEsMC0wLjMsMC0wLjQsMC4xbC0yLjgsMS4yYy0wLjgsMC40LTEuOCwwLjMtMi42LTAuMWwtMi4zLTEuMWMtMC4xLTAuMS0wLjMtMC4xLTAuNS0wLjFsMCwwCgkJCWMtMC4yLDAtMC4zLDAtMC40LDAuMWwtMi4yLDEuMWMtMC44LDAuNC0xLjgsMC40LTIuNywwbC0yLjItMS4xYy0wLjEtMC4xLTAuMy0wLjEtMC40LTAuMWwwLDBjLTAuMiwwLTAuMywwLTAuNCwwLjFsLTIuMiwxLjEKCQkJYy0wLjgsMC40LTEuOCwwLjQtMi43LDBsLTIuMi0xLjFDMjQ3LjksMTgsMjQ3LjcsMTgsMjQ3LjUsMThMMjQ3LjUsMThMMjQ3LjUsMTh6IE0yNDcuNSwxNmgtNC45YzMuOS0xMC45LDE1LjktMTYuNywyNi44LTEyLjgKCQkJYzYsMi4xLDEwLjcsNi44LDEyLjgsMTIuOGgtMi4xbC0wLjEtMC4xbC0wLjMsMC4xSDI0Ny41TDI0Ny41LDE2eiBNMjc3LjksMjMuN2wxLjQtMC43aDEuM3YyaC0zNnYtMS4xbDAuMy0wLjJsMS40LTAuN2gyLjYKCQkJbDEuNCwwLjdjMC44LDAuNCwxLjgsMC40LDIuNywwbDEuNC0wLjdoMi42bDEuNCwwLjdjMC44LDAuNCwxLjgsMC40LDIuNywwbDEuNC0wLjdoMi42bDEuNCwwLjdjMC44LDAuNCwxLjcsMC40LDIuNiwwLjFsMS43LTAuNwoJCQloMy4ybDEuNywwLjdDMjc2LjIsMjQuMSwyNzcuMSwyNC4xLDI3Ny45LDIzLjdMMjc3LjksMjMuN3ogTTI0Ni4yLDI3bDE2LjQsNC45TDI3OSwyN0gyNDYuMnogTTI0NS41LDI5aDAuM2wxNi43LDVsMTYuNy01aDAuMwoJCQljMS43LDAsMywxLjMsMywzcy0xLjMsMy0zLDNoLTM0Yy0xLjcsMC0zLTEuMy0zLTNTMjQzLjksMjksMjQ1LjUsMjl6IE0yNDYuOSwzN2MwLjgsMi40LDMuMSw0LDUuNiw0aDIwYzIuNSwwLDQuOC0xLjYsNS43LTQKCQkJSDI0Ni45eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNTkuNSwyMWMtMS4zLTMuNi00LjctNi04LjUtNmgtNDJjLTMuOCwwLTcuMiwyLjQtOC41LDZjLTMuMywwLjMtNS44LDMuMi01LjUsNi41YzAuMiwyLjksMi42LDUuMiw1LjUsNS41CgkJCWMtMS43LDQuNywwLjgsOS44LDUuNCwxMS41YzEsMC4zLDIsMC41LDMsMC41aDQyYzUsMCw5LTQsOS05YzAtMS0wLjItMi4xLTAuNS0zYzMuMy0wLjMsNS44LTMuMiw1LjUtNi41CgkJCUMxNjQuNywyMy42LDE2Mi40LDIxLjMsMTU5LjUsMjF6IE0xNTEsMTdoLTQyYy0yLjcsMC01LjIsMS42LTYuMyw0aDU0LjdDMTU2LjIsMTguNiwxNTMuNywxNywxNTEsMTd6IE0xNDEuNyw0MwoJCQljMi4xLTEuNywzLjMtNC4zLDMuMy03aC0yYzAsMy45LTMuMSw3LTcsN2gtNC4zYzIuMS0xLjcsMy4zLTQuMywzLjMtN2gtMmMwLDMuOS0zLjEsNy03LDdoLTQuM2MyLjEtMS43LDMuMy00LjMsMy4zLTdoLTIKCQkJYzAsMy45LTMuMSw3LTcsN2gtN2MtMy45LDAtNy0zLjEtNy03czMuMS03LDctN2g0MmMzLjksMCw3LDMuMSw3LDdzLTMuMSw3LTcsN0gxNDEuN3ogTTEwOSwyN2MtMywwLTUuOCwxLjUtNy41LDRIMTAxCgkJCWMtMi4yLDAtNC0xLjgtNC00czEuOC00LDQtNGg1OGMyLjIsMCw0LDEuOCw0LDRzLTEuOCw0LTQsNGgtMC41Yy0xLjctMi41LTQuNS00LTcuNS00SDEwOXoiLz4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzksMTE1YzQuNCwwLDgtMy42LDgtOHMtMy42LTgtOC04cy04LDMuNi04LDhTMzQuNiwxMTUsMzksMTE1eiBNNDUsMTA3YzAsMy4zLTIuNyw2LTYsNnMtNi0yLjctNi02CgkJCXMyLjctNiw2LTZTNDUsMTAzLjcsNDUsMTA3eiBNNDIsNzh2LTJoOHYtNkg0MGMtMi4yLDAtNCwxLjgtNCw0djEwSDIybC0xLjMsNEwyMCw5MGgyLjJsMy44LDQwaDI2bDMuOC00MEg1OGwtMC43LTJMNTYsODRINDJWNzh6CgkJCSBNMzgsNzR2MTBoMlY3NGg4di0yaC04QzM4LjksNzIsMzgsNzIuOSwzOCw3NHogTTQwLDg2aDE0LjZsMC43LDJIMjIuOGwwLjctMkg0MHogTTUzLjgsOTBIMjQuMmwzLjYsMzhoMjIuNEw1My44LDkweiIvPgoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMjksOTJoLTZ2NGgtNnY0aC02djE0aC0zbDAuMiwybDMuOCwzMmgzNmwzLjgtMzJsMC4yLTJoLTN2LTE0aC02di00aC02di00SDEyOXogTTE0NywxMTR2LTEyaC00djRoM3Y4SDE0NwoJCQl6IE0xNDQsMTE0di02aC00djZIMTQ0eiBNMTM4LDEyMHYtMTZoLTR2MTkuMkMxMzUuNiwxMjIuNSwxMzcsMTIxLjQsMTM4LDEyMHogTTEzMiwxMjMuOFYxMDBoLTR2MjMuOAoJCQlDMTI5LjMsMTI0LjEsMTMwLjcsMTI0LjEsMTMyLDEyMy44eiBNMTI2LDEyMy4yVjEwNGgtNHYxNkMxMjMsMTIxLjQsMTI0LjQsMTIyLjUsMTI2LDEyMy4yeiBNMTIwLDExNHYtNmgtNHY2SDEyMHogTTExNCwxMTR2LThoMwoJCQl2LTRoLTR2MTJIMTE0eiBNMTQxLDEwMnYtNGgtNHY0aDN2NGgxVjEwMnogTTEzNSwxMDJ2LThoLTR2NGgzdjRIMTM1eiBNMTI5LDk4di00aC00djhoMXYtNEgxMjl6IE0xMjMsMTAydi00aC00djhoMXYtNEgxMjN6CgkJCSBNMTMwLDEyNmM1LjksMCwxMC45LTQuMiwxMS44LTEwaDcuOWwtMy41LDMwaC0zMi40bC0zLjUtMzBoNy45QzExOS4xLDEyMS44LDEyNC4xLDEyNiwxMzAsMTI2eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0yMTIsODZ2MmgtNHYtMkgyMTJ6IE0yMTYsODZoLTJ2MmgyVjg2eiBNMTk2LDg2TDE5Niw4NmMtMi43LDAuNy00LjUsMy4zLTMuOSw2YzAuNCwxLjgsMS42LDMuMiwzLjMsMy44CgkJCWwwLjEsMC4ybDEuMSw0LjVjMC4yLDAuOSwxLDEuNSwxLjksMS41bDAsMGw3LDI0LjZjMC4yLDAuOSwxLDEuNCwxLjksMS40aDVjMC45LDAsMS43LTAuNiwxLjktMS40bDctMjQuNmMwLjksMCwxLjctMC42LDEuOS0xLjUKCQkJbDEuMS00LjVsMC4xLTAuMmMyLjYtMC45LDQuMS0zLjcsMy4yLTYuM2MtMC42LTEuNy0yLTMtMy44LTMuM1Y4NmMwLTcuNy02LjMtMTQtMTQtMTRTMTk2LDc4LjMsMTk2LDg2eiBNMjAwLDg2aDZ2MmgtOQoJCQljLTEuNywwLTMsMS4zLTMsM3MxLjMsMywzLDNoMjZjMS43LDAsMy0xLjMsMy0zcy0xLjMtMy0zLTNoLTN2LTJoMmMwLTYuNi01LjQtMTItMTItMTJzLTEyLDUuNC0xMiwxMkgyMDB6IE0xOTguNiwxMDBsLTEtNGgyNC45CgkJCWwtMSw0SDE5OC42eiBNMjA3LjUsMTI2bC02LjktMjRoMTguN2wtNi45LDI0SDIwNy41eiBNMTUwLDI0MmMxMi4yLDAsMjItOS44LDIyLTIycy05LjgtMjItMjItMjJzLTIyLDkuOC0yMiwyMgoJCQlTMTM3LjgsMjQyLDE1MCwyNDJ6IE0xNzQsMjIwYzAsMTMuMy0xMC43LDI0LTI0LDI0cy0yNC0xMC43LTI0LTI0bDAsMGMwLTEzLjMsMTAuNy0yNCwyNC0yNFMxNzQsMjA2LjcsMTc0LDIyMHogTTE0NS42LDIzNy43CgkJCWwyLTAuOWMxLjUtMC42LDMuMi0wLjYsNC43LDBsMiwwLjljMC45LDAuNCwyLDAsMi41LTAuOGwxLjEtMS45YzAuOC0xLjQsMi4yLTIuNCwzLjgtMi44bDIuMS0wLjVjMS0wLjIsMS42LTEuMSwxLjUtMi4xbC0wLjItMi4yCgkJCWMtMC4xLTEuNiwwLjQtMy4yLDEuNC00LjVsMS40LTEuN2MwLjctMC44LDAuNy0xLjksMC0yLjZsLTEuNC0xLjdjLTEuMS0xLjItMS42LTIuOC0xLjQtNC41bDAuMi0yLjJjMC4xLTEtMC42LTEuOS0xLjYtMi4xCgkJCWwtMi4xLTAuNWMtMS42LTAuNC0zLTEuNC0zLjgtMi44bC0xLjEtMS45Yy0wLjUtMC45LTEuNi0xLjItMi41LTAuOGwtMiwwLjljLTEuNSwwLjYtMy4yLDAuNi00LjcsMGwtMi0wLjljLTAuOS0wLjQtMiwwLTIuNSwwLjgKCQkJbC0xLDIuMWMtMC44LDEuNC0yLjIsMi40LTMuOCwyLjhsLTIuMSwwLjVjLTEsMC4yLTEuNiwxLjEtMS41LDIuMWwwLjIsMi4yYzAuMSwxLjYtMC40LDMuMi0xLjQsNC41bC0xLjQsMS43CgkJCWMtMC43LDAuOC0wLjcsMS45LDAsMi42bDEuNCwxLjdjMS4xLDEuMiwxLjYsMi44LDEuNCw0LjVsLTAuMiwyLjJjLTAuMSwxLDAuNiwxLjksMS42LDIuMWwyLjEsMC41YzEuNiwwLjQsMywxLjQsMy44LDIuOGwxLjEsMS45CgkJCUMxNDMuNiwyMzcuOCwxNDQuNywyMzguMSwxNDUuNiwyMzcuN0wxNDUuNiwyMzcuN3ogTTE0OC40LDIzOC43YzEtMC40LDIuMS0wLjQsMy4xLDBsMiwwLjljMS44LDAuOCw0LDAuMSw1LTEuNmwxLjEtMS45CgkJCWMwLjYtMC45LDEuNS0xLjYsMi41LTEuOGwyLjEtMC41YzEuOS0wLjQsMy4zLTIuMywzLjEtNC4ybC0wLjItMi4yYy0wLjEtMS4xLDAuMy0yLjIsMS0zbDEuNC0xLjdjMS4zLTEuNSwxLjMtMy43LDAtNS4ybC0xLjQtMS43CgkJCWMtMC43LTAuOC0xLjEtMS45LTEtM2wwLjItMi4yYzAuMi0yLTEuMS0zLjgtMy4xLTQuMmwtMi4xLTAuNWMtMS4xLTAuMi0yLTAuOS0yLjUtMS44bC0xLjEtMS45Yy0xLTEuNy0zLjItMi40LTUtMS42bC0yLDAuOQoJCQljLTEsMC40LTIuMSwwLjQtMy4xLDBsLTItMC45Yy0xLjgtMC44LTQtMC4xLTUsMS42bC0xLjEsMS45Yy0wLjYsMC45LTEuNSwxLjYtMi41LDEuOGwtMi4xLDAuNWMtMS45LDAuNC0zLjMsMi4zLTMuMSw0LjJsMC4yLDIuMgoJCQljMC4xLDEuMS0wLjMsMi4yLTEsM2wtMS40LDEuN2MtMS4zLDEuNS0xLjMsMy43LDAsNS4ybDEuNCwxLjdjMC43LDAuOCwxLjEsMS45LDEsM2wtMC4yLDIuMmMtMC4yLDIsMS4xLDMuOCwzLjEsNC4ybDIuMSwwLjUKCQkJYzEuMSwwLjIsMiwwLjksMi41LDEuOGwxLjEsMS45YzEsMS43LDMuMiwyLjQsNSwxLjZMMTQ4LjQsMjM4Ljd6IE0xNTIsMjA3YzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMQoJCQlTMTUyLDIwNy42LDE1MiwyMDd6IE0xNTgsMjA5YzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMVMxNTgsMjA5LjYsMTU4LDIwOXogTTE0NywyMTBjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMQoJCQlzLTAuNCwxLTEsMVMxNDcsMjEwLjYsMTQ3LDIxMHogTTE0MSwyMTBjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMXMtMC40LDEtMSwxUzE0MSwyMTAuNiwxNDEsMjEweiBNMTQ0LDIwNWMwLTAuNiwwLjQtMSwxLTEKCQkJczEsMC40LDEsMXMtMC40LDEtMSwxUzE0NCwyMDUuNiwxNDQsMjA1eiBNMTM2LDIxM2MwLTAuNiwwLjQtMSwxLTFzMSwwLjQsMSwxcy0wLjQsMS0xLDFTMTM2LDIxMy42LDEzNiwyMTN6IE0xMzksMjE5CgkJCWMwLTAuNiwwLjQtMSwxLTFzMSwwLjQsMSwxcy0wLjQsMS0xLDFTMTM5LDIxOS42LDEzOSwyMTl6IE0xMzksMjI1YzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMVMxMzksMjI1LjYsMTM5LDIyNXoKCQkJIE0xNDMsMjMyYzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMVMxNDMsMjMyLjYsMTQzLDIzMnogTTE0OCwyMzBjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMXMtMC40LDEtMSwxCgkJCVMxNDgsMjMwLjYsMTQ4LDIzMHogTTE1MywyMzRjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMXMtMC40LDEtMSwxUzE1MywyMzQuNiwxNTMsMjM0eiBNMTU3LDIyOGMwLTAuNiwwLjQtMSwxLTFzMSwwLjQsMSwxCgkJCXMtMC40LDEtMSwxUzE1NywyMjguNiwxNTcsMjI4eiBNMTYzLDIyNGMwLTAuNiwwLjQtMSwxLTFzMSwwLjQsMSwxcy0wLjQsMS0xLDFTMTYzLDIyNC42LDE2MywyMjR6IE0xNTksMjIxYzAtMC42LDAuNC0xLDEtMQoJCQlzMSwwLjQsMSwxcy0wLjQsMS0xLDFTMTU5LDIyMS42LDE1OSwyMjF6IE0xNjMsMjE4YzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMVMxNjMsMjE4LjYsMTYzLDIxOHogTTE1OCwyMTQKCQkJYzAtMC42LDAuNC0xLDEtMXMxLDAuNCwxLDFzLTAuNCwxLTEsMVMxNTgsMjE0LjYsMTU4LDIxNHogTTEzNCwyMjBjMC0wLjYsMC40LTEsMS0xczEsMC40LDEsMXMtMC40LDEtMSwxUzEzNCwyMjAuNiwxMzQsMjIwegoJCQkgTTE1MCwyMjVjMi44LDAsNS0yLjIsNS01cy0yLjItNS01LTVzLTUsMi4yLTUsNVMxNDcuMiwyMjUsMTUwLDIyNXogTTE1NywyMjBjMCwzLjktMy4xLDctNyw3cy03LTMuMS03LTdzMy4xLTcsNy03CgkJCVMxNTcsMjE2LjEsMTU3LDIyMHogTTI0MywxOTFjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMmMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgyNDN6IE0yNjIsMjAwYzAtMC42LDAuNC0xLDEtMWgyCgkJCWMwLjYsMCwxLDAuNCwxLDFzLTAuNCwxLTEsMWgtMkMyNjIuNCwyMDEsMjYyLDIwMC42LDI2MiwyMDB6IE0yNDgsMjA1Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDJjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTEKCQkJSDI0OHogTTIyMywyMDZjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMmMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgyMjN6IE0yMjgsMjEwYy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDIKCQkJYzAuNiwwLDEtMC40LDEtMXMtMC40LTEtMS0xSDIyOHogTTIzNywyMTBjMC0wLjYsMC40LTEsMS0xaDJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFoLTJDMjM3LjQsMjExLDIzNywyMTAuNiwyMzcsMjEwegoJCQkgTTI1MiwyMTFjMC0wLjYsMC40LTEsMS0xaDJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFoLTJDMjUyLjQsMjEyLDI1MiwyMTEuNiwyNTIsMjExeiBNMjY0LDIwOWMtMC42LDAtMSwwLjQtMSwxczAuNCwxLDEsMWgyCgkJCWMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgyNjR6IE0yNTMsMTk1YzAtMC42LDAuNC0xLDEtMWgyYzAuNiwwLDEsMC40LDEsMXMtMC40LDEtMSwxaC0yQzI1My40LDE5NiwyNTMsMTk1LjYsMjUzLDE5NXoKCQkJIE0yMzQsMTk1Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDJjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFIMjM0eiBNMjQwLDIwMGMwLTAuNiwwLjQtMSwxLTFoMmMwLjYsMCwxLDAuNCwxLDFzLTAuNCwxLTEsMQoJCQloLTJDMjQwLjQsMjAxLDI0MCwyMDAuNiwyNDAsMjAweiBNMjE1LDIxNWMwLTAuNSwwLTAuOSwwLTEuNGMtMi41LTEuMS0zLjctNC0yLjYtNi42YzAuMi0wLjUsMC41LTEsMC45LTEuNGMtMC45LTIsMC00LjIsMS45LTUuMgoJCQljLTAuOC0yLjYsMC43LTUuNCwzLjQtNi4ybDAsMGMwLjQtMC41LDAuOS0wLjksMS41LTEuMWMwLjUtMi43LDMuMS00LjUsNS44LTQuMWMwLjcsMC4xLDEuNCwwLjQsMiwwLjhjNS4zLTMuOCwxMS42LTUuOSwxOC4yLTUuOQoJCQljNi44LDAsMTMuMSwyLjIsMTguMiw1LjljMi4zLTEuNiw1LjQtMSw3LDEuM2MwLjQsMC42LDAuNywxLjMsMC44LDJjMC42LDAuMiwxLjEsMC42LDEuNSwxLjFjMi43LDAuOCw0LjIsMy41LDMuNCw2LjJsMCwwCgkJCWMxLjksMSwyLjcsMy4yLDEuOSw1LjJjMS45LDIsMS44LDUuMi0wLjIsN2MtMC40LDAuNC0wLjksMC43LTEuNSwxYzAsMC41LDAsMC45LDAsMS40djFoLTYydi0xSDIxNXogTTIxNS44LDIwNy44CgkJCWMtMC4zLDEuMi0wLjUsMi40LTAuNiwzLjZjLTEuMy0xLTEuNi0yLjktMC42LTQuMmwwLDBDMjE1LDIwNy41LDIxNS40LDIwNy43LDIxNS44LDIwNy44TDIxNS44LDIwNy44eiBNMjE3LjMsMjAzLjIKCQkJYy0wLjQsMC45LTAuNywxLjgtMSwyLjdjLTEtMC40LTEuNi0xLjUtMS4zLTIuNWMwLjItMC41LDAuNi0wLjksMS4xLTEuMkMyMTYuNSwyMDIuNiwyMTYuOSwyMDIuOSwyMTcuMywyMDMuMkwyMTcuMywyMDMuMnoKCQkJIE0yMTkuNiwxOTguN2MtMC41LDAuOS0xLDEuOC0xLjUsMi43Yy0xLjMtMS0xLjUtMi45LTAuNS00LjJjMC4xLTAuMiwwLjMtMC4zLDAuNC0wLjVDMjE4LjMsMTk3LjYsMjE4LjksMTk4LjMsMjE5LjYsMTk4LjcKCQkJTDIxOS42LDE5OC43eiBNMjIwLjgsMTk3YzAuNC0wLjUsMC43LTEsMS4xLTEuNWMtMC4zLTAuNS0wLjktMC43LTEuNC0wLjRzLTAuNywwLjktMC40LDEuNEMyMjAuMywxOTYuNywyMjAuNSwxOTYuOSwyMjAuOCwxOTcKCQkJTDIyMC44LDE5N3ogTTIyNi4xLDE5MS4yYy0xLDAuOS0yLDEuOC0yLjksMi44Yy0wLjMtMC4zLTAuNy0wLjYtMS4xLTAuOGMwLjQtMS42LDIuMS0yLjUsMy43LTIuMQoJCQlDMjI1LjksMTkxLjEsMjI2LDE5MS4yLDIyNi4xLDE5MS4yTDIyNi4xLDE5MS4yeiBNMjY4LjgsMTk0Yy0wLjktMS0xLjktMS45LTIuOS0yLjhjMS41LTAuNiwzLjMsMC4xLDMuOSwxLjcKCQkJYzAsMC4xLDAuMSwwLjIsMC4xLDAuM0MyNjkuNSwxOTMuNCwyNjkuMSwxOTMuNiwyNjguOCwxOTRMMjY4LjgsMTk0eiBNMjcwLjEsMTk1LjVjMC40LDAuNSwwLjgsMSwxLjEsMS40CgkJCWMwLjUtMC4xLDAuOS0wLjcsMC44LTEuMnMtMC43LTAuOS0xLjItMC44QzI3MC41LDE5NS4xLDI3MC4zLDE5NS4zLDI3MC4xLDE5NS41eiBNMjczLjksMjAxLjRjLTAuNS0wLjktMS0xLjgtMS41LTIuNwoJCQljMC44LTAuNCwxLjQtMS4xLDEuNi0yYzEuMywxLjEsMS40LDMsMC40LDQuMkMyNzQuMiwyMDEuMSwyNzQsMjAxLjIsMjczLjksMjAxLjR6IE0yNzUuNiwyMDUuOWMtMC4zLTAuOS0wLjYtMS44LTEtMi43CgkJCWMwLjQtMC4zLDAuOC0wLjYsMS4yLTFjMSwwLjUsMS40LDEuNywxLDIuN0MyNzYuNiwyMDUuMywyNzYuMiwyMDUuNywyNzUuNiwyMDUuOXogTTI3Ni44LDIxMS40Yy0wLjEtMS4yLTAuNC0yLjQtMC42LTMuNgoJCQljMC41LTAuMSwwLjktMC40LDEuMi0wLjZDMjc4LjQsMjA4LjUsMjc4LjEsMjEwLjQsMjc2LjgsMjExLjRMMjc2LjgsMjExLjRMMjc2LjgsMjExLjR6IE0yNzUsMjE0Yy0wLjUtMTYtMTMuOS0yOC42LTI5LjktMjguMQoJCQljLTE1LjMsMC41LTI3LjYsMTIuOC0yOC4xLDI4LjFIMjc1TDI3NSwyMTR6IE03Mi4zLDE5OC4xYy0wLjItMC4zLTAuMy0wLjctMC4zLTEuMXYtMTJoLTJ2MTJjMCwyLjIsMS44LDQsNCw0CgkJCWMxLjIsMCwyLjMtMC41LDMuMS0xLjRjMC42LTAuNywwLjktMS42LDAuOS0yLjV2LTEyaC0ydjEyYzAsMS4xLTAuOSwyLTIsMmwwLDBDNzMuMywxOTksNzIuNywxOTguNyw3Mi4zLDE5OC4xeiBNNzUsMTc2CgkJCWMwLjQsMCwwLjcsMCwxLjEtMC4xYzAuNSwyLjIsMi42LDMuNSw0LjgsM2MwLjUtMC4xLDEtMC4zLDEuNC0wLjZjMS4xLDIuMSwxLjcsNC40LDEuNyw2Ljd2MjRjMCwzLjMtMi43LDYtNiw2aC0zdjkKCQkJYzAsMi44LTIuMiw1LTUsNXMtNS0yLjItNS01di05aC0zYy0zLjMsMC02LTIuNy02LTZ2LTI0YzAtNy43LDYuMy0xNCwxNC0xNEM3MCwxNzMuOCw3Mi4yLDE3Niw3NSwxNzZ6IE01OCwxOTF2MTIKCQkJYzAsMC44LDAuNSwxLjUsMS4yLDEuOGMwLjksMC40LDEuOSwwLjEsMi40LTAuN2MwLjItMC4zLDAuMy0wLjcsMC4zLTEuMXYtMTJoMnYxMmMwLDIuMi0xLjcsNC0zLjksNGMtMC41LDAtMS0wLjEtMS40LTAuMgoJCQljLTAuMi0wLjEtMC40LTAuMi0wLjctMC4zdjIuNWMwLDIuMiwxLjgsNCw0LDRoMTZjMi4yLDAsNC0xLjgsNC00di0yNGMwLTEuNS0wLjItMi45LTAuNy00LjJjLTAuNCwwLjEtMC45LDAuMi0xLjMsMC4yCgkJCWMtMi4xLDAtNC4xLTEuMS01LjItM2MtMy0wLjEtNS42LTItNi41LTQuOUM2Mi40LDE3NCw1OCwxNzksNTgsMTg1VjE5MXogTTY3LDIxNXY5YzAsMS43LDEuMywzLDMsM3MzLTEuMywzLTN2LTlINjd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTS0xNywxOTFjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMmMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgtMTd6IE0yLDIwMGMwLTAuNiwwLjQtMSwxLTFoMgoJCQljMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFIM0MyLjQsMjAxLDIsMjAwLjYsMiwyMDB6IE0tMTIsMjA1Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDJjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFILTEyegoJCQkgTS0zNywyMDZjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMmMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgtMzd6IE0tMzIsMjEwYy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDJjMC42LDAsMS0wLjQsMS0xCgkJCXMtMC40LTEtMS0xSC0zMnogTS0yMywyMTBjMC0wLjYsMC40LTEsMS0xaDJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFoLTJDLTIyLjYsMjExLTIzLDIxMC42LTIzLDIxMHogTS04LDIxMWMwLTAuNiwwLjQtMSwxLTEKCQkJaDJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFoLTJDLTcuNiwyMTItOCwyMTEuNi04LDIxMXogTTQsMjA5Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDJjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFINHoKCQkJIE0tNywxOTVjMC0wLjYsMC40LTEsMS0xaDJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFoLTJDLTYuNiwxOTYtNywxOTUuNi03LDE5NXogTS0yNiwxOTVjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMgoJCQljMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFILTI2eiBNLTIwLDIwMGMwLTAuNiwwLjQtMSwxLTFoMmMwLjYsMCwxLDAuNCwxLDFzLTAuNCwxLTEsMWgtMkMtMTkuNiwyMDEtMjAsMjAwLjYtMjAsMjAweiBNLTQ1LDIxNQoJCQljMC0wLjUsMC0wLjksMC0xLjRjLTIuNS0xLjEtMy43LTQtMi42LTYuNmMwLjItMC41LDAuNS0xLDAuOS0xLjRjLTAuOS0yLDAtNC4yLDEuOS01LjJjLTAuOC0yLjYsMC43LTUuNCwzLjQtNi4ybDAsMAoJCQljMC40LTAuNSwwLjktMC45LDEuNS0xLjFjMC41LTIuNywzLjEtNC41LDUuOC00LjFjMC43LDAuMSwxLjQsMC40LDIsMC44YzUuMy0zLjgsMTEuNi01LjksMTguMi01LjljNi44LDAsMTMuMSwyLjIsMTguMiw1LjkKCQkJYzIuMy0xLjYsNS40LTEsNywxLjNjMC40LDAuNiwwLjcsMS4zLDAuOCwyYzAuNiwwLjIsMS4xLDAuNiwxLjUsMS4xYzIuNywwLjgsNC4yLDMuNSwzLjQsNi4ybDAsMGMxLjksMSwyLjcsMy4yLDEuOSw1LjIKCQkJYzEuOSwyLDEuOCw1LjItMC4yLDdjLTAuNCwwLjQtMC45LDAuNy0xLjUsMWMwLDAuNSwwLDAuOSwwLDEuNHYxaC02MnYtMUgtNDV6IE0tNDQuMiwyMDcuOGMtMC4zLDEuMi0wLjUsMi40LTAuNiwzLjYKCQkJYy0xLjMtMS0xLjYtMi45LTAuNi00LjJsMCwwQy00NSwyMDcuNS00NC42LDIwNy43LTQ0LjIsMjA3LjhMLTQ0LjIsMjA3Ljh6IE0tNDIuNywyMDMuMmMtMC40LDAuOS0wLjcsMS44LTEsMi43CgkJCWMtMS0wLjQtMS42LTEuNS0xLjMtMi41YzAuMi0wLjUsMC42LTAuOSwxLjEtMS4yQy00My41LDIwMi42LTQzLjEsMjAyLjktNDIuNywyMDMuMkwtNDIuNywyMDMuMnogTS00MC40LDE5OC43CgkJCWMtMC41LDAuOS0xLDEuOC0xLjUsMi43Yy0xLjMtMS0xLjUtMi45LTAuNS00LjJjMC4xLTAuMiwwLjMtMC4zLDAuNC0wLjVDLTQxLjcsMTk3LjYtNDEuMSwxOTguMy00MC40LDE5OC43eiBNLTM5LjIsMTk3CgkJCWMwLjMtMC41LDAuNy0xLDEuMS0xLjVjLTAuMy0wLjUtMC45LTAuNy0xLjQtMC40cy0wLjcsMC45LTAuNCwxLjRDLTM5LjcsMTk2LjctMzkuNSwxOTYuOS0zOS4yLDE5N0wtMzkuMiwxOTd6IE0tMzMuOSwxOTEuMgoJCQljLTEsMC45LTIsMS44LTIuOSwyLjhjLTAuMy0wLjMtMC43LTAuNi0xLjEtMC44YzAuNC0xLjYsMi4xLTIuNSwzLjctMi4xQy0zNC4xLDE5MS4xLTM0LDE5MS4yLTMzLjksMTkxLjJMLTMzLjksMTkxLjJ6IE04LjgsMTk0CgkJCWMtMC45LTEtMS45LTEuOS0yLjktMi44YzEuNS0wLjYsMy4zLDAuMSwzLjksMS43YzAsMC4xLDAuMSwwLjIsMC4xLDAuM0M5LjUsMTkzLjQsOS4xLDE5My42LDguOCwxOTRMOC44LDE5NHogTTEwLjEsMTk1LjUKCQkJYzAuNCwwLjUsMC44LDEsMS4xLDEuNGMwLjUtMC4xLDAuOS0wLjcsMC44LTEuMmMtMC4xLTAuNS0wLjctMC45LTEuMi0wLjhDMTAuNSwxOTUuMSwxMC4zLDE5NS4zLDEwLjEsMTk1LjV6IE0xMy45LDIwMS40CgkJCWMtMC41LTAuOS0wLjktMS44LTEuNS0yLjdjMC44LTAuNCwxLjQtMS4xLDEuNi0yYzEuMywxLjEsMS40LDMsMC40LDQuMkMxNC4yLDIwMS4xLDE0LDIwMS4yLDEzLjksMjAxLjR6IE0xNS43LDIwNS45CgkJCWMtMC4zLTAuOS0wLjYtMS44LTEtMi43YzAuNC0wLjMsMC44LTAuNiwxLjItMWMxLDAuNSwxLjQsMS43LDEsMi43QzE2LjYsMjA1LjMsMTYuMiwyMDUuNywxNS43LDIwNS45eiBNMTYuOCwyMTEuNAoJCQljLTAuMS0xLjItMC40LTIuNC0wLjYtMy42YzAuNS0wLjEsMC45LTAuNCwxLjItMC42QzE4LjQsMjA4LjUsMTguMSwyMTAuNCwxNi44LDIxMS40TDE2LjgsMjExLjRMMTYuOCwyMTEuNHogTTE1LDIxNAoJCQljLTAuNS0xNi0xMy45LTI4LjYtMjkuOS0yOC4xYy0xNS4zLDAuNS0yNy42LDEyLjgtMjguMSwyOC4xSDE1TDE1LDIxNHoiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K";
diff --git a/src/@core/scss/base/bootstrap-extended/mixins/_navs.scss b/src/@core/scss/base/bootstrap-extended/mixins/_navs.scss
new file mode 100644
index 00000000..6a58e050
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/mixins/_navs.scss
@@ -0,0 +1,49 @@
+// Justified nav links
+// -------------------------
+
+@mixin nav-justified {
+ width: 100%;
+
+ .nav-item {
+ float: none;
+ }
+
+ .nav-link {
+ text-align: center;
+ margin-bottom: 5px;
+ }
+
+ > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto;
+ }
+
+ @include media-breakpoint-up(sm) {
+ .nav-item {
+ display: block;
+ width: 1%;
+ }
+ .nav-link {
+ margin-bottom: 0;
+ }
+ }
+}
+
+// Move borders to anchors instead of bottom of list
+//
+// Mixin for adding on top the shared `.nav-justified` styles for our tabs
+@mixin nav-tabs-justified {
+ .nav-link {
+ // Override margin from .nav-tabs
+ margin-right: 0;
+ border-radius: $border-radius;
+ }
+
+ @include media-breakpoint-up(sm) {
+ .nav-link.active,
+ .nav-link.active:hover,
+ .nav-link.active:focus {
+ border-bottom-color: transparent; //$nav-tabs-justified-active-link-border-color;
+ }
+ }
+}
diff --git a/src/@core/scss/base/bootstrap-extended/mixins/_type.scss b/src/@core/scss/base/bootstrap-extended/mixins/_type.scss
new file mode 100644
index 00000000..2af366c2
--- /dev/null
+++ b/src/@core/scss/base/bootstrap-extended/mixins/_type.scss
@@ -0,0 +1,31 @@
+// Font weight mixins
+// ------------------
+@mixin font-weight($weight) {
+ $weights: (
+ thin: 100,
+ extra-light: 200,
+ ultra-light: 200,
+ light: 300,
+ normal: 400,
+ book: 400,
+ regular: 400,
+ medium: 500,
+ semi-bold: 600,
+ demi-bold: 600,
+ bold: 700,
+ extra-bold: 800,
+ ultra-bold: 900,
+ heavy: 900,
+ black: 900,
+ ultra: 900,
+ ultra-black: 900,
+ extra-ultra: 900
+ );
+
+ $output: $weight;
+ @if map-has-key($weights, $weight) {
+ $output: map-get($weights, $weight);
+ }
+
+ font-weight: $output;
+}
diff --git a/src/@core/scss/base/bootstrap.scss b/src/@core/scss/base/bootstrap.scss
new file mode 100644
index 00000000..b76cb2c1
--- /dev/null
+++ b/src/@core/scss/base/bootstrap.scss
@@ -0,0 +1,11 @@
+// ================================================================================================
+// File Name: bootstrap.scss
+// Description: Include bootstrap core from node_modules
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import 'bootstrap-extended/include'; // Bootstrap includes
+@import 'bootstrap/scss/bootstrap'; // Bootstrap core
diff --git a/src/@core/scss/base/colors.scss b/src/@core/scss/base/colors.scss
new file mode 100644
index 00000000..a49b6947
--- /dev/null
+++ b/src/@core/scss/base/colors.scss
@@ -0,0 +1,24 @@
+// ================================================================================================
+// File Name: colors.scss
+// Description: Common color file to include color paletter and colors file, its qiore good to
+// have all color classes in a separate file as it's quite heavy.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+// Core
+// ------------------------------
+
+// Import variables and mixins
+@import 'bootstrap/scss/mixins/gradients';
+@import 'core/mixins/hex2rgb';
+
+//box shadow for alert's heading
+@import 'core/mixins/alert';
+
+// Color system, always load last
+// ------------------------------
+@import 'core/colors/palette';
+@import 'core/colors/palette-gradient.scss';
diff --git a/src/@core/scss/base/components.scss b/src/@core/scss/base/components.scss
new file mode 100644
index 00000000..c5128628
--- /dev/null
+++ b/src/@core/scss/base/components.scss
@@ -0,0 +1,40 @@
+// ================================================================================================
+// File Name: components.scss
+// Description: Common components file to includ all theme specific custom components.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import 'bootstrap-extended/include'; // Bootstrap includes
+@import 'components/include'; // Components includes
+
+@import 'core/mixins/transitions'; // Template custom mixins
+
+// Core
+// ------------------------------
+// layouts
+@import 'core/layouts/content';
+@import 'core/layouts/sidebar';
+@import 'core/layouts/footer';
+// menu
+@import 'core/menu/navigation';
+
+// Components
+// ------------------------------
+@import 'components/avatar';
+@import 'components/search';
+// @import 'components/chart';
+@import 'components/bootstrap-social';
+@import 'components/demo'; //! Plugins demo styles, remove in real project
+@import 'components/customizer'; //! Customizer demo, remove in real project
+@import 'components/divider';
+@import 'components/timeline';
+
+// Plugins
+// ------------------------------
+@import 'plugins/ui/breakpoints';
+@import 'plugins/forms/select2/select2';
+@import 'plugins/tables/datatables';
+@import 'plugins/forms/form-number-input'; // ? globally required for cart dropdown
diff --git a/src/@core/scss/base/components/_include.scss b/src/@core/scss/base/components/_include.scss
new file mode 100644
index 00000000..f59db105
--- /dev/null
+++ b/src/@core/scss/base/components/_include.scss
@@ -0,0 +1,13 @@
+// ================================================================================================
+// File Name: include.scss
+// Description: Common components file to includ all theme specific custom components.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+// Overrides user variable
+@import 'scss/variables/_variables-components'; // Component custom variable override (for user purpose)
+@import 'variables'; // Component variable
+@import 'variables-dark'; // Dark variable
diff --git a/src/@core/scss/base/components/_variables-dark.scss b/src/@core/scss/base/components/_variables-dark.scss
new file mode 100644
index 00000000..c997f39f
--- /dev/null
+++ b/src/@core/scss/base/components/_variables-dark.scss
@@ -0,0 +1,53 @@
+// ================================================================================================
+// File Name: variables-dark.scss
+// Description: Custom dark theme variables
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+// ================================================================================================
+// WARNING: PLEASE DO NOT CHANGE THIS VARIABLE FILE.
+// THIS FILE WILL GET OVERWRITTEN WITH EACH VUEXY HTML TEMPLATE RELEASE.
+// TIP:
+// We suggest you to use this (assets/scss/variables/_variables-components.scss) file for overriding components variables.
+// ================================================================================================
+
+//Body
+$theme-dark-body-bg: #161d31 !default;
+$theme-dark-body-color: #b4b7bd !default;
+$theme-dark-border-color: #3b4253 !default;
+$theme-dark-custom-control-border-color: #44405e !default;
+
+//Typography
+$theme-dark-headings-color: #d0d2d6 !default;
+$theme-dark-label-color: #d0d2d6 !default;
+$theme-dark-text-muted-color: #676d7d !default;
+
+//Card
+$theme-dark-card-bg: #283046 !default;
+$theme-dark-box-shadow: 0 4px 24px 0 rgba($black, 0.24);
+
+//Input
+$theme-dark-input-bg: #283046 !default;
+$theme-dark-input-placeholder-color: #676d7d !default;
+$theme-dark-input-border-color: #404656 !default;
+$theme-dark-input-disabled-bg: #24233a !default;
+$theme-dark-input-disabled-border-color: #444b60 !default;
+
+// Switch
+$theme-dark-switch-bg: #545a6a;
+$theme-dark-switch-bg-disabled: #1b2337;
+
+//Table
+$theme-dark-table-bg: #283046 !default;
+$theme-dark-table-header-bg: #343d55 !default;
+$theme-dark-table-row-bg: #283046 !default;
+$theme-dark-table-hover-bg: #242b3d !default;
+$theme-dark-table-striped-bg: #242b3d !default;
+
+$theme-dark-modal-header-bg: #161d31 !default;
+$theme-dark-pagination-bg: #242b3d !default;
+$theme-dark-chart-bg: #384056 !default;
+$theme-dark-widget-bg: #384056 !default;
diff --git a/src/@core/scss/base/components/_variables.scss b/src/@core/scss/base/components/_variables.scss
new file mode 100644
index 00000000..6f89eea3
--- /dev/null
+++ b/src/@core/scss/base/components/_variables.scss
@@ -0,0 +1,137 @@
+// ================================================================================================
+// File Name: variables.scss
+// Description: Custom component variable
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+// ================================================================================================
+// WARNING: PLEASE DO NOT CHANGE THIS VARIABLE FILE.
+// THIS FILE WILL GET OVERWRITTEN WITH EACH VUEXY HTML TEMPLATE RELEASE.
+// TIP:
+// We suggest you to use this (assets/scss/variables/_variables-components.scss) file for overriding components variables.
+// ================================================================================================
+
+$base-font-size: 14px !default;
+$body-direction: ltr !default; // Default ltr, change it to rtl for Right To Left support.
+$content-padding: 2rem !default;
+
+// ------------------------------
+// Colors
+// ------------------------------
+$nav-component-border-color: #ddd !default;
+
+$swiper-bg: #f2f4f4 !default;
+
+// ------------------------------
+// Navbar
+// ------------------------------
+$navbar-height: 4.45rem !default;
+$horizontal-menu-height: 4.45rem !default;
+$footer-height: 3.35rem !default;
+
+// ------------------------------
+// Main Menu
+// ------------------------------
+
+//main menu dark
+$menu-dark-color: #dcdcdc !default;
+$menu-dark-bg-color: #10163a !default;
+
+$menu-padding: 10px 15px 10px 15px !default;
+$menu-second-level-padding: 10px 15px 10px 20px !default;
+$menu-third-level-padding: 10px 15px 10px 53px !default;
+$menu-forth-level-padding: 10px 15px 10px 53px !default;
+
+// vertical menu
+$menu-expanded-width: 260px !default;
+$menu-collapsed-width: 80px !default;
+
+// ------------------------------
+// Sidebar
+// -------------------------------
+$sidebar-width: 260px !default;
+$chat-sidebar-width: 360px !default;
+
+// -------------------------------
+// Avatar
+// -------------------------------
+
+$avatar-size: 32px !default;
+$avatar-status-size: 11px !default;
+$avatar-status-size-lg: 17px !default;
+
+$avatar-size-xl: 70px !default;
+$avatar-size-lg: 50px !default;
+$avatar-size-sm: 24px !default;
+
+$avatar-bg: #c3c3c3;
+$avatar-group-border: $white;
+
+// -------------------------------
+// Progress
+// -------------------------------
+$progress-size-xl: 1.14rem !default;
+$progress-size-lg: 0.857rem !default;
+$progress-size-md: 0.57rem !default;
+$progress-size-sm: 0.143rem !default;
+
+// -------------------------------
+// Form
+// -------------------------------
+
+// $input-height, $input-height-lg, $input-height-sm are in variables
+$font-size-xs: 0.75rem !default;
+$font-size-xl: ($font-size-base + 0.5) !default;
+$line-height-xl: 1.7 !default;
+$line-height-xs: 1.5 !default;
+$input-padding-y-xl: 0.5rem !default;
+$input-padding-x-xl: 0.5rem !default;
+
+$input-padding-y-xs: 0.2rem !default;
+$input-padding-x-xs: 0.275rem !default;
+
+$border-radius-xl: 0.35rem !default;
+$border-radius-xs: 0.12rem !default;
+$input-border-radius-xl: $border-radius-xl !default;
+$input-border-radius-xs: $border-radius-xs !default;
+
+$input-height-xl: (($font-size-xl * $line-height-xl) + ($input-padding-y-xl * 2)) !default;
+$input-height-xs: (($font-size-xs * $line-height-xs) + ($input-padding-y-xs * 2)) !default;
+$input-height-sm: (($font-size-sm * $line-height-sm) + ($input-padding-y-sm * 2)) !default;
+
+// -------------------------------
+// Blank Page Bg Color
+// -------------------------------
+
+$blank-bg-color: #eff2f7 !default;
+
+// -------------------------------
+// Data Tables Bg Color
+// -------------------------------
+
+$datatable-bg-color: #f8f8f8 !default;
+
+// -------------------------------
+// Switch
+// -------------------------------
+$switch-bg-color: #e2e2e2 !default;
+$switch-indicator-color: $white !default;
+
+// -------------------------------
+// Timeline
+// -------------------------------
+$timeline-border-color: $border-color !default;
+
+$timeline-point-size: 1.75rem !default;
+$timeline-point-indicator-size: 12px !default;
+$timeline-point-indicator-color: $primary !default;
+$timeline-point-indicator-wrapper-size: 20px !default;
+
+$timeline-item-min-height: 4rem !default;
+$timeline-item-icon-font-size: 0.85rem !default;
+
+$timeline-event-time-size: 0.85rem !default;
+$timeline-event-time-color: $text-muted !default;
diff --git a/src/@core/scss/base/components/avatar.scss b/src/@core/scss/base/components/avatar.scss
new file mode 100644
index 00000000..2015636c
--- /dev/null
+++ b/src/@core/scss/base/components/avatar.scss
@@ -0,0 +1,192 @@
+// =========================================================================================
+// File Name: avatar.scss
+// Description: Avatar style.
+// ----------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ==========================================================================================
+
+// Component: Avatar
+// ========================================================================
+
+// avatar
+
+.avatar {
+ white-space: nowrap;
+ background-color: $avatar-bg;
+ border-radius: 50%;
+ position: relative;
+ cursor: pointer;
+ color: $white;
+ display: inline-flex;
+ font-size: 1rem;
+ text-align: center;
+ vertical-align: middle;
+ font-weight: 600;
+
+ // avatar content
+ .avatar-content {
+ width: $avatar-size;
+ height: $avatar-size;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ border-radius: 50%;
+ font-size: 0.857rem;
+ .avatar-icon {
+ height: 1rem;
+ width: 1rem;
+ }
+ }
+ [class*='avatar-status-'] {
+ border-radius: 50%;
+ width: $avatar-status-size;
+ height: $avatar-status-size;
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ border: 1px solid $white;
+ &.avatar-status-lg,
+ &.avatar-status-xl {
+ width: $avatar-status-size-lg;
+ height: $avatar-status-size-lg;
+ border-width: 2px;
+ }
+ }
+ .avatar-status-online {
+ background-color: $success;
+ }
+ .avatar-status-busy {
+ background-color: $danger;
+ }
+ .avatar-status-away {
+ background-color: $warning;
+ }
+ .avatar-status-offline {
+ background-color: $secondary;
+ }
+
+ // avatar label with basic size
+ // using in FAQ & other pages
+ &.avatar-tag {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 42px;
+ width: 42px;
+ border-radius: $border-radius;
+ }
+
+ // avatar img
+ img {
+ border-radius: 50%;
+ }
+
+ // Size Modifier
+ // ========================================================================
+
+ &.avatar-xl {
+ font-size: 1.5rem;
+ img {
+ width: $avatar-size-xl;
+ height: $avatar-size-xl;
+ }
+ .avatar-content {
+ height: $avatar-size-xl;
+ width: $avatar-size-xl;
+ font-size: 2.57rem;
+ .avatar-icon,
+ i,
+ svg {
+ height: 3rem;
+ width: 3rem;
+ font-size: 3rem;
+ }
+ }
+ [class*='avatar-status-'] {
+ right: 3px;
+ bottom: 0;
+ }
+ }
+ &.avatar-lg {
+ font-size: 1.2rem;
+ img {
+ width: $avatar-size-lg;
+ height: $avatar-size-lg;
+ }
+ .avatar-content {
+ width: $avatar-size-lg;
+ height: $avatar-size-lg;
+ font-size: 1.714rem;
+ .avatar-icon,
+ i,
+ svg {
+ height: 2rem;
+ width: 2rem;
+ font-size: 2rem;
+ }
+ }
+ [class*='avatar-status-'] {
+ right: 3px;
+ bottom: 1px;
+ }
+ }
+
+ &.avatar-sm {
+ .avatar-content {
+ width: $avatar-size-sm;
+ height: $avatar-size-sm;
+ .avatar-icon,
+ i,
+ svg {
+ height: 1rem;
+ width: 1rem;
+ font-size: 1rem;
+ }
+ }
+ img {
+ width: $avatar-size-sm;
+ height: $avatar-size-sm;
+ }
+ [class*='avatar-status-'] {
+ right: -3px;
+ bottom: -2px;
+ }
+ }
+}
+
+// Avatar Group SCSS
+.avatar-group {
+ display: flex;
+ justify-content: flex-start;
+ .avatar {
+ transition: all 0.25s ease;
+ img,
+ .avatar-content {
+ box-shadow: 0 0 0 2px $avatar-group-border, inset 0 0 0 1px rgba($black, 0.07);
+ }
+ .avatar-content {
+ background-color: lighten(theme-color('secondary'), 20%) !important;
+ }
+ &:hover {
+ transition: all 0.25s ease;
+ }
+ &.pull-up:hover {
+ transform: translateY(-4px) scale(1.07);
+ }
+ }
+ // Avatar Group Sizings
+ .avatar:not(:first-child) {
+ margin-left: -0.55rem;
+ }
+ .avatar-sm:not(:first-child) {
+ margin-left: -0.4rem;
+ }
+ .avatar-lg:not(:first-child) {
+ margin-left: -1rem;
+ }
+ .avatar-xl:not(:first-child) {
+ margin-left: -1.5rem;
+ }
+}
diff --git a/src/@core/scss/base/components/bootstrap-social.scss b/src/@core/scss/base/components/bootstrap-social.scss
new file mode 100644
index 00000000..185034bc
--- /dev/null
+++ b/src/@core/scss/base/components/bootstrap-social.scss
@@ -0,0 +1,316 @@
+$bs-height-base: ($line-height-base + $input-btn-padding-y * 2) !default;
+$bs-height-lg: (floor($font-size-lg * $line-height-base) + $input-btn-padding-y-lg * 2) !default;
+$bs-height-sm: (floor($font-size-sm * 1.5) + $input-btn-padding-y-lg * 2) !default;
+$bs-height-xs: (floor($font-size-sm * 0.2) + $input-btn-padding-y-lg) !default;
+
+.btn-social {
+ position: relative;
+ padding-left: ($bs-height-base + $input-btn-padding-x);
+ text-align: left;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ > :first-child {
+ position: absolute;
+ left: 0;
+ top: 2px;
+ bottom: 0;
+ width: $bs-height-base;
+ line-height: ($bs-height-base - 0.25);
+ font-size: $font-size-base;
+ text-align: center;
+ border-right: 1px solid rgba($black, 0.2);
+ }
+}
+
+.btn-social-icon {
+ @extend .btn-social;
+ height: ($bs-height-base);
+ width: ($bs-height-base);
+ padding: 0;
+ > :first-child {
+ border: none;
+ text-align: center;
+ width: 100% !important;
+ }
+}
+
+// Social button Mixin
+@mixin btn-social($color-bg, $color: #fff, $hover: $color-bg, $border-hover: $color-bg) {
+ background-color: $color-bg;
+ @include button-variant($color-bg, $color, $hover, $border-hover);
+ color: $white !important;
+ border: none;
+}
+
+// Social Outline Button Mixin
+@mixin btn-social-outline($color-bg) {
+ border: 1px solid $color-bg !important;
+ color: $color-bg;
+}
+
+// Social Outline Button Hover Mixin
+@mixin btn-hover-outline($color-bg) {
+ color: darken($color-bg, 20%);
+ border: 1px solid darken($color-bg, 20%) !important;
+}
+
+// Social button
+.btn-adn {
+ @include btn-social(#d87a68);
+}
+.btn-bitbucket {
+ @include btn-social(#205081);
+}
+.btn-dropbox {
+ @include btn-social(#1087dd);
+}
+.btn-facebook {
+ @include btn-social(#3b5998);
+}
+.btn-flickr {
+ @include btn-social(#ff0084);
+}
+.btn-foursquare {
+ @include btn-social(#f94877);
+}
+.btn-github {
+ @include btn-social(#444444);
+}
+.btn-google {
+ @include btn-social(#dd4b39);
+}
+.btn-instagram {
+ @include btn-social(#3f729b);
+}
+.btn-linkedin {
+ @include btn-social(#007bb6);
+}
+.btn-microsoft {
+ @include btn-social(#2672ec);
+}
+.btn-odnoklassniki {
+ @include btn-social(#f4731c);
+}
+.btn-openid {
+ @include btn-social(#f7931e);
+}
+.btn-pinterest {
+ @include btn-social(#cb2027);
+}
+.btn-reddit {
+ @include btn-social(#eff7ff, #000, #000, #000);
+}
+.btn-soundcloud {
+ @include btn-social(#ff5500);
+}
+.btn-tumblr {
+ @include btn-social(#2c4762);
+}
+.btn-twitter {
+ @include btn-social(#55acee, #fff);
+}
+.btn-vimeo {
+ @include btn-social(#1ab7ea);
+}
+.btn-vk {
+ @include btn-social(#587ea3);
+}
+.btn-yahoo {
+ @include btn-social(#720e9e);
+}
+
+// Social Outline button
+.btn-outline-adn {
+ @include btn-social-outline(#d87a68);
+}
+.btn-outline-bitbucket {
+ @include btn-social-outline(#205081);
+}
+.btn-outline-dropbox {
+ @include btn-social-outline(#1087dd);
+}
+.btn-outline-facebook {
+ @include btn-social-outline(#3b5998);
+}
+.btn-outline-flickr {
+ @include btn-social-outline(#ff0084);
+}
+.btn-outline-foursquare {
+ @include btn-social-outline(#f94877);
+}
+.btn-outline-github {
+ @include btn-social-outline(#444444);
+}
+.btn-outline-google {
+ @include btn-social-outline(#dd4b39);
+}
+.btn-outline-instagram {
+ @include btn-social-outline(#3f729b);
+}
+.btn-outline-linkedin {
+ @include btn-social-outline(#007bb6);
+}
+.btn-outline-microsoft {
+ @include btn-social-outline(#2672ec);
+}
+.btn-outline-odnoklassniki {
+ @include btn-social-outline(#f4731c);
+}
+.btn-outline-openid {
+ @include btn-social-outline(#f7931e);
+}
+.btn-outline-pinterest {
+ @include btn-social-outline(#cb2027);
+}
+.btn-outline-reddit {
+ @include btn-social-outline(#ff4500);
+}
+.btn-outline-soundcloud {
+ @include btn-social-outline(#ff5500);
+}
+.btn-outline-tumblr {
+ @include btn-social-outline(#2c4762);
+}
+.btn-outline-twitter {
+ @include btn-social-outline(#55acee);
+}
+.btn-outline-vimeo {
+ @include btn-social-outline(#1ab7ea);
+}
+.btn-outline-vk {
+ @include btn-social-outline(#587ea3);
+}
+.btn-outline-yahoo {
+ @include btn-social-outline(#720e9e);
+}
+
+// Social Outline hover button
+.btn-outline-adn:hover {
+ @include btn-hover-outline(#d87a68);
+}
+.btn-outline-bitbucket:hover {
+ @include btn-hover-outline(#205081);
+}
+.btn-outline-dropbox:hover {
+ @include btn-hover-outline(#1087dd);
+}
+.btn-outline-facebook:hover {
+ @include btn-hover-outline(#3b5998);
+}
+.btn-outline-flickr:hover {
+ @include btn-hover-outline(#ff0084);
+}
+.btn-outline-foursquare:hover {
+ @include btn-hover-outline(#f94877);
+}
+.btn-outline-github:hover {
+ @include btn-hover-outline(#444444);
+}
+.btn-outline-google:hover {
+ @include btn-hover-outline(#dd4b39);
+}
+.btn-outline-instagram:hover {
+ @include btn-hover-outline(#3f729b);
+}
+.btn-outline-linkedin:hover {
+ @include btn-hover-outline(#007bb6);
+}
+.btn-outline-microsoft:hover {
+ @include btn-hover-outline(#2672ec);
+}
+.btn-outline-odnoklassniki:hover {
+ @include btn-hover-outline(#f4731c);
+}
+.btn-outline-openid:hover {
+ @include btn-hover-outline(#f7931e);
+}
+.btn-outline-pinterest:hover {
+ @include btn-hover-outline(#cb2027);
+}
+.btn-outline-reddit:hover {
+ @include btn-hover-outline(#ff4500);
+}
+.btn-outline-soundcloud:hover {
+ @include btn-hover-outline(#ff5500);
+}
+.btn-outline-tumblr:hover {
+ @include btn-hover-outline(#2c4762);
+}
+.btn-outline-twitter:hover {
+ @include btn-hover-outline(#55acee);
+}
+.btn-outline-vimeo:hover {
+ @include btn-hover-outline(#1ab7ea);
+}
+.btn-outline-vk:hover {
+ @include btn-hover-outline(#587ea3);
+}
+.btn-outline-yahoo:hover {
+ @include btn-hover-outline(#720e9e);
+}
+
+// Social Background colors
+.bg-adn {
+ background-color: #d87a68;
+}
+.bg-bitbucket {
+ background-color: #205081;
+}
+.bg-dropbox {
+ background-color: #1087dd;
+}
+.bg-facebook {
+ background-color: #3b5998;
+}
+.bg-flickr {
+ background-color: #ff0084;
+}
+.bg-foursquare {
+ background-color: #f94877;
+}
+.bg-github {
+ background-color: #444444;
+}
+.bg-google {
+ background-color: #dd4b39;
+}
+.bg-instagram {
+ background-color: #3f729b;
+}
+.bg-linkedin {
+ background-color: #007bb6;
+}
+.bg-microsoft {
+ background-color: #2672ec;
+}
+.bg-odnoklassniki {
+ background-color: #f4731c;
+}
+.bg-openid {
+ background-color: #f7931e;
+}
+.bg-pinterest {
+ background-color: #cb2027;
+}
+.bg-reddit {
+ background-color: #ff4500;
+}
+.bg-soundcloud {
+ background-color: #ff5500;
+}
+.bg-tumblr {
+ background-color: #2c4762;
+}
+.bg-twitter {
+ background-color: #55acee;
+}
+.bg-vimeo {
+ background-color: #1ab7ea;
+}
+.bg-vk {
+ background-color: #587ea3;
+}
+.bg-yahoo {
+ background-color: #720e9e;
+}
diff --git a/src/@core/scss/base/components/chart.scss b/src/@core/scss/base/components/chart.scss
new file mode 100644
index 00000000..e345c50e
--- /dev/null
+++ b/src/@core/scss/base/components/chart.scss
@@ -0,0 +1,35 @@
+// Apex chart Scss
+
+.apexcharts-canvas {
+ // Tooltip Color
+ .apexcharts-tooltip {
+ color: $body-color !important;
+ &.apexcharts-theme-dark {
+ color: $white !important;
+ }
+ }
+ // Toolbar Download Option Color
+ .apexcharts-toolbar {
+ .apexcharts-menu {
+ .apexcharts-menu-item {
+ color: $body-color;
+ }
+ }
+ }
+
+ // Text font family
+ .apexcharts-text,
+ .apexcharts-datalabel {
+ font-family: $font-family-base !important;
+ }
+}
+
+// apex charts tooltip
+.apexcharts-xaxistooltip {
+ color: $body-color !important;
+}
+
+// Toolbar Z-index
+.apexcharts-toolbar {
+ z-index: 10;
+}
diff --git a/src/@core/scss/base/components/customizer.scss b/src/@core/scss/base/components/customizer.scss
new file mode 100644
index 00000000..f6c5984e
--- /dev/null
+++ b/src/@core/scss/base/components/customizer.scss
@@ -0,0 +1,98 @@
+/*=========================================================================================
+ File Name: customizer.scss
+ Description: CSS used for demo purpose only. Remove this css from your project.
+ ----------------------------------------------------------------------------------------
+ Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+ Author: PIXINVENT
+ Author URL: http://www.themeforest.net/user/pixinvent
+==========================================================================================*/
+
+.customizer {
+ width: 400px;
+ right: -400px;
+ padding: 0;
+ background-color: $white;
+ z-index: 1051;
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ height: 100vh;
+ height: calc(var(--vh, 1vh) * 100);
+ transition: right 0.4s cubic-bezier(0.05, 0.74, 0.2, 0.99);
+ backface-visibility: hidden;
+ border-left: 1px solid rgba($black, 0.05);
+
+ &.open {
+ box-shadow: 0 15px 30px 0 rgba($black, 0.11), 0 5px 15px 0 rgba($black, 0.08);
+ right: 0;
+ }
+
+ // customizer content height
+ .customizer-content {
+ position: relative;
+ height: 100%;
+ }
+
+ //customizer close button
+ .customizer-close {
+ position: absolute;
+ right: 0.6rem;
+ top: 0.6rem;
+ padding: 7px;
+ width: auto;
+ z-index: 10;
+ color: $headings-color;
+ i,
+ svg {
+ font-size: 1.5rem;
+ height: 1.5rem;
+ width: 1.5rem;
+ }
+ }
+
+ // customizer toggle icon
+ .customizer-toggle {
+ background: $primary;
+ color: $white !important;
+ display: block;
+ box-shadow: -3px 0px 8px rgba($black, 0.1);
+ border-top-left-radius: 6px;
+ border-bottom-left-radius: 6px;
+ position: absolute;
+ top: 50%;
+ width: 38px;
+ height: 38px;
+ left: -39px;
+ text-align: center;
+ line-height: 40px;
+ cursor: pointer;
+ }
+
+ // theme color box styles
+ .color-box {
+ height: 24px;
+ width: 24px;
+ margin: 0.5rem;
+ border-radius: 0.5rem;
+ cursor: pointer;
+ position: relative;
+ &.selected {
+ &:after {
+ content: '';
+ border: 1px solid $primary;
+ height: 30px;
+ width: 30px;
+ top: -3px;
+ left: -3px;
+ position: absolute;
+ border-radius: 0.5rem;
+ }
+ &.border {
+ &:after {
+ top: -4px;
+ left: -4px;
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/components/demo.scss b/src/@core/scss/base/components/demo.scss
new file mode 100644
index 00000000..cf6f0865
--- /dev/null
+++ b/src/@core/scss/base/components/demo.scss
@@ -0,0 +1,121 @@
+/*=========================================================================================
+ File Name: demo.scss
+ Description: CSS used for demo purpose only. Remove this css from your project.
+ ----------------------------------------------------------------------------------------
+ Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+ Author: PIXINVENT
+ Author URL: http://www.themeforest.net/user/pixinvent
+==========================================================================================*/
+
+// Demo content spacing
+.demo-inline-spacing {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start;
+ align-items: center;
+ & > * {
+ margin-right: 1.5rem;
+ margin-top: 1.5rem;
+ }
+}
+
+// Demo content spacing
+.demo-vertical-spacing > * {
+ margin: 0;
+ margin-bottom: 1.5rem;
+ &:last-child {
+ margin: 0;
+ }
+}
+
+.demo-spacing-0 > *:last-child {
+ margin: 0;
+}
+
+// using in icon pages
+.icon-wrapper {
+ .feather {
+ height: 24px;
+ width: 24px;
+ }
+}
+
+.scroll-example {
+ padding: 0.5rem;
+ position: relative;
+ border: 2px solid darken($body-bg, 10%);
+ overflow: auto;
+
+ .horz-scroll-content {
+ width: 1200px;
+ }
+}
+
+.browser {
+ background: #e0e0e0;
+ border: 4px solid #e0e0e0;
+ width: 100%;
+ height: 12rem;
+ padding-top: 20px;
+ margin: 0 0 10px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.browser iframe {
+ border: 0;
+ background: #fff;
+ height: 100%;
+ width: 100%;
+}
+
+.loader-wrapper {
+ height: 8em;
+}
+
+.maintenance-icon {
+ font-size: 4rem;
+}
+
+.animationIcon {
+ right: 30px;
+ bottom: 10px;
+}
+
+// Breadcrumb page alignment demo
+#component-breadcrumbs .breadcrumb:not(last-child){
+ margin-bottom: .5rem;
+}
+#breadcrumb-alignment {
+ .breadcrumb-wrapper {
+ box-shadow: 1px 1px 10px rgba($black, 0.1);
+ padding: 1px;
+ border-radius: $border-radius;
+ .breadcrumb {
+ margin-top: 0.8rem;
+ margin-bottom: 0.8rem;
+ }
+ }
+}
+.dark-layout {
+ #breadcrumb-alignment {
+ .breadcrumb-wrapper {
+ box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.24);
+ }
+ }
+}
+
+// Buy now
+.buy-now {
+ position: fixed;
+ bottom: 5%;
+ right: 79px;
+ z-index: 1031;
+ .btn {
+ box-shadow: 0 1px 20px 1px $danger !important;
+ &:hover {
+ box-shadow: none !important;
+ }
+ }
+}
diff --git a/src/@core/scss/base/components/divider.scss b/src/@core/scss/base/components/divider.scss
new file mode 100644
index 00000000..e6789742
--- /dev/null
+++ b/src/@core/scss/base/components/divider.scss
@@ -0,0 +1,104 @@
+// Divider
+
+.divider {
+ display: block;
+ text-align: center;
+ overflow: hidden;
+ white-space: nowrap;
+ margin: 1rem 0;
+
+ // divider text display prop
+
+ .divider-text {
+ position: relative;
+ display: inline-block;
+ font-size: 0.9375rem;
+ padding: 0 1rem;
+
+ // divider icon font size
+
+ i,
+ svg {
+ height: 1rem;
+ width: 1rem;
+ font-size: 1rem;
+ }
+
+ // divider border
+
+ &:before,
+ &:after {
+ content: '';
+ position: absolute;
+ top: 50%;
+ width: 9999px;
+ border-top: 1px solid $border-color;
+ }
+
+ // divider spacing
+ &:before {
+ right: 100%;
+ }
+
+ &:after {
+ left: 100%;
+ }
+ }
+
+ // divider positions config
+
+ &.divider-left {
+ .divider-text {
+ float: left;
+ padding-left: 0;
+ &:before {
+ display: none;
+ }
+ }
+ }
+ &.divider-left-center {
+ .divider-text {
+ left: -25%;
+ }
+ }
+
+ &.divider-right {
+ .divider-text {
+ float: right;
+ padding-right: 0;
+ &:after {
+ display: none;
+ }
+ }
+ }
+ &.divider-right-center {
+ .divider-text {
+ right: -25%;
+ }
+ }
+
+ // divider styles
+
+ &.divider-dotted {
+ .divider-text {
+ &:before,
+ &:after {
+ border-style: dotted;
+ border-width: 1px;
+ border-top-width: 0;
+ border-color: $border-color;
+ }
+ }
+ }
+ &.divider-dashed {
+ .divider-text {
+ &:before,
+ &:after {
+ border-style: dashed;
+ border-width: 1px;
+ border-top-width: 0;
+ border-color: $border-color;
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/components/search.scss b/src/@core/scss/base/components/search.scss
new file mode 100644
index 00000000..f18008ad
--- /dev/null
+++ b/src/@core/scss/base/components/search.scss
@@ -0,0 +1,237 @@
+/*=========================================================================================
+ File Name: search.scss
+ Description: Search functionality.
+ ----------------------------------------------------------------------------------------
+ Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+ Author: PIXINVENT
+ Author URL: http://www.themeforest.net/user/pixinvent
+==========================================================================================*/
+
+.navbar-container {
+ a.nav-link-search {
+ float: left;
+ }
+
+ .search-input {
+ width: 0;
+ float: left;
+ display: none;
+
+ // select
+ input {
+ width: 0;
+ border: none;
+ background: none;
+ transition: all 0.2s ease-out;
+ line-height: 16px;
+ padding: 1.6rem 3.6rem;
+ }
+
+ &.open {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 1000;
+ width: 100%;
+ display: block;
+ background: $white;
+ border-radius: 0.5rem;
+
+ .search-input-close,
+ .search-input-icon {
+ display: block;
+ }
+
+ // select
+
+ input {
+ width: 100%;
+ outline: none;
+ background: none;
+ height: auto;
+ box-shadow: none;
+ transition: all 0.3s ease-out;
+ }
+ }
+
+ .search-list {
+ max-height: 450px;
+ height: auto;
+ position: absolute;
+ top: 100%;
+ left: 0;
+ background: $white;
+ width: 100%;
+ margin-top: 0.5rem;
+ padding-left: 0;
+ border-radius: $border-radius;
+ display: none;
+ @media only screen and (min-device-width: 320px) and (max-device-width: 875px) and (orientation: landscape) {
+ max-height: 250px;
+ }
+
+ &.search-list-bookmark {
+ height: auto !important;
+ i,
+ svg {
+ font-size: 1.2rem;
+ height: 1.2rem;
+ width: 1.2rem;
+ }
+ }
+
+ &.show {
+ display: block;
+ min-height: 3rem;
+ }
+
+ li {
+ a {
+ padding: 0.9rem 1rem;
+ color: $body-color;
+
+ i,
+ svg[class*='feather feather-'] {
+ height: 1.25rem;
+ width: 1.25rem;
+ font-size: 1.25rem;
+ }
+ }
+
+ &:first-child {
+ border-top-left-radius: $border-radius;
+ border-top-right-radius: $border-radius;
+ }
+
+ &:last-child {
+ border-bottom-left-radius: $border-radius;
+ border-bottom-right-radius: $border-radius;
+ }
+
+ &.auto-suggestion {
+ display: flex;
+ align-items: center;
+ cursor: pointer;
+ &:hover,
+ &.current_item {
+ background-color: $body-bg;
+ }
+ }
+ }
+ }
+
+ .search-input-icon {
+ z-index: 2;
+ display: none;
+ position: absolute;
+ left: 1.5rem;
+ top: 32%;
+ cursor: pointer;
+
+ i,
+ svg {
+ height: 1.25rem;
+ width: 1.25rem;
+ font-size: 1.25rem;
+ }
+ }
+
+ .search-input-close {
+ z-index: 1;
+ display: none;
+ position: absolute;
+ right: 2rem;
+ top: 32%;
+ cursor: pointer;
+
+ i,
+ svg {
+ height: 1.25rem;
+ width: 1.25rem;
+ font-size: 1.25rem;
+ }
+ }
+ }
+
+ .bookmark-input {
+ position: absolute;
+ top: 102%;
+ width: 25%;
+ display: none;
+ background: $white;
+ border-radius: $border-radius;
+ box-shadow: 0 15px 30px 0 rgba($black, 0.11), 0 5px 15px 0 rgba($black, 0.08);
+
+ &.show {
+ display: block;
+ }
+
+ .bookmark-input-icon {
+ position: absolute;
+ z-index: 1;
+ top: 20px;
+ left: 24px;
+ }
+
+ input {
+ padding: 0.7rem 0.7rem 0.7rem 2.5rem;
+ margin: 12px;
+ width: calc(100% - 24px); // Reduce width by 10*2
+ background: $white;
+ border: 1px solid rgba($black, 0.2);
+
+ &:focus {
+ border: 1px solid $primary;
+ }
+ }
+
+ .search-list {
+ position: relative; // To consider outer div width
+ }
+ }
+
+ .bookmark-icon {
+ cursor: pointer;
+ }
+
+ .dropdown.bookmark-dropdown {
+ padding: 1.4rem 0.5rem 1.35rem;
+
+ .dropdown-toggle:after {
+ display: none;
+ }
+ }
+
+ .search-data-title {
+ line-height: 1.25rem;
+ }
+}
+
+.navbar-dark
+// .navbar-semi-light
+{
+ .search-input {
+ .input {
+ color: #f5f7fa;
+ border-radius: 0.5rem;
+ }
+
+ &.open {
+ .input {
+ color: #f5f7fa;
+ border: 1px solid #f5f7fa;
+ }
+ }
+ }
+}
+
+// navbar-sticky
+.navbar-static {
+ .navbar-container {
+ .search-input {
+ &.open {
+ border-radius: 0;
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/components/timeline.scss b/src/@core/scss/base/components/timeline.scss
new file mode 100644
index 00000000..fbf7367c
--- /dev/null
+++ b/src/@core/scss/base/components/timeline.scss
@@ -0,0 +1,101 @@
+// =========================================================================================
+// File Name: timeline.scss
+// Description: Timeline style.
+// ----------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ==========================================================================================
+
+// Component: Timeline
+// ========================================================================
+
+.timeline {
+ padding: 0;
+ margin-bottom: 0;
+ margin-left: 1rem;
+ list-style: none;
+
+ // Timeline Item
+ .timeline-item {
+ position: relative;
+ padding-left: 2.5rem;
+ border-left: 1px solid $timeline-border-color;
+
+ &:not(:last-child) {
+ padding-bottom: 1.8rem;
+ }
+
+ // Timeline Point
+ .timeline-point {
+ position: absolute;
+ left: -0.85rem;
+ top: 0;
+ z-index: 2;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: $timeline-point-size;
+ width: $timeline-point-size;
+ text-align: center;
+ border-radius: 50%;
+ border: 1px solid $timeline-point-indicator-color;
+ background-color: $white;
+
+ // Timeline Point Indicator
+ &.timeline-point-indicator {
+ left: -0.412rem;
+ top: 0.07rem;
+ height: $timeline-point-indicator-size;
+ width: $timeline-point-indicator-size;
+ border: 0;
+ background-color: $timeline-point-indicator-color;
+
+ &:before {
+ content: '';
+ background: rgba($color: $timeline-point-indicator-color, $alpha: 0.12);
+ height: $timeline-point-indicator-wrapper-size;
+ width: $timeline-point-indicator-wrapper-size;
+ display: block;
+ position: absolute;
+ top: -0.285rem;
+ left: -0.285rem;
+ border-radius: 50%;
+ }
+ }
+
+ // Icons
+ i,
+ svg {
+ color: $timeline-point-indicator-color;
+ font-size: $timeline-item-icon-font-size;
+ vertical-align: baseline;
+ }
+ }
+
+ .timeline-event {
+ position: relative;
+ width: 100%;
+ min-height: $timeline-item-min-height;
+ // background-color: transparent;
+
+ .timeline-event-time {
+ font-size: $timeline-event-time-size;
+ color: $timeline-event-time-color;
+ }
+ }
+
+ &:last-of-type {
+ border-left-color: transparent !important;
+ &:after {
+ content: '';
+ position: absolute;
+ left: -1px;
+ bottom: 0;
+ width: 1px;
+ height: 100%;
+ background: linear-gradient($border-color, transparent);
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/core/colors/_palette.scss b/src/@core/scss/base/core/colors/_palette.scss
new file mode 100644
index 00000000..494eb928
--- /dev/null
+++ b/src/@core/scss/base/core/colors/_palette.scss
@@ -0,0 +1,534 @@
+// ================================================================================================
+// File Name: pallette.scss
+// Description: Custom color system styles, includes background, border and text colors
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+// ================================================================================================
+// WARNING: PLEASE DO NOT CHANGE THIS VARIABLE FILE.
+// THIS FILE WILL GET OVERWRITTEN WITH EACH Vuexy HTML TEMPLATE RELEASE.
+// TIP:
+// We suggest you to use this (assets/scss/colors/palette.scss) file for overriding color variables.
+// ================================================================================================
+
+// usage: theme-color("name_of_color", "type_of_color")
+// to avoid to repeating map-get($colors, ...)
+
+@function color-function($color, $type) {
+ @if map-has-key($colors, $color) {
+ $curr_color: map-get($colors, $color);
+ @if map-has-key($curr_color, $type) {
+ @return map-get($curr_color, $type);
+ }
+ }
+
+ // @warn "Unknown `#{name}` in $colors.";
+ @return null;
+}
+
+// Color palettes
+@import 'palette-variables';
+
+// Color Classes
+// Text color: .color .lighten-* / .darken-* / .accent-*
+// Background: .bg-color .bg-lighten-* / .bg-darken-* / .bg-accent-*
+// border: .border-color .border-lighten-* / .border-darken-* / .border-accent-*
+// border-top: .border-top-color .border-top-lighten-* / .border-top-darken-* / .border-top-accent-*
+// border-bottom: .border-bottom-color .border-bottom-lighten-* / .border-bottom-darken-* / .border-bottom-accent-*
+// border-left: .border-left-color .border-left-lighten-* / .border-left-darken-* / .border-left-accent-*
+// border-right: .border-right-color .border-right-lighten-* / .border-right-darken-* / .border-right-accent-*
+
+@each $color_name, $color in $colors {
+ @each $color_type, $color_value in $color {
+ @if $color_type== 'base' {
+ // background color
+ .bg-#{$color_name} {
+ background-color: $color_value !important;
+
+ .card-header,
+ .card-footer {
+ background-color: transparent;
+ }
+ }
+
+ // Alert
+ @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') {
+ .alert-#{$color_name} {
+ background: rgba($color_value, 0.12) !important;
+ color: $color_value !important;
+
+ .alert-heading {
+ @include alert-heading-bs($color_value);
+ }
+
+ .alert-link {
+ color: darken($color_value, 5%) !important;
+ }
+
+ // closable alert
+ .close {
+ color: $color_value !important;
+ }
+ }
+ }
+
+ // bg color lighten for rgba - opacity set
+ @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white' and $color_name != 'dark') {
+ .bg-light-#{$color_name} {
+ background: rgba($color_value, 0.12) !important;
+ color: $color_value !important;
+
+ // Calendar background, color and border color
+ &.fc-h-event,
+ &.fc-v-event {
+ border-color: rgba($color_value, 0.1);
+ }
+
+ .fc-list-event-dot {
+ border-color: $color_value !important;
+ }
+
+ &.fc-list-event {
+ &:hover td {
+ background: rgba($color_value, 0.1) !important;
+ }
+
+ .fc-list-event-title {
+ color: $body-color;
+ }
+ }
+ }
+ }
+
+ // avatar with light bg
+ @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white' and $color_name != 'dark') {
+ .avatar.bg-light-#{$color_name} {
+ color: $color_value !important;
+ }
+ }
+
+ // Border colors
+ .border-#{$color_name} {
+ border: 1px solid $color_value !important;
+ }
+
+ .border-top-#{$color_name} {
+ border-top: 1px solid $color_value;
+ }
+
+ .border-bottom-#{$color_name} {
+ border-bottom: 1px solid $color_value;
+ }
+
+ .border-left-#{$color_name} {
+ border-left: 1px solid $color_value;
+ }
+
+ .border-right-#{$color_name} {
+ border-right: 1px solid $color_value;
+ }
+
+ // badge glow colors
+ .bg-#{$color_name},
+ .border-#{$color_name},
+ .badge-#{$color-name} {
+ &.badge-glow {
+ box-shadow: 0px 0px 10px $color_value;
+ }
+ }
+
+ // Badge Background Color
+ @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') {
+ .badge {
+ // Badge Light Background
+ &.badge-light-#{$color_name} {
+ background-color: rgba($color: $color_value, $alpha: 0.12);
+ color: $color_value !important;
+ }
+ }
+ }
+
+ // Overlay colors
+ .overlay-#{$color_name} {
+ @include bg-opacity($color_value, 0.6);
+ }
+
+ // Basic buttons
+ @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') {
+ .btn-#{$color_name} {
+ border-color: $color_value !important;
+ background-color: $color_value !important;
+ color: $white !important;
+
+ &:focus,
+ &:active,
+ &.active {
+ color: $white;
+ background-color: color-function($color_name, 'darken-1') !important;
+ }
+
+ &:hover:not(.disabled):not(:disabled) {
+ box-shadow: 0 8px 25px -8px rgba($color-value, 1);
+ }
+
+ &:not(:disabled):not(.disabled):active:focus {
+ box-shadow: none;
+ }
+ }
+ }
+
+ // For Btn Flat
+ @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') {
+ .btn-flat-#{$color-name} {
+ background-color: transparent;
+ color: $color-value;
+
+ &:hover {
+ color: $color-value;
+ }
+
+ &:hover:not(.disabled):not(:disabled) {
+ background-color: rgba($color-value, 0.12);
+ }
+
+ &:active,
+ &.active,
+ &:focus {
+ background-color: rgba($color: $color_value, $alpha: 0.2);
+ color: $color_value;
+ }
+
+ &.dropdown-toggle::after {
+ background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $color_value), '#', '%23'));
+ }
+ }
+ }
+
+ // For Btn Relief
+ @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') {
+ .btn-relief-#{$color-name} {
+ background-color: $color-value;
+ box-shadow: inset 0 -3px 0 0 rgba($black, 0.2);
+ color: $white;
+ transition: all 0.2s ease;
+ @if $color_name == 'dark' {
+ &:hover:not(.disabled):not(:disabled) {
+ background-color: color-function($color_name, 'darken-3');
+ }
+ } @else {
+ &:hover:not(.disabled):not(:disabled) {
+ background-color: color-function($color_name, 'lighten-1');
+ }
+ }
+ &:active,
+ &.active,
+ &:focus {
+ background-color: color-function($color_name, 'darken-1');
+ }
+
+ &:hover {
+ color: $white;
+ }
+ &:active,
+ &.active {
+ outline: none;
+ box-shadow: none;
+ transform: translateY(3px);
+ }
+ }
+ }
+
+ // Outline buttons
+ @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') {
+ .btn-outline-#{$color_name} {
+ border: 1px solid $color_value !important;
+ background-color: transparent;
+ color: $color_value;
+
+ &:hover:not(.disabled):not(:disabled) {
+ background-color: rgba($color: $color_value, $alpha: 0.04);
+ color: $color_value;
+ }
+ &:not(:disabled):not(.disabled):active:focus {
+ box-shadow: none;
+ }
+ &:not(:disabled):not(.disabled):active,
+ &:not(:disabled):not(.disabled).active,
+ &:not(:disabled):not(.disabled):focus {
+ background-color: rgba($color: $color_value, $alpha: 0.2);
+ color: $color_value;
+ }
+
+ &.dropdown-toggle::after {
+ background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $color_value), '#', '%23'));
+ }
+ // split toggle have show class
+ .show > &.dropdown-toggle {
+ background-color: rgba($color: $color_value, $alpha: 0.2);
+ color: $color_value;
+ }
+ }
+ }
+
+ // Wave effect
+ @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') {
+ .btn-outline-#{$color_name},
+ .btn-flat-#{$color-name} {
+ &.waves-effect {
+ .waves-ripple {
+ background: radial-gradient(
+ rgba($color_value, 0.2) 0,
+ rgba($color_value, 0.3) 40%,
+ rgba($color_value, 0.4) 50%,
+ rgba($color_value, 0.5) 60%,
+ rgba($white, 0) 70%
+ );
+ }
+ }
+ }
+ }
+
+ // Bullet colors for email app
+ @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') {
+ .bullet {
+ &.bullet-#{$color_name} {
+ background-color: $color_value;
+ }
+ }
+ }
+
+ // Modal
+ @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') {
+ .modal {
+ &.modal-#{$color_name} {
+ .modal-header {
+ .modal-title {
+ color: $color_value;
+ }
+ .close {
+ color: $color_value !important;
+ }
+ }
+ }
+ }
+ }
+
+ // For Pagination
+ @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white' and $color_name != 'dark') {
+ .pagination-#{$color-name} {
+ .page-item {
+ &.active {
+ .page-link {
+ background: $color-value !important;
+ color: $white;
+
+ &:hover {
+ color: $white;
+ }
+ }
+ }
+
+ .page-link {
+ &:hover {
+ color: $color_value;
+ }
+ }
+
+ &.prev-item,
+ &.next-item {
+ .page-link:hover {
+ background: $color_value;
+ color: $white;
+ }
+ }
+ &.next-item,
+ &.next {
+ .page-link {
+ &:active,
+ &:hover {
+ &:after {
+ background-image: url(str-replace(
+ str-replace($chevron-right, 'currentColor', $color_value),
+ '#',
+ '%23'
+ )) !important;
+ }
+ }
+ }
+ }
+ &.prev-item,
+ &.prev {
+ .page-link {
+ &:active,
+ &:hover {
+ &:before {
+ background-image: url(str-replace(
+ str-replace($chevron-left, 'currentColor', $color_value),
+ '#',
+ '%23'
+ )) !important;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // For Nav Pills
+ @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white' and $color_name != 'dark') {
+ .nav-pill-#{$color-name} {
+ .nav-item {
+ .nav-link {
+ &.active {
+ color: $white;
+ background-color: $color_value !important;
+ border-color: $color_value;
+ box-shadow: 0 4px 18px -4px rgba($color_value, 0.65);
+ }
+ }
+ }
+ }
+ }
+
+ // Progress Bars
+ @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') {
+ .progress-bar-#{$color_name} {
+ background-color: rgba($color_value, 0.12);
+
+ .progress-bar {
+ background-color: $color-value;
+ }
+ }
+ }
+
+ // Timeline
+ @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') {
+ .timeline {
+ .timeline-point-#{$color_name} {
+ border-color: $color_value !important;
+
+ i,
+ svg {
+ stroke: $color_value !important;
+ }
+
+ &.timeline-point-indicator {
+ background-color: $color_value !important;
+ &:before {
+ background: rgba($color: $color_value, $alpha: 0.12) !important;
+ }
+ }
+ }
+ }
+ }
+
+ // Divider
+ @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') {
+ .divider.divider-#{$color-name} {
+ .divider-text {
+ &:before,
+ &:after {
+ border-color: $color-value !important;
+ }
+ }
+ }
+ }
+
+ // Form Input Elements
+ // Checkbox & Radio
+
+ // todo: remove it once confirm
+ input:focus ~ .bg-#{$color_name} {
+ box-shadow: 0 0 0 0.075rem $white, 0 0 0 0.21rem $color_value !important;
+ }
+
+ // Custom Checkbox & Radio
+ @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') {
+ .custom-control-#{$color_name} {
+ .custom-control-input:checked ~ .custom-control-label::before,
+ .custom-control-input:active ~ .custom-control-label::before {
+ border-color: $color_value;
+ background-color: $color_value;
+ }
+ &.custom-checkbox,
+ &.custom-radio {
+ .custom-control-input:checked ~ .custom-control-label::before,
+ .custom-control-input:active ~ .custom-control-label::before,
+ .custom-control-input:focus ~ .custom-control-label::before {
+ box-shadow: 0 2px 4px 0 rgba($color_value, 0.4) !important;
+ }
+ }
+ .custom-control-input:disabled:checked ~ .custom-control-label::before {
+ background-color: rgba($color_value, 0.65) !important;
+ border: none;
+ box-shadow: none !important;
+ }
+ .custom-control-input:focus ~ .custom-control-label::before {
+ border-color: $color_value;
+ }
+ }
+ }
+
+ // Bootstrap Custom Switches
+ @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') {
+ .custom-switch-#{$color-name} {
+ .custom-control-input:checked ~ .custom-control-label::before {
+ background-color: $color_value !important;
+ color: $white;
+ transition: all 0.2s ease-out;
+ }
+ }
+ }
+
+ // Select2
+ @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') {
+ .select2-#{$color-name} {
+ .select2-container--default {
+ .select2-selection--multiple {
+ .select2-selection__choice {
+ background: $color_value !important;
+ border-color: $color_value !important;
+ }
+ }
+ }
+ }
+ }
+ } @else {
+ .text-#{$color_name}.text-#{$color_type} {
+ color: $color_value !important;
+ }
+
+ .bg-#{$color_name}.bg-#{$color_type} {
+ background-color: $color_value !important;
+ }
+
+ .border-#{$color_name}.border-#{$color_type} {
+ border: 1px solid $color_value !important;
+ }
+
+ .border-top-#{$color_name}.border-top-#{$color_type} {
+ border-top: 1px solid $color_value !important;
+ }
+
+ .border-bottom-#{$color_name}.border-bottom-#{$color_type} {
+ border-bottom: 1px solid $color_value !important;
+ }
+
+ .border-left-#{$color_name}.border-left-#{$color_type} {
+ border-left: 1px solid $color_value !important;
+ }
+
+ .border-right-#{$color_name}.border-right-#{$color_type} {
+ border-right: 1px solid $color_value !important;
+ }
+
+ .overlay-#{$color_name}.overlay-#{$color_type} {
+ @include bg-opacity($color_value, 0.6);
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/core/colors/palette-gradient.scss b/src/@core/scss/base/core/colors/palette-gradient.scss
new file mode 100644
index 00000000..4762b36f
--- /dev/null
+++ b/src/@core/scss/base/core/colors/palette-gradient.scss
@@ -0,0 +1,72 @@
+// ================================================================================================
+// File Name: pallette-gradient.scss
+// Description: gradient color system styles
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@function color-function($color, $type) {
+ @if map-has-key($colors, $color) {
+ $curr_color: map-get($colors, $color);
+ @if map-has-key($curr_color, $type) {
+ @return map-get($curr_color, $type);
+ }
+ }
+ // @warn "Unknown `#{name}` in $colors.";
+ @return null;
+}
+
+// Color palettes
+@import 'palette-variables';
+
+@import 'bootstrap/scss/mixins/_gradients';
+@import 'bootstrap/scss/mixins/gradients';
+
+@each $color_name, $color in $colors {
+ @each $color_type, $color_value in $color {
+ @if $color_type == 'base' {
+ @if ($color_name != 'light' and $color_name != 'black' and $color_name != 'white') {
+ .bg-gradient-#{$color_name},
+ .btn-gradient-#{$color_name} {
+ color: $white;
+ transition: all 0.2s ease;
+ @if $color_name == 'dark' {
+ @if (color-function($color_name, 'base') != null) {
+ @include gradient-directional(map-get(($color), 'base'), map-get(($color), 'darken-2'), 47deg);
+ }
+ // for dark layout
+ .dark-layout & {
+ @include gradient-directional(map-get(($color), 'darken-2'), map-get(($color), 'base'), 47deg);
+ background-repeat: repeat;
+ }
+ background-repeat: repeat;
+ } @else {
+ @if (color-function($color_name, 'base') != null) {
+ @include gradient-directional(map-get(($color), 'base'), map-get(($color), 'lighten-2'), 47deg);
+ }
+ background-repeat: repeat;
+ }
+ &:hover,
+ &:active {
+ color: $white;
+ }
+ &:hover:not(.disabled):not(:disabled) {
+ transform: translateY(-2px);
+ }
+ &:active {
+ transform: translateY(0);
+ }
+ &:active,
+ &:focus {
+ @if (color-function($color_name, 'darken-2') != null) {
+ @include gradient-directional(map-get(($color), 'darken-2'), map-get(($color), 'base'), 47deg);
+ }
+ background-repeat: repeat;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/core/colors/palette-noui.scss b/src/@core/scss/base/core/colors/palette-noui.scss
new file mode 100644
index 00000000..ff352e74
--- /dev/null
+++ b/src/@core/scss/base/core/colors/palette-noui.scss
@@ -0,0 +1,30 @@
+// ================================================================================================
+// File Name: pallette-noui.scss
+// Description: noui color system styles
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+// Color palettes
+@import 'palette-variables';
+
+@each $color_name, $color in $colors {
+ @each $color_type, $color_value in $color {
+ @if $color_type == 'base' {
+ .slider-#{$color_name} {
+ background-color: rgba($color_value, 0.12);
+ .noUi-connect {
+ background: $color_value !important;
+ }
+ &.noUi-connect {
+ background: $color_value !important;
+ }
+ .noUi-handle {
+ border-color: $color_value !important;
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/core/colors/palette-variables.scss b/src/@core/scss/base/core/colors/palette-variables.scss
new file mode 100644
index 00000000..3542e349
--- /dev/null
+++ b/src/@core/scss/base/core/colors/palette-variables.scss
@@ -0,0 +1,126 @@
+// Overrides user _variables-components
+@import '../../bootstrap-extended/include';
+
+// Google Color Palette defined: http://www.google.com/design/spec/style/color.html
+
+$white-color: (
+ 'base': #ffffff
+);
+$black-color: (
+ 'base': #000000
+);
+$dark-color: (
+ 'base': theme-color('dark'),
+ 'darken-1': #343434,
+ 'darken-2': #1e1e1e,
+ 'darken-3': #626262
+);
+$light-color: (
+ 'base': theme-color('light')
+);
+
+$primary-color: (
+ 'lighten-5': lighten(theme-color('primary'), 25%),
+ 'lighten-4': lighten(theme-color('primary'), 20%),
+ 'lighten-3': lighten(theme-color('primary'), 15%),
+ 'lighten-2': lighten(theme-color('primary'), 10%),
+ 'lighten-1': lighten(theme-color('primary'), 5%),
+ 'base': theme-color('primary'),
+ 'darken-1': darken(theme-color('primary'), 5%),
+ 'darken-2': darken(theme-color('primary'), 10%),
+ 'darken-3': darken(theme-color('primary'), 15%),
+ 'darken-4': darken(theme-color('primary'), 20%),
+ 'accent-1': #bdfdff,
+ 'accent-2': #8afbff,
+ 'accent-3': #57faff,
+ 'accent-4': #3df9ff
+);
+$secondary-color: (
+ 'lighten-5': lighten(theme-color('secondary'), 25%),
+ 'lighten-4': lighten(theme-color('secondary'), 20%),
+ 'lighten-3': lighten(theme-color('secondary'), 15%),
+ 'lighten-2': lighten(theme-color('secondary'), 10%),
+ 'lighten-1': lighten(theme-color('secondary'), 5%),
+ 'base': theme-color('secondary'),
+ 'darken-1': darken(theme-color('secondary'), 5%),
+ 'darken-2': darken(theme-color('secondary'), 10%),
+ 'darken-3': darken(theme-color('secondary'), 15%),
+ 'darken-4': darken(theme-color('secondary'), 20%)
+);
+$success-color: (
+ 'lighten-5': lighten(theme-color('success'), 25%),
+ 'lighten-4': lighten(theme-color('success'), 20%),
+ 'lighten-3': lighten(theme-color('success'), 15%),
+ 'lighten-2': lighten(theme-color('success'), 10%),
+ 'lighten-1': lighten(theme-color('success'), 5%),
+ 'base': theme-color('success'),
+ 'darken-1': darken(theme-color('success'), 5%),
+ 'darken-2': darken(theme-color('success'), 10%),
+ 'darken-3': darken(theme-color('success'), 15%),
+ 'darken-4': darken(theme-color('success'), 20%),
+ 'accent-1': #e1fff1,
+ 'accent-2': #aeffd9,
+ 'accent-3': #7bffc1,
+ 'accent-4': #62ffb5
+);
+$info-color: (
+ 'lighten-5': lighten(theme-color('info'), 25%),
+ 'lighten-4': lighten(theme-color('info'), 20%),
+ 'lighten-3': lighten(theme-color('info'), 15%),
+ 'lighten-2': lighten(theme-color('info'), 10%),
+ 'lighten-1': lighten(theme-color('info'), 5%),
+ 'base': theme-color('info'),
+ 'darken-1': darken(theme-color('info'), 5%),
+ 'darken-2': darken(theme-color('info'), 10%),
+ 'darken-3': darken(theme-color('info'), 15%),
+ 'darken-4': darken(theme-color('info'), 20%),
+ 'accent-1': #feffff,
+ 'accent-2': #cbf5ff,
+ 'accent-3': #98ecff,
+ 'accent-4': #7fe7ff
+);
+$warning-color: (
+ 'lighten-5': lighten(theme-color('warning'), 25%),
+ 'lighten-4': lighten(theme-color('warning'), 20%),
+ 'lighten-3': lighten(theme-color('warning'), 15%),
+ 'lighten-2': lighten(theme-color('warning'), 10%),
+ 'lighten-1': lighten(theme-color('warning'), 5%),
+ 'base': theme-color('warning'),
+ 'darken-1': darken(theme-color('warning'), 5%),
+ 'darken-2': darken(theme-color('warning'), 10%),
+ 'darken-3': darken(theme-color('warning'), 15%),
+ 'darken-4': darken(theme-color('warning'), 20%),
+ 'accent-1': #fff5ef,
+ 'accent-2': #ffe5d8,
+ 'accent-3': #fff6f3,
+ 'accent-4': #ffe3da
+);
+$danger-color: (
+ 'lighten-5': lighten(theme-color('danger'), 25%),
+ 'lighten-4': lighten(theme-color('danger'), 20%),
+ 'lighten-3': lighten(theme-color('danger'), 15%),
+ 'lighten-2': lighten(theme-color('danger'), 10%),
+ 'lighten-1': lighten(theme-color('danger'), 5%),
+ 'base': theme-color('danger'),
+ 'darken-1': darken(theme-color('danger'), 5%),
+ 'darken-2': darken(theme-color('danger'), 10%),
+ 'darken-3': darken(theme-color('danger'), 15%),
+ 'darken-4': darken(theme-color('danger'), 20%),
+ 'accent-1': #ffeef1,
+ 'accent-2': #ffd6db,
+ 'accent-3': #ffecee,
+ 'accent-4': #ffd3d7
+);
+
+$colors: (
+ 'white': $white-color,
+ 'black': $black-color,
+ 'dark': $dark-color,
+ 'light': $light-color,
+ 'primary': $primary-color,
+ 'secondary': $secondary-color,
+ 'success': $success-color,
+ 'info': $info-color,
+ 'warning': $warning-color,
+ 'danger': $danger-color
+);
diff --git a/src/@core/scss/base/core/layouts/_content.scss b/src/@core/scss/base/core/layouts/_content.scss
new file mode 100644
index 00000000..6e1bdded
--- /dev/null
+++ b/src/@core/scss/base/core/layouts/_content.scss
@@ -0,0 +1,474 @@
+// ================================================================================================
+// File Name: content.scss
+// Description: Page content level SCSS for different screen size, layout and device.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Authuseror URL: http://www.themeforest.net//pixinvent
+// ================================================================================================
+
+// Contest margin left for expanded & collapsed stats width & margin left
+// ================================================================================================
+
+@import '../mixins/main-menu-mixin';
+
+html {
+ font-size: $base-font-size;
+ height: 100%;
+ letter-spacing: 0.01rem;
+ body {
+ height: 100%;
+ background-color: $body-bg;
+ direction: $body-direction;
+ // paragraph line-height
+ p {
+ line-height: 1.5rem;
+ }
+ }
+ .content {
+ padding: 0;
+ position: relative;
+ transition: 300ms ease all;
+ backface-visibility: hidden;
+ min-height: calc(100% - #{$footer-height});
+ margin-left: $menu-expanded-width;
+ &.app-content {
+ padding: calc(#{$content-padding} + #{$navbar-height} + #{$floating-nav-margin}) #{$content-padding} 0;
+ &.show-overlay {
+ .content-overlay {
+ z-index: 10;
+ opacity: 1;
+ ~ .header-navbar-shadow {
+ display: none;
+ }
+ }
+ }
+ .content-overlay {
+ position: fixed;
+ opacity: 0;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background-color: rgba($black, 0.5);
+ cursor: pointer;
+ transition: all 0.7s, z-index 0s;
+ z-index: -1;
+ }
+ .content-area-wrapper {
+ display: flex;
+ position: relative;
+ overflow: hidden; // Required in apps
+ .content-wrapper,
+ .content-body {
+ height: 100%;
+ }
+ }
+ }
+ .body-content-overlay {
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ position: absolute;
+ display: block;
+ z-index: 4;
+ visibility: hidden;
+ opacity: 0;
+ transition: all 0.3s ease;
+ &.show {
+ visibility: visible;
+ transition: all 0.3s ease;
+ opacity: 1;
+ background-color: rgba($black, 0.2);
+ border-radius: $border-radius/2;
+ }
+ }
+ .content-wrapper {
+ .content-header-title {
+ font-weight: 500;
+ color: $gray-400;
+ padding-right: $spacer;
+ border-right: 1px solid lighten($gray-600, 10%);
+ }
+ .content-header-right {
+ .dropdown-toggle {
+ &::after {
+ display: none;
+ }
+ i,
+ svg {
+ margin-right: 0;
+ }
+ }
+ .btn-icon {
+ padding: 0.8rem;
+ i,
+ svg {
+ height: $font-size-base;
+ width: $font-size-base;
+ }
+ }
+ }
+ }
+ }
+
+ // kanban app uses kanban-wrapper class as not having content-layout so added this class with all the options
+ // For floating navbar
+ .navbar-floating {
+ &.footer-static {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(
+ #{$content-padding},
+ #{$navbar-height},
+ #{$footer-height},
+ #{$floating-nav-margin}
+ );
+ }
+ }
+ }
+ &.footer-hidden {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(
+ #{$content-padding},
+ #{$navbar-height},
+ 0rem,
+ #{$floating-nav-margin},
+ 0rem,
+ 2
+ );
+ }
+ }
+ }
+ &.footer-fixed {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(
+ #{$content-padding},
+ #{$navbar-height},
+ #{$footer-height},
+ #{$floating-nav-margin},
+ 0rem,
+ 2
+ );
+ }
+ }
+ }
+ }
+
+ //for navbar hidden
+ .navbar-hidden {
+ .app-content {
+ padding: #{$content-padding} #{$content-padding} 0 #{$content-padding} !important;
+ }
+ &.footer-static {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(#{$content-padding}, 0rem, #{$footer-height});
+ }
+ }
+ }
+ &.footer-hidden {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(#{$content-padding}, 0rem, 0rem, 0rem, 0rem, 2);
+ }
+ }
+ }
+ &.footer-fixed {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(#{$content-padding}, 0rem, #{$footer-height}, 0rem, 0rem, 2);
+ }
+ }
+ }
+ }
+
+ // for static navbar
+ .navbar-static {
+ .main-menu {
+ top: 0;
+ }
+ .content {
+ min-height: calc(100% - calc(#{$navbar-height} + #{$footer-height}));
+ }
+ .app-content {
+ padding: #{$content-padding} #{$content-padding} 0 #{$content-padding};
+ }
+ &.footer-static {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(#{$content-padding}, #{$navbar-height}, #{$footer-height});
+ }
+ }
+ }
+ &.footer-hidden {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(#{$content-padding}, #{$navbar-height}, 0rem, 0rem, 0rem, 2);
+ }
+ }
+ }
+ &.footer-fixed {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(
+ #{$content-padding},
+ #{$navbar-height},
+ #{$footer-height},
+ 0rem,
+ 0rem,
+ 2
+ );
+ }
+ }
+ }
+ }
+
+ // for sticky navbar
+ .navbar-sticky {
+ .app-content {
+ padding: calc(#{$content-padding} + #{$navbar-height}) #{$content-padding} 0 #{$content-padding};
+ }
+ &.footer-static {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(#{$content-padding}, #{$navbar-height}, #{$footer-height});
+ }
+ }
+ }
+ &.footer-hidden {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(#{$content-padding}, #{$navbar-height}, 0rem, 0rem, 0rem, 2);
+ }
+ }
+ }
+ &.footer-fixed {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(
+ #{$content-padding},
+ #{$navbar-height},
+ #{$footer-height},
+ 0rem,
+ 0rem,
+ 2
+ );
+ }
+ }
+ }
+ }
+
+ // navbar search width for sticky and static navbar
+ .navbar-static,
+ .navbar-sticky {
+ .nav.header-navbar {
+ .navbar-container {
+ padding-left: 1.6rem;
+ padding-right: 1.6rem;
+ .search-input {
+ .search-list {
+ &.show {
+ width: 98%;
+ left: 1%;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // Fixed layout
+ .footer-fixed {
+ .content {
+ &.app-content {
+ padding-bottom: $footer-height !important; // ? Added extra padding bottom due to fixed footer height
+ }
+ }
+ }
+
+ //Remove left margin for 1 column layout
+ [data-col='1-column'] {
+ .header-navbar {
+ // Custom width for floating nav
+ &.floating-nav {
+ width: calc(
+ 100vw - (100vw - 100%) - calc(#{$content-padding} * 2)
+ ) !important; // ? override all navbar type width
+ }
+ width: 100%; // Full width for other nav options
+ left: 0 !important;
+ }
+ .content,
+ .footer {
+ margin-left: 0px !important;
+ }
+
+ // horizontal layout
+ &.horizontal-layout {
+ .header-navbar {
+ width: 100% !important;
+ }
+ .app-content {
+ padding: calc(#{$content-padding} + #{$navbar-height} + #{$floating-nav-margin}) #{$content-padding} 0 #{$content-padding} !important; // ? need to check all navbar types case
+ }
+ &.footer-fixed {
+ .app-content {
+ padding: calc(#{$content-padding} + #{$navbar-height} + #{$floating-nav-margin}) #{$content-padding} #{$footer-height}
+ #{$content-padding} !important; // ? need to check all navbar types case
+ }
+ }
+ }
+ }
+
+ /*
+ * Blank page
+ */
+
+ .blank-page {
+ .content {
+ margin-left: 0; // not using in both cases
+ // overflow-x hidden, overflow for y in sm screen issue resolved default
+ &.app-content {
+ overflow: overlay;
+ overflow-x: hidden;
+ padding: 0 !important;
+ transition: none;
+ // remove white space on top by header-navbar-shadow class
+ .header-navbar-shadow {
+ display: none;
+ }
+ }
+ }
+ // blank page content-wrapper
+ .content-wrapper {
+ padding: 0 !important;
+ // content to be in center horizontally and vertically
+ .flexbox-container {
+ display: flex;
+ align-items: center;
+ height: 100vh;
+ height: calc(var(--vh, 1vh) * 100);
+ justify-content: center;
+ }
+ }
+ }
+
+ .pace {
+ .pace-progress {
+ background: $primary;
+ }
+ }
+}
+
+.app-content.center-layout {
+ overflow: hidden;
+}
+
+/*
+* Col 3 layout for detached and general type
+*/
+
+@include media-breakpoint-up(lg) {
+ body {
+ // Normal sidebar
+ .content-right {
+ width: calc(100vw - (100vw - 100%) - #{$sidebar-width});
+ float: right;
+ }
+ .content-left {
+ width: calc(100vw - (100vw - 100%) - #{$sidebar-width});
+ float: left;
+ }
+ // Detached sidebar
+ .content-detached {
+ width: 100%;
+ &.content-right {
+ float: right;
+ margin-left: -$sidebar-width;
+ .content-body {
+ margin-left: calc(#{$sidebar-width} + #{$content-padding});
+ }
+ }
+ &.content-left {
+ float: left;
+ margin-right: -$sidebar-width;
+ .content-body {
+ margin-right: calc(#{$sidebar-width} + #{$content-padding});
+ }
+ }
+ }
+ }
+ .sidebar-right.sidebar-sticky {
+ float: right !important;
+ margin-left: -$sidebar-width;
+ width: $sidebar-width !important;
+ margin-top: $navbar-height + 1.25;
+ }
+}
+
+@include media-breakpoint-down(xs) {
+ html body .app-content {
+ padding: calc(#{$content-padding} - 0.8rem + #{$navbar-height} + #{$floating-nav-margin})
+ calc(#{$content-padding} - 0.8rem) 0 calc(#{$content-padding} - 0.8rem) !important; // - 0.8rem to reduce padding in small screen
+ }
+
+ // For static navbar
+ html body.navbar-static .app-content {
+ padding: calc(#{$content-padding} - 0.8rem) calc(#{$content-padding} - 0.8rem) 0 calc(#{$content-padding} - 0.8rem) !important; // - 0.8rem to reduce padding in small screen
+ }
+
+ // For sticky navbar
+ html body.navbar-sticky .app-content {
+ padding: calc(#{$content-padding} - 0.8rem + #{$navbar-height}) calc(#{$content-padding} - 0.8rem) 0
+ calc(#{$content-padding} - 0.8rem) !important; // - 0.8rem to reduce padding in small screen
+ }
+
+ // For Hidden navbar
+ html body.navbar-hidden .app-content {
+ padding: calc(#{$content-padding} - 0.8rem) calc(#{$content-padding} - 0.8rem) 0 calc(#{$content-padding} - 0.8rem) !important; // - 0.8rem to reduce padding in small screen
+ }
+}
+
+@include media-breakpoint-down(xs) {
+ .navbar-static,
+ .navbar-sticky {
+ .app-content {
+ .header-navbar {
+ .navbar-container {
+ padding-left: 1rem;
+ padding-right: 0.5rem;
+ }
+ }
+ }
+ }
+}
+
+// For Fullscreen IE
+@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
+ html.full-screen {
+ width: 100%;
+ .content.app-content {
+ height: 100%;
+ overflow: scroll;
+ overflow-x: hidden;
+ }
+ }
+}
diff --git a/src/@core/scss/base/core/layouts/_footer.scss b/src/@core/scss/base/core/layouts/_footer.scss
new file mode 100644
index 00000000..b4aeef60
--- /dev/null
+++ b/src/@core/scss/base/core/layouts/_footer.scss
@@ -0,0 +1,71 @@
+// ================================================================================================
+// File Name: Footer.scss
+// Description: * Main footer styles.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+// Stick footer to the bottom of the page
+footer {
+ &.footer {
+ padding: 0.8rem $content-padding;
+ min-height: $footer-height;
+ transition: 300ms ease all;
+
+ // heart icon scss
+ span {
+ i,
+ svg {
+ height: 1.51rem;
+ width: 1.51rem;
+ font-size: 1.51rem;
+ margin-left: 0.5rem;
+ color: $danger;
+ }
+ }
+ .scroll-top {
+ padding: 0.81rem 0.83rem;
+ }
+ }
+
+ //shadow & border options
+ &.footer-shadow {
+ box-shadow: $box-shadow;
+ }
+ &.footer-border {
+ border-top: 1px solid $border-color;
+ }
+}
+
+// Fixed Footer
+.footer-fixed {
+ footer {
+ position: fixed !important;
+ z-index: 1030;
+ right: 0;
+ left: 0;
+ bottom: 0;
+
+ // Footer Light
+ &.footer-light {
+ background: $white;
+ box-shadow: $box-shadow;
+ }
+ // Footer Dark
+ &.footer-dark {
+ background: $gray-600;
+ color: $white;
+ }
+ }
+}
+
+// scroll to Top Footer Button
+.scroll-top {
+ position: fixed;
+ bottom: 5%;
+ right: 30px;
+ display: none;
+ z-index: 99;
+}
diff --git a/src/@core/scss/base/core/layouts/_sidebar.scss b/src/@core/scss/base/core/layouts/_sidebar.scss
new file mode 100644
index 00000000..d29384b8
--- /dev/null
+++ b/src/@core/scss/base/core/layouts/_sidebar.scss
@@ -0,0 +1,79 @@
+/*=========================================================================================
+ File Name: sidebar.scss
+ Description: content sidebar specific scss.
+ ----------------------------------------------------------------------------------------
+ Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+ Author: PIXINVENT
+ Author URL: http://www.themeforest.net/user/pixinvent
+==========================================================================================*/
+
+// Sidebar base
+// ------------------------------
+
+// Base
+.sidebar {
+ position: relative;
+ width: 100%;
+ height: 100%;
+
+ // For desktop only
+ @include media-breakpoint-up(lg) {
+ vertical-align: top;
+ }
+}
+.sidebar-fixed {
+ position: fixed;
+ height: 100%;
+ overflow: scroll;
+}
+
+.sidenav-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 120vh;
+ background-color: rgba($black, 0.5);
+ z-index: 997;
+ display: block;
+ visibility: hidden;
+ opacity: 0;
+ transition: all 0.5s ease;
+ &.show {
+ opacity: 1;
+ visibility: visible;
+ transition: all 0.5s ease;
+ }
+}
+
+.drag-target {
+ height: 100%;
+ width: 40px;
+ position: fixed;
+ top: 0;
+ left: -10px;
+ z-index: 1036;
+}
+
+.sidebar-detached{
+ .sidebar{
+ width: $sidebar-width;
+ }
+}
+
+@include media-breakpoint-up(lg) {
+ .sidebar-left {
+ float: left;
+ }
+ .sidebar-right {
+ float: right;
+ }
+}
+
+@include media-breakpoint-down(md) {
+ .sidebar-detached{
+ .sidebar{
+ width: 100%;
+ }
+ }
+}
diff --git a/src/@core/scss/base/core/menu/_navigation.scss b/src/@core/scss/base/core/menu/_navigation.scss
new file mode 100644
index 00000000..0ea30c36
--- /dev/null
+++ b/src/@core/scss/base/core/menu/_navigation.scss
@@ -0,0 +1,206 @@
+/*=========================================================================================
+ File Name: navigation.scss
+ Description: Common mixin for menus, contain dark and light version scss.
+ ----------------------------------------------------------------------------------------
+ Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+ Author: PIXINVENT
+ Author URL: http://www.themeforest.net/user/pixinvent
+==========================================================================================*/
+
+// Import first main menu mixin
+@import '../mixins/main-menu-mixin';
+
+// Main menu base
+//==============
+.main-menu {
+ z-index: 1031;
+ position: absolute;
+ display: table-cell;
+ height: 100%;
+ overflow: hidden;
+
+ &.menu-light {
+ @include menu-theme($body-color, $white);
+ }
+
+ &.menu-dark {
+ @include menu-theme($menu-dark-color, $menu-dark-bg-color);
+ }
+
+ &.menu-fixed {
+ position: fixed;
+ }
+ &.menu-static {
+ height: 100%;
+ padding-bottom: calc(100% - 20rem);
+ .main-menu-content {
+ height: unset !important;
+ }
+ }
+
+ &.menu-shadow {
+ box-shadow: 0 0 15px 0 rgba($black, 0.05);
+ }
+
+ &.menu-border {
+ border-right: 1px solid $border-color;
+ }
+
+ // menu scroll shadow
+ .shadow-bottom {
+ display: none;
+ position: absolute;
+ z-index: 2;
+ height: 50px;
+ width: 100%;
+ pointer-events: none;
+ margin-top: -0.7rem;
+ filter: blur(5px);
+ background: linear-gradient(#fff 41%, hsla(0, 0%, 100%, 0.11) 95%, hsla(0, 0%, 100%, 0));
+ .bordered-layout & {
+ background: linear-gradient($body-bg 41%, hsla(0, 0%, 100%, 0.11) 95%, hsla(0, 0%, 100%, 0));
+ }
+ }
+
+ // Native Scrollbar (.menu-native-scroll)
+ &.menu-native-scroll {
+ .main-menu-content {
+ overflow-y: scroll !important;
+ }
+ }
+
+ .navbar-header {
+ height: 100%;
+ width: $menu-expanded-width;
+ height: $navbar-height;
+ position: relative;
+ padding: 0.35rem 1rem 0.3rem 1.64rem;
+ transition: 300ms ease all, background 0s;
+ .navbar-brand {
+ display: flex;
+ align-items: center;
+ margin-top: 1.35rem;
+ font-size: inherit;
+ .brand-logo img {
+ max-width: 36px;
+ }
+ .brand-text {
+ color: $primary;
+ padding-left: 1rem;
+ margin-bottom: 0;
+ font-weight: 600;
+ letter-spacing: 0.01rem;
+ font-size: 1.45rem;
+ animation: 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) 0s normal forwards 1 fadein;
+ }
+ }
+ .modern-nav-toggle {
+ animation: 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) 0s normal forwards 1 fadein;
+ }
+ }
+
+ .main-menu-content {
+ height: calc(100% - #{$navbar-height}) !important;
+ position: relative;
+ .ps__rail-y {
+ z-index: 3;
+ }
+ }
+
+ ul {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+
+ &.navigation-main {
+ overflow-x: hidden;
+ padding-bottom: .75rem;
+ > li:first-child {
+ margin-top: 0.5rem;
+ }
+ }
+ }
+
+ a {
+ outline: none;
+
+ &:hover,
+ &:focus {
+ text-decoration: none;
+ }
+ }
+}
+
+// Main Navigation
+.navigation {
+ font-size: 1.1rem;
+ font-family: $font-family-monospace;
+ font-weight: 400;
+ overflow-y: hidden;
+ padding-bottom: 20px;
+
+ .navigation-header {
+ font-family: $font-family-monospace;
+ font-weight: $headings-font-weight;
+ line-height: $headings-line-height;
+ padding: 12px 22px;
+ font-size: 0.9rem;
+ text-transform: uppercase;
+ }
+
+ li {
+ position: relative;
+ white-space: nowrap;
+
+ a {
+ display: block;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ i,
+ svg {
+ height: 11px;
+ width: 11px;
+ font-size: 11px;
+ margin-right: 1.38rem;
+ }
+ }
+
+ &.menu-item-animating {
+ transition: height 0.25s ease-in-out;
+ }
+
+ &.disabled {
+ a {
+ cursor: not-allowed;
+ opacity: 0.65;
+ pointer-events: none;
+ }
+ }
+ }
+}
+
+// Media queries for small screen devices
+// =========================================
+@include media-breakpoint-down(sm) {
+ // menu hide/open animation
+ .menu-hide .main-menu,
+ .menu-open .main-menu {
+ transition: transform 0.25s, top 0.35s, height 0.35s;
+ }
+
+ .main-menu {
+ transform: translate3d(-240px, 0, 0);
+ backface-visibility: hidden;
+ perspective: 1000;
+ }
+
+ .menu-open .main-menu {
+ transform: translate3d(0, 0, 0);
+ }
+}
+
+@include media-breakpoint-up(md) {
+ .drag-target {
+ z-index: 0;
+ }
+}
diff --git a/src/@core/scss/base/core/menu/menu-types/horizontal-menu.scss b/src/@core/scss/base/core/menu/menu-types/horizontal-menu.scss
new file mode 100644
index 00000000..4be23e56
--- /dev/null
+++ b/src/@core/scss/base/core/menu/menu-types/horizontal-menu.scss
@@ -0,0 +1,589 @@
+/*=========================================================================================
+ File Name: horizontal-menu.scss
+ Description: A classic horizontal menu for easy navigation & support all devices.
+ It support light & dark version, flipped layout, right side icons, borders menu for
+ item separation.
+ ----------------------------------------------------------------------------------------
+ Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard TemplateTheme
+ Author: PIXINVENT
+ Author URL: http://www.themeforest.net/user/pixinvent
+==========================================================================================*/
+
+@import '../../../bootstrap-extended/include'; // Bootstrap includes
+@import '../../../components/include'; // Components includes
+
+// Import first main menu mixin
+@import '../../mixins/main-menu-mixin';
+
+// Horizontal Menu
+//=========================
+.horizontal-menu {
+ // Content Area margin
+ .content {
+ margin-left: 0;
+ &.show-overlay {
+ .content-overlay {
+ z-index: 998 !important;
+ }
+ }
+ }
+
+ // Navbar container spacing for all
+ .navbar.header-navbar {
+ .navbar-container {
+ padding: 0.8rem #{$content-padding};
+ }
+ }
+
+ .horizontal-menu-wrapper {
+ .header-navbar {
+ min-height: $horizontal-menu-height;
+ }
+ }
+
+ footer {
+ position: static;
+ }
+
+ //---------------//
+ // Navbar Header //
+ //---------------//
+ .horizontal-menu-wrapper {
+ position: fixed;
+ top: 62px;
+ z-index: 990;
+ width: 100%;
+
+ .header-navbar {
+ .navbar-container {
+ padding: 0 1rem;
+ width: 100%;
+ }
+ .navbar-header {
+ display: none;
+ }
+ }
+ }
+ .header-navbar {
+ background: $white;
+ z-index: 999 !important;
+ line-height: 1;
+ min-height: auto;
+ // Navbar- Brand Center - Logo
+ &.navbar-horizontal.floating-nav {
+ width: calc(100vw - (100vw - 100%) - calc(#{$content-padding} * 2));
+ background: $white;
+ }
+ .navbar-container {
+ border-radius: $border-radius;
+ }
+ &.navbar-fixed {
+ position: fixed;
+ width: 100%;
+ }
+ &.navbar-brand-center {
+ .navbar-header {
+ position: absolute;
+ left: calc(50% - 56px); // left 50% - branding width
+ padding: 0;
+ z-index: 1000;
+ .navbar-brand {
+ display: flex;
+ align-items: center;
+ margin-right: 0;
+ font-size: inherit;
+ .brand-logo img {
+ max-width: 36px;
+ }
+
+ // Brand Text Scss
+ .brand-text {
+ color: $primary;
+ padding-left: 1rem;
+ margin-bottom: 0;
+ font-weight: 600;
+ letter-spacing: 0.01rem;
+ font-size: 1.45rem;
+ }
+ }
+ }
+ }
+
+ &.navbar-horizontal {
+ .nav-link {
+ &.dropdown-toggle {
+ &::after {
+ left: 0.4rem;
+ background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $body-color), '#', '%23'));
+ }
+ }
+ }
+ .sidebar-group-active {
+ .dropdown-toggle {
+ &::after {
+ background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $white), '#', '%23'));
+ }
+ }
+ }
+ .dropdown-menu::before {
+ display: none;
+ }
+ .dropdown-menu {
+ min-width: 215px;
+ border: none;
+ margin-top: 0;
+ min-height: 52px;
+ .disabled {
+ pointer-events: none !important;
+ a {
+ color: $gray-600;
+ }
+ }
+ .dropdown-toggle::after {
+ left: auto;
+ position: absolute;
+ top: 50%;
+ margin-top: -7px;
+ right: 1rem;
+ // content: '\e844' !important;
+ background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $body-color), '#', '%23'));
+ }
+ .dropdown-item {
+ font-size: 1rem;
+ padding-top: 0.68rem;
+ padding-bottom: 0.68rem;
+ display: flex;
+ align-items: center;
+ }
+ .dropdown-submenu {
+ position: relative;
+
+ &.openLeft {
+ .dropdown-menu {
+ left: auto !important;
+ right: 100% !important;
+ }
+ }
+
+ &.sidebar-group-active {
+ background: $body-bg;
+ }
+
+ & > .dropdown-menu {
+ position: absolute;
+ top: 0 !important;
+ left: 100% !important;
+ i,
+ svg {
+ height: 11px !important;
+ width: 11px !important;
+ font-size: 11px !important;
+ }
+ }
+ }
+ }
+ ul#main-menu-navigation > li {
+ padding-top: 0.857rem;
+ padding-bottom: 0.857rem;
+
+ > .dropdown-menu {
+ a {
+ & > * {
+ transition: all 0.2s ease;
+ }
+ &:hover {
+ background-color: transparent;
+ color: $body-color;
+ & > * {
+ transform: translateX(5px);
+ transition: transform 0.2s ease;
+ }
+ }
+ }
+ .active > a {
+ background: $body-bg;
+ color: $primary;
+ font-weight: 500;
+ }
+ .open {
+ &.active {
+ > a {
+ color: $body-color;
+ font-weight: normal;
+ }
+ }
+ }
+ }
+ i,
+ svg {
+ margin-right: 0.5rem;
+ height: 17px;
+ width: 17px;
+ font-size: 1.2rem;
+ }
+ > a {
+ padding: 0.715rem 1.25rem;
+ display: flex;
+ margin-right: 0.715rem;
+ }
+ &:hover {
+ > a {
+ background: $body-bg;
+ border-radius: 4px;
+ }
+ }
+ &.active {
+ > a {
+ background: linear-gradient(118deg, rgba($primary, 1), rgba($primary, 0.7));
+ box-shadow: 0px 0px 6px 1px rgba($primary, 0.6);
+ color: $white;
+ border-radius: 4px;
+ }
+ }
+ }
+ }
+ }
+
+ .navigation-header {
+ font-family: inherit;
+ color: #929292;
+ padding: 8px 20px;
+ font-size: 1rem;
+ text-transform: uppercase;
+ }
+
+ .navbar-dark {
+ .nav-item {
+ &.active > a {
+ border-bottom: 2px solid $primary;
+ background-color: #313c50;
+ }
+ }
+ }
+}
+
+.horizontal-layout {
+ // navbar floating
+ &.navbar-floating {
+ // Horizontal layout navbar shadow position and height fix
+ .header-navbar-shadow {
+ height: 80px;
+ }
+ @include media-breakpoint-up(xl) {
+ .header-navbar-shadow {
+ top: 45px;
+ }
+ }
+ &:not(.blank-page) {
+ .app-content {
+ // padding-top: 9.75rem;
+ padding: calc(#{$content-padding} + #{$navbar-height}* 2 + #{$floating-nav-margin}) #{$content-padding} 0 #{$content-padding}; // * 2 as we have 2 navbar (menu + navbar) in horizontal layout.
+ }
+ }
+ .horizontal-menu-wrapper {
+ background: linear-gradient(
+ to bottom,
+ rgba(248, 248, 248, 0.95) 44%,
+ rgba(248, 248, 248, 0.46) 73%,
+ rgba($white, 0) 100%
+ );
+ background-repeat: repeat-x;
+ .navbar-horizontal.floating-nav {
+ margin: $floating-nav-margin $content-padding 0;
+ }
+ }
+
+ // App content area wrapper height
+ &.footer-static {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(
+ #{$content-padding},
+ #{$navbar-height},
+ #{$footer-height},
+ #{$floating-nav-margin},
+ #{$horizontal-menu-height},
+ 1,
+ $horizontalLayout: true
+ );
+ }
+ }
+ }
+ &.footer-hidden {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(
+ #{$content-padding},
+ #{$navbar-height},
+ 0rem,
+ #{$floating-nav-margin},
+ #{$horizontal-menu-height},
+ 2,
+ $horizontalLayout: true
+ );
+ }
+ }
+ }
+ &.footer-fixed {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(
+ #{$content-padding},
+ #{$navbar-height},
+ #{$footer-height},
+ #{$floating-nav-margin},
+ #{$horizontal-menu-height},
+ 2,
+ $horizontalLayout: true
+ );
+ }
+ }
+ }
+ }
+
+ // navbar sticky
+ &.navbar-sticky {
+ .app-content {
+ padding: calc(#{$content-padding} + #{$navbar-height}* 2) #{$content-padding} 0 #{$content-padding};
+ }
+ .header-navbar {
+ background-color: $body-bg;
+ box-shadow: none;
+ }
+ .horizontal-menu-wrapper {
+ .navbar-horizontal.header-navbar.fixed-top {
+ left: 0;
+ top: 62px;
+ background-color: $white;
+ box-shadow: 0 4px 24px 0 rgba($black, 0.1);
+ }
+ }
+
+ // App content area wrapper height
+ &.footer-static {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(
+ #{$content-padding},
+ #{$navbar-height},
+ #{$footer-height},
+ 0rem,
+ #{$horizontal-menu-height},
+ 1,
+ $horizontalLayout: true
+ );
+ }
+ }
+ }
+ &.footer-hidden {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(
+ #{$content-padding},
+ #{$navbar-height},
+ 0rem,
+ 0rem,
+ #{$horizontal-menu-height},
+ 2,
+ $horizontalLayout: true
+ );
+ }
+ }
+ }
+ &.footer-fixed {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(
+ #{$content-padding},
+ #{$navbar-height},
+ #{$footer-height},
+ 0rem,
+ #{$horizontal-menu-height},
+ 2,
+ $horizontalLayout: true
+ );
+ }
+ }
+ }
+ }
+ // navbar static
+ &.navbar-static {
+ .app-content {
+ padding: calc(#{$content-padding} + #{$horizontal-menu-height}) #{$content-padding} 0 #{$content-padding};
+ }
+ .content {
+ min-height: calc(100% - calc(#{$horizontal-menu-height} + calc(#{$footer-height} + 0.2rem)));
+ }
+ .header-navbar {
+ background-color: $body-bg;
+ box-shadow: none;
+ }
+ .horizontal-menu-wrapper {
+ position: relative;
+ .navbar-horizontal.header-navbar {
+ background: $white;
+ // ? Added for angular fix as it adds this class to navbar in hz layout
+ &.navbar-static-top {
+ left: 0;
+ width: 100%;
+ }
+ }
+ }
+ // App content area wrapper height
+ &.footer-static {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(
+ #{$content-padding},
+ #{$navbar-height},
+ calc(#{$footer-height} + 0.2rem),
+ 0rem,
+ #{$horizontal-menu-height},
+ 1,
+ $horizontalLayout: true
+ );
+ }
+ }
+ }
+ &.footer-hidden {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(
+ #{$content-padding},
+ #{$navbar-height},
+ 0rem,
+ 0rem,
+ #{$horizontal-menu-height},
+ 2,
+ $horizontalLayout: true
+ );
+ }
+ }
+ }
+ &.footer-fixed {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(
+ #{$content-padding},
+ #{$navbar-height},
+ #{$footer-height},
+ 0rem,
+ #{$horizontal-menu-height},
+ 2,
+ $horizontalLayout: true
+ );
+ }
+ }
+ }
+ }
+
+ // navbar Hidden
+ &.navbar-hidden {
+ &.footer-static {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(
+ #{$content-padding},
+ 0rem,
+ #{$footer-height},
+ 0rem,
+ #{$horizontal-menu-height},
+ 1,
+ $horizontalLayout: true
+ );
+ }
+ }
+ }
+ &.footer-hidden {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(
+ #{$content-padding},
+ 0rem,
+ 0rem,
+ 0rem,
+ #{$horizontal-menu-height},
+ 2,
+ $horizontalLayout: true
+ );
+ }
+ }
+ }
+ &.footer-fixed {
+ .app-content {
+ .content-area-wrapper,
+ .kanban-wrapper {
+ @include content-area-wrapper-height(
+ #{$content-padding},
+ 0rem,
+ #{$footer-height},
+ 0rem,
+ #{$horizontal-menu-height},
+ 2,
+ $horizontalLayout: true
+ );
+ }
+ }
+ }
+ }
+
+ &.vertical-overlay-menu {
+ #main-menu-navigation {
+ > li {
+ > ul {
+ > li {
+ > a {
+ i,
+ svg {
+ height: 1rem;
+ width: 1rem;
+ font-size: 1rem;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+// Initially menu & content width for md and down screen
+@include media-breakpoint-down(lg) {
+ .horizontal-layout {
+ &.horizontal-menu {
+ .horizontal-menu-wrapper {
+ .header-navbar {
+ display: none;
+ }
+ }
+ }
+ .header-navbar {
+ background: $white;
+ }
+ .app-content {
+ padding: calc(#{$navbar-height} + calc(#{$content-padding} - 0.8rem)) calc(#{$content-padding} - 0.8rem) 0
+ calc(#{$content-padding} - 0.8rem) !important;
+ }
+ }
+}
+
+@include media-breakpoint-down(xs) {
+ // For static navbar
+ html body.horizontal-layout.navbar-static .app-content {
+ padding: calc(#{$content-padding} - 0.8rem + #{$navbar-height}) calc(#{$content-padding} - 0.8rem) 0
+ calc(#{$content-padding} - 0.8rem) !important; // - 0.8rem to reduce padding in small screen
+ }
+}
+// Import vertical-overlay-menu.scss for small screen support
+@import 'vertical-overlay-menu.scss';
diff --git a/src/@core/scss/base/core/menu/menu-types/vertical-menu.scss b/src/@core/scss/base/core/menu/menu-types/vertical-menu.scss
new file mode 100644
index 00000000..92374a2e
--- /dev/null
+++ b/src/@core/scss/base/core/menu/menu-types/vertical-menu.scss
@@ -0,0 +1,295 @@
+/*=========================================================================================
+ File Name: vertical-menu.scss
+ Description: A classic vertical modern style menu with expand and collops support. It support
+ light & dark version, flipped layout, right side icons, native scroll and borders menu
+ item separation.
+ ----------------------------------------------------------------------------------------
+ Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+ Author: PIXINVENT
+ Author URL: http://www.themeforest.net/user/pixinvent
+==========================================================================================*/
+
+@import '../../../bootstrap-extended/include'; // Bootstrap includes
+@import '../../../components/include'; // Components includes
+
+// Import first main menu mixin
+@import '../../mixins/main-menu-mixin';
+
+// Vertical menu
+//=========================
+.vertical-layout {
+ &.vertical-menu-modern {
+ .main-menu {
+ transition: 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), background 0s;
+ transform: translate3d(0, 0, 0);
+ backface-visibility: hidden;
+ .navigation {
+ li a {
+ align-items: center;
+ }
+ > li > a svg,
+ > li > a i {
+ height: 20px;
+ width: 20px;
+ font-size: 1.45rem;
+ margin-right: 1.1rem;
+ flex-shrink: 0;
+ }
+ // Sub-menu icon size
+ .menu-content {
+ > li > a svg,
+ > li > a i {
+ margin-right: 1.45rem;
+ font-size: 11px;
+ height: 11px;
+ width: 11px;
+ }
+ }
+ }
+ }
+
+ //Vertical menu [Expanded]
+ &.menu-expanded {
+ // Main menu expanded
+ .main-menu {
+ width: $menu-expanded-width;
+ .navigation {
+ .navigation-header {
+ .feather-more-horizontal {
+ display: none;
+ }
+ }
+ > li {
+ > a {
+ > i,
+ > svg {
+ &:before {
+ height: 20px;
+ width: 20px;
+ font-size: 1.45rem;
+ }
+ }
+ }
+ }
+ li {
+ @include vertical-menu-has-sub-arrow($font-size-base + 0.1);
+ }
+ }
+ }
+ //Content expanded
+ .footer {
+ @include main-menu-width($menu-expanded-width);
+ }
+ }
+ //Vertical menu [Collapsed]
+ &.menu-collapsed {
+ //Navbar collapsed
+ .navbar {
+ .navbar-header {
+ @include menu-navbar-width($menu-collapsed-width);
+ .modern-nav-toggle {
+ display: none;
+ }
+ &.expanded {
+ width: $menu-expanded-width;
+ z-index: 1000;
+ .modern-nav-toggle {
+ display: block;
+ }
+ }
+ }
+ // fixed-top navbar when menu-collapsed
+ &.fixed-top {
+ left: $menu-collapsed-width;
+ }
+ }
+ // Main menu collapsed
+ .main-menu {
+ width: $menu-collapsed-width;
+
+ .navbar-header .brand-text,
+ .modern-nav-toggle {
+ display: none;
+ }
+
+ // When menu is collapsed and mouse is not hovered over menu
+ &:not(.expanded) {
+ .navigation-header {
+ margin-left: 2.2rem;
+ span {
+ display: none;
+ }
+ .feather-more-horizontal {
+ display: block;
+ font-size: 1.285rem;
+ width: 18px;
+ height: 18px;
+ }
+ }
+ .navigation li {
+ &:last-child {
+ margin-bottom: 1.25rem !important;
+ }
+ &.active {
+ a {
+ background: whitesmoke;
+ box-shadow: none;
+ color: #565656;
+ }
+ }
+ }
+ }
+
+ // When menu is collapsed but mouse is hovered over menu
+ &.expanded {
+ width: $menu-expanded-width;
+ .navigation {
+ > li.navigation-header {
+ span {
+ display: block;
+ }
+ .feather-more-horizontal {
+ display: none;
+ }
+ }
+ li {
+ @include vertical-menu-has-sub-arrow(1rem);
+ }
+ }
+ .navbar-header .brand-text {
+ display: inline;
+ }
+ .modern-nav-toggle {
+ display: block;
+ }
+ }
+
+ //Navigation collapsed
+ .navigation {
+ overflow: visible;
+ > li.navigation-header {
+ span {
+ display: none;
+ }
+ }
+ > li {
+ > a {
+ text-overflow: inherit;
+ }
+ }
+ }
+ }
+ //Brand center content collapsed
+ .app-content,
+ .footer {
+ @include main-menu-width($menu-collapsed-width);
+ }
+ .header-navbar {
+ // Floating-navbar
+ &.floating-nav {
+ width: calc(100vw - (100vw - 100%) - 4.4rem - 74px);
+ }
+ // Navbar-static-top
+ &.navbar-static-top {
+ width: calc(100vw - (100vw - 100%) - 74px);
+ left: 74px;
+ }
+ }
+ }
+
+ .toggle-icon,
+ .collapse-toggle-icon {
+ margin-right: 0.425rem;
+ &:focus {
+ outline: none;
+ }
+ }
+ }
+}
+
+// Initially menu & content width for lg and up screen
+@include media-breakpoint-up(lg) {
+ .vertical-layout {
+ &.vertical-menu-modern {
+ .main-menu {
+ width: $menu-expanded-width;
+ }
+ }
+ }
+}
+
+// Initially menu & content width for md and down screen
+@include media-breakpoint-down(lg) {
+ .vertical-layout {
+ &.vertical-menu-modern {
+ // not using this class in below < 992
+ .main-menu {
+ width: 0;
+ }
+ .navbar {
+ .navbar-header {
+ width: 0;
+ }
+ }
+ .content,
+ .footer {
+ @include main-menu-width(0);
+ }
+ &.menu-collapsed {
+ .app-content,
+ .footer {
+ margin-left: 0;
+ }
+ .main-menu {
+ width: 0;
+ }
+ }
+ }
+ }
+}
+
+// Initially menu & content width for sm and down screen
+@include media-breakpoint-down(sm) {
+ .vertical-layout {
+ &.vertical-menu-modern {
+ // not using this class <992
+ .main-menu {
+ width: 0;
+ }
+ .navbar {
+ .navbar-header {
+ width: 0;
+ }
+ }
+ .content,
+ .footer {
+ @include main-menu-width(0);
+ }
+ }
+ }
+}
+
+@keyframes fadein {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1;
+ }
+}
+@keyframes fadeout {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ }
+}
+// IE Specific CSS
+@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
+ .vertical-menu-modern.vertical-layout .main-menu .navigation > li > a > span {
+ animation: none;
+ }
+}
+// Import vertical-overlay-menu.scss for small screen support
+@import 'vertical-overlay-menu.scss';
diff --git a/src/@core/scss/base/core/menu/menu-types/vertical-overlay-menu.scss b/src/@core/scss/base/core/menu/menu-types/vertical-overlay-menu.scss
new file mode 100644
index 00000000..bd0134c5
--- /dev/null
+++ b/src/@core/scss/base/core/menu/menu-types/vertical-overlay-menu.scss
@@ -0,0 +1,79 @@
+/*=========================================================================================
+ File Name: vertical-overlay-menu.scss
+ Description: A overlay style vertical menu with show and hide support. It support
+ light & dark version, filpped layout, right side icons, native scroll and borders menu
+ item seperation.
+ ----------------------------------------------------------------------------------------
+ Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+ Author: PIXINVENT
+ Author URL: http://www.themeforest.net/user/pixinvent
+==========================================================================================*/
+
+@import '../../../bootstrap-extended/include'; // Bootstrap includes
+@import '../../../components/include'; // Components includes
+
+// Import first main menu mixin
+@import '../../mixins/main-menu-mixin';
+
+// Vertical Overlay Menu
+//=========================
+.vertical-overlay-menu {
+ //Content expanded
+ .content {
+ @include main-menu-width(0);
+ }
+ //Navbar expanded
+ .navbar {
+ .navbar-header {
+ @include menu-navbar-width($menu-expanded-width);
+ }
+ }
+ // Main menu expanded
+ .main-menu {
+ opacity: 0;
+ transform: translate3d(0, 0, 0);
+ transition: width 0.25s, opacity 0.25s, transform 0.25s;
+ width: $menu-expanded-width;
+ left: -($menu-expanded-width);
+
+ .navigation {
+ > li {
+ > a {
+ > svg,
+ > i {
+ margin-right: 14px;
+ float: left;
+ transition: 200ms ease all;
+ height: 20px;
+ width: 20px;
+ &:before {
+ transition: 200ms ease all;
+ font-size: 1.429rem;
+ }
+ }
+ }
+ }
+ li {
+ @include vertical-menu-has-sub-arrow(1rem);
+ }
+
+ .navigation-header {
+ .feather-more-horizontal {
+ display: none;
+ }
+ }
+ }
+ }
+ &.menu-open {
+ .main-menu {
+ opacity: 1;
+ transform: translate3d($menu-expanded-width, 0, 0);
+ transition: width 0.25s, opacity 0.25s, transform 0.25s;
+ }
+ }
+ &.menu-hide {
+ .main-menu {
+ @extend .main-menu;
+ }
+ }
+}
diff --git a/src/@core/scss/base/core/mixins/alert.scss b/src/@core/scss/base/core/mixins/alert.scss
new file mode 100644
index 00000000..6e2332e6
--- /dev/null
+++ b/src/@core/scss/base/core/mixins/alert.scss
@@ -0,0 +1,5 @@
+// For alert's heading box-shadow
+
+@mixin alert-heading-bs($color) {
+ box-shadow: rgba($color, 0.4) 0px 6px 15px -7px;
+}
diff --git a/src/@core/scss/base/core/mixins/hex2rgb.scss b/src/@core/scss/base/core/mixins/hex2rgb.scss
new file mode 100644
index 00000000..9fdddf05
--- /dev/null
+++ b/src/@core/scss/base/core/mixins/hex2rgb.scss
@@ -0,0 +1,4 @@
+@mixin bg-opacity($color, $opacity: 1) {
+ background: $color; /* The Fallback */
+ background: rgba($color, $opacity);
+}
diff --git a/src/@core/scss/base/core/mixins/main-menu-mixin.scss b/src/@core/scss/base/core/mixins/main-menu-mixin.scss
new file mode 100644
index 00000000..6e1df8c9
--- /dev/null
+++ b/src/@core/scss/base/core/mixins/main-menu-mixin.scss
@@ -0,0 +1,359 @@
+// =========================================================================================
+// File Name: main-menu-mixin.scss
+// Description: Common mixin for menus, contain dark and light version scss.
+// ----------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+//==========================================================================================
+
+// Header navbar content and brand expanded & collapsed stats
+// spacing and sizing.
+// ================================================
+
+// Mixins for the menu and navbar position, margin and width change
+@mixin main-menu-width($menu-width) {
+ margin-left: $menu-width;
+}
+@mixin menu-navbar-width($menu-width) {
+ float: left;
+ width: $menu-width;
+}
+// Mixins for the menu show hide based on width
+@mixin vertical-menu-transform-show($transform-width) {
+ transform: translate3d($transform-width, 0, 0);
+ backface-visibility: hidden;
+ perspective: 1000;
+}
+@mixin vertical-menu-transform-hide() {
+ transform: translate3d(0, 0, 0);
+}
+
+// Mixins for the sub menu arrow
+@mixin vertical-menu-has-sub-arrow($arrow-font-size) {
+ &.has-sub {
+ > a:after {
+ content: '';
+ background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $body-color), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: $arrow-font-size;
+ height: $arrow-font-size;
+ width: $arrow-font-size;
+ display: inline-block;
+ position: absolute;
+ right: 20px;
+ top: 14px;
+ transform: rotate(0deg);
+ transition: all 0.2s ease-out;
+ }
+ &.open:not(.menu-item-closing) {
+ > a:after {
+ transform: rotate(90deg);
+ }
+ }
+ }
+}
+// Used for apps
+@mixin content-area-wrapper-height(
+ $contentPadding: 0rem,
+ $navbarHeight: 0rem,
+ $footerHeight: 0rem,
+ $floatingNavMargin: 0rem,
+ $horizontalMenuHeight: 0rem,
+ $spacingSides: 1,
+ $horizontalLayout: false
+) {
+ height: calc(
+ 100vh -
+ calc(
+ calc(#{$contentPadding} * #{$spacingSides}) + #{$navbarHeight} + #{$footerHeight} + #{$floatingNavMargin} + #{$horizontalMenuHeight}
+ )
+ );
+ height: calc(
+ var(--vh, 1vh) * 100 -
+ calc(
+ calc(#{$contentPadding} * #{$spacingSides}) + #{$navbarHeight} + #{$footerHeight} + #{$floatingNavMargin} + #{$horizontalMenuHeight}
+ )
+ );
+ // responsive size height
+ @if $horizontalLayout {
+ @include media-breakpoint-down(lg) {
+ height: calc(
+ 100vh - calc(calc(calc(#{$contentPadding} - 0.8rem) * #{$spacingSides}) + #{$navbarHeight} + #{$footerHeight})
+ );
+ height: calc(
+ var(--vh, 1vh) * 100 -
+ calc(calc(calc(#{$contentPadding} - 0.8rem) * #{$spacingSides}) + #{$navbarHeight} + #{$footerHeight})
+ );
+ }
+ } @else {
+ @include media-breakpoint-down(xs) {
+ height: calc(
+ 100vh -
+ calc(
+ calc(calc(#{$contentPadding} * #{$spacingSides}) - calc(0.8rem * #{$spacingSides})) + #{$navbarHeight} + #{$footerHeight} +
+ #{$floatingNavMargin} + #{$horizontalMenuHeight}
+ )
+ );
+ height: calc(
+ var(--vh, 1vh) * 100 -
+ calc(
+ calc(calc(#{$contentPadding} * #{$spacingSides}) - calc(0.8rem * #{$spacingSides})) + #{$navbarHeight} + #{$footerHeight} +
+ #{$floatingNavMargin} + #{$horizontalMenuHeight}
+ )
+ );
+ }
+ }
+}
+
+// Light & Dark menu mixin
+// $theme-color : Menu text color
+// $theme-bg : Menu background color
+// ================================================
+@mixin menu-theme($theme-color, $theme-bg) {
+ $main-menu-top-open-color: darken($theme-color, 10%);
+ $main-menu-top-open-hover-bg: darken($theme-bg, 6%);
+ $main-menu-top-open-head-bg: darken($theme-bg, 4%);
+
+ $main-menu-top-active-head-bg: darken($theme-bg, 4%); //$primary
+
+ $main-menu-sub-color: $theme-color;
+ $main-menu-sub-hover-color: lighten($theme-color, 4%);
+
+ $main-menu-sub-open-color: $theme-color;
+
+ color: $theme-color;
+ background: $theme-bg;
+
+ .navigation {
+ background: $theme-bg;
+ .navigation-header {
+ color: lighten($theme-color, 21.5%);
+ margin: calc(#{$content-padding} + 0.286rem) 0 0.8rem ($content-padding + 0.2rem);
+ padding: 0;
+ line-height: 1.5;
+ letter-spacing: 0.01rem;
+ span {
+ font-weight: 500;
+ }
+ }
+ li {
+ &.has-sub {
+ > a {
+ transition: all 0.5s ease, background 0s, color 0s;
+ }
+ }
+ a {
+ color: darken($theme-color, 4.9%);
+ padding: $menu-padding;
+ line-height: 1.45;
+
+ span.menu-sub-title {
+ color: lighten($theme-color, 30%);
+ }
+
+ & > * {
+ transition: transform 0.25s ease;
+ }
+ }
+ }
+
+ // Menu Item Hover Animation
+ li.nav-item {
+ a:hover > * {
+ transition: transform 0.25s ease;
+ transform: translateX(5px);
+ }
+ ul.menu-content {
+ li {
+ a:hover > * {
+ transition: transform 0.25s ease;
+ transform: translateX(5px);
+ }
+ }
+ }
+ }
+
+ > li {
+ > a {
+ margin: 0 15px;
+ .label {
+ margin-top: 4px;
+ margin-right: 5px;
+ }
+ i,
+ svg {
+ position: relative;
+ top: 1px;
+ }
+ }
+ > ul li {
+ &:first-of-type {
+ margin-top: 7px !important;
+ }
+
+ &:not(.has-sub) {
+ margin: 0 15px;
+ }
+ &.has-sub {
+ > a {
+ margin: 0 15px;
+ }
+
+ > ul > li {
+ margin: 0 15px;
+ }
+ }
+ }
+ &.open:not(.menu-item-closing),
+ &.sidebar-group-active {
+ > a {
+ color: $main-menu-top-open-color;
+ background: $main-menu-top-open-head-bg;
+ border-radius: 6px;
+ }
+ }
+
+ &:not(.open) {
+ > ul {
+ display: none;
+ .active {
+ background: transparent;
+ box-shadow: none;
+ }
+ }
+ }
+ &.active {
+ z-index: 1;
+ > a {
+ background: linear-gradient(118deg, rgba($primary, 1), rgba($primary, 0.7));
+ box-shadow: 0 0 10px 1px rgba($primary, 0.7);
+ color: $white;
+ font-weight: 400;
+ border-radius: 4px;
+ }
+ }
+
+ .active {
+ background: $main-menu-top-open-hover-bg;
+
+ > a {
+ color: $primary;
+ margin-bottom: 0;
+ }
+
+ .hover,
+ :hover {
+ > a {
+ background: $main-menu-top-active-head-bg;
+ }
+ }
+ }
+
+ ul {
+ padding: 0;
+ margin: 0;
+
+ li {
+ color: $main-menu-sub-color;
+ background: transparent;
+ > a {
+ padding: $menu-second-level-padding;
+ }
+ ul {
+ a {
+ padding: $menu-third-level-padding;
+ }
+ }
+ }
+ .has-sub {
+ &:not(.open) {
+ > ul {
+ display: none;
+ .active {
+ background: transparent;
+ box-shadow: none;
+ }
+ }
+ }
+ }
+ .open,
+ .sidebar-group-active {
+ > a {
+ color: $main-menu-sub-open-color;
+ background: $main-menu-top-active-head-bg;
+ border-radius: 6px;
+ }
+ //for 2rd level menu
+ > ul {
+ display: block;
+ //for 3rd level menu
+ .open {
+ > ul {
+ display: block;
+ }
+ }
+ }
+ }
+
+ .hover,
+ &:hover {
+ > a {
+ color: $main-menu-sub-hover-color;
+ }
+ }
+
+ .active {
+ background: linear-gradient(118deg, rgba($primary, 1), rgba($primary, 0.7));
+ box-shadow: 0 0 10px 1px rgba($primary, 0.7);
+ border-radius: 4px;
+ z-index: 1;
+ > a {
+ color: $white;
+ }
+ }
+ }
+ }
+ }
+}
+// Menu content display mixin
+// $menu-expanded-width : Expanded menu width
+// $menu-collapsed-width: Collapsed menu width
+// ================================================
+@mixin menu-content($menu-expanded-width, $menu-collapsed-width, $theme-color, $theme-bg) {
+ .main-menu-content {
+ > span.menu-title,
+ a.menu-title {
+ right: -($menu-expanded-width);
+ width: $menu-expanded-width;
+ font-weight: 600;
+ color: #fff;
+ text-transform: uppercase;
+ text-align: left;
+ background-color: $primary;
+ border-color: $primary;
+ padding: 13px 20px;
+ }
+ > ul.menu-content {
+ left: $menu-collapsed-width;
+ width: $menu-expanded-width;
+ transition: visibility 0.25s, opacity 0.25s;
+ box-shadow: 1px 0px 2px rgba($black, 0.1);
+ border-bottom: 2px solid rgba($black, 0.2);
+ border-left: 1px solid rgba($black, 0.02);
+
+ li {
+ white-space: nowrap;
+ position: relative;
+
+ a {
+ display: block;
+ padding: 8px 20px 8px 20px;
+ }
+
+ @include vertical-menu-has-sub-arrow(1rem);
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/core/mixins/transitions.scss b/src/@core/scss/base/core/mixins/transitions.scss
new file mode 100644
index 00000000..66c31e19
--- /dev/null
+++ b/src/@core/scss/base/core/mixins/transitions.scss
@@ -0,0 +1,30 @@
+@mixin transition($transition) {
+ -moz-transition: $transition;
+ -o-transition: $transition;
+ -webkit-transition: $transition;
+ transition: $transition;
+}
+@mixin transition-property($property) {
+ -moz-transition-property: $property;
+ -o-transition-property: $property;
+ -webkit-transition-property: $property;
+ transition-property: $property;
+}
+@mixin transition-duration($duration) {
+ -moz-transition-property: $duration;
+ -o-transition-property: $duration;
+ -webkit-transition-property: $duration;
+ transition-property: $duration;
+}
+@mixin transition-timing-function($timing) {
+ -moz-transition-timing-function: $timing;
+ -o-transition-timing-function: $timing;
+ -webkit-transition-timing-function: $timing;
+ transition-timing-function: $timing;
+}
+@mixin transition-delay($delay) {
+ -moz-transition-delay: $delay;
+ -o-transition-delay: $delay;
+ -webkit-transition-delay: $delay;
+ transition-delay: $delay;
+}
diff --git a/src/@core/scss/base/custom-rtl.scss b/src/@core/scss/base/custom-rtl.scss
new file mode 100644
index 00000000..bb49108a
--- /dev/null
+++ b/src/@core/scss/base/custom-rtl.scss
@@ -0,0 +1,355 @@
+// ================================================================================================
+// File Name: custom-rtl.scss
+// Description: RTL support SCSS file.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+// Variables
+// ------------------------------
+
+@import 'bootstrap-extended/include'; // Bootstrap includes
+@import 'components/include'; // Components includes
+
+// Align icons position
+.main-menu {
+ .navigation li > a > svg,
+ .navigation li > a > i,
+ .dropdown-menu svg,
+ .dropdown-menu i,
+ .dropdown-user > a > svg,
+ .dropdown-user > a > i,
+ .navigation > li > a > svg,
+ .navigation > li > a > i {
+ float: right;
+ }
+
+ .navigation > li ul li > a {
+ display: flex;
+ align-items: center;
+ }
+}
+
+// Transformed menu icons
+.vertical-layout.vertical-menu-modern.menu-expanded .main-menu .navigation li.has-sub > a:after,
+.vertical-layout.vertical-overlay-menu.menu-open .main-menu .navigation li.has-sub > a:after {
+ transform: rotate(180deg);
+}
+.vertical-layout.vertical-menu-modern.menu-expanded
+ .main-menu
+ .navigation
+ li.has-sub.open:not(.menu-item-closing)
+ > a:after {
+ transform: rotate(90deg);
+}
+
+// Horizontal menu
+.horizontal-menu .header-navbar.navbar-horizontal .dropdown-menu .dropdown-toggle::after {
+ background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $body-color), '#', '%23'));
+}
+
+// Dropdown RTL Changes
+.header-navbar .navbar-container ul.nav li.dropdown {
+ .dropdown-menu {
+ top: 41px !important;
+
+ &::before {
+ top: 1px;
+ }
+ }
+}
+
+.header-navbar {
+ .dropdown,
+ .dropup {
+ .dropdown-menu.dropdown-menu-right::before {
+ right: auto;
+ left: 0.5rem;
+ }
+ }
+}
+
+.dropdown,
+.dropup,
+.btn-group {
+ .dropdown-menu {
+ right: auto !important;
+ top: 0 !important;
+ left: auto !important;
+
+ &.dropdown-menu-right {
+ left: 0 !important;
+
+ &::before {
+ right: 0.6rem;
+ left: auto;
+ }
+ }
+ }
+}
+
+.dropleft {
+ .dropdown-toggle {
+ &::before {
+ background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $white), '#', '%23')) !important;
+ }
+ }
+ .dropdown-menu {
+ left: 0 !important;
+ margin-left: 0;
+ margin-right: 0.5rem;
+ }
+}
+
+.dropright {
+ .dropdown-toggle {
+ &::after {
+ background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $white), '#', '%23')) !important;
+ }
+ }
+ .dropdown-menu {
+ left: 0 !important;
+ margin-right: 0;
+ margin-left: 0.5rem;
+ }
+}
+
+// Input Group dropdown
+.input-group {
+ .dropdown-menu.show {
+ top: 0 !important;
+ right: auto !important;
+ left: 0px !important;
+ }
+}
+
+// BS Toast
+.toast {
+ right: 1rem;
+}
+
+// Select2
+.select2-container--default .select2-selection--single .select2-selection__arrow {
+ left: 1px;
+}
+.select2-container--default .select2-selection--multiple .select2-selection__choice {
+ float: right;
+}
+.select2-search__field {
+ direction: rtl;
+}
+
+// Chartist
+.chartjs-render-monitor {
+ margin-right: 1rem;
+}
+
+// Datatable
+div.dataTables_wrapper div.dataTables_filter {
+ text-align: left !important;
+}
+table.dataTable thead .sorting:before,
+table.dataTable thead .sorting_asc:before,
+table.dataTable thead .sorting_desc:before {
+ right: 0.45rem;
+}
+
+// Avatar group
+.avatar-group {
+ // Avatar Group Sizings
+ .avatar {
+ margin-right: -0.785rem;
+ margin-left: 0;
+ }
+ .avatar-sm {
+ margin-right: -0.65rem;
+ }
+ .avatar-lg {
+ margin-right: -1.5rem;
+ }
+ .avatar-xl {
+ margin-right: -1.85rem;
+ }
+}
+
+// Breadcrumb
+.breadcrumb:not([class*='breadcrumb-']),
+.breadcrumb.breadcrumb-chevron {
+ .breadcrumb-item + .breadcrumb-item {
+ &:before {
+ transform: rotate(180deg);
+ }
+ }
+}
+
+// Pagination
+.pagination .page-item {
+ &.prev-item,
+ &.prev,
+ &.previous {
+ .page-link {
+ &:before {
+ transform: rotate(180deg);
+ }
+ &:hover,
+ &:active {
+ &:before {
+ transform: rotate(180deg);
+ }
+ }
+ }
+ &.disabled {
+ .page-link {
+ &:before {
+ transform: rotate(180deg);
+ }
+ }
+ }
+ }
+
+ &.next-item,
+ &.next {
+ .page-link {
+ &:after {
+ transform: rotate(180deg);
+ }
+ &:hover,
+ &:active {
+ &:after {
+ transform: rotate(180deg);
+ }
+ }
+ }
+ &.disabled {
+ .page-link {
+ &:before {
+ transform: rotate(180deg);
+ }
+ }
+ }
+ }
+}
+
+code[class*='language-'],
+pre[class*='language-'] {
+ direction: ltr;
+}
+
+@media print {
+ code[class*='language-'],
+ pre[class*='language-'] {
+ text-shadow: none;
+ }
+}
+
+// Calendar
+.fc .fc-header-toolbar .fc-right .fc-button.fc-prev-button .fc-icon {
+ right: 4px !important;
+}
+
+.fc .fc-header-toolbar .fc-right .fc-button.fc-next-button .fc-icon {
+ left: -3px !important;
+}
+
+// carousel changes
+.carousel-control-next {
+ left: auto;
+ right: 0;
+}
+
+.carousel-control-prev {
+ left: 0;
+ right: auto;
+}
+
+// Tooltip
+.bs-tooltip-left .arrow::before,
+.bs-tooltip-auto[x-placement^='left'] .arrow::before {
+ border-width: 0.4rem 0 0.4rem 0.4rem;
+ border-left-color: $tooltip-bg;
+}
+
+.bs-tooltip-left .arrow,
+.bs-tooltip-auto[x-placement^='left'] .arrow {
+ right: 0;
+ left: auto;
+}
+
+.bs-tooltip-right .arrow::before,
+.bs-tooltip-auto[x-placement^='right'] .arrow::before {
+ border-width: 0.4rem 0.4rem 0.4rem 0;
+ border-right-color: $tooltip-bg;
+}
+
+.bs-tooltip-right .arrow,
+.bs-tooltip-auto[x-placement^='right'] .arrow {
+ left: 0;
+ right: auto;
+}
+
+// Popover Style
+.popover {
+ right: auto !important;
+}
+
+// Progress
+.progress-bar-animated {
+ animation: progress-bar-stripes 40s linear infinite;
+}
+
+// Perfect scrollbar RTL fix
+body .ps__rail-y {
+ right: auto !important;
+ left: 1px !important;
+}
+
+// FAQ and Pricing page
+.faq-navigation img,
+.pricing-free-trial .pricing-trial-img {
+ transform: scaleX(-1);
+}
+
+.feather-chevron-left,
+.feather-chevron-right {
+ transform: rotate(-180deg) !important;
+}
+
+// Kanban
+.kanban-application {
+ .kanban-container {
+ .kanban-item {
+ i,
+ svg {
+ margin-right: 0 !important;
+ margin-left: 0.25rem;
+ }
+ }
+ }
+}
+
+// Invoice List
+.invoice-list-wrapper {
+ .dataTables_filter {
+ input {
+ margin-left: 0 !important;
+ margin-right: 0.5rem;
+ }
+ }
+
+ .dropdown .dropdown-menu.dropdown-menu-right {
+ left: 2rem !important;
+ }
+}
+
+// File Manager
+.file-manager-application {
+ .sidebar-file-manager {
+ .sidebar-inner {
+ .my-drive .jstree-node.jstree-closed > .jstree-icon {
+ transform: rotate(180deg);
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/pages/app-calendar.scss b/src/@core/scss/base/pages/app-calendar.scss
new file mode 100644
index 00000000..9500fdec
--- /dev/null
+++ b/src/@core/scss/base/pages/app-calendar.scss
@@ -0,0 +1,412 @@
+// Core variables and mixins
+
+@import '../bootstrap-extended/include'; // Bootstrap includes
+@import '../components/include'; // Components includes
+
+$fc-calendar-height: 650px;
+$fc-sidebar-width: 18rem;
+$fc-event-font-weight: 600;
+$fc-event-font-size: 0.8rem;
+$fc-event-padding-x: 0.5rem;
+$fc-event-padding-y: 0.25rem;
+$fc-toolbar-btn-padding: 0.438rem 0.5rem;
+$fc-day-toggle-btn-padding: 0.55rem 1.5rem;
+
+// Full calendar styles
+.fc {
+ // Toolbar
+ .fc-toolbar {
+ flex-wrap: wrap;
+ flex-direction: row !important;
+ .fc-prev-button,
+ .fc-next-button {
+ display: inline-block;
+ background-color: transparent;
+ border-color: transparent;
+ .fc-icon {
+ color: $body-color;
+ }
+ &:hover,
+ &:active,
+ &:focus {
+ background-color: transparent !important;
+ border-color: transparent !important;
+ box-shadow: none !important;
+ }
+ }
+ .fc-prev-button {
+ padding-left: 0 !important;
+ }
+ .fc-toolbar-chunk:first-child {
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ }
+ .fc-button {
+ padding: $fc-toolbar-btn-padding;
+ &:active,
+ &:focus {
+ box-shadow: none;
+ }
+ }
+ .fc-button-group {
+ .fc-button {
+ text-transform: capitalize;
+ &:focus {
+ box-shadow: none;
+ }
+ }
+ .fc-button-primary {
+ &:not(.fc-prev-button):not(.fc-next-button) {
+ // background-color: rgba($primary, 0.1);
+ background-color: transparent;
+ border-color: $primary;
+ color: $primary;
+ &.fc-button-active,
+ &:hover {
+ background-color: rgba($color: $primary, $alpha: 0.2) !important;
+ border-color: $primary !important;
+ color: $primary;
+ }
+ }
+ &.fc-sidebarToggle-button {
+ border: 0;
+
+ i,
+ svg {
+ height: 21px;
+ width: 21px;
+ font-size: 21px;
+ }
+ }
+ }
+ .fc-sidebarToggle-button {
+ padding-left: 0;
+ background-color: transparent !important;
+ color: $body-color !important;
+
+ &:not(.fc-prev-button):not(.fc-next-button):hover {
+ background-color: transparent !important;
+ }
+
+ & + div {
+ margin-left: 0;
+ }
+ }
+ .fc-dayGridMonth-button,
+ .fc-timeGridWeek-button,
+ .fc-timeGridDay-button,
+ .fc-listMonth-button {
+ padding: $fc-day-toggle-btn-padding;
+
+ &:last-child,
+ &:first-child {
+ border-radius: $btn-border-radius;
+ }
+ &:first-child {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ }
+ &:last-child {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ }
+ }
+ & > * > :not(:first-child) {
+ margin-left: 0rem;
+ }
+ .fc-toolbar-title {
+ margin-left: 0.25rem;
+ }
+ .fc--button:empty,
+ .fc-toolbar-chunk:empty {
+ display: none;
+ }
+ }
+
+ // Calendar head & body common
+ tbody td,
+ thead th {
+ border-color: $border-color;
+ &.fc-col-header-cell {
+ border-right: 0;
+ border-left: 0;
+ }
+ }
+
+ .fc-view-harness {
+ min-height: $fc-calendar-height;
+ }
+
+ // Daygrid
+ .fc-scrollgrid-section-liquid > td {
+ border-bottom: 0;
+ }
+ .fc-daygrid-event-harness {
+ .fc-event {
+ font-size: $fc-event-font-size;
+ font-weight: $fc-event-font-weight;
+ padding: $fc-event-padding-y $fc-event-padding-x;
+ }
+ & + .fc-daygrid-event-harness {
+ margin-top: 0.3rem;
+ }
+ }
+ .fc-daygrid-day-bottom {
+ margin-top: 0.3rem;
+ }
+ .fc-daygrid-day {
+ padding: 5px;
+ .fc-daygrid-day-top {
+ flex-direction: row;
+ }
+ }
+
+ // All Views Event
+ .fc-daygrid-day-number,
+ .fc-timegrid-slot-label-cushion,
+ .fc-list-event-time {
+ color: $body-color;
+ }
+ .fc-day-today {
+ background: $body-bg !important;
+ background-color: $body-bg !important;
+ }
+
+ // Timegrid
+ .fc-timegrid {
+ .fc-scrollgrid-section {
+ .fc-col-header-cell,
+ .fc-timegrid-axis {
+ border-color: $border-color;
+ border-left: 0;
+ border-right: 0;
+ }
+ .fc-timegrid-axis {
+ border-color: $border-color;
+ }
+ }
+ .fc-timegrid-axis {
+ &.fc-scrollgrid-shrink {
+ .fc-timegrid-axis-cushion {
+ text-transform: capitalize;
+ color: $text-muted;
+ }
+ }
+ }
+ .fc-timegrid-slots {
+ .fc-timegrid-slot {
+ height: 3rem;
+ .fc-timegrid-slot-label-frame {
+ text-align: center;
+ .fc-timegrid-slot-label-cushion {
+ text-transform: uppercase;
+ }
+ }
+ }
+ }
+ .fc-timegrid-divider {
+ display: none;
+ }
+ }
+
+ // List View
+ .fc-list {
+ border-color: $border-color;
+ .fc-list-day-cushion {
+ background: $body-bg;
+ }
+ .fc-list-event {
+ &:hover {
+ td {
+ background-color: $body-bg;
+ }
+ }
+ td {
+ border-color: $border-color;
+ }
+ }
+ }
+}
+
+// App Calendar specific
+.app-calendar {
+ position: relative;
+ border-radius: $card-border-radius;
+ .app-calendar-sidebar {
+ position: absolute;
+ left: calc(-#{$fc-sidebar-width} - 1.2rem);
+ width: $fc-sidebar-width;
+ height: 100%;
+ z-index: 5;
+ background-color: $card-bg;
+ border-right: 1px solid $border-color;
+ flex-basis: $fc-sidebar-width;
+ transition: all 0.2s, background 0s, border 0s;
+ &.show {
+ left: 0;
+ }
+ .sidebar-content-title {
+ font-size: 0.85rem;
+ color: $text-muted;
+ text-transform: uppercase;
+ letter-spacing: 0.6px;
+ }
+ .select-all,
+ .input-filter {
+ & ~ label {
+ color: $headings-color;
+ font-weight: 500;
+ letter-spacing: 0.4px;
+ }
+ }
+ }
+
+ // right sidebar area styles
+ .event-sidebar {
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 400px;
+ z-index: 15;
+ transform: translateX(120%);
+ transition: all 0.3s ease-in-out;
+
+ .card {
+ height: calc(100vh - 12.96rem);
+ height: calc(var(--vh, 1vh) * 100 - 12.96rem);
+ border-radius: 0 $border-radius-sm $border-radius-sm 0;
+
+ .close-bar {
+ cursor: pointer;
+ }
+
+ .todo-item-action {
+ width: 6rem;
+
+ .todo-item-info,
+ .todo-item-favorite,
+ .dropdown {
+ cursor: pointer;
+ line-height: 1.5;
+ }
+ .dropdown .dropdown-menu .dropdown-item {
+ padding: 0.14rem 1.428rem;
+ }
+ .dropdown-toggle::after {
+ display: none;
+ }
+ }
+ }
+
+ &.show {
+ transform: translateX(0);
+ }
+ }
+
+ .fc-toolbar {
+ h2 {
+ font-size: 1.45rem;
+ }
+ }
+ .fc-header-toolbar {
+ margin-bottom: 1.75rem !important;
+ }
+ .fc-view-harness {
+ margin: 0 -1.6rem;
+ }
+ .fc-scrollgrid {
+ border-color: $border-color;
+ }
+ .fc-day-past,
+ .fc-day-future {
+ .fc-daygrid-day-number {
+ color: $text-muted;
+ }
+ }
+ .fc-popover {
+ box-shadow: $box-shadow;
+ .fc-popover-header {
+ background: transparent;
+ padding: 0.5rem;
+ .fc-popover-title,
+ .fc-popover-close {
+ color: $headings-color;
+ }
+ }
+ .fc-popover-body {
+ *:not(:last-of-type) {
+ margin-bottom: 0.3rem;
+ }
+ }
+ }
+
+ .fc {
+ .fc-event {
+ .fc-event-main {
+ color: inherit;
+ }
+ }
+ }
+ .fc-list-event {
+ background: transparent !important;
+ }
+
+ @media (min-width: 992px) {
+ .app-calendar-sidebar {
+ position: static;
+ height: auto;
+ box-shadow: none !important;
+
+ .flatpickr-days {
+ background-color: transparent;
+ }
+ }
+ }
+}
+
+// Event Sidebar
+.event-sidebar {
+ .select2-selection__choice__remove {
+ &:before {
+ top: 40% !important;
+ }
+ }
+}
+
+// Horizontal Menu
+.horizontal-layout {
+ .app-calendar {
+ margin-bottom: 1rem;
+ }
+}
+
+// Media Queries
+@media (max-width: 992px) {
+ .fc {
+ .fc-sidebarToggle-button {
+ font-size: 0;
+ }
+ }
+}
+
+@media (min-width: 992px) {
+ .fc {
+ .fc-sidebarToggle-button {
+ display: none;
+ }
+ }
+}
+
+@media (max-width: 700px) {
+ .app-calendar {
+ .fc {
+ .fc-header-toolbar {
+ .fc-toolbar-chunk:last-of-type {
+ margin-top: 1rem;
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/pages/app-chat-list.scss b/src/@core/scss/base/pages/app-chat-list.scss
new file mode 100644
index 00000000..181b23cd
--- /dev/null
+++ b/src/@core/scss/base/pages/app-chat-list.scss
@@ -0,0 +1,128 @@
+// ================================================================================================
+// File Name: app-chat-area.scss
+// Description: SCC file for chat area application page.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import '../bootstrap-extended/include'; // Bootstrap includes
+@import '../components/include'; // Components includes
+
+@import '../core/colors/palette-variables';
+
+@import 'bootstrap/scss/mixins/_gradients';
+@import 'bootstrap/scss/mixins/gradients';
+
+//Variables
+$chat-image-back-color: #f2f0f7;
+$chat-head-footer-height: 65px;
+$chat-widget-head-footer-height: 56px;
+$chat-widget-height: 390px;
+
+// User chat window css
+.chat-app-window {
+ // User chats
+ .user-chats {
+ background-color: $chat-image-back-color;
+ padding: 1rem;
+ position: relative;
+ height: calc(100% - #{$chat-head-footer-height} - #{$chat-head-footer-height});
+ .avatar {
+ img {
+ border: 2px solid $white;
+ }
+ }
+ }
+ .active-chat {
+ height: inherit;
+ .chat-header {
+ display: flex;
+ justify-content: space-between;
+ height: $chat-head-footer-height;
+ background-color: $white;
+ padding: 0 1rem;
+ border-bottom: 1px solid $border-color;
+ }
+ }
+
+ // Chat area css
+ .chats {
+ .chat-avatar {
+ float: right;
+ }
+ .chat-body {
+ display: block;
+ margin: 10px 30px 0 0;
+ overflow: hidden;
+ .chat-content {
+ float: right;
+ padding: 0.7rem 1rem;
+ margin: 0 1rem 10px 0;
+ clear: both;
+ color: $white;
+ @include gradient-directional(map-get($primary-color, 'base'), map-get($primary-color, 'lighten-2'), 80deg);
+ border-radius: $border-radius;
+ box-shadow: 0 4px 8px 0 rgba($black, 0.12);
+ max-width: 75%;
+ p {
+ margin: 0;
+ }
+ }
+ }
+ // Chat area left css
+ .chat-left {
+ .chat-avatar {
+ float: left;
+ }
+ .chat-body {
+ .chat-content {
+ float: left;
+ margin: 0 0 10px 1rem;
+ color: $body-color;
+ background: none;
+ background-color: lighten($white, 18%);
+ }
+ }
+ }
+ }
+ // Chat form of user area
+ .chat-app-form {
+ height: $chat-head-footer-height;
+ padding: 0 1rem;
+ background-color: $white;
+ display: flex;
+ align-items: center;
+ border-top: 1px solid $border-color;
+ }
+}
+
+// Chat Widget
+.chat-widget {
+ .card-header {
+ padding-top: 0.8rem;
+ padding-bottom: 0.8rem;
+ }
+ .chat-app-window {
+ // User chats
+ .user-chats {
+ background-color: $body-bg;
+ height: $chat-widget-height;
+ }
+ .chat-app-form {
+ border-top: 0;
+ border-bottom-left-radius: $border-radius;
+ border-bottom-right-radius: $border-radius;
+ height: $chat-widget-head-footer-height;
+ .input-group-text,
+ .message {
+ border: 0;
+ padding-left: 0;
+ }
+ .input-group:not(.bootstrap-touchspin):focus-within {
+ box-shadow: none;
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/pages/app-chat.scss b/src/@core/scss/base/pages/app-chat.scss
new file mode 100644
index 00000000..9fb6ab1f
--- /dev/null
+++ b/src/@core/scss/base/pages/app-chat.scss
@@ -0,0 +1,340 @@
+// ================================================================================================
+// File Name: app-chat.scss
+// Description: SCC file for chat application page.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import '../bootstrap-extended/include'; // Bootstrap includes
+@import '../components/include'; // Components includes
+
+@import '../core/colors/palette-variables';
+
+@import 'bootstrap/scss/mixins/_gradients';
+@import 'bootstrap/scss/mixins/gradients';
+
+//Variables
+$chat-image-back-color: #f2f0f7;
+$chat-head-footer-height: 65px;
+$chat-profile-sidebar-head-height: 200px;
+
+.chat-application {
+ .content-area-wrapper {
+ border: 1px solid $border-color;
+ border-radius: $card-border-radius;
+ }
+
+ // chat admin profile sidebar
+ .chat-profile-sidebar {
+ border-right: 1px solid $border-color;
+ height: inherit;
+ width: $chat-sidebar-width;
+ border-radius: $border-radius-sm;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ position: absolute;
+ background-color: $white;
+ transform: translateX(-110%);
+ transition: all 0.3s ease, background 0s, border 0s, color 0s;
+ z-index: 6;
+ &.show {
+ transform: translateX(0);
+ transition: all 0.3s ease, background 0s, border 0s, color 0s;
+ }
+
+ // admin profile header section
+ .chat-profile-header {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: $chat-profile-sidebar-head-height;
+ text-align: center;
+ .avatar {
+ margin-bottom: 1.25rem;
+ }
+ }
+
+ // Admin profile scroll area
+ .profile-sidebar-area {
+ height: calc(100% - #{$chat-profile-sidebar-head-height});
+ position: relative;
+ padding: 0 2rem 1.5rem;
+ }
+ }
+
+ // close icon style for all chat sidebars
+ .close-icon {
+ position: absolute;
+ top: 0.85rem;
+ right: 1rem;
+ cursor: pointer;
+ }
+ .sidebar-close-icon,
+ .close-icon {
+ svg,
+ i {
+ font-size: 1.143rem;
+ height: 1.143rem;
+ width: 1.143rem;
+ }
+ }
+
+ // for avatar border
+ .avatar-border {
+ img {
+ border: 2px solid $white;
+ }
+ }
+
+ // Main Sidebar Content
+ .sidebar-content {
+ background-color: $white;
+ border-right: 1px solid $border-color;
+ height: inherit;
+ width: $chat-sidebar-width;
+ border-radius: $border-radius-sm;
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ margin: 0;
+ box-shadow: none;
+ // Close Icon
+ .sidebar-close-icon {
+ position: absolute;
+ right: 0.25rem;
+ top: 0.25rem;
+ font-size: 1.25rem;
+ z-index: 1;
+ cursor: pointer;
+ visibility: hidden;
+ }
+ // Chat search area
+ .chat-fixed-search {
+ width: $chat-sidebar-width;
+ border-bottom: 1px solid $border-color;
+ padding: 0 1.286rem;
+ height: $chat-head-footer-height;
+ display: flex;
+ .sidebar-profile-toggle {
+ .avatar {
+ display: inline-table;
+ }
+ }
+ .input-group {
+ &:focus-within {
+ background-color: transparent;
+ box-shadow: none;
+ }
+ }
+ }
+ .chat-list-title {
+ color: $primary;
+ margin: 2rem 1.286rem 0.5rem;
+ }
+ // Sidebar chat list
+ .chat-user-list-wrapper {
+ position: relative;
+ height: calc(100% - #{$chat-head-footer-height});
+ width: $chat-sidebar-width;
+ border-radius: 0;
+ // Specific alignment for avatar status
+ .avatar {
+ height: 42px;
+ [class*='avatar-status-'] {
+ right: 1px;
+ bottom: 1px;
+ }
+ }
+ .contact-list {
+ .chat-info {
+ width: calc(100% - 46px); // ? avatar size with 2px border = 42+2+2 =46px
+ padding-right: 0;
+ }
+ }
+ .no-results {
+ padding: 0.786rem 1.286rem;
+ display: none !important;
+ &.show {
+ display: block !important;
+ }
+ }
+ ul {
+ padding-left: 0;
+ margin-bottom: 0;
+ }
+ li {
+ display: flex;
+ padding: 0.786rem 1.286rem;
+ .chat-info {
+ margin-top: 0.3rem;
+ width: calc(100% - 46px - 46px); // ? avatar size with 2px border = 42+2+2 =46px & date area width = 46px
+ padding: 0 0.75rem;
+ .card-text,
+ p {
+ color: $text-muted;
+ }
+ }
+
+ .chat-time {
+ color: $text-muted;
+ }
+ &:hover {
+ cursor: pointer;
+ background: $body-bg;
+ }
+ &.active {
+ @include gradient-directional(map-get($primary-color, 'base'), map-get($primary-color, 'lighten-2'), 80deg);
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6,
+ .card-text,
+ .chat-time {
+ color: $white;
+ }
+ }
+ img {
+ border: 2px solid $white;
+ }
+ }
+ }
+ }
+
+ // User chat window css
+ .chat-app-window {
+ height: 100%;
+
+ // Before starting chat
+ .start-chat-area,
+ .user-chats {
+ background-image: url($chat-bg-light);
+ background-color: $chat-image-back-color;
+ background-repeat: repeat;
+ background-size: 210px;
+ }
+ .start-chat-area {
+ height: inherit;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ flex-direction: column;
+ .start-chat-icon,
+ .start-chat-text {
+ background: $white;
+ box-shadow: 0 4px 8px 0 rgba($black, 0.12) !important;
+ color: $body-color;
+ }
+ .start-chat-text {
+ padding: 0.5rem 1rem;
+ border-radius: calc(#{$border-radius} * 4);
+ cursor: pointer;
+ }
+ .start-chat-icon {
+ border-radius: 50%;
+ padding: 2rem;
+ svg,
+ i {
+ height: 4rem;
+ width: 4rem;
+ font-size: 4rem;
+ }
+ }
+ }
+ }
+
+ // User Profile right sidebar
+ .user-profile-sidebar {
+ width: $chat-sidebar-width;
+ border-radius: $border-radius-sm;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ background-color: $white;
+ position: absolute;
+ transform: translateX(110%);
+ transition: all 0.3s ease, background 0s, border 0s, color 0s;
+ z-index: 6;
+ right: 0;
+ bottom: 0;
+ top: 0;
+ &.show {
+ transform: translateX(0%);
+ transition: all 0.3s ease, background 0s, border 0s, color 0s;
+ }
+ .user-profile-header {
+ .header-profile-sidebar {
+ height: $chat-profile-sidebar-head-height;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ flex-direction: column;
+ width: 100%;
+ }
+ .avatar {
+ margin-bottom: 1.25rem;
+ }
+ }
+ .user-profile-sidebar-area {
+ position: relative;
+ height: calc(100% - #{$chat-profile-sidebar-head-height});
+ padding: 0 2rem 1.5rem;
+ }
+ }
+}
+
+@include media-breakpoint-down(md) {
+ .content-right {
+ width: 100%;
+ }
+ .chat-application {
+ .sidebar-content {
+ transform: translateX(-110%);
+ transition: all 0.3s ease-in-out;
+ position: absolute;
+ z-index: 5;
+ &.show {
+ transform: translateX(0);
+ transition: all 0.3s ease;
+ }
+ }
+ }
+}
+@include media-breakpoint-down(sm) {
+ .chat-application {
+ .sidebar-content {
+ .sidebar-close-icon {
+ visibility: visible;
+ top: 15px;
+ right: 0;
+ padding: 0.65rem;
+ line-height: 1;
+ }
+ .chat-fixed-search {
+ padding-right: 2.5rem;
+ }
+ }
+ }
+}
+@include media-breakpoint-down(xs) {
+ .chat-application {
+ .sidebar {
+ position: unset !important;
+ }
+ .sidebar-content {
+ width: 100%;
+ .chat-fixed-search,
+ .chat-user-list-wrapper {
+ width: 100%;
+ }
+ }
+ .chat-profile-sidebar {
+ width: 100%;
+ }
+ .user-profile-sidebar {
+ width: 100%;
+ }
+ }
+}
diff --git a/src/@core/scss/base/pages/app-ecommerce-details.scss b/src/@core/scss/base/pages/app-ecommerce-details.scss
new file mode 100644
index 00000000..1a194522
--- /dev/null
+++ b/src/@core/scss/base/pages/app-ecommerce-details.scss
@@ -0,0 +1,288 @@
+// ================================================================================================
+// File Name: app-ecommerce-details.scss
+// Description: App Ecommerce Details SCSS.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import '../bootstrap-extended/include'; // Bootstrap includes
+@import '../components/include'; // Components includes
+
+// App e-commerce detail style
+.ecommerce-application {
+ .app-ecommerce-details {
+ .product-img {
+ width: 600px;
+ }
+ // ratings style
+ .ratings-list-item {
+ svg,
+ i {
+ font-size: 1.286rem;
+ height: 1.286rem;
+ width: 1.286rem;
+ }
+ }
+ .filled-star {
+ fill: $warning;
+ stroke: $warning;
+ color: $warning;
+ }
+ .unfilled-star {
+ stroke: $gray-100;
+ color: $gray-100;
+ }
+
+ // Item Price
+ .item-price {
+ color: $primary;
+ }
+ // Common for list-view, checkout and wishlist
+ .item-company {
+ display: inline-flex;
+ font-weight: $font-weight-normal;
+ font-size: 0.875rem;
+
+ .company-name {
+ font-weight: $font-weight-bolder;
+ margin-left: 0.25rem;
+ }
+ }
+
+ // Product feature list
+ .product-features {
+ margin-top: 1.5rem;
+ margin-bottom: 1.5rem;
+ li {
+ svg,
+ i {
+ height: 1.4rem;
+ width: 1.4rem;
+ font-size: 1.4rem;
+ margin-right: 0.75rem;
+ }
+ display: flex;
+ align-items: center;
+ margin-bottom: 1rem;
+ span {
+ font-weight: $font-weight-bolder;
+ }
+ }
+ }
+
+ .product-color-options {
+ margin-top: 1.5rem;
+ margin-bottom: 1.2rem;
+ }
+ .btn-wishlist {
+ .text-danger {
+ color: $danger;
+ fill: $danger;
+ }
+ }
+ .btn-share {
+ .btn-icon {
+ ~ .dropdown-menu {
+ min-width: 3rem;
+ }
+ }
+ }
+ .item-features {
+ background-color: $body-bg;
+ padding-top: 5.357rem;
+ padding-bottom: 5.357rem;
+ i,
+ svg {
+ font-size: 2.5rem;
+ height: 2.5rem;
+ width: 2.5rem;
+ color: $primary;
+ }
+ }
+ }
+
+ // centered slides option-1
+ .swiper-responsive-breakpoints {
+ &.swiper-container {
+ .swiper-slide {
+ text-align: center;
+ background-color: $body-bg;
+ padding: 1.5rem 3rem;
+ border-radius: $card-border-radius;
+ .img-container {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 250px;
+ }
+ }
+ }
+ }
+
+ //navigation button custom icons
+ .swiper-button-prev,
+ .swiper-button-next,
+ .swiper-container-rtl .swiper-button-prev,
+ .swiper-container-rtl .swiper-button-next {
+ background-image: none;
+ width: 35px;
+ font-size: $h1-font-size;
+
+ &:focus {
+ outline: none;
+ }
+ }
+
+ .swiper-button-prev {
+ left: 0;
+
+ &:after {
+ background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $primary), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 44px;
+ color: $body-color;
+ width: 44px;
+ height: 44px;
+ content: '';
+ }
+ }
+
+ .swiper-button-next {
+ right: 0;
+
+ &:after {
+ background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $primary), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 44px;
+ color: $body-color;
+ width: 44px;
+ height: 44px;
+ content: '';
+ }
+ }
+
+ .swiper-container-rtl {
+ .swiper-button-prev {
+ &:after {
+ background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $primary), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 44px;
+ color: $body-color;
+ width: 44px;
+ height: 44px;
+ content: '';
+ }
+ }
+
+ .swiper-button-next {
+ &:after {
+ background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $primary), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 44px;
+ color: $body-color;
+ width: 44px;
+ height: 44px;
+ content: '';
+ }
+ }
+ }
+
+ // color options
+
+ .product-color-options {
+ .color-option {
+ border: 1px solid transparent;
+ border-radius: 50%;
+ position: relative;
+ cursor: pointer;
+ padding: 3px;
+
+ .filloption {
+ height: 18px;
+ width: 18px;
+ border-radius: 50%;
+ }
+ }
+
+ // selected
+ .selected {
+ // these use for border color only page specific
+ .b-primary {
+ border-color: $primary;
+ .filloption {
+ box-shadow: 0 2px 4px 0 rgba($primary, 0.4);
+ }
+ }
+
+ .b-success {
+ border-color: $success;
+ .filloption {
+ box-shadow: 0 2px 4px 0 rgba($success, 0.4);
+ }
+ }
+
+ .b-danger {
+ border-color: $danger;
+ .filloption {
+ box-shadow: 0 2px 4px 0 rgba($danger, 0.4);
+ }
+ }
+
+ .b-warning {
+ border-color: $warning;
+ .filloption {
+ box-shadow: 0 2px 4px 0 rgba($warning, 0.4);
+ }
+ }
+
+ .b-info {
+ border-color: $info;
+ .filloption {
+ box-shadow: 0 2px 4px 0 rgba($info, 0.4);
+ }
+ }
+ }
+ .b-primary .filloption {
+ box-shadow: 0 2px 4px 0 rgba($primary, 0.4);
+ }
+ .b-success .filloption {
+ box-shadow: 0 2px 4px 0 rgba($success, 0.4);
+ }
+ .b-danger .filloption {
+ box-shadow: 0 2px 4px 0 rgba($danger, 0.4);
+ }
+ .b-warning .filloption {
+ box-shadow: 0 2px 4px 0 rgba($warning, 0.4);
+ }
+ .b-info .filloption {
+ box-shadow: 0 2px 4px 0 rgba($info, 0.4);
+ }
+ }
+}
+
+@include media-breakpoint-down(sm) {
+ .ecommerce-application .swiper-responsive-breakpoints.swiper-container .swiper-slide {
+ padding: 1rem;
+ }
+}
+@include media-breakpoint-down(sm) {
+ .ecommerce-application {
+ .app-ecommerce-details {
+ // ratings style
+ .ratings-list-item {
+ svg,
+ i {
+ font-size: 1rem;
+ height: 1rem;
+ width: 1rem;
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/pages/app-ecommerce.scss b/src/@core/scss/base/pages/app-ecommerce.scss
new file mode 100644
index 00000000..ec39a6da
--- /dev/null
+++ b/src/@core/scss/base/pages/app-ecommerce.scss
@@ -0,0 +1,632 @@
+// ================================================================================================
+// File Name: app-ecommerce.scss
+// Description: SCSS file for ecommerce shop, wishlist and checkout page.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import '../bootstrap-extended/include'; // Bootstrap includes
+@import '../components/include'; // Components includes
+
+$search-bar-height: 48px;
+
+.ecommerce-application {
+ .content-body {
+ position: relative;
+ }
+ // To overlay in whole page
+ .body-content-overlay {
+ position: fixed !important;
+ z-index: 12 !important;
+ }
+
+ // Shop Sidebar
+ .sidebar-shop {
+ margin-top: 0.85rem;
+ width: $sidebar-width;
+ z-index: 14;
+
+ // for heading
+ .filter-heading {
+ margin-bottom: 1.75rem;
+ }
+
+ // for title
+ .filter-title {
+ margin-bottom: 1rem;
+ margin-top: 2.5rem;
+ }
+
+ // Sidebar price range and categories list
+ .price-range,
+ .categories-list {
+ li:not(:last-child) {
+ margin-bottom: 0.75rem;
+ }
+ }
+
+ // Sidebar brand list
+ .brand-list {
+ li {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 0.75rem;
+ }
+ }
+
+ // Sidebar for slider
+ .range-slider.noUi-horizontal {
+ .noUi-handle {
+ .noUi-tooltip {
+ opacity: 0;
+ transform: translate(-50%, -15%);
+
+ &:before {
+ content: '$ ';
+ }
+ }
+ &:active {
+ .noUi-tooltip {
+ opacity: 1;
+ }
+ }
+ }
+ }
+
+ // for stars in rating
+ .ratings-list {
+ display: flex;
+ justify-content: space-between;
+ margin-bottom: 0.5rem;
+ &:last-child {
+ margin-bottom: 2.5rem;
+ }
+ ul {
+ margin-bottom: 0;
+ .ratings-list-item {
+ svg,
+ i {
+ width: 1.25rem;
+ height: 1.25rem;
+ font-size: 1.25rem;
+ }
+ }
+ }
+ }
+ }
+
+ // ratings style
+ .filled-star {
+ fill: $warning;
+ stroke: $warning;
+ color: $warning;
+ }
+ .unfilled-star {
+ stroke: $gray-100;
+ color: $gray-100;
+ }
+
+ // E-commerce shop main content area
+
+ //ecommerce header
+ .ecommerce-header-items {
+ display: flex;
+ justify-content: space-between;
+
+ .result-toggler {
+ display: flex;
+ align-items: center;
+
+ // Sidebar toggler
+ .shop-sidebar-toggler {
+ padding-left: 0;
+
+ &:active,
+ &:focus {
+ outline: 0;
+ }
+
+ .navbar-toggler-icon {
+ height: auto;
+ i,
+ svg {
+ color: $body-color;
+ height: 1.5rem;
+ width: 1.5rem;
+ font-size: 1.5rem;
+ }
+ }
+ }
+ // Search result title
+ .search-results {
+ font-weight: $font-weight-bold;
+ color: $headings-color;
+ }
+ }
+ }
+
+ // Product search bar
+ .ecommerce-searchbar {
+ .input-group {
+ box-shadow: 0 2px 8px 0 rgba($black, 0.14);
+ border-radius: 0.3rem;
+ }
+ }
+
+ // Search bar
+ .search-product,
+ .input-group-text {
+ height: $search-bar-height;
+ border: none;
+ font-size: 0.95rem;
+ padding-left: 1.25rem;
+
+ &::placeholder {
+ font-size: 0.95rem;
+ }
+ }
+
+ // main Products
+ .ecommerce-card {
+ &:hover {
+ transform: translateY(-5px);
+ box-shadow: 0 4px 25px 0 rgba($black, 0.25);
+ }
+
+ // ratings
+ .item-rating {
+ ul {
+ margin-bottom: 0;
+ }
+ svg,
+ i {
+ height: 1.143rem;
+ width: 1.143rem;
+ font-size: 1.143rem;
+ }
+ }
+
+ // Item name
+ .item-name {
+ margin-bottom: 0;
+ a {
+ font-weight: $font-weight-bolder;
+ display: -webkit-box;
+ -webkit-line-clamp: 1;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+ }
+
+ .item-description {
+ font-size: 0.875rem;
+ }
+
+ // buttons style
+ .btn-wishlist,
+ .btn-cart {
+ span {
+ vertical-align: text-top;
+ }
+ i,
+ svg {
+ margin-right: 0.25rem;
+ vertical-align: text-top;
+ &.text-danger {
+ fill: $danger;
+ }
+ }
+ }
+ }
+
+ // margin for both views
+ .grid-view,
+ .list-view {
+ &:not(.wishlist-items) {
+ margin-top: 2rem;
+ }
+ }
+
+ // Grid View Specific style
+ .grid-view {
+ display: grid;
+ grid-template-columns: 1fr 1fr 1fr;
+ column-gap: 2rem;
+ &.wishlist-items {
+ grid-template-columns: 1fr 1fr 1fr 1fr;
+ }
+
+ .ecommerce-card {
+ overflow: hidden;
+
+ // Item Image
+ .item-img {
+ padding-top: 0.5rem;
+ min-height: 15.85rem;
+ display: flex;
+ align-items: center;
+ }
+
+ // Item content wrapper
+ .item-wrapper {
+ display: flex;
+ justify-content: space-between;
+ align-items: baseline;
+ }
+
+ // Hiding list view items
+ .shipping,
+ .item-company,
+ .item-options .item-price {
+ display: none;
+ }
+
+ .item-options {
+ display: flex;
+ flex-wrap: wrap;
+
+ .btn-cart,
+ .btn-wishlist {
+ flex-grow: 1;
+ border-radius: 0;
+ }
+ }
+
+ .item-name {
+ margin-top: 0.75rem;
+ }
+
+ // Item Description
+ .item-description {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ margin-top: 0.2rem;
+ }
+
+ .item-price {
+ font-weight: $font-weight-bolder;
+ }
+
+ .card-body {
+ padding: 1rem;
+ }
+ }
+ }
+
+ // List View Specific style
+ .list-view {
+ display: grid;
+ grid-template-columns: 1fr;
+
+ .ecommerce-card {
+ overflow: hidden;
+ display: grid;
+ grid-template-columns: 1fr 2fr 1fr;
+
+ // list view image
+ .item-img {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 100%;
+ }
+
+ .card-body {
+ padding: 1.5rem 1rem;
+ border-right: 1px solid $border-color;
+ display: flex;
+ flex-direction: column;
+
+ // item name and ratings order
+ .item-wrapper {
+ order: 2;
+ }
+ .item-name {
+ order: 1;
+ }
+ // List view description
+ .item-description {
+ order: 3;
+ display: -webkit-box;
+ -webkit-line-clamp: 5;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ // .item-rating,
+ .item-price {
+ display: none;
+ }
+ // ratings
+ .item-rating {
+ margin-bottom: 0.3rem;
+ }
+ }
+ // Common for list-view, checkout and wishlist
+ .item-company {
+ display: inline-flex;
+ font-weight: $font-weight-normal;
+ margin: 0.3rem 0 0.5rem;
+ font-size: 0.875rem;
+
+ .company-name {
+ font-weight: $font-weight-bolder;
+ margin-left: 0.25rem;
+ }
+ }
+
+ // price and btn area of list view
+ .item-options {
+ padding: 1rem;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+
+ .item-wrapper {
+ position: relative;
+
+ .item-cost {
+ .item-price {
+ color: $primary;
+ margin-bottom: 0;
+ }
+ }
+ }
+ // Shipping free tag
+ .shipping {
+ margin-top: 0.75rem;
+ }
+ // List view btn spacing
+ .btn-wishlist,
+ .btn-cart {
+ margin-top: 1rem;
+ }
+ }
+ }
+ }
+
+ // for checkout-items and options
+ // Remove padding from stepper header & content area
+ .checkout-tab-steps {
+ .bs-stepper-header,
+ .bs-stepper-content {
+ padding: 0;
+ margin: 0;
+ }
+ }
+ // Checkout items list
+ .checkout-items {
+ .ecommerce-card {
+ .item-img {
+ img {
+ width: 200px;
+ }
+ }
+ // adding order as we have updated order for shop list view
+ .item-name {
+ order: 0 !important;
+ }
+ .item-company,
+ .item-rating {
+ margin-bottom: 0.4rem !important;
+ }
+ .item-quantity {
+ display: flex;
+ align-items: center;
+ }
+
+ .delivery-date {
+ margin-top: 1.2rem;
+ margin-bottom: 0.25rem;
+ }
+ // Item options button
+ .item-options {
+ .btn {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ }
+ }
+ }
+
+ .checkout-options {
+ .coupons {
+ &:focus-within {
+ box-shadow: none;
+ }
+ input {
+ border: none;
+ padding-left: 0;
+ color: $body-color;
+ font-weight: $font-weight-bolder;
+ &::placeholder {
+ color: $body-color;
+ font-weight: $font-weight-bolder;
+ }
+ }
+ .input-group-append {
+ margin: 0;
+ }
+ .input-group-text {
+ height: auto;
+ font-weight: $font-weight-bolder;
+ padding: inherit;
+ }
+ }
+ .price-details {
+ .price-title {
+ font-weight: $font-weight-bolder;
+ margin-bottom: 0.75rem;
+ margin-top: 1.5rem;
+ }
+ .price-detail {
+ display: flex;
+ justify-content: space-between;
+ margin-bottom: 0.75rem;
+
+ .detail-title {
+ &.detail-total {
+ font-weight: $font-weight-bolder;
+ }
+ }
+ }
+ }
+ }
+ .payment-type {
+ .gift-card {
+ cursor: pointer;
+ }
+ }
+
+ // checkout wizard
+
+ .checkout-tab-steps {
+ background-color: transparent !important;
+ box-shadow: none !important;
+
+ .bs-stepper-header {
+ border: none;
+ }
+ }
+
+ // To hide toggler on lg and up and grid view for btn-wishlist and list view for checkout
+ @include media-breakpoint-up(lg) {
+ .ecommerce-header-items {
+ // Hide toggler in > lg screen
+ .shop-sidebar-toggler {
+ display: none;
+ }
+ }
+
+ // Checkout list view
+ .product-checkout {
+ &.list-view {
+ grid-template-columns: 2fr 1fr;
+ column-gap: 2rem;
+ }
+ }
+ }
+}
+// Media queries to change grid columns in different Screens and to hide search results below 768px
+@include media-breakpoint-down(lg) {
+ .ecommerce-application {
+ // Header item area
+ .ecommerce-header-items {
+ .btn-group {
+ align-items: center;
+ .btn-icon {
+ padding: 0.6rem 0.736rem;
+ }
+ }
+ }
+ .grid-view.wishlist-items {
+ grid-template-columns: 1fr 1fr 1fr;
+ }
+ // overlay style for e-commerce page
+ .body-content-overlay {
+ position: fixed;
+ opacity: 0;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ &.show {
+ opacity: 1;
+ }
+ }
+
+ // Horizontal Menu scss
+ &.horizontal-layout {
+ .body-content-overlay {
+ z-index: 998 !important;
+ }
+ .sidebar-shop {
+ z-index: 999 !important;
+ }
+ }
+ }
+}
+
+@include media-breakpoint-down(md) {
+ .ecommerce-application {
+ .sidebar-left {
+ .sidebar {
+ // removed radius and margin as showing sidebar in full height
+ .card {
+ border-radius: 0;
+ margin: 0;
+ }
+ // Sidebar style
+ .sidebar-shop {
+ transform: translateX(-112%);
+ transition: all 0.25s ease;
+ position: fixed;
+ top: 0;
+ left: 0;
+ height: 100%;
+ overflow-y: scroll;
+ margin: 0;
+
+ &.show {
+ transition: all 0.25s ease;
+ transform: translateX(0);
+ }
+ }
+ }
+ }
+ // Grid view for responsive
+ .grid-view {
+ grid-template-columns: 1fr 1fr;
+ }
+
+ // to hide search results
+ .ecommerce-header-items {
+ .result-toggler {
+ .search-results {
+ display: none;
+ }
+ }
+ }
+ }
+}
+@include media-breakpoint-down(sm) {
+ .ecommerce-application {
+ .grid-view.wishlist-items {
+ grid-template-columns: 1fr 1fr;
+ }
+ // List View
+ .list-view {
+ .ecommerce-card {
+ grid-template-columns: 1fr;
+
+ .item-img {
+ padding-top: 2rem;
+ padding-bottom: 2rem;
+ }
+
+ // to remove card-body border
+ .card-body {
+ border: none;
+ }
+ }
+ }
+ }
+}
+@include media-breakpoint-down(xs) {
+ .ecommerce-application {
+ // Grid View
+ .grid-view,
+ .grid-view.wishlist-items {
+ grid-template-columns: 1fr;
+ }
+ }
+}
diff --git a/src/@core/scss/base/pages/app-email.scss b/src/@core/scss/base/pages/app-email.scss
new file mode 100644
index 00000000..fc530846
--- /dev/null
+++ b/src/@core/scss/base/pages/app-email.scss
@@ -0,0 +1,492 @@
+// ================================================================================================
+// File Name: app-email.scss
+// Description: SCC file for email application page.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import '../bootstrap-extended/include'; // Bootstrap includes
+@import '../components/include'; // Components includes
+
+$email_read: $body-bg;
+$email_selected_border: #e4e1e8;
+$email_details_header_height: 5rem;
+
+.email-application {
+ .content-area-wrapper {
+ border: 1px solid $border-color;
+ border-radius: $card-border-radius;
+ // Sidebar area starts
+ .sidebar {
+ .email-app-sidebar {
+ width: $menu-expanded-width;
+ height: inherit;
+ background-color: $white;
+ border-top-left-radius: $card-border-radius;
+ border-bottom-left-radius: $card-border-radius;
+ transition: all 0.3s ease, background 0s;
+ z-index: 210;
+ .email-app-menu {
+ width: 100%;
+ height: 100%;
+ z-index: 3;
+ .compose-btn {
+ padding: 1.5rem;
+ }
+ .sidebar-menu-list {
+ position: relative;
+ height: calc(100% - 80px); // search section height 80px
+ }
+ }
+ }
+ .list-group .list-group-item {
+ padding: 0.58rem 1.5rem;
+ border: 0;
+ font-weight: $font-weight-bold;
+ letter-spacing: 0.4px;
+ border-left: 2px solid transparent;
+ border-radius: 0;
+ + .list-group-item.active {
+ margin-top: 0;
+ }
+ &:hover,
+ &:focus,
+ &.active {
+ background: transparent;
+ color: $primary;
+ }
+ &.active {
+ border-color: #7367f0;
+ }
+ }
+ }
+ // Sidebar area ends
+
+ // Right content area common css starts
+ .content-right {
+ width: calc(100% - #{$menu-expanded-width});
+ border-left: 1px solid $border-color;
+ .email-app-list {
+ height: inherit;
+ }
+ .app-fixed-search {
+ padding: 0.35rem 0.5rem;
+ border-bottom: 1px solid $border-color;
+ background-color: $white;
+ border-top-right-radius: $border-radius;
+
+ .input-group:focus-within {
+ box-shadow: none;
+ }
+ input,
+ .input-group-text {
+ border: 0;
+ background-color: transparent;
+ }
+ }
+ .action-icon {
+ cursor: pointer;
+ }
+ }
+ // Right content area common css End
+ // Sidebar toggle icon
+ .sidebar-toggle {
+ cursor: pointer;
+ float: left;
+ }
+ .go-back {
+ cursor: pointer;
+ }
+
+ // Email user list area
+ .email-user-list {
+ position: relative;
+ height: calc(
+ 100% - calc(3.49rem + 3.32rem)
+ ); // ? search box height (3.49rem) + select all section height (3.32rem)
+ .email-media-list {
+ padding: 0;
+ margin: 0;
+ // Set delay per List Item
+ @for $i from 1 through 5000 {
+ li:nth-child(#{$i}) {
+ animation-delay: 0.1s * $i;
+ }
+ }
+ li {
+ cursor: pointer;
+ transition: all 0.2s, background 0s, border-color 0s, color 0s;
+ animation: fadeIn 0.5s linear;
+ animation-fill-mode: both;
+ position: relative;
+ background: $white;
+ &.media {
+ padding: ($spacer + 0.5);
+ &:hover {
+ transform: translateY(-2px);
+ box-shadow: 0 3px 10px 0 $border-color;
+ transition: all 0.2s;
+ z-index: 1;
+ }
+ .media-left {
+ display: flex;
+ flex-direction: column;
+ }
+ .media-body {
+ overflow: hidden;
+ }
+ }
+ // Email avatar style
+ .avatar {
+ margin-bottom: 0.65rem;
+ }
+ .avatar,
+ .avatar img {
+ height: $avatar-size + 8;
+ width: $avatar-size + 8;
+ }
+
+ // read email
+ &.mail-read {
+ background-color: $email_read;
+ }
+ // selected email
+ &.selected-row-bg {
+ background-color: rgba($primary, 0.06);
+ &:not(:first-child) {
+ border-color: $email_selected_border;
+ }
+ }
+ &:not(:first-child) {
+ border-top: 1px solid $border-color;
+ }
+ .mail-details {
+ display: flex;
+ justify-content: space-between;
+ margin-bottom: 0.55rem;
+ }
+ .mail-date {
+ color: $text-muted;
+ font-size: 0.857rem;
+ }
+ .mail-message {
+ p {
+ color: $text-muted;
+ }
+ }
+ }
+ .user-action {
+ display: flex;
+ .email-favorite {
+ i,
+ svg {
+ height: 1.25rem;
+ width: 1.25rem;
+ font-size: 1.25rem;
+ vertical-align: text-top;
+ color: $text-muted;
+ &.favorite {
+ fill: $warning;
+ stroke: $warning;
+ }
+ }
+ }
+ }
+ }
+ .no-results {
+ display: none;
+ padding: 1.5rem;
+ text-align: center;
+ &.show {
+ display: block;
+ }
+ }
+ .ps__rail-y {
+ z-index: 2;
+ }
+ }
+ }
+ // Action area of email list section
+ .app-action {
+ padding: 0.9rem ($spacer + 0.5);
+ display: flex;
+ justify-content: space-between;
+ border-bottom: 1px solid $border-color;
+ background-color: $white;
+ .action-right {
+ ul {
+ li:not(:last-child) {
+ margin-right: 1rem;
+ }
+ }
+ .dropdown-toggle {
+ color: $headings-color;
+ white-space: normal;
+ &::after {
+ display: none;
+ }
+ }
+ }
+ }
+ // On click of mail Details section slide in from right
+ // Email details section starts
+ .email-app-details {
+ position: absolute;
+ display: block;
+ z-index: 2;
+ visibility: hidden;
+ top: 0;
+ width: calc(100% - #{$menu-expanded-width});
+ background-color: $body-bg;
+ transform: translateX(100%);
+ transition: all 0.25s ease, color 0s;
+ height: 100%;
+ &.show {
+ visibility: visible;
+ transition: all 0.25s ease, color 0s;
+ transform: translateX(0%);
+ }
+ .email-detail-header {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ align-items: center;
+ box-shadow: 0 4px 6px rgba($black, 0.04);
+ border-bottom: 1px solid $kbd-bg;
+ position: relative;
+ padding: 0.5rem 2rem;
+ background-color: $white;
+ height: $email_details_header_height;
+ }
+ .email-header-left {
+ .email-subject {
+ display: -webkit-box;
+ -webkit-line-clamp: 1;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+ }
+ }
+ .email-header-right {
+ .dropdown-toggle,
+ .action-icon {
+ color: $body-color;
+ }
+ }
+ // Email detail scroll area
+ .email-scroll-area {
+ padding: 0 2rem;
+ position: relative;
+ height: calc(100% - #{$email_details_header_height});
+
+ .email-detail-head {
+ border-bottom: 1px solid $border-color;
+ .mail-meta-item {
+ .dropdown {
+ line-height: 0;
+ }
+ }
+ }
+ .email-label {
+ margin: 2rem 0;
+ }
+ .email-info-dropup {
+ .dropdown-toggle::after {
+ left: -2px;
+ margin: 0;
+ background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $text-muted), '#', '%23'));
+ background-size: 0.857rem;
+ }
+ .dropdown-menu {
+ padding: 0.5rem;
+ }
+ }
+ }
+ }
+
+ #compose-mail {
+ .compose-mail-form-field {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ padding: 0.12rem $modal-header-padding-x;
+ border-bottom: 1px solid $modal-footer-border-color;
+ .select2-container--open {
+ box-shadow: none;
+ }
+ .select2-selection--multiple,
+ .form-control {
+ border: 0;
+ background-color: transparent;
+ &:focus {
+ box-shadow: none !important;
+ background-color: transparent;
+ }
+ }
+ .select2-selection--multiple {
+ min-height: 42px !important;
+ .select2-selection__rendered li .select2-search__field {
+ margin-top: 10px;
+ }
+ }
+ .select2-selection__choice__remove:before {
+ top: 40%;
+ }
+ label {
+ margin-bottom: 0;
+ font-size: $font-size-base;
+ }
+ }
+ .ql-editor {
+ min-height: 250px;
+ }
+ .ql-container,
+ .ql-toolbar {
+ border: none;
+ border-radius: 0;
+ border-bottom: 1px solid $border-color;
+ .ql-picker.ql-expanded .ql-picker-options {
+ bottom: 100%;
+ top: auto;
+ }
+ }
+ .compose-footer-wrapper {
+ padding: $modal-inner-padding;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ }
+ }
+}
+@include media-breakpoint-down(md) {
+ .email-application {
+ .content-area-wrapper {
+ .sidebar-left {
+ position: relative;
+ .email-app-sidebar {
+ transform: translateX(-110%);
+ transition: all 0.3s ease-in-out;
+ position: absolute;
+ left: 0;
+ border-top-left-radius: $border-radius-sm;
+ border-bottom-left-radius: $border-radius-sm;
+ }
+ &.show {
+ .email-app-sidebar {
+ transform: translateX(0%);
+ transition: all 0.3s ease;
+ }
+ }
+ }
+ .content-right {
+ width: 100%;
+ border-left: 0;
+ .app-fixed-search {
+ border-top-left-radius: $border-radius;
+ }
+ .email-app-details {
+ width: 100%;
+ border-radius: $border-radius;
+ }
+ }
+ }
+ }
+}
+
+@include media-breakpoint-down(sm) {
+ .email-application #compose-mail .ql-editor {
+ min-height: 150px;
+ }
+}
+
+// Extra small devices (portrait phones, less than 576px)
+@include media-breakpoint-down(xs) {
+ .email-application {
+ .email-detail-head .mail-meta-item {
+ display: flex;
+ justify-content: space-between;
+ margin-left: 4rem; // Spacing from left according to avatar image
+ .mail-date,
+ .mail-time {
+ margin: 1rem 0.75rem 0 0;
+ }
+ }
+ .content-area-wrapper {
+ .content-right .email-app-details {
+ .email-scroll-area {
+ padding: 0 1rem;
+ }
+
+ .email-detail-header {
+ padding: 0.5rem 1rem;
+ }
+ }
+ .email-user-list {
+ .email-media-list li .mail-details {
+ display: block;
+ .mail-items {
+ width: 70%;
+ display: inline-grid;
+ }
+ .mail-meta-item {
+ width: 15%;
+ position: absolute;
+ right: 1rem;
+ top: 1.5rem;
+ i,
+ svg,
+ .bullet {
+ display: none;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+@media (max-width: 359.98px) {
+ .email-application .content-area-wrapper .sidebar .email-app-sidebar {
+ width: 230px;
+ }
+ .email-application .email-app-details .email-detail-header {
+ padding: 0 0.5rem;
+ }
+}
+
+// Keyframe animation
+@-webkit-keyframes fadeIn {
+ 0% {
+ opacity: 0;
+ top: 100px;
+ }
+ 75% {
+ opacity: 0.5;
+ top: 0px;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+// RTL Style
+html[data-textdirection='rtl'] {
+ .email-application {
+ .email-app-details {
+ .email-prev,
+ .email-next {
+ .action-icon i,
+ .action-icon svg {
+ transform: rotate(180deg);
+ }
+ }
+ .go-back {
+ i,
+ svg {
+ transform: rotate(180deg);
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/pages/app-file-manager.scss b/src/@core/scss/base/pages/app-file-manager.scss
new file mode 100644
index 00000000..52e3ef21
--- /dev/null
+++ b/src/@core/scss/base/pages/app-file-manager.scss
@@ -0,0 +1,441 @@
+// ================================================================================================
+// File Name: app-file-manager.scss
+// Description: SCC file for email application page.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import '../bootstrap-extended/include'; // Bootstrap includes
+@import '../components/include'; // Components includes
+
+$file-manager-logo-height: 7.5rem;
+
+// file manager app container
+.file-manager-application {
+ // file manager sidebar styles
+ .sidebar-file-manager {
+ width: $sidebar-width;
+ height: 100%;
+ background-color: $white;
+ border-top-left-radius: $border-radius-sm;
+ border-bottom-left-radius: $border-radius-sm;
+ transition: all 0.3s ease, background 0s;
+
+ // styles for card-inner
+ .sidebar-inner {
+ height: inherit;
+
+ .dropdown-actions {
+ width: 100%;
+ padding: 1.5rem 1.5rem 1.8rem;
+ }
+
+ .sidebar-close-icon {
+ position: absolute;
+ top: 0.25rem;
+ right: 0.25rem;
+ font-size: $font-size-xl;
+ z-index: 5;
+ cursor: pointer;
+ }
+
+ .add-file-btn {
+ & ~ .dropdown-menu {
+ width: 85%;
+ &:before {
+ display: none;
+ }
+ }
+ }
+
+ // styles for card inner list
+ .sidebar-list {
+ position: relative;
+ height: calc(100% - 85px); // search section height 85px
+ .my-drive {
+ padding: 0.58rem 0;
+ .jstree-node {
+ .jstree-icon {
+ background-position: 0.5rem;
+ background-size: 1.3rem;
+ }
+ .jstree-anchor > .jstree-themeicon {
+ margin-right: 0.5rem;
+ }
+ &.jstree-closed {
+ > .jstree-icon {
+ background-image: url(str-replace(
+ str-replace($chevron-right, 'currentColor', $headings-color),
+ '#',
+ '%23'
+ ));
+ }
+ }
+ &.jstree-open {
+ > .jstree-icon {
+ background-image: url(str-replace(
+ str-replace($chevron-down, 'currentColor', $headings-color),
+ '#',
+ '%23'
+ ));
+ }
+ }
+ }
+ }
+
+ .list-group-labels,
+ .storage-status {
+ margin-top: 2.2rem;
+ }
+
+ .list-group-item {
+ padding: 0.58rem 1.9rem;
+ font-weight: 500;
+ border: 0;
+ border-radius: 0;
+ border-left: 2px solid transparent;
+ &:hover {
+ z-index: 0 !important;
+ }
+ + .list-group-item.active {
+ margin-top: 0;
+ }
+ }
+ .active {
+ background-color: transparent;
+ border-color: $primary;
+ color: $primary;
+ }
+ }
+ }
+
+ // show sidebar on click
+ &.show {
+ transition: all 0.25s ease, background 0s !important;
+ transform: translateX(0) !important;
+ z-index: 10;
+ }
+ }
+
+ // styles for content area wrapper
+ .content-area-wrapper {
+ border: 1px solid $border-color;
+ border-radius: $border-radius-sm;
+
+ .content-right {
+ .content-wrapper {
+ padding: 0;
+ }
+ }
+
+ // styles for file manger app area
+ .file-manager-main-content {
+ border-left: 1px solid $border-color;
+ height: inherit;
+
+ // styles for searchbar
+ .file-manager-content-header {
+ padding: 0.4rem 1rem;
+ border-bottom: 1px solid $border-color;
+ background-color: $white;
+ border-top-right-radius: $border-radius;
+
+ .file-manager-toggler {
+ cursor: pointer;
+ }
+
+ input {
+ border-color: transparent;
+ box-shadow: none;
+ }
+
+ .file-actions:not(.show) {
+ display: none;
+ }
+ }
+
+ // styles for main content
+ .file-manager-content-body {
+ position: relative;
+ padding: 1.5rem 1.5rem 0;
+ height: calc(100% - 50px); // search area height
+ background-color: $white;
+ .view-container {
+ display: flex;
+ flex-wrap: wrap;
+ .file-manager-item {
+ border: 1px solid $border-color;
+ margin-bottom: 1.6rem;
+ box-shadow: none;
+ margin-right: 1rem;
+ transition: none;
+ cursor: pointer;
+
+ .card-body {
+ padding: 1rem;
+ padding-bottom: 0.5rem;
+ }
+
+ .custom-control-input:not(:checked) ~ .custom-control-label:before {
+ background-color: transparent;
+ }
+
+ .file-logo-wrapper {
+ padding: 1rem;
+ height: $file-manager-logo-height;
+ background-color: $body-bg;
+ .feather-folder {
+ stroke: $gray-100;
+ }
+ }
+
+ .dropdown-menu {
+ transform: none;
+ &:before {
+ display: none;
+ }
+ }
+
+ .content-wrapper {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ align-items: center;
+ height: auto;
+ }
+
+ .file-date {
+ flex-grow: 1;
+ margin-bottom: 0;
+ }
+
+ &.selected {
+ border-color: $primary;
+ }
+ }
+
+ .file-name {
+ width: calc(100% - 26rem);
+ min-height: 1rem;
+ font-weight: 600;
+ flex-grow: 1;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+
+ .files-section-title {
+ width: 100%;
+ }
+
+ &.list-view {
+ flex-direction: column;
+
+ .files-section-title {
+ display: none;
+ }
+ .files-header {
+ display: flex;
+ justify-content: space-between;
+ margin-left: 7.2rem;
+ margin-bottom: 1rem;
+
+ p {
+ font-weight: 600;
+ }
+
+ .file-last-modified,
+ .file-item-size {
+ margin-right: 3rem;
+ }
+ }
+
+ .file-manager-item {
+ flex-direction: row;
+ flex: 0 0 100%;
+ align-items: center;
+ max-width: 100%;
+ margin-bottom: 0.75rem;
+ margin-right: 0;
+ .file-logo-wrapper {
+ padding-right: 0;
+ width: auto;
+ height: auto;
+ background-color: transparent !important;
+
+ img {
+ height: 1.5rem;
+ }
+
+ .feather-folder,
+ .feather-arrow-up {
+ width: 19px;
+ height: 18px;
+ }
+
+ .dropdown {
+ position: absolute;
+ right: 1rem;
+ }
+ }
+ .custom-checkbox {
+ margin: 0 0.4rem 0 1.75rem;
+ }
+
+ .file-accessed {
+ display: none;
+ }
+
+ .file-size {
+ width: 5.71rem;
+ flex-grow: 1;
+ margin-bottom: 0;
+ }
+ }
+ .folder {
+ &.level-up {
+ .file-logo-wrapper {
+ margin-left: 3.5rem;
+ }
+ }
+ }
+ }
+
+ &:not(.list-view) {
+ .files-header {
+ display: none;
+ }
+
+ .file-manager-item {
+ .content-wrapper {
+ margin-bottom: 0rem;
+ }
+
+ .file-date {
+ display: none;
+ }
+ .file-size {
+ color: $text-muted;
+ font-size: 85%;
+ }
+ &:not(.selected):not(:hover) {
+ .custom-checkbox,
+ .toggle-dropdown {
+ opacity: 0;
+ }
+ }
+ .feather-folder {
+ height: 32px;
+ width: 35px;
+ }
+ &.folder.level-up {
+ display: none !important;
+ }
+ .custom-checkbox {
+ position: absolute;
+ top: 1rem;
+ left: 1rem;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+// media query for max-width of 1200px
+@media screen and (max-width: 1200px) {
+ .file-manager-application {
+ .content-right {
+ width: 100%;
+ }
+ .content-body {
+ margin-left: 0 !important;
+ }
+ .content-area-wrapper {
+ .file-manager-main-content {
+ border-left: 0;
+ }
+ }
+
+ .sidebar-left {
+ .sidebar {
+ z-index: 10;
+
+ .sidebar-file-manager {
+ transform: translateX(-112%);
+ transition: all 0.25s ease;
+ position: absolute;
+ }
+ }
+ }
+ }
+}
+
+@include media-breakpoint-down(sm) {
+ .file-manager-application {
+ .view-container {
+ .file-manager-item {
+ flex: 47%;
+ }
+ }
+ }
+}
+
+@include media-breakpoint-down(xs) {
+ .file-manager-application {
+ .content-area-wrapper {
+ .file-manager-main-content {
+ .file-manager-content-header {
+ padding-left: 0.5rem;
+
+ .file-actions {
+ .dropdown {
+ padding-left: 0.5rem;
+ padding-right: 0.5rem;
+ }
+ }
+ }
+ }
+ .view-container {
+ .file-manager-item {
+ flex: 0 0 100%;
+ max-width: 100%;
+ }
+ &.list-view {
+ .file-date,
+ .file-last-modified,
+ .file-size,
+ .file-item-size {
+ display: none !important;
+ }
+ }
+ }
+ }
+ }
+}
+
+@include media-breakpoint-up(xs) {
+ .file-manager-application {
+ .view-container {
+ .file-manager-item {
+ flex: 0 0 47%;
+ max-width: 50%;
+ }
+ }
+ }
+}
+
+@include media-breakpoint-up(sm) {
+ .file-manager-application {
+ .view-container {
+ .file-manager-item {
+ flex: 0 0 23%;
+ max-width: 25%;
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/pages/app-invoice-list.scss b/src/@core/scss/base/pages/app-invoice-list.scss
new file mode 100644
index 00000000..f7876b56
--- /dev/null
+++ b/src/@core/scss/base/pages/app-invoice-list.scss
@@ -0,0 +1,96 @@
+// ================================================================================================
+// File Name: app-invoice-list.scss
+// Description: Invoice Layout page layouts SCSS.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy HTML Admin Template
+// Version: 1.0
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import '../bootstrap-extended/include'; // Bootstrap includes
+@import '../components/include'; // Components includes
+
+.invoice-list-wrapper {
+ .dataTables_wrapper {
+ .dataTables_length,
+ .dataTables_filter {
+ label {
+ margin-top: 0.55rem;
+ }
+ }
+ .dataTables_length {
+ select {
+ margin-left: 0.5rem;
+ }
+ }
+ .invoice-list-table {
+ thead {
+ th {
+ &:before,
+ &:after {
+ left: auto;
+ }
+
+ &:last-child {
+ &:before,
+ &:after {
+ display: none;
+ }
+ }
+ }
+ }
+ tbody {
+ .control:before {
+ background-color: $primary;
+ line-height: 1rem;
+ font-family: $font-family-base;
+ }
+ .col-actions {
+ a:not(.dropdown-item) {
+ color: $body-color;
+ }
+ .dropdown {
+ .dropdown-item {
+ display: flex;
+ align-items: center;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ @media (max-width: 470px) {
+ .invoice_status {
+ margin-top: 1rem;
+ width: 100%;
+ select {
+ margin-left: 0 !important;
+ }
+ }
+ }
+}
+
+// Datatables Responsive Modal
+.dtr-bs-modal {
+ .modal-header {
+ flex-direction: row-reverse;
+ }
+ .modal-body {
+ padding-left: 0;
+ padding-right: 0;
+ .table {
+ tr {
+ td {
+ border-color: $border-color;
+ .col-actions {
+ a:not(.dropdown-item) {
+ color: $body-color;
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/pages/app-invoice-print.scss b/src/@core/scss/base/pages/app-invoice-print.scss
new file mode 100644
index 00000000..3f586fcf
--- /dev/null
+++ b/src/@core/scss/base/pages/app-invoice-print.scss
@@ -0,0 +1,58 @@
+// ================================================================================================
+// File Name: app-invoice-print.scss
+// Description: Invoice Layout page layouts SCSS.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy HTML Admin Template
+// Version: 1.0
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import '../bootstrap-extended/include'; // Bootstrap includes
+
+html,
+body {
+ background: $white !important;
+}
+
+.invoice-print {
+ min-width: 768px !important;
+ font-size: 15px !important;
+
+ .invoice-date-wrapper {
+ display: flex;
+ align-items: center;
+
+ .invoice-date-title {
+ width: 8rem;
+ }
+ }
+
+ i,
+ svg {
+ fill: $body-color !important;
+ }
+
+ .invoice-total-wrapper {
+ width: 100%;
+ max-width: 12rem;
+ .invoice-total-item {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ .invoice-total-title {
+ // width: 92px;
+ margin-bottom: 0.35rem;
+ }
+ .invoice-total-amount {
+ margin-bottom: 0.35rem;
+ font-weight: 600;
+ }
+ }
+ }
+}
+
+.invoice-print * {
+ border-color: rgba($color: $black, $alpha: 0.5) !important;
+ color: $body-color !important;
+}
diff --git a/src/@core/scss/base/pages/app-invoice.scss b/src/@core/scss/base/pages/app-invoice.scss
new file mode 100644
index 00000000..91d13f77
--- /dev/null
+++ b/src/@core/scss/base/pages/app-invoice.scss
@@ -0,0 +1,166 @@
+// ================================================================================================
+// File Name: app-invoice.scss
+// Description: Invoice Layout page layouts SCSS.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy HTML Admin Template
+// Version: 1.0
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import '../bootstrap-extended/include'; // Bootstrap includes
+@import '../components/include'; // Components includes
+
+$product-details-bg: #fcfcfc;
+$invoice-spacing: 1.45rem 0;
+$invoice-card-body-padding: 2.5rem;
+
+// Invoice Preview, Edit & Add
+.invoice-preview,
+.invoice-edit,
+.invoice-add {
+ .invoice-padding {
+ padding-left: $invoice-card-body-padding;
+ padding-right: $invoice-card-body-padding;
+ }
+ .table {
+ th:first-child,
+ td:first-child {
+ padding-left: 2.5rem;
+ }
+ }
+ .logo-wrapper {
+ display: flex;
+ align-items: center;
+ margin-bottom: 1.9rem;
+ .invoice-logo {
+ font-size: 2.142rem;
+ font-weight: bold;
+ letter-spacing: -0.54px;
+ margin-left: 1rem;
+ margin-bottom: 0;
+ }
+ }
+ .invoice-title {
+ font-size: 1.285rem;
+ margin-bottom: 1rem;
+ .invoice-number {
+ font-weight: 600;
+ }
+ }
+ .invoice-date-wrapper {
+ display: flex;
+ align-items: center;
+
+ &:not(:last-of-type) {
+ margin-bottom: 0.5rem;
+ }
+
+ .invoice-date-title {
+ width: 7rem;
+ margin-bottom: 0;
+ }
+ .invoice-date {
+ margin-left: 0.5rem;
+ font-weight: 600;
+ margin-bottom: 0;
+ }
+ }
+ .invoice-spacing {
+ margin: $invoice-spacing;
+ }
+ .invoice-number-date {
+ .title {
+ width: 115px;
+ }
+ }
+ .invoice-total-wrapper {
+ width: 100%;
+ max-width: 12rem;
+ .invoice-total-item {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ .invoice-total-title {
+ margin-bottom: 0.35rem;
+ }
+ .invoice-total-amount {
+ margin-bottom: 0.35rem;
+ font-weight: 600;
+ }
+ }
+ }
+
+ @media (min-width: 768px) {
+ .invoice-title {
+ text-align: right;
+ margin-bottom: 3rem;
+ }
+ }
+}
+
+// Invoice Edit & Add
+.invoice-edit,
+.invoice-add {
+ .invoice-preview-card {
+ .invoice-title {
+ text-align: left;
+ margin-right: 3.5rem;
+ margin-bottom: 0;
+ }
+ .invoice-edit-input,
+ .invoice-edit-input-group {
+ max-width: 11.21rem;
+ }
+ .invoice-product-details {
+ background-color: $product-details-bg;
+ padding: 3.75rem 3.45rem 2.3rem 3.45rem;
+ .product-details-border {
+ border: 1px solid $border-color;
+ border-radius: $border-radius;
+ }
+ }
+ .invoice-to-title {
+ margin-bottom: 1.9rem;
+ }
+ .col-title {
+ position: absolute;
+ top: -3.2rem;
+ }
+ .item-options-menu {
+ min-width: 20rem;
+ }
+ .repeater-wrapper {
+ &:not(:last-child) {
+ margin-bottom: 3rem;
+ }
+ }
+ .invoice-calculations {
+ .total-amt-title {
+ width: 100px;
+ }
+ }
+ }
+ @media (max-width: 769px) {
+ .invoice-preview-card {
+ .invoice-title {
+ margin-right: 0;
+ width: 115px;
+ }
+ .invoice-edit-input {
+ max-width: 100%;
+ }
+ }
+ }
+ @media (max-width: 992px) {
+ .col-title {
+ top: -1.5rem !important;
+ }
+ }
+ @media print {
+ hr {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+ }
+}
diff --git a/src/@core/scss/base/pages/app-kanban.scss b/src/@core/scss/base/pages/app-kanban.scss
new file mode 100644
index 00000000..d5e46dfe
--- /dev/null
+++ b/src/@core/scss/base/pages/app-kanban.scss
@@ -0,0 +1,156 @@
+// Core variables and mixins
+
+@import '../bootstrap-extended/include'; // Bootstrap includes
+@import '../components/include'; // Components includes
+
+$avatar-add-new-color: rgba(108, 117, 125, 0.12);
+
+.kanban-application {
+ .kanban-wrapper {
+ width: 100%;
+ position: relative;
+ .kanban-container {
+ display: flex;
+ width: max-content !important;
+
+ // Padding to prevent add-item btn from touching scrollbar
+ padding-bottom: 1.5rem;
+
+ .kanban-board {
+ width: auto !important;
+ height: 100%;
+ background: transparent;
+ &:focus {
+ outline: 0;
+ }
+
+ .kanban-board-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding-left: 0;
+ padding-right: 0;
+ .kanban-title-board {
+ color: $headings-color;
+ font-size: 1.1rem;
+ padding: 0.5rem;
+ font-weight: 500;
+ width: 100%;
+ max-width: 13rem;
+ white-space: nowrap;
+ overflow: hidden;
+ border-radius: $card-border-radius;
+ &:hover,
+ &:focus {
+ background-color: $white;
+ }
+ &:focus {
+ outline: 0;
+ }
+ }
+ .dropdown {
+ .dropdown-toggle:after {
+ display: none;
+ }
+ }
+ }
+ .kanban-drag {
+ min-height: 1rem;
+ min-width: 18.55rem;
+ padding: 0;
+ }
+ .kanban-title-button {
+ position: absolute;
+ left: -8px;
+ bottom: 0;
+ margin: -1rem 0;
+ &:focus {
+ box-shadow: none;
+ }
+ }
+ .kanban-item {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ background: $white;
+ width: 18.55rem;
+ padding: 1rem 1.2rem;
+ margin-bottom: 1.5rem;
+ box-shadow: $box-shadow;
+ cursor: pointer;
+ @include border-radius($card-border-radius);
+ transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1), background 0s, color 0s, border 0s;
+
+ i,
+ svg {
+ stroke: $headings-color;
+ }
+
+ .kanban-text {
+ font-weight: 500;
+ }
+ .item-dropdown {
+ display: none;
+ position: absolute;
+ right: 0rem;
+ cursor: pointer;
+ .dropdown-toggle:after {
+ display: none;
+ }
+ }
+ &:hover {
+ .item-dropdown {
+ display: block;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // Add new board styles
+ .add-new-board {
+ margin-top: 22px;
+ float: left;
+ padding: 0 15px;
+ label {
+ font-size: 1rem;
+ font-weight: 700;
+ margin-bottom: 0;
+ cursor: pointer;
+ }
+ }
+
+ // Update sidebar styles
+ .update-item-sidebar {
+ text-align: left;
+
+ .avatar-add-member {
+ background-color: $avatar-add-new-color;
+ i,
+ svg {
+ stroke: $headings-color;
+ }
+ }
+
+ .comment-editor {
+ .ql-editor {
+ min-height: 5.5rem;
+ }
+ }
+ .comment-toolbar.ql-toolbar {
+ width: 100%;
+ text-align: right;
+ border-top: 0;
+ }
+ }
+}
+
+// For when item is being dragged
+.kanban-item.gu-mirror {
+ .item-dropdown {
+ .dropdown-toggle:after {
+ display: none;
+ }
+ }
+}
diff --git a/src/@core/scss/base/pages/app-todo.scss b/src/@core/scss/base/pages/app-todo.scss
new file mode 100644
index 00000000..ade2e5e3
--- /dev/null
+++ b/src/@core/scss/base/pages/app-todo.scss
@@ -0,0 +1,300 @@
+@import '../bootstrap-extended/include'; // Bootstrap includes
+@import '../components/include'; // Components includes
+
+// Todo Application css starts
+.todo-application {
+ // Content area wrapper border
+ .content-area-wrapper {
+ border: 1px solid $border-color;
+ border-radius: $card-border-radius;
+
+ // Sidebar area starts
+ .sidebar {
+ .todo-sidebar {
+ width: $menu-expanded-width;
+ height: inherit;
+ display: flex;
+ background-color: $white;
+ border-top-left-radius: $card-border-radius;
+ border-bottom-left-radius: $card-border-radius;
+ transition: all 0.3s ease, background 0s;
+
+ // Sidebar Menu
+ .todo-app-menu {
+ width: 100%;
+ z-index: 3;
+ .add-task {
+ padding: 1.5rem;
+ }
+
+ // Sidebar menu list items
+ .sidebar-menu-list {
+ position: relative;
+ height: calc(100% - 80px);
+ }
+ .list-group .list-group-item {
+ padding: 0.58rem 1.5rem;
+ border: 0;
+ font-weight: $font-weight-bold;
+ letter-spacing: 0.4px;
+ border-left: 2px solid transparent;
+ border-radius: 0;
+ + .list-group-item.active {
+ margin-top: 0;
+ }
+ &:hover,
+ &:focus,
+ &.active {
+ background: transparent;
+ color: $primary;
+ }
+ &.active {
+ border-color: #7367f0;
+ }
+ }
+ }
+ }
+ }
+ // Sidebar area ends
+
+ // Modal editor height
+ .ql-editor {
+ padding-bottom: 0;
+ }
+
+ // Right content area common css starts
+ .content-right {
+ width: calc(100% - #{$menu-expanded-width});
+ border-left: 1px solid $border-color;
+ .todo-app-list {
+ height: inherit;
+ }
+ // Todo Fixed search
+ .app-fixed-search {
+ padding: 0.35rem 0.5rem;
+ border-bottom: 1px solid $border-color;
+ background-color: $white;
+ border-top-right-radius: $border-radius;
+ .input-group:focus-within {
+ box-shadow: none;
+ }
+ input,
+ .input-group-text {
+ border: 0;
+ background-color: transparent;
+ }
+ }
+
+ .todo-title {
+ margin-left: 0.5rem;
+ margin-right: 0.5rem;
+ }
+ .completed {
+ .todo-title {
+ color: $text-muted;
+ }
+ }
+ // ToDo task list area
+ .todo-task-list-wrapper {
+ position: relative;
+ height: calc(100% - 3.56rem); // ? search box height (3.49rem) + 1px bottom border till 2 decimals
+ background-color: $white;
+ border-radius: 0;
+ .todo-task-list {
+ padding: 0;
+ margin: 0;
+ list-style: none;
+ li {
+ cursor: pointer;
+ transition: all 0.2s, border-color 0s;
+ position: relative;
+ padding: 0.893rem 2rem;
+ &:not(:first-child) {
+ border-top: 1px solid $border-color;
+ }
+ &:hover {
+ transform: translateY(-4px);
+ box-shadow: 0 3px 10px 0 $border-color;
+ transition: all 0.2s;
+ }
+ .todo-title-wrapper {
+ display: flex;
+ justify-content: space-between;
+ }
+ .todo-title-area,
+ .title-wrapper {
+ display: flex;
+ align-items: center;
+ }
+ // Todo Item Action
+ .todo-item-action {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ a {
+ cursor: pointer;
+ font-size: 1.2rem;
+ line-height: 1.5;
+ }
+ }
+
+ .badge-wrapper {
+ display: flex;
+ .badge:not(:last-child) {
+ margin-right: 0.5rem;
+ }
+ }
+ }
+ }
+ // When we search, no-results
+ .no-results {
+ display: none;
+ padding: 1.5rem;
+ text-align: center;
+ &.show {
+ display: block;
+ }
+ }
+ }
+ }
+ }
+ // Slide In close btn
+ .todo-item-action {
+ .close {
+ background: transparent !important;
+ box-shadow: none !important;
+ position: unset !important;
+ transform: none !important;
+ transition: none !important;
+ }
+ }
+
+ // Drag & Drop Icon
+ .todo-item {
+ .drag-icon {
+ visibility: hidden;
+ cursor: move;
+ position: absolute;
+ left: 0.2rem;
+ width: 1.75rem;
+ height: 4rem;
+ padding: 0 5px;
+ }
+ &:hover {
+ .drag-icon {
+ visibility: visible;
+ }
+ }
+ }
+
+ // validation text style
+ form .error:not(li):not(input) {
+ color: $danger;
+ font-size: 85%;
+ margin-top: 0.25rem;
+ }
+}
+
+// while dragging task
+.gu-mirror {
+ list-style-type: none;
+ list-style: none;
+ padding: 0.893rem 2rem;
+ background-color: $white;
+ border-top: 1px solid $border-color;
+ border-bottom: 1px solid $border-color;
+ box-shadow: 0 0 10px 0 rgba($black, 0.25);
+ .todo-title-wrapper {
+ display: flex;
+ justify-content: space-between;
+ }
+ .todo-title-area,
+ .title-wrapper {
+ display: flex;
+ align-items: center;
+ }
+ // Todo Item Action
+ .todo-item-action {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ }
+ .todo-title {
+ padding-left: 1rem;
+ }
+ &.completed {
+ .todo-title {
+ color: $text-muted;
+ }
+ }
+}
+
+// Keyframe animation
+@-webkit-keyframes fadeIn {
+ 0% {
+ opacity: 0;
+ top: 100px;
+ }
+ 75% {
+ opacity: 0.5;
+ top: 0px;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+@include media-breakpoint-down(md) {
+ .todo-application {
+ .content-area-wrapper {
+ .sidebar-left {
+ .todo-sidebar {
+ transform: translateX(-110%);
+ transition: all 0.3s ease-in-out;
+ left: 0;
+ position: absolute;
+ z-index: 5;
+ border-top-left-radius: $border-radius-sm;
+ border-bottom-left-radius: $border-radius-sm;
+ }
+ &.show {
+ .todo-sidebar {
+ transform: translateX(0%);
+ transition: all 0.3s ease;
+ }
+ }
+ }
+ .content-right {
+ width: 100%;
+ border-left: 0;
+ .app-fixed-search {
+ border-top-left-radius: $border-radius;
+ }
+ }
+ // ? Responsive Todo list in columns
+ .todo-title-wrapper {
+ flex-direction: column;
+ .title-wrapper {
+ margin-bottom: 0.5rem;
+ }
+ .todo-title {
+ display: -webkit-box;
+ -webkit-line-clamp: 1;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+ }
+ .badge-wrapper {
+ margin-right: auto !important;
+ }
+ }
+ }
+ }
+}
+@media (max-width: 349.98px) {
+ .todo-application .content-area-wrapper .sidebar .todo-sidebar {
+ width: 230px;
+ }
+}
+.horizontal-menu .todo-application .content-area-wrapper .content-right .todo-task-list-wrapper {
+ height: calc(100% - 3.6rem); // ? search box height (48.79px + 1px border = 3.56), horizontal needs 1 decimal point
+}
diff --git a/src/@core/scss/base/pages/app-user.scss b/src/@core/scss/base/pages/app-user.scss
new file mode 100644
index 00000000..1c044dbf
--- /dev/null
+++ b/src/@core/scss/base/pages/app-user.scss
@@ -0,0 +1,107 @@
+// ================================================================================================
+// File Name: app-users.scss
+// Description: Invoice Layout page layouts SCSS.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy HTML Admin Template
+// Version: 1.0
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import '../bootstrap-extended/include'; // Bootstrap includes
+
+$color-box-size: 2.714rem;
+
+// User List
+.app-user-list {
+ .dataTables_wrapper {
+ .dataTables_length {
+ select {
+ margin-left: 0.5rem;
+ margin-right: 0.5rem;
+ }
+ }
+ }
+
+ @media (max-width: 767px) {
+ .header-actions {
+ .dataTables_length {
+ text-align: left;
+ }
+ & > div[class^='col-']:last-child {
+ padding-left: 0;
+ }
+ }
+ }
+}
+
+// User View
+.app-user-view {
+ .user-info-wrapper {
+ .user-info-title {
+ width: 11.785rem;
+ }
+ }
+ .user-total-numbers {
+ margin-top: 2.428rem;
+ .color-box {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: $color-box-size;
+ width: $color-box-size;
+ border-radius: $border-radius;
+
+ i,
+ svg {
+ height: 1.285rem;
+ width: 1.285rem;
+ font-size: 1.285rem;
+ }
+ }
+ }
+}
+
+// User Edit
+.app-user-edit {
+ .nav-pills {
+ margin-bottom: 2.3rem;
+ .nav-link {
+ i,
+ svg {
+ font-size: 0.921rem;
+ margin-right: 0.5rem;
+ }
+ }
+ }
+
+ @media (max-width: 576px) {
+ .nav-pills {
+ .nav-link {
+ i,
+ svg {
+ height: 1.2rem;
+ width: 1.2rem;
+ font-size: 1.2rem;
+ margin-right: 0;
+ }
+ }
+ }
+ }
+}
+
+// RTL
+html[data-textdirection='rtl'] {
+ .app-user-list {
+ .dataTables_filter {
+ input {
+ margin-right: 0;
+ margin-left: 0.5rem;
+ }
+ }
+
+ .dropdown .dropdown-menu.dropdown-menu-right {
+ right: 3.57rem !important;
+ }
+ }
+}
diff --git a/src/@core/scss/base/pages/dashboard-ecommerce.scss b/src/@core/scss/base/pages/dashboard-ecommerce.scss
new file mode 100644
index 00000000..eadade79
--- /dev/null
+++ b/src/@core/scss/base/pages/dashboard-ecommerce.scss
@@ -0,0 +1,66 @@
+// ================================================================================================
+// File Name: aggrid.scss
+// Description: SCC file for Aggrid.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import '../bootstrap-extended/include'; // Bootstrap includes
+@import '../components/include'; // Components includes
+
+// Statistics Card
+.card-statistics {
+ .statistics-body {
+ padding: 2rem 2.4rem !important;
+ }
+
+ @include media-breakpoint-down(md) {
+ .card-header,
+ .statistics-body {
+ padding: 1.5rem !important;
+ }
+ }
+}
+
+// Company Table Card
+.card-company-table {
+ thead th {
+ border: 0;
+ }
+ td {
+ padding-top: 0.75rem;
+ padding-bottom: 0.75rem;
+
+ .avatar {
+ background-color: $body-bg;
+ margin-right: 2rem;
+
+ img {
+ border-radius: 0;
+ }
+ }
+ }
+}
+
+// Browser State Card
+.card-browser-states {
+ .browser-states {
+ &:first-child {
+ margin-top: 0;
+ }
+ &:not(:first-child) {
+ margin-top: 1.7rem;
+ }
+ }
+}
+
+// Transaction Card
+.card-transaction {
+ .transaction-item {
+ &:not(:last-child) {
+ margin-bottom: 1.5rem;
+ }
+ }
+}
diff --git a/src/@core/scss/base/pages/page-auth.scss b/src/@core/scss/base/pages/page-auth.scss
new file mode 100644
index 00000000..081c4436
--- /dev/null
+++ b/src/@core/scss/base/pages/page-auth.scss
@@ -0,0 +1,106 @@
+@import '../bootstrap-extended/include'; // Bootstrap includes
+@import '../components/include'; // Components includes
+
+$auth-1-inner-max-width: 400px !default;
+
+.auth-wrapper {
+ display: flex;
+ flex-basis: 100%;
+ min-height: 100vh;
+ min-height: calc(var(--vh, 1vh) * 100);
+ width: 100%;
+
+ .auth-inner {
+ width: 100%;
+ position: relative;
+ }
+
+ &.auth-v1 {
+ align-items: center;
+ justify-content: center;
+ overflow: hidden; // For v1 scroll for long auth form
+ .auth-inner {
+ &:before {
+ width: 244px;
+ height: 243px;
+ content: ' ';
+ position: absolute;
+ top: -54px;
+ left: -46px;
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPQAAADzCAMAAACG9Mt0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAA9KADAAQAAAABAAAA8wAAAADhQHfUAAAAyVBMVEUAAAD///+AgP+AgP9mZv+AgNWAgP9tbf9gYP+AgP9xcf9mZv+AZuaAgP9dXf90dOhiYv92dv9mZu5mZv93d+53d/9paf94afCAcfFrXvJra/9mZvJzZvJzc/JoaP96b/Rqav91aupsYvV2bOt2bPVxaPZ7cfZqavZyau1waPd4aO9xafBxafh4afB1bfh4avFuZ/F2afJzZvJzZ/N0aPN0bvN3bPR0ae5yZ/R3be93bfR1au9zafBxbPVzavV0a/F0a/ZyafFwaPKZm3nTAAAAQ3RSTlMAAQIEBQYGBwgICQoKCgsLDQ0PDw8PERESExMUFBQWFxgYGhoaGxsdHSAgIiIiIyQlJygqLCwtLi8vLzAzNDU3Nzg7h9vbHgAAA9RJREFUeNrt3ftS2kAUx/Fc1gSyWsErtuJdRDQiiteolb7/QzUoTm07k4AzObuu3/MCez45yWbzT36eZ6b8erO1e1B97baadd+zocJWmg0HaXe/+uqmg2GWtkLT5Lle1m9LdhG2+1lvzuiUO1knEF81yFc1N+35m15kZOGodz1vyLx+v2Lseq/erxtZd/NuweCTtfiwaWLOD5FnsqI7+VnP3y8afnEs3Es/1+H1qvETwuq18B7e6VlwLup1ZM8kWWQBOsrmHL7GVtxvYRZYgQ4ywae61ffsqH5Lbq20bQm6ncp9P2ehJegwE/u+rl95ttSwLrVSc2ANetAU28dSa9Cp2E623bUG3d2VWmn/wBq0XCugQYMGLdVKoOJaoiuok1NdXSW1WAUfRPtRUllflaJf5ZE/O9pXVbZUPTov5c+IDqvtRwStdTgLutoxy6GnGfYb2o+1I2gd+1OiqzfLocvVE7TSDqG1mgodaqfQZbvZC9rXjqG1X45WzqFVKVpk0LLo4lGP0ZGD6KgMnTiITkrQgXYQrYNitHISrYrRsZPouBhdcxJdK0YnTqKTYrR2Eq1BgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRoh9DH59ag86ACoSYOL61B55EUQk1s3VqDzsNHhJpYe7QGncfMSHUxaliCHgcKSXVxeWQJehwdJdXF4dAS9DgkTKqLxuibFeiXODixNi7OrEC/BP+JtbE0WrYA/RrxKNfH2YUF6NegSbk+Gk87xtErN6EsWm88fzeMXpwE9EruLns/l42io4dJFLPo2/Po1w+D6IW7t9Bt2SPx3vOOMfS7eHVZtN54ulg2go56138Ct4XRunE2Ovsmjg46WeddUoUWr6WL0fCoIYgO2/2s91fstDZQjcPL0ePt5flpdXUwqW46uMrS1j95JNpQrW0dHp9UV/uT2m416/8HVGg3qzhpBjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KBBgwYNGjRo0KC/FDpx0pwUo2tOomvF6NhJdFyMVk6iVTE6cBIdeF9vJyvZx/I/AzuIjsrQvoNovwzt4FamSs0Ojrp80PmvoB0zh940pb7azf1yg7t0LIt978uppzbnalfucDW92ZndLPRmKweGPduYJ+zoM5/Dk+gD5NdvLhXXPp88qcUqmEH5G5JZRs6cuxwIAAAAAElFTkSuQmCC');
+ @include media-breakpoint-down(xs) {
+ display: none;
+ }
+ }
+ &:after {
+ width: 272px;
+ height: 272px;
+ content: ' ';
+ position: absolute;
+ bottom: -55px;
+ right: -75px;
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARAAAAEQCAMAAABP1NsnAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAABEKADAAQAAAABAAABEAAAAAAQWxS2AAAAwFBMVEUAAAD///+AgICAgP9VVaqqVf+qqv+AgL+AgP9mZsxmZv+ZZv+AgNWAgP9tbdttbf+Sbf+AYN+AgN+AgP9xceNmZv+AZuaAZv90dOh0dP9qav+AauqAav+AgP92dv9tbf+Abe2Abf93Zu53d+6AcO94afCAcfF5a+R5a/JzZuaAZvKAc/J5bed5bfOAaPN6b/R1auqAavR6ZvV6cPV2bOuAbPV7aPZ2be2AbfZ7au17avZ3Zu53b+57a+97a/d4aO9J6CoeAAAAQHRSTlMAAQICAwMDBAQFBQUGBgcHBwgICAkKCgoLCwwMDAwNDg4ODw8QERITExQUFBUVFhcYGBkZGhobHBwdHR4eHx8gJ5uMWwAAA/FJREFUeNrt2G1XEkEYxvHZNk2xHGzdbKFl0cTwgdSkCKzu7/+t4pw6sAjtjIueE/f8r3fMO35nZnbuy5gVGcvfzJe0rnTfGI+MggGJRUZnbpPIhJKt88nU53JnFULvyISY6KAv8vPj0vr2rYwiE2Z2B9J+uNYcyyQxwWZvaeGH3G4bMjsvI/kcwTC/V+7kLoahlITzQojP3ZFgsJCh7IJQzpX0QFj4uMiY18eDMZ9bZCF9OQahnK6cm/Y7js0sh/LF3Auv1PlQd3MxbdXYIQspV44EEEAAAWTNDAYYkKdJbNMsLzYueZbaZ2iM46RVbHBaiZ9Js+nHEdli42N9XuSen5hGp1CQTuOJQDRsD99N4gMSpYWapNH6IJo83CIeILZQFesEaber79NCWRoukOpNEnW0gXQqD81w6ACxhbrYde7VuFCYeA2QRCNIsgZISyNIqz6IyhPjOjNVIFYniK3dmKU6QdLaJUimEySrDZLrBMlrgxRKU7sxCw/EMe0CAggggADySJCqxixIkKpNEh6IozELD8RxjQACCCCAAPJIkKrGLEgQXqqAAEJjxrQLCCCAAEJjRmNGY8a0CwgggABCYwYIfQgggNCYMe0CAggggNCY0ZjRmDHtAgIIIIAAQmNGHwIIIDRmTLuAAAIIIDRmNGY0Zky7gAACCCCA0JjRhwACCI0Z0y4ggAACCI0ZjRmNGdMuIIAAAgggNGb0IYAAQmPGtAsIIIAAQmNGY0ZjxrQLCCCAAAIIjRl9CCCA0Jgx7QICCCCA0JjRmNGYMe0CAggggABCY0YfAgggNGZMu4AAAgggNGY0ZjRmTLuAAAIIIIDQmNGHAAIIjRnTLiCAAAIIjRmNGY0ZIEy7gAACCCA0ZvQhgABCY8a0CwgggABCY0ZjBgiNGdMuIIAAAgiN2f/Sh+Q6PfLaIJlOkKw2SKoTJK3dmFmdILb2tBvrBIlrg5iWRo+WqQ+SaARJ1gCJAzsxThCN16p1vNurGjNjoo42j07kAHFskoY2kEbl33U0ZgoPjXW+Rl0gkarnahqtDaJKxMPDDWIiNafGenh4gExvVhXfmk7Da6L1AVGxSby2h6MxK79Zk42ea1pJbJ48sU2zDezQ8iy1z6BBwoyjMQsvXp8YQAAhgADilRfyy+wf8WqZZUfGZihvgZiB3FybC+kCUU5XLkAo50C+gbBQdUzkAIVyejIAYfFTI1solHP2HgNCnHn5AYNy4jvpoVB6fVzL91cwzLJ9Lfd7S0jhehxO5H5/yePr1W6gHonI7fJ5ORSR/n6Q2yQanq763zuXU5LJZRKiyD/W9/pjkdPZz0/yJ8fqVyry+qQZDMjJKoDfy8bRVhHhQTwAAAAASUVORK5CYII=');
+ z-index: -1;
+ @include media-breakpoint-down(xs) {
+ display: none;
+ }
+ }
+ }
+ }
+
+ &.auth-v2 {
+ align-items: flex-start;
+ .auth-inner {
+ height: 100vh;
+ overflow-y: auto; // For v2 scroll for long auth form
+ height: calc(var(--vh, 1vh) * 100);
+ }
+ .brand-logo {
+ position: absolute;
+ top: 2rem;
+ left: 2rem;
+ margin: 0;
+ z-index: 1;
+ }
+ }
+
+ &.auth-v1 .auth-inner {
+ max-width: $auth-1-inner-max-width;
+ }
+
+ .brand-logo {
+ display: flex;
+ justify-content: center;
+ margin: 1rem 0 2rem 0;
+ .brand-text {
+ font-weight: 600;
+ }
+ }
+
+ .auth-footer-btn {
+ .btn {
+ padding: 0.6rem !important;
+ &:not(:last-child) {
+ margin-right: 1rem;
+ }
+ }
+ }
+}
+
+@media (min-width: 1200px) {
+ .auth-wrapper {
+ &.auth-v2 .auth-card {
+ width: $auth-1-inner-max-width;
+ }
+ }
+}
+
+.auth-wrapper .auth-bg {
+ background-color: $white;
+}
+
+.dark-layout {
+ .auth-wrapper .auth-bg {
+ background-color: $theme-dark-card-bg;
+ }
+}
diff --git a/src/@core/scss/base/pages/page-blog.scss b/src/@core/scss/base/pages/page-blog.scss
new file mode 100644
index 00000000..eef2a3d8
--- /dev/null
+++ b/src/@core/scss/base/pages/page-blog.scss
@@ -0,0 +1,63 @@
+// ================================================================================================
+// File Name: blog.scss
+// Description: blog related pages layouts SCSS.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import '../bootstrap-extended/include'; // Bootstrap includes
+@import '../components/include'; // Components includes
+
+// blog list
+.blog-list-wrapper {
+ // Truncate blog titles with 2 lines
+ .blog-title-truncate {
+ display: -webkit-box;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+ }
+
+ // Truncate blog content with 3 lines
+ .blog-content-truncate {
+ display: -webkit-box;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+ }
+}
+
+// Blog Detail
+.blog-detail-wrapper {
+ .blog-detail-share .dropdown-menu {
+ min-width: auto;
+ }
+}
+
+// Blog Sidebar
+.blog-sidebar {
+ .blog-recent-posts {
+ img {
+ object-fit: cover;
+ }
+ // below scss is written because recent blog posts' titles are links to other pages
+ .text-body-heading:hover {
+ color: $link-hover-color !important;
+ }
+ }
+
+ .blog-recent-post-title,
+ .blog-category-title {
+ line-height: 23px;
+ letter-spacing: 0;
+ }
+}
+
+// Blog Edit
+.blog-edit-wrapper {
+ .border {
+ border-color: $input-border-color !important;
+ }
+}
\ No newline at end of file
diff --git a/src/@core/scss/base/pages/page-coming-soon.scss b/src/@core/scss/base/pages/page-coming-soon.scss
new file mode 100644
index 00000000..850b12e2
--- /dev/null
+++ b/src/@core/scss/base/pages/page-coming-soon.scss
@@ -0,0 +1,21 @@
+// ================================================================================================
+// File Name: coming-soon.scss
+// Description: Coming Soon pages custom scss
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+/*========== Coming Soon Background Image =========*/
+
+.clockCard {
+ float: left;
+}
+
+.getting-started {
+ font-size: 3rem;
+}
+.lead {
+ font-size: 1rem;
+}
diff --git a/src/@core/scss/base/pages/page-faq.scss b/src/@core/scss/base/pages/page-faq.scss
new file mode 100644
index 00000000..85118371
--- /dev/null
+++ b/src/@core/scss/base/pages/page-faq.scss
@@ -0,0 +1,66 @@
+// ===============================================================================================
+// File Name: page-faq.scss
+// Description: FAQ Page Content SCSS
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import '../bootstrap-extended/include'; // Bootstrap includes
+@import '../components/include'; // Components includes
+
+// faq search section
+.faq-search {
+ background-size: cover;
+ background-color: rgba($primary, 0.12) !important;
+ .faq-search-input {
+ .input-group {
+ // remove input group box shadow on inside focus
+ &:focus-within {
+ box-shadow: none;
+ }
+ }
+ }
+}
+
+// Contact cards
+.faq-contact {
+ .faq-contact-card {
+ background-color: rgba($gray-100, 0.12);
+ }
+}
+
+// make jumbotron card body padding
+@include media-breakpoint-up(lg) {
+ .faq-search {
+ .card-body {
+ padding: 8rem !important;
+ }
+ }
+}
+
+// make jumbotron card body padding
+@include media-breakpoint-only(md) {
+ .faq-search {
+ .card-body {
+ padding: 6rem !important;
+ }
+ }
+}
+
+@include media-breakpoint-up(md) {
+ // faq search input width fixed for medium up screen
+ .faq-search {
+ .faq-search-input {
+ .input-group {
+ width: 576px;
+ margin: 0 auto;
+ }
+ }
+ }
+ // faq navigation fix the navigation section so that vector image not move as per collapse
+ .faq-navigation {
+ height: 550px;
+ }
+}
diff --git a/src/@core/scss/base/pages/page-knowledge-base.scss b/src/@core/scss/base/pages/page-knowledge-base.scss
new file mode 100644
index 00000000..790e76e7
--- /dev/null
+++ b/src/@core/scss/base/pages/page-knowledge-base.scss
@@ -0,0 +1,77 @@
+// ===============================================================================================
+// File Name: knowledge-base.scss
+// Description: Knowledge Base Page Content SCSS
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import '../bootstrap-extended/include'; // Bootstrap includes
+@import '../components/include'; // Components includes
+
+$svg-bg: #fcfcfc;
+
+// Knowledge-base jumbotron scss
+.knowledge-base-bg {
+ background-size: cover;
+ background-color: rgba($primary, 0.12) !important;
+
+ // knowledge base search
+ .kb-search-input {
+ .input-group {
+ // remove input group box shadow on inside focus
+ &:focus-within {
+ box-shadow: none;
+ }
+ }
+ }
+}
+
+//
+.kb-search-content-info {
+ .kb-search-content {
+ .card-img-top {
+ background-color: $svg-bg;
+ }
+ }
+ .no-result {
+ &.no-items {
+ display: none;
+ }
+ }
+}
+// knowledge base title
+.kb-title {
+ display: flex;
+ align-items: center;
+}
+
+//search input width fixed for medium up screen
+@include media-breakpoint-up(md) {
+ .knowledge-base-bg {
+ .kb-search-input {
+ .input-group {
+ width: 576px;
+ margin: 0 auto;
+ }
+ }
+ }
+}
+
+// make jumbotron card body padding
+@include media-breakpoint-up(lg) {
+ .knowledge-base-bg {
+ .card-body {
+ padding: 8rem;
+ }
+ }
+}
+// make jumbotron card body padding
+@include media-breakpoint-only(md) {
+ .knowledge-base-bg {
+ .card-body {
+ padding: 6rem;
+ }
+ }
+}
diff --git a/src/@core/scss/base/pages/page-misc.scss b/src/@core/scss/base/pages/page-misc.scss
new file mode 100644
index 00000000..cdcde359
--- /dev/null
+++ b/src/@core/scss/base/pages/page-misc.scss
@@ -0,0 +1,36 @@
+// ================================================================================================
+// File Name: page-misc.scss
+// Description: Coming Soon pages custom scss
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+$misc-inner-max-width: 750px;
+
+.misc-wrapper {
+ display: flex;
+ flex-basis: 100%;
+ min-height: 100vh;
+ width: 100%;
+ align-items: center;
+ justify-content: center;
+
+ .misc-inner {
+ position: relative;
+ max-width: $misc-inner-max-width;
+ }
+
+ .brand-logo {
+ display: flex;
+ justify-content: center;
+ position: absolute;
+ top: 2rem;
+ left: 2rem;
+ margin: 0;
+ .brand-text {
+ font-weight: 600;
+ }
+ }
+}
diff --git a/src/@core/scss/base/pages/page-pricing.scss b/src/@core/scss/base/pages/page-pricing.scss
new file mode 100644
index 00000000..4e1f9650
--- /dev/null
+++ b/src/@core/scss/base/pages/page-pricing.scss
@@ -0,0 +1,100 @@
+// ===============================================================================================
+// File Name: pricing.scss
+// Description: pricing Page Content SCSS
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import '../bootstrap-extended/include'; // Bootstrap includes
+@import '../components/include'; // Components includes
+
+// pricing card
+.pricing-card {
+ // card active border
+ .card {
+ &.popular {
+ border: 1px solid $primary;
+ }
+ }
+ // list group circle
+ .list-group-circle {
+ font-weight: $font-weight-bold;
+ color: $headings-color;
+ }
+ // plan price value
+ .annual-plan {
+ margin-bottom: 1.7rem;
+ .plan-price {
+ sup {
+ top: -1.5rem;
+ left: 0.2rem;
+ }
+ span {
+ font-size: 3.5rem;
+ line-height: 0.8;
+ }
+ sub {
+ bottom: 0;
+ right: 0.14rem;
+ }
+ }
+
+ // annual pricing value
+ .annual-pricing {
+ position: absolute;
+ margin: auto;
+ left: 0;
+ right: 0;
+ }
+ }
+}
+
+// trial free card
+.pricing-free-trial {
+ height: 16.71rem;
+ background-color: rgba(186, 191, 199, 0.12);
+ margin-right: -$content-padding;
+ margin-left: -$content-padding;
+ margin-top: 7.5rem;
+ margin-bottom: 6.3rem;
+
+ // row default margin zero because it cause the horizontal scroll bar
+ .row {
+ margin: 0;
+ }
+ // content container
+ .pricing-trial-content {
+ padding: 0 1rem;
+ // image
+ img {
+ position: relative;
+ top: -3.1rem;
+ }
+ }
+}
+
+// price trial ad card in small screen
+@include media-breakpoint-down(sm) {
+ .pricing-free-trial {
+ height: auto;
+ .pricing-trial-content {
+ flex-direction: column;
+ align-items: center;
+ .pricing-trial-img {
+ top: 0;
+ margin-top: 2rem;
+ height: 150px;
+ }
+ }
+ }
+}
+
+// free trial div margin change on below screen
+@include media-breakpoint-down(xs) {
+ .pricing-free-trial {
+ margin-right: -1.2rem;
+ margin-left: -1.2rem;
+ }
+}
diff --git a/src/@core/scss/base/pages/page-profile.scss b/src/@core/scss/base/pages/page-profile.scss
new file mode 100644
index 00000000..7d41c126
--- /dev/null
+++ b/src/@core/scss/base/pages/page-profile.scss
@@ -0,0 +1,146 @@
+// ================================================================================================
+// File Name: page-profile.scss
+// Description: Page content different types of users page layouts SCSS.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import '../bootstrap-extended/include'; // Bootstrap includes
+@import '../components/include'; // Components includes
+
+// User profile Scss
+#user-profile {
+ /*-------------profile header section---------*/
+ .profile-header {
+ overflow: hidden;
+
+ // profile picture container
+ .profile-img-container {
+ position: absolute;
+ bottom: -2rem;
+ left: 2.14rem;
+ z-index: 2;
+
+ // profile image
+ .profile-img {
+ height: 8.92rem;
+ width: 8.92rem;
+ border: 0.357rem solid $white;
+ background-color: $white;
+ border-radius: $card-border-radius;
+ box-shadow: $box-shadow;
+ }
+ }
+
+ // profile navbar padding
+ .profile-header-nav {
+ .navbar {
+ padding: 0.8rem 1rem;
+
+ // navbar toggle button
+ .navbar-toggler {
+ line-height: 0;
+ }
+ .profile-tabs {
+ .nav-item {
+ i,
+ svg {
+ margin-right: 0;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /*-------- profile info section --------*/
+ #profile-info {
+ // profile star icons
+ .profile-star {
+ color: $gray-100;
+
+ i,
+ svg {
+ // filled star icons
+ &.profile-favorite {
+ fill: $warning;
+ stroke: $warning;
+ }
+ }
+ }
+
+ // filled heart icons
+ .profile-likes {
+ fill: $danger;
+ stroke: $danger;
+ }
+
+ // progress-bar height
+ .profile-polls-info {
+ .progress {
+ height: 0.42rem;
+ }
+ }
+ }
+
+ //profile-latest-img - hover effect
+ .profile-latest-img {
+ transition: all 0.2s ease-in-out;
+ &:hover {
+ transform: translateY(-4px) scale(1.2);
+ z-index: 10;
+ }
+ img {
+ margin-top: 1.28rem;
+ }
+ }
+
+ // Load More Button - Block UI
+ .block-element {
+ .spinner-border {
+ border-width: 0.14rem;
+ }
+ }
+}
+
+// Latest Photo Section - Image size
+@include media-breakpoint-down(md) {
+ #user-profile {
+ .profile-latest-img {
+ img {
+ width: 100%;
+ }
+ }
+ }
+}
+
+@include media-breakpoint-up(md) {
+ // navbar tabs pills
+ .profile-header-nav {
+ .profile-tabs {
+ width: 100%;
+ margin-left: 13.2rem;
+ }
+ }
+}
+
+// profile img and title
+@include media-breakpoint-down(xs) {
+ #user-profile {
+ .profile-header {
+ .profile-img-container {
+ .profile-img {
+ height: 100px;
+ width: 100px;
+ }
+ .profile-title {
+ h2 {
+ font-size: 1.5rem;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/pages/ui-colors.scss b/src/@core/scss/base/pages/ui-colors.scss
new file mode 100644
index 00000000..6afcbbeb
--- /dev/null
+++ b/src/@core/scss/base/pages/ui-colors.scss
@@ -0,0 +1,25 @@
+// ===============================================================================================
+// File Name: colors.scss
+// Description: Colors Page Content SCSS
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import '../bootstrap-extended/include'; // Bootstrap includes
+@import '../components/include'; // Components includes
+
+.colors-list {
+ li {
+ padding: 0.4rem;
+ i,
+ svg {
+ height: 1.2rem;
+ width: 1.2rem;
+ top: 0;
+ position: relative;
+ margin-right: 0.25rem;
+ }
+ }
+}
diff --git a/src/@core/scss/base/pages/ui-feather.scss b/src/@core/scss/base/pages/ui-feather.scss
new file mode 100644
index 00000000..7fe836a6
--- /dev/null
+++ b/src/@core/scss/base/pages/ui-feather.scss
@@ -0,0 +1,59 @@
+@import '../bootstrap-extended/include'; // Bootstrap includes
+
+.icon-search-wrapper {
+ max-width: 300px;
+
+ .feather-search {
+ height: 1.15rem;
+ width: 1.15rem;
+ }
+}
+#icons-container {
+ .icon-card {
+ width: 128px;
+ }
+}
+
+// Active Card
+.icon-card {
+ border: 1px solid transparent;
+ &.active {
+ border-color: $primary;
+ i,
+ svg {
+ color: $primary;
+ }
+ }
+}
+
+@media (max-width: 1024px) {
+ #icons-container {
+ .icon-card {
+ width: 126px;
+ }
+ }
+}
+
+@media (max-width: 768px) {
+ #icons-container {
+ .icon-card {
+ width: 131px;
+ }
+ }
+}
+
+@media (max-width: 414px) {
+ #icons-container {
+ .icon-card {
+ width: 110px;
+ }
+ }
+}
+
+@media (max-width: 375px) {
+ #icons-container {
+ .icon-card {
+ width: 150px;
+ }
+ }
+}
diff --git a/src/@core/scss/base/plugins/charts/chart-apex.scss b/src/@core/scss/base/plugins/charts/chart-apex.scss
new file mode 100644
index 00000000..616d3aad
--- /dev/null
+++ b/src/@core/scss/base/plugins/charts/chart-apex.scss
@@ -0,0 +1,158 @@
+@import '../../bootstrap-extended/include'; // Bootstrap includes
+@import '../../components/include'; // Components includes
+
+.apexcharts-canvas {
+ line[stroke='transparent'] {
+ display: none;
+ }
+ .apexcharts-tooltip {
+ background: $white;
+ border-color: $border-color;
+ .apexcharts-tooltip-title {
+ background: $white !important;
+ border-color: $border-color !important;
+ font-weight: 600;
+ }
+ &.apexcharts-theme-dark {
+ .apexcharts-tooltip-text-label,
+ .apexcharts-tooltip-text-value {
+ color: $white;
+ }
+ }
+ }
+ .apexcharts-xaxistooltip,
+ .apexcharts-yaxistooltip {
+ background: $body-bg;
+ border-color: $border-color;
+ &:after,
+ &:before {
+ border-bottom-color: $body-bg;
+ }
+ }
+ .apexcharts-text,
+ .apexcharts-tooltip-text,
+ .apexcharts-datalabel-label,
+ .apexcharts-datalabel {
+ font-family: $font-family-base !important;
+ fill: $body-color;
+ font-weight: 400;
+ filter: none;
+ }
+
+ .apexcharts-pie-label {
+ fill: white;
+ filter: none;
+ }
+
+ .apexcharts-pie {
+ .apexcharts-pie-series .apexcharts-pie-area {
+ stroke-width: 0;
+ }
+ .apexcharts-datalabel-label,
+ .apexcharts-datalabel-value {
+ font-size: 1.5rem;
+ }
+ }
+
+ .apexcharts-marker {
+ box-shadow: none;
+ }
+ .apexcharts-legend-series {
+ & + .apexcharts-legend-series {
+ margin-top: 0.625rem;
+ }
+ .apexcharts-legend-text {
+ margin-left: 0.5rem;
+ color: $body-color !important;
+ font-size: 1rem !important;
+ }
+ }
+ .apexcharts-xcrosshairs,
+ .apexcharts-ycrosshairs,
+ .apexcharts-gridline {
+ stroke: $border-color;
+ }
+}
+.apexcharts-legend.position-bottom {
+ bottom: 3rem;
+}
+
+.dark-layout {
+ .apexcharts-canvas {
+ .apexcharts-xaxis-tick,
+ line {
+ stroke: $theme-dark-border-color;
+ }
+ .apexcharts-heatmap {
+ .apexcharts-heatmap-rect {
+ stroke: $theme-dark-border-color;
+ }
+ }
+ .apexcharts-radialbar {
+ .apexcharts-radialbar-track .apexcharts-radialbar-area {
+ stroke: $theme-dark-body-bg;
+ }
+ }
+ .apexcharts-radar-series {
+ polygon {
+ fill: $theme-dark-body-bg;
+ stroke: $theme-dark-border-color;
+ }
+ }
+ .apexcharts-datalabels-group {
+ .apexcharts-datalabel-value {
+ fill: $white;
+ }
+ }
+ .apexcharts-tooltip {
+ background: $theme-dark-card-bg;
+ border-color: $theme-dark-border-color;
+ .apexcharts-tooltip-title {
+ background: $theme-dark-card-bg !important;
+ border-color: $theme-dark-border-color !important;
+ color: $white;
+ }
+ .apexcharts-tooltip-text-label,
+ .apexcharts-tooltip-text-value {
+ color: $white;
+ }
+ }
+ .apexcharts-xaxistooltip,
+ .apexcharts-yaxistooltip {
+ background: $theme-dark-body-bg;
+ border-color: $theme-dark-border-color;
+ &:after,
+ &:before {
+ border-bottom-color: $theme-dark-border-color;
+ }
+ .apexcharts-xaxistooltip-text,
+ .apexcharts-yaxistooltip-text {
+ color: $white;
+ }
+ }
+ .apexcharts-xaxistooltip {
+ .apexcharts-xaxistooltip-text {
+ color: $white;
+ }
+ }
+ .apexcharts-yaxis-label,
+ .apexcharts-xaxis-label,
+ .apexcharts-tooltip-text,
+ .apexcharts-datalabel-label {
+ fill: $theme-dark-body-color;
+ }
+ .apexcharts-marker {
+ stroke: $theme-dark-border-color;
+ }
+ .apexcharts-legend-series {
+ .apexcharts-legend-text {
+ color: $theme-dark-body-color !important;
+ }
+ }
+ .apexcharts-xcrosshairs,
+ .apexcharts-ycrosshairs,
+ .apexcharts-gridline {
+ stroke: $theme-dark-border-color;
+ }
+ }
+}
diff --git a/src/@core/scss/base/plugins/extensions/ext-component-context-menu.scss b/src/@core/scss/base/plugins/extensions/ext-component-context-menu.scss
new file mode 100644
index 00000000..97dcc2ce
--- /dev/null
+++ b/src/@core/scss/base/plugins/extensions/ext-component-context-menu.scss
@@ -0,0 +1,101 @@
+@import '../../bootstrap-extended/include'; // Bootstrap includes
+@import '../../components/include'; // Components includes
+
+/********* CONTEXT MENU *********/
+
+.context-menu-list {
+ margin: 0;
+ padding: $dropdown-padding-y 0;
+ border-radius: $dropdown-border-radius;
+ border: $dropdown-border-width solid $dropdown-border-color;
+ box-shadow: $dropdown-box-shadow;
+ min-width: $dropdown-min-width;
+
+ .context-menu-item {
+ padding: $dropdown-item-padding-y $dropdown-item-padding-x;
+ color: $dropdown-color;
+
+ &.context-menu-submenu:after {
+ border-color: transparent transparent transparent $dropdown-color;
+ }
+
+ &.context-menu-hover,
+ &:hover,
+ &:focus {
+ background-color: $dropdown-link-hover-bg !important;
+ color: $primary;
+
+ &.context-menu-submenu:after {
+ border-color: transparent transparent transparent $primary !important;
+ }
+ }
+
+ &:focus {
+ outline: 0;
+ }
+ }
+}
+
+// Dark Layout
+.dark-layout {
+ .context-menu-list {
+ background-color: $theme-dark-body-bg;
+ border-color: $theme-dark-border-color;
+
+ .context-menu-item {
+ background-color: $theme-dark-body-bg;
+
+ span {
+ color: $theme-dark-body-color;
+ }
+
+ &.context-menu-hover {
+ > span {
+ color: $primary;
+ }
+ }
+
+ &.context-menu-submenu:after {
+ border-color: transparent transparent transparent $theme-dark-body-color;
+ }
+ }
+ }
+}
+
+// RTL
+[data-textdirection='rtl'] {
+ .context-menu-list {
+ z-index: 1031 !important;
+
+ .context-menu-item {
+ &.context-menu-submenu:after {
+ transform: rotate(180deg);
+ top: 1.2rem;
+ right: 1rem;
+ left: auto;
+ border-color: transparent $dropdown-color transparent transparent;
+ }
+
+ &.context-menu-hover {
+ &.context-menu-submenu:after {
+ border-color: transparent $primary transparent transparent !important;
+ }
+ }
+
+ > .context-menu-list {
+ left: 100%;
+ margin-left: 0;
+ }
+ }
+ }
+
+ .dark-layout {
+ .context-menu-list {
+ .context-menu-item {
+ &.context-menu-submenu:after {
+ border-color: transparent $theme-dark-body-color transparent transparent;
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/plugins/extensions/ext-component-drag-drop.scss b/src/@core/scss/base/plugins/extensions/ext-component-drag-drop.scss
new file mode 100644
index 00000000..53176d6f
--- /dev/null
+++ b/src/@core/scss/base/plugins/extensions/ext-component-drag-drop.scss
@@ -0,0 +1,51 @@
+@import '../../bootstrap-extended/include'; // Bootstrap includes
+@import '../../components/include'; // Components includes
+
+// draggable cursor - grab
+.draggable {
+ cursor: grab;
+ .gu-unselectable & {
+ cursor: grabbing;
+ }
+}
+
+// For Multi List
+#multiple-list-group-a,
+#multiple-list-group-b {
+ min-height: 5.714rem;
+}
+
+// For Handle
+#dd-with-handle {
+ .list-group {
+ min-height: 5.714rem;
+ .handle {
+ padding: 0 5px;
+ margin-right: 5px;
+ background-color: rgba($black, 0.1);
+ cursor: move;
+ font-size: 1.2rem;
+ }
+ }
+}
+.gu-mirror {
+ .handle {
+ padding: 0 5px;
+ margin-right: 5px;
+ background-color: rgba($black, 0.1);
+ cursor: move;
+ font-size: 1.2rem;
+ }
+}
+
+// Dak Layout
+.dark-layout {
+ // Drag & drop moving element
+ .gu-mirror {
+ &:not(.badge):not([class*='col-']) {
+ background-color: $theme-dark-card-bg;
+ border-color: $theme-dark-border-color;
+ box-shadow: $theme-dark-box-shadow;
+ }
+ }
+}
diff --git a/src/@core/scss/base/plugins/extensions/ext-component-media-player.scss b/src/@core/scss/base/plugins/extensions/ext-component-media-player.scss
new file mode 100644
index 00000000..3d29c1e3
--- /dev/null
+++ b/src/@core/scss/base/plugins/extensions/ext-component-media-player.scss
@@ -0,0 +1,21 @@
+// ================================================================================================
+// File Name: ext-component-media-player.scss
+// Description: Media Player SCSS.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+// to remove outline on focus
+.audio-player {
+ &:focus {
+ outline: 0;
+ }
+}
+.plyr__controls {
+ justify-content: flex-start;
+}
+.plyr__progress {
+ flex-grow: 1;
+}
diff --git a/src/@core/scss/base/plugins/extensions/ext-component-ratings.scss b/src/@core/scss/base/plugins/extensions/ext-component-ratings.scss
new file mode 100644
index 00000000..11afdd8e
--- /dev/null
+++ b/src/@core/scss/base/plugins/extensions/ext-component-ratings.scss
@@ -0,0 +1,57 @@
+@import '../../bootstrap-extended/include'; // Bootstrap includes
+@import '../../components/include'; // Components includes
+
+.jq-ry-container:not(.multi-color-ratings) {
+ .jq-ry-normal-group {
+ i,
+ svg {
+ fill: $gray-100;
+ }
+ }
+ .jq-ry-rated-group {
+ i,
+ svg {
+ fill: $warning;
+ }
+ }
+}
+
+// Dark Layout
+.dark-layout {
+ .jq-ry-container:not(.multi-color-ratings) {
+ .jq-ry-normal-group {
+ i,
+ svg {
+ fill: $theme-dark-text-muted-color;
+ }
+ }
+ }
+}
+
+// RTL
+[data-textdirection='rtl'] {
+ .jq-ry-container:not(.multi-color-ratings) {
+ .jq-ry-normal-group {
+ i,
+ svg {
+ fill: $warning;
+ }
+ }
+ .jq-ry-rated-group {
+ i,
+ svg {
+ fill: $gray-100;
+ }
+ }
+ }
+ .dark-layout {
+ .jq-ry-container:not(.multi-color-ratings) {
+ .jq-ry-rated-group {
+ i,
+ svg {
+ fill: $theme-dark-text-muted-color;
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/plugins/extensions/ext-component-sliders.scss b/src/@core/scss/base/plugins/extensions/ext-component-sliders.scss
new file mode 100644
index 00000000..4ef527cf
--- /dev/null
+++ b/src/@core/scss/base/plugins/extensions/ext-component-sliders.scss
@@ -0,0 +1,145 @@
+@import '../../bootstrap-extended/include'; // Bootstrap includes
+@import '../../components/include'; // Components includes
+
+$slider_width: 6px;
+$handle-size: 1rem;
+
+.noUi-target {
+ background-color: rgba($primary, 0.12);
+ border-width: 0;
+ box-shadow: none;
+ border-radius: 1rem;
+ &.noUi-connect {
+ box-shadow: none;
+ }
+}
+
+// horizontal slider and it's sizes
+.noUi-horizontal {
+ height: $slider_width;
+ .noUi-handle {
+ width: $handle-size;
+ height: $handle-size;
+ cursor: pointer;
+ right: -($handle-size - ($handle-size/7));
+ top: -4px;
+ }
+ .noUi-tooltip {
+ bottom: 135% !important;
+ }
+}
+// pips, marker and value
+.noUi-pips {
+ color: $text-muted;
+}
+.noUi-marker {
+ background: $border-color;
+}
+.noUi-value {
+ font-size: 0.857rem;
+}
+.noUi-marker-horizontal.noUi-marker,
+.noUi-marker-horizontal.noUi-marker-large {
+ height: 8px;
+}
+
+// slider handle styles
+.noUi-handle {
+ box-shadow: none;
+ border: none;
+
+ &:after,
+ &:before {
+ display: none;
+ }
+ border-radius: 50%;
+ background: $white;
+ border: 2px solid $primary;
+}
+
+// default selected slide area style
+.noUi-connect {
+ background: $primary;
+ box-shadow: none;
+}
+
+// Tooltip style
+.noUi-tooltip {
+ transform: translate(-10%, -50%);
+ font-size: 0.857rem;
+ border: none;
+ color: $body-color;
+ background-color: $body-bg;
+ padding: 0.1718rem 0.35rem;
+ font-weight: $font-weight-bold;
+}
+
+// noUi Vertical customization
+.noUi-vertical {
+ display: inline-block;
+ width: $slider_width;
+
+ .noUi-origin {
+ right: auto;
+ }
+
+ .noUi-handle {
+ width: 1rem;
+ height: 1rem;
+ top: -0.375rem;
+ left: -0.3rem;
+ }
+ .noUi-tooltip {
+ right: 135% !important;
+ }
+}
+
+// for example value of noUI Hover
+.hover_val {
+ font: 400 12px Arial;
+ color: $body-color;
+ display: block;
+ margin: 15px 0;
+}
+
+// to remove outline on focus
+.noUi-handle:focus {
+ outline: 0;
+}
+
+// IE SPECIFIC FOR SLIDER WITH INPUT
+_:-ms-lang(x),
+.slider-select {
+ flex: 0 0 10%;
+ max-width: 10%;
+}
+
+// Dark Layout
+// -------------
+.dark-layout {
+ .noUi-handle {
+ background-color: $theme-dark-card-bg;
+ }
+ .noUi-tooltip {
+ background-color: $theme-dark-body-bg;
+ color: $theme-dark-body-color;
+ }
+ .noUi-pips,
+ .noUi-value {
+ color: $theme-dark-body-color;
+ }
+ .noUi-marker {
+ background: $theme-dark-border-color;
+ }
+}
+
+// RTL
+// -------------
+[data-textdirection='rtl'] {
+ .noUi-txt-dir-rtl.noUi-horizontal .noUi-origin {
+ right: auto;
+ }
+ .noUi-txt-dir-rtl.noUi-horizontal .noUi-handle {
+ left: -3px;
+ }
+}
diff --git a/src/@core/scss/base/plugins/extensions/ext-component-sweet-alerts.scss b/src/@core/scss/base/plugins/extensions/ext-component-sweet-alerts.scss
new file mode 100644
index 00000000..8d082835
--- /dev/null
+++ b/src/@core/scss/base/plugins/extensions/ext-component-sweet-alerts.scss
@@ -0,0 +1,124 @@
+@import '../../bootstrap-extended/include'; // Bootstrap includes
+@import '../../components/include'; // Components includes
+
+.swal2-container {
+ .swal2-popup {
+ border-radius: $card-border-radius;
+ padding: 2rem;
+
+ // close button
+ .swal2-close:focus {
+ outline: none;
+ box-shadow: none;
+ }
+
+ // content
+ .swal2-content {
+ color: $body-color;
+ }
+
+ // header styling
+ .swal2-title {
+ font-size: $h3-font-size;
+ font-weight: $headings-font-family;
+ color: $headings-color;
+ }
+
+ // remove box-shadow on focus of buttons
+ button.swal2-confirm:focus {
+ box-shadow: none;
+ }
+
+ // input
+ input.swal2-input {
+ height: $input-height;
+ font-size: $font-size-base;
+ padding: $input-padding-y $input-padding-x;
+ color: $body-color;
+ border-color: $custom-control-border-color;
+ border-radius: $border-radius;
+ line-height: $line-height-base;
+ &:focus {
+ border-color: $primary !important;
+ box-shadow: $input-focus-box-shadow;
+ }
+ }
+
+ // steps
+ .swal2-progress-steps {
+ .swal2-progress-step {
+ background-color: $primary;
+ &.swal2-active-progress-step {
+ ~ .swal2-progress-step-line,
+ ~ .swal2-progress-step {
+ background-color: lighten(theme-color('primary'), 15%);
+ }
+ }
+ }
+ .swal2-progress-step-line {
+ background-color: $primary;
+ }
+ }
+
+ // pre code
+ pre {
+ min-height: 1.35rem;
+ margin-top: 0.5rem;
+ }
+
+ // footer
+ .swal2-footer {
+ border-color: $border-color;
+ color: $body-color;
+ }
+ }
+}
+
+// Dark Layout
+.dark-layout {
+ .swal2-container {
+ .swal2-modal {
+ background-color: $theme-dark-card-bg;
+
+ .swal2-header {
+ .swal2-title {
+ color: $theme-dark-headings-color;
+ }
+
+ .swal2-icon-text {
+ color: inherit;
+ }
+
+ .swal2-success-circular-line-left,
+ .swal2-success-circular-line-right,
+ .swal2-success-fix,
+ .swal2-animate-success-icon {
+ background-color: $theme-dark-card-bg !important;
+ }
+ }
+
+ input.swal2-input {
+ border-color: $theme-dark-border-color;
+ color: $theme-dark-body-color;
+ }
+
+ .swal2-content {
+ color: $theme-dark-body-color;
+ }
+
+ pre,
+ code {
+ color: $theme-dark-body-color;
+ }
+ .swal2-input {
+ background-color: $theme-dark-card-bg;
+ }
+
+ // footer
+ .swal2-footer {
+ border-color: $theme-dark-border-color;
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/plugins/extensions/ext-component-swiper.scss b/src/@core/scss/base/plugins/extensions/ext-component-swiper.scss
new file mode 100644
index 00000000..61e43241
--- /dev/null
+++ b/src/@core/scss/base/plugins/extensions/ext-component-swiper.scss
@@ -0,0 +1,367 @@
+/*=========================================================================================
+ File Name: ext-component-swiper.scss
+ Description: swiper plugin scss.
+ ----------------------------------------------------------------------------------------
+ Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+ Author: PIXINVENT
+ Author URL: http://www.themeforest.net/user/pixinvent
+==========================================================================================*/
+
+@import '../../bootstrap-extended/include'; // Bootstrap includes
+@import '../../components/include'; // Components includes
+
+/* Swiper css */
+/* ---------- */
+/* swiper slide shadow */
+.swiper-container {
+ .swiper-shadow {
+ box-shadow: 2px 8px 10px 0 rgba(25, 42, 70, 0.13) !important;
+ }
+}
+
+// swiper pagination
+.swiper-pagination {
+ // bullet pagination
+ .swiper-pagination-bullet {
+ &:focus {
+ outline: none;
+ }
+ &.swiper-pagination-bullet-active {
+ background-color: $primary;
+ }
+ }
+
+ // progress bar pagination
+ &.swiper-pagination-progressbar {
+ .swiper-pagination-progressbar-fill {
+ background-color: $primary;
+ }
+ }
+}
+
+// centered slides option-1
+.swiper-centered-slides {
+ &.swiper-container {
+ .swiper-slide {
+ text-align: center;
+ font-weight: $headings-font-weight;
+ background-color: $white;
+ height: auto;
+ width: auto !important;
+ padding: 2rem 5.5rem;
+ cursor: pointer;
+
+ &.swiper-slide-active {
+ border: 2px solid $primary;
+
+ i,
+ svg {
+ color: $primary;
+ }
+ }
+ }
+ }
+ .swiper-button-next {
+ &:after {
+ background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $white), '#', '%23'));
+ }
+ }
+ .swiper-button-prev {
+ &:after {
+ background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $white), '#', '%23'));
+ }
+ }
+
+ .swiper-button-next,
+ .swiper-button-prev {
+ height: 40px !important;
+ width: 40px !important;
+
+ &:after {
+ border-radius: 50%;
+ background-color: $primary;
+ box-shadow: 0 2px 4px 0 rgba($black, 0.5) !important;
+ background-size: 24px !important;
+ height: 40px !important;
+ width: 40px !important;
+ }
+ }
+
+ // For RTL
+ &.swiper-container-rtl {
+ .swiper-button-next {
+ &:after {
+ background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $white), '#', '%23'));
+ }
+ }
+ .swiper-button-prev {
+ &:after {
+ background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $white), '#', '%23'));
+ }
+ }
+ }
+}
+
+// centered slides option-2
+.swiper-centered-slides-2 {
+ &.swiper-container {
+ .swiper-slide {
+ font-weight: $headings-font-weight;
+ background-color: $swiper-bg;
+ height: auto;
+ width: auto !important;
+ cursor: pointer;
+
+ &.swiper-slide-active {
+ color: $white;
+ background-color: $primary !important;
+ box-shadow: 0 3px 6px 0 rgba($primary, 0.5) !important;
+ }
+ }
+ }
+}
+
+/* cube effect */
+.swiper-cube-effect {
+ &.swiper-container {
+ width: 300px;
+ left: 50%;
+ margin-left: -150px;
+ margin-top: -12px;
+ }
+}
+
+/* swiper coverflow slide width */
+.swiper-coverflow {
+ &.swiper-container {
+ .swiper-slide {
+ width: 300px;
+ }
+ }
+}
+
+.gallery-thumbs {
+ padding: 10px 0;
+ background: $black;
+
+ .swiper-slide {
+ opacity: 0.4;
+ }
+
+ .swiper-slide-thumb-active {
+ opacity: 1;
+ }
+}
+
+// parallax
+.swiper-parallax {
+ .swiper-slide {
+ padding: 2.67rem 4rem;
+
+ .title {
+ font-size: $h5-font-size;
+ padding: 0.5rem 0;
+ }
+
+ .text {
+ font-size: $font-size-sm;
+ }
+ }
+
+ .parallax-bg {
+ position: absolute;
+ width: 130%;
+ }
+}
+
+.swiper-virtual {
+ &.swiper-container {
+ height: 300px;
+
+ .swiper-slide {
+ /* virtual slides */
+ font-size: $h3-font-size;
+ background-color: $kbd-bg;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+ }
+}
+
+//navigation button custom icons
+.swiper-button-prev,
+.swiper-button-next,
+.swiper-container-rtl .swiper-button-prev,
+.swiper-container-rtl .swiper-button-next {
+ background-image: none;
+ color: $white;
+ width: 38px;
+ font-size: $h1-font-size;
+
+ &:focus {
+ outline: none;
+ }
+}
+
+.swiper-button-prev {
+ &:after {
+ background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $primary), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 44px;
+ color: $body-color;
+ width: 44px;
+ height: 44px;
+ content: '';
+ padding-right: 1px;
+ }
+}
+
+.swiper-button-next {
+ &:after {
+ background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $primary), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 44px;
+ color: $body-color;
+ width: 44px;
+ height: 44px;
+ content: '';
+ padding-right: 2px;
+ }
+}
+
+.swiper-container-rtl {
+ .swiper-button-prev {
+ &:after {
+ background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $primary), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 44px;
+ color: $body-color;
+ width: 44px;
+ height: 44px;
+ content: '';
+ }
+ }
+
+ .swiper-button-next {
+ &:after {
+ background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $primary), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 44px;
+ color: $body-color;
+ width: 44px;
+ height: 44px;
+ content: '';
+ }
+ }
+}
+
+// Media query for medium screen
+@media only screen and (max-width: 768px) {
+ //navigation button custom boxicons
+ .swiper-button-prev {
+ font-size: $h4-font-size;
+ top: 55%;
+ &:after {
+ height: 28px;
+ width: 28px;
+ background-size: 24px;
+ }
+ }
+
+ .swiper-button-next {
+ font-size: $h4-font-size;
+ top: 55%;
+ &:after {
+ background-size: 24px;
+ }
+ }
+ .swiper-centered-slides {
+ .swiper-button-next,
+ .swiper-button-prev {
+ &:after {
+ height: 28px;
+ width: 28px;
+ background-size: 18px;
+ }
+ }
+ }
+ // parallax
+ .swiper-parallax {
+ .swiper-slide {
+ padding: 1rem 1.2rem;
+ }
+
+ img {
+ height: 100% !important;
+ }
+ }
+}
+
+// Media query for small screen
+@media only screen and (max-width: 576px) {
+ // centered slides option-1
+ .swiper-centered-slides {
+ &.swiper-container {
+ .swiper-slide {
+ padding: 1.6rem 2.5rem;
+
+ i,
+ svg {
+ height: $h5-font-size !important;
+ width: $h5-font-size !important;
+ font-size: $h5-font-size !important;
+ }
+ }
+ }
+ }
+
+ // cube effect
+ .swiper-cube-effect {
+ &.swiper-container {
+ width: 150px;
+ left: 70%;
+ }
+ }
+
+ // parallax
+ .swiper-parallax {
+ .swiper-slide {
+ padding: 1rem 1.3rem;
+ }
+ }
+
+ // virtual slides
+ .swiper-virtual {
+ &.swiper-container {
+ .swiper-slide {
+ font-size: $font-size-base;
+ }
+ }
+ }
+}
+
+// Dark Layout
+.dark-layout {
+ .swiper-container {
+ &:not(.swiper-parallax) {
+ .swiper-slide {
+ background-color: $theme-dark-body-bg;
+ }
+ }
+ &.swiper-centered-slides {
+ .swiper-slide {
+ background-color: $theme-dark-card-bg;
+ }
+ }
+ &.swiper-parallax {
+ .swiper-slide * {
+ color: $body-color;
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/plugins/extensions/ext-component-toastr.scss b/src/@core/scss/base/plugins/extensions/ext-component-toastr.scss
new file mode 100644
index 00000000..75b449aa
--- /dev/null
+++ b/src/@core/scss/base/plugins/extensions/ext-component-toastr.scss
@@ -0,0 +1,254 @@
+@import '../../bootstrap-extended/include'; // Bootstrap includes
+@import '../../components/include'; // Components includes
+
+// Toast container opacity
+#toast-container > div {
+ opacity: 1;
+ -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
+ filter: alpha(opacity=100);
+ max-width: none;
+ border-radius: $toast-border-radius;
+}
+
+// Toast container hover shadow
+#toast-container > div,
+#toast-container > div:hover {
+ box-shadow: $toast-box-shadow;
+}
+
+#toast-container > .toast {
+ background-image: none !important;
+}
+// Toast colors
+.toast {
+ background-color: $white;
+ color: $body-color !important;
+ .toast-close-button {
+ color: $body-color;
+ font-size: 1.75rem;
+ font-weight: $font-weight-normal;
+ top: 0;
+ right: 0;
+ text-shadow: none;
+
+ &:focus {
+ outline: none;
+ }
+ }
+ .toast-title {
+ font-size: $font-size-base;
+ font-weight: $font-weight-bolder;
+ line-height: 1.75;
+ }
+ .toast-progress {
+ opacity: 1;
+ }
+ &:before {
+ content: '';
+ height: 24px;
+ width: 24px;
+ border-radius: 50%;
+ color: $white;
+ position: absolute;
+ left: 1rem;
+ }
+ &:after {
+ content: '';
+ background-size: $font-size-base;
+ background-repeat: no-repeat;
+ position: absolute;
+ left: 1.38rem;
+ top: 1.44rem;
+ width: $font-size-base;
+ height: $font-size-base;
+ }
+}
+
+// we are using only few colors in toast so not adding in palette.scss
+// plugin class name 'error' is also differ then ours so not useful to add in palette
+.toast-success {
+ .toast-title {
+ color: $success;
+ }
+ .toast-progress {
+ background-color: $success;
+ }
+ &:before {
+ background-color: $success;
+ }
+ &:after {
+ background-image: url(str-replace(str-replace($check, 'currentColor', $white), '#', '%23'));
+ }
+}
+.toast-error {
+ .toast-title {
+ color: $danger;
+ }
+ .toast-progress {
+ background-color: $danger;
+ }
+ &:before {
+ background-color: $danger;
+ }
+ &:after {
+ background-image: url(str-replace(str-replace($remove, 'currentColor', $white), '#', '%23'));
+ }
+}
+.toast-info {
+ .toast-title {
+ color: $info;
+ }
+ .toast-progress {
+ background-color: $info;
+ }
+ &:before {
+ background-color: $info;
+ }
+ &:after {
+ background-image: url(str-replace(str-replace($infoIcon, 'currentColor', $white), '#', '%23'));
+ }
+}
+.toast-warning {
+ .toast-title {
+ color: $warning;
+ }
+ .toast-progress {
+ background-color: $warning;
+ }
+ &:before {
+ background-color: $warning;
+ }
+ &:after {
+ background-image: url(str-replace(str-replace($warningIcon, 'currentColor', $white), '#', '%23'));
+ }
+}
+
+// position alignments
+.toast-top-left {
+ top: 1.3rem;
+ left: $content-padding;
+}
+.toast-top-right {
+ top: 1.3rem;
+ right: $content-padding;
+}
+.toast-top-center,
+.toast-top-full-width {
+ top: 1.3rem;
+}
+.toast-bottom-left {
+ bottom: 1.3rem;
+ left: $content-padding;
+}
+.toast-bottom-right {
+ bottom: 1.3rem;
+ right: $content-padding;
+}
+.toast-bottom-center,
+.toast-bottom-full-width {
+ bottom: 1.3rem;
+}
+
+// Media query
+
+@media (max-width: 480px) and (min-width: 241px) {
+ #toast-container > .toast {
+ &:after {
+ top: 0.95rem;
+ }
+ .toast-close-button {
+ top: 0;
+ right: -1px;
+ }
+ }
+ #toast-container > div {
+ width: 20rem;
+ }
+ .toast-top-left {
+ left: 0;
+ }
+ #toast-container {
+ &.toast-top-center,
+ &.toast-bottom-center {
+ right: 1rem;
+ > div {
+ width: 20rem !important;
+ }
+ }
+ }
+ .toast-top-full-width,
+ .toast-bottom-full-width {
+ right: 0;
+ left: 0;
+ width: 93%;
+ > div {
+ width: 100%;
+ }
+ }
+ .toast-bottom-left {
+ left: 0.25rem;
+ bottom: 0.75rem;
+ }
+ .toast-bottom-right {
+ right: 2.25rem;
+ bottom: 0.75rem;
+ }
+ .toast-bottom-center,
+ .toast-bottom-full-width {
+ bottom: 0.75rem;
+ }
+ [data-textdirection='rtl'] {
+ #toast-container > div {
+ padding-right: 8px;
+ }
+ }
+}
+
+// Toastr Dark Layout
+.dark-layout {
+ #toast-container > div,
+ #toast-container > div:hover {
+ box-shadow: $theme-dark-box-shadow;
+ }
+ #toast-container {
+ .toast {
+ background-color: $theme-dark-card-bg;
+ color: $theme-dark-body-color !important;
+ .toast-close-button {
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+}
+
+[data-textdirection='rtl'] {
+ .toast .toast-close-button {
+ @include media-breakpoint-down(xs) {
+ top: 0.55rem !important;
+ right: 0.5rem !important;
+ }
+ }
+ .toast-top-left {
+ left: 1rem;
+ right: auto;
+ }
+ .toast-top-right {
+ right: 3rem;
+ left: auto;
+ }
+ .toast-bottom-left {
+ left: 1em;
+ right: auto;
+ }
+ .toast-bottom-right {
+ right: 3rem;
+ left: auto;
+ }
+ .toast-top-full-width,
+ .toast-bottom-full-width {
+ toast-container > div {
+ left: 0;
+ right: 0;
+ }
+ }
+}
diff --git a/src/@core/scss/base/plugins/extensions/ext-component-tour.scss b/src/@core/scss/base/plugins/extensions/ext-component-tour.scss
new file mode 100644
index 00000000..f9d797b9
--- /dev/null
+++ b/src/@core/scss/base/plugins/extensions/ext-component-tour.scss
@@ -0,0 +1,80 @@
+@import '../../bootstrap-extended/include'; // Bootstrap includes
+@import '../../components/include'; // Components includes
+
+.shepherd-element {
+ border-radius: $border-radius;
+ width: 350px;
+ &[data-popper-placement='bottom'] {
+ margin-top: 1rem !important;
+ .shepherd-arrow:before {
+ background-color: $primary !important;
+ }
+ }
+ &[data-popper-placement='top'] {
+ margin-bottom: 1rem !important;
+ }
+ &[data-popper-placement='left'] {
+ margin-right: 1rem !important;
+ }
+ &[data-popper-placement='right'] {
+ margin-left: 1rem !important;
+ }
+
+ .shepherd-content {
+ border-radius: $border-radius;
+ // header
+ .shepherd-header {
+ background-color: $primary;
+ padding: 0.38rem 1.2rem;
+ border-radius: $border-radius $border-radius 0 0;
+ .shepherd-title {
+ color: $white;
+ font-weight: 500;
+ font-size: 1.1rem;
+ }
+ .shepherd-cancel-icon {
+ color: $white;
+ font-size: 1.7rem;
+
+ &:focus {
+ outline: none;
+ }
+ }
+ }
+
+ // body or text
+ .shepherd-text {
+ color: $body-color;
+ padding: 0.8rem 1.2rem;
+ }
+
+ // footer
+ .shepherd-footer {
+ padding: 0 1.2rem 1rem;
+ justify-content: space-between;
+ .shepherd-button {
+ padding: 0.5rem 1.3rem;
+ }
+ }
+ }
+ @include media-breakpoint-down(xs) {
+ width: 300px;
+ }
+}
+
+// Dark layout
+.dark-layout {
+ .shepherd-element {
+ background-color: $theme-dark-card-bg;
+ &:not([data-popper-placement='bottom']) {
+ .shepherd-arrow:before {
+ background-color: $theme-dark-card-bg;
+ }
+ }
+ .shepherd-content {
+ .shepherd-text {
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/plugins/extensions/ext-component-tree.scss b/src/@core/scss/base/plugins/extensions/ext-component-tree.scss
new file mode 100644
index 00000000..53289e00
--- /dev/null
+++ b/src/@core/scss/base/plugins/extensions/ext-component-tree.scss
@@ -0,0 +1,154 @@
+@import '../../bootstrap-extended/include'; // Bootstrap includes
+@import '../../components/include'; // Components includes
+
+.jstree > .jstree-container-ul .jstree-loading > .jstree-ocl,
+.jstree > .jstree-container-ul .jstree-loading > .jstree-ocl,
+.jstree > .jstree-container-ul .jstree-loading > .jstree-ocl {
+ background-image: url('data:image/gif;base64,R0lGODlhEAAQAPMAAP////Dw8IqKiuDg4EZGRnp6egAAAFhYWCQkJKysrL6+vhQUFJycnAQEBDY2NmhoaCH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAAEcRBIEOg7dWow0AiGMVCbNBhI0IjBqA2jYAgrnEkBMYPNcXymzEDXULhwQFwg4TjiNAKCj1GiBK5RAoFaul6tisItqAkIFgRnyzgpIBhmAWyQoLA5o4FDkWAM5E8TAQcFAAxUA3AlAwUjhxIKYyUKClURACH5BAkKAAAALAAAAAAQABAAAARwEEgQaHm1zjnICIgxDEuySYPhgM0QKtsICAaDLIxBbMGBBwvHxWDIaAYHlQyg+HwmgUDCc9JIEo9CAXaiRAOMw+PBrX69A4ZVEuVNDwNe4CkREBLgxEg2P8YHDwMKeE1sPAUMTCaCa2xqiiiNJ0snEQAh+QQJCgAAACwAAAAAEAAQAAAEchBIECgTtc453ggEEgROsklDc4DiYSjbBzBGEiYGAQxwUJQkgkDgMAwEBuPusTgMBihaEkYJKB4aicIgmCiGDOhpRE4UztQxuTpIZCWjTSDxwMgDMgmjoLD213gaMkdPH3lvAQwwTxR5cm47YnEnMWInEQAh+QQJCgAAACwAAAAAEAAQAAAEcBBIEChjtc45SggH8R3KJg2OFwaPUU4fwCxKqBgPNVDCMwSEwoVgCDAMi0on9TspEAaX5KPwbAa4X0DBSCR2psdi0SBdGOBNK+qgBAYKDWdAzwwEmM2nKeH+6h92GjFbgW+Dego7hHx6TTFuJiaQJhEAIfkECQoAAAAsAAAAABAAEAAABGYQSBBoKbXOOU4IhvEZyiYNhhcGC7l9QEGGjLFQA3UsCuhcK5kI0EkNNANFyMCQfBSeDcpxDAwY2JzJseRdCtpNa0mxHjdK6tmK1UiUIe31OKjCyGXc53OGvup5Vm4TgnmGJoSDExEAIfkECQoAAAAsAAAAABAAEAAABHgQSBCoUrXOGVIIQvEVwyYFhScIIFJy1fAM67AIVBkoyQAyl4JjhyBkFAKMJjA4GByvz8CzCRAYH+nAZwIwDgeCYLvVbBgIxOJBYX42Awej3KZLpgYDIerLfhYGTQYLGRl9HQYHADxVXG8IBgpdWW0AAwYMXVVLGxEAIfkECQoAAAAsAAAAABAAEAAABHMQSBDoGLXOGVQIDPMxwyaBWCIyRMlVgxCoA5FYFjYrF/N0hJ+F9zkNHouD6xPAbAKPBHOq2SQej4NsagIkCA5HgdIsTgYHafFzqQ4UBoPQMi08EAaowZHJYBYGAgZjb086gAN4Lk9MDQYXDTddJwd8FBsRACH5BAkKAAAALAAAAAAQABAAAARxEEgQ6Bi1zhlwUEoQJMMmfRj4PSVXDSE4PAqVdeJ1JUV3CDePplNwFFqi5CYgCCWfJoCiQE08NRvF4/CzeZY0Za6DHCAMvZPHYBAICAimgXADCNAIBKMNgG0GbAMLCwEOBi0bCQYhgx0INVElAVwZGxEAIfkECQoAAAAsAAAAABAAEAAABHMQSBBouHTqe8e4SqVRX+CZjChhpvkJg2VxtJKYQmqV4sU8jNgMMwkEabQRYCBo3pKjQWGasCgQig2MsyQYDMHVgLAQVAINg2NgQDASD4IR8agwsgKDwOFIgJdCEmwIAXwBBw2BEwmJAQgOJgRZSmdTZxoRACH5BAkKAAAALAAAAAAQABAAAARzEEgQaLh06sv5qBr1dYMCSlgwXspgWav3DYwJc2iQCLalnpQW57EoPkKAQWKpcBieBCSNwVPRFq5JgLFKEp69y8PBqAQQhseZsBQcAopDoZJwCQyMA0GxSIg0AwYOAXoBBQ5ZGgoIHwQEKg+JGxQCAmYaEQAh+QQJCgAAACwAAAAAEAAQAAAEbxBIEGi4dOrLe9XU4AWiNgxhV2KBYQijGCil4hqlNdDfVRiJjezyQBgfIMBOQTs0FotCcpkQiRIE1CRQ5SgPrtxF8EhUAg5DIUA4MBmPWYFRoQEYwMJj4AiSTAsEAXoBDFlTWQEPBz5aIGcMdBkTEQAh+QQJCgAAACwAAAAAEAAQAAAEcxBIEGi4dGq1xv2YBigGAgaeNgzAYSRfigWIIQyGEV9eNdQGRkKyq1gYDYXmFBA4CASBiLJaFRBYqQhV/SgOrElA0asECoaO8ZIQKMwuQeBRWCUYKKGPxVEI6g8sIUQOD00FAQmIUwOBhxcMYVsUCTAZExEAOw==');
+}
+
+.jstree .jstree-node,
+.jstree .jstree-icon,
+.jstree .jstree-file,
+.jstree .jstree-folder,
+#jstree-dnd.jstree .jstree-ok,
+#jstree-dnd.jstree .jstree-er,
+.jstree-small .jstree-node,
+.jstree-small .jstree-icon,
+.jstree-small .jstree-file,
+.jstree-small .jstree-folder,
+#jstree-dnd.jstree-small .jstree-ok,
+#jstree-dnd.jstree-small .jstree-er,
+.jstree-large .jstree-node,
+.jstree-large .jstree-icon,
+.jstree-large .jstree-file,
+.jstree-large .jstree-folder,
+#jstree-dnd.jstree-large .jstree-ok,
+#jstree-dnd.jstree-large .jstree-er {
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAABgCAYAAABsS6soAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGAGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjAtMDgtMThUMTg6NTU6MzIrMDU6MzAiIHhtcDpNb2RpZnlEYXRlPSIyMDIwLTA4LTE4VDE5OjI4OjQwKzA1OjMwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIwLTA4LTE4VDE5OjI4OjQwKzA1OjMwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjc1N2M4OTEyLWRmYzMtNDM5YS1hYjJjLTcwMGRjNWQxMDkwMyIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjRlN2RlN2M1LTZlY2MtMDI0Ny1hN2I0LTJmOTU3NDc3MjAzNiIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjNhOWQ5OTMyLWFmNmMtNGFkMy1hNTUzLTFlYjczYjRlMWI2ZCI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6M2E5ZDk5MzItYWY2Yy00YWQzLWE1NTMtMWViNzNiNGUxYjZkIiBzdEV2dDp3aGVuPSIyMDIwLTA4LTE4VDE4OjU1OjMyKzA1OjMwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NzU3Yzg5MTItZGZjMy00MzlhLWFiMmMtNzAwZGM1ZDEwOTAzIiBzdEV2dDp3aGVuPSIyMDIwLTA4LTE4VDE5OjI4OjQwKzA1OjMwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6MDZg5AAAIR0lEQVR42u2dX4gVVRzHZ0mktWuQEeSLErgW2CIp3SJy6SkoCBZ6U0oQjArpIUVCH4rATUyjoKcEHwJ9CKLAiKg3jYoL/aOCRYNICIVKQW9CS8v2+7nnuuPZmbnjvXPmzJ7z+cCP2XV29rhn9nz2O3/PyNzcXHIzTE1NJXAd7bwR2gfw8/u3b9++oX7/RhAgACxVRIBDbY8ASWAkQCABIkAAIAEiQBIYCRBIgAgQAEiACJAERgIEEiACBA8sl1oldaf5uCwzUn9LXTQf0/6gKeup/S1ZrJZqWau6UuenTh7okgBJgLTvhruljkhtHWDbE1K7pS7Q/lACHJPFmZzV90tNiwRnSYAA1bNB6mepSalzN7HdGqmPzQD9JYD2BxnocxW030+A60V+Z2NKgC0ThbummoCv/5OPBJb+Wa80JAG67P8HpL6T2iT1fQ3b5X6fTqfzgyyXmcrjP1O3ttvtqxW2X7if5f/WMl97SmpC2j5t9s9Q7ZvD3zEj9FXW6oum8va560NkLwmw99dgwnSsbwmmd/x6qbNJ2MTW/00SoCaxMufT9FzdsroEaMnvGtL2SEUCLEp/ZXCaEH0kwN4OUR6V+tHjILR3/LC/bEshAab7X1npsf/njIhd9n+TBDgty6sltllhJORcgFnyq1iA9u/bzbJJBOhqTHpJgHaH+EoiWTu+bgH6ILb+R4BGgEZ21041yPfu5smv4kPgJgvQewL0NQjzdnyMCTD0/keACwLcYvp8wpxqGMuSn7angiQB1ifAOgdh3uCLNQGG3v8IcEGA6cG6Q+pYgfwSEmC9AlT0ZskLngafzwQ46LJKAV7fpw7b79f/LtpHgNkCTPrILwYBRpUAyww+EmB4/Y8AFx8Cl5EfCbBGAdZx+KV3xJ/v8zUx3AYTW/8jwBsvgth/hPLkRwKsSYB1nnvKeh6xR9cM0G4SNrH1P/cBpm6DsW94LpAfCbAGATblZtyYiK3/eRLEug/Qvh2mKCGRAKsXYNOeRIiN2PqfZ4E9PgtMAlwswCY+CxwTsfW/nns8LLVtgG2PS+1Jhn8bS7TtN/xRON4GA8HD+wA9tl/wLsAyOH9fIO8DBIBYIQECQLyQAAGABIgAAYAEiAABgASIAAGABIgAAYAEiAABgASIACv9K5QwN/AIvwZAAgQAIAGSAGkfgAQIAEACJAHSPgAJEACABEgCpH0AEiBAEbwP0G/7JEAESALz2L6+EfmI1NYBtj0htTsZ/o3MMbdPAkSA4BHmBPE4JwgJsJwA65ynomlzYjQhga302P+uf/4lOSvc+Pj4Q6Ojo18nDmaFy8KeLrPdbp9OKpgVjgTYX4Dpjq9jYnJmpYur/5fkvMAiwM11CTBrwnQR4EgEAvSeALXjN0p9aT6vo7ObNi+uzwSo/X8l9bmP/j8VUQKcluXVEtusEAFurEOAWfKLSIBeE2BWx9c9AJsiQd/JL+T+R4BGgPaE6Hnyi+gQ2FsCzOt4HwPQtwR9JMCY+h8BLghwi9nnE+ZUx1iW/LQ9FSQJ0I0A8wafzwEYUxKMrf8R4IIA04N1h9SxAvklJEA3AtT7ks7nrPY5AIcdhL0kN+iyqiRZZpk46P8q2nchQQSYLcCkj/xiECAJMMIkGFv/I8DFh8Bl5EcCdCRA3+egerdhFLE6Cffu99j6HwHeeBHE3u958iMBOhRg3iCso7NbZoC1ctZ3zSF6jOcCQ+x/7gNM3QZj3/BcID8SoGMBZg3CoDt7CUgwxP7nSRDrPkD7dpiihEQCdCtAexDW8SQCxNX/PAvMs8CNTYDpQdik53NjlGCo/a93HRyW2jbAtsel9iTDv40l5vZJgCUECOAK3gfI+wAbnwABAEiAAAAkQAAAEiAAAAkQAIAECABAAgQAIAECAJAAAQBIgAAAJEAAABIgAAAJEACABAgAJEAECAAkQAQIACRABBgi/SYjsollciggATZDgJ1O5xZZ3C61UuqK1OV2uz1b1U+79+hRfSPubebTfw7t3DljrdM35/5rrwuEMtNR2jBHC5AA6xCgkd9dUvuldkm9KPWR1J9VSNAIbq3Ua1L3Sm3Xwa2ik3UtI4gPpD6TOqDtyrrZgPZ1vwnJs2CWPiABuhZgSn67jAB7qIiOiAAvVSS/l0wbyufm47+k7kvmJ4C5J92uCPBSQDs7LUD9s5c30Y1OojOFAIEEWIMAC+Sn/Cb1iAhwqFmpTMJ7IyW/Hp9KvZfMz5q1zlq3VgR4LqB9TQIE8JUAJycnVXSj5tMZkdpMCfk9J/VNn8mbyybAx6R2Sz1eYpN3NQWKAEOaDhABAvhIgEZ+enHjQamnTeLSK4wt1/KzUqAeBr/VR4Iqvzf1EDGwCyEcAgP4SIAiQJXPw1JfmH/S82+vSz1Rh/ysJLhB6mCOBN8xgrwQ4FVgEiCApwS4Rha/W//8rdTmDPnpDPY/VS2/VArUq71HM9pW9Jzg3sRcHUaACBBIgFUIUA+rPsmRTh3Jr3f+cVzq/WTxBY80mk5fDlCCHAIDeEqAy03yOiT1ZMaX/Cr1ggv5pZLfM0Zs60okUZXgdi6CIEAgAQ4twJQE9SLE25YEVX7PujrsNQK8I5m/uLHVWqXn/D6UeiVDzOtFgCE9BYEAAXwkwAIJOk1+KQH2EujzycK9gL0LHheT+Wdk02LWdQcDToAcAgP4eBIkJUF9KuOk1Fcu5WdJUNt9VUqf8Lh+q0tqnabEM2bdHzwKhwCBBFipAPVJkE6no8LR0osMs1W+8KCEBItehpC5LhB4GQKA7wTI67C8weuwAJqQAAEASIAAACRAAAASIAAACRAAgAQIAEACBABY4gkQACAU/gfEuTGqiiEZXwAAAABJRU5ErkJggg==');
+}
+
+@media (max-width: 768px) {
+ #jstree-dnd.jstree-dnd-responsive > .jstree-ok,
+ #jstree-dnd.jstree-dnd-responsive > .jstree-er,
+ .jstree-responsive .jstree-icon,
+ .jstree-responsive .jstree-node,
+ .jstree-responsive .jstree-icon,
+ .jstree-responsive .jstree-node > .jstree-ocl,
+ .jstree-responsive .jstree-themeicon,
+ .jstree-responsive .jstree-checkbox,
+ .jstree-responsive .jstree-file,
+ .jstree-responsive .jstree-folder {
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAAHgCAMAAACsKhCPAAAAP1BMVEUAAAAzMzMzMzMzMzMzMzMzMzMzMzPS0tL///8zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzPt7e0zMzMzMzM8PDx7bmBmAAAAE3RSTlMADv4GXAL9HwH8CFkdIRQKXQZQ61O9/gAABrVJREFUeNrt3euS3CYQhmFiJ5ZydBL2/q81h8o6Y+uE4EN00y//RlqpeGo0ApqGTWmSklOwAhgwYMCAAQMGDBgw4KnByxILvOS8RAL/7ZWJsxevSpzdeEXi7MerEWdHXok4e/IqxAJwznXnKrwCcRZ4j1Vn56q87eKs8B6pzs5VeoeD3+tx99wobyv4/5rcOzfM2wh+rcudc+O8beCva1N+bqC3CfxtfUrPjfS2gLc1Kjs31KsF54JTg73SR/oLy7BX+dL6ArPsFTZLX2imvbqOx1kx5JV1Lb14VYMHN17R8FDm9QBOSq+DR/pCbKcTrYxpKb3Gm6ULsaWBsDZqqfQa7lpeiG0Fs8TgpPQaHR7eCAcYEgtnHpRemyEeddjOfhDvWKy4m8Uw7ZFYczeLgfh9sepuFqda9sS6uy32wSlL77hYf6TlZbH90uotDpDyEC+pJV7aUrzEtHiph/GSS+OlDys7RoABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMuKksSyzwIl5PZR28SNdhZG3mdQewNrEo9xRrU7mXDl6xOCu9mmRI82BR+me+VQaCNQm+S75ZllFgUQq3G7AqSd8z2HYPxOwKMrs9LWdiu2vmDPelFWI/zZJI7AssEDsDt4u9gZvF7sCtYn/gRrFDcJvYI7hJ7BLcIgbMI81Li2aJjgddSwYPDA8JABDiEQXxHIE1QUvHc0t1lQk31cJkGtOlVl9a00+Ii1IevHY8lhQBrEhb8jl4WFIUcHvqoccAQKjk0njpw24KYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDPjkNtJ/Ia6/nxas3iCow5ZDSnBB7bKGKyHnJ7x36tltXykRuMxbXs+OO2lJwKXe0np23TtMAC73ltWz825pzeA73pJ6dt8fTgUuIgjuNxr8tFciFoBV3pLXm23w3V+ddXDpL+6mN7f+zSjw7beqQ3B1e+QU/PqhotV0B379VNNL8AZ+/VjVK3IGfiXW9QLdgmt7vV4f6epevtOXVv2oxmez1BDUctnxOBoUz9q1bAriuexLHwU95h08NAQtnY6W9n/XMw8Pq4O0bsfDe+/tCAEAwO7B8qCb+6jlrGBZ4Nx8IF4+NWJ9qkU++WV+Mk0+vWl9ulQ/gW19QlyfomA95UGfhGI9qUWfZmQ9bSnpE8mMJ6Yd1tHS/eRgPwUwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDDguuF8SikVw1zQje+DOiWTmwL1TBa2BuyeDGgP3T/e1BX4godsU+ImUfZPg2vPewI8suzEIbvwTn+CjX+5U4BfY4bvK3jMNGDBgwIABAwYMGHAUsDrGwDcMGDBgwIDnAIcL4oUN08YJxIebaok3mRZuujTehHi8lId4SS3x0pZSuMS0dNa1nBbspwAGDBgwYMCAAQMGDBgwYMCAAQMG7K2CgAEDBgwYMGDAgAEDBvzI/bqnOgAGDHgEOIcD51+CgT/k72KBP2WR2BFYI/YElohdgfNP0cD5YzRw/hwN3Pw79tMOv5dfg/S0rPwb+6cGDz+8l4+/MVoC7Bz88/ev5fc/pwdrv3F/4A/RwD8CBgw4NNjOflrPgFO0bxgwYMCAAQMGDBgwYMCAAQMGDNgg+FM08GTbPLorgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgD2C18cu8gxOgGOBV8B2wKuNmwIGDBgw4PDg/KasWzYPzvkf8Vpx2eVhk+B/8w/fbtftIG3x68MWwf9lXL6tVZddHDYIrkwyPbjq28P2wJVptQdXbQ6bA9cu1N+/anvYGrgydfrgqp3DxsCVyeIHV+0dtgWuTY6/3oTNJrh+McDelft3swRuWfxQvFWJIXDbYo/SpSN2wNsarkkpttbx2KnhmoRia13LvRquSScePHjY/Dw1LUjJ0q8h4M0LSdaCXC91GwHeVELWgqTrpX0DwJtq6FqQffHgmNamIsIWpKA1fxy8qYqyBTH4DW+qIm1B7P2GN1URtyDW3tL3FkvP0A7fWhw+RU/rzmL4OfrSNxb/TzJaKt/sYNW+Hob3tC7H+6v2dTgu4lG6mcXacktTMa3CzTvWJq+pqGXZZiUN4OPDgyIeRfG6+kf65PCoEE9JfLL6pXV2eFhMqyAeW9ssnR4eF8S7jj9XdjzODw+MWl7G26fLALiaX5gvx+NiPmXCLJ7z+aMZ87T+SFJwQSH1sB94rSuBvuEuX7l/cPcnhm/YOHgF7Acc7i09pgAGDBgwYMAOwX8BjFtKB7+K+X8AAAAASUVORK5CYII=');
+ }
+}
+
+.jstree .jstree-last,
+.jstree > .jstree-no-dots .jstree-node,
+.jstree > .jstree-no-dots .jstree-leaf > .jstree-ocl,
+.jstree .jstree-disabled,
+.jstree .jstree-themeicon-custom:not(.jstree-file):not(.jstree-folder) {
+ background: transparent !important;
+}
+
+// Light Layout
+.jstree {
+ .jstree-container-ul {
+ .jstree-anchor {
+ color: $body-color;
+ &.jstree-clicked,
+ &.jstree-hovered {
+ background: transparent;
+ box-shadow: none;
+ }
+ }
+ .jstree-node {
+ .jstree-wholerow-clicked {
+ background: rgba($color: $primary, $alpha: 0.1);
+ }
+ .jstree-wholerow-hovered:not(.jstree-wholerow-clicked) {
+ background: transparent;
+ }
+ }
+ }
+}
+
+// Context Menu Styling
+.vakata-context.jstree-contextmenu {
+ background: $white;
+ border: 0;
+ box-shadow: 0px 0px 50px 0px rgba($black, 0.1);
+ li {
+ a {
+ color: $body-color;
+ padding: 0 1.5rem;
+ text-shadow: none;
+ i {
+ display: none;
+ }
+ }
+ &.vakata-context-hover > a {
+ background-color: $body-bg;
+ box-shadow: none;
+ }
+ &.vakata-context-separator {
+ a {
+ margin: 0;
+ border-color: $border-color;
+ }
+ }
+ &.vakata-contextmenu-disabled {
+ a {
+ color: $text-muted;
+ }
+ &.vakata-context-hover a {
+ background-color: transparent !important;
+ cursor: default;
+ }
+ }
+ ul {
+ background: $white;
+ border: 0;
+ box-shadow: 0px 0px 50px 0px rgba($black, 0.1);
+ }
+ }
+ .vakata-contextmenu-sep {
+ display: none;
+ }
+}
+
+// Dark Layout
+.dark-layout {
+ // Folder Icons and text colors
+ .jstree {
+ .jstree-container-ul {
+ .jstree-anchor {
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+
+ // Context Menu Styling
+ .vakata-context.jstree-contextmenu {
+ background: $theme-dark-card-bg;
+ box-shadow: $theme-dark-box-shadow;
+ li {
+ a {
+ color: $theme-dark-body-color;
+ }
+ &.vakata-context-hover > a {
+ background-color: $theme-dark-body-bg;
+ }
+ &.vakata-context-separator a {
+ border-color: $theme-dark-border-color;
+ }
+ &.vakata-contextmenu-disabled a {
+ color: $theme-dark-text-muted-color;
+ }
+ ul {
+ background: $theme-dark-card-bg;
+ box-shadow: $theme-dark-box-shadow;
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/plugins/forms/form-file-uploader.scss b/src/@core/scss/base/plugins/forms/form-file-uploader.scss
new file mode 100644
index 00000000..9957e6a7
--- /dev/null
+++ b/src/@core/scss/base/plugins/forms/form-file-uploader.scss
@@ -0,0 +1,103 @@
+@import '../../bootstrap-extended/include'; // Bootstrap includes
+@import '../../components/include'; // Components includes
+
+.dropzone {
+ min-height: 350px;
+ border: 2px dashed $primary;
+ background: $body-bg;
+ position: relative;
+ // dropzone message customization
+ .dz-message {
+ font-size: 2rem;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ color: #7367f0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin: 0;
+ }
+
+ // dropzone message icon
+ .dz-message:before {
+ content: '';
+ background-image: url(str-replace(str-replace($download, 'currentColor', $primary), '#', '%23'));
+ font-size: 80px;
+ position: absolute;
+ top: 14rem;
+ width: 80px;
+ height: 80px;
+ display: inline-block;
+ line-height: 1;
+ z-index: 2;
+ color: $primary;
+ text-indent: 0px;
+ font-weight: normal;
+ -webkit-font-smoothing: antialiased;
+ }
+
+ // for preview of files
+ .dz-preview {
+ background: transparent !important;
+
+ .dz-error-mark,
+ .dz-success-mark {
+ z-index: 10;
+ }
+
+ .dz-image {
+ border-radius: $border-radius;
+ }
+
+ .dz-error-message {
+ background: $danger;
+ &:after {
+ border-bottom: 6px solid $danger;
+ }
+ }
+ }
+
+ // for dropzone preview and remove icon
+ .dz-preview .dz-remove {
+ font-size: 1.1rem;
+ color: $danger;
+ line-height: 2rem;
+
+ &:before {
+ content: '';
+ background-image: url(str-replace(str-replace($remove, 'currentColor', $danger), '#', '%23'));
+ display: inline-block;
+ line-height: 1;
+ z-index: 2;
+ text-indent: 0px;
+ font-weight: normal;
+ -webkit-font-smoothing: antialiased;
+ }
+
+ &:hover {
+ text-decoration: none;
+ color: darken($danger, 10%);
+ }
+ }
+}
+
+// For Small Screen drop Logo
+@media (max-width: 576px) {
+ .dropzone {
+ .dz-message {
+ &:before {
+ top: 15rem;
+ }
+ }
+ }
+}
+
+// dark layout
+.dark-layout {
+ .dropzone {
+ background-color: lighten($theme-dark-card-bg, 3%);
+ }
+}
diff --git a/src/@core/scss/base/plugins/forms/form-number-input.scss b/src/@core/scss/base/plugins/forms/form-number-input.scss
new file mode 100644
index 00000000..07c1b848
--- /dev/null
+++ b/src/@core/scss/base/plugins/forms/form-number-input.scss
@@ -0,0 +1,157 @@
+@import '../../bootstrap-extended/include'; // Bootstrap includes
+@import '../../components/include'; // Components includes
+
+// Number Inputs (Touch spin)
+$bootstrap-touchspin-width: 8.4rem;
+$bootstrap-touchspin-width-lg: 9.375rem;
+$bootstrap-touchspin-width-sm: 6.25rem;
+
+$bootstrap-touchspin-btn-width: 20px;
+$bootstrap-touchspin-btn-height: 20px;
+$bootstrap-touchspin-btn-width-lg: 24px;
+$bootstrap-touchspin-btn-height-lg: 24px;
+$bootstrap-touchspin-btn-width-sm: 16px;
+$bootstrap-touchspin-btn-height-sm: 16px;
+
+/* Bootstrap Touchspin */
+
+.bootstrap-touchspin {
+ &.input-group {
+ width: $bootstrap-touchspin-width;
+ align-items: center;
+ .form-control {
+ padding: 5px;
+ height: auto;
+ border: 0;
+ background-color: $body-bg;
+ border-radius: $border-radius !important;
+ text-align: center;
+ font-weight: 500;
+ &:focus {
+ z-index: 1;
+ box-shadow: none;
+ }
+ }
+ }
+
+ .bootstrap-touchspin-injected {
+ margin: 0 !important;
+ &.input-group-prepend {
+ left: 12px;
+ position: relative;
+ }
+ &.input-group-append {
+ right: 12px;
+ position: relative;
+ }
+ .bootstrap-touchspin-down,
+ .bootstrap-touchspin-up {
+ padding: 0;
+ min-width: $bootstrap-touchspin-btn-width;
+ min-height: $bootstrap-touchspin-btn-width;
+ border-radius: $border-radius !important;
+ i,
+ svg {
+ height: 0.8rem;
+ width: 0.8rem;
+ font-size: 0.8rem;
+ position: relative;
+ top: -1px;
+ }
+ }
+ }
+
+ // Disabled Touchspin
+ &.disabled-touchspin {
+ .bootstrap-touchspin-down,
+ .bootstrap-touchspin-up {
+ background-color: rgba($black, 0.5) !important;
+ cursor: default;
+ opacity: 0.5;
+ }
+ }
+
+ // Touchspin Large
+ &.input-group-lg {
+ width: $bootstrap-touchspin-width-lg;
+ .touchspin {
+ &.form-control {
+ height: auto !important;
+ }
+ }
+ .bootstrap-touchspin-down,
+ .bootstrap-touchspin-up {
+ min-width: $bootstrap-touchspin-btn-width-lg;
+ min-height: $bootstrap-touchspin-btn-width-lg;
+ i,
+ svg {
+ height: 1rem;
+ width: 1rem;
+ font-size: 1rem;
+ top: -3px;
+ }
+ }
+ }
+
+ // Touchspin Small
+ &.input-group-sm {
+ width: $bootstrap-touchspin-width-sm;
+ .touchspin {
+ &.form-control {
+ height: auto !important;
+ }
+ }
+ .bootstrap-touchspin-injected {
+ .bootstrap-touchspin-down,
+ .bootstrap-touchspin-up {
+ min-width: $bootstrap-touchspin-btn-width-sm;
+ min-height: $bootstrap-touchspin-btn-width-sm;
+ i,
+ svg {
+ height: 0.6rem;
+ width: 0.6rem;
+ font-size: 0.6rem;
+ }
+ }
+ }
+ }
+}
+
+/* Number Type Input Box Scss for Touchspin - Remove arrow for firefox */
+.bootstrap-touchspin {
+ &.input-group {
+ input[type='number'] {
+ -moz-appearance: textfield;
+ }
+ }
+}
+
+// Dark layout style
+.dark-layout {
+ // number inputs[touchspin]
+ .bootstrap-touchspin {
+ &.input-group {
+ .form-control {
+ background-color: $theme-dark-body-bg;
+ }
+ }
+
+ &.disabled-touchspin {
+ .bootstrap-touchspin-injected {
+ .bootstrap-touchspin-down,
+ .bootstrap-touchspin-up,
+ .disabled-max-min {
+ background-color: $gray-600 !important;
+ opacity: 1;
+ }
+ }
+ }
+
+ .bootstrap-touchspin-injected {
+ .disabled-max-min {
+ background-color: $gray-600 !important;
+ opacity: 1;
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/plugins/forms/form-quill-editor.scss b/src/@core/scss/base/plugins/forms/form-quill-editor.scss
new file mode 100644
index 00000000..3a42e01c
--- /dev/null
+++ b/src/@core/scss/base/plugins/forms/form-quill-editor.scss
@@ -0,0 +1,213 @@
+@import '../../bootstrap-extended/include'; // Bootstrap includes
+@import '../../components/include'; // Components includes
+
+/* Set dropdown font-families */
+.ql-toolbar .ql-font span[data-label='Sailec Light']::before {
+ font-family: 'Sailec Light';
+}
+.ql-toolbar .ql-font span[data-label='Sofia Pro']::before {
+ font-family: 'Sofia';
+}
+.ql-toolbar .ql-font span[data-label='Slabo 27px']::before {
+ font-family: 'Slabo 27px';
+}
+.ql-toolbar .ql-font span[data-label='Roboto Slab']::before {
+ font-family: 'Roboto Slab';
+}
+.ql-toolbar .ql-font span[data-label='Inconsolata']::before {
+ font-family: 'Inconsolata';
+}
+.ql-toolbar .ql-font span[data-label='Ubuntu Mono']::before {
+ font-family: 'Ubuntu Mono';
+}
+
+/* Set content font-families */
+.ql-font-sofia {
+ font-family: 'Sofia';
+}
+.ql-font-slabo {
+ font-family: 'Slabo 27px';
+}
+.ql-font-roboto {
+ font-family: 'Roboto Slab';
+}
+.ql-font-inconsolata {
+ font-family: 'Inconsolata';
+}
+.ql-font-ubuntu {
+ font-family: 'Ubuntu Mono';
+}
+
+// Quill Editor
+.ql-toolbar {
+ border-color: $custom-control-border-color !important;
+ .ql-formats {
+ &:focus,
+ *:focus {
+ outline: 0;
+ }
+ // button and label hover
+ .ql-picker-label,
+ button {
+ &:hover,
+ &:focus {
+ color: $primary !important;
+ .ql-stroke {
+ stroke: $primary !important;
+ }
+ .ql-fill {
+ fill: $primary !important;
+ }
+ }
+ &.ql-active {
+ color: $primary !important;
+ }
+ }
+ .ql-picker-item.ql-selected {
+ color: $primary !important;
+ }
+ // quill dropdown item hover
+ .ql-picker-options {
+ .ql-picker-item:hover {
+ color: $primary !important;
+ }
+ .ql-active {
+ color: $primary !important;
+ }
+ }
+ }
+}
+.ql-bubble {
+ .ql-picker {
+ color: $white !important;
+ }
+ // stroke options color
+ .ql-stroke {
+ stroke: $white !important;
+ }
+ // fill options color
+ .ql-fill {
+ fill: $white !important;
+ }
+}
+.ql-container {
+ border-color: $custom-control-border-color !important;
+ font-family: $font-family-monospace;
+}
+.ql-editor {
+ a {
+ color: $primary;
+ }
+}
+// default picker options
+.ql-picker {
+ color: $headings-color !important;
+}
+// stroke options color
+.ql-stroke {
+ stroke: $headings-color !important;
+}
+.ql-active {
+ .ql-stroke {
+ stroke: $primary !important;
+ }
+ .ql-fill {
+ fill: $primary !important;
+ }
+}
+// fill options color
+.ql-fill {
+ fill: $headings-color !important;
+}
+// Border rounded for editor
+.ql-toolbar,
+.ql-container {
+ border-top-right-radius: $border-radius;
+ border-top-left-radius: $border-radius;
+}
+.ql-toolbar {
+ + .ql-container,
+ .ql-container + & {
+ // ? If container/toolbar is below container/toolbar add bottom radius
+ border-bottom-right-radius: $border-radius;
+ border-bottom-left-radius: $border-radius;
+ // ? If container/toolbar is above container/toolbar remove top radius
+ border-top-right-radius: unset;
+ border-top-left-radius: unset;
+ }
+}
+
+// Dark Layout
+.dark-layout {
+ // Quill Editor
+ .quill-toolbar,
+ .ql-toolbar {
+ background-color: $theme-dark-input-bg;
+ border-color: $theme-dark-border-color !important;
+
+ // toolbar color
+ .ql-picker {
+ color: $white !important;
+ }
+
+ .ql-stroke {
+ stroke: $white !important;
+ }
+
+ .ql-fill {
+ fill: $white !important;
+ }
+
+ // toolbar options colors
+ .ql-picker-options,
+ .ql-picker-label {
+ background-color: $theme-dark-input-bg;
+ .ql-active {
+ color: $primary !important;
+ }
+ }
+ }
+ .ql-active {
+ .ql-stroke {
+ stroke: $primary !important;
+ }
+ .ql-fill {
+ fill: $primary !important;
+ }
+ }
+ .ql-bubble {
+ .ql-toolbar {
+ background: $theme-dark-border-color;
+ border-radius: 2rem;
+ }
+ }
+
+ .ql-container {
+ border-color: $theme-dark-border-color !important;
+ background-color: $theme-dark-input-bg;
+ }
+
+ // syntax color
+ .ql-editor {
+ .ql-syntax {
+ background-color: $theme-dark-body-bg;
+ }
+
+ &.ql-blank {
+ &:before {
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+}
+
+// RTL
+[data-textdirection='rtl'] {
+ .ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) {
+ i,
+ svg {
+ left: auto !important;
+ right: 0;
+ }
+ }
+}
diff --git a/src/@core/scss/base/plugins/forms/form-validation.scss b/src/@core/scss/base/plugins/forms/form-validation.scss
new file mode 100644
index 00000000..d45e5852
--- /dev/null
+++ b/src/@core/scss/base/plugins/forms/form-validation.scss
@@ -0,0 +1,27 @@
+@import '../../bootstrap-extended/include'; // Bootstrap includes
+@import '../../components/include'; // Components includes
+
+form {
+ span.error {
+ width: 100%;
+ font-size: 0.857rem;
+ }
+ .error:not(input) {
+ color: $danger;
+ }
+ input.error,
+ input.error:focus {
+ border-color: $danger !important;
+ }
+ textarea.error {
+ border-color: $danger !important;
+ }
+ .select2.error {
+ + .select2-container--classic .select2-selection--single,
+ + .select2-container--default .select2-selection--single,
+ + .select2-container--classic .select2-selection--multiple,
+ + .select2-container--default .select2-selection--multiple {
+ border-color: $danger !important;
+ }
+ }
+}
diff --git a/src/@core/scss/base/plugins/forms/form-wizard.scss b/src/@core/scss/base/plugins/forms/form-wizard.scss
new file mode 100644
index 00000000..88954392
--- /dev/null
+++ b/src/@core/scss/base/plugins/forms/form-wizard.scss
@@ -0,0 +1,293 @@
+@import '../../bootstrap-extended/include'; // Bootstrap includes
+@import '../../components/include'; // Components includes
+
+$header-padding-y: 1.5rem;
+$header-padding-x: 1.5rem;
+$content-padding-x: 1.5rem;
+$content-padding-y: 1.5rem;
+$trigger-padding-vertical: 1rem;
+$step-box-height: 38px;
+$step-box-width: 38px;
+
+.bs-stepper {
+ background-color: $white;
+ box-shadow: $box-shadow;
+ border-radius: 0.5rem;
+
+ .bs-stepper-header {
+ padding: $header-padding-y $header-padding-x;
+ flex-wrap: wrap;
+ border-bottom: 1px solid rgba($black, 0.08);
+ margin: 0;
+ .line {
+ flex: 0;
+ min-width: auto;
+ min-height: auto;
+ background-color: transparent;
+ margin: 0;
+ color: $body-color;
+ font-size: 1.5rem;
+ }
+ .step {
+ .step-trigger {
+ padding: 0 1.75rem;
+ flex-wrap: nowrap;
+ font-weight: normal;
+ .bs-stepper-box {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: $step-box-width;
+ height: $step-box-height;
+ padding: 0.5em 0;
+ font-weight: 500;
+ color: $gray-100;
+ background-color: rgba($gray-100, 0.12);
+ border-radius: 0.35rem;
+ }
+
+ .bs-stepper-label {
+ text-align: left;
+ margin: 0;
+ margin-top: 0.5rem;
+ margin-left: 1rem;
+
+ .bs-stepper-title {
+ display: inherit;
+ color: $body-color;
+ font-weight: 600;
+ line-height: 1rem;
+ margin-bottom: 0rem;
+ }
+
+ .bs-stepper-subtitle {
+ font-weight: 400;
+ font-size: 0.85rem;
+ color: $text-muted;
+ }
+ }
+
+ &:hover {
+ background-color: transparent;
+ }
+ }
+
+ &.active {
+ .step-trigger {
+ .bs-stepper-box {
+ background-color: $primary;
+ color: $white;
+ box-shadow: 0 3px 6px 0 rgba($primary, 0.4);
+ }
+ .bs-stepper-label {
+ .bs-stepper-title {
+ color: $primary;
+ }
+ }
+ }
+ }
+
+ &.crossed {
+ .step-trigger {
+ .bs-stepper-box {
+ background-color: rgba($color: $primary, $alpha: 0.12);
+ color: $primary !important;
+ }
+ .bs-stepper-label {
+ .bs-stepper-title {
+ color: $text-muted;
+ }
+ }
+ }
+ & + .line {
+ color: $primary;
+ }
+ }
+
+ &:first-child {
+ .step-trigger {
+ padding-left: 0;
+ }
+ }
+ &:last-child {
+ .step-trigger {
+ padding-right: 0;
+ }
+ }
+ }
+ }
+ .bs-stepper-content {
+ padding: $content-padding-y $content-padding-x;
+ .content {
+ margin-left: 0;
+
+ .content-header {
+ margin-bottom: 1rem;
+ }
+ }
+ }
+
+ &.vertical {
+ .bs-stepper-header {
+ border-right: 1px solid $border-color;
+ border-bottom: none;
+ .step {
+ .step-trigger {
+ padding: $trigger-padding-vertical 0;
+ }
+ }
+ .line {
+ display: none;
+ }
+ }
+ .bs-stepper-content {
+ width: 100%;
+ padding-top: 2.5rem;
+ .content {
+ &:not(.active) {
+ display: none;
+ }
+ }
+ }
+
+ &.wizard-icons {
+ .step {
+ text-align: center;
+ }
+ }
+ }
+
+ &.wizard-modern {
+ background-color: transparent;
+ box-shadow: none;
+ .bs-stepper-header {
+ border: none;
+ }
+ .bs-stepper-content {
+ background-color: $white;
+ border-radius: 0.5rem;
+ box-shadow: $box-shadow;
+ }
+ }
+}
+
+.horizontal-wizard,
+.vertical-wizard,
+.modern-horizontal-wizard,
+.modern-vertical-wizard {
+ margin-bottom: 2.2rem;
+}
+
+// Dark Layout
+.dark-layout {
+ .bs-stepper {
+ background-color: $theme-dark-card-bg;
+ box-shadow: $theme-dark-box-shadow;
+
+ .bs-stepper-header {
+ border-bottom: 1px solid rgba($theme-dark-border-color, 0.08);
+ .line {
+ color: $theme-dark-body-color;
+ }
+ .step {
+ .step-trigger {
+ .bs-stepper-box {
+ color: $gray-100;
+ }
+
+ .bs-stepper-label {
+ .bs-stepper-title {
+ color: $theme-dark-body-color;
+ }
+
+ .bs-stepper-subtitle {
+ color: $theme-dark-text-muted-color;
+ }
+ }
+ }
+
+ &.active {
+ .step-trigger {
+ .bs-stepper-box {
+ background-color: $primary;
+ color: $white;
+ box-shadow: 0 3px 6px 0 rgba($primary, 0.4);
+ }
+ .bs-stepper-label {
+ .bs-stepper-title {
+ color: $primary;
+ }
+ }
+ }
+ }
+
+ &.crossed {
+ .step-trigger {
+ .bs-stepper-label,
+ .bs-stepper-title {
+ color: $theme-dark-text-muted-color;
+ }
+ }
+ }
+ }
+ }
+
+ &.vertical {
+ .bs-stepper-header {
+ border-right-color: $theme-dark-border-color;
+ }
+ }
+
+ &.wizard-modern {
+ background-color: transparent;
+ box-shadow: none;
+ .bs-stepper-header {
+ border: none;
+ }
+ .bs-stepper-content {
+ background-color: $theme-dark-card-bg;
+ box-shadow: $theme-dark-box-shadow;
+ }
+ }
+ }
+}
+
+// RTl
+html[data-textdirection='rtl'] {
+ .btn-prev,
+ .btn-next {
+ display: flex;
+ i,
+ svg {
+ transform: rotate(-180deg);
+ }
+ }
+}
+
+// Media Queries
+@media (max-width: 768px) {
+ .bs-stepper {
+ .bs-stepper-header {
+ flex-direction: column;
+ align-items: flex-start;
+ .step {
+ .step-trigger {
+ padding: 0.5rem 0 !important;
+ flex-direction: row;
+ }
+ }
+ .line {
+ display: none;
+ }
+ }
+ &.vertical {
+ flex-direction: column;
+ .bs-stepper-header {
+ align-items: flex-start;
+ }
+ .bs-stepper-content {
+ padding-top: 1.5rem;
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/plugins/forms/pickers/form-flat-pickr.scss b/src/@core/scss/base/plugins/forms/pickers/form-flat-pickr.scss
new file mode 100644
index 00000000..023b26a0
--- /dev/null
+++ b/src/@core/scss/base/plugins/forms/pickers/form-flat-pickr.scss
@@ -0,0 +1,191 @@
+@import '../../../bootstrap-extended/include'; // Bootstrap includes
+@import '../../../components/include'; // Components includes
+
+.flatpickr-calendar {
+ .flatpickr-day {
+ color: $body-color;
+ &.today {
+ border-color: $primary;
+ &:hover {
+ background: transparent;
+ color: $body-color;
+ }
+ }
+
+ &.selected,
+ &.selected:hover {
+ background: $primary;
+ color: $white;
+ border-color: $primary;
+ }
+
+ &.inRange,
+ &.inRange:hover {
+ background: lighten($color: $primary, $amount: 30%);
+ border-color: lighten($color: $primary, $amount: 30%);
+ box-shadow: -5px 0 0 lighten($color: $primary, $amount: 30%), 5px 0 0 lighten($color: $primary, $amount: 30%);
+ }
+ &.startRange,
+ &.endRange,
+ &.startRange:hover,
+ &.endRange:hover {
+ background: $primary;
+ color: $white;
+ border-color: $primary;
+ }
+
+ &.selected.startRange + .endRange:not(:nth-child(7n + 1)),
+ &.startRange.startRange + .endRange:not(:nth-child(7n + 1)),
+ &.endRange.startRange + .endRange:not(:nth-child(7n + 1)) {
+ box-shadow: -10px 0 0 $primary;
+ }
+
+ &.flatpickr-disabled,
+ &.prevMonthDay,
+ &.nextMonthDay {
+ color: $gray-300;
+ }
+
+ &:hover {
+ background: $gray-50;
+ }
+ }
+ &:after,
+ &:before {
+ display: none;
+ }
+
+ .flatpickr-months {
+ .flatpickr-prev-month,
+ .flatpickr-next-month {
+ top: -5px;
+ &:hover i,
+ &:hover svg {
+ fill: $primary;
+ }
+ }
+ }
+ .flatpickr-current-month span.cur-month {
+ font-weight: 300;
+ }
+}
+
+// Time picker hover & focus bg color
+.flatpickr-time input:hover,
+.flatpickr-time .flatpickr-am-pm:hover,
+.flatpickr-time input:focus,
+.flatpickr-time .flatpickr-am-pm:focus {
+ background: $white;
+}
+
+//Dark layout
+.dark-layout {
+ .flatpickr-calendar {
+ background: $theme-dark-body-bg;
+ border-color: $theme-dark-body-bg;
+ box-shadow: none;
+ .flatpickr-months {
+ i,
+ svg {
+ fill: $theme-dark-body-color;
+ }
+ }
+ .flatpickr-month {
+ color: $theme-dark-body-color;
+ }
+ .flatpickr-weekwrapper .flatpickr-weeks {
+ box-shadow: 1px 0 0 $theme-dark-border-color;
+ }
+ .flatpickr-weekday {
+ color: $theme-dark-body-color;
+ }
+
+ .flatpickr-day {
+ &,
+ &.today:hover {
+ color: $theme-dark-body-color;
+ }
+ &.selected {
+ color: $white;
+ }
+
+ &.prevMonthDay,
+ &.nextMonthDay,
+ &.flatpickr-disabled {
+ color: $gray-700 !important;
+ }
+ &.inRange,
+ &.inRange:hover {
+ background: $theme-dark-card-bg;
+ border-color: $theme-dark-card-bg;
+ box-shadow: -5px 0 0 $theme-dark-card-bg, 5px 0 0 $theme-dark-card-bg;
+ }
+ &:hover:not(.selected):not(.today):not(.startRange):not(.endRange) {
+ color: $theme-dark-body-color;
+ border-color: $theme-dark-card-bg;
+ }
+ }
+
+ .flatpickr-days .flatpickr-day {
+ &:hover:not(.selected):not(.today):not(.startRange):not(.endRange) {
+ background: $theme-dark-card-bg;
+ }
+ }
+
+ .flatpickr-time {
+ border-color: $theme-dark-body-bg !important;
+
+ .numInput,
+ .flatpickr-am-pm {
+ color: $theme-dark-body-color;
+ &:hover {
+ background: $theme-dark-body-bg;
+ }
+ }
+
+ .arrowUp:after {
+ border-bottom-color: $theme-dark-body-color;
+ }
+ .arrowDown:after {
+ border-top-color: $theme-dark-body-color;
+ }
+ }
+ }
+ // Time picker hover & focus bg color
+ .flatpickr-time input:hover,
+ .flatpickr-time .flatpickr-am-pm:hover,
+ .flatpickr-time input:focus,
+ .flatpickr-time .flatpickr-am-pm:focus {
+ background: $theme-dark-body-bg;
+ }
+}
+
+// ? Added bg color for flatpickr input only as it has default readonly attribute
+.flatpickr-input[readonly],
+.flatpickr-input ~ .form-control[readonly],
+.flatpickr-human-friendly[readonly] {
+ background-color: inherit;
+ opacity: 1 !important;
+}
+
+.flatpickr-weekdays {
+ margin-top: 8px;
+}
+
+.flatpickr-current-month {
+ .flatpickr-monthDropdown-months {
+ -webkit-appearance: none;
+ }
+
+ .flatpickr-monthDropdown-months,
+ .numInputWrapper {
+ font-size: 1.1rem;
+ border-radius: 4px;
+ padding: 2px;
+ transition: all 0.15s ease-out;
+
+ span {
+ display: none;
+ }
+ }
+}
diff --git a/src/@core/scss/base/plugins/forms/pickers/form-pickadate.scss b/src/@core/scss/base/plugins/forms/pickers/form-pickadate.scss
new file mode 100644
index 00000000..266e7558
--- /dev/null
+++ b/src/@core/scss/base/plugins/forms/pickers/form-pickadate.scss
@@ -0,0 +1,167 @@
+@import '../../../bootstrap-extended/include'; // Bootstrap includes
+@import '../../../components/include'; // Components includes
+
+// remove picker outline
+.picker__holder {
+ outline: none;
+}
+// Updated picker color as per theme color
+.picker__day--today:before,
+.picker__button--today:before {
+ border-top: 6px solid $primary;
+}
+.picker__button--clear:before {
+ border-top: 2px solid $danger;
+}
+.picker__day--highlighted,
+.picker__day--highlighted:hover,
+.picker--focused .picker__day--highlighted,
+.picker__list-item--selected,
+.picker__list-item--selected:hover,
+.picker--focused .picker__list-item--selected {
+ background-color: $primary;
+}
+// Updated picker svg icons
+.picker__nav--prev:before,
+.picker__nav--next:before,
+.picker__button--close:before {
+ content: '';
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 18px;
+ color: $body-color;
+ width: 8px;
+ height: 18px;
+}
+.picker__nav--prev:before {
+ background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $body-color), '#', '%23'));
+}
+.picker__nav--next:before {
+ background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $body-color), '#', '%23'));
+}
+.picker__button--close:before {
+ background-image: url(str-replace(str-replace($remove, 'currentColor', $danger), '#', '%23'));
+ height: 10px !important;
+}
+
+// Dark layout style
+.dark-layout {
+ // date picker
+ .picker__holder {
+ background-color: $theme-dark-body-bg;
+ border-color: $theme-dark-border-color;
+
+ .picker__header {
+ .picker__month,
+ .picker__year {
+ color: $theme-dark-body-color;
+ }
+
+ .picker__select--year,
+ .picker__select--month {
+ color: $theme-dark-body-color;
+ background-color: $theme-dark-body-bg;
+ border-color: $theme-dark-border-color;
+ }
+
+ .picker__nav--next,
+ .picker__nav--prev {
+ &:hover {
+ background-color: $theme-dark-card-bg;
+ }
+ }
+ }
+ .picker__frame {
+ border-color: $theme-dark-border-color;
+ }
+
+ .picker__table {
+ thead {
+ tr {
+ .picker__weekday {
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+
+ tbody {
+ tr {
+ td {
+ .picker__day {
+ color: $theme-dark-body-color;
+ &.picker__day--selected {
+ color: $white;
+ // color: $theme-dark-body-color;
+ }
+
+ &:hover {
+ background-color: $theme-dark-border-color;
+ // border: 1px solid #4ec6e8;
+ color: $white;
+ }
+
+ &.picker__day--disabled {
+ color: $theme-dark-body-color;
+ opacity: 0.5;
+ background: $theme-dark-card-bg;
+ }
+ }
+
+ .picker__day--today {
+ background-color: $theme-dark-card-bg;
+ }
+ }
+ }
+ }
+ }
+
+ .picker__footer {
+ .picker__button--today,
+ .picker__button--clear,
+ .picker__button--close {
+ background-color: $theme-dark-body-bg;
+ color: $theme-dark-body-color;
+ &:hover {
+ background-color: $theme-dark-border-color;
+ }
+ }
+ }
+ }
+
+ // time picker
+ .picker--time {
+ .picker__holder {
+ .picker__list {
+ background-color: $theme-dark-body-bg;
+
+ .picker__list-item {
+ &.picker__list-item--selected,
+ &:hover {
+ background-color: $theme-dark-card-bg;
+ }
+
+ &.picker__list-item--disabled {
+ background-color: $theme-dark-card-bg;
+ color: $secondary;
+ opacity: 0.5;
+ }
+ }
+
+ .picker__button--clear {
+ background-color: $theme-dark-body-bg;
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+ }
+}
+
+//RTL Style
+[dir='rtl'] {
+ .picker__nav--prev:before {
+ background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $body-color), '#', '%23'));
+ }
+ .picker__nav--next:before {
+ background-image: url(str-replace(str-replace($chevron-left, 'currentColor', $body-color), '#', '%23'));
+ }
+}
diff --git a/src/@core/scss/base/plugins/forms/select2/_select2.scss b/src/@core/scss/base/plugins/forms/select2/_select2.scss
new file mode 100644
index 00000000..e52161b8
--- /dev/null
+++ b/src/@core/scss/base/plugins/forms/select2/_select2.scss
@@ -0,0 +1,319 @@
+// select-2 Theme
+.select2-container {
+ width: 100% !important;
+ margin: 0;
+ display: inline-block;
+ position: relative;
+ vertical-align: middle;
+ box-sizing: border-box;
+}
+.select2-container--classic,
+.select2-container--default {
+ &:focus {
+ outline: none;
+ }
+
+ .select2-selection__choice {
+ font-size: 0.9rem;
+ margin-top: 6px !important;
+ }
+ // single select
+ .select2-selection--single {
+ min-height: 2.714rem;
+ padding: 5px;
+ border: 1px solid $input-border-color;
+ // Border color on focus
+ &:focus {
+ outline: 0;
+ border-color: $primary !important;
+ box-shadow: $input-focus-box-shadow !important;
+ }
+
+ // Select with icons scss
+ .select2-selection__rendered {
+ i,
+ svg {
+ font-size: 1.15rem;
+ height: 1.15rem;
+ width: 1.15rem;
+ margin-right: 0.5rem;
+ }
+ }
+ // dropdown arrow height
+ .select2-selection__arrow {
+ b {
+ background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $input-border-color), '#', '%23'));
+ background-size: 18px 14px, 18px 14px;
+ background-repeat: no-repeat;
+ height: 1rem;
+ padding-right: 1.5rem;
+ margin-left: 0;
+ margin-top: 0;
+ left: -8px;
+ border-style: none;
+ }
+ }
+ }
+ // when select container open - scss
+ &.select2-container--open {
+ box-shadow: $dropdown-box-shadow;
+ .select2-selection--single {
+ border-color: $primary !important;
+ outline: 0;
+ }
+ }
+
+ // select container - focus
+ &.select2-container--focus {
+ outline: 0;
+ .select2-selection--multiple {
+ border-color: $primary !important;
+ outline: 0;
+ }
+ }
+
+ // Select2 Search Dropdown
+ .select2-dropdown {
+ border-color: $input-border-color;
+ }
+ .select2-search--dropdown {
+ padding: 0.5rem;
+ .select2-search__field {
+ outline: none !important;
+ border-radius: $input-border-radius;
+ border-color: $input-border-color;
+ padding: $input-padding-y $input-padding-x;
+ }
+ }
+
+ // multiple select scss
+ .select2-selection--multiple {
+ min-height: 38px !important;
+ border: 1px solid $input-border-color;
+ &:focus {
+ outline: 0;
+ border-color: $primary !important;
+ box-shadow: $input-focus-box-shadow !important;
+ }
+ // selected items bg color for multiple selection
+ .select2-selection__choice {
+ background-color: $primary !important;
+ border-color: $primary !important;
+ color: $white;
+ padding: 2px 5px;
+ }
+ // font -size for selected options
+ .select2-selection__rendered {
+ padding: 0 6px;
+ li {
+ // font-size: 0.9rem;
+ .select2-search__field {
+ margin-top: 7px;
+ }
+ }
+ }
+ .select2-selection__choice__remove {
+ // color: $white !important;
+ float: right;
+ margin-left: 0.7rem;
+ margin-right: 0.5rem;
+ font-size: 0px;
+ display: inline-block;
+ position: relative;
+ line-height: 1rem;
+ &:before {
+ content: '';
+ background-image: url(str-replace(str-replace($remove, 'currentColor', $white), '#', '%23'));
+ background-size: 0.85rem;
+ height: 0.85rem;
+ width: 0.85rem;
+ position: absolute;
+ top: 22%;
+ left: -4px;
+ }
+ }
+ // select dropdown menu with icons
+ i,
+ svg {
+ position: relative;
+ top: 1px;
+ margin-right: 0.5rem;
+ height: 1.15rem;
+ width: 1.15rem;
+ font-size: 1.15rem;
+ padding-left: 1px;
+ }
+ }
+
+ // Select2 group alignment
+ .select2-results__group {
+ padding: 6px 9px;
+ font-weight: 600;
+ }
+
+ .select2-results__option {
+ padding: 0.428rem 1rem;
+ &[role='group'] {
+ padding: 0;
+ }
+ &[aria-selected='true'] {
+ background-color: $primary !important;
+ color: white !important;
+ }
+ i,
+ svg {
+ height: 1.15rem;
+ width: 1.15rem;
+ font-size: 1.15rem;
+ margin-right: 0.5rem;
+ }
+ }
+
+ .select2-results__option--highlighted {
+ background-color: rgba($primary, 0.12) !important;
+ color: $primary !important;
+ }
+
+ //Loading Remote Data Image Size
+ .select2-result-repository__avatar {
+ img {
+ width: 50px;
+ }
+ }
+
+ // Optional sizing
+ // ------------------------------
+
+ // Large Single select
+ .select-lg {
+ min-height: $input-height !important;
+ font-size: ($font-size-lg - 0.8);
+ margin-bottom: 0 !important;
+ padding: 0.3rem 0.7rem;
+ &.select2-selection--single {
+ .select2-selection__rendered {
+ padding-top: $input-btn-padding-y-lg - 0.9;
+ // padding-left: 0;
+ }
+
+ .select2-selection__arrow {
+ top: $input-btn-padding-y-lg - 0.8 !important;
+ }
+ }
+
+ // large Multiple select
+ &.select2-selection--multiple {
+ padding: 0 0.2rem;
+ .select2-selection__rendered {
+ padding-top: 0 !important;
+ li {
+ font-size: ($font-size-lg - 0.8);
+ .select2-search__field {
+ margin-top: 10px;
+ }
+ }
+ .select2-selection__choice {
+ padding: 5px;
+
+ .select2-selection__choice__remove:before {
+ top: 46%;
+ }
+ }
+ }
+ }
+ }
+ // Small Single select
+ .select-sm {
+ min-height: $input-height-sm !important;
+ padding: 0 $input-padding-y-xs;
+ font-size: $font-size-xs;
+ margin-bottom: 0 !important;
+ line-height: $line-height-xs;
+ // Single
+ &.select2-selection--single {
+ .select2-selection__arrow {
+ top: -0.3rem !important;
+ }
+ }
+
+ // Small Multiple select
+ &.select2-selection--multiple {
+ line-height: $line-height-xs - 0.2;
+ .select2-selection__rendered {
+ padding: 3px;
+ li {
+ font-size: $font-size-xs;
+ margin-top: 2px;
+ .select2-search__field {
+ margin-top: 4px;
+ }
+ }
+ }
+ .select2-selection__choice {
+ padding: 0 $input-padding-y-xs;
+ .select2-selection__choice__remove:before {
+ top: 5%;
+ }
+ }
+
+ .select2-search--inline .select2-search__field {
+ margin-top: 0;
+ }
+ }
+ }
+}
+
+// Dark Layout
+.dark-layout {
+ .select2-container {
+ .select2-selection,
+ .select2-search__field,
+ .select2-selection__placeholder {
+ background: $theme-dark-input-bg;
+ border-color: $theme-dark-border-color;
+ color: $theme-dark-body-color;
+ }
+
+ .select2-selection__rendered {
+ color: $theme-dark-body-color;
+ }
+
+ .select2-dropdown {
+ background-color: $theme-dark-card-bg;
+ border-color: $theme-dark-border-color;
+ }
+
+ .select2-selection--multiple {
+ .select2-selection__choice {
+ background: rgba($primary, 0.12) !important;
+ color: $primary !important;
+ border: none;
+ .select2-selection__choice__remove {
+ color: $primary !important;
+ }
+ }
+ .select2-selection__choice__remove:before {
+ background-image: url(str-replace(str-replace($remove, 'currentColor', $primary), '#', '%23'));
+ }
+ }
+
+ .select2-results__option[aria-disabled='true'] {
+ color: $theme-dark-text-muted-color;
+ }
+
+ .select2-selection__arrow {
+ b {
+ background-image: url(str-replace(
+ str-replace($chevron-down, 'currentColor', $theme-dark-body-color),
+ '#',
+ '%23'
+ ));
+ }
+ }
+ }
+ .select2-container--disabled {
+ .select2-selection {
+ opacity: 0.5;
+ }
+ }
+}
diff --git a/src/@core/scss/base/plugins/maps/map-leaflet.scss b/src/@core/scss/base/plugins/maps/map-leaflet.scss
new file mode 100644
index 00000000..66bd3f36
--- /dev/null
+++ b/src/@core/scss/base/plugins/maps/map-leaflet.scss
@@ -0,0 +1,38 @@
+// ================================================================================================
+// File Name: leaflet.scss
+// Description: Leaflet map custom scss
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+.leaflet-map {
+ height: 400px;
+ z-index: 1;
+}
+
+html[data-textdirection='rtl'] {
+ .leaflet-map {
+ .leaflet-control-container {
+ .leaflet-left {
+ left: 0;
+ right: unset;
+ .leaflet-control-zoom,
+ .leaflet-control-layers {
+ margin-right: 0;
+ margin-left: 10px;
+ }
+ }
+ .leaflet-right {
+ right: 0;
+ left: unset;
+ .leaflet-control-zoom,
+ .leaflet-control-layers {
+ margin-right: 10px;
+ margin-left: 0px;
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/plugins/tables/_datatables.scss b/src/@core/scss/base/plugins/tables/_datatables.scss
new file mode 100644
index 00000000..95605eda
--- /dev/null
+++ b/src/@core/scss/base/plugins/tables/_datatables.scss
@@ -0,0 +1,163 @@
+// ================================================================================================
+// File Name: datatables.scss
+// Description: Datatables pages custom scss
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+table.dataTable {
+ // table width & collapse border
+ width: 100% !important;
+ border-collapse: collapse !important;
+ td,
+ th {
+ padding: $table-cell-padding 1.5rem;
+ vertical-align: middle;
+ }
+ thead {
+ // Sorting Icons Change
+ .sorting,
+ .sorting_asc,
+ .sorting_desc {
+ padding-right: inherit;
+ &:before {
+ background-image: url(str-replace(str-replace($chevron-up, 'currentColor', $table-head-color), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 12px;
+ color: $body-color;
+ width: 14px;
+ height: 14px;
+ content: '';
+ right: 0.3rem;
+ top: 0.5rem;
+ }
+ &:after {
+ background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $table-head-color), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 12px;
+ color: $body-color;
+ width: 14px;
+ height: 14px;
+ content: '';
+ right: 0.3rem;
+ top: 1.3rem;
+ }
+ }
+ }
+
+ // datatables with checkbox styling
+ .dt-checkboxes-cell {
+ .custom-control {
+ padding-left: 0;
+ padding-right: 1.25rem;
+ }
+ }
+}
+
+div.dataTables_wrapper .dt-button-collection {
+ background-color: $dropdown-bg;
+ > div[role='menu'] {
+ text-align: left;
+ box-shadow: 0px 5px 16px -8px;
+ min-width: 8rem;
+ }
+ [class*='buttons-']:focus {
+ outline: 0;
+ }
+}
+
+// responsive '+' icon line height
+table.dataTable.dtr-column > tbody > tr > td.control:before,
+table.dataTable.dtr-column > tbody > tr > th.control:before {
+ line-height: 16px;
+}
+
+// data table search, labels and
+div.dataTables_wrapper {
+ // data table search, labels
+ div.dataTables_filter,
+ div.dataTables_length {
+ label {
+ margin-top: 1rem;
+ margin-bottom: 0.5rem;
+ }
+ // for datatable length select
+ select {
+ background-position: calc(100% - 3px) 11px, calc(100% - 20px) 13px, 100% 0;
+ padding: 0 0.8rem;
+ width: 5rem;
+ margin: 0 0.5rem;
+ }
+ }
+ div.dataTables_filter input {
+ margin-left: 0.75rem;
+ }
+
+ // pagination
+ div.dataTables_paginate {
+ ul.pagination {
+ margin-top: 1rem;
+ margin-bottom: 1.5rem;
+ }
+ }
+
+ // info text color
+ .dataTables_info {
+ padding-top: 1.25rem !important;
+ color: $text-muted;
+ }
+}
+
+// row grouping
+tr.group {
+ // row grouping color
+ background-color: $table-accent-bg;
+}
+
+// pagination in center
+@media only screen and (max-width: 768px) {
+ div.dataTables_wrapper {
+ div.dataTables_paginate {
+ ul.pagination {
+ justify-content: center;
+ }
+ }
+ }
+
+ div.dataTables_wrapper div.dataTables_info {
+ white-space: inherit;
+ }
+ // small screen button spacing in bottom
+ div.dt-buttons {
+ justify-content: center;
+ margin-top: 1rem;
+ button {
+ margin-bottom: 0.5rem;
+ }
+ }
+}
+@include media-breakpoint-down(xs) {
+ .dtr-bs-modal {
+ .modal-body {
+ padding-left: 0;
+ padding-right: 0;
+ overflow-x: scroll;
+ }
+ .table.dtr-details {
+ margin: 0 auto 1rem;
+ td {
+ padding-left: 0;
+ padding-right: 0;
+ }
+ tr td:first-child {
+ padding-left: 0.75rem;
+ }
+ }
+ }
+ div.dataTables_wrapper {
+ overflow: scroll;
+ }
+}
diff --git a/src/@core/scss/base/plugins/tables/table-ag-grid.scss b/src/@core/scss/base/plugins/tables/table-ag-grid.scss
new file mode 100644
index 00000000..46670542
--- /dev/null
+++ b/src/@core/scss/base/plugins/tables/table-ag-grid.scss
@@ -0,0 +1,135 @@
+// ================================================================================================
+// File Name: aggrid.scss
+// Description: SCC file for Aggrid.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import '../../bootstrap-extended/include'; // Bootstrap includes
+@import '../../components/include'; // Components includes
+
+.aggrid {
+ height: 600px;
+ font-size: 1rem;
+ color: $body-color;
+
+ // Checkbox Color
+ .ag-icon-checkbox-checked,
+ .ag-icon-checkbox-indeterminate {
+ color: $primary !important;
+ }
+
+ /*** TABLE BODY HEIGHT - FOOTER HEIGHT ***/
+ .ag-root-wrapper-body {
+ min-height: calc(100% - 56px);
+ }
+
+ /*** HEADER TEXT ***/
+ .ag-header-cell-text {
+ font-size: 1rem;
+ font-family: $font-family-sans-serif;
+ }
+
+ /*** PAGINATION STYLING ***/
+ .ag-paging-panel {
+ display: block !important;
+ align-items: center;
+ height: 98px;
+
+ .ag-paging-row-summary-panel {
+ display: none;
+ }
+
+ .ag-paging-page-summary-panel {
+ justify-content: center;
+ margin-left: 0;
+ margin-top: 18px;
+
+ [ref='lbCurrent'],
+ [ref='lbTotal'] {
+ color: $white;
+ padding: 0.7rem 0.95rem;
+ border-radius: 0.5rem;
+
+ @include media-breakpoint-down(xs) {
+ margin: 0 0.4rem;
+ }
+ }
+ }
+
+ .ag-paging-button {
+ background-color: $gray-300;
+ border-radius: 50%;
+ padding: 0.5rem 0rem;
+ margin: 0 0.5rem;
+ color: $body-color !important;
+ min-width: 34px;
+
+ @include media-breakpoint-down(xs) {
+ margin-left: 0;
+ margin-right: 0.4rem;
+ }
+
+ .ag-icon {
+ color: $body-color !important;
+ opacity: 1 !important;
+ }
+
+ &.ag-disabled {
+ opacity: 0.5 !important;
+ }
+
+ &:last-child {
+ @include media-breakpoint-down(xs) {
+ margin-right: 0;
+ }
+ }
+ }
+
+ span[ref='lbCurrent'] {
+ background-color: $primary;
+ }
+
+ span[ref='lbTotal'] {
+ background-color: $gray-300;
+ color: $body-color !important;
+ }
+ }
+
+ /*** TABLE SCROLLBAR ***/
+ ::-webkit-scrollbar {
+ width: 10px;
+ height: 10px;
+ }
+
+ ::-webkit-scrollbar-thumb {
+ background: $gray-300;
+ border-radius: 20px;
+ }
+
+ ::-webkit-scrollbar-track {
+ background: $body-bg;
+ border-radius: 20px;
+ }
+}
+
+/*** PAGE FILTER DROPDOWN ***/
+.filter-btn {
+ padding: 1.2rem !important;
+ border-radius: 5rem;
+ font-size: 0.95rem;
+
+ &:after {
+ background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $body-color), '#', '%23'));
+ left: 5px;
+ }
+}
+
+/*** SORTING DROPDOWN WIDTH ***/
+.sort-dropdown {
+ .dropdown-menu {
+ min-width: 4rem;
+ }
+}
diff --git a/src/@core/scss/base/plugins/ui/_breakpoints.scss b/src/@core/scss/base/plugins/ui/_breakpoints.scss
new file mode 100644
index 00000000..46e6c1af
--- /dev/null
+++ b/src/@core/scss/base/plugins/ui/_breakpoints.scss
@@ -0,0 +1,64 @@
+// config
+$debug: false;
+
+// declare breakpoints
+$usn-x-small: 0px;
+$usn-small: 544px;
+$usn-medium: 768px;
+$usn-large: 992px;
+$usn-x-large: 1200px;
+
+// create sass list to pass media query data
+// if a breakpoint name changes, remember to
+// update it in the list below as well
+$mq-sync: xs $usn-x-small, sm $usn-small, md $usn-medium, lg $usn-large, xl $usn-x-large;
+
+// build each media query for js ingestion
+@each $mq in $mq-sync {
+ @media screen and (min-width: nth($mq, 2)) {
+ head {
+ font-family: '#{nth($mq, 1)} #{nth($mq, 2)}';
+ }
+ body:after {
+ content: '#{nth($mq, 1)} - min-width: #{nth($mq, 2)}';
+ }
+ }
+}
+
+head {
+ // set clear on head to show Unison is set up correctly
+ clear: both;
+ // store hash of all breakpoints
+ title {
+ font-family: '#{$mq-sync}';
+ }
+}
+
+// debug styles to see breakpoint info
+body:after {
+ display: none;
+}
+
+@if $debug == true {
+ body:after {
+ display: block;
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ background-color: #000;
+ background-color: rgba($black, 0.8);
+ text-align: center;
+ color: #fff;
+ padding: 10px;
+ z-index: 1000;
+ font-size: 12px;
+ font-family: sans-serif;
+ }
+}
+
+// hide elements for conditional loading
+// only used for responsive comments plugin
+*[data-usn-if] {
+ display: none;
+}
diff --git a/src/@core/scss/base/plugins/ui/coming-soon.scss b/src/@core/scss/base/plugins/ui/coming-soon.scss
new file mode 100644
index 00000000..46e6c1af
--- /dev/null
+++ b/src/@core/scss/base/plugins/ui/coming-soon.scss
@@ -0,0 +1,64 @@
+// config
+$debug: false;
+
+// declare breakpoints
+$usn-x-small: 0px;
+$usn-small: 544px;
+$usn-medium: 768px;
+$usn-large: 992px;
+$usn-x-large: 1200px;
+
+// create sass list to pass media query data
+// if a breakpoint name changes, remember to
+// update it in the list below as well
+$mq-sync: xs $usn-x-small, sm $usn-small, md $usn-medium, lg $usn-large, xl $usn-x-large;
+
+// build each media query for js ingestion
+@each $mq in $mq-sync {
+ @media screen and (min-width: nth($mq, 2)) {
+ head {
+ font-family: '#{nth($mq, 1)} #{nth($mq, 2)}';
+ }
+ body:after {
+ content: '#{nth($mq, 1)} - min-width: #{nth($mq, 2)}';
+ }
+ }
+}
+
+head {
+ // set clear on head to show Unison is set up correctly
+ clear: both;
+ // store hash of all breakpoints
+ title {
+ font-family: '#{$mq-sync}';
+ }
+}
+
+// debug styles to see breakpoint info
+body:after {
+ display: none;
+}
+
+@if $debug == true {
+ body:after {
+ display: block;
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ background-color: #000;
+ background-color: rgba($black, 0.8);
+ text-align: center;
+ color: #fff;
+ padding: 10px;
+ z-index: 1000;
+ font-size: 12px;
+ font-family: sans-serif;
+ }
+}
+
+// hide elements for conditional loading
+// only used for responsive comments plugin
+*[data-usn-if] {
+ display: none;
+}
diff --git a/src/@core/scss/base/themes/bordered-layout.scss b/src/@core/scss/base/themes/bordered-layout.scss
new file mode 100644
index 00000000..bb7c189b
--- /dev/null
+++ b/src/@core/scss/base/themes/bordered-layout.scss
@@ -0,0 +1,59 @@
+// ================================================================================================
+// File Name: bordered-layout.scss
+// Description: SCSS file for Bordered layout.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import '../bootstrap-extended/include'; // Bootstrap includes
+@import '../components/include'; // Components includes
+
+.bordered-layout {
+ .header-navbar {
+ box-shadow: none;
+ &.floating-nav {
+ border: 1px solid $border-color;
+ }
+ &.fixed-top {
+ border-bottom: 1px solid $border-color;
+ background: $body-bg;
+ }
+ }
+ .main-menu {
+ border-right: 1px solid $border-color;
+ box-shadow: none;
+ &.menu-light .navigation > li {
+ &.open:not(.menu-item-closing),
+ &.sidebar-group-active {
+ > a {
+ background: darken($white, 7%);
+ }
+ }
+ }
+ }
+ .dropdown-menu {
+ border: 1px solid $border-color !important;
+ box-shadow: none;
+ }
+ .main-menu .navigation,
+ .main-menu {
+ background: $body-bg;
+ }
+ .card,
+ .bs-stepper:not(.wizard-modern):not(.checkout-tab-steps),
+ .bs-stepper.wizard-modern .bs-stepper-content {
+ border: 1px solid $border-color;
+ box-shadow: none;
+ }
+
+ .footer {
+ box-shadow: none !important;
+ }
+ .footer-fixed {
+ .footer {
+ border-top: 1px solid $border-color;
+ }
+ }
+}
diff --git a/src/@core/scss/base/themes/dark-layout.scss b/src/@core/scss/base/themes/dark-layout.scss
new file mode 100644
index 00000000..9cc042b6
--- /dev/null
+++ b/src/@core/scss/base/themes/dark-layout.scss
@@ -0,0 +1,2386 @@
+// ================================================================================================
+// File Name: dark-layout.scss
+// Description: SCSS file for dark layout.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import '../bootstrap-extended/include'; // Bootstrap includes
+@import '../components/include'; // Components includes
+
+.dark-layout {
+ @at-root body#{&} {
+ color: $theme-dark-body-color;
+ background-color: $theme-dark-body-bg;
+ }
+ body {
+ color: $theme-dark-body-color;
+ background-color: $theme-dark-body-bg;
+ }
+ // universal elements
+ //heading tags
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6 {
+ color: $theme-dark-headings-color;
+ }
+
+ // border color
+ .border,
+ .border-top,
+ .border-right,
+ .border-bottom,
+ .border-left {
+ border-color: $theme-dark-border-color !important;
+ }
+
+ // other tags
+ a {
+ &:hover {
+ color: $primary;
+ }
+ }
+
+ label {
+ color: $theme-dark-label-color;
+ }
+
+ .btn span {
+ color: inherit;
+ }
+
+ hr {
+ border-color: $theme-dark-border-color;
+ }
+
+ pre {
+ background-color: $theme-dark-body-bg !important;
+ border: 0;
+
+ code {
+ background-color: inherit;
+ text-shadow: none;
+
+ // .operator,
+ .url {
+ background-color: $theme-dark-body-bg;
+ }
+ }
+ }
+
+ code {
+ background-color: $theme-dark-body-bg;
+ }
+
+ kbd {
+ background-color: $theme-dark-body-bg;
+ }
+
+ // for dark text
+ .text-dark {
+ color: $gray-600 !important;
+ }
+
+ .text-muted {
+ color: $theme-dark-text-muted-color !important;
+ }
+
+ .text-body {
+ color: $theme-dark-body-color !important;
+ }
+ .text-body-heading {
+ color: $theme-dark-headings-color;
+ }
+
+ .section-label {
+ color: $theme-dark-text-muted-color;
+ }
+
+ // shadow
+ .shadow {
+ box-shadow: $theme-dark-box-shadow !important;
+ }
+
+ // blockquote footer
+ .blockquote-footer {
+ color: $theme-dark-text-muted-color;
+ }
+
+ // main navbar and header navbar shadow(generic navbar)
+ .header-navbar-shadow {
+ background: linear-gradient(180deg, rgba(22, 29, 49, 0.9) 44%, rgba(22, 29, 49, 0.43) 73%, rgba(22, 29, 49, 0));
+ }
+
+ // main header navbar dark style
+
+ .horizontal-layout {
+ .header-navbar {
+ background-color: $theme-dark-card-bg;
+ }
+ &.navbar-sticky,
+ &.navbar-static {
+ .header-navbar {
+ background-color: $theme-dark-body-bg;
+ }
+ }
+ }
+ .navbar-sticky {
+ .header-navbar {
+ &.navbar-shadow {
+ box-shadow: 0 4px 24px 0 rgba($black, 0.75);
+ }
+ }
+ }
+ .header-navbar {
+ background-color: $theme-dark-card-bg;
+
+ .navbar-container {
+ .nav {
+ .nav-item {
+ .nav-link {
+ color: $theme-dark-headings-color;
+ background-color: transparent;
+
+ i,
+ svg {
+ color: $theme-dark-headings-color;
+ }
+
+ &.bookmark-star {
+ i,
+ svg {
+ color: $white !important;
+ }
+ }
+ }
+
+ &.nav-search {
+ .search-input {
+ &.open {
+ background-color: $theme-dark-card-bg;
+
+ .input {
+ border-color: $theme-dark-border-color;
+ }
+
+ .input,
+ .input::placeholder,
+ .search-input-close {
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+ }
+
+ .bookmark-input {
+ background-color: $theme-dark-card-bg;
+ .form-control {
+ background-color: $theme-dark-card-bg;
+ }
+ }
+
+ .search-list {
+ background-color: $theme-dark-card-bg;
+ li {
+ a {
+ color: $theme-dark-body-color;
+ }
+ }
+
+ .auto-suggestion.current_item {
+ background-color: $theme-dark-body-bg;
+ }
+ }
+ }
+
+ li i.ficon,
+ li svg.ficon {
+ color: $theme-dark-body-color;
+ }
+
+ .dropdown-cart,
+ .dropdown-notification {
+ .dropdown-menu.dropdown-menu-media {
+ overflow: hidden;
+
+ .media {
+ border-color: $theme-dark-border-color;
+
+ .media-meta {
+ color: $theme-dark-body-color;
+ }
+
+ &:hover {
+ background-color: $theme-dark-body-bg;
+ }
+ }
+ .dropdown-menu-header {
+ border-bottom: 1px solid $theme-dark-border-color;
+ }
+ .dropdown-menu-footer {
+ background-color: $theme-dark-card-bg;
+ border-top: 1px solid $theme-dark-border-color;
+ .dropdown-item {
+ border-color: $theme-dark-border-color;
+
+ &:hover {
+ background-color: $theme-dark-card-bg;
+ }
+ }
+ }
+ }
+ }
+ .dropdown-cart {
+ &.empty-cart {
+ &:before {
+ background-color: $theme-dark-body-bg;
+ }
+ }
+ li {
+ color: $white;
+ }
+ .cart-item {
+ color: $theme-dark-body-color;
+ }
+ .dropdown-header {
+ span {
+ color: $white;
+ }
+ }
+ .media {
+ img {
+ background-color: $theme-dark-body-bg;
+ }
+ }
+ .media-heading .cart-item-by {
+ color: $theme-dark-text-muted-color;
+ }
+ }
+ .dropdown-notification {
+ .media-body .media-heading {
+ color: $theme-dark-headings-color;
+ }
+ .notification-text {
+ color: $theme-dark-text-muted-color;
+ }
+ }
+ }
+ }
+
+ &.navbar-static-top {
+ background-color: transparent !important;
+ }
+
+ &[class*='bg-'] {
+ .navbar-nav {
+ .nav-item {
+ .nav-link {
+ background-color: inherit;
+ }
+ }
+ }
+ }
+ }
+
+ //Text color for Blank page with transparent card
+ .blank-page {
+ .card.bg-transparent {
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6 {
+ color: $theme-dark-card-bg;
+ }
+
+ p {
+ color: $theme-dark-body-bg;
+ }
+ }
+ }
+
+ // main menu
+ .main-menu {
+ background-color: $theme-dark-card-bg;
+
+ .shadow-bottom {
+ background: linear-gradient(
+ 180deg,
+ $theme-dark-card-bg 44%,
+ rgba($theme-dark-card-bg, 0.51) 73%,
+ rgba($theme-dark-card-bg, 0)
+ );
+ }
+
+ &:not(.expanded) {
+ .navigation {
+ .sidebar-group-active {
+ > a {
+ background-color: $theme-dark-body-bg;
+ }
+ }
+ }
+ }
+
+ &.menu-dark {
+ .navigation > li.open:not(.menu-item-closing) > a {
+ background-color: $theme-dark-body-bg;
+ }
+ .navigation > li.sidebar-group-active > a {
+ background-color: $theme-dark-body-bg;
+ }
+ }
+
+ .collapse-toggle-icon {
+ color: $primary !important;
+ }
+ }
+
+ // Perfect Scrollbar
+ .ps__thumb-x,
+ .ps__thumb-y {
+ background-color: $theme-dark-body-color;
+ }
+ .ps .ps__rail-x.ps--clicking,
+ .ps .ps__rail-x:focus,
+ .ps .ps__rail-x:hover,
+ .ps .ps__rail-y.ps--clicking,
+ .ps .ps__rail-y:focus,
+ .ps .ps__rail-y:hover {
+ background-color: $theme-dark-border-color;
+ }
+
+ .ps__rail-y.ps--clicking .ps__thumb-y,
+ .ps__rail-y:focus > .ps__thumb-y,
+ .ps__rail-y:hover > .ps__thumb-y {
+ background-color: $theme-dark-body-color;
+ }
+
+ // main menu content
+ .main-menu-content {
+ .navigation-main {
+ background-color: $theme-dark-card-bg;
+
+ .navigation-header {
+ color: $theme-dark-text-muted-color;
+ }
+
+ li {
+ a {
+ color: $theme-dark-headings-color !important;
+ }
+ ul {
+ .open,
+ .sidebar-group-active {
+ > a {
+ background-color: $theme-dark-body-bg;
+ }
+ }
+ }
+ }
+
+ .nav-item {
+ i,
+ svg {
+ color: $theme-dark-headings-color;
+ }
+
+ &.open {
+ > a {
+ background-color: $theme-dark-body-bg !important;
+ }
+ }
+
+ a:after {
+ color: $theme-dark-headings-color;
+ }
+
+ .menu-content {
+ background-color: $theme-dark-card-bg;
+
+ .active {
+ .menu-item {
+ color: $white;
+ }
+ }
+ }
+ }
+
+ .active {
+ .menu-title,
+ i,
+ svg {
+ color: $white;
+ }
+ }
+
+ .sidebar-group-active {
+ .menu-content {
+ background-color: $theme-dark-card-bg;
+
+ .active {
+ z-index: 1;
+
+ a {
+ background-color: transparent;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // menu collapsed active item color
+ .menu-collapsed {
+ .main-menu:not(.expanded) {
+ .navigation-main {
+ li.active {
+ > a {
+ background: $theme-dark-body-bg !important;
+ }
+ }
+ }
+ }
+ }
+
+ /********* COMPONENTS *********/
+ // alerts
+ .alert {
+ .alert-heading,
+ p {
+ color: inherit;
+ }
+ .close {
+ text-shadow: none;
+ }
+ &.alert-dark {
+ .alert-heading,
+ .alert-body,
+ p {
+ color: $gray-600;
+ }
+ &.alert-dismissible .close {
+ color: $gray-600 !important;
+ }
+ }
+ }
+
+ // breadcrumbs
+
+ // Header breadcrumb
+ .content-header-left {
+ .breadcrumbs-top {
+ .content-header-title {
+ color: $theme-dark-headings-color;
+ border-color: $theme-dark-border-color;
+ }
+ }
+ }
+ // Breadcrumb dark style
+ .breadcrumb {
+ .breadcrumb-item {
+ color: $theme-dark-body-color;
+ + .breadcrumb-item::before {
+ color: $theme-dark-body-color;
+ }
+ }
+ &:not([class*='breadcrumb-']) {
+ .breadcrumb-item + .breadcrumb-item {
+ &:before {
+ background-image: url(str-replace(
+ str-replace($chevron-right, 'currentColor', $theme-dark-body-color),
+ '#',
+ '%23'
+ ));
+ }
+ }
+ }
+ }
+
+ // Breadcrumb with Chevron
+ .breadcrumb-chevron {
+ &.breadcrumb {
+ .breadcrumb-item + .breadcrumb-item:before {
+ background-image: url(str-replace(
+ str-replace($chevron-right, 'currentColor', $theme-dark-body-color),
+ '#',
+ '%23'
+ ));
+ }
+ }
+ }
+
+ // collapse
+
+ [class*='collapse-'] .card:not(:last-of-type) {
+ border-color: $theme-dark-border-color;
+ }
+ // for shadow and bordered
+ .collapse-border {
+ .card {
+ border-color: $theme-dark-border-color;
+ }
+ }
+
+ // Collapse shadow
+ .collapse-shadow {
+ box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.24);
+ }
+
+ // margin collapse
+ .collapse-margin {
+ .card {
+ box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.24) !important;
+ }
+ }
+
+ // if there is an anchor tag inside
+ .collapse-icon {
+ .card-header {
+ a {
+ color: $theme-dark-body-color;
+ }
+ }
+ [data-toggle='collapse'] {
+ &:after {
+ background-image: url(str-replace(
+ str-replace($chevron-down, 'currentColor', $theme-dark-body-color),
+ '#',
+ '%23'
+ ));
+ }
+ &:before {
+ background-image: url(str-replace(
+ str-replace($chevron-up, 'currentColor', $theme-dark-body-color),
+ '#',
+ '%23'
+ ));
+ }
+ }
+ }
+
+ // buttons
+ .btn {
+ &:not([class*='btn-']) {
+ color: $theme-dark-body-color;
+ }
+
+ &.btn-dark,
+ &.btn-outline-dark,
+ &.btn-flat-dark {
+ color: $gray-600;
+ }
+
+ &.btn-dark {
+ background-color: $dark !important;
+ }
+
+ &.btn-outline-dark {
+ border-color: $dark;
+ color: $gray-600;
+ &:hover:not(.disabled):not(:disabled) {
+ color: $gray-600;
+ }
+ }
+
+ &.btn-flat-dark {
+ &:active,
+ &:focus {
+ background: $dark;
+ }
+ }
+ }
+
+ .btn-group-toggle {
+ label[class*='btn-outline-'] {
+ color: $primary !important;
+ }
+ }
+
+ // dropdown
+ .dropdown-menu {
+ background-color: $theme-dark-card-bg;
+ box-shadow: 0 4px 24px 0 rgba(0, 0, 0, 0.24);
+
+ .dropdown-header {
+ color: $theme-dark-headings-color;
+ }
+
+ .dropdown-item {
+ color: $theme-dark-body-color;
+ &:hover,
+ &:focus {
+ background: $dropdown-link-hover-bg;
+ color: $dropdown-link-hover-color;
+ }
+ &:active,
+ &.active {
+ color: $dropdown-link-active-color;
+ background-color: $dropdown-link-active-bg;
+ }
+ &.disabled,
+ &:disabled {
+ color: $theme-dark-text-muted-color;
+ }
+ }
+ }
+ .dropdown-divider {
+ border-color: $theme-dark-border-color;
+ }
+
+ // modal
+ .modal {
+ .modal-header,
+ .modal-header[class*='bg-'] {
+ // why removed !important? Not working if added bg-COLOR class with modal-header
+ // background-color: $theme-dark-card-bg !important;
+ background-color: $theme-dark-body-bg;
+ }
+
+ // close button
+ .modal-header .close {
+ text-shadow: none;
+ background-color: $theme-dark-card-bg !important;
+ color: $theme-dark-body-color;
+ box-shadow: 0 3px 8px 0 rgba(11, 10, 25, 0.49) !important;
+ }
+
+ .modal-content,
+ .modal-body,
+ .modal-footer {
+ background-color: $theme-dark-card-bg;
+ border-color: $theme-dark-border-color;
+ }
+ }
+
+ //pagination
+ .pagination {
+ &:not([class*='pagination-']) {
+ .page-item {
+ &.active {
+ background-color: $theme-dark-pagination-bg;
+
+ .page-link {
+ background-color: $primary;
+
+ &:hover {
+ color: $white;
+ }
+ }
+ }
+
+ .page-link {
+ background-color: $theme-dark-pagination-bg;
+ color: $theme-dark-body-color;
+
+ &:hover {
+ color: $primary;
+ }
+ }
+
+ &.prev-item,
+ &.next-item {
+ .page-link:hover {
+ color: $white;
+ }
+ }
+ }
+ }
+
+ &[class*='pagination-'] {
+ .page-item:not(.active) {
+ .page-link {
+ background-color: $theme-dark-pagination-bg;
+ }
+
+ &:not(:hover) {
+ .page-link {
+ color: $white;
+ }
+ }
+ }
+
+ .page-item {
+ &:not(.active) {
+ .page-link:hover {
+ background-color: $theme-dark-pagination-bg;
+ }
+ }
+
+ &.active {
+ background-color: $theme-dark-pagination-bg;
+ }
+ }
+ }
+
+ .page-item {
+ &.prev-item,
+ &.prev {
+ .page-link:before {
+ background-image: url(str-replace(
+ str-replace($chevron-left, 'currentColor', $theme-dark-body-color),
+ '#',
+ '%23'
+ ));
+ }
+ &.disabled {
+ .page-link {
+ &:before {
+ background-image: url(str-replace(
+ str-replace($chevron-left, 'currentColor', $theme-dark-text-muted-color),
+ '#',
+ '%23'
+ ));
+ }
+ }
+ }
+ }
+ &.next-item,
+ &.next {
+ .page-link::after {
+ background-image: url(str-replace(
+ str-replace($chevron-right, 'currentColor', $theme-dark-body-color),
+ '#',
+ '%23'
+ ));
+ }
+ &.disabled {
+ .page-link {
+ &:after {
+ background-image: url(str-replace(
+ str-replace($chevron-right, 'currentColor', $theme-dark-text-muted-color),
+ '#',
+ '%23'
+ ));
+ }
+ }
+ }
+ }
+ &.disabled {
+ .page-link {
+ color: $theme-dark-text-muted-color;
+ }
+ }
+ }
+ }
+
+ // nav tabs
+ .nav-tabs,
+ .nav-pills,
+ .nav-tabs.nav-justified {
+ .nav-item {
+ .nav-link {
+ color: $theme-dark-headings-color;
+ &.active {
+ background-color: $theme-dark-card-bg;
+ color: $primary;
+ }
+
+ &.disabled {
+ color: $theme-dark-text-muted-color;
+ }
+ }
+ }
+ }
+
+ // bordered nav
+ .nav.wrap-border {
+ border-color: $theme-dark-border-color;
+ }
+
+ // nav pills
+ .nav-pills {
+ .nav-item {
+ .nav-link {
+ &.active {
+ color: $white;
+ background-color: $primary;
+ }
+ }
+ }
+ }
+
+ // media
+ .media-bordered {
+ .media:not(:first-child) {
+ border-color: $theme-dark-border-color;
+ }
+ }
+
+ // popover
+ .popover {
+ &[x-placement='top'] {
+ .arrow {
+ &:before {
+ border-top-color: $theme-dark-border-color;
+ }
+ &:after {
+ border-top-color: $theme-dark-card-bg;
+ }
+ }
+ }
+
+ &[x-placement='left'] {
+ .arrow {
+ &:before {
+ border-left-color: $theme-dark-border-color;
+ }
+ &:after {
+ border-left-color: $theme-dark-card-bg;
+ }
+ }
+ }
+
+ &[x-placement='right'] {
+ .arrow {
+ &:before {
+ border-right-color: $theme-dark-border-color;
+ }
+ &:after {
+ border-right-color: $theme-dark-card-bg;
+ }
+ }
+ }
+ .popover-header {
+ color: $white;
+ }
+
+ .popover-body {
+ background-color: $theme-dark-card-bg;
+ color: $theme-dark-body-color;
+ border-color: $theme-dark-border-color !important;
+ }
+ }
+
+ // BS toast
+ .toast {
+ background-color: rgba($theme-dark-card-bg, 0.85);
+ box-shadow: $theme-dark-box-shadow;
+ color: $theme-dark-body-color;
+
+ .toast-header {
+ background-color: $theme-dark-card-bg;
+ color: $theme-dark-body-color;
+
+ .close {
+ background-color: transparent !important;
+ box-shadow: none !important;
+ text-shadow: none;
+ }
+ }
+ }
+
+ // list group
+ .list-group {
+ .list-group-item {
+ &:not([class*='list-group-item-']),
+ &.list-group-item-action {
+ background-color: $theme-dark-card-bg;
+ border-color: $theme-dark-border-color;
+ color: $theme-dark-body-color;
+
+ &:hover,
+ &:focus {
+ background-color: $theme-dark-body-bg;
+ }
+ &.active,
+ &:active {
+ background-color: $primary;
+ color: $white;
+ }
+ }
+
+ &.active {
+ p,
+ small {
+ color: $white;
+ }
+ }
+
+ &.disabled {
+ color: $theme-dark-text-muted-color;
+ }
+ }
+
+ &.list-group-circle .list-group-item:after {
+ background-image: url(str-replace(str-replace($circle, 'currentColor', $theme-dark-body-color), '#', '%23'));
+ }
+ }
+
+ // spinners
+ .spinner-border {
+ border-color: currentColor !important;
+ border-right-color: transparent !important;
+ }
+
+ // avatar
+ .avatar {
+ background-color: $theme-dark-body-bg;
+
+ [class*='avatar-status-'] {
+ border-color: $theme-dark-card-bg;
+ }
+ }
+ .avatar-group {
+ .avatar {
+ img,
+ .avatar-content {
+ box-shadow: 0 0 0 2px $theme-dark-card-bg, inset 0 0 0 1px rgba($theme-dark-card-bg, 0.07);
+ }
+ }
+ }
+
+ // divider
+ .divider {
+ .divider-text {
+ color: $theme-dark-body-color;
+
+ &::before,
+ &::after {
+ border-color: $theme-dark-border-color;
+ }
+ }
+
+ &.divider-dark {
+ .divider-text {
+ &::before,
+ &::after {
+ border-color: $theme-dark-border-color !important;
+ }
+ }
+ }
+ }
+
+ // Timeline
+ .timeline {
+ .timeline-item {
+ border-color: $theme-dark-border-color;
+
+ .timeline-point:not(.timeline-point-indicator) {
+ background-color: $theme-dark-card-bg;
+ }
+ .timeline-event {
+ .timeline-event-time {
+ color: $theme-dark-text-muted-color;
+ }
+ }
+ &:last-of-type:after {
+ background: linear-gradient($theme-dark-border-color, transparent);
+ }
+ }
+ }
+
+ // card
+ .card {
+ background-color: $theme-dark-card-bg;
+ box-shadow: $theme-dark-box-shadow;
+ .card-footer {
+ border-color: $theme-dark-border-color;
+ }
+
+ &.overlay-img-card {
+ .card-img-overlay {
+ span,
+ p,
+ .card-body {
+ color: $white;
+ }
+ }
+ }
+ }
+
+ //--------------- Advance Cards ---------------
+ //---------------------------------------------
+
+ // Developer Meetup Card
+ .card-developer-meetup {
+ .meetup-header .meetup-day {
+ border-right-color: $theme-dark-input-border-color;
+ }
+ }
+
+ // Profile Card
+ .card-profile {
+ .profile-image-wrapper .profile-image {
+ background-color: $theme-dark-body-bg;
+ }
+ }
+
+ // Business Card
+ .business-card {
+ .business-items .business-item {
+ border-color: $theme-dark-border-color;
+ }
+ }
+
+ // App Design Card
+ .card-app-design {
+ .design-planning-wrapper .design-planning {
+ background-color: $theme-dark-body-bg;
+ }
+ }
+
+ //--------------- Statistics Card ---------------
+ //------------------------------------------------
+
+ .card-tiny-line-stats {
+ .apexcharts-series-markers {
+ .apexcharts-marker {
+ stroke: $info;
+ }
+
+ &:last-child {
+ .apexcharts-marker {
+ fill: $theme-dark-card-bg;
+ }
+ }
+ }
+ }
+
+ //-------------- Analytics Cards --------------
+ //---------------------------------------------
+
+ // Revenue Report Card
+ .card-revenue-budget {
+ .revenue-report-wrapper {
+ border-right-color: $theme-dark-border-color;
+ }
+ .budget-wrapper {
+ .apexcharts-series:not(:first-child) {
+ path {
+ stroke: $theme-dark-body-color;
+ }
+ }
+ }
+ }
+
+ // Earnings Card
+ .earnings-card {
+ .apexcharts-canvas .apexcharts-pie {
+ .apexcharts-datalabel-label {
+ fill: $theme-dark-body-color !important;
+ }
+
+ .apexcharts-datalabel-value {
+ fill: $theme-dark-headings-color;
+ }
+ }
+ }
+
+ // Company Table Card
+ .card-company-table {
+ .avatar {
+ background-color: $theme-dark-body-bg;
+ }
+ }
+
+ /********** FORMS **********/
+
+ // input
+ input.form-control,
+ .custom-file-label,
+ textarea.form-control {
+ background-color: $theme-dark-input-bg;
+ color: $theme-dark-body-color;
+
+ &:not(:focus) {
+ border-color: $theme-dark-input-border-color;
+ }
+
+ &::placeholder {
+ color: $theme-dark-input-placeholder-color;
+ }
+
+ &:disabled,
+ &[readonly='readonly'] {
+ opacity: 0.5;
+ }
+ }
+
+ // text area counter
+ .char-textarea {
+ &.active {
+ color: $theme-dark-body-color !important;
+ }
+
+ &.max-limit {
+ color: $danger !important;
+ }
+ }
+
+ // file uploader default
+ .custom-file-label {
+ &:after {
+ background-color: $theme-dark-body-bg;
+ border-left: 1px solid $theme-dark-border-color;
+ color: $theme-dark-body-color;
+ }
+ }
+
+ // custom control like checkbox, radio and switch
+ .custom-control-input {
+ &:not(:checked) {
+ ~ .custom-control-label:before {
+ background-color: $theme-dark-card-bg;
+ border-color: $theme-dark-input-border-color;
+ }
+ }
+ &:disabled {
+ ~ .custom-control-label:before {
+ background-color: $theme-dark-input-disabled-border-color;
+ border-color: $theme-dark-input-disabled-border-color;
+ }
+ }
+ }
+
+ .custom-switch {
+ .custom-control-input:not(:checked) {
+ ~ .custom-control-label:before {
+ background-color: $theme-dark-switch-bg;
+ }
+ }
+ .custom-control-input:disabled {
+ ~ .custom-control-label:before {
+ background-color: $theme-dark-switch-bg-disabled;
+ }
+ }
+ }
+
+ // select
+ select.form-control,
+ .custom-select {
+ background-color: $theme-dark-input-bg;
+ color: $theme-dark-body-color;
+ border-color: $theme-dark-border-color;
+
+ option:checked {
+ background-color: $theme-dark-card-bg;
+ }
+
+ &:disabled {
+ opacity: 0.5;
+ }
+ &:focus {
+ border-color: $primary;
+ }
+ }
+
+ select.form-control {
+ &:not([multiple='multiple']) {
+ background-image: url(str-replace(
+ str-replace($chevron-down, 'currentColor', $theme-dark-body-color),
+ '#',
+ '%23'
+ ));
+ }
+ }
+
+ // Added for override
+ .was-validated .form-control:invalid,
+ .form-control.is-invalid {
+ border-color: $danger !important;
+ }
+
+ .was-validated .form-control:valid,
+ .form-control.is-valid {
+ border-color: $success !important;
+ }
+
+ // form wizard
+ .wizard {
+ .steps {
+ ul {
+ .disabled,
+ .done {
+ a {
+ color: $theme-dark-body-color !important;
+
+ &:hover {
+ color: $theme-dark-body-color;
+ }
+
+ .step {
+ background-color: $theme-dark-body-bg !important;
+ color: $white !important;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // input groups
+ .input-group {
+ .input-group-text {
+ background-color: $theme-dark-input-bg;
+ border-color: $theme-dark-border-color;
+ color: $theme-dark-body-color;
+ }
+
+ &:focus-within {
+ .form-control,
+ .input-group-text {
+ border-color: $primary;
+ box-shadow: none;
+ }
+ }
+ }
+
+ // floating label
+ .form-label-group {
+ & > input:not(:focus):not(:placeholder-shown) ~ label,
+ & > textarea:not(:focus):not(:placeholder-shown) ~ label {
+ color: $theme-dark-body-color !important;
+ }
+ }
+
+ .counter-value {
+ color: white;
+ }
+
+ /********** TABLE **********/
+
+ // table
+ .table {
+ background-color: $theme-dark-table-bg;
+
+ td,
+ th {
+ color: $theme-dark-body-color;
+ border-color: $theme-dark-border-color !important;
+ }
+
+ .thead,
+ tbody {
+ tr:not([class*='table-']) {
+ th,
+ td {
+ border-color: $theme-dark-border-color;
+ color: $theme-dark-body-color;
+
+ code {
+ background-color: $theme-dark-table-row-bg;
+ }
+ }
+ }
+ }
+
+ thead,
+ tfoot {
+ tr {
+ th {
+ border-color: $theme-dark-border-color;
+ background-color: $theme-dark-table-header-bg;
+ color: $theme-dark-headings-color;
+ }
+ }
+ &.thead-dark th {
+ background-color: $white;
+ color: $dark !important;
+ }
+ }
+
+ // if table not light/dark and thead not have dark class
+ &:not(.table-dark):not(.table-light) thead:not(.thead-dark) th,
+ &:not(.table-dark):not(.table-light) tfoot:not(.thead-dark) th {
+ background-color: $theme-dark-table-header-bg;
+ }
+
+ // table-dark style
+ &.table-dark {
+ background-color: $white;
+ &.table-striped tbody tr:nth-of-type(odd) {
+ background-color: rgba($dark, 0.05);
+ td {
+ background-color: inherit;
+ }
+ }
+ td,
+ th {
+ border-color: #f8f9fa !important;
+ color: $dark !important;
+ background-color: $white;
+ .text-white {
+ color: $dark !important;
+ }
+ }
+ }
+ tbody {
+ tr {
+ // for contextual classes
+ &[class*='table-'] {
+ td,
+ th {
+ background-color: unset;
+ }
+ }
+
+ &.table-dark {
+ td,
+ th {
+ color: $white;
+ }
+ }
+
+ &.table-active {
+ td,
+ th {
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+ }
+
+ // bordered table
+ &.table-bordered {
+ border-color: $theme-dark-border-color;
+ }
+
+ // table hover row color
+ &.table-hover {
+ tbody {
+ tr {
+ &:hover {
+ background-color: $theme-dark-table-hover-bg;
+ }
+
+ th,
+ td {
+ background-color: unset;
+ }
+ }
+ }
+ }
+
+ // hover animation
+ &.table-hover-animation tbody tr {
+ background-color: $theme-dark-table-bg;
+ &:hover {
+ box-shadow: $theme-dark-box-shadow;
+ }
+ }
+
+ // table striped
+ &.table-striped {
+ tbody {
+ tr {
+ &:nth-of-type(odd) {
+ background-color: $theme-dark-table-striped-bg;
+ }
+ }
+ }
+ }
+ }
+
+ // datatable
+ .dataTables_wrapper {
+ .dt-buttons {
+ .buttons-copy,
+ .buttons-excel,
+ .buttons-pdf,
+ .buttons-print,
+ .btn-secondary,
+ [class*='buttons-'] {
+ background-color: $theme-dark-body-bg !important;
+ &:active {
+ background-color: $primary !important;
+ color: $white;
+ }
+ }
+ }
+ .dt-button-collection {
+ > div[role='menu'] {
+ box-shadow: $theme-dark-box-shadow;
+ }
+ }
+
+ .table.dataTable {
+ tr {
+ &.group {
+ td {
+ background-color: $theme-dark-table-striped-bg;
+ color: $theme-dark-headings-color;
+ }
+ }
+ }
+
+ // Sorting Icons Change
+ thead {
+ .sorting,
+ .sorting_asc,
+ .sorting_desc {
+ &:before {
+ background-image: url(str-replace(
+ str-replace($chevron-up, 'currentColor', $theme-dark-body-color),
+ '#',
+ '%23'
+ ));
+ }
+ &:after {
+ background-image: url(str-replace(
+ str-replace($chevron-down, 'currentColor', $theme-dark-body-color),
+ '#',
+ '%23'
+ ));
+ }
+ }
+ .sorting {
+ &:before,
+ &:after {
+ opacity: 0.5;
+ }
+ }
+ .sorting_asc {
+ &:before {
+ opacity: 1;
+ }
+ &:after {
+ opacity: 0.5;
+ }
+ }
+ .sorting_desc {
+ &:after {
+ opacity: 1;
+ }
+ &:before {
+ opacity: 0.5;
+ }
+ }
+ }
+ }
+ }
+
+ // agGrid Page Btn
+ .ag-grid-btns {
+ .filter-btn {
+ background-color: transparent !important;
+ }
+ }
+
+ // agGrid Main
+ .aggrid {
+ .ag-input-wrapper input {
+ color: $theme-dark-body-color;
+ }
+ }
+ .aggrid,
+ .ag-header {
+ background-color: $theme-dark-card-bg;
+ color: $theme-dark-body-color;
+ border-color: $theme-dark-border-color;
+
+ .ag-row-hover,
+ .ag-row-selected {
+ background-color: $theme-dark-table-hover-bg !important;
+ }
+
+ .ag-icon {
+ color: $theme-dark-input-border-color;
+ }
+ .ag-header-cell.ag-column-hover {
+ background: transparent !important;
+ }
+
+ .ag-header-cell,
+ .ag-cell,
+ .ag-row,
+ .ag-pinned-left-header,
+ .ag-pinned-left-cols-container,
+ .ag-horizontal-left-spacer,
+ .ag-paging-panel,
+ .ag-floating-filter-input {
+ border-color: $theme-dark-border-color !important;
+ color: $theme-dark-body-color;
+ }
+ .ag-cell.ag-cell-inline-editing {
+ border-color: $theme-dark-border-color;
+ background: $theme-dark-body-bg;
+ height: auto;
+ padding-top: 0;
+ }
+
+ .ag-paging-panel {
+ .ag-paging-button {
+ background-color: $theme-dark-body-bg;
+ }
+ .ag-disabled {
+ background: $theme-dark-card-bg;
+ }
+
+ span[ref='lbTotal'] {
+ background-color: $theme-dark-pagination-bg;
+ color: $theme-dark-body-color !important;
+ }
+ }
+
+ ::-webkit-scrollbar-track {
+ background: $theme-dark-body-bg;
+ }
+
+ ::-webkit-scrollbar-thumb {
+ background: $primary;
+ }
+ }
+
+ /********** PAGES **********/
+
+ // coming soon
+ .getting-started {
+ .clockCard {
+ p {
+ color: $theme-dark-body-color !important;
+ }
+ }
+ }
+
+ // profile page
+ #user-profile {
+ .profile-header {
+ .navbar {
+ background-color: $theme-dark-card-bg;
+ .navbar-toggler {
+ color: $theme-dark-body-color;
+ border-color: $theme-dark-border-color;
+ }
+ }
+ }
+ }
+
+ // Search page
+ .search-bar {
+ .form-control {
+ background-color: $theme-dark-card-bg;
+ }
+ }
+
+ // Blog Edit Page
+ .blog-edit-wrapper {
+ .border {
+ border-color: $theme-dark-border-color !important;
+ }
+ }
+ // Knowledge Base
+ .kb-search-content-info {
+ .kb-search-content {
+ .card-img-top {
+ background-color: #3f4860;
+ }
+ }
+ }
+
+ // list group circle for kb
+ .list-group-circle {
+ .list-group-item:not([class*='list-group-item-']),
+ .list-group-item-action {
+ &:hover,
+ &:focus,
+ &:active {
+ background-color: transparent !important;
+ }
+ }
+ }
+
+ /********** APPLICATIONS **********/
+
+ // App common sidebar and content dark style
+ .content-area-wrapper {
+ border-color: $theme-dark-border-color !important;
+
+ .sidebar {
+ .sidebar-content {
+ background-color: $theme-dark-card-bg !important;
+ }
+ }
+ .app-fixed-search {
+ background-color: $theme-dark-card-bg !important;
+ border-color: $theme-dark-border-color !important;
+ }
+ .content-right {
+ border-color: $theme-dark-border-color !important;
+ }
+ }
+
+ // email application
+ .email-application {
+ .content-area-wrapper {
+ // Email list
+ .email-app-list {
+ .app-action {
+ border-color: $theme-dark-border-color;
+ background-color: $theme-dark-card-bg;
+ .action-right {
+ .list-inline-item {
+ .dropdown-toggle {
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+ }
+
+ .email-user-list {
+ .media {
+ border-color: $theme-dark-border-color;
+ background-color: $theme-dark-card-bg;
+
+ &:hover {
+ box-shadow: 0 3px 10px 0 $theme-dark-card-bg;
+ }
+
+ &.selected-row-bg {
+ background-color: rgba($primary, 0.06);
+ border-color: $theme-dark-border-color;
+ }
+ }
+
+ .media {
+ .user-details,
+ .mail-message {
+ p,
+ .mail-date {
+ color: $theme-dark-text-muted-color;
+ }
+ }
+ }
+
+ .mail-read {
+ background-color: $theme-dark-table-hover-bg;
+ }
+ }
+ }
+
+ // app email details
+ .email-app-details {
+ border-color: $theme-dark-border-color;
+ .email-scroll-area {
+ background-color: $theme-dark-body-bg;
+ }
+
+ .email-detail-header {
+ background-color: $theme-dark-card-bg;
+ border-color: $theme-dark-border-color;
+
+ .email-header-right {
+ .list-inline-item {
+ .dropdown-toggle,
+ .action-icon {
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+ }
+ .email-info-dropup {
+ .dropdown-toggle::after {
+ background-image: url(str-replace(
+ str-replace($chevron-down, 'currentColor', $theme-dark-text-muted-color),
+ '#',
+ '%23'
+ ));
+ }
+ }
+
+ .mail-message-wrapper,
+ .email-detail-head {
+ border-color: $theme-dark-border-color !important;
+ }
+ }
+
+ // Compose mail
+ #compose-mail {
+ .compose-mail-form-field,
+ .ql-toolbar,
+ .ql-container {
+ border-color: $theme-dark-border-color;
+ }
+ label {
+ color: $theme-dark-body-color;
+ }
+ .modal-body {
+ border-bottom-left-radius: $modal-content-border-radius;
+ border-bottom-right-radius: $modal-content-border-radius;
+ }
+ }
+ }
+ }
+
+ // chat application
+ .chat-application {
+ .content-area-wrapper {
+ border-color: $theme-dark-border-color;
+ }
+ // left sidebar
+ .sidebar {
+ .chat-profile-sidebar {
+ background-color: $theme-dark-card-bg;
+ border-color: $theme-dark-border-color;
+ }
+
+ .sidebar-content {
+ border-color: $theme-dark-border-color;
+
+ .chat-fixed-search {
+ border-color: $theme-dark-border-color;
+ }
+
+ .chat-user-list-wrapper {
+ .chat-users-list {
+ li {
+ &:not(.active):hover {
+ background: $theme-dark-body-bg;
+ }
+ .chat-info .card-text,
+ .chat-time {
+ color: $theme-dark-text-muted-color;
+ }
+ &.active {
+ .chat-info .card-text,
+ .chat-time {
+ color: $white;
+ }
+ }
+ img {
+ border-color: $theme-dark-border-color;
+ }
+ }
+ }
+ }
+ }
+ }
+ .avatar-border {
+ img {
+ border-color: $theme-dark-border-color;
+ }
+ }
+
+ // Right side content area
+ .content-right {
+ .chat-app-window {
+ .start-chat-area {
+ background-color: $theme-dark-card-bg;
+
+ .start-chat-icon,
+ .start-chat-text {
+ background: $theme-dark-card-bg;
+ color: $theme-dark-body-color;
+ }
+ }
+ .start-chat-area,
+ .user-chats {
+ background-image: url($chat-bg-dark);
+ background-color: #1e232f;
+ }
+ .user-chats {
+ .divider .divider-text {
+ background: $theme-dark-card-bg;
+ &:before,
+ &:after {
+ border-color: $theme-dark-border-color;
+ }
+ }
+ .avatar img {
+ border-color: $theme-dark-border-color;
+ }
+ }
+ // Active conversation style
+ .active-chat {
+ .chat-left {
+ .chat-content {
+ background-color: $theme-dark-card-bg;
+ p {
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+
+ .chat-content {
+ p {
+ color: $white;
+ }
+ }
+ // Chat form
+ .chat-header .dropdown-toggle {
+ color: $theme-dark-body-color;
+ }
+ .chat-header,
+ .chat-app-form {
+ background-color: $theme-dark-card-bg;
+ border-color: $theme-dark-border-color;
+ }
+ }
+ }
+
+ .user-profile-sidebar {
+ background-color: $theme-dark-card-bg;
+ border-color: $theme-dark-border-color;
+ }
+ }
+ }
+
+ // Chat widget dark style
+ .chat-widget {
+ .user-chats {
+ background-color: $theme-dark-widget-bg !important;
+ }
+ .card-header,
+ .chat-app-form {
+ background-color: $theme-dark-card-bg;
+ }
+ .chat-app-window .user-chats .chat-left .chat-content {
+ background-color: $theme-dark-card-bg !important;
+ color: $theme-dark-body-color !important;
+ }
+ .chat-app-window .user-chats .avatar img {
+ border-color: $theme-dark-body-bg;
+ }
+ }
+
+ // Kanban application
+ .kanban-application {
+ .kanban-wrapper {
+ .kanban-container {
+ .kanban-board {
+ .kanban-board-header {
+ .kanban-title-board {
+ color: $white;
+
+ &:hover,
+ &:focus {
+ background-color: $theme-dark-card-bg;
+ }
+ }
+ }
+ .kanban-item {
+ background-color: $theme-dark-card-bg;
+ .item-dropdown i.dropdown-toggle,
+ .item-dropdown svg.dropdown-toggle {
+ stroke: $white;
+ }
+ .kanban-title-button {
+ color: $theme-dark-body-color;
+ }
+ i,
+ svg {
+ stroke: $theme-dark-body-color;
+ }
+ }
+ }
+ }
+ }
+ .update-item-sidebar {
+ .nav-tabs .nav-item .nav-link,
+ .tab-content .tab-pane {
+ background-color: transparent;
+ }
+ }
+ }
+ .kanban-item.gu-mirror {
+ background-color: $theme-dark-card-bg;
+ }
+
+ // Todo application
+ .todo-application {
+ .content-area-wrapper {
+ .sidebar {
+ .todo-form {
+ .todo-item-action {
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+ .content-right {
+ .todo-task-list-wrapper {
+ background-color: $theme-dark-card-bg !important;
+ border-color: $theme-dark-border-color;
+ }
+ .todo-task-list {
+ .todo-item {
+ &:not(:first-child) {
+ border-color: $theme-dark-border-color;
+ }
+ &.completed {
+ .todo-title {
+ color: $theme-dark-text-muted-color;
+ }
+ }
+ &:hover {
+ box-shadow: $theme-dark-box-shadow;
+ }
+
+ .todo-item-action {
+ .todo-item-favorite:not(.text-warning) {
+ i,
+ svg {
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ .todo-item-action {
+ .close {
+ background-color: transparent !important;
+ }
+ }
+ }
+ .todo-item.gu-mirror {
+ background-color: $theme-dark-card-bg;
+ border-color: $theme-dark-border-color;
+ box-shadow: $theme-dark-box-shadow;
+ &.completed {
+ .todo-title {
+ color: $theme-dark-text-muted-color;
+ }
+ }
+ }
+
+ // E-commerce application
+ .ecommerce-application {
+ .ecommerce-card {
+ .btn-light {
+ background-color: $theme-dark-body-bg !important;
+ color: $white;
+ border-color: transparent;
+ }
+ }
+
+ // main content
+ .content-right,
+ .content-body {
+ // header items
+ .ecommerce-header-items {
+ .result-toggler {
+ .search-results {
+ color: $theme-dark-headings-color;
+ }
+
+ .shop-sidebar-toggler {
+ i,
+ svg {
+ color: $theme-dark-headings-color;
+ }
+ }
+ }
+ }
+
+ // list and grid view
+ .grid-view,
+ .list-view {
+ .ecommerce-card {
+ .card-body {
+ border-color: $theme-dark-border-color;
+ }
+ .item-options {
+ .wishlist {
+ span {
+ color: $headings-color;
+ }
+ }
+
+ .cart {
+ span {
+ color: $white;
+ }
+ }
+ }
+ }
+ }
+ }
+ .grid-view {
+ .item-name a,
+ .item-price {
+ color: $theme-dark-body-color;
+ }
+ }
+
+ // wishlist-items
+ .wishlist-items {
+ .ecommerce-card {
+ .move-cart {
+ .move-to-cart {
+ color: $white;
+ }
+ }
+ }
+ }
+
+ // checkout
+ .product-checkout {
+ .checkout-options {
+ .coupons {
+ input {
+ color: $theme-dark-body-color;
+ &::placeholder {
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+ }
+ }
+ // Ecommerce details
+ .app-ecommerce-details {
+ .item-features,
+ .swiper-responsive-breakpoints.swiper-container .swiper-slide {
+ background-color: $theme-dark-body-bg;
+ }
+ }
+ }
+
+ // file manager app
+ .file-manager-application {
+ .sidebar-file-manager {
+ background-color: $theme-dark-card-bg !important;
+ .jstree {
+ .jstree-container-ul {
+ .jstree-anchor {
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+ .storage-status {
+ i,
+ svg {
+ color: $theme-dark-body-color !important;
+ }
+ }
+
+ .file-manager-title {
+ color: $theme-dark-label-color;
+ }
+
+ &.show {
+ border: 1px solid $theme-dark-border-color !important;
+ }
+ }
+
+ .content-area-wrapper {
+ border: 1px solid $theme-dark-border-color !important;
+ }
+
+ // File Manager App
+ .file-manager-main-content {
+ border: 1px solid $theme-dark-border-color !important;
+
+ .file-manager-app-searchbar {
+ background-color: transparent !important;
+ border-bottom: 1px solid $theme-dark-border-color !important;
+
+ .file-manager-toggler {
+ color: $theme-dark-body-color !important;
+ }
+ }
+
+ .file-manager-content-header,
+ .file-manager-content-body {
+ background-color: $theme-dark-card-bg !important;
+ }
+
+ .file-manager-content-header {
+ border-color: $theme-dark-border-color !important;
+ }
+
+ .file-manager-content-body {
+ .drives {
+ .card {
+ background-color: $theme-dark-table-bg;
+ }
+ }
+
+ .view-container {
+ .file-manager-item {
+ .file-logo-wrapper {
+ background-color: $theme-dark-body-bg !important;
+ }
+ &:not(.selected) {
+ border-color: $theme-dark-border-color !important;
+ }
+ }
+ &:not(.list-view) {
+ .file-manager-item {
+ .file-size,
+ .file-accessed {
+ color: $theme-dark-text-muted-color !important;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ #app-file-manager-info-sidebar {
+ .nav-tabs .nav-link,
+ .tab-content .tab-pane {
+ background-color: transparent;
+ }
+
+ .nav-tabs {
+ .nav-item:not(.active) {
+ .nav-link {
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+ }
+ }
+
+ // calendar
+ .app-calendar {
+ .app-calendar-sidebar {
+ background-color: $theme-dark-card-bg;
+ border-color: $theme-dark-border-color;
+
+ .sidebar-content-title {
+ color: $theme-dark-label-color;
+ }
+ .select-all,
+ .input-filter {
+ ~ label {
+ color: $theme-dark-label-color;
+ }
+ }
+ }
+ .fc {
+ .fc-day-today {
+ background: $theme-dark-body-bg !important;
+ background-color: $theme-dark-body-bg !important;
+ }
+
+ .fc-timegrid {
+ .fc-scrollgrid-section {
+ .fc-col-header-cell,
+ .fc-timegrid-axis,
+ .fc-daygrid-day {
+ background-color: $theme-dark-card-bg;
+ border-color: $theme-dark-border-color;
+ }
+ .fc-day-today {
+ background-color: rgba($color: $gray-100, $alpha: 0.12) !important;
+
+ &.fc-col-header-cell {
+ background-color: $theme-dark-card-bg !important;
+ }
+ }
+ }
+ }
+ .fc-popover {
+ background: $theme-dark-card-bg;
+ border-color: $theme-dark-border-color;
+ }
+ .fc-popover-header {
+ .fc-popover-title,
+ .fc-popover-close {
+ color: $theme-dark-body-color;
+ }
+ }
+ tbody td,
+ thead th {
+ border-color: $theme-dark-border-color;
+ }
+
+ .fc-scrollgrid {
+ border-color: $theme-dark-border-color;
+ }
+
+ .fc-list,
+ th {
+ border-color: $theme-dark-border-color;
+ .fc-list-day-cushion {
+ background: $theme-dark-body-bg;
+ }
+ .fc-list-event:hover td {
+ background-color: $theme-dark-body-bg;
+ }
+ .fc-list-event-time {
+ color: $theme-dark-body-color;
+ }
+ .fc-list-event {
+ td {
+ border-color: $theme-dark-border-color;
+ }
+ }
+ }
+ }
+ }
+
+ // Invoice Application
+ .invoice-list-wrapper {
+ .dataTables_wrapper {
+ .invoice-list-dataTable-header {
+ background-color: $theme-dark-card-bg;
+ border-color: $theme-dark-border-color;
+ }
+ .invoice-data-table {
+ background-color: $theme-dark-card-bg;
+ tbody .selected-row-bg {
+ background-color: $theme-dark-border-color;
+ }
+ td {
+ background-color: inherit;
+ }
+ }
+ }
+ }
+ .invoice-edit,
+ .invoice-add {
+ .invoice-preview-card {
+ .invoice-product-details {
+ background-color: $theme-dark-body-bg;
+ .product-details-border {
+ background-color: $theme-dark-card-bg;
+ border-color: $theme-dark-border-color;
+ }
+ }
+ }
+ }
+ .invoice-print {
+ .form-control {
+ background-color: $theme-dark-card-bg;
+ }
+ }
+
+ // Users Application
+ .app-user-view {
+ .plan-card {
+ border-color: $primary !important;
+ }
+ }
+ .app-user-edit {
+ .form-control.error {
+ border-color: $danger !important;
+ }
+ }
+
+ /********** CUSTOMIZER **********/
+
+ .customizer {
+ background-color: $theme-dark-card-bg;
+
+ .customizer-close {
+ i,
+ svg {
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+
+ .footer-fixed {
+ .footer {
+ background-color: $theme-dark-card-bg;
+ }
+ }
+
+ /********** HORIZONTAL LAYOUT **********/
+ .horizontal-layout {
+ &.navbar-sticky .horizontal-menu-wrapper .navbar-horizontal.header-navbar.fixed-top {
+ box-shadow: 0 4px 24px 0 rgba($black, 0.75) !important;
+ }
+ .horizontal-menu-wrapper {
+ background: linear-gradient(
+ to bottom,
+ rgba(37, 43, 71, 0.76) 44%,
+ rgba(56, 53, 53, 0.46) 73%,
+ rgba($white, 0) 100%
+ ) !important;
+ .header-navbar {
+ background: $theme-dark-card-bg !important;
+ &.navbar-shadow {
+ box-shadow: 0 4px 24px 0 rgba($black, 0.75);
+ }
+ &.navbar-horizontal {
+ ul#main-menu-navigation > li:hover:not(.active) > a {
+ background: $theme-dark-body-bg;
+ }
+
+ .active {
+ .nav-link {
+ &.dropdown-toggle::after {
+ background-image: url(str-replace(str-replace($chevron-down, 'currentColor', $white), '#', '%23'));
+ }
+ }
+ }
+
+ .nav-link {
+ &.dropdown-toggle::after {
+ background-image: url(str-replace(
+ str-replace($chevron-down, 'currentColor', $theme-dark-body-color),
+ '#',
+ '%23'
+ ));
+ }
+ }
+ }
+ }
+ }
+ .main-menu-content {
+ .navbar-nav {
+ .dropdown-submenu {
+ &.show {
+ background-color: $theme-dark-card-bg !important;
+ color: $theme-dark-body-color;
+ }
+ }
+ .dropdown-menu {
+ a {
+ &:hover {
+ color: $theme-dark-headings-color !important;
+ }
+ }
+ .disabled a {
+ color: $theme-dark-text-muted-color;
+ }
+ .dropdown-item {
+ color: $theme-dark-headings-color;
+ }
+ .dropdown-toggle {
+ &::after {
+ background-image: url(str-replace(
+ str-replace($chevron-right, 'currentColor', $theme-dark-body-color),
+ '#',
+ '%23'
+ ));
+ }
+ &:hover,
+ &:active {
+ &::after {
+ background-image: url(str-replace(str-replace($chevron-right, 'currentColor', $white), '#', '%23'));
+ }
+ }
+ }
+ }
+
+ > li.active {
+ > a {
+ > i,
+ > svg {
+ color: $white !important;
+ }
+ }
+
+ .dropdown-menu {
+ li.active > a {
+ background: $theme-dark-body-bg !important;
+ color: $theme-dark-body-color;
+ &:hover {
+ color: $primary !important;
+ }
+ }
+ }
+
+ .dropdown-menu {
+ li.open.active {
+ > a {
+ color: $theme-dark-body-color !important;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/base/themes/semi-dark-layout.scss b/src/@core/scss/base/themes/semi-dark-layout.scss
new file mode 100644
index 00000000..982ad29d
--- /dev/null
+++ b/src/@core/scss/base/themes/semi-dark-layout.scss
@@ -0,0 +1,109 @@
+// ================================================================================================
+// File Name: semi-dark-layout.scss
+// Description: SCSS file for semi dark layout.
+// ----------------------------------------------------------------------------------------------
+// Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
+// Author: PIXINVENT
+// Author URL: http://www.themeforest.net/user/pixinvent
+// ================================================================================================
+
+@import '../bootstrap-extended/include'; // Bootstrap includes
+@import '../components/include'; // Components includes
+
+.semi-dark-layout {
+ /************ Main Menu **************/
+
+ // main menu
+ .main-menu {
+ background-color: $theme-dark-card-bg;
+ .shadow-bottom {
+ background: linear-gradient(
+ 180deg,
+ $theme-dark-card-bg 44%,
+ rgba($theme-dark-card-bg, 0.51) 73%,
+ rgba($theme-dark-card-bg, 0)
+ );
+ }
+ &:not(.expanded) {
+ .navigation {
+ .sidebar-group-active {
+ a {
+ background-color: $theme-dark-body-bg;
+ }
+ }
+ }
+ }
+ }
+
+ // main menu content
+ .main-menu-content {
+ .navigation-main {
+ background-color: $theme-dark-card-bg;
+ .navigation-header {
+ color: $theme-dark-text-muted-color;
+ }
+ .nav-item {
+ a {
+ color: $theme-dark-body-color;
+ }
+ &.open {
+ a {
+ background-color: $theme-dark-body-bg;
+ }
+ }
+ a:after,
+ a {
+ color: $theme-dark-body-color;
+ }
+ .menu-content {
+ background-color: $theme-dark-card-bg;
+ .active {
+ .menu-item {
+ color: $white;
+ }
+ }
+ li:not(.active) {
+ a {
+ background-color: $theme-dark-card-bg;
+ }
+ }
+ }
+ }
+ .active {
+ .menu-title,
+ i {
+ color: $white;
+ }
+ }
+ .sidebar-group-active {
+ a {
+ background: $theme-dark-card-bg;
+ border-radius: 4px;
+ }
+ .menu-content {
+ background-color: $theme-dark-card-bg;
+ .active {
+ z-index: 1;
+ a {
+ background-color: transparent;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // menu collapsed active item color
+ .menu-collapsed {
+ .main-menu:not(.expanded) {
+ .navigation-main {
+ li.active {
+ > a {
+ background: $theme-dark-body-bg !important;
+ color: $white !important;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/core.scss b/src/@core/scss/core.scss
new file mode 100644
index 00000000..6ed6be04
--- /dev/null
+++ b/src/@core/scss/core.scss
@@ -0,0 +1,22 @@
+// Base Styles
+@import 'base/bootstrap';
+@import 'base/bootstrap-extended';
+@import 'base/colors';
+@import 'base/components';
+
+// Template Themes
+@import 'base/themes/dark-layout.scss';
+@import 'base/themes/semi-dark-layout.scss';
+
+// BSV
+$b-table-sort-icon-bg-not-sorted: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='14px' height='26px' viewBox='0 0 14 26' version='1.1'%3E%3Ctitle%3Earrows%3C/title%3E%3Cg id='Page-1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg id='Artboard' transform='translate(-257.000000, -561.000000)' stroke='%23C6C4D0' stroke-width='2'%3E%3Cg id='arrows' transform='translate(258.000000, 562.000000)'%3E%3Cg id='chevron-down' transform='translate(0.000000, 18.000000)'%3E%3Cpolyline id='Path' points='0 0 6 6 12 0'/%3E%3C/g%3E%3Cg id='chevron-up'%3E%3Cpolyline id='Path' points='12 6 6 0 0 6'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
+$b-table-sort-icon-bg-ascending: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='14px' height='26px' viewBox='0 0 14 26' version='1.1'%3E%3Ctitle%3Eactive-up%3C/title%3E%3Cg id='Page-1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg id='Artboard' transform='translate(-197.000000, -561.000000)' stroke-width='2'%3E%3Cg id='active-up' transform='translate(198.000000, 562.000000)'%3E%3Cg id='chevron-down' transform='translate(0.000000, 18.000000)' stroke='%23C6C4D0'%3E%3Cpolyline id='Path' points='0 0 6 6 12 0'/%3E%3C/g%3E%3Cg id='chevron-up' stroke='%235E5873'%3E%3Cpolyline id='Path' points='12 6 6 0 0 6'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
+$b-table-sort-icon-bg-descending: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='14px' height='26px' viewBox='0 0 14 26' version='1.1'%3E%3Ctitle%3Eactive-down%3C/title%3E%3Cg id='Page-1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg id='Artboard' transform='translate(-227.000000, -561.000000)' stroke-width='2'%3E%3Cg id='active-down' transform='translate(228.000000, 562.000000)'%3E%3Cg id='chevron-down' transform='translate(0.000000, 18.000000)' stroke='%235E5873'%3E%3Cpolyline id='Path' points='0 0 6 6 12 0'/%3E%3C/g%3E%3Cg id='chevron-up' stroke='%23C6C4D0'%3E%3Cpolyline id='Path' points='12 6 6 0 0 6'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
+
+$b-table-sort-icon-bg-dark-not-sorted: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='14px' height='26px' viewBox='0 0 14 26' version='1.1'%3E%3Ctitle%3Earrow-dark%3C/title%3E%3Cg id='Page-1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg id='Artboard' transform='translate(-259.000000, -621.000000)' stroke='%23747A88' stroke-width='2'%3E%3Cg id='arrow-dark' transform='translate(260.000000, 622.000000)'%3E%3Cg id='chevron-down' transform='translate(0.000000, 18.000000)'%3E%3Cpolyline id='Path' points='0 0 6 6 12 0'/%3E%3C/g%3E%3Cg id='chevron-up'%3E%3Cpolyline id='Path' points='12 6 6 0 0 6'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
+$b-table-sort-icon-bg-dark-ascending: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='14px' height='26px' viewBox='0 0 14 26' version='1.1'%3E%3Ctitle%3Eactive-up-dark%3C/title%3E%3Cg id='Page-1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg id='Artboard' transform='translate(-199.000000, -621.000000)' stroke-width='2'%3E%3Cg id='active-up-dark' transform='translate(200.000000, 622.000000)'%3E%3Cg id='chevron-down' transform='translate(0.000000, 18.000000)' stroke='%23747A88'%3E%3Cpolyline id='Path' points='0 0 6 6 12 0'/%3E%3C/g%3E%3Cg id='chevron-up' stroke='%23B4B7BC'%3E%3Cpolyline id='Path' points='12 6 6 0 0 6'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
+$b-table-sort-icon-bg-dark-descending: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='14px' height='26px' viewBox='0 0 14 26' version='1.1'%3E%3Ctitle%3Eactive-dow-dark%3C/title%3E%3Cg id='Page-1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg id='Artboard' transform='translate(-229.000000, -621.000000)' stroke-width='2'%3E%3Cg id='active-dow-dark' transform='translate(230.000000, 622.000000)'%3E%3Cg id='chevron-down' transform='translate(0.000000, 18.000000)' stroke='%23B4B7BC'%3E%3Cpolyline id='Path' points='0 0 6 6 12 0'/%3E%3C/g%3E%3Cg id='chevron-up' stroke='%23747A88'%3E%3Cpolyline id='Path' points='12 6 6 0 0 6'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
+@import '~bootstrap-vue/src/index.scss';
+
+// Vue Specific
+@import 'vue/index';
diff --git a/src/@core/scss/vue/_animation.scss b/src/@core/scss/vue/_animation.scss
new file mode 100644
index 00000000..e02a2fe2
--- /dev/null
+++ b/src/@core/scss/vue/_animation.scss
@@ -0,0 +1,40 @@
+// animation for tab components
+@keyframes tab-panel-slide-in {
+ 0% {
+ opacity: 0;
+ transform: translateX(100%);
+ }
+ 100% {
+ opacity: 1;
+ transform: translateX(0%);
+ }
+}
+
+@keyframes tab-panel-slide-up {
+ 0% {
+ opacity: 0;
+ transform: translateY(100%);
+ }
+ 100% {
+ opacity: 1;
+ transform: translateY(0%);
+ }
+}
+
+@keyframes rubberBand {
+ from {
+ transform: scale3d(1, 1, 1);
+ }
+ 30% {
+ transform: scale3d(1.25, 0.75, 1);
+ }
+ 50% {
+ transform: scale3d(1.15, 0.85, 1);
+ }
+ 75% {
+ transform: scale3d(1.05, 0.95, 1);
+ }
+ to {
+ transform: scale3d(1, 1, 1);
+ }
+}
diff --git a/src/@core/scss/vue/_base-extended.scss b/src/@core/scss/vue/_base-extended.scss
new file mode 100644
index 00000000..31c1c752
--- /dev/null
+++ b/src/@core/scss/vue/_base-extended.scss
@@ -0,0 +1,55 @@
+// Disable overflow x to mitigate the horizontal scrollbar while transiting between routes
+body {
+ overflow-x: hidden;
+}
+
+// ------------------------------------------------
+// Vertical Menu
+// ------------------------------------------------
+
+.nav-item.has-sub {
+ & & li svg {
+ display: none;
+ }
+}
+
+// Navbar Badge Position
+.header-navbar .navbar-container ul.navbar-nav li.dropdown-cart .badge.badge-up,
+.header-navbar .navbar-container ul.navbar-nav li.dropdown-notification .badge.badge-up {
+ right: -9px;
+}
+
+// Scrollbar style for group which have scrollbar
+.horizontal-menu {
+ .horizontal-menu-wrapper {
+ .navbar-horizontal {
+ ul.dropdown-menu {
+ &::-webkit-scrollbar {
+ width: 5px;
+ height: 5px;
+ }
+
+ &::-webkit-scrollbar-thumb {
+ background: $gray-500;
+ border-radius: 20px;
+ }
+
+ &::-webkit-scrollbar-track {
+ background: $gray-300;
+ border-radius: 30px;
+ }
+ }
+ }
+ }
+}
+
+// Fix: Navbar color in dark horizontal layout
+.dark-layout {
+ .horizontal-layout {
+ &.navbar-sticky {
+ .navbar.header-navbar {
+ box-shadow: none;
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/vue/_dark-layout.scss b/src/@core/scss/vue/_dark-layout.scss
new file mode 100644
index 00000000..e025ab6d
--- /dev/null
+++ b/src/@core/scss/vue/_dark-layout.scss
@@ -0,0 +1,429 @@
+// Core variables and mixins
+@import '~@core/scss/base/bootstrap-extended/include';
+@import '~@core/scss/base/core/colors/palette-variables.scss';
+
+body {
+ &.dark-layout {
+ // ------------------------------------------------
+ // Avatar Component
+ // ------------------------------------------------
+
+ .b-avatar {
+ &.badge-secondary {
+ background-color: $theme-dark-body-bg;
+ }
+ .b-avatar-text {
+ span {
+ color: $white;
+ }
+ }
+ .avatar-icon {
+ color: $white;
+ }
+
+ &.avatar-border-2 {
+ img {
+ border-color: $theme-dark-border-color;
+ }
+ }
+ }
+
+ // avatar group
+ .b-avatar-group {
+ .b-avatar-group-inner {
+ .b-avatar {
+ box-shadow: 0 0 0 2px $theme-dark-card-bg, inset 0 0 0 1px rgba(40, 48, 70, 0.07);
+ }
+ }
+ }
+
+ // ------------------------------------------------
+ // Badge
+ // ------------------------------------------------
+ .badge {
+ color: $white;
+ }
+
+ // ------------------------------------------------
+ // Navbar
+ // ------------------------------------------------
+ .header-navbar {
+ &.navbar-light {
+ .navbar-brand {
+ color: $white;
+ }
+ }
+ }
+
+ // ------------------------------------------------
+ // Aspect
+ // ------------------------------------------------
+ .b-aspect {
+ border-color: $theme-dark-border-color;
+ }
+
+ // ------------------------------------------------
+ // Popover
+ // ------------------------------------------------
+ .popover.b-popover {
+ //popover top position
+ &.bs-popover-top {
+ .arrow {
+ &::before {
+ border-top-color: $theme-dark-border-color;
+ }
+ &::after {
+ border-top-color: $theme-dark-card-bg;
+ }
+ }
+ }
+ //popover left position
+ &.bs-popover-left {
+ .arrow {
+ &::before {
+ border-left-color: $theme-dark-border-color;
+ }
+ &::after {
+ border-left-color: $theme-dark-card-bg;
+ }
+ }
+ }
+ //popover right position
+ &.bs-popover-right {
+ .arrow {
+ &::before {
+ border-right-color: $theme-dark-border-color;
+ }
+ &::after {
+ border-right-color: $theme-dark-card-bg;
+ }
+ }
+ }
+ }
+
+ // ------------------------------------------------
+ // Range
+ // ------------------------------------------------
+ .custom-range {
+ background-color: $theme-dark-input-bg;
+ border-color: $theme-dark-border-color;
+ &:focus {
+ background-color: $theme-dark-input-bg;
+ border-color: $primary;
+ }
+ }
+
+ // ------------------------------------------------
+ // Modal
+ // ------------------------------------------------
+ .modal-content {
+ .modal-header {
+ .close {
+ color: $white;
+ }
+ }
+ .modal-body {
+ color: $white;
+ }
+ }
+
+ // ------------------------------------------------
+ // Switch
+ // ------------------------------------------------
+ .custom-switch.switch-lg,
+ .custom-switch.switch-md {
+ .custom-control-label::before {
+ background-color: $theme-dark-body-bg;
+ }
+ }
+
+ // ------------------------------------------------
+ // Pagination
+ // ------------------------------------------------
+ .pagination {
+ .page-item {
+ &.disabled {
+ .page-link {
+ // background-color: ;
+ color: $theme-dark-text-muted-color !important;
+ }
+ }
+ }
+ }
+
+ // ------------------------------------------------
+ // Toast
+ // ------------------------------------------------
+ .b-toast {
+ .toast {
+ background-color: rgba($theme-dark-body-bg, 0.85);
+ color: $theme-dark-body-color;
+ }
+ }
+
+ // ------------------------------------------------
+ // Calendar
+ // ------------------------------------------------
+ .b-calendar-header {
+ output {
+ background: $theme-dark-body-bg;
+ border-color: $theme-dark-border-color;
+ color: $theme-dark-body-color;
+ }
+ }
+ .b-calendar-grid {
+ &.form-control {
+ background: $theme-dark-body-bg;
+ border-color: $theme-dark-border-color;
+ .b-calendar-grid-caption {
+ color: $theme-dark-body-color;
+ }
+ .small {
+ background: $theme-dark-body-bg;
+ }
+ .bg-light {
+ background-color: $theme-dark-border-color !important;
+ }
+ .table-info {
+ span {
+ color: $black !important;
+ }
+ }
+ }
+ // hover color in dark
+ .b-calendar-grid-body {
+ .col:not(.table-info) {
+ span.btn.rounded-circle {
+ &:hover {
+ background-color: $theme-dark-card-bg;
+ }
+ }
+ }
+ }
+ // btm light
+ .btn-light {
+ background-color: $theme-dark-card-bg;
+ border-color: $theme-dark-border-color;
+ color: $theme-dark-body-color;
+ }
+ // hover color
+ .table-primary,
+ .table-primary > th,
+ .table-primary > td {
+ .btn-outline-light {
+ &:hover {
+ background-color: $theme-dark-body-bg !important;
+ }
+ }
+ }
+
+ // ------------------------------------------------
+ // Table
+ // ------------------------------------------------
+
+ .table.b-table {
+ thead,
+ tfoot {
+ > tr {
+ > [aria-sort='none'] {
+ .dark-layout & {
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='14px' height='26px' viewBox='0 0 14 26' version='1.1'%3E%3Ctitle%3Earrow-dark%3C/title%3E%3Cg id='Page-1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg id='Artboard' transform='translate(-259.000000, -621.000000)' stroke='%23747A88' stroke-width='2'%3E%3Cg id='arrow-dark' transform='translate(260.000000, 622.000000)'%3E%3Cg id='chevron-down' transform='translate(0.000000, 18.000000)'%3E%3Cpolyline id='Path' points='0 0 6 6 12 0'/%3E%3C/g%3E%3Cg id='chevron-up'%3E%3Cpolyline id='Path' points='12 6 6 0 0 6'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
+ }
+ }
+
+ > [aria-sort='ascending'] {
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='14px' height='26px' viewBox='0 0 14 26' version='1.1'%3E%3Ctitle%3Eactive-up-dark%3C/title%3E%3Cg id='Page-1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg id='Artboard' transform='translate(-199.000000, -621.000000)' stroke-width='2'%3E%3Cg id='active-up-dark' transform='translate(200.000000, 622.000000)'%3E%3Cg id='chevron-down' transform='translate(0.000000, 18.000000)' stroke='%23747A88'%3E%3Cpolyline id='Path' points='0 0 6 6 12 0'/%3E%3C/g%3E%3Cg id='chevron-up' stroke='%23B4B7BC'%3E%3Cpolyline id='Path' points='12 6 6 0 0 6'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
+ }
+
+ > [aria-sort='descending'] {
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='14px' height='26px' viewBox='0 0 14 26' version='1.1'%3E%3Ctitle%3Eactive-dow-dark%3C/title%3E%3Cg id='Page-1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg id='Artboard' transform='translate(-229.000000, -621.000000)' stroke-width='2'%3E%3Cg id='active-dow-dark' transform='translate(230.000000, 622.000000)'%3E%3Cg id='chevron-down' transform='translate(0.000000, 18.000000)' stroke='%23B4B7BC'%3E%3Cpolyline id='Path' points='0 0 6 6 12 0'/%3E%3C/g%3E%3Cg id='chevron-up' stroke='%23747A88'%3E%3Cpolyline id='Path' points='12 6 6 0 0 6'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
+ }
+ }
+ }
+ }
+
+ @each $color_name, $color in $colors {
+ @each $color_type, $color_value in $color {
+ @if $color_type== 'base' {
+ // table only for dark
+ .b-table {
+ .table-#{$color_name} {
+ color: $body-color !important;
+ td {
+ color: $body-color !important;
+ }
+ }
+ &.table-hover tbody tr th.table-#{$color_name},
+ &.table-hover tbody tr td.table-#{$color_name} {
+ background-color: rgba($color_value, 0.3);
+ color: $white !important;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // ------------------------------------------------
+ // Time
+ // ------------------------------------------------
+ .b-time {
+ .b-time-header {
+ .form-control {
+ background-color: $theme-dark-input-bg;
+ }
+ }
+ }
+ .b-time[aria-disabled='true'] output,
+ .b-time[aria-readonly='true'] output,
+ .b-time output.disabled {
+ background-color: $theme-dark-card-bg;
+ }
+
+ // ------------------------------------------------
+ // Spin Button
+ // ------------------------------------------------
+ .b-form-spinbutton {
+ &.form-control {
+ background-color: $theme-dark-input-bg;
+ border-color: $theme-dark-input-border-color;
+ color: $theme-dark-body-color;
+ svg {
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+
+ // ------------------------------------------------
+ // Rating
+ // ------------------------------------------------
+ .b-rating {
+ &.form-control {
+ background-color: $theme-dark-input-bg;
+ border-color: $theme-dark-input-border-color;
+ color: $theme-dark-body-color;
+ }
+ &.disabled,
+ &:disabled {
+ background-color: $theme-dark-input-disabled-bg;
+ }
+ }
+
+ // ------------------------------------------------
+ // Date Picker
+ // ------------------------------------------------
+ .b-form-datepicker,
+ .b-form-timepicker {
+ &.form-control {
+ background-color: $theme-dark-input-bg;
+ border-color: $theme-dark-input-border-color;
+ }
+ &.is-valid {
+ border-color: $success;
+ }
+ &.is-invalid {
+ border-color: $danger;
+ }
+ }
+
+ // ------------------------------------------------
+ // Time Picker
+ // ------------------------------------------------
+ .b-time-header {
+ output {
+ border-color: $theme-dark-border-color;
+ bdi {
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+
+ // ------------------------------------------------
+ // Tag
+ // ------------------------------------------------
+ .b-form-tags {
+ &.form-control {
+ background-color: $theme-dark-input-bg;
+ border-color: $theme-dark-input-border-color;
+ color: $theme-dark-body-color;
+ box-shadow: none;
+ .b-form-tags-list {
+ .b-form-tag {
+ .b-form-tag-remove {
+ background-color: transparent !important;
+ box-shadow: none !important;
+ }
+ }
+ }
+ }
+ }
+ .b-form-tags-input {
+ color: $theme-dark-body-color;
+ }
+
+ // ------------------------------------------------
+ // Checkbox
+ // ------------------------------------------------
+ .was-validated .custom-control-input:invalid ~ .custom-control-label::before,
+ .custom-control-input.is-invalid ~ .custom-control-label::before {
+ border-color: $danger !important;
+ }
+ .was-validated .custom-control-input:valid ~ .custom-control-label::before,
+ .custom-control-input.is-valid ~ .custom-control-label::before {
+ border-color: $success !important;
+ }
+
+ // ------------------------------------------------
+ // Select
+ // ------------------------------------------------
+ .was-validated .custom-select:valid,
+ .custom-select.is-valid {
+ border-color: $success;
+ }
+ .was-validated .custom-select:invalid,
+ .custom-select.is-invalid {
+ border-color: $danger;
+ }
+
+ // ------------------------------------------------
+ // Code Preview
+ // ------------------------------------------------
+ pre {
+ color: $theme-dark-body-color;
+ }
+
+ // ------------------------------------------------
+ // sidebar
+ // ------------------------------------------------
+
+ .b-sidebar {
+ // Handle light variant of sidebar for dark
+ &.bg-white {
+ background-color: $theme-dark-card-bg !important;
+ }
+
+ // Add dark bg for header (Used in Apps)
+ .b-sidebar-body {
+ .content-sidebar-header {
+ background-color: $theme-dark-body-bg;
+ }
+ }
+ }
+
+ .horizontal-menu {
+ .horizontal-menu-wrapper {
+ .navbar-horizontal {
+ ul.dropdown-menu {
+ &::-webkit-scrollbar-thumb {
+ background: $theme-dark-body-bg;
+ }
+
+ &::-webkit-scrollbar-track {
+ background: $theme-dark-border-color;
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/vue/_index.scss b/src/@core/scss/vue/_index.scss
new file mode 100644
index 00000000..1720d127
--- /dev/null
+++ b/src/@core/scss/vue/_index.scss
@@ -0,0 +1,15 @@
+@import 'animation';
+
+// Base Extended (General styles which are not added 'base styles')
+@import 'base-extended';
+
+@import 'dark-layout';
+
+@import 'misc';
+
+@import 'rtl';
+
+@import 'transitions';
+
+// Bootstrap Vue (Style which are not covered in Base style or extra BSV styles)
+@import 'bootstrap-vue/index';
diff --git a/src/@core/scss/vue/_misc.scss b/src/@core/scss/vue/_misc.scss
new file mode 100644
index 00000000..fa9f1bc0
--- /dev/null
+++ b/src/@core/scss/vue/_misc.scss
@@ -0,0 +1,23 @@
+// Apply BSV validation style to extensions
+.form-group {
+ &.is-invalid {
+ // Vue Select
+ .v-select {
+ .vs__dropdown-toggle {
+ border-color: $danger;
+ }
+ }
+
+ // Flatpickr
+ .flatpickr-input {
+ border-color: $danger;
+ }
+ }
+}
+
+// Fix Tooltip positioning issue
+// https://github.com/bootstrap-vue/bootstrap-vue/issues/1732
+// .fix-tooltip-position-top {
+.tooltip {
+ top: 0;
+}
diff --git a/src/@core/scss/vue/_rtl.scss b/src/@core/scss/vue/_rtl.scss
new file mode 100644
index 00000000..0b783652
--- /dev/null
+++ b/src/@core/scss/vue/_rtl.scss
@@ -0,0 +1,161 @@
+@import '~@core/scss/base/bootstrap-extended/include';
+
+/*! rtl:begin:ignore */
+[dir='rtl'] {
+ // Disable x Scrolling in Perfect scrollbar
+ body .ps__rail-y {
+ right: auto !important;
+ left: 1px !important;
+ }
+
+ // Flatpickr month navigation arrow
+ .flatpickr-prev-month,
+ .flatpickr-next-month {
+ svg {
+ transform: rotate(180deg);
+ }
+ }
+
+ // Faq page and page pricing
+ .faq-navigation,
+ .pricing-free-trial {
+ .pricing-trial-img,
+ img {
+ transform: scaleX(-1);
+ }
+ }
+
+ // aspect
+ .b-aspect {
+ .b-aspect-sizer {
+ flex-grow: 0 !important;
+ }
+ }
+
+ // Carousel
+ .carousel-control-prev-icon,
+ .carousel-control-next-icon {
+ transform: rotate(180deg);
+ }
+
+ // Swiper Cube effect fix
+ .swiper-container-cube.swiper-container-rtl {
+ .swiper-slide {
+ transform-origin: 100% 0 !important;
+ }
+ }
+
+ // RTL Overrides
+ .swiper-container-rtl {
+ .swiper-button-prev {
+ right: 10px !important;
+ left: auto !important;
+ }
+ .swiper-button-next {
+ left: 10px !important;
+ right: auto !important;
+ }
+ }
+
+ // .swiper-container {
+ // }
+
+ // dropdown block
+ .dropdown {
+ .btn-block,
+ .btn-block + .dropdown-toggle-split {
+ + .dropdown-menu {
+ left: 0 !important;
+ }
+ }
+ }
+
+ // pagination
+ .pagination .page-item.next-item .page-link,
+ .pagination .page-item .page-link {
+ svg {
+ transform: rotate(180deg);
+ }
+ }
+
+ // popover
+ .popover {
+ right: auto !important;
+ }
+
+ // progress
+ .progress-bar-animated {
+ animation: progress-bar-stripes-rtl 40s linear infinite;
+ }
+
+ // time
+ .b-time {
+ .b-time-ampm {
+ margin-left: 0.5rem;
+ margin-right: 0;
+ }
+ }
+ .b-form-timepicker {
+ .dropdown-menu {
+ // left: 0 !important;
+ right: 100%;
+ .b-time {
+ .b-time-ampm {
+ margin-right: 0.5rem;
+ margin-left: 0;
+ }
+ }
+ }
+ }
+ .input-group {
+ .input-group-append {
+ .b-form-timepicker {
+ .dropdown-menu {
+ left: 100% !important;
+ right: auto;
+ }
+ }
+ }
+ }
+
+ // textarea
+ textarea {
+ overflow-x: hidden;
+ }
+
+ // ------------------------------------------------
+ // App Calendar
+ // ------------------------------------------------
+ // Reset Chevrons for next/previous month
+ .app-calendar {
+ .fc-header-toolbar {
+ .fc-prev-button,
+ .fc-next-button {
+ transform: rotate(180deg);
+ }
+ }
+ }
+
+ // Fix Calendar UI
+ .fc-direction-rtl .fc-scroller-harness > .fc-scroller {
+ direction: rtl !important;
+ }
+
+ .fc .fc-toolbar .fc-button-group {
+ .fc-dayGridMonth-button:first-child {
+ border-top-left-radius: $border-radius !important;
+ border-bottom-left-radius: $border-radius !important;
+ border-top-right-radius: 0 !important;
+ border-bottom-right-radius: 0 !important;
+ }
+
+ .fc-listMonth-button:last-child {
+ border-top-right-radius: $border-radius !important;
+ border-bottom-right-radius: $border-radius !important;
+ border-top-left-radius: 0 !important;
+ border-bottom-left-radius: 0 !important;
+ }
+ }
+}
+
+/*! rtl:end:ignore */
diff --git a/src/@core/scss/vue/_transitions.scss b/src/@core/scss/vue/_transitions.scss
new file mode 100644
index 00000000..91d921c9
--- /dev/null
+++ b/src/@core/scss/vue/_transitions.scss
@@ -0,0 +1,152 @@
+// ///////////////////////////////////////////////
+// Zoom Fade
+// ///////////////////////////////////////////////
+.zoom-fade-enter-active,
+.zoom-fade-leave-active {
+ transition: transform 0.35s, opacity 0.28s ease-in-out;
+}
+.zoom-fade-enter {
+ transform: scale(0.97);
+ opacity: 0;
+}
+
+.zoom-fade-leave-to {
+ transform: scale(1.03);
+ opacity: 0;
+}
+
+// ///////////////////////////////////////////////
+// Fade Regular
+// ///////////////////////////////////////////////
+.fade-enter-active,
+.fade-leave-active {
+ transition: opacity 0.28s ease-in-out;
+}
+
+.fade-enter,
+.fade-leave-to {
+ opacity: 0;
+}
+
+// ///////////////////////////////////////////////
+// Page Slide
+// ///////////////////////////////////////////////
+.slide-fade-enter-active,
+.slide-fade-leave-active {
+ transition: opacity 0.35s, transform 0.4s;
+}
+.slide-fade-enter {
+ opacity: 0;
+ transform: translateX(-30%);
+}
+
+.slide-fade-leave-to {
+ opacity: 0;
+ transform: translateX(30%);
+}
+
+// ///////////////////////////////////////////////
+// Zoom Out
+// ///////////////////////////////////////////////
+.zoom-out-enter-active,
+.zoom-out-leave-active {
+ transition: opacity 0.35s ease-in-out, transform 0.45s ease-out;
+}
+.zoom-out-enter,
+.zoom-out-leave-to {
+ opacity: 0;
+ transform: scale(0);
+}
+
+// ///////////////////////////////////////////////
+// Fade Bottom
+// ///////////////////////////////////////////////
+
+// Speed: 1x
+.fade-bottom-enter-active,
+.fade-bottom-leave-active {
+ transition: opacity 0.3s, transform 0.35s;
+}
+.fade-bottom-enter {
+ opacity: 0;
+ transform: translateY(-8%);
+}
+
+.fade-bottom-leave-to {
+ opacity: 0;
+ transform: translateY(8%);
+}
+
+// Speed: 2x
+.fade-bottom-2x-enter-active,
+.fade-bottom-2x-leave-active {
+ transition: opacity 0.2s, transform 0.25s;
+}
+.fade-bottom-2x-enter {
+ opacity: 0;
+ transform: translateY(-4%);
+}
+
+.fade-bottom-2x-leave-to {
+ opacity: 0;
+ transform: translateY(4%);
+}
+
+// ///////////////////////////////////////////////
+// Fade Top
+// ///////////////////////////////////////////////
+
+// Speed: 1x
+.fade-top-enter-active,
+.fade-top-leave-active {
+ transition: opacity 0.3s, transform 0.35s;
+}
+.fade-top-enter {
+ opacity: 0;
+ transform: translateY(8%);
+}
+
+.fade-top-leave-to {
+ opacity: 0;
+ transform: translateY(-8%);
+}
+
+// Speed: 2x
+.fade-top-2x-enter-active,
+.fade-top-2x-leave-active {
+ transition: opacity 0.2s, transform 0.25s;
+}
+.fade-top-2x-enter {
+ opacity: 0;
+ transform: translateY(4%);
+}
+
+.fade-top-2x-leave-to {
+ opacity: 0;
+ transform: translateY(-4%);
+}
+
+///////////////////////////////////////////////////////////
+// transition-group : list;
+///////////////////////////////////////////////////////////
+.list-leave-active {
+ position: absolute;
+}
+
+.list-enter,
+.list-leave-to {
+ opacity: 0;
+ transform: translateX(30px);
+}
+
+///////////////////////////////////////////////////////////
+// transition-group : list-enter-up;
+///////////////////////////////////////////////////////////
+.list-enter-up-leave-active {
+ transition: none !important;
+}
+
+.list-enter-up-enter {
+ opacity: 0;
+ transform: translateY(30px);
+}
diff --git a/src/@core/scss/vue/apps/calendar.scss b/src/@core/scss/vue/apps/calendar.scss
new file mode 100644
index 00000000..a262fb2a
--- /dev/null
+++ b/src/@core/scss/vue/apps/calendar.scss
@@ -0,0 +1,18 @@
+@import '~@core/scss/base/bootstrap-extended/include'; // Bootstrap includes
+@import '~@core/scss/base/components/include'; // Components includes
+
+@import '~@core/scss/base/pages/app-calendar.scss';
+
+// Color palettes
+@import '~@core/scss/base/core/colors/palette-variables.scss';
+
+.fc-sidebarToggle-button {
+ // content: '';
+ background-image: url(str-replace(str-replace($menu, 'currentColor', $body-color), '#', '%23'));
+ width: 25px;
+ height: 25px;
+ margin-right: 0.7rem !important;
+ display: block;
+ background-position: center;
+ background-repeat: no-repeat;
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_alert.scss b/src/@core/scss/vue/bootstrap-vue/_alert.scss
new file mode 100644
index 00000000..e7250ebf
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_alert.scss
@@ -0,0 +1,4 @@
+// For transition
+.alert {
+ transition: all 0.25s ease;
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_avatar.scss b/src/@core/scss/vue/bootstrap-vue/_avatar.scss
new file mode 100644
index 00000000..9eaaa8be
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_avatar.scss
@@ -0,0 +1,67 @@
+// Reason: We aren't getting style due to structural changes
+// Color palettes
+@import '~@core/scss/base/core/colors/palette-variables.scss';
+
+.b-avatar {
+ font-size: 0.857rem;
+ font-weight: 600;
+ color: $white;
+
+ // Avatar Badge Minimal [HTML Like Style]
+ &.badge-minimal {
+ .b-avatar-badge {
+ min-height: 11px;
+ min-width: 11px;
+ border: 1px solid #fff;
+ }
+ }
+
+ // Bordered Avatar
+ &.avatar-border-2 {
+ img {
+ border: 2px solid #fff;
+ }
+ }
+}
+
+// Disable img scaling on actionable avatar hover
+.b-avatar.btn,
+.b-avatar[href] {
+ &:not(:disabled):not(.disabled):hover .b-avatar-img img {
+ transform: scale(1);
+ }
+}
+
+// reason: add transition on avatar group
+.b-avatar-group {
+ .b-avatar-group-inner {
+ .b-avatar {
+ transition: all 0.25s ease 0s;
+ border-width: 0;
+ box-shadow: 0 0 0 2px $avatar-group-border, inset 0 0 0 1px rgba($black, 0.07);
+ cursor: pointer;
+ &.pull-up:hover {
+ transition: all 0.25s ease 0s;
+ transform: translateY(-4px) scale(1.07);
+ // z-index: 30;
+ }
+ }
+ }
+}
+
+// Color palettes
+@import '~@core/scss/base/core/colors/palette-variables.scss';
+
+// Badge Variants
+@each $color_name, $color in $colors {
+ @each $color_type, $color_value in $color {
+ @if $color_type== 'base' {
+ .b-avatar {
+ &.badge-light-#{$color_name} {
+ background-color: rgba($color_value, 0.12);
+ color: $color_value;
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_badge.scss b/src/@core/scss/vue/bootstrap-vue/_badge.scss
new file mode 100644
index 00000000..98106d3c
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_badge.scss
@@ -0,0 +1,16 @@
+// Color palettes
+@import '~@core/scss/base/core/colors/palette-variables.scss';
+
+@each $color_name, $color in $colors {
+ @each $color_type, $color_value in $color {
+ @if $color_type== 'base' {
+ // pill badge
+ a.badge-#{$color_name} {
+ &:focus,
+ &.focus {
+ box-shadow: none;
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_button.scss b/src/@core/scss/vue/bootstrap-vue/_button.scss
new file mode 100644
index 00000000..c9321c48
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_button.scss
@@ -0,0 +1,10 @@
+// reason: toggleable button has box shadow on active
+.btn-group-toggle,
+.btn-group-toggle {
+ :not([class*='btn-outline-']) {
+ &.active,
+ &:active {
+ box-shadow: none;
+ }
+ }
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_calendar.scss b/src/@core/scss/vue/bootstrap-vue/_calendar.scss
new file mode 100644
index 00000000..2ad68a59
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_calendar.scss
@@ -0,0 +1,30 @@
+.b-calendar {
+ // reason: calendar bottom help text color
+ .b-calendar-grid-help {
+ color: $body-color !important;
+ }
+ .b-calendar-header {
+ .form-control {
+ line-height: 1.85;
+ }
+ }
+ // reason: calendar navigation button outline remove
+ .b-calendar-inner {
+ .b-calendar-nav {
+ button {
+ border: 0 !important;
+ }
+ }
+ }
+ .btn-outline-light {
+ &:hover {
+ background-color: $gray-200;
+ border-color: $gray-200;
+ }
+ }
+ .table-primary,
+ .table-primary > th,
+ .table-primary > td {
+ background-color: rgba($primary, 0.2);
+ }
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_date-picker.scss b/src/@core/scss/vue/bootstrap-vue/_date-picker.scss
new file mode 100644
index 00000000..2dfd037a
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_date-picker.scss
@@ -0,0 +1,24 @@
+.b-form-datepicker,
+.b-form-timepicker {
+ label {
+ line-height: 200%;
+ }
+
+ .btn {
+ &.h-auto {
+ padding: 0.375rem 0.75rem !important;
+ }
+ svg {
+ margin: 0 !important;
+ }
+ }
+ .form-control {
+ min-height: auto !important;
+ }
+ // text alignment in small
+ &.form-control-sm {
+ .form-control-sm {
+ line-height: 1.65;
+ }
+ }
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_dropdown.scss b/src/@core/scss/vue/bootstrap-vue/_dropdown.scss
new file mode 100644
index 00000000..8aadefd2
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_dropdown.scss
@@ -0,0 +1,6 @@
+// Reason: For rounded ripple
+.dropdown {
+ &.b-dropdown {
+ border-radius: $border-radius;
+ }
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_file-input.scss b/src/@core/scss/vue/bootstrap-vue/_file-input.scss
new file mode 100644
index 00000000..380cf5d7
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_file-input.scss
@@ -0,0 +1,27 @@
+.b-form-file {
+ .custom-file-label {
+ height: 100% !important;
+ }
+ // Small
+ &.b-custom-control-sm {
+ .custom-file-label,
+ .custom-file-label::after {
+ line-height: 22px;
+ }
+
+ .custom-file-label::after {
+ height: 28px;
+ }
+ }
+ // Large
+ &.b-custom-control-lg {
+ .custom-file-label,
+ .custom-file-label::after {
+ line-height: 23px;
+ }
+
+ .custom-file-label::after {
+ height: 44px;
+ }
+ }
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_index.scss b/src/@core/scss/vue/bootstrap-vue/_index.scss
new file mode 100644
index 00000000..17693d15
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_index.scss
@@ -0,0 +1,29 @@
+@import '~@core/scss/base/bootstrap-extended/include';
+
+@import 'alert';
+@import 'avatar';
+@import 'button';
+@import 'badge';
+@import 'calendar';
+@import 'date-picker';
+@import 'dropdown';
+@import 'file-input';
+@import 'modal';
+@import 'nav';
+@import 'pagination';
+@import 'popover';
+@import 'rating';
+@import 'sidebar';
+@import 'spin-button';
+@import 'switch';
+@import 'table';
+@import 'tag';
+@import 'time';
+@import 'toast';
+@import 'tooltip';
+
+// Validation
+@import 'validation';
+
+// Misc
+@import 'misc';
diff --git a/src/@core/scss/vue/bootstrap-vue/_misc.scss b/src/@core/scss/vue/bootstrap-vue/_misc.scss
new file mode 100644
index 00000000..ada2f41f
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_misc.scss
@@ -0,0 +1,14 @@
+// ------------------ Checkboxes And Radios ------------------ //
+.input-group-prepend,
+.input-group-append {
+ .input-group-text {
+ .form-check {
+ line-height: 0;
+ }
+ }
+}
+
+// custom file label issue with prepend
+.custom-file-label {
+ height: calc(1.65em + 1.4rem + 1px);
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_modal.scss b/src/@core/scss/vue/bootstrap-vue/_modal.scss
new file mode 100644
index 00000000..f4bd91bf
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_modal.scss
@@ -0,0 +1,9 @@
+// Themed Modals
+.modal {
+ // Enable even space between two footer button
+ .modal-footer {
+ > .btn {
+ margin-left: 0.75rem;
+ }
+ }
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_nav.scss b/src/@core/scss/vue/bootstrap-vue/_nav.scss
new file mode 100644
index 00000000..a65d9ea5
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_nav.scss
@@ -0,0 +1,7 @@
+.b-nav-dropdown {
+ .dropdown-toggle {
+ &::after {
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236e6b7b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-chevron-down'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
+ }
+ }
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_pagination.scss b/src/@core/scss/vue/bootstrap-vue/_pagination.scss
new file mode 100644
index 00000000..cc43a4df
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_pagination.scss
@@ -0,0 +1,43 @@
+.page-item {
+ &.prev-item,
+ &.next-item {
+ .page-link {
+ padding: 0.5rem 0;
+
+ &:hover {
+ color: $white;
+ }
+ }
+ }
+}
+
+// pill
+.pagination {
+ &.b-pagination-pills {
+ .page-item.active {
+ background-color: transparent;
+ }
+ }
+}
+
+.page-item.prev-item {
+ .page-link {
+ &:before {
+ display: none;
+ }
+ svg {
+ transform: translateX(-1px);
+ }
+ }
+}
+
+.page-item.next-item {
+ .page-link {
+ &:after {
+ display: none;
+ }
+ svg {
+ transform: translateX(1px);
+ }
+ }
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_popover.scss b/src/@core/scss/vue/bootstrap-vue/_popover.scss
new file mode 100644
index 00000000..3d31c2e2
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_popover.scss
@@ -0,0 +1,71 @@
+// Color palettes
+@import '~@core/scss/base/core/colors/palette-variables.scss';
+
+.popover.b-popover {
+ //popover top position
+ &.bs-popover-top {
+ .arrow {
+ &::before {
+ border-top-color: $border-color;
+ }
+ &::after {
+ border-top-color: $white;
+ }
+ }
+ }
+ //popover left position
+ &.bs-popover-left {
+ .arrow {
+ &::before {
+ border-left-color: $border-color;
+ }
+ &::after {
+ border-left-color: $white;
+ }
+ }
+ }
+ //popover right position
+ &.bs-popover-right {
+ .arrow {
+ &::before {
+ border-right-color: $border-color;
+ }
+ &::after {
+ border-right-color: $white;
+ }
+ }
+ }
+}
+
+//--------- popover variant ---------//
+@each $color_name, $color in $colors {
+ @each $color_type, $color_value in $color {
+ @if $color_type== 'base' {
+ .popover.b-popover {
+ &.b-popover-#{$color_name} {
+ background-color: $white;
+ border-color: $border-color;
+ z-index: 9999;
+ position: relative;
+ .popover-header {
+ background-color: $color_value;
+ border-color: $color_value;
+ color: $white;
+ }
+
+ // arrow color change according to variant
+ &.bs-popover-bottom {
+ .arrow {
+ &::before {
+ border-bottom-color: $color_value;
+ }
+ &::after {
+ border-bottom-color: $color_value;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_rating.scss b/src/@core/scss/vue/bootstrap-vue/_rating.scss
new file mode 100644
index 00000000..5b98444a
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_rating.scss
@@ -0,0 +1,4 @@
+// Reason: Form Rating get box-shadow due to form-control:focus on focus
+output.b-rating.form-control:focus {
+ box-shadow: none;
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_sidebar.scss b/src/@core/scss/vue/bootstrap-vue/_sidebar.scss
new file mode 100644
index 00000000..5b2632ab
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_sidebar.scss
@@ -0,0 +1,27 @@
+.b-sidebar {
+ // Sidebar Width
+ &.sidebar-lg {
+ width: 30rem;
+
+ @include media-breakpoint-down(xs) {
+ width: 20rem;
+ }
+ }
+
+ // Fix sidebar close outline
+ .b-sidebar-header .close {
+ outline: none;
+ }
+
+ // header (Used in Apps)
+ .b-sidebar-body {
+ .content-sidebar-header {
+ background-color: $light;
+ }
+ }
+}
+
+// Update sidebar backdrop color
+.b-sidebar-backdrop {
+ background-color: rgba($black, 0.75) !important;
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_spin-button.scss b/src/@core/scss/vue/bootstrap-vue/_spin-button.scss
new file mode 100644
index 00000000..2cdff04d
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_spin-button.scss
@@ -0,0 +1,23 @@
+// Override input's form-control style
+.b-form-spinbutton {
+ &.form-control {
+ padding: 0;
+ &:focus,
+ &.focus {
+ border-color: $primary;
+ box-shadow: none;
+ }
+ &.is-valid,
+ &.is-invalid {
+ padding-right: calc(1.5em + 0.75rem);
+ }
+ .btn-sm {
+ padding: 0.25rem 0.5rem;
+ }
+ }
+ &.form-control-sm {
+ output > bdi {
+ height: 0.9rem;
+ }
+ }
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_switch.scss b/src/@core/scss/vue/bootstrap-vue/_switch.scss
new file mode 100644
index 00000000..c350dc99
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_switch.scss
@@ -0,0 +1,6 @@
+// reason: stacked switch
+.custom-switch:not(.custom-control-inline) {
+ .custom-control-label {
+ margin-bottom: 0.5rem;
+ }
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_table.scss b/src/@core/scss/vue/bootstrap-vue/_table.scss
new file mode 100644
index 00000000..98f0b4ce
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_table.scss
@@ -0,0 +1,24 @@
+// bs table
+.table {
+ &.b-table {
+ &.b-table-selectable {
+ tr {
+ outline: none;
+ }
+ }
+ > tbody {
+ .b-table-row-selected {
+ &.table-active {
+ td {
+ background-color: $table-hover-bg;
+ }
+ }
+ }
+ }
+
+ // Reason: Remove outline on focus
+ th {
+ outline: none;
+ }
+ }
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_tag.scss b/src/@core/scss/vue/bootstrap-vue/_tag.scss
new file mode 100644
index 00000000..9dc2da6c
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_tag.scss
@@ -0,0 +1,11 @@
+.b-form-tag {
+ background-color: $primary;
+ margin-right: 0.8rem;
+ .close {
+ opacity: 1;
+ text-shadow: none;
+ vertical-align: middle;
+ display: flex;
+ align-self: center;
+ }
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_time.scss b/src/@core/scss/vue/bootstrap-vue/_time.scss
new file mode 100644
index 00000000..9f2a581f
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_time.scss
@@ -0,0 +1,35 @@
+// reason: header text align center
+.b-time-header {
+ output > bdi {
+ line-height: 1.85;
+ }
+}
+
+// Update Style
+.b-time {
+ .bi-circle-fill {
+ height: 10px;
+ width: 10px;
+ fill: $secondary;
+ }
+ .bi-chevron-up {
+ height: 10px;
+ width: 10px;
+ }
+
+ .b-form-spinbutton {
+ + .flex-column:not(.b-time-ampm) {
+ margin-left: 0.4rem;
+ margin-right: 0.4rem;
+ }
+
+ output.border-bottom.border-top {
+ border: none !important;
+ }
+ }
+
+ // Reset scaling of icon on hover
+ .b-form-spinbutton .btn:hover:not(:disabled) > div > .b-icon {
+ transform: scale(1);
+ }
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_toast.scss b/src/@core/scss/vue/bootstrap-vue/_toast.scss
new file mode 100644
index 00000000..f870bd87
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_toast.scss
@@ -0,0 +1,38 @@
+// Color palettes
+@import '~@core/scss/base/core/colors/palette-variables.scss';
+
+/* Generate:
+* Border color according to event class
+*/
+@each $color_name, $color in $colors {
+ @each $color_type, $color_value in $color {
+ @if $color_type== 'base' {
+ .b-toast-#{$color_name} {
+ .toast-header {
+ background-color: $color_value !important;
+ color: $white !important;
+ .close {
+ color: $white;
+ text-shadow: none;
+ }
+ }
+ }
+ }
+ }
+}
+
+.b-toast {
+ &.b-toast-solid {
+ .toast {
+ background-color: $white;
+ color: $body-color;
+ }
+ }
+}
+
+// Reason: Close button vertical alignment
+.toast-header {
+ .close {
+ margin-bottom: 2px !important;
+ }
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_tooltip.scss b/src/@core/scss/vue/bootstrap-vue/_tooltip.scss
new file mode 100644
index 00000000..056e0b4a
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_tooltip.scss
@@ -0,0 +1,3 @@
+.tooltip.b-tooltip-warning .tooltip-inner {
+ color: $white;
+}
diff --git a/src/@core/scss/vue/bootstrap-vue/_validation.scss b/src/@core/scss/vue/bootstrap-vue/_validation.scss
new file mode 100644
index 00000000..95321d1d
--- /dev/null
+++ b/src/@core/scss/vue/bootstrap-vue/_validation.scss
@@ -0,0 +1,19 @@
+// reason: contextual states
+// valid state
+.custom-control-input.is-valid {
+ &:not(:disabled):active {
+ ~ .custom-control-label::before {
+ background-color: $success;
+ border-color: $success;
+ }
+ }
+}
+// invalid state
+.custom-control-input.is-invalid {
+ &:not(:disabled):active {
+ ~ .custom-control-label::before {
+ background-color: $danger;
+ border-color: $danger;
+ }
+ }
+}
diff --git a/src/@core/scss/vue/libs/chart-apex.scss b/src/@core/scss/vue/libs/chart-apex.scss
new file mode 100644
index 00000000..bda17ff6
--- /dev/null
+++ b/src/@core/scss/vue/libs/chart-apex.scss
@@ -0,0 +1 @@
+@import '~@core/scss/base/plugins/charts/chart-apex.scss';
diff --git a/src/@core/scss/vue/libs/map-leaflet.scss b/src/@core/scss/vue/libs/map-leaflet.scss
new file mode 100644
index 00000000..d40c0011
--- /dev/null
+++ b/src/@core/scss/vue/libs/map-leaflet.scss
@@ -0,0 +1,20 @@
+.vue2leaflet-map {
+ height: 400px;
+ z-index: 1;
+}
+
+html[dir='rtl'] {
+ .leaflet-pane,
+ .leaflet-tile,
+ .leaflet-marker-icon,
+ .leaflet-marker-shadow,
+ .leaflet-tile-container,
+ .leaflet-pane > svg,
+ .leaflet-pane > canvas,
+ .leaflet-zoom-box,
+ .leaflet-image-layer,
+ .leaflet-layer {
+ left: 0;
+ right: unset;
+ }
+}
diff --git a/src/@core/scss/vue/libs/quill.scss b/src/@core/scss/vue/libs/quill.scss
new file mode 100644
index 00000000..c234deb3
--- /dev/null
+++ b/src/@core/scss/vue/libs/quill.scss
@@ -0,0 +1,52 @@
+@import '~@core/scss/base/plugins/forms/form-quill-editor.scss';
+@import '~quill/dist/quill.core.css';
+@import '~quill/dist/quill.snow.css';
+@import '~quill/dist/quill.bubble.css';
+
+// need to override some icon's color
+.quill-editor {
+ .ql-toolbar,
+ .ql-editor {
+ a,
+ button:hover,
+ .ql-picker:hover {
+ color: $primary;
+ .ql-fill {
+ fill: $primary;
+ }
+ .ql-stroke {
+ stroke: $primary;
+ }
+ .ql-picker-label:hover {
+ color: $primary;
+ .ql-stroke {
+ stroke: $primary;
+ }
+ }
+ }
+ }
+}
+
+// ? Set border radius for container & toolbar
+.quill-editor {
+ // Add top radius to toolbar & container
+ // ? Will get removed one of both according to placement
+ .ql-toolbar,
+ .ql-container {
+ border-top-right-radius: $border-radius;
+ border-top-left-radius: $border-radius;
+ }
+
+ .ql-toolbar {
+ + .ql-container,
+ .ql-container + & {
+ // ? If container/toolbar is below container/toolbar add bottom radius
+ border-bottom-right-radius: $border-radius;
+ border-bottom-left-radius: $border-radius;
+
+ // ? If container/toolbar is above container/toolbar remove top radius
+ border-top-right-radius: unset;
+ border-top-left-radius: unset;
+ }
+ }
+}
diff --git a/src/@core/scss/vue/libs/swiper.scss b/src/@core/scss/vue/libs/swiper.scss
new file mode 100644
index 00000000..57488c72
--- /dev/null
+++ b/src/@core/scss/vue/libs/swiper.scss
@@ -0,0 +1,8 @@
+@import '~@core/scss/base/plugins/extensions/ext-component-swiper.scss';
+
+// set active slide thumb's opacity in gallery demo
+.swiper-slide {
+ &.swiper-slide-active {
+ opacity: 1;
+ }
+}
diff --git a/src/@core/scss/vue/libs/toastification.scss b/src/@core/scss/vue/libs/toastification.scss
new file mode 100644
index 00000000..6ec9cad1
--- /dev/null
+++ b/src/@core/scss/vue/libs/toastification.scss
@@ -0,0 +1,51 @@
+// Core variables and mixins
+@import '~@core/scss/base/bootstrap-extended/include';
+// Overrides user variable
+@import '~@core/scss/base/components/include';
+
+$vt-toast-min-height: unset;
+$vt-toast-max-height: unset;
+$vt-toast-max-width: 400px;
+
+$vt-color-default: $white;
+$vt-color-info: $white;
+$vt-color-success: $white;
+$vt-color-warning: $white;
+$vt-color-error: $white;
+
+$vt-text-color-default: $primary;
+$vt-text-color-info: $info;
+$vt-text-color-success: $success;
+$vt-text-color-warning: $warning;
+$vt-text-color-error: $danger;
+$vt-font-family: inherit;
+
+// Import the regular Vue Toastification stylesheets (or create your own)
+@import 'vue-toastification/src/scss/_variables';
+@import 'vue-toastification/src/scss/_toastContainer';
+@import 'vue-toastification/src/scss/_toast';
+@import 'vue-toastification/src/scss/_closeButton';
+@import 'vue-toastification/src/scss/_progressBar';
+@import 'vue-toastification/src/scss/_icon';
+@import 'vue-toastification/src/scss/animations/fade';
+
+.#{$vt-namespace}__toast {
+ padding: 1rem;
+ box-shadow: $box-shadow;
+ border-radius: $card-border-radius;
+}
+
+@media only screen and (max-width: 600px) {
+ .Vue-Toastification__container {
+ .Vue-Toastification__toast {
+ width: 90%;
+ }
+ }
+}
+
+// ------------Dark Layout -----------//
+.dark-layout {
+ .#{$vt-namespace}__toast {
+ background-color: $theme-dark-card-bg;
+ }
+}
diff --git a/src/@core/scss/vue/libs/tour.scss b/src/@core/scss/vue/libs/tour.scss
new file mode 100644
index 00000000..095f0b25
--- /dev/null
+++ b/src/@core/scss/vue/libs/tour.scss
@@ -0,0 +1,63 @@
+@import '~@core/scss/base/bootstrap-extended/include';
+// Overrides user variable
+@import '~@core/scss/base/components/include';
+@import '~vue-tour/dist/vue-tour.css';
+
+.v-tour {
+ .v-step {
+ z-index: 55000;
+ background-color: $white;
+ border-radius: $card-border-radius;
+ filter: drop-shadow(0 0 7px rgba(0, 0, 0, 0.2));
+ min-width: 350px;
+ text-align: left;
+
+ .v-step__arrow {
+ border-color: $primary;
+ border-left-color: transparent;
+ border-right-color: transparent;
+ }
+
+ // --- Header ----- //
+ .v-step__header {
+ background-color: $primary;
+ border-top-left-radius: $card-border-radius;
+ border-top-right-radius: $card-border-radius;
+ font-weight: 500;
+
+ padding: 0.38rem 1.2rem;
+ margin-bottom: 0;
+ line-height: 2rem;
+ }
+
+ // --- Content/Body ----- //
+ .v-step__content {
+ color: $body-color;
+ border-bottom-left-radius: $card-border-radius;
+ border-bottom-right-radius: $card-border-radius;
+
+ padding: 1rem 0;
+ margin-bottom: 0;
+ }
+ }
+}
+
+// ----------- Dark Layout -----------//
+.dark-layout {
+ .v-step {
+ background-color: $theme-dark-card-bg;
+ }
+}
+
+// ----------- RTL -----------//
+html[dir='rtl'] {
+ .v-tour {
+ .v-step {
+ .btn {
+ svg {
+ transform: rotate(180deg);
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/vue/libs/tree.scss b/src/@core/scss/vue/libs/tree.scss
new file mode 100644
index 00000000..e8187635
--- /dev/null
+++ b/src/@core/scss/vue/libs/tree.scss
@@ -0,0 +1,144 @@
+@import '~vue-tree-halower/dist/halower-tree.min.css';
+
+@import '~@core/scss/base/bootstrap-extended/include';
+// Overrides user variable
+@import '~@core/scss/base/components/include';
+
+.tree-container {
+ .tag-box-container {
+ .tag {
+ background-color: transparent;
+ .rmNode {
+ color: $danger;
+ background-color: rgba($danger, 0.15);
+ line-height: 1.1;
+ }
+ }
+ }
+
+ .tree-box {
+ position: relative;
+ z-index: 5;
+ background-color: white;
+ padding: 10px;
+ box-shadow: $box-shadow;
+
+ input {
+ margin-bottom: 1rem;
+ height: 2.5rem;
+ }
+ }
+}
+
+.halo-tree {
+ &,
+ .first-node {
+ padding-left: 0;
+ }
+
+ // Align `-` node's below vertical line
+ li::before {
+ left: -11px;
+ }
+
+ .tree-node-el {
+ display: contents;
+ }
+
+ .tree-expand {
+ background: content-box;
+ cursor: pointer;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ line-height: 1;
+ }
+
+ .halo-tree {
+ li {
+ padding-left: 26px;
+ }
+ }
+
+ ul {
+ padding-left: 17px !important;
+ }
+
+ > li.first-node.only-node::after {
+ z-index: -10;
+ }
+
+ .box-halfchecked:after {
+ top: -1px;
+ }
+
+ .inputCheck {
+ top: 2px;
+
+ &.box-checked:after {
+ top: -1px;
+ }
+ }
+
+ .node-selected {
+ background-color: #f8f8f8;
+ }
+ .node-title {
+ &:hover {
+ background-color: #f8f8f8;
+ }
+ padding: 3px 6px;
+ margin: 0 4px;
+ }
+
+ // Button Colors
+ button.btn-async,
+ button.btn-delete {
+ padding: 0.2rem 0.5rem;
+ border-radius: 4px;
+ font-size: 12px;
+ }
+ button.btn-async {
+ background: rgba($warning, 0.15);
+ }
+
+ button.btn-delete {
+ background: rgba($danger, 0.15);
+ }
+}
+
+.dark-layout {
+ .tree-container,
+ .tree-container .tree-box,
+ .tag-box .tag {
+ border-color: $theme-dark-border-color;
+ }
+
+ .tree-container {
+ .tree-box {
+ background-color: $theme-dark-body-bg;
+
+ input {
+ background-color: $theme-dark-input-bg;
+ border-color: $theme-dark-input-disabled-border-color;
+ }
+ }
+ .tag-box {
+ .tag {
+ background-color: $theme-dark-body-bg !important;
+ }
+ }
+ }
+
+ .halo-tree {
+ .node-title:hover {
+ background-color: transparent;
+ }
+ .node-title {
+ &.node-selected {
+ background-color: $theme-dark-body-bg;
+ border-color: $theme-dark-border-color;
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/vue/libs/vue-autosuggest.scss b/src/@core/scss/vue/libs/vue-autosuggest.scss
new file mode 100644
index 00000000..25559de9
--- /dev/null
+++ b/src/@core/scss/vue/libs/vue-autosuggest.scss
@@ -0,0 +1,61 @@
+// Core variables and mixins
+@import '~@core/scss/base/bootstrap-extended/include';
+// Overrides user variable
+@import '~@core/scss/base/components/include';
+
+// customize the dropdown
+.autosuggest__results-container {
+ position: relative;
+ z-index: 999;
+ .autosuggest__results {
+ position: absolute;
+ background-color: $white;
+ width: 100%;
+ margin-top: 1rem;
+ overflow-y: auto;
+ border-radius: 0.5rem;
+ max-height: 40vh;
+ box-shadow: 0 15px 30px 0 rgba(0, 0, 0, 0.11), 0 5px 15px 0 rgba(0, 0, 0, 0.08) !important;
+ ul {
+ padding-left: 0;
+ margin-bottom: 0;
+ li {
+ list-style: none;
+ padding: 0.75rem 1rem;
+ &:hover,
+ &.autosuggest__results-item--highlighted {
+ background: $gray-200;
+ }
+ .detail {
+ line-height: 0.5;
+ }
+ }
+ .autosuggest__results-before {
+ color: $primary;
+ font-weight: 600;
+ }
+ }
+ }
+}
+
+//--------- dark layout ---------//
+body {
+ &.dark-layout {
+ .autosuggest__results-container {
+ .autosuggest__results {
+ background-color: $theme-dark-input-bg;
+ color: $theme-dark-body-color;
+
+ // on hover
+ .autosuggest__results-item--highlighted,
+ .autosuggest__results-item:hover,
+ .autosuggest__results-before:hover {
+ background-color: $theme-dark-table-hover-bg;
+ }
+ .my-suggestion-item {
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/vue/libs/vue-context.scss b/src/@core/scss/vue/libs/vue-context.scss
new file mode 100644
index 00000000..123b0b51
--- /dev/null
+++ b/src/@core/scss/vue/libs/vue-context.scss
@@ -0,0 +1,39 @@
+@import '~vue-context/src/sass/vue-context';
+
+// Core variables and mixins
+@import '~@core/scss/base/bootstrap-extended/include';
+// Overrides user variable
+@import '~@core/scss/base/components/include';
+
+.v-context {
+ &,
+ & ul {
+ box-shadow: $dropdown-box-shadow;
+ border: none;
+ border-radius: $dropdown-border-radius;
+ padding: 0.5rem 0;
+
+ > li {
+ > a {
+ color: $dropdown-link-color;
+ padding: $dropdown-item-padding-y $dropdown-item-padding-x;
+
+ &:hover,
+ &:focus {
+ color: $dropdown-link-hover-color;
+ background-color: $dropdown-link-hover-bg;
+ }
+ }
+ }
+ }
+}
+
+// ---------- Dark Layout ----------//
+body.dark-layout {
+ .v-context {
+ background-color: $theme-dark-body-bg;
+ > li > a {
+ color: $theme-dark-body-color;
+ }
+ }
+}
diff --git a/src/@core/scss/vue/libs/vue-flatpicker.scss b/src/@core/scss/vue/libs/vue-flatpicker.scss
new file mode 100644
index 00000000..034105d6
--- /dev/null
+++ b/src/@core/scss/vue/libs/vue-flatpicker.scss
@@ -0,0 +1,14 @@
+@import '~flatpickr/dist/flatpickr.css';
+@import '~@core/scss/base/plugins/forms/pickers/form-flat-pickr.scss';
+
+// RTL
+html[dir='rtl'] {
+ .flatpickr-calendar {
+ .flatpickr-prev-month,
+ .flatpickr-next-month {
+ svg {
+ transform: rotate(180deg);
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/vue/libs/vue-good-table.scss b/src/@core/scss/vue/libs/vue-good-table.scss
new file mode 100644
index 00000000..703fdad8
--- /dev/null
+++ b/src/@core/scss/vue/libs/vue-good-table.scss
@@ -0,0 +1,173 @@
+// Core variables and mixins
+@import '~@core/scss/base/bootstrap-extended/include';
+// Overrides user variable
+@import '~@core/scss/base/components/include';
+// good table variable override to change the color of table
+$text-color: $body-color;
+$thead-bg-color-1: transparent;
+$thead-bg-color-2: transparent;
+
+// sorting icons
+.vgt-wrap {
+ .vgt-table {
+ th.sortable {
+ &:before {
+ border-top-color: $border-color;
+ }
+ &:after {
+ border-bottom-color: $border-color;
+ }
+ }
+ thead {
+ th {
+ &.sorting-desc {
+ &::before {
+ border-top-color: $primary;
+ }
+ }
+ &.sorting-asc {
+ &::after {
+ border-bottom-color: $primary;
+ }
+ }
+ }
+ }
+ }
+}
+
+// pagination in rtl
+.vgt-wrap.rtl {
+ .vgt-table {
+ th.sortable {
+ &::after,
+ &::before {
+ left: 2rem;
+ }
+ }
+ }
+ .pagination {
+ .page-item:last-child:not(.next-item) {
+ .page-link {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ border-top-left-radius: 1.428rem;
+ border-bottom-left-radius: 1.428rem;
+ }
+ }
+ .page-item:first-child:not(.prev-item) {
+ .page-link {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ border-top-right-radius: 1.428rem;
+ border-bottom-right-radius: 1.428rem;
+ }
+ }
+ }
+}
+
+//--------- dark layout -----------//
+body {
+ &.dark-layout {
+ .vgt-wrap {
+ .vgt-table {
+ background-color: $theme-dark-card-bg;
+ border-color: $theme-dark-border-color;
+ th,
+ td,
+ tr {
+ border-color: $theme-dark-border-color;
+ background-color: $theme-dark-card-bg;
+ span {
+ color: $theme-dark-body-color;
+ }
+ input {
+ background-color: $theme-dark-input-bg;
+ color: $theme-dark-body-color;
+ border-color: $theme-dark-input-border-color;
+ &::placeholder {
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+ th.sortable {
+ &::after {
+ border-bottom-color: $theme-dark-body-color;
+ }
+ &::before {
+ border-top-color: $theme-dark-body-color;
+ }
+ }
+ thead th.sorting-desc::before {
+ border-top-color: $primary;
+ }
+ thead th.sorting-asc::after {
+ border-bottom-color: $primary;
+ }
+ }
+ }
+ }
+}
+
+// ------------------------------------------------
+// RTL
+// ------------------------------------------------
+
+html[dir='rtl'] {
+ .b-pagination {
+ .page-item {
+ &.prev-item {
+ margin-right: 0.3571rem;
+ margin-left: 0;
+ .page-link {
+ svg {
+ transform: rotate(360deg);
+ }
+ }
+ ~ .page-item:nth-child(2):not(.active) {
+ .page-link {
+ border-top-right-radius: 0 !important;
+ border-bottom-right-radius: 0 !important;
+ border-top-left-radius: 5rem;
+ border-bottom-left-radius: 5rem;
+ }
+ }
+ ~ .page-item:nth-last-child(2):not(.active) {
+ .page-link {
+ border-top-left-radius: 0 !important;
+ border-bottom-left-radius: 0 !important;
+ border-top-right-radius: 5rem;
+ border-bottom-right-radius: 5rem;
+ }
+ }
+ ~ .page-item:nth-child(2) {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ border-top-left-radius: 5rem;
+ border-bottom-left-radius: 5rem;
+ }
+ ~ .page-item:nth-last-child(2) {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ border-top-right-radius: 5rem;
+ border-bottom-right-radius: 5rem;
+ }
+ }
+ &.next-item {
+ margin-right: 0;
+ margin-left: 0.3571rem;
+ .page-link {
+ svg {
+ transform: rotate(360deg);
+ }
+ }
+ }
+ &.active {
+ .page-link {
+ border-top-right-radius: 5rem !important;
+ border-bottom-right-radius: 5rem !important;
+ }
+ }
+ }
+ }
+}
+@import '~vue-good-table/src/styles/style.scss';
diff --git a/src/@core/scss/vue/libs/vue-select.scss b/src/@core/scss/vue/libs/vue-select.scss
new file mode 100644
index 00000000..7f053d05
--- /dev/null
+++ b/src/@core/scss/vue/libs/vue-select.scss
@@ -0,0 +1,341 @@
+$options-padding-x: 20px;
+$options-padding-y: 7px;
+
+@import '~@core/scss/base/bootstrap-extended/include';
+// Overrides user variable
+@import '~@core/scss/base/components/include';
+@import 'vue-select/src/scss/global/_variables.scss';
+
+// Global Component Variables
+$vs-component-line-height: 1.8;
+$vs-component-placeholder-color: $body-color;
+
+// Active State
+$vs-state-active-bg: rgba($primary, 0.12);
+$vs-state-active-color: $primary !important;
+
+// Border
+$vs-border-width: $input-border-width;
+$vs-border-radius: $input-border-radius;
+$vs-border-color: $input-border-color;
+
+// Selected
+$vs-selected-bg: $primary;
+$vs-selected-border-width: 0;
+
+// Dropdown
+$vs-dropdown-box-shadow: 0px 4px 25px 0px rgba(0, 0, 0, 0.1);
+
+@import 'vue-select/src/scss/vue-select.scss';
+
+.vs__open-indicator {
+ fill: none;
+ margin-top: 0.15rem;
+}
+
+// Matches height of input element for consistency
+.vs__dropdown-toggle {
+ padding: 0.59px 0 4px 0;
+ transition: all 0.25s ease-in-out;
+
+ .vs--single & {
+ padding-left: 6px;
+ }
+}
+
+.vs__dropdown-option--disabled {
+ &.vs__dropdown-option--selected {
+ background: $primary !important;
+ }
+ opacity: 0.5;
+}
+
+// Options list color
+.vs__dropdown-option {
+ color: $body-color;
+}
+.vs__dropdown-option,
+.vs__no-options {
+ // We have only update Y padding
+ padding: $options-padding-y $options-padding-x;
+}
+
+/* rtl:begin:ignore */
+.vs__dropdown-option--selected {
+ background-color: $primary;
+ color: $white;
+ position: relative;
+
+ &::after {
+ content: '';
+ height: 1.1rem;
+ width: 1.1rem;
+ display: inline-block;
+ position: absolute;
+
+ // vertically center icon
+ top: 50%;
+ transform: translateY(-50%);
+ right: $options-padding-x;
+
+ [dir='rtl'] & {
+ left: $options-padding-x;
+ right: unset;
+ }
+
+ // Icon
+ background-image: url(str-replace(str-replace($check, 'currentColor', $white), '#', '%23'));
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 1.1rem;
+ }
+
+ // Because, highlight get primary color and if item is selected we want to keep white color even if it's hovered/highlighted
+ &.vs__dropdown-option--highlight {
+ color: $white !important;
+ background-color: $primary !important;
+ }
+}
+/* rtl:end:ignore */
+
+// Update color of clear icon
+.vs__clear {
+ svg {
+ color: $body-color;
+ }
+}
+
+// Selected Color. It don't have any variable to override. (text in tag)
+.vs__selected {
+ color: $white;
+
+ // Single select selected text
+ .v-select.vs--single & {
+ color: $body-color;
+ margin-top: 5px;
+
+ // Add transition when selected option is moved when focus
+ transition: transform 0.2s ease;
+
+ input {
+ padding-left: 0;
+ }
+ }
+
+ // Slide selected option to right on focus
+ // * Just like on input focus we get placeholder moved
+ .vs--single.vs--open & {
+ transform: translateX(5px);
+ }
+
+ // Close icon in tag
+ .vs__deselect {
+ color: inherit;
+ }
+}
+
+// Tag/Multi Select
+.v-select {
+ &:not(.vs--single) {
+ .vs__selected {
+ border-radius: 3px;
+
+ padding: 0 0.6em;
+ font-size: 0.9rem;
+ margin: 5px 2px 2px 5px;
+ }
+
+ .vs__deselect {
+ svg {
+ transform: scale(0.8);
+ vertical-align: text-top;
+ }
+ }
+ }
+}
+
+// Dropdown Position
+.vs__dropdown-menu {
+ top: calc(100% + 1rem);
+ border: none;
+ border-radius: 6px;
+ padding: 0;
+}
+
+// Input style when dropdown is open
+.vs--open .vs__dropdown-toggle {
+ border-color: $input-focus-border-color;
+ border-bottom-color: $input-focus-border-color;
+ border-bottom-left-radius: $vs-border-radius;
+ border-bottom-right-radius: $vs-border-radius;
+ box-shadow: $input-focus-box-shadow;
+}
+
+// Tag styling
+// .v-select:not(.vs--single) {
+// .vs__selected-options {
+// .vs__selected {
+// background-color: $primary;
+// border: none;
+// color: #fff;
+// button {
+// svg {
+// fill: white;
+// }
+// }
+// }
+// }
+// }
+
+// ------------------------------------------------
+// Size: Large
+// ------------------------------------------------
+.select-size-lg {
+ .vs__selected {
+ font-size: 1rem !important;
+ }
+
+ &.vs--single.vs--open .vs__selected {
+ margin-top: 6px;
+ }
+
+ .vs__dropdown-toggle,
+ .vs__selected {
+ font-size: 1.25rem;
+ }
+
+ .vs__dropdown-toggle {
+ padding: 5px;
+
+ input {
+ margin-top: 0;
+ }
+ }
+
+ .vs__deselect {
+ svg {
+ transform: scale(1) !important;
+ vertical-align: middle !important;
+ }
+ }
+}
+
+// ------------------------------------------------
+// Size: Small
+// ------------------------------------------------
+.select-size-sm {
+ // Remove toggle padding from medium size
+ .vs__dropdown-toggle {
+ padding-bottom: 0;
+
+ padding: 1px;
+ }
+ &.vs--single .vs__dropdown-toggle {
+ padding: 2px;
+ }
+
+ // set line-height and font size for sm
+ .vs__dropdown-toggle,
+ .vs__selected {
+ // line-height: 1.8;
+ font-size: 0.9rem;
+ }
+
+ // Set close and dropdown icon position in center
+ .vs__actions {
+ padding-top: 2px;
+ padding-bottom: 2px;
+ }
+
+ .vs__deselect {
+ svg {
+ vertical-align: middle !important;
+ }
+ }
+
+ // Remove mt from search
+ .vs__search {
+ margin-top: 0;
+ }
+
+ // Selected options size
+ &.v-select .vs__selected {
+ padding: 0 0.3rem;
+ font-size: 0.75rem;
+ }
+
+ // Only set margin for multi/tag select
+ &.v-select:not(.vs--single) .vs__selected {
+ margin: 4px 5px;
+ }
+
+ // Selected options size for single selection
+ &.v-select.vs--single .vs__selected {
+ margin-top: 1px;
+ }
+
+ // Set margin-top for selected when input is selected
+ &.vs--single.vs--open {
+ .vs__selected {
+ margin-top: 4px;
+ }
+ }
+}
+
+// ------------------------Dark Layout------------------//
+
+.dark-layout {
+ //vue select
+ .vs__dropdown-toggle {
+ background: $theme-dark-input-bg;
+ color: $theme-dark-body-color;
+ border-color: $theme-dark-input-border-color;
+ }
+ .vs__selected-options {
+ input {
+ color: $theme-dark-body-color;
+ &::placeholder {
+ color: $theme-dark-input-placeholder-color;
+ }
+ }
+ }
+ .vs__actions {
+ svg {
+ fill: $theme-dark-input-border-color;
+ }
+ }
+ .vs__dropdown-menu {
+ background: $theme-dark-input-bg;
+ li {
+ color: $theme-dark-body-color;
+ }
+ }
+
+ .v-select {
+ &:not(.vs--single) {
+ .vs__selected {
+ background-color: rgba($primary, 0.12);
+ color: $primary;
+ }
+ }
+
+ // For single select
+ &.vs--single {
+ .vs__selected {
+ color: $theme-dark-body-color !important;
+ }
+ }
+ }
+
+ // Disabled styles
+ .vs--disabled {
+ .vs__dropdown-toggle,
+ .vs__clear,
+ .vs__search,
+ .vs__selected,
+ .vs__open-indicator {
+ background-color: $theme-dark-input-bg;
+ opacity: 0.5;
+ }
+ }
+}
diff --git a/src/@core/scss/vue/libs/vue-slider.scss b/src/@core/scss/vue/libs/vue-slider.scss
new file mode 100644
index 00000000..b1a8ba25
--- /dev/null
+++ b/src/@core/scss/vue/libs/vue-slider.scss
@@ -0,0 +1,62 @@
+@import '~@core/scss/base/bootstrap-extended/include';
+
+// Color palettes
+@import '~@core/scss/base/core/colors/palette-variables.scss';
+@import '~@core/scss/base/components/include';
+
+/* Set the theme color of the component */
+$themeColor: $primary;
+$bgColor: rgba($primary, 0.12);
+$dotShadow: none;
+/* import theme style */
+@import '~vue-slider-component/lib/theme/default.scss';
+
+.vue-slider-dot-handle {
+ border: 2px solid $primary;
+}
+
+.vue-slider-dot-tooltip-inner {
+ background-color: $primary;
+ border-color: $primary;
+}
+
+/* Generate:
+* Border color according to event class
+*/
+@each $color_name, $color in $colors {
+ @each $color_type, $color_value in $color {
+ @if $color_type== 'base' {
+ .vue-slider-#{$color_name} {
+ .vue-slider-dot-handle {
+ border: 2px solid $color_value;
+
+ &-focus {
+ box-shadow: 0px 0px 1px 2px rgba($color_value, 0.36);
+ }
+ }
+
+ .vue-slider-process {
+ background-color: $color_value;
+ }
+
+ .vue-slider-rail {
+ background-color: rgba($color_value, 0.12);
+ }
+
+ .vue-slider-dot-tooltip-inner {
+ background-color: $color_value;
+ border-color: $color_value;
+ }
+ }
+ }
+ }
+}
+
+// dark theme
+body {
+ &.dark-layout {
+ .vue-slider-dot-handle {
+ background-color: $theme-dark-body-bg;
+ }
+ }
+}
diff --git a/src/@core/scss/vue/libs/vue-sweetalert.scss b/src/@core/scss/vue/libs/vue-sweetalert.scss
new file mode 100644
index 00000000..d178f047
--- /dev/null
+++ b/src/@core/scss/vue/libs/vue-sweetalert.scss
@@ -0,0 +1,12 @@
+@import '~@core/scss/base/plugins/extensions/ext-component-sweet-alerts.scss';
+@import '~sweetalert2/dist/sweetalert2.min.css';
+
+// RTL
+html[dir='rtl'] {
+ .swal2-rtl {
+ .swal2-close {
+ left: 0;
+ right: auto;
+ }
+ }
+}
diff --git a/src/@core/scss/vue/libs/vue-wizard.scss b/src/@core/scss/vue/libs/vue-wizard.scss
new file mode 100644
index 00000000..4f9530f6
--- /dev/null
+++ b/src/@core/scss/vue/libs/vue-wizard.scss
@@ -0,0 +1,418 @@
+// Core variables and mixins
+@import '~@core/scss/base/bootstrap-extended/include';
+// Overrides user variable
+@import '~@core/scss/base/components/include';
+@import 'vue-select/src/scss/vue-select.scss';
+
+//--------- Simple Number Wizard ----------//
+.vue-form-wizard {
+ background-color: $white;
+ box-shadow: 0px 4px 25px 0px rgba($black, 0.1);
+ border-radius: 0.5rem;
+ padding-bottom: 0;
+ .wizard-header {
+ padding: 0;
+ margin: 0;
+ }
+ .title {
+ color: $gray-400;
+ }
+ .wizard-navigation {
+ .wizard-progress-with-circle {
+ display: none;
+ }
+ .wizard-nav {
+ padding: 1.42rem 1.42rem 2.14rem 1.42rem;
+ border-bottom: 1px solid rgba($color: $black, $alpha: 0.08);
+ padding-bottom: 0;
+ li {
+ flex-grow: 0;
+ flex: inherit;
+ margin-right: 3rem;
+ padding-bottom: 2rem;
+ &.active {
+ a {
+ color: $primary;
+ .wizard-icon-circle {
+ .wizard-icon-container {
+ .wizard-icon {
+ color: $white;
+ font-size: 1rem;
+ }
+ }
+ }
+ .checked {
+ box-shadow: 0 3px 6px 0 rgba(105, 108, 255, 0.4);
+ }
+ }
+ }
+ .wizard-icon-circle {
+ width: 2.71rem;
+ height: 2.71rem;
+ margin-right: 1rem;
+ border: none;
+ background-color: $gray-200;
+ border-radius: 6px;
+
+ .wizard-icon-container {
+ border-radius: 6px;
+ }
+ .wizard-icon {
+ font-style: inherit;
+ font-size: 1rem;
+ color: $gray-600;
+ &.feather {
+ font-size: 1.3rem;
+ }
+ }
+ &.checked {
+ background-color: rgba($primary, $alpha: 0.08);
+ .wizard-icon {
+ color: $primary;
+ }
+ }
+ }
+ a {
+ flex-direction: row;
+ .stepTitle {
+ font-size: 1rem;
+ color: $gray-600;
+ font-weight: 600;
+ }
+ .wizard-icon {
+ transition: none !important;
+ }
+ }
+ &:not(:first-child) {
+ a {
+ &::before {
+ content: '\e844';
+ font-family: feather !important;
+ speak: none;
+ font-style: normal;
+ font-weight: 400;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ font-size: 1.14rem;
+ left: -30px;
+ position: absolute;
+ }
+ }
+ }
+ }
+ }
+ }
+ .wizard-card-footer {
+ padding-bottom: 1rem;
+ .wizard-footer-left,
+ .wizard-footer-right {
+ .wizard-btn {
+ padding: 0.786rem 1.5rem;
+ min-width: unset;
+ border-radius: 0.4285rem;
+ }
+ }
+ .wizard-footer-left {
+ .wizard-btn {
+ border: 1px solid $secondary !important;
+ background-color: transparent !important;
+ color: $secondary !important;
+ font-weight: 400;
+ &:hover {
+ background-color: rgba($secondary, 0.04) !important;
+ }
+ &::before {
+ content: '\e843';
+ font-family: feather !important;
+ speak: none;
+ font-style: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ font-size: 1rem;
+ left: -6px;
+ position: relative;
+ }
+ }
+ }
+ .wizard-footer-right {
+ .wizard-btn {
+ font-weight: 400;
+ &:hover {
+ box-shadow: 0 8px 25px -8px $primary;
+ }
+ &::after {
+ content: '\e844';
+ font-family: feather !important;
+ speak: none;
+ font-style: normal;
+ font-weight: 400;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ font-size: 1rem;
+ right: -6px;
+ position: relative;
+ }
+ }
+ }
+ }
+}
+
+//---------- Transparent Steps ----------//
+.steps-transparent {
+ &.vue-form-wizard {
+ background-color: transparent;
+ box-shadow: none;
+ padding-bottom: 0;
+ .wizard-header {
+ padding-top: 0;
+ padding-bottom: 0;
+ }
+ .wizard-navigation .wizard-nav {
+ border: none;
+ }
+ }
+ .wizard-tab-content {
+ box-shadow: 0px 4px 25px 0px rgba($black, 0.1);
+ background-color: $white;
+ }
+ .wizard-card-footer {
+ background-color: $white;
+ box-shadow: 0px 4px 25px 0px rgba($black, 0.1);
+ }
+ .wizard-tab-content {
+ border-top-left-radius: 0.5rem;
+ border-top-right-radius: 0.5rem;
+ }
+ .wizard-card-footer {
+ box-shadow: -1px 16px 25px 0px rgba($black, 0.1);
+ // padding-bottom: 2.5rem;
+ border-bottom-left-radius: 0.5rem;
+ border-bottom-right-radius: 0.5rem;
+ }
+}
+
+//------------- Vertical --------------//
+.vertical.wizard-vertical {
+ &.vue-form-wizard {
+ .wizard-navigation {
+ .wizard-nav {
+ border-right: 1px solid rgba($color: $black, $alpha: 0.08);
+ border-bottom: none;
+ min-width: 230px;
+ padding-right: 2.5rem;
+ li {
+ margin-right: 0;
+ a {
+ flex-wrap: nowrap;
+ &::before {
+ content: none;
+ }
+ }
+ .stepTitle {
+ max-width: 200px;
+ font-size: 1rem;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ }
+ }
+ }
+ }
+ .wizard-tab-content {
+ width: 100%;
+ }
+ .wizard-card-footer {
+ margin-left: 229px;
+ border-left: 1px solid rgba($color: $black, $alpha: 0.08);
+ padding-top: 0;
+ }
+ }
+}
+
+//---------- Vertical Transparent Steps ----------//
+.vertical-steps {
+ &.vue-form-wizard {
+ .wizard-tab-content {
+ width: 100%;
+ }
+ .wizard-card-footer {
+ margin-left: 223px;
+ position: relative;
+ z-index: 9;
+ padding-top: 0;
+ }
+ .wizard-navigation {
+ .wizard-nav {
+ padding-right: 2.5rem;
+ padding-top: 30px;
+ li {
+ margin-right: 0;
+ a {
+ flex-wrap: nowrap;
+ &::before {
+ content: none;
+ }
+ }
+ .stepTitle {
+ max-width: 200px;
+ font-size: 1rem;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ }
+ }
+ }
+ }
+ }
+}
+
+@include media-breakpoint-down(sm) {
+ .vue-form-wizard {
+ .wizard-navigation {
+ flex-direction: column !important;
+ .wizard-nav.wizard-nav-pills {
+ li:not(:first-child) {
+ a {
+ &::before {
+ content: none;
+ }
+ }
+ }
+ li:last-child {
+ margin-bottom: 0;
+ }
+ }
+ }
+ .wizard-card-footer {
+ margin-left: 0 !important;
+ }
+ &.wizard-vertical.vertical {
+ .wizard-nav.wizard-nav-pills {
+ border-right: none;
+ width: 100%;
+ border-bottom: 1px solid rgba($black, $alpha: 0.08);
+ margin-bottom: 1.9rem;
+ }
+ .wizard-tab-content {
+ margin-left: 0;
+ }
+ }
+ }
+}
+
+@include media-breakpoint-down(md) {
+ .vue-form-wizard {
+ .wizard-nav.wizard-nav-pills {
+ li:not(:first-child) {
+ a {
+ &::before {
+ content: none;
+ }
+ }
+ }
+ }
+ }
+}
+
+//------------ dark layout -------------//
+body {
+ &.dark-layout {
+ // border apply only default not transparent background
+ .vue-form-wizard:not(.steps-transparent) {
+ background-color: $theme-dark-card-bg;
+ box-shadow: 0px 4px 25px 0px rgba($theme-dark-body-color, 0.1);
+ &.vertical {
+ .wizard-card-footer {
+ border-color: $theme-dark-border-color !important;
+ }
+ }
+ }
+ .vue-form-wizard {
+ // border for transparent background
+ &.steps-transparent {
+ .wizard-tab-content,
+ .wizard-card-footer {
+ background-color: $theme-dark-card-bg;
+ box-shadow: 1px 12px 25px 0px rgba($theme-dark-body-color, 0.1);
+ }
+ }
+
+ // border for navigation bar in default wizard
+ .wizard-navigation {
+ .wizard-nav {
+ border-color: $theme-dark-border-color !important;
+ li {
+ .wizard-icon-circle {
+ background-color: rgba($gray-100, 0.12);
+ &.checked {
+ background-color: rgba($primary, $alpha: 0.08);
+ .wizard-icon {
+ color: $primary;
+ }
+ }
+ }
+ &.active {
+ a {
+ .wizard-icon-circle {
+ .wizard-icon {
+ color: $theme-dark-body-color;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // steps arrow icon
+ .wizard-nav {
+ &:not(:first-child) {
+ a {
+ &::before {
+ color: $theme-dark-body-color;
+ }
+ }
+ li.active {
+ a {
+ &::before {
+ color: $primary;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+//------------ RTL -------------//
+html[dir='rtl'] {
+ .wizard-navigation {
+ .wizard-nav {
+ li {
+ a {
+ &::before {
+ transform: rotate(180deg);
+ }
+ }
+ }
+ }
+ }
+ .vue-form-wizard {
+ .wizard-card-footer {
+ .wizard-footer-left {
+ .wizard-btn::before {
+ right: 0;
+ }
+ }
+ .wizard-footer-right {
+ .wizard-btn::after {
+ left: 0;
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/vue/pages/card-analytic.scss b/src/@core/scss/vue/pages/card-analytic.scss
new file mode 100644
index 00000000..b58647c7
--- /dev/null
+++ b/src/@core/scss/vue/pages/card-analytic.scss
@@ -0,0 +1 @@
+@import '~@core/scss/base/pages/card-analytics.scss';
diff --git a/src/@core/scss/vue/pages/dashboard-ecommerce.scss b/src/@core/scss/vue/pages/dashboard-ecommerce.scss
new file mode 100644
index 00000000..0a3c3ac9
--- /dev/null
+++ b/src/@core/scss/vue/pages/dashboard-ecommerce.scss
@@ -0,0 +1,10 @@
+@import '~@core/scss/base/pages/dashboard-ecommerce.scss';
+
+.card-company-table {
+ td {
+ .b-avatar.badge-light-company {
+ background-color: $body-bg;
+ margin-right: 2rem;
+ }
+ }
+}
diff --git a/src/@core/scss/vue/pages/page-auth.scss b/src/@core/scss/vue/pages/page-auth.scss
new file mode 100644
index 00000000..dd24ec3f
--- /dev/null
+++ b/src/@core/scss/vue/pages/page-auth.scss
@@ -0,0 +1,12 @@
+@import '~@core/scss/base/pages/page-auth.scss';
+.brand-logo {
+ svg {
+ height: 28px;
+ width: 40.95px;
+ }
+}
+html[dir='rtl'] {
+ svg.feather {
+ transform: rotate(180deg);
+ }
+}
diff --git a/src/@core/scss/vue/pages/page-blog.scss b/src/@core/scss/vue/pages/page-blog.scss
new file mode 100644
index 00000000..cb35d484
--- /dev/null
+++ b/src/@core/scss/vue/pages/page-blog.scss
@@ -0,0 +1 @@
+@import '~@core/scss/base/pages/page-blog.scss';
diff --git a/src/@core/scss/vue/pages/page-faq.scss b/src/@core/scss/vue/pages/page-faq.scss
new file mode 100644
index 00000000..f089c3bc
--- /dev/null
+++ b/src/@core/scss/vue/pages/page-faq.scss
@@ -0,0 +1,8 @@
+@import '~@core/scss/base/pages/page-faq.scss';
+.faq-navigation {
+ .nav {
+ &.nav-pills {
+ height: 100%;
+ }
+ }
+}
diff --git a/src/@core/scss/vue/pages/page-knowledge-base.scss b/src/@core/scss/vue/pages/page-knowledge-base.scss
new file mode 100644
index 00000000..dab5c1da
--- /dev/null
+++ b/src/@core/scss/vue/pages/page-knowledge-base.scss
@@ -0,0 +1,23 @@
+@import '~@core/scss/base/pages/page-knowledge-base.scss';
+
+//list group circle active and focus
+.list-group-circle {
+ .list-group-item-action {
+ &:focus,
+ &:active {
+ background-color: transparent;
+ }
+ }
+}
+
+//list group circle active and focus
+.question-content {
+ ul {
+ li {
+ a {
+ color: inherit;
+ }
+ margin-bottom: 1rem;
+ }
+ }
+}
diff --git a/src/@core/scss/vue/pages/page-misc.scss b/src/@core/scss/vue/pages/page-misc.scss
new file mode 100644
index 00000000..12490e35
--- /dev/null
+++ b/src/@core/scss/vue/pages/page-misc.scss
@@ -0,0 +1,8 @@
+@import '~@core/scss/base/pages/page-misc.scss';
+
+.brand-logo {
+ svg {
+ height: 28px;
+ width: 40.95px;
+ }
+}
diff --git a/src/@core/scss/vue/pages/page-pricing.scss b/src/@core/scss/vue/pages/page-pricing.scss
new file mode 100644
index 00000000..808cef6f
--- /dev/null
+++ b/src/@core/scss/vue/pages/page-pricing.scss
@@ -0,0 +1,13 @@
+@import '~@core/scss/base/pages/page-pricing.scss';
+.pricing-card {
+ .annual-plan {
+ .plan-price {
+ sup {
+ left: 0;
+ }
+ sub {
+ right: 0;
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/vue/pages/page-profile.scss b/src/@core/scss/vue/pages/page-profile.scss
new file mode 100644
index 00000000..48cd0d4d
--- /dev/null
+++ b/src/@core/scss/vue/pages/page-profile.scss
@@ -0,0 +1,14 @@
+@import '~@core/scss/base/pages/page-profile.scss';
+
+// profile-header
+#user-profile {
+ .profile-header {
+ .profile-header-nav {
+ .navbar {
+ .navbar-toggler {
+ border: none;
+ }
+ }
+ }
+ }
+}
diff --git a/src/@core/scss/vue/pages/ui-feather.scss b/src/@core/scss/vue/pages/ui-feather.scss
new file mode 100644
index 00000000..ec518cd1
--- /dev/null
+++ b/src/@core/scss/vue/pages/ui-feather.scss
@@ -0,0 +1 @@
+@import '~@core/scss/base/pages/ui-feather.scss';
diff --git a/src/@core/utils/filter.js b/src/@core/utils/filter.js
new file mode 100644
index 00000000..96325977
--- /dev/null
+++ b/src/@core/utils/filter.js
@@ -0,0 +1,54 @@
+import { isToday } from './utils'
+
+export const kFormatter = num => (num > 999 ? `${(num / 1000).toFixed(1)}k` : num)
+
+export const title = (value, replacer = ' ') => {
+ if (!value) return ''
+ const str = value.toString()
+
+ const arr = str.split(replacer)
+ const capitalizedArray = []
+ arr.forEach(word => {
+ const capitalized = word.charAt(0).toUpperCase() + word.slice(1)
+ capitalizedArray.push(capitalized)
+ })
+ return capitalizedArray.join(' ')
+}
+
+export const avatarText = value => {
+ if (!value) return ''
+ const nameArray = value.split(' ')
+ return nameArray.map(word => word.charAt(0).toUpperCase()).join('')
+}
+
+/**
+ * Format and return date in Humanize format
+ * Intl docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format
+ * Intl Constructor: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat
+ * @param {String} value date to format
+ * @param {Object} formatting Intl object to format with
+ */
+export const formatDate = (value, formatting = { month: 'short', day: 'numeric', year: 'numeric' }) => {
+ if (!value) return value
+ return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))
+}
+
+/**
+ * Return short human friendly month representation of date
+ * Can also convert date to only time if date is of today (Better UX)
+ * @param {String} value date to format
+ * @param {Boolean} toTimeForCurrentDay Shall convert to time if day is today/current
+ */
+export const formatDateToMonthShort = (value, toTimeForCurrentDay = true) => {
+ const date = new Date(value)
+ let formatting = { month: 'short', day: 'numeric' }
+
+ if (toTimeForCurrentDay && isToday(date)) {
+ formatting = { hour: 'numeric', minute: 'numeric' }
+ }
+
+ return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value))
+}
+
+// Strip all the tags from markup and return plain text
+export const filterTags = value => value.replace(/<\/?[^>]+(>|$)/g, '')
diff --git a/src/@core/utils/utils.js b/src/@core/utils/utils.js
new file mode 100644
index 00000000..56638830
--- /dev/null
+++ b/src/@core/utils/utils.js
@@ -0,0 +1,73 @@
+import router from '@/router'
+// eslint-disable-next-line object-curly-newline
+import { reactive, getCurrentInstance, watch, toRefs } from '@vue/composition-api'
+
+export const isObject = obj => typeof obj === 'object' && obj !== null
+
+export const isToday = date => {
+ const today = new Date()
+ return (
+ /* eslint-disable operator-linebreak */
+ date.getDate() === today.getDate() &&
+ date.getMonth() === today.getMonth() &&
+ date.getFullYear() === today.getFullYear()
+ /* eslint-enable */
+ )
+}
+
+const getRandomFromArray = array => array[Math.floor(Math.random() * array.length)]
+
+// ? Light and Dark variant is not included
+// prettier-ignore
+export const getRandomBsVariant = () => getRandomFromArray(['primary', 'secondary', 'success', 'warning', 'danger', 'info'])
+
+export const isDynamicRouteActive = route => {
+ const { route: resolvedRoute } = router.resolve(route)
+ return resolvedRoute.path === router.currentRoute.path
+}
+
+// Thanks: https://medium.com/better-programming/reactive-vue-routes-with-the-composition-api-18c1abd878d1
+export const useRouter = () => {
+ const vm = getCurrentInstance().proxy
+ const state = reactive({
+ route: vm.$route,
+ })
+
+ watch(
+ () => vm.$route,
+ r => {
+ state.route = r
+ },
+ )
+
+ return { ...toRefs(state), router: vm.$router }
+}
+
+/**
+ * This is just enhancement over Object.extend [Gives deep extend]
+ * @param {target} a Object which contains values to be overridden
+ * @param {source} b Object which contains values to override
+ */
+// export const objectExtend = (a, b) => {
+// // Don't touch 'null' or 'undefined' objects.
+// if (a == null || b == null) {
+// return a
+// }
+
+// Object.keys(b).forEach(key => {
+// if (Object.prototype.toString.call(b[key]) === '[object Object]') {
+// if (Object.prototype.toString.call(a[key]) !== '[object Object]') {
+// // eslint-disable-next-line no-param-reassign
+// a[key] = b[key]
+// } else {
+// // eslint-disable-next-line no-param-reassign
+// a[key] = objectExtend(a[key], b[key])
+// }
+// } else {
+// // eslint-disable-next-line no-param-reassign
+// a[key] = b[key]
+// }
+// })
+
+// return a
+// }
diff --git a/src/@core/utils/validations/validations.js b/src/@core/utils/validations/validations.js
new file mode 100644
index 00000000..2d614f7f
--- /dev/null
+++ b/src/@core/utils/validations/validations.js
@@ -0,0 +1,173 @@
+import { extend, localize } from 'vee-validate'
+import {
+ required as rule_required,
+ email as rule_email,
+ min as rule_min,
+ confirmed as rule_confirmed,
+ regex as rule_regex,
+ between as rule_between,
+ alpha as rule_alpha,
+ integer as rule_integer,
+ digits as rule_digits,
+ alpha_dash as rule_alpha_dash,
+ alpha_num as rule_alpha_num,
+ length as rule_length,
+} from 'vee-validate/dist/rules'
+import ar from 'vee-validate/dist/locale/ar.json'
+import en from 'vee-validate/dist/locale/en.json'
+
+// eslint-disable-next-line object-curly-newline
+import { validatorPositive, validatorUrlValidator, validatorPassword, validatorCreditCard } from './validators'
+
+// ////////////////////////////////////////////////////////
+// General
+// ////////////////////////////////////////////////////////
+
+export const required = extend('required', rule_required)
+
+export const email = extend('email', rule_email)
+
+export const min = extend('min', rule_min)
+
+export const confirmed = extend('confirmed', rule_confirmed)
+
+export const regex = extend('regex', rule_regex)
+
+export const between = extend('between', rule_between)
+
+export const alpha = extend('alpha', rule_alpha)
+
+export const integer = extend('integer', rule_integer)
+
+export const digits = extend('digits', rule_digits)
+
+export const alphaDash = extend('alpha-dash', rule_alpha_dash)
+
+export const alphaNum = extend('alpha-num', rule_alpha_num)
+
+export const length = extend('length', rule_length)
+
+export const positive = extend('positive', {
+ validate: validatorPositive,
+ message: 'Please enter positive number!',
+})
+
+export const credit = extend('credit-card', {
+ validate: validatorCreditCard,
+ message: 'It is not valid credit card!',
+})
+
+export const password = extend('password', {
+ validate: validatorPassword,
+ message: 'Your {_field_} must contain at least one uppercase, one lowercase, one special character and one digit',
+})
+
+export const url = extend('url', {
+ validate: validatorUrlValidator,
+ message: 'URL is invalid',
+})
+
+// Install English and Arabic localizations.
+localize({
+ en: {
+ messages: en.messages,
+ names: {
+ email: 'Email',
+ password: 'Password',
+ },
+ fields: {
+ password: {
+ min: '{_field_} is too short, you want to get hacked?',
+ },
+ },
+ },
+ ar: {
+ messages: ar.messages,
+ names: {
+ email: 'البريد الإلكتروني',
+ password: 'كلمة السر',
+ },
+ fields: {
+ password: {
+ min: 'كلمة السر قصيرة جداً سيتم اختراقك',
+ },
+ },
+ },
+})
+// ////////////////////////////////////////////////////////
+// NOTE:
+// Quasar validation for reference only
+// Remove this note once development is finished and make sure to
+// to convert all of them in veevalidate version
+// ////////////////////////////////////////////////////////
+
+// export const required = (val) => {
+// return (val && val.length > 0) || '*Field is required'
+// }
+
+// export const required_obj = (obj) => {
+// if (obj === null || obj === undefined) return '*Field is required'
+// return (Object.entries(obj).length > 0 && obj.constructor === Object) || '*Field is required'
+// }
+
+// export const no_blank_spaces_arr = (arr) => {
+// return arr.every(val => (val.trim() && val.trim().length > 0)) || 'Blank Spaces are not allowed'
+// }
+
+// export const url = val => {
+// // If blank return
+// if (val === undefined || val === null || val.length === 0) return true
+
+// // Used
+// // https://stackoverflow.com/questions/4314741/url-regex-validation
+
+// // Other
+// // https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url
+// // https://www.w3resource.com/javascript-exercises/javascript-regexp-exercise-9.php
+// // https://www.geeksforgeeks.org/how-to-validate-url-using-regular-expression-in-javascript/
+
+// /* eslint-disable no-useless-escape */
+// const re = /^(http[s]?:\/\/){0,1}(www\.){0,1}[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,5}[\.]{0,1}/
+// /* eslint-enable no-useless-escape */
+// return re.test(val) || 'URL is invalid'
+// }
+
+// export const date = val => {
+
+// // If blank return
+// if (val === undefined || val === null || val.length === 0) return true
+
+// // https://github.com/quasarframework/quasar/blob/dev/ui/src/utils/patterns.js
+// return /^-?[\d]+\/[0-1]\d\/[0-3]\d$/.test(val) || 'Date is invalid'
+// }
+
+// export const max = (val, max) => {
+
+// // If blank return
+// if (val === undefined || val === null) return true
+
+// return val.length <= max || `More than ${max} characters are not allowed`
+// }
+
+// export const max_arr = (val, max) => {
+// return val.length <= max || `More than ${max} values are not allowed`
+// }
+
+// export const min = (val, min) => {
+
+// // If blank return
+// if (val === undefined || val === null || val.length === 0) return true
+
+// return val.length >= min || `Minimum ${min} characters are required`
+// }
+
+// export const num_range = (val, min, max) => {
+
+// // If blank return
+// if (val === undefined || val === null || val.length === 0) return true
+
+// const msg = 'Value is invalid'
+// if (min === null) return val <= max || msg
+// else if (max === null) return val >= min || msg
+// else return (val >= min && val <= max) || msg
+// }
diff --git a/src/@core/utils/validations/validators.js b/src/@core/utils/validations/validators.js
new file mode 100644
index 00000000..e07519bb
--- /dev/null
+++ b/src/@core/utils/validations/validators.js
@@ -0,0 +1,32 @@
+export const validatorPositive = value => {
+ if (value >= 0) {
+ return true
+ }
+ return false
+}
+
+export const validatorPassword = password => {
+ /* eslint-disable no-useless-escape */
+ const regExp = /(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%&*()]).{8,}/
+ /* eslint-enable no-useless-escape */
+ const validPassword = regExp.test(password)
+ return validPassword
+}
+
+export const validatorCreditCard = creditnum => {
+ /* eslint-disable no-useless-escape */
+ const cRegExp = /^(?:3[47][0-9]{13})$/
+ /* eslint-enable no-useless-escape */
+ const validCreditCard = cRegExp.test(creditnum)
+ return validCreditCard
+}
+
+export const validatorUrlValidator = val => {
+ if (val === undefined || val === null || val.length === 0) {
+ return true
+ }
+ /* eslint-disable no-useless-escape */
+ const re = /^(http[s]?:\/\/){0,1}(www\.){0,1}[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,5}[\.]{0,1}/
+ /* eslint-enable no-useless-escape */
+ return re.test(val)
+}
diff --git a/src/App.vue b/src/App.vue
new file mode 100644
index 00000000..8e93c877
--- /dev/null
+++ b/src/App.vue
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/assets/images/avatars/1-small.png b/src/assets/images/avatars/1-small.png
new file mode 100644
index 00000000..406d0bab
Binary files /dev/null and b/src/assets/images/avatars/1-small.png differ
diff --git a/src/assets/images/avatars/1.png b/src/assets/images/avatars/1.png
new file mode 100644
index 00000000..eeb2fbb0
Binary files /dev/null and b/src/assets/images/avatars/1.png differ
diff --git a/src/assets/images/avatars/10-small.png b/src/assets/images/avatars/10-small.png
new file mode 100644
index 00000000..099a20df
Binary files /dev/null and b/src/assets/images/avatars/10-small.png differ
diff --git a/src/assets/images/avatars/10.png b/src/assets/images/avatars/10.png
new file mode 100644
index 00000000..ff3d20ad
Binary files /dev/null and b/src/assets/images/avatars/10.png differ
diff --git a/src/assets/images/avatars/11-small.png b/src/assets/images/avatars/11-small.png
new file mode 100644
index 00000000..cc1b38e7
Binary files /dev/null and b/src/assets/images/avatars/11-small.png differ
diff --git a/src/assets/images/avatars/11.png b/src/assets/images/avatars/11.png
new file mode 100644
index 00000000..02fce4da
Binary files /dev/null and b/src/assets/images/avatars/11.png differ
diff --git a/src/assets/images/avatars/12-small.png b/src/assets/images/avatars/12-small.png
new file mode 100644
index 00000000..4728bfad
Binary files /dev/null and b/src/assets/images/avatars/12-small.png differ
diff --git a/src/assets/images/avatars/12.png b/src/assets/images/avatars/12.png
new file mode 100644
index 00000000..50e79add
Binary files /dev/null and b/src/assets/images/avatars/12.png differ
diff --git a/src/assets/images/avatars/13-small.png b/src/assets/images/avatars/13-small.png
new file mode 100644
index 00000000..0eddb966
Binary files /dev/null and b/src/assets/images/avatars/13-small.png differ
diff --git a/src/assets/images/avatars/13.png b/src/assets/images/avatars/13.png
new file mode 100644
index 00000000..07108ce6
Binary files /dev/null and b/src/assets/images/avatars/13.png differ
diff --git a/src/assets/images/avatars/2-small.png b/src/assets/images/avatars/2-small.png
new file mode 100644
index 00000000..523ee62a
Binary files /dev/null and b/src/assets/images/avatars/2-small.png differ
diff --git a/src/assets/images/avatars/2.png b/src/assets/images/avatars/2.png
new file mode 100644
index 00000000..22945afd
Binary files /dev/null and b/src/assets/images/avatars/2.png differ
diff --git a/src/assets/images/avatars/3-small.png b/src/assets/images/avatars/3-small.png
new file mode 100644
index 00000000..d926412c
Binary files /dev/null and b/src/assets/images/avatars/3-small.png differ
diff --git a/src/assets/images/avatars/3.png b/src/assets/images/avatars/3.png
new file mode 100644
index 00000000..0382f7d4
Binary files /dev/null and b/src/assets/images/avatars/3.png differ
diff --git a/src/assets/images/avatars/4-small.png b/src/assets/images/avatars/4-small.png
new file mode 100644
index 00000000..11248ccc
Binary files /dev/null and b/src/assets/images/avatars/4-small.png differ
diff --git a/src/assets/images/avatars/4.png b/src/assets/images/avatars/4.png
new file mode 100644
index 00000000..17c57d21
Binary files /dev/null and b/src/assets/images/avatars/4.png differ
diff --git a/src/assets/images/avatars/5-small.png b/src/assets/images/avatars/5-small.png
new file mode 100644
index 00000000..aba8b4ac
Binary files /dev/null and b/src/assets/images/avatars/5-small.png differ
diff --git a/src/assets/images/avatars/5.png b/src/assets/images/avatars/5.png
new file mode 100644
index 00000000..38505ed9
Binary files /dev/null and b/src/assets/images/avatars/5.png differ
diff --git a/src/assets/images/avatars/6-small.png b/src/assets/images/avatars/6-small.png
new file mode 100644
index 00000000..2f5fe510
Binary files /dev/null and b/src/assets/images/avatars/6-small.png differ
diff --git a/src/assets/images/avatars/6.png b/src/assets/images/avatars/6.png
new file mode 100644
index 00000000..6d91822b
Binary files /dev/null and b/src/assets/images/avatars/6.png differ
diff --git a/src/assets/images/avatars/7-small.png b/src/assets/images/avatars/7-small.png
new file mode 100644
index 00000000..9ae7593e
Binary files /dev/null and b/src/assets/images/avatars/7-small.png differ
diff --git a/src/assets/images/avatars/7.png b/src/assets/images/avatars/7.png
new file mode 100644
index 00000000..8874d68e
Binary files /dev/null and b/src/assets/images/avatars/7.png differ
diff --git a/src/assets/images/avatars/8-small.png b/src/assets/images/avatars/8-small.png
new file mode 100644
index 00000000..e061c7ae
Binary files /dev/null and b/src/assets/images/avatars/8-small.png differ
diff --git a/src/assets/images/avatars/8.png b/src/assets/images/avatars/8.png
new file mode 100644
index 00000000..e2648517
Binary files /dev/null and b/src/assets/images/avatars/8.png differ
diff --git a/src/assets/images/avatars/9-small.png b/src/assets/images/avatars/9-small.png
new file mode 100644
index 00000000..d23f1cb3
Binary files /dev/null and b/src/assets/images/avatars/9-small.png differ
diff --git a/src/assets/images/avatars/9.png b/src/assets/images/avatars/9.png
new file mode 100644
index 00000000..9c63a9ab
Binary files /dev/null and b/src/assets/images/avatars/9.png differ
diff --git a/src/assets/images/flags/de.png b/src/assets/images/flags/de.png
new file mode 100644
index 00000000..f078fdfe
Binary files /dev/null and b/src/assets/images/flags/de.png differ
diff --git a/src/assets/images/flags/en.png b/src/assets/images/flags/en.png
new file mode 100644
index 00000000..4e47eaaf
Binary files /dev/null and b/src/assets/images/flags/en.png differ
diff --git a/src/assets/images/flags/fr.png b/src/assets/images/flags/fr.png
new file mode 100644
index 00000000..6a196cb7
Binary files /dev/null and b/src/assets/images/flags/fr.png differ
diff --git a/src/assets/images/flags/pt.png b/src/assets/images/flags/pt.png
new file mode 100644
index 00000000..56379a61
Binary files /dev/null and b/src/assets/images/flags/pt.png differ
diff --git a/src/assets/images/icons/angular.svg b/src/assets/images/icons/angular.svg
new file mode 100644
index 00000000..ec18c85b
--- /dev/null
+++ b/src/assets/images/icons/angular.svg
@@ -0,0 +1,15 @@
+
+
+ angular
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/images/icons/apple-safari.png b/src/assets/images/icons/apple-safari.png
new file mode 100644
index 00000000..c388a19c
Binary files /dev/null and b/src/assets/images/icons/apple-safari.png differ
diff --git a/src/assets/images/icons/book.svg b/src/assets/images/icons/book.svg
new file mode 100644
index 00000000..96beb5f1
--- /dev/null
+++ b/src/assets/images/icons/book.svg
@@ -0,0 +1,29 @@
+
+
+ Book
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/images/icons/bootstrap.svg b/src/assets/images/icons/bootstrap.svg
new file mode 100644
index 00000000..f1f0737d
--- /dev/null
+++ b/src/assets/images/icons/bootstrap.svg
@@ -0,0 +1,18 @@
+
+
+ bootstrap
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/images/icons/brush.svg b/src/assets/images/icons/brush.svg
new file mode 100644
index 00000000..145e16fe
--- /dev/null
+++ b/src/assets/images/icons/brush.svg
@@ -0,0 +1,31 @@
+
+
+ brush
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/images/icons/doc.png b/src/assets/images/icons/doc.png
new file mode 100644
index 00000000..0c6f99b6
Binary files /dev/null and b/src/assets/images/icons/doc.png differ
diff --git a/src/assets/images/icons/drive.png b/src/assets/images/icons/drive.png
new file mode 100644
index 00000000..7d9867b0
Binary files /dev/null and b/src/assets/images/icons/drive.png differ
diff --git a/src/assets/images/icons/dropbox.png b/src/assets/images/icons/dropbox.png
new file mode 100644
index 00000000..113ad07c
Binary files /dev/null and b/src/assets/images/icons/dropbox.png differ
diff --git a/src/assets/images/icons/figma.svg b/src/assets/images/icons/figma.svg
new file mode 100644
index 00000000..b8433918
--- /dev/null
+++ b/src/assets/images/icons/figma.svg
@@ -0,0 +1,19 @@
+
+
+ figma
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/images/icons/file-icons/doc.png b/src/assets/images/icons/file-icons/doc.png
new file mode 100644
index 00000000..2b87843c
Binary files /dev/null and b/src/assets/images/icons/file-icons/doc.png differ
diff --git a/src/assets/images/icons/file-icons/onedrive.png b/src/assets/images/icons/file-icons/onedrive.png
new file mode 100644
index 00000000..f8307c66
Binary files /dev/null and b/src/assets/images/icons/file-icons/onedrive.png differ
diff --git a/src/assets/images/icons/file-icons/pdf.png b/src/assets/images/icons/file-icons/pdf.png
new file mode 100644
index 00000000..a0a85a02
Binary files /dev/null and b/src/assets/images/icons/file-icons/pdf.png differ
diff --git a/src/assets/images/icons/file-icons/psd.png b/src/assets/images/icons/file-icons/psd.png
new file mode 100644
index 00000000..c23b1606
Binary files /dev/null and b/src/assets/images/icons/file-icons/psd.png differ
diff --git a/src/assets/images/icons/file-icons/sketch.png b/src/assets/images/icons/file-icons/sketch.png
new file mode 100644
index 00000000..ef378b44
Binary files /dev/null and b/src/assets/images/icons/file-icons/sketch.png differ
diff --git a/src/assets/images/icons/google-chrome.png b/src/assets/images/icons/google-chrome.png
new file mode 100644
index 00000000..c74f4ea7
Binary files /dev/null and b/src/assets/images/icons/google-chrome.png differ
diff --git a/src/assets/images/icons/icloud-1.png b/src/assets/images/icons/icloud-1.png
new file mode 100644
index 00000000..1b088721
Binary files /dev/null and b/src/assets/images/icons/icloud-1.png differ
diff --git a/src/assets/images/icons/icloud.png b/src/assets/images/icons/icloud.png
new file mode 100644
index 00000000..574e2fff
Binary files /dev/null and b/src/assets/images/icons/icloud.png differ
diff --git a/src/assets/images/icons/internet-explorer.png b/src/assets/images/icons/internet-explorer.png
new file mode 100644
index 00000000..b5255a62
Binary files /dev/null and b/src/assets/images/icons/internet-explorer.png differ
diff --git a/src/assets/images/icons/internet.png b/src/assets/images/icons/internet.png
new file mode 100644
index 00000000..06290e1d
Binary files /dev/null and b/src/assets/images/icons/internet.png differ
diff --git a/src/assets/images/icons/jpg.png b/src/assets/images/icons/jpg.png
new file mode 100644
index 00000000..bbb619ce
Binary files /dev/null and b/src/assets/images/icons/jpg.png differ
diff --git a/src/assets/images/icons/js.png b/src/assets/images/icons/js.png
new file mode 100644
index 00000000..820262ff
Binary files /dev/null and b/src/assets/images/icons/js.png differ
diff --git a/src/assets/images/icons/json.png b/src/assets/images/icons/json.png
new file mode 100644
index 00000000..fee45284
Binary files /dev/null and b/src/assets/images/icons/json.png differ
diff --git a/src/assets/images/icons/mozila-firefox.png b/src/assets/images/icons/mozila-firefox.png
new file mode 100644
index 00000000..5634271b
Binary files /dev/null and b/src/assets/images/icons/mozila-firefox.png differ
diff --git a/src/assets/images/icons/onedrive.png b/src/assets/images/icons/onedrive.png
new file mode 100644
index 00000000..d8e950d6
Binary files /dev/null and b/src/assets/images/icons/onedrive.png differ
diff --git a/src/assets/images/icons/onedrivenew.png b/src/assets/images/icons/onedrivenew.png
new file mode 100644
index 00000000..f8307c66
Binary files /dev/null and b/src/assets/images/icons/onedrivenew.png differ
diff --git a/src/assets/images/icons/opera.png b/src/assets/images/icons/opera.png
new file mode 100644
index 00000000..478d2111
Binary files /dev/null and b/src/assets/images/icons/opera.png differ
diff --git a/src/assets/images/icons/parachute.svg b/src/assets/images/icons/parachute.svg
new file mode 100644
index 00000000..ceeaef71
--- /dev/null
+++ b/src/assets/images/icons/parachute.svg
@@ -0,0 +1,41 @@
+
+
+ parachute
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/images/icons/pdf.png b/src/assets/images/icons/pdf.png
new file mode 100644
index 00000000..a0a85a02
Binary files /dev/null and b/src/assets/images/icons/pdf.png differ
diff --git a/src/assets/images/icons/psd.png b/src/assets/images/icons/psd.png
new file mode 100644
index 00000000..c23b1606
Binary files /dev/null and b/src/assets/images/icons/psd.png differ
diff --git a/src/assets/images/icons/react.svg b/src/assets/images/icons/react.svg
new file mode 100644
index 00000000..697088b5
--- /dev/null
+++ b/src/assets/images/icons/react.svg
@@ -0,0 +1,20 @@
+
+
+ react
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/images/icons/rocket.svg b/src/assets/images/icons/rocket.svg
new file mode 100644
index 00000000..71bae8a3
--- /dev/null
+++ b/src/assets/images/icons/rocket.svg
@@ -0,0 +1,47 @@
+
+
+ rocket
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/images/icons/sketch.png b/src/assets/images/icons/sketch.png
new file mode 100644
index 00000000..ef378b44
Binary files /dev/null and b/src/assets/images/icons/sketch.png differ
diff --git a/src/assets/images/icons/speaker.svg b/src/assets/images/icons/speaker.svg
new file mode 100644
index 00000000..863a9475
--- /dev/null
+++ b/src/assets/images/icons/speaker.svg
@@ -0,0 +1,26 @@
+
+
+ speaker
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/images/icons/star.svg b/src/assets/images/icons/star.svg
new file mode 100644
index 00000000..cf6615df
--- /dev/null
+++ b/src/assets/images/icons/star.svg
@@ -0,0 +1,24 @@
+
+
+ star
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/images/icons/toolbox.svg b/src/assets/images/icons/toolbox.svg
new file mode 100644
index 00000000..aa281293
--- /dev/null
+++ b/src/assets/images/icons/toolbox.svg
@@ -0,0 +1,28 @@
+
+
+ toolbox
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/images/icons/txt.png b/src/assets/images/icons/txt.png
new file mode 100644
index 00000000..080d5b5e
Binary files /dev/null and b/src/assets/images/icons/txt.png differ
diff --git a/src/assets/images/icons/unknown.png b/src/assets/images/icons/unknown.png
new file mode 100644
index 00000000..2b87843c
Binary files /dev/null and b/src/assets/images/icons/unknown.png differ
diff --git a/src/assets/images/icons/vuejs.svg b/src/assets/images/icons/vuejs.svg
new file mode 100644
index 00000000..2b1218b5
--- /dev/null
+++ b/src/assets/images/icons/vuejs.svg
@@ -0,0 +1,18 @@
+
+
+ vuejs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/images/icons/xls.png b/src/assets/images/icons/xls.png
new file mode 100644
index 00000000..cde1c311
Binary files /dev/null and b/src/assets/images/icons/xls.png differ
diff --git a/src/assets/images/logo/favicon.ico b/src/assets/images/logo/favicon.ico
new file mode 100644
index 00000000..c0721165
Binary files /dev/null and b/src/assets/images/logo/favicon.ico differ
diff --git a/src/assets/images/logo/logo.png b/src/assets/images/logo/logo.png
new file mode 100644
index 00000000..f89b7768
Binary files /dev/null and b/src/assets/images/logo/logo.png differ
diff --git a/src/assets/images/logo/logo.svg b/src/assets/images/logo/logo.svg
new file mode 100644
index 00000000..b58355a7
--- /dev/null
+++ b/src/assets/images/logo/logo.svg
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/assets/images/logo/vuexy-logo.png b/src/assets/images/logo/vuexy-logo.png
new file mode 100644
index 00000000..d012fb48
Binary files /dev/null and b/src/assets/images/logo/vuexy-logo.png differ
diff --git a/src/assets/images/pages/arrow-down.png b/src/assets/images/pages/arrow-down.png
new file mode 100644
index 00000000..232d6183
Binary files /dev/null and b/src/assets/images/pages/arrow-down.png differ
diff --git a/src/assets/images/pages/auth-v1-bottom-bg.png b/src/assets/images/pages/auth-v1-bottom-bg.png
new file mode 100644
index 00000000..2cb5fa1d
Binary files /dev/null and b/src/assets/images/pages/auth-v1-bottom-bg.png differ
diff --git a/src/assets/images/pages/auth-v1-top-bg.png b/src/assets/images/pages/auth-v1-top-bg.png
new file mode 100644
index 00000000..786b10a3
Binary files /dev/null and b/src/assets/images/pages/auth-v1-top-bg.png differ
diff --git a/src/assets/images/pages/calendar-illustration.png b/src/assets/images/pages/calendar-illustration.png
new file mode 100644
index 00000000..988b8a10
Binary files /dev/null and b/src/assets/images/pages/calendar-illustration.png differ
diff --git a/src/assets/images/pages/coming-soon-dark.svg b/src/assets/images/pages/coming-soon-dark.svg
new file mode 100644
index 00000000..006de527
--- /dev/null
+++ b/src/assets/images/pages/coming-soon-dark.svg
@@ -0,0 +1,265 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/assets/images/pages/coming-soon.svg b/src/assets/images/pages/coming-soon.svg
new file mode 100644
index 00000000..ee515539
--- /dev/null
+++ b/src/assets/images/pages/coming-soon.svg
@@ -0,0 +1,263 @@
+
+
+ Illustration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/images/pages/content-img-1.jpg b/src/assets/images/pages/content-img-1.jpg
new file mode 100644
index 00000000..84d3e3a9
Binary files /dev/null and b/src/assets/images/pages/content-img-1.jpg differ
diff --git a/src/assets/images/pages/content-img-2.jpg b/src/assets/images/pages/content-img-2.jpg
new file mode 100644
index 00000000..caebb052
Binary files /dev/null and b/src/assets/images/pages/content-img-2.jpg differ
diff --git a/src/assets/images/pages/content-img-3.jpg b/src/assets/images/pages/content-img-3.jpg
new file mode 100644
index 00000000..ab852c35
Binary files /dev/null and b/src/assets/images/pages/content-img-3.jpg differ
diff --git a/src/assets/images/pages/content-img-4.jpg b/src/assets/images/pages/content-img-4.jpg
new file mode 100644
index 00000000..cf3144d7
Binary files /dev/null and b/src/assets/images/pages/content-img-4.jpg differ
diff --git a/src/assets/images/pages/error-dark.svg b/src/assets/images/pages/error-dark.svg
new file mode 100644
index 00000000..2d591ce0
--- /dev/null
+++ b/src/assets/images/pages/error-dark.svg
@@ -0,0 +1,287 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/assets/images/pages/error.svg b/src/assets/images/pages/error.svg
new file mode 100644
index 00000000..4370f5ec
--- /dev/null
+++ b/src/assets/images/pages/error.svg
@@ -0,0 +1,299 @@
+
+
+ Illustration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/images/pages/forgot-password-v2-dark.svg b/src/assets/images/pages/forgot-password-v2-dark.svg
new file mode 100644
index 00000000..5df188c2
--- /dev/null
+++ b/src/assets/images/pages/forgot-password-v2-dark.svg
@@ -0,0 +1,206 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/assets/images/pages/forgot-password-v2.svg b/src/assets/images/pages/forgot-password-v2.svg
new file mode 100644
index 00000000..10dd1c85
--- /dev/null
+++ b/src/assets/images/pages/forgot-password-v2.svg
@@ -0,0 +1,207 @@
+
+
+ Illustration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/images/pages/forgot-password.png b/src/assets/images/pages/forgot-password.png
new file mode 100644
index 00000000..fd896af6
Binary files /dev/null and b/src/assets/images/pages/forgot-password.png differ
diff --git a/src/assets/images/pages/kb-image.jpg b/src/assets/images/pages/kb-image.jpg
new file mode 100644
index 00000000..17ff1ff7
Binary files /dev/null and b/src/assets/images/pages/kb-image.jpg differ
diff --git a/src/assets/images/pages/login-v2-dark.svg b/src/assets/images/pages/login-v2-dark.svg
new file mode 100644
index 00000000..ac8c90dd
--- /dev/null
+++ b/src/assets/images/pages/login-v2-dark.svg
@@ -0,0 +1,551 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/assets/images/pages/login-v2.svg b/src/assets/images/pages/login-v2.svg
new file mode 100644
index 00000000..cc1cb9de
--- /dev/null
+++ b/src/assets/images/pages/login-v2.svg
@@ -0,0 +1,558 @@
+
+
+ Illustration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/images/pages/login/facebook.svg b/src/assets/images/pages/login/facebook.svg
new file mode 100644
index 00000000..6227a2e1
--- /dev/null
+++ b/src/assets/images/pages/login/facebook.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/images/pages/login/github.svg b/src/assets/images/pages/login/github.svg
new file mode 100644
index 00000000..13678df6
--- /dev/null
+++ b/src/assets/images/pages/login/github.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/images/pages/login/google.svg b/src/assets/images/pages/login/google.svg
new file mode 100644
index 00000000..2218d963
--- /dev/null
+++ b/src/assets/images/pages/login/google.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/images/pages/login/twitter.svg b/src/assets/images/pages/login/twitter.svg
new file mode 100644
index 00000000..9ac9e0b9
--- /dev/null
+++ b/src/assets/images/pages/login/twitter.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/images/pages/not-authorized-dark.svg b/src/assets/images/pages/not-authorized-dark.svg
new file mode 100644
index 00000000..a17e5a4b
--- /dev/null
+++ b/src/assets/images/pages/not-authorized-dark.svg
@@ -0,0 +1,206 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/assets/images/pages/not-authorized.svg b/src/assets/images/pages/not-authorized.svg
new file mode 100644
index 00000000..a2f19d63
--- /dev/null
+++ b/src/assets/images/pages/not-authorized.svg
@@ -0,0 +1,207 @@
+
+
+ Illustration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/images/pages/pixinvent-logo.png b/src/assets/images/pages/pixinvent-logo.png
new file mode 100644
index 00000000..f796184a
Binary files /dev/null and b/src/assets/images/pages/pixinvent-logo.png differ
diff --git a/src/assets/images/pages/register-v2-dark.svg b/src/assets/images/pages/register-v2-dark.svg
new file mode 100644
index 00000000..c795fa17
--- /dev/null
+++ b/src/assets/images/pages/register-v2-dark.svg
@@ -0,0 +1,340 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/assets/images/pages/register-v2.svg b/src/assets/images/pages/register-v2.svg
new file mode 100644
index 00000000..48b7e976
--- /dev/null
+++ b/src/assets/images/pages/register-v2.svg
@@ -0,0 +1,351 @@
+
+
+ Group
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/images/pages/reset-password-v2-dark.svg b/src/assets/images/pages/reset-password-v2-dark.svg
new file mode 100644
index 00000000..a7b406a7
--- /dev/null
+++ b/src/assets/images/pages/reset-password-v2-dark.svg
@@ -0,0 +1,287 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/assets/images/pages/reset-password-v2.svg b/src/assets/images/pages/reset-password-v2.svg
new file mode 100644
index 00000000..62f99769
--- /dev/null
+++ b/src/assets/images/pages/reset-password-v2.svg
@@ -0,0 +1,299 @@
+
+
+ Illustration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/images/pages/under-maintenance-dark.svg b/src/assets/images/pages/under-maintenance-dark.svg
new file mode 100644
index 00000000..430adea6
--- /dev/null
+++ b/src/assets/images/pages/under-maintenance-dark.svg
@@ -0,0 +1,176 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/assets/images/pages/under-maintenance.svg b/src/assets/images/pages/under-maintenance.svg
new file mode 100644
index 00000000..8861fdc6
--- /dev/null
+++ b/src/assets/images/pages/under-maintenance.svg
@@ -0,0 +1,178 @@
+
+
+ Illustration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/images/portrait/small/avatar-s-1.jpg b/src/assets/images/portrait/small/avatar-s-1.jpg
new file mode 100644
index 00000000..a805eecb
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-1.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-10.jpg b/src/assets/images/portrait/small/avatar-s-10.jpg
new file mode 100644
index 00000000..a530830a
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-10.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-11.jpg b/src/assets/images/portrait/small/avatar-s-11.jpg
new file mode 100644
index 00000000..87281eec
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-11.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-12.jpg b/src/assets/images/portrait/small/avatar-s-12.jpg
new file mode 100644
index 00000000..7fe71859
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-12.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-13.jpg b/src/assets/images/portrait/small/avatar-s-13.jpg
new file mode 100644
index 00000000..a1ea7a61
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-13.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-14.jpg b/src/assets/images/portrait/small/avatar-s-14.jpg
new file mode 100644
index 00000000..fdb53381
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-14.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-15.jpg b/src/assets/images/portrait/small/avatar-s-15.jpg
new file mode 100644
index 00000000..28277842
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-15.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-16.jpg b/src/assets/images/portrait/small/avatar-s-16.jpg
new file mode 100644
index 00000000..5e0fdff3
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-16.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-17.jpg b/src/assets/images/portrait/small/avatar-s-17.jpg
new file mode 100644
index 00000000..c0fb00ec
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-17.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-18.jpg b/src/assets/images/portrait/small/avatar-s-18.jpg
new file mode 100644
index 00000000..662b82fe
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-18.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-19.jpg b/src/assets/images/portrait/small/avatar-s-19.jpg
new file mode 100644
index 00000000..066d8afb
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-19.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-2.jpg b/src/assets/images/portrait/small/avatar-s-2.jpg
new file mode 100644
index 00000000..f865a798
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-2.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-20.jpg b/src/assets/images/portrait/small/avatar-s-20.jpg
new file mode 100644
index 00000000..aef73817
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-20.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-21.jpg b/src/assets/images/portrait/small/avatar-s-21.jpg
new file mode 100644
index 00000000..a805eecb
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-21.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-22.jpg b/src/assets/images/portrait/small/avatar-s-22.jpg
new file mode 100644
index 00000000..f865a798
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-22.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-23.jpg b/src/assets/images/portrait/small/avatar-s-23.jpg
new file mode 100644
index 00000000..8b240d36
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-23.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-24.jpg b/src/assets/images/portrait/small/avatar-s-24.jpg
new file mode 100644
index 00000000..6a1882b1
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-24.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-25.jpg b/src/assets/images/portrait/small/avatar-s-25.jpg
new file mode 100644
index 00000000..35f3bfd9
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-25.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-26.jpg b/src/assets/images/portrait/small/avatar-s-26.jpg
new file mode 100644
index 00000000..a05d68cb
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-26.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-3.jpg b/src/assets/images/portrait/small/avatar-s-3.jpg
new file mode 100644
index 00000000..8b240d36
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-3.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-4.jpg b/src/assets/images/portrait/small/avatar-s-4.jpg
new file mode 100644
index 00000000..6a1882b1
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-4.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-5.jpg b/src/assets/images/portrait/small/avatar-s-5.jpg
new file mode 100644
index 00000000..35f3bfd9
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-5.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-6.jpg b/src/assets/images/portrait/small/avatar-s-6.jpg
new file mode 100644
index 00000000..a05d68cb
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-6.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-7.jpg b/src/assets/images/portrait/small/avatar-s-7.jpg
new file mode 100644
index 00000000..f6d6793c
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-7.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-8.jpg b/src/assets/images/portrait/small/avatar-s-8.jpg
new file mode 100644
index 00000000..6cee846a
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-8.jpg differ
diff --git a/src/assets/images/portrait/small/avatar-s-9.jpg b/src/assets/images/portrait/small/avatar-s-9.jpg
new file mode 100644
index 00000000..042c2db7
Binary files /dev/null and b/src/assets/images/portrait/small/avatar-s-9.jpg differ
diff --git a/src/assets/scss/style.scss b/src/assets/scss/style.scss
new file mode 100644
index 00000000..28933bed
--- /dev/null
+++ b/src/assets/scss/style.scss
@@ -0,0 +1,6 @@
+/*================================================================================
+
+NOTE:
+------
+PLACE HERE YOUR OWN SCSS CODES AND IF NEEDED, OVERRIDE THE STYLES FROM THE OTHER STYLESHEETS.
+WE WILL RELEASE FUTURE UPDATES SO IN ORDER TO NOT OVERWRITE YOUR STYLES IT'S BETTER LIKE THIS. */
diff --git a/src/assets/scss/variables/_variables-components.scss b/src/assets/scss/variables/_variables-components.scss
new file mode 100644
index 00000000..64cf5503
--- /dev/null
+++ b/src/assets/scss/variables/_variables-components.scss
@@ -0,0 +1,3 @@
+// ================================================================================================
+// ? TIP: It is recommended to use this file for overriding component variables.
+// ================================================================================================
diff --git a/src/assets/scss/variables/_variables.scss b/src/assets/scss/variables/_variables.scss
new file mode 100644
index 00000000..7a659f93
--- /dev/null
+++ b/src/assets/scss/variables/_variables.scss
@@ -0,0 +1,3 @@
+// ================================================================================================
+// ? TIP: It is recommended to use this file for overriding bootstrap variables.
+// ================================================================================================
diff --git a/src/auth/jwt/useJwt.js b/src/auth/jwt/useJwt.js
new file mode 100644
index 00000000..8307a1ab
--- /dev/null
+++ b/src/auth/jwt/useJwt.js
@@ -0,0 +1,5 @@
+import useJwt from '@core/auth/jwt/useJwt'
+import axios from '@axios'
+
+const { jwt } = useJwt(axios, {})
+export default jwt
diff --git a/src/auth/utils.js b/src/auth/utils.js
new file mode 100644
index 00000000..e171aaed
--- /dev/null
+++ b/src/auth/utils.js
@@ -0,0 +1,27 @@
+import useJwt from '@/auth/jwt/useJwt'
+
+/**
+ * Return if user is logged in
+ * This is completely up to you and how you want to store the token in your frontend application
+ * e.g. If you are using cookies to store the application please update this function
+ */
+// eslint-disable-next-line arrow-body-style
+export const isUserLoggedIn = () => {
+ return localStorage.getItem('userData') && localStorage.getItem(useJwt.jwtConfig.storageTokenKeyName)
+}
+
+export const getUserData = () => JSON.parse(localStorage.getItem('userData'))
+
+/**
+ * This function is used for demo purpose route navigation
+ * In real app you won't need this function because your app will navigate to same route for each users regardless of ability
+ * Please note role field is just for showing purpose it's not used by anything in frontend
+ * We are checking role just for ease
+ * NOTE: If you have different pages to navigate based on user ability then this function can be useful. However, you need to update it.
+ * @param {String} userRole Role of user
+ */
+export const getHomeRouteForLoggedInUser = userRole => {
+ if (userRole === 'admin') return '/'
+ if (userRole === 'client') return { name: 'access-control' }
+ return { name: 'auth-login' }
+}
diff --git a/src/components/ListElement.vue b/src/components/ListElement.vue
new file mode 100644
index 00000000..d4ba286e
--- /dev/null
+++ b/src/components/ListElement.vue
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+ Mittie Evans
+
+ Updated 12m ago
+
+
+
+ Design
+
+
+
+
+ Need a designer to form branding essentials for my business.
+
+
+ Design high-quality designs, graphics, mock-ups and layouts for both new and existing web sites/ web
+ applications / mobile applications.
+
+
+
+
+
+
+ $
+
+
+ 9,800
+
+ / month
+
+
+ Full Time
+
+
+
+
+ Apply For This Job
+
+
+
+
+
+
diff --git a/src/global-components.js b/src/global-components.js
new file mode 100644
index 00000000..b18e575d
--- /dev/null
+++ b/src/global-components.js
@@ -0,0 +1,4 @@
+import Vue from 'vue'
+import FeatherIcon from '@core/components/feather-icon/FeatherIcon.vue'
+
+Vue.component(FeatherIcon.name, FeatherIcon)
diff --git a/src/layouts/components/Navbar.vue b/src/layouts/components/Navbar.vue
new file mode 100644
index 00000000..d0d4aa27
--- /dev/null
+++ b/src/layouts/components/Navbar.vue
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ selected_chain.chain_name }}
+
+ {{ selected_chain.api }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/layouts/full/LayoutFull.vue b/src/layouts/full/LayoutFull.vue
new file mode 100644
index 00000000..b91c5050
--- /dev/null
+++ b/src/layouts/full/LayoutFull.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/src/layouts/horizontal/LayoutHorizontal.vue b/src/layouts/horizontal/LayoutHorizontal.vue
new file mode 100644
index 00000000..03d64a45
--- /dev/null
+++ b/src/layouts/horizontal/LayoutHorizontal.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/layouts/vertical/LayoutVertical.vue b/src/layouts/vertical/LayoutVertical.vue
new file mode 100644
index 00000000..f912733c
--- /dev/null
+++ b/src/layouts/vertical/LayoutVertical.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/libs/acl/ability.js b/src/libs/acl/ability.js
new file mode 100644
index 00000000..e4797040
--- /dev/null
+++ b/src/libs/acl/ability.js
@@ -0,0 +1,11 @@
+import { Ability } from '@casl/ability'
+import { initialAbility } from './config'
+
+// Read ability from localStorage
+// * Handles auto fetching previous abilities if already logged in user
+// ? You can update this if you store user abilities to more secure place
+// ! Anyone can update localStorage so be careful and please update this
+const userData = JSON.parse(localStorage.getItem('userData'))
+const existingAbility = userData ? userData.ability : null
+
+export default new Ability(existingAbility || initialAbility)
diff --git a/src/libs/acl/config.js b/src/libs/acl/config.js
new file mode 100644
index 00000000..e0ede0ec
--- /dev/null
+++ b/src/libs/acl/config.js
@@ -0,0 +1,8 @@
+export const initialAbility = [
+ {
+ action: 'read',
+ subject: 'Auth',
+ },
+]
+
+export const _ = undefined
diff --git a/src/libs/acl/index.js b/src/libs/acl/index.js
new file mode 100644
index 00000000..71bd56ae
--- /dev/null
+++ b/src/libs/acl/index.js
@@ -0,0 +1,5 @@
+import Vue from 'vue'
+import { abilitiesPlugin } from '@casl/vue'
+import ability from './ability'
+
+Vue.use(abilitiesPlugin, ability)
diff --git a/src/libs/acl/routeProtection.js b/src/libs/acl/routeProtection.js
new file mode 100644
index 00000000..31d20766
--- /dev/null
+++ b/src/libs/acl/routeProtection.js
@@ -0,0 +1,5 @@
+import ability from './ability'
+
+export const canNavigate = to => to.matched.some(route => ability.can(route.meta.action || 'read', route.meta.resource))
+
+export const _ = undefined
diff --git a/src/libs/axios.js b/src/libs/axios.js
new file mode 100644
index 00000000..82745fe8
--- /dev/null
+++ b/src/libs/axios.js
@@ -0,0 +1,16 @@
+import Vue from 'vue'
+
+// axios
+import axios from 'axios'
+
+const axiosIns = axios.create({
+ // You can add your headers here
+ // ================================
+ // baseURL: 'https://some-domain.com/api/',
+ // timeout: 1000,
+ // headers: {'X-Custom-Header': 'foobar'}
+})
+
+Vue.prototype.$http = axiosIns
+
+export default axiosIns
diff --git a/src/libs/clipboard.js b/src/libs/clipboard.js
new file mode 100644
index 00000000..e645234c
--- /dev/null
+++ b/src/libs/clipboard.js
@@ -0,0 +1,5 @@
+import Vue from 'vue'
+import VueClipboard from 'vue-clipboard2'
+
+// clipboard
+Vue.use(VueClipboard)
diff --git a/src/libs/i18n/index.js b/src/libs/i18n/index.js
new file mode 100644
index 00000000..9b955950
--- /dev/null
+++ b/src/libs/i18n/index.js
@@ -0,0 +1,21 @@
+import Vue from 'vue'
+import VueI18n from 'vue-i18n'
+
+Vue.use(VueI18n)
+function loadLocaleMessages() {
+ const locales = require.context('./locales', true, /[A-Za-z0-9-_,\s]+\.json$/i)
+ const messages = {}
+ locales.keys().forEach(key => {
+ const matched = key.match(/([A-Za-z0-9-_]+)\./i)
+ if (matched && matched.length > 1) {
+ const locale = matched[1]
+ messages[locale] = locales(key)
+ }
+ })
+ return messages
+}
+export default new VueI18n({
+ locale: 'en',
+ fallbackLocale: 'en',
+ messages: loadLocaleMessages(),
+})
diff --git a/src/libs/i18n/locales/de.json b/src/libs/i18n/locales/de.json
new file mode 100644
index 00000000..ded9ef73
--- /dev/null
+++ b/src/libs/i18n/locales/de.json
@@ -0,0 +1,181 @@
+{
+ "message": {
+ "title": "Kartentitel",
+ "text": "Kuchen Sesam Schnaps Cupcake Lebkuchen Dänisch Ich liebe Lebkuchen. Apfelkuchen-Torte-Jujuben chupa chups muffin halvah Lutscher. Schokoladenkuchenhaferkuchen Tiramisu-Marzipanzuckerpflaume. Donut süße Kuchen Hafer Kuchen Dragée Obstkuchen Zuckerwatte Zitrone Tropfen.",
+ "pagelength": "Zeige 1 bis",
+ "of": "von",
+ "pageText2": "Einträge",
+ "seachLabel": "Suche",
+ "SearchPlaceholder": "Suche",
+ "tableHeader": {
+ "name": "Name",
+ "email": "Email",
+ "date": "Datum",
+ "salary": "Gehalt",
+ "status": "Status",
+ "action": "Aktion"
+ }
+ },
+ "UI Elements": "UI-Elemente",
+ "Forms & Tables": "Formulare & Tabellen",
+ "Pages": "Seiten",
+ "Charts & Maps": "Diagramme & Karten",
+ "Others": "Andere",
+ "Typography": "Typografie",
+ "Colors": "Colors",
+ "Feather": "Feder",
+ "Cards": "Karten",
+ "Basic": "Basic",
+ "Advance": "Voraus",
+ "Statistic": "Statistik",
+ "Analytic": "Analytisch",
+ "Card Action": "Kartenaktion",
+ "Components": "Komponenten",
+ "Alert": "Aufmerksam",
+ "Aspect": "Aspekt",
+ "Avatar": "Benutzerbild",
+ "Badge": "Abzeichen",
+ "Breadcrumb": "Brotkrume",
+ "Button": "Taste",
+ "Button Group": "Schaltflächengruppe",
+ "Button Toolbar": "Schaltflächensymbolleiste",
+ "Calendar": "Kalender",
+ "Carousel": "Karussell",
+ "Collapse": "Zusammenbruch",
+ "Dropdown": "Dropdown-Liste",
+ "Embed": "Einbetten",
+ "Image": "Bild",
+ "List Group": "Listengruppe",
+ "Media": "Medien",
+ "Modal": "Modal",
+ "Nav": "Nav",
+ "Overlay": "Überlagerung",
+ "Pagination": "Seitennummerierung",
+ "Pagination Nav": "Paginierung Nav",
+ "Pill": "Pille",
+ "Pill Badge": "Pillenabzeichen",
+ "Popover": "Popover",
+ "Progress": "Fortschritt",
+ "Sidebar": "Seitenleiste",
+ "spinner": "Spinner",
+ "Tab": "Tab",
+ "Time": "Zeit",
+ "Toasts": "Toast",
+ "Tooltip": "Tooltip",
+ "Extensions": "Erweiterungen",
+ "Sweet Alert": "Süßer Alarm",
+ "Quill Editor": "Federkiel-Editor",
+ "Drag & Drop": "Ziehen und loslassen",
+ "Swiper": "Swiper",
+ "Clipboard": "Zwischenablage",
+ "Video Player": "Videoplayer",
+ "Context Menu": "Kontextmenü",
+ "Toastification": "Toastifizierung",
+ "I18n": "I18n",
+ "Slider": "Schieberegler",
+ "Tour": "Tour",
+ "Auto Suggest": "Automatisch vorschlagen",
+ "Tree": "Baum",
+ "Date Time Picker": "Datum Uhrzeit Auswahl",
+ "Vue Select": "Vue Wählen",
+ "Forms Elements": "Bildet Elemente",
+ "Select": "Wählen",
+ "Switch": "Schalter",
+ "Checkbox": "Kontrollkästchen",
+ "Radio": "Radio",
+ "Input": "Eingang",
+ "Textarea": "Textbereich",
+ "Spinbutton": "Drehknopf",
+ "Input Group": "Eingabegruppe",
+ "Form Rating": "Formularbewertung",
+ "Form Tag": "Formular-Tag",
+ "Form Datepicker": "Formular Datepicker",
+ "Form Timepicker": "Form Timepicker",
+ "File Input": "Dateieingabe",
+ "Input Mask": "Eingabemaske",
+ "Form Layout": "Formularlayout",
+ "Form Wizard": "Formzauberer",
+ "Form Validation": "Formularvalidierung",
+ "Form Repeater": "Form Repeater",
+ "BS Table": "BS-Tabelle",
+ "Good Table": "Guter Tisch",
+ "Charts": "Diagramme",
+ "Apex Chart": "Apex-Diagramm",
+ "Chartjs": "Chartjs",
+ "Echart": "Echart",
+ "Leaflet": "Flugblatt",
+ "Profile": "Profil",
+ "Account Settings": "Kontoeinstellungen",
+ "Faq": "FAQ",
+ "Knowledge Base": "Wissensbasis",
+ "Pricing": "Preisgestaltung",
+ "Blog": "Blog",
+ "List": "Liste",
+ "Detail": "Detail",
+ "Edit": "Bearbeiten",
+ "Search": "Suche",
+ "Menu Levels": "Menüebenen",
+ "Menu Level2.1": "Menüebene 2.1",
+ "Menu Level2.2": "Menüebene 2.2",
+ "Menu Level3.1": "Menüebene 3.1",
+ "Menu Level3.2": "Menüebene 3.2",
+ "Disabled Menu": "Deaktiviertes Menü",
+ "Support": "Unterstützung",
+ "Raise Support": "Unterstützung erhöhen",
+ "Documentation": "Dokumentation",
+ "Dashboards": "Dashboards",
+ "Apps & Pages": "Apps & Seiten",
+ "Email": "Email",
+ "Chat": "Plaudern",
+ "Todo": "Machen",
+ "Invoice": "Rechnung",
+ "Preview": "Vorschau",
+ "Add": "Hinzufügen",
+ "eCommerce": "E-Commerce",
+ "Shop": "Geschäft",
+ "Details": "Einzelheiten",
+ "Wishlist": "Wunschzettel",
+ "Checkout": "Auschecken",
+ "User": "Nutzer",
+ "View": "Aussicht",
+ "Authentication": "Authentifizierung",
+ "Login v1": "Login v1",
+ "Login v2": "Login v2",
+ "Register v1": "Registrieren Sie v1",
+ "Register v2": "Registrieren Sie v2",
+ "Forget Password v1": "Passwort vergessen v1",
+ "Forget Password v2": "Passwort vergessen v2",
+ "Forgot Password v1": "Passwort vergessen v1",
+ "Forgot Password v2": "Passwort vergessen v2",
+ "Reset Password v1": "Passwort zurücksetzen v1",
+ "Reset Password v2": "Passwort zurücksetzen v2",
+ "Miscellaneous": "Verschiedenes",
+ "Coming Soon": "Kommt bald",
+ "Not Authorized": "Nicht genehmigt",
+ "Under Maintenance": "Wird gewartet",
+ "Error": "Error",
+ "Statistics": "Statistiken",
+ "Analytics": "Analytik",
+ "Card Actions": "Kartenaktionen",
+ "Media Objects": "Medienobjekte",
+ "Timeline": "Zeitleiste",
+ "Access Control": "Zugangskontrolle",
+ "Menu Level 2.1": "Menüebene 2.1",
+ "Menu Level 2.2": "Menüebene 2.2",
+ "Menu Level 3.1": "Menüebene 3.1",
+ "Menu Level 3.2": "Menüebene 3.2",
+ "Apps": "Apps",
+ "User Interface": "Benutzeroberfläche",
+ "Mail Templates": "Mail-Vorlagen",
+ "Welcome": "Herzlich willkommen",
+ "Reset Password": "Passwort zurücksetzen",
+ "Verify Email": "E-Mail bestätigen",
+ "Deactivate Account": "Benutzerkonto deaktivieren",
+ "Promotional": "Werbung",
+ "Page Layouts": "Seitenlayouts",
+ "Collapsed Menu": "Reduziertes Menü",
+ "Layout Boxed": "Layout Boxed",
+ "Without Menu": "Ohne Menü",
+ "Layout Empty": "Layout leer",
+ "Layout Blank": "Layout leer"
+}
diff --git a/src/libs/i18n/locales/en.json b/src/libs/i18n/locales/en.json
new file mode 100644
index 00000000..22aac567
--- /dev/null
+++ b/src/libs/i18n/locales/en.json
@@ -0,0 +1,181 @@
+{
+ "message": {
+ "title": "Card Title",
+ "text": "Cake sesame snaps cupcake gingerbread danish I love gingerbread. Apple pie pie jujubes chupa chups muffin halvah lollipop. Chocolate cake oat cake tiramisu marzipan sugar plum. Donut sweet pie oat cake dragée fruitcake cotton candy lemon drops.",
+ "pagelength": "Showing 1 to",
+ "of": "of",
+ "pageText2": "entries",
+ "seachLabel": "Search",
+ "SearchPlaceholder": "Search",
+ "tableHeader": {
+ "name": "Name",
+ "email": "Email",
+ "date": "Date",
+ "salary": "Salary",
+ "status": "Status",
+ "action": "Action"
+ }
+ },
+ "Staking": "Staking",
+ "Governance": "Governance",
+ "Summary": "Summary",
+ "Blockchains": "Blockchains",
+ "UI Elements": "UI Elements",
+ "Forms & Tables": "Forms & Tables",
+ "Pages": "Pages",
+ "Charts & Maps": "Charts & Maps",
+ "Others": "Others",
+ "Typography": "Typography",
+ "Colors": "Colors",
+ "Feather": "Feather",
+ "Cards": "Cards",
+ "Basic": "Basic",
+ "Advance": "Advance",
+ "Statistic": "Statistic",
+ "Analytic": "Analytic",
+ "Card Action": "Card Action",
+ "Components": "Components",
+ "Alert": "Alert",
+ "Aspect": "Aspect",
+ "Avatar": "Avatar",
+ "Badge": "Badge",
+ "Breadcrumb": "Breadcrumb",
+ "Button": "Button",
+ "Button Group": "Button Group",
+ "Button Toolbar": "Button Toolbar",
+ "Calendar": "Calendar",
+ "Carousel": "Carousel",
+ "Collapse": "Collapse",
+ "Dropdown": "Dropdown",
+ "Embed": "Embed",
+ "Image": "Image",
+ "List Group": "List Group",
+ "Media": "Media",
+ "Modal": "Modal",
+ "Nav": "Nav",
+ "Overlay": "Overlay",
+ "Pagination": "Pagination",
+ "Pagination Nav": "Pagination Nav",
+ "Pill": "Pill",
+ "Pill Badge": "Pill Badge",
+ "Popover": "Popover",
+ "Progress": "Progress",
+ "Sidebar": "Sidebar",
+ "spinner": "spinner",
+ "Tab": "Tab",
+ "Time": "Time",
+ "Toasts": "Toasts",
+ "Tooltip": "Tooltip",
+ "Extensions": "Extensions",
+ "Sweet Alert": "Sweet Alert",
+ "Quill Editor": "Quill Editor",
+ "Drag & Drop": "Drag & Drop",
+ "Swiper": "Swiper",
+ "Clipboard": "Clipboard",
+ "Video Player": "Video Player",
+ "Context Menu": "Context Menu",
+ "Toastification": "Toastification",
+ "I18n": "I18n",
+ "Slider": "Slider",
+ "Tour": "Tour",
+ "Auto Suggest": "Auto Suggest",
+ "Tree": "Tree",
+ "Date Time Picker": "Date Time Picker",
+ "Vue Select": "Vue Select",
+ "Forms Elements": "Forms elements",
+ "Select": "Select",
+ "Switch": "Switch",
+ "Checkbox": "Checkbox",
+ "Radio": "Radio",
+ "Input": "Input",
+ "Textarea": "Textarea",
+ "Spinbutton": "Spinbutton",
+ "Input Group": "Input Group",
+ "Form Rating": "Form Rating",
+ "Form Tag": "Form Tag",
+ "Form Datepicker": "Form Datepicker",
+ "Form Timepicker": "Form Timepicker",
+ "File Input": "File Input",
+ "Input Mask": "Input Mask",
+ "Form Layout": "Form Layout",
+ "Form Wizard": "Form Wizard",
+ "Form Validation": "Form Validation",
+ "Form Repeater": "Form Repeater",
+ "BS Table": "BS Table",
+ "Good Table": "Good Table",
+ "Charts": "Charts",
+ "Apex Chart": "Apex Chart",
+ "Chartjs": "Chartjs",
+ "Echart": "Echart",
+ "Leaflet": "Leaflet",
+ "Profile": "Profile",
+ "Account Settings": "Account Settings",
+ "Faq": "Faq",
+ "Knowledge Base": "Knowledge Base",
+ "Pricing": "Pricing",
+ "Blog": "Blog",
+ "List": "List",
+ "Detail": "Detail",
+ "Edit": "Edit",
+ "Search": "Search",
+ "Menu Levels": "Menu Levels",
+ "Menu Level 2.1": "Menu Level 2.1",
+ "Menu Level 2.2": "Menu Level 2.2",
+ "Menu Level 3.1": "Menu Level 3.1",
+ "Menu Level 3.2": "Menu Level 3.2",
+ "Disabled Menu": "Disabled Menu",
+ "Support": "Support",
+ "Raise Support": "Raise Support",
+ "Documentation": "Documentation",
+ "Dashboards": "Dashboards",
+ "eCommerce": "eCommerce",
+ "Analytics": "Analytics",
+ "Apps & Pages": "Apps & Pages",
+ "Email": "Email",
+ "Chat": "Chat",
+ "Todo": "Todo",
+ "Invoice": "Invoice",
+ "Preview": "Preview",
+ "Add": "Add",
+ "Shop": "Shop",
+ "Details": "Details",
+ "Wishlist": "Wishlist",
+ "Checkout": "Checkout",
+ "User": "User",
+ "View": "View",
+ "Authentication": "Authentication",
+ "Login v1": "Login v1",
+ "Login v2": "Login v2",
+ "Register v1": "Register v1",
+ "Register v2": "Register v2",
+ "Forget Password v1": "Forget Password v1",
+ "Forget Password v2": "Forget Password v2",
+ "Forgot Password v1": "Forgot Password v1",
+ "Forgot Password v2": "Forgot Password v2",
+ "Reset Password v1": "Reset Password v1",
+ "Reset Password v2": "Reset Password v2",
+ "Miscellaneous": "Miscellaneous",
+ "Coming Soon": "Coming Soon",
+ "Not Authorized": "Not Authorized",
+ "Under Maintenance": "Under Maintenance",
+ "Error": "Error",
+ "Statistics": "Statistics",
+ "Card Actions": "Card Actions",
+ "Media Objects": "Media Objects",
+ "Timeline": "Timeline",
+ "Access Control": "Access Control",
+ "Apps": "Apps",
+ "User Interface": "User Interface",
+ "Mail Templates": "Mail Templates",
+ "Welcome": "Welcome",
+ "Reset Password": "Reset Password",
+ "Verify Email": "Verify Email",
+ "Deactivate Account": "Deactivate Account",
+ "Promotional": "Promotional",
+ "Page Layouts": "Page Layouts",
+ "Collapsed Menu": "Collapsed Menu",
+ "Layout Boxed": "Layout Boxed",
+ "Without Menu": "Without Menu",
+ "Layout Empty": "Layout Empty",
+ "Layout Blank": "Layout Blank"
+}
diff --git a/src/libs/i18n/locales/fr.json b/src/libs/i18n/locales/fr.json
new file mode 100644
index 00000000..892ae79a
--- /dev/null
+++ b/src/libs/i18n/locales/fr.json
@@ -0,0 +1,181 @@
+{
+ "message": {
+ "title": "Titre de la carte",
+ "text": "Le gâteau au sésame s'enclenche au petit pain au pain d'épices danois J'adore le pain d'épices. Tarte aux pommes et jujubes chupa chups muffin halvah sucette. Tiramisu gâteau au chocolat gâteau d'avoine tiramisu prune sucre. Donut tarte sucrée gâteau à l'avoine dragée gouttes de fruits gâteau au citron en barbe à papa.",
+ "pagelength": "Affichage de 1 à",
+ "of": "de",
+ "pageText2": "entrées",
+ "seachLabel": "Chercher",
+ "SearchPlaceholder": "Chercher",
+ "tableHeader": {
+ "name": "Nom",
+ "email": "Email",
+ "date": "Date",
+ "salary": "Un salaire",
+ "status": "Statut",
+ "action": "action"
+ }
+ },
+ "UI Elements": "ÉLÉMENTS DE L'UI",
+ "Forms & Tables": "Formulaires et tableaux",
+ "Pages": "Des pages",
+ "Charts & Maps": "Graphiques et cartes",
+ "Others": "Autres",
+ "Typography": "Typographie",
+ "Colors": "Colors",
+ "Feather": "Plume",
+ "Cards": "Cartes",
+ "Basic": "De base",
+ "Advance": "Avance",
+ "Statistic": "Statistique",
+ "Analytic": "Analytique",
+ "Card Action": "Action de la carte",
+ "Components": "Composants",
+ "Alert": "Alerte",
+ "Aspect": "Aspect",
+ "Avatar": "Avatar",
+ "Badge": "Badge",
+ "Breadcrumb": "Miette de pain",
+ "Button": "Bouton",
+ "Button Group": "Groupe de boutons",
+ "Button Toolbar": "Barre d'outils des boutons",
+ "Calendar": "Calendrier",
+ "Carousel": "Carrousel",
+ "Collapse": "Effondrer",
+ "Dropdown": "Menu déroulant",
+ "Embed": "Incorporer",
+ "Image": "Image",
+ "List Group": "Groupe de listes",
+ "Media": "Médias",
+ "Modal": "Modal",
+ "Nav": "Nav",
+ "Overlay": "Recouvrir",
+ "Pagination": "Pagination",
+ "Pagination Nav": "Nav de pagination",
+ "Pill": "Pilule",
+ "Pill Badge": "Badge de pilule",
+ "Popover": "Popover",
+ "Progress": "Le progrès",
+ "Sidebar": "Barre latérale",
+ "spinner": "fileur",
+ "Tab": "Languette",
+ "Time": "Temps",
+ "Toasts": "Toasts",
+ "Tooltip": "Info-bulle",
+ "Extensions": "Extensions",
+ "Sweet Alert": "Douce alerte",
+ "Quill Editor": "Éditeur de plumes",
+ "Drag & Drop": "Glisser-déposer",
+ "Swiper": "Swiper",
+ "Clipboard": "Presse-papiers",
+ "Video Player": "Lecteur vidéo",
+ "Context Menu": "Menu contextuel",
+ "Toastification": "Toastification",
+ "I18n": "I18n",
+ "Slider": "Glissière",
+ "Tour": "Tour",
+ "Auto Suggest": "Suggestion automatique",
+ "Tree": "Arbre",
+ "Date Time Picker": "Sélecteur de date et d'heure",
+ "Vue Select": "Vue Select",
+ "Forms Elements": "Éléments de formulaires",
+ "Select": "Sélectionner",
+ "Switch": "Commutateur",
+ "Checkbox": "Case à cocher",
+ "Radio": "Radio",
+ "Input": "Contribution",
+ "Textarea": "Textarea",
+ "Spinbutton": "Bouton tournant",
+ "Input Group": "Groupe d'entrée",
+ "Form Rating": "Évaluation du formulaire",
+ "Form Tag": "Balise de formulaire",
+ "Form Datepicker": "Formulaire Datepicker",
+ "Form Timepicker": "Timepicker de formulaire",
+ "File Input": "Entrée de fichier",
+ "Input Mask": "Masque de saisie",
+ "Form Layout": "Disposition du formulaire",
+ "Form Wizard": "Assistant de formulaire",
+ "Form Validation": "Validation de formulaire",
+ "Form Repeater": "Répéteur de formulaire",
+ "BS Table": "Tableau BS",
+ "Good Table": "Bonne table",
+ "Charts": "Graphiques",
+ "Apex Chart": "Graphique Apex",
+ "Chartjs": "Chartjs",
+ "Echart": "Echart",
+ "Leaflet": "Brochure",
+ "Profile": "Profil",
+ "Account Settings": "Paramètres du compte",
+ "Faq": "FAQ",
+ "Knowledge Base": "Base de connaissances",
+ "Pricing": "Tarification",
+ "Blog": "Blog",
+ "List": "liste",
+ "Detail": "Détail",
+ "Edit": "Éditer",
+ "Search": "Chercher",
+ "Menu Levels": "Niveaux de menu",
+ "Menu Level2.1": "Niveau de menu 2.1",
+ "Menu Level2.2": "Niveau de menu 2.2",
+ "Menu Level3.1": "Niveau de menu 3.1",
+ "Menu Level3.2": "Niveau de menu 3.2",
+ "Disabled Menu": "Menu désactivé",
+ "Support": "Soutien",
+ "Raise Support": "Augmenter le soutien",
+ "Documentation": "Documentation",
+ "Dashboards": "Tableaux de bord",
+ "eCommerce": "commerce électronique",
+ "Analytics": "Analytique",
+ "Apps & Pages": "Applications et pages",
+ "Email": "Email",
+ "Chat": "Bavarder",
+ "Todo": "Faire",
+ "Invoice": "Facture d'achat",
+ "Preview": "Aperçu",
+ "Add": "Ajouter",
+ "Shop": "Boutique",
+ "Details": "Détails",
+ "Wishlist": "Liste de souhaits",
+ "Checkout": "Check-out",
+ "User": "Utilisateur",
+ "View": "Vue",
+ "Authentication": "Authentification",
+ "Login v1": "Connexion v1",
+ "Login v2": "Connexion v2",
+ "Register v1": "S'inscrire v1",
+ "Register v2": "S'inscrire v2",
+ "Forget Password v1": "Oubliez le mot de passe v1",
+ "Forget Password v2": "Oubliez le mot de passe v2",
+ "Forgot Password v1": "Oubliez le mot de passe v1",
+ "Forgot Password v2": "Oubliez le mot de passe v2",
+ "Reset Password v1": "Réinitialiser le mot de passe v1",
+ "Reset Password v2": "Réinitialiser le mot de passe v2",
+ "Miscellaneous": "Divers",
+ "Coming Soon": "Bientôt disponible",
+ "Not Authorized": "Pas autorisé",
+ "Under Maintenance": "En maintenance",
+ "Error": "Erreur",
+ "Statistics": "Statistiques",
+ "Card Actions": "Actions de la carte",
+ "Media Objects": "Objets multimédias",
+ "Timeline": "Chronologie",
+ "Access Control": "Contrôle d'accès",
+ "Menu Level 2.1": "Niveau de menu 2.1",
+ "Menu Level 2.2": "Niveau de menu 2.2",
+ "Menu Level 3.1": "Niveau de menu 3.1",
+ "Menu Level 3.2": "Niveau de menu 3.2",
+ "Apps": "applications",
+ "User Interface": "Interface utilisateur",
+ "Mail Templates": "Modèles de courrier",
+ "Welcome": "Bienvenue",
+ "Reset Password": "réinitialiser le mot de passe",
+ "Verify Email": "Vérifier les courriels",
+ "Deactivate Account": "Désactiver le compte",
+ "Promotional": "Promotionnel",
+ "Page Layouts": "Mises en page",
+ "Collapsed Menu": "Menu réduit",
+ "Layout Boxed": "Disposition encadrée",
+ "Without Menu": "Sans menu",
+ "Layout Empty": "Disposition vide",
+ "Layout Blank": "Mise en page vierge"
+}
diff --git a/src/libs/i18n/locales/pt.json b/src/libs/i18n/locales/pt.json
new file mode 100644
index 00000000..2926dac3
--- /dev/null
+++ b/src/libs/i18n/locales/pt.json
@@ -0,0 +1,182 @@
+{
+ "message": {
+ "title": "Título do cartão",
+ "text": "O sésamo do bolo agarra dinamarquês do pão-de-espécie do queque eu amo o pão-de-espécie. Torta de torta de maçã jujuba chupa chups muffin halvah pirulito. Ameixa do açúcar do maçapão do tiramisu do bolo da aveia do bolo de chocolate. Bolo de aveia de torta doce rosquinha dragée fruitcake algodão doce gotas de limão.",
+ "pagelength": "Mostrando 1 para",
+ "of": "do",
+ "pageText2": "entradas",
+ "seachLabel": "Procurar",
+ "SearchPlaceholder": "Procurar",
+ "tableHeader": {
+ "name": "nome",
+ "email": "O email",
+ "date": "Encontro",
+ "salary": "Salário",
+ "status": "Status",
+ "action": "Açao"
+ }
+ },
+ "UI Elements": "Elementos da IU",
+ "Forms & Tables": "Formulários e tabelas",
+ "Pages": "Páginas",
+ "Charts & Maps": "Gráficos e mapas",
+ "Others": "Outras",
+ "Typography": "Tipografia",
+ "Colors": "Cores",
+ "Feather": "Pena",
+ "Cards": "Cartas",
+ "Basic": "Básico",
+ "Advance": "Avançar",
+ "Statistic": "Estatística",
+ "Analytic": "Analítico",
+ "Card Action": "Ação do cartão",
+ "Components": "Componentes",
+ "Alert": "Alerta",
+ "Aspect": "Aspecto",
+ "Avatar": "Avatar",
+ "Badge": "Distintivo",
+ "Breadcrumb": "Migalhas de pão",
+ "Button": "Botão",
+ "Button Group": "Grupo de Botão",
+ "Button Toolbar": "Barra de ferramentas de botões",
+ "Calendar": "Calendário",
+ "Carousel": "Carrossel",
+ "Collapse": "Colapso",
+ "Dropdown": "Suspenso",
+ "Embed": "Embutir",
+ "Image": "Imagem",
+ "List Group": "Grupo de Lista",
+ "Media": "meios de comunicação",
+ "Modal": "Modal",
+ "Nav": "Nav",
+ "Overlay": "Sobreposição",
+ "Pagination": "Paginação",
+ "Pagination Nav": "Nav de paginação",
+ "Pill": "Comprimido",
+ "Pill Badge": "Emblema de comprimido",
+ "Popover": "Dar um pulo",
+ "Progress": "Progresso",
+ "Sidebar": "Barra Lateral",
+ "spinner": "spinner",
+ "Tab": "Aba",
+ "Time": "Tempo",
+ "Toasts": "Torradas",
+ "Tooltip": "Dica de ferramenta",
+ "Extensions": "Extensões",
+ "Sweet Alert": "Alerta Doce",
+ "Quill Editor": "Editor de pena",
+ "Drag & Drop": "Arraste e solte",
+ "Swiper": "Swiper",
+ "Clipboard": "Prancheta",
+ "Video Player": "Video Player",
+ "Context Menu": "Menu contextual",
+ "Toastification": "Toastification",
+ "I18n": "I18n",
+ "Slider": "Slider",
+ "Tour": "Tour",
+ "Auto Suggest": "Sugestão Automática",
+ "Tree": "Árvore",
+ "Date Time Picker": "Selecionador de data e hora",
+ "Vue Select": "Vue Select",
+ "Forms Elements": "Elementos de formulários",
+ "Select": "Selecione",
+ "Switch": "Interruptor",
+ "Checkbox": "Caixa de seleção",
+ "Radio": "Rádio",
+ "Input": "Entrada",
+ "Textarea": "Textarea",
+ "Spinbutton": "Spinbutton",
+ "Input Group": "Grupo de Entrada",
+ "Form Rating": "Avaliação do formulário",
+ "Form Tag": "Tag de formulário",
+ "Form Datepicker": "Selecionador de data do formulário",
+ "Form Timepicker": "Timepicker de formulário",
+ "File Input": "Entrada de arquivo",
+ "Input Mask": "Máscara de entrada",
+ "Form Layout": "Layout do formulário",
+ "Form Wizard": "Assistente de Formulários",
+ "Form Validation": "Validação de Formulário",
+ "Form Repeater": "Repetidor de Formulário",
+ "BS Table": "Mesa BS",
+ "Good Table": "Boa mesa",
+ "Charts": "Gráficos",
+ "ApexChart": "Apex Chart",
+ "Chartjs": "Chartjs",
+ "Echart": "Echart",
+ "Leaflet": "Folheto",
+ "Profile": "Perfil",
+ "Account Settings": "Configurações da conta",
+ "Faq": "Perguntas frequentes",
+ "Knowledge Base": "Base de Conhecimento",
+ "Pricing": "Preços",
+ "Blog": "Blog",
+ "List": "Lista",
+ "Detail": "Detalhe",
+ "Edit": "Editar",
+ "Search": "Pesquisa",
+ "Menu Levels": "Níveis de Menu",
+ "Menu Level2.1": "Nível de Menu 2.1",
+ "Menu Level2.2": "Nível de Menu 2.2",
+ "Menu Level3.1": "Nível de Menu 3.1",
+ "Menu Level3.2": "Nível de Menu 3.2",
+ "Disabled Menu": "Menu Desabilitado",
+ "Support": "Apoio, suporte",
+ "Raise Support": "Levante o Suporte",
+ "Documentation": "Documentação",
+ "Dashboards": "Dashboards",
+ "Apps & Pages": "Aplicativos e páginas",
+ "Email": "O email",
+ "Chat": "Bate-papo",
+ "Todo": "Façam",
+ "Invoice": "Fatura",
+ "Preview": "Antevisão",
+ "Add": "Adicionar",
+ "eCommerce": "comércio eletrônico",
+ "Shop": "fazer compras",
+ "Details": "Detalhes",
+ "Wishlist": "Lista de Desejos",
+ "Checkout": "Verificação de saída",
+ "User": "Do utilizador",
+ "View": "Visão",
+ "Authentication": "Autenticação",
+ "Login v1": "Login v1",
+ "Login v2": "Login v2",
+ "Register v1": "Registrar v1",
+ "Register v2": "Registrar v2",
+ "Forget Password v1": "Esquecer a senha v1",
+ "Forget Password v2": "Esquecer a senha v2",
+ "Forgot Password v1": "Esquecer a senha v1",
+ "Forgot Password v2": "Esquecer a senha v2",
+ "Reset Password v1": "Redefinir senha v1",
+ "Reset Password v2": "Redefinir senha v2",
+ "Miscellaneous": "Diversos",
+ "Coming Soon": "Em breve",
+ "Not Authorized": "Não autorizado",
+ "Under Maintenance": "Em manutenção",
+ "Error": "Erro",
+ "Statistics": "Estatisticas",
+ "Analytics": "Analytics",
+ "Card Actions": "Ações do cartão",
+ "Media Objects": "Objetos de mídia",
+ "Timeline": "Linha do tempo",
+ "Apex Chart": "Apex Chart",
+ "Access Control": "Controle de acesso",
+ "Menu Level 2.1": "Nível de Menu 2.1",
+ "Menu Level 2.2": "Nível de Menu 2.2",
+ "Menu Level 3.1": "Nível de Menu 3.1",
+ "Menu Level 3.2": "Nível de Menu 3.2",
+ "Apps": "Apps",
+ "User Interface": "Interface de usuário",
+ "Mail Templates": "Modelos de Correio",
+ "Welcome": "Bem-vinda",
+ "Reset Password": "Redefinir senha",
+ "Verify Email": "Verificar e-mail",
+ "Deactivate Account": "Desativar conta",
+ "Promotional": "Promocional",
+ "Page Layouts": "Layouts de página",
+ "Collapsed Menu": "Menu recolhido",
+ "Layout Boxed": "Layout em caixa",
+ "Without Menu": "Sem Menu",
+ "Layout Empty": "Layout Vazio",
+ "Layout Blank": "Layout em branco"
+}
diff --git a/src/libs/portal-vue.js b/src/libs/portal-vue.js
new file mode 100644
index 00000000..439021bc
--- /dev/null
+++ b/src/libs/portal-vue.js
@@ -0,0 +1,4 @@
+import Vue from 'vue'
+import PortalVue from 'portal-vue'
+
+Vue.use(PortalVue)
diff --git a/src/libs/sweet-alerts.js b/src/libs/sweet-alerts.js
new file mode 100644
index 00000000..da4faad1
--- /dev/null
+++ b/src/libs/sweet-alerts.js
@@ -0,0 +1,4 @@
+import Vue from 'vue'
+import VueSweetalert2 from 'vue-sweetalert2'
+
+Vue.use(VueSweetalert2)
diff --git a/src/libs/toastification.js b/src/libs/toastification.js
new file mode 100644
index 00000000..e2eac127
--- /dev/null
+++ b/src/libs/toastification.js
@@ -0,0 +1,17 @@
+import Vue from 'vue'
+import Toast from 'vue-toastification'
+
+// Toast Notification Component Styles
+import '@core/scss/vue/libs/toastification.scss'
+
+/**
+ * NOTE: If you are using other transition them make sure to import it in `src/@core/scss/vue/libs/notification.scss` from it's source
+ */
+Vue.use(Toast, {
+ hideProgressBar: true,
+ closeOnClick: false,
+ closeButton: false,
+ icon: false,
+ timeout: 3000,
+ transition: 'Vue-Toastification__fade',
+})
diff --git a/src/libs/tour.js b/src/libs/tour.js
new file mode 100644
index 00000000..16926d29
--- /dev/null
+++ b/src/libs/tour.js
@@ -0,0 +1,4 @@
+import Vue from 'vue'
+import VueTour from 'vue-tour'
+
+Vue.use(VueTour)
diff --git a/src/libs/vue-select.js b/src/libs/vue-select.js
new file mode 100644
index 00000000..07a5c7c4
--- /dev/null
+++ b/src/libs/vue-select.js
@@ -0,0 +1,14 @@
+import Vue from 'vue'
+import vSelect from 'vue-select'
+
+// Set the components prop default to return our fresh components
+vSelect.props.components.default = () => ({
+ Deselect: {
+ render: h => h('feather-icon', { props: { size: '14', icon: 'XIcon' } }),
+ },
+ OpenIndicator: {
+ render: h => h('feather-icon', { props: { size: '15', icon: 'ChevronDownIcon' }, class: 'open-indicator' }),
+ },
+})
+
+Vue.component(vSelect)
diff --git a/src/main.js b/src/main.js
new file mode 100644
index 00000000..5ec5428a
--- /dev/null
+++ b/src/main.js
@@ -0,0 +1,37 @@
+import Vue from 'vue'
+import { ToastPlugin, ModalPlugin } from 'bootstrap-vue'
+import VueCompositionAPI from '@vue/composition-api'
+import i18n from '@/libs/i18n'
+
+import router from './router'
+import store from './store'
+import App from './App.vue'
+
+// Global Components
+import './global-components'
+
+// 3rd party plugins
+import '@/libs/portal-vue'
+import '@/libs/toastification'
+
+// BSV Plugin Registration
+Vue.use(ToastPlugin)
+Vue.use(ModalPlugin)
+
+// Composition API
+Vue.use(VueCompositionAPI)
+
+// import core styles
+require('@core/scss/core.scss')
+
+// import assets styles
+require('@/assets/scss/style.scss')
+
+Vue.config.productionTip = false
+
+new Vue({
+ router,
+ store,
+ i18n,
+ render: h => h(App),
+}).$mount('#app')
diff --git a/src/navigation/horizontal/index.js b/src/navigation/horizontal/index.js
new file mode 100644
index 00000000..4e19b4da
--- /dev/null
+++ b/src/navigation/horizontal/index.js
@@ -0,0 +1,18 @@
+export default [
+ {
+ header: 'Pages',
+ icon: 'FileIcon',
+ children: [
+ {
+ title: 'Home',
+ route: 'home',
+ icon: 'HomeIcon',
+ },
+ {
+ title: 'Second Page',
+ route: 'second-page',
+ icon: 'FileIcon',
+ },
+ ],
+ },
+]
diff --git a/src/navigation/vertical/index.js b/src/navigation/vertical/index.js
new file mode 100644
index 00000000..f70e02ed
--- /dev/null
+++ b/src/navigation/vertical/index.js
@@ -0,0 +1,54 @@
+import store from '@/store'
+
+const modules = [
+ {
+ scope: 'normal',
+ title: 'Summary',
+ route: 'info',
+ },
+ {
+ scope: 'normal',
+ title: 'Staking',
+ route: 'staking',
+ },
+ {
+ scope: 'normal',
+ title: 'Governance',
+ route: 'governance',
+ },
+]
+
+function processMenu() {
+ const chainMenus = [
+ {
+ title: 'Home',
+ route: 'home',
+ icon: 'HomeIcon',
+ },
+ {
+ header: 'Blockchains',
+ },
+ ]
+ Object.keys(store.state.chains.chains).forEach(chain => {
+ const menu = {
+ title: chain.toUpperCase(),
+ icon: 'PieChartIcon',
+ }
+ const children = []
+ modules.forEach(m => {
+ if (m.scope.match('normal') || m.scope.match(chain)) {
+ children.push({
+ // header: `item-${chain}-${m.route}`,
+ title: m.title,
+ route: { name: m.route, params: { chain } },
+ })
+ }
+ })
+ menu.children = children
+ chainMenus.push(menu)
+ })
+ return chainMenus
+}
+console.log(modules)
+
+export default processMenu()
diff --git a/src/router/index.js b/src/router/index.js
new file mode 100644
index 00000000..9bfb751a
--- /dev/null
+++ b/src/router/index.js
@@ -0,0 +1,118 @@
+import Vue from 'vue'
+import VueRouter from 'vue-router'
+
+Vue.use(VueRouter)
+
+const router = new VueRouter({
+ mode: 'history',
+ base: process.env.BASE_URL,
+ scrollBehavior() {
+ return { x: 0, y: 0 }
+ },
+ routes: [
+ {
+ path: '/',
+ name: 'home',
+ component: () => import('@/views/Home.vue'),
+ meta: {
+ pageTitle: 'Home',
+ breadcrumb: [
+ {
+ text: 'Home',
+ active: true,
+ },
+ ],
+ },
+ },
+ {
+ path: '/second-page',
+ name: 'second-page',
+ component: () => import('@/views/Info.vue'),
+ meta: {
+ pageTitle: 'Second Page',
+ breadcrumb: [
+ {
+ text: 'Second Page',
+ active: true,
+ },
+ ],
+ },
+ },
+ // chain modules
+ {
+ path: '/:chain/info',
+ name: 'info',
+ alias: '/:chain',
+ component: () => import('@/views/Info.vue'),
+ meta: {
+ pageTitle: 'Home',
+ breadcrumb: [
+ {
+ text: 'Home',
+ active: true,
+ },
+ ],
+ },
+ },
+ {
+ path: '/:chain/staking',
+ name: 'staking',
+ component: () => import('@/views/Staking.vue'),
+ meta: {
+ pageTitle: 'Staking',
+ breadcrumb: [
+ {
+ text: 'Staking',
+ active: true,
+ },
+ ],
+ },
+ },
+ {
+ path: '/:chain/gov',
+ name: 'governance',
+ component: () => import('@/views/Governance.vue'),
+ meta: {
+ pageTitle: 'Governance',
+ breadcrumb: [
+ {
+ text: 'Governance',
+ active: true,
+ },
+ ],
+ },
+ },
+ {
+ path: '/login',
+ name: 'login',
+ component: () => import('@/views/Login.vue'),
+ meta: {
+ layout: 'full',
+ },
+ },
+ {
+ path: '/error-404',
+ name: 'error-404',
+ component: () => import('@/views/error/Error404.vue'),
+ meta: {
+ layout: 'full',
+ },
+ },
+ {
+ path: '*',
+ redirect: 'error-404',
+ },
+ ],
+})
+
+// ? For splash screen
+// Remove afterEach hook if you are not using splash screen
+router.afterEach(() => {
+ // Remove initial loading
+ const appLoading = document.getElementById('loading-bg')
+ if (appLoading) {
+ appLoading.style.display = 'none'
+ }
+})
+
+export default router
diff --git a/src/store/app-config/index.js b/src/store/app-config/index.js
new file mode 100644
index 00000000..2e4f3052
--- /dev/null
+++ b/src/store/app-config/index.js
@@ -0,0 +1,60 @@
+import { $themeConfig } from '@themeConfig'
+
+export default {
+ namespaced: true,
+ state: {
+ layout: {
+ isRTL: $themeConfig.layout.isRTL,
+ skin: localStorage.getItem('vuexy-skin') || $themeConfig.layout.skin,
+ routerTransition: $themeConfig.layout.routerTransition,
+ type: $themeConfig.layout.type,
+ contentWidth: $themeConfig.layout.contentWidth,
+ menu: {
+ hidden: $themeConfig.layout.menu.hidden,
+ },
+ navbar: {
+ type: $themeConfig.layout.navbar.type,
+ backgroundColor: $themeConfig.layout.navbar.backgroundColor,
+ },
+ footer: {
+ type: $themeConfig.layout.footer.type,
+ },
+ },
+ },
+ getters: {},
+ mutations: {
+ TOGGLE_RTL(state) {
+ state.layout.isRTL = !state.layout.isRTL
+ document.documentElement.setAttribute('dir', state.layout.isRTL ? 'rtl' : 'ltr')
+ },
+ UPDATE_SKIN(state, skin) {
+ state.layout.skin = skin
+
+ // Update value in localStorage
+ localStorage.setItem('vuexy-skin', skin)
+
+ // Update DOM for dark-layout
+ if (skin === 'dark') document.body.classList.add('dark-layout')
+ else if (document.body.className.match('dark-layout')) document.body.classList.remove('dark-layout')
+ },
+ UPDATE_ROUTER_TRANSITION(state, val) {
+ state.layout.routerTransition = val
+ },
+ UPDATE_LAYOUT_TYPE(state, val) {
+ state.layout.type = val
+ },
+ UPDATE_CONTENT_WIDTH(state, val) {
+ state.layout.contentWidth = val
+ },
+ UPDATE_NAV_MENU_HIDDEN(state, val) {
+ state.layout.menu.hidden = val
+ },
+ UPDATE_NAVBAR_CONFIG(state, obj) {
+ Object.assign(state.layout.navbar, obj)
+ },
+ UPDATE_FOOTER_CONFIG(state, obj) {
+ Object.assign(state.layout.footer, obj)
+ },
+ },
+ actions: {},
+}
diff --git a/src/store/app/index.js b/src/store/app/index.js
new file mode 100644
index 00000000..4ee886e1
--- /dev/null
+++ b/src/store/app/index.js
@@ -0,0 +1,28 @@
+import { $themeBreakpoints } from '@themeConfig'
+
+export default {
+ namespaced: true,
+ state: {
+ windowWidth: 0,
+ shallShowOverlay: false,
+ },
+ getters: {
+ currentBreakPoint: state => {
+ const { windowWidth } = state
+ if (windowWidth >= $themeBreakpoints.xl) return 'xl'
+ if (windowWidth >= $themeBreakpoints.lg) return 'lg'
+ if (windowWidth >= $themeBreakpoints.md) return 'md'
+ if (windowWidth >= $themeBreakpoints.sm) return 'sm'
+ return 'xs'
+ },
+ },
+ mutations: {
+ UPDATE_WINDOW_WIDTH(state, val) {
+ state.windowWidth = val
+ },
+ TOGGLE_OVERLAY(state, val) {
+ state.shallShowOverlay = val !== undefined ? val : !state.shallShowOverlay
+ },
+ },
+ actions: {},
+}
diff --git a/src/store/chains/akash.json b/src/store/chains/akash.json
new file mode 100644
index 00000000..9ee6361f
--- /dev/null
+++ b/src/store/chains/akash.json
@@ -0,0 +1,6 @@
+{
+ "chain_name": "akash",
+ "chain_id": "akashnet-1",
+ "api": "http://lcd.akash.forbole.com",
+ "logo": "https://look.ping.pub/static/chains/cosmoshub.svg"
+}
\ No newline at end of file
diff --git a/src/store/chains/cosmos.json b/src/store/chains/cosmos.json
new file mode 100644
index 00000000..799337d9
--- /dev/null
+++ b/src/store/chains/cosmos.json
@@ -0,0 +1,5 @@
+{
+ "chain_name": "cosmos",
+ "api":"https://api.cosmos.network",
+ "logo": "https://look.ping.pub/static/chains/cosmoshub.svg"
+}
\ No newline at end of file
diff --git a/src/store/chains/index.js b/src/store/chains/index.js
new file mode 100644
index 00000000..4cdc1931
--- /dev/null
+++ b/src/store/chains/index.js
@@ -0,0 +1,27 @@
+const chains = {}
+const configs = require.context('.', false, /\.json$/)
+
+let selectedChain = {}
+configs.keys().forEach(k => {
+ const c = configs(k)
+ if (c.chain_name === 'cosmos') {
+ selectedChain = c
+ }
+ chains[c.chain_name] = c
+})
+
+export default {
+ namespaced: true,
+ state: {
+ selectedChain,
+ chains,
+ },
+ getters: {
+ getchains: state => state.chains,
+ currentChain: state => chain => state.chains[chain],
+ },
+ mutations: {
+
+ },
+ actions: {},
+}
diff --git a/src/store/index.js b/src/store/index.js
new file mode 100644
index 00000000..06be8570
--- /dev/null
+++ b/src/store/index.js
@@ -0,0 +1,21 @@
+import Vue from 'vue'
+import Vuex from 'vuex'
+
+// Modules
+import app from './app'
+import appConfig from './app-config'
+import verticalMenu from './vertical-menu'
+
+import chains from './chains'
+
+Vue.use(Vuex)
+
+export default new Vuex.Store({
+ modules: {
+ app,
+ appConfig,
+ verticalMenu,
+ chains,
+ },
+ strict: process.env.DEV,
+})
diff --git a/src/store/vertical-menu/index.js b/src/store/vertical-menu/index.js
new file mode 100644
index 00000000..302b25a9
--- /dev/null
+++ b/src/store/vertical-menu/index.js
@@ -0,0 +1,15 @@
+import { $themeConfig } from '@themeConfig'
+
+export default {
+ namespaced: true,
+ state: {
+ isVerticalMenuCollapsed: $themeConfig.layout.menu.isCollapsed,
+ },
+ getters: {},
+ mutations: {
+ UPDATE_VERTICAL_MENU_COLLAPSED(state, val) {
+ state.isVerticalMenuCollapsed = val
+ },
+ },
+ actions: {},
+}
diff --git a/src/views/Governance.vue b/src/views/Governance.vue
new file mode 100644
index 00000000..fe4e90d7
--- /dev/null
+++ b/src/views/Governance.vue
@@ -0,0 +1,256 @@
+
+
+
+
+
+
+
+
+ Passed
+ #1. With supporting text below as a natural lead-in to additional content.With supporting text below as a natural lead-in to additional content
+
+
+
+
+
+ Start Date
+
+
+ 2020-05-06
+
+
+
+
+ End Date
+
+
+ 2020-05-06
+
+
+
+
+ Proposer
+
+
+ Ping.pub
+
+
+
+
+ Deposit
+
+
+ 840.99
+
+
+
+
+ Turnout
+
+
+ 84.86%
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ values[0] }} voted Yes
+
+
+ {{ values[1] }} voted No
+
+
+ {{ values[2] }} voted Veta
+
+
+ {{ values[3] }} voted Abstain
+
+
+
+ Detail
+
+
+ Vote
+
+
+
+
+
+
+
+
+
+
+ # 1. With supporting text below as a natural lead-in to additional content.
+
+
+ Vote
+
+
+
+
+
+
+
+ With supporting text below as a natural lead-in to additional content
+
+
+ Go somewhere
+
+
+
+
+
+
+
+
+ With supporting text below as a natural lead-in to additional content.
+
+
+ Go somewhere
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/Home.vue b/src/views/Home.vue
new file mode 100644
index 00000000..dc51c340
--- /dev/null
+++ b/src/views/Home.vue
@@ -0,0 +1,34 @@
+
+
+
+ All the best for your new project.
+ Please make sure to read our
+ Template Documentation
+ to understand where to go from here and how to use our template.
+
+
+
+ We carefully crafted JWT flow so you can implement JWT with ease and with minimum efforts.
+ Please read our JWT Documentation to get more out of JWT authentication.
+
+
+
+
+
+
+
diff --git a/src/views/Info.vue b/src/views/Info.vue
new file mode 100644
index 00000000..5ad7cca0
--- /dev/null
+++ b/src/views/Info.vue
@@ -0,0 +1,21 @@
+
+
+ This is your second page. ]]
+ Chocolate sesame snaps pie carrot cake pastry pie lollipop muffin. Carrot cake dragée chupa chups jujubes. Macaroon liquorice cookie wafer tart marzipan bonbon. Gingerbread jelly-o dragée chocolate.
+
+
+
+
+
+
diff --git a/src/views/Login.vue b/src/views/Login.vue
new file mode 100644
index 00000000..864507ca
--- /dev/null
+++ b/src/views/Login.vue
@@ -0,0 +1,263 @@
+
+
+
+
+
+
+
+
+ Vuexy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Welcome to Vuexy! 👋
+
+
+ Please sign-in to your account and start the adventure
+
+
+
+
+
+
+
+
+
+ {{ errors[0] }}
+
+
+
+
+
+
+ Password
+
+ Forgot Password?
+
+
+
+
+
+
+
+
+
+ {{ errors[0] }}
+
+
+
+
+
+
+ Remember Me
+
+
+
+
+
+ Sign in
+
+
+
+
+
+ New on our platform?
+
+ Create an account
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/Staking.vue b/src/views/Staking.vue
new file mode 100644
index 00000000..cf970315
--- /dev/null
+++ b/src/views/Staking.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/error/Error404.vue b/src/views/error/Error404.vue
new file mode 100644
index 00000000..268cab23
--- /dev/null
+++ b/src/views/error/Error404.vue
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+ Vuexy
+
+
+
+
+
+
+ Page Not Found 🕵🏻♀️
+
+
+ Oops! 😖 The requested URL was not found on this server.
+
+
+
+ Back to home
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/themeConfig.js b/themeConfig.js
new file mode 100644
index 00000000..8faaed3d
--- /dev/null
+++ b/themeConfig.js
@@ -0,0 +1,37 @@
+// Theme Colors
+// Initially this will be blank. Later on when app is initialized we will assign bootstrap colors to this from CSS variables.
+export const $themeColors = {}
+
+// App Breakpoints
+// Initially this will be blank. Later on when app is initialized we will assign bootstrap breakpoints to this object from CSS variables.
+export const $themeBreakpoints = {}
+
+// APP CONFIG
+export const $themeConfig = {
+ app: {
+ appName: 'Wallet', // Will update name in navigation menu (Branding)
+ // eslint-disable-next-line global-require
+ appLogoImage: require('@/assets/images/logo/logo.svg'), // Will update logo in navigation menu (Branding)
+ },
+ layout: {
+ isRTL: false,
+ skin: 'light', // light, dark, bordered, semi-dark
+ routerTransition: 'zoom-fade', // zoom-fade, slide-fade, fade-bottom, fade, zoom-out, none
+ type: 'vertical', // vertical, horizontal
+ contentWidth: 'full', // full, boxed
+ menu: {
+ hidden: false,
+ isCollapsed: false,
+ },
+ navbar: {
+ // ? For horizontal menu, navbar type will work for navMenu type
+ type: 'floating', // static , sticky , floating, hidden
+ backgroundColor: '', // BS color options [primary, success, etc]
+ },
+ footer: {
+ type: 'static', // static, sticky, hidden
+ },
+ customizer: true,
+ enableScrollToTop: true,
+ },
+}
diff --git a/vue.config.js b/vue.config.js
new file mode 100644
index 00000000..af751e86
--- /dev/null
+++ b/vue.config.js
@@ -0,0 +1,47 @@
+const path = require('path')
+
+module.exports = {
+ publicPath: '/',
+ css: {
+ loaderOptions: {
+ sass: {
+ sassOptions: {
+ includePaths: ['./node_modules', './src/assets'],
+ },
+ },
+ },
+ },
+ configureWebpack: {
+ resolve: {
+ alias: {
+ '@themeConfig': path.resolve(__dirname, 'themeConfig.js'),
+ '@core': path.resolve(__dirname, 'src/@core'),
+ '@validations': path.resolve(__dirname, 'src/@core/utils/validations/validations.js'),
+ '@axios': path.resolve(__dirname, 'src/libs/axios'),
+ },
+ },
+ },
+ chainWebpack: config => {
+ config.module
+ .rule('vue')
+ .use('vue-loader')
+ .loader('vue-loader')
+ .tap(options => {
+ // eslint-disable-next-line no-param-reassign
+ options.transformAssetUrls = {
+ img: 'src',
+ image: 'xlink:href',
+ 'b-avatar': 'src',
+ 'b-img': 'src',
+ 'b-img-lazy': ['src', 'blank-src'],
+ 'b-card': 'img-src',
+ 'b-card-img': 'src',
+ 'b-card-img-lazy': ['src', 'blank-src'],
+ 'b-carousel-slide': 'img-src',
+ 'b-embed': 'src',
+ }
+ return options
+ })
+ },
+ transpileDependencies: ['vue-echarts', 'resize-detector'],
+}
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
index 00000000..d16f4c22
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,11545 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb"
+ integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==
+ dependencies:
+ "@babel/highlight" "^7.14.5"
+
+"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.5", "@babel/compat-data@^7.14.7":
+ version "7.14.7"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.7.tgz#7b047d7a3a89a67d2258dc61f604f098f1bc7e08"
+ integrity sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==
+
+"@babel/core@^7.11.0":
+ version "7.14.6"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.6.tgz#e0814ec1a950032ff16c13a2721de39a8416fcab"
+ integrity sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==
+ dependencies:
+ "@babel/code-frame" "^7.14.5"
+ "@babel/generator" "^7.14.5"
+ "@babel/helper-compilation-targets" "^7.14.5"
+ "@babel/helper-module-transforms" "^7.14.5"
+ "@babel/helpers" "^7.14.6"
+ "@babel/parser" "^7.14.6"
+ "@babel/template" "^7.14.5"
+ "@babel/traverse" "^7.14.5"
+ "@babel/types" "^7.14.5"
+ convert-source-map "^1.7.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.2"
+ json5 "^2.1.2"
+ semver "^6.3.0"
+ source-map "^0.5.0"
+
+"@babel/generator@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.5.tgz#848d7b9f031caca9d0cd0af01b063f226f52d785"
+ integrity sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==
+ dependencies:
+ "@babel/types" "^7.14.5"
+ jsesc "^2.5.1"
+ source-map "^0.5.0"
+
+"@babel/helper-annotate-as-pure@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61"
+ integrity sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==
+ dependencies:
+ "@babel/types" "^7.14.5"
+
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz#b939b43f8c37765443a19ae74ad8b15978e0a191"
+ integrity sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w==
+ dependencies:
+ "@babel/helper-explode-assignable-expression" "^7.14.5"
+ "@babel/types" "^7.14.5"
+
+"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.14.5", "@babel/helper-compilation-targets@^7.9.6":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz#7a99c5d0967911e972fe2c3411f7d5b498498ecf"
+ integrity sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==
+ dependencies:
+ "@babel/compat-data" "^7.14.5"
+ "@babel/helper-validator-option" "^7.14.5"
+ browserslist "^4.16.6"
+ semver "^6.3.0"
+
+"@babel/helper-create-class-features-plugin@^7.14.5":
+ version "7.14.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz#f114469b6c06f8b5c59c6c4e74621f5085362542"
+ integrity sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.14.5"
+ "@babel/helper-function-name" "^7.14.5"
+ "@babel/helper-member-expression-to-functions" "^7.14.5"
+ "@babel/helper-optimise-call-expression" "^7.14.5"
+ "@babel/helper-replace-supers" "^7.14.5"
+ "@babel/helper-split-export-declaration" "^7.14.5"
+
+"@babel/helper-create-regexp-features-plugin@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4"
+ integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.14.5"
+ regexpu-core "^4.7.1"
+
+"@babel/helper-define-polyfill-provider@^0.2.2":
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6"
+ integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==
+ dependencies:
+ "@babel/helper-compilation-targets" "^7.13.0"
+ "@babel/helper-module-imports" "^7.12.13"
+ "@babel/helper-plugin-utils" "^7.13.0"
+ "@babel/traverse" "^7.13.0"
+ debug "^4.1.1"
+ lodash.debounce "^4.0.8"
+ resolve "^1.14.2"
+ semver "^6.1.2"
+
+"@babel/helper-explode-assignable-expression@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz#8aa72e708205c7bb643e45c73b4386cdf2a1f645"
+ integrity sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ==
+ dependencies:
+ "@babel/types" "^7.14.5"
+
+"@babel/helper-function-name@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4"
+ integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==
+ dependencies:
+ "@babel/helper-get-function-arity" "^7.14.5"
+ "@babel/template" "^7.14.5"
+ "@babel/types" "^7.14.5"
+
+"@babel/helper-get-function-arity@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815"
+ integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==
+ dependencies:
+ "@babel/types" "^7.14.5"
+
+"@babel/helper-hoist-variables@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d"
+ integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==
+ dependencies:
+ "@babel/types" "^7.14.5"
+
+"@babel/helper-member-expression-to-functions@^7.14.5":
+ version "7.14.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz#97e56244beb94211fe277bd818e3a329c66f7970"
+ integrity sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==
+ dependencies:
+ "@babel/types" "^7.14.5"
+
+"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5", "@babel/helper-module-imports@^7.8.3":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3"
+ integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==
+ dependencies:
+ "@babel/types" "^7.14.5"
+
+"@babel/helper-module-transforms@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz#7de42f10d789b423eb902ebd24031ca77cb1e10e"
+ integrity sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==
+ dependencies:
+ "@babel/helper-module-imports" "^7.14.5"
+ "@babel/helper-replace-supers" "^7.14.5"
+ "@babel/helper-simple-access" "^7.14.5"
+ "@babel/helper-split-export-declaration" "^7.14.5"
+ "@babel/helper-validator-identifier" "^7.14.5"
+ "@babel/template" "^7.14.5"
+ "@babel/traverse" "^7.14.5"
+ "@babel/types" "^7.14.5"
+
+"@babel/helper-optimise-call-expression@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c"
+ integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==
+ dependencies:
+ "@babel/types" "^7.14.5"
+
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9"
+ integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==
+
+"@babel/helper-remap-async-to-generator@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz#51439c913612958f54a987a4ffc9ee587a2045d6"
+ integrity sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.14.5"
+ "@babel/helper-wrap-function" "^7.14.5"
+ "@babel/types" "^7.14.5"
+
+"@babel/helper-replace-supers@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz#0ecc0b03c41cd567b4024ea016134c28414abb94"
+ integrity sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==
+ dependencies:
+ "@babel/helper-member-expression-to-functions" "^7.14.5"
+ "@babel/helper-optimise-call-expression" "^7.14.5"
+ "@babel/traverse" "^7.14.5"
+ "@babel/types" "^7.14.5"
+
+"@babel/helper-simple-access@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz#66ea85cf53ba0b4e588ba77fc813f53abcaa41c4"
+ integrity sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==
+ dependencies:
+ "@babel/types" "^7.14.5"
+
+"@babel/helper-skip-transparent-expression-wrappers@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz#96f486ac050ca9f44b009fbe5b7d394cab3a0ee4"
+ integrity sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==
+ dependencies:
+ "@babel/types" "^7.14.5"
+
+"@babel/helper-split-export-declaration@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a"
+ integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==
+ dependencies:
+ "@babel/types" "^7.14.5"
+
+"@babel/helper-validator-identifier@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8"
+ integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==
+
+"@babel/helper-validator-option@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3"
+ integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==
+
+"@babel/helper-wrap-function@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz#5919d115bf0fe328b8a5d63bcb610f51601f2bff"
+ integrity sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==
+ dependencies:
+ "@babel/helper-function-name" "^7.14.5"
+ "@babel/template" "^7.14.5"
+ "@babel/traverse" "^7.14.5"
+ "@babel/types" "^7.14.5"
+
+"@babel/helpers@^7.14.6":
+ version "7.14.6"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.6.tgz#5b58306b95f1b47e2a0199434fa8658fa6c21635"
+ integrity sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==
+ dependencies:
+ "@babel/template" "^7.14.5"
+ "@babel/traverse" "^7.14.5"
+ "@babel/types" "^7.14.5"
+
+"@babel/highlight@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9"
+ integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.14.5"
+ chalk "^2.0.0"
+ js-tokens "^4.0.0"
+
+"@babel/parser@^7.14.5", "@babel/parser@^7.14.6", "@babel/parser@^7.14.7", "@babel/parser@^7.7.0":
+ version "7.14.7"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.7.tgz#6099720c8839ca865a2637e6c85852ead0bdb595"
+ integrity sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==
+
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz#4b467302e1548ed3b1be43beae2cc9cf45e0bb7e"
+ integrity sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5"
+ "@babel/plugin-proposal-optional-chaining" "^7.14.5"
+
+"@babel/plugin-proposal-async-generator-functions@^7.14.7":
+ version "7.14.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz#784a48c3d8ed073f65adcf30b57bcbf6c8119ace"
+ integrity sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/helper-remap-async-to-generator" "^7.14.5"
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
+
+"@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.8.3":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e"
+ integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.14.5"
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-proposal-class-static-block@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz#158e9e10d449c3849ef3ecde94a03d9f1841b681"
+ integrity sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.14.5"
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/plugin-syntax-class-static-block" "^7.14.5"
+
+"@babel/plugin-proposal-decorators@^7.8.3":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.14.5.tgz#59bc4dfc1d665b5a6749cf798ff42297ed1b2c1d"
+ integrity sha512-LYz5nvQcvYeRVjui1Ykn28i+3aUiXwQ/3MGoEy0InTaz1pJo/lAzmIDXX+BQny/oufgHzJ6vnEEiXQ8KZjEVFg==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.14.5"
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/plugin-syntax-decorators" "^7.14.5"
+
+"@babel/plugin-proposal-dynamic-import@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c"
+ integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+
+"@babel/plugin-proposal-export-namespace-from@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76"
+ integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+
+"@babel/plugin-proposal-json-strings@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb"
+ integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+
+"@babel/plugin-proposal-logical-assignment-operators@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738"
+ integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+
+"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6"
+ integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+
+"@babel/plugin-proposal-numeric-separator@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18"
+ integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+
+"@babel/plugin-proposal-object-rest-spread@^7.14.7":
+ version "7.14.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz#5920a2b3df7f7901df0205974c0641b13fd9d363"
+ integrity sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==
+ dependencies:
+ "@babel/compat-data" "^7.14.7"
+ "@babel/helper-compilation-targets" "^7.14.5"
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-transform-parameters" "^7.14.5"
+
+"@babel/plugin-proposal-optional-catch-binding@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c"
+ integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+
+"@babel/plugin-proposal-optional-chaining@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603"
+ integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+
+"@babel/plugin-proposal-private-methods@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d"
+ integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.14.5"
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-proposal-private-property-in-object@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz#9f65a4d0493a940b4c01f8aa9d3f1894a587f636"
+ integrity sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.14.5"
+ "@babel/helper-create-class-features-plugin" "^7.14.5"
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+
+"@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8"
+ integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.14.5"
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-async-generators@^7.8.4":
+ version "7.8.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
+ integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-class-properties@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
+ integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-syntax-class-static-block@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406"
+ integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-decorators@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.14.5.tgz#eafb9c0cbe09c8afeb964ba3a7bbd63945a72f20"
+ integrity sha512-c4sZMRWL4GSvP1EXy0woIP7m4jkVcEuG8R1TOZxPBPtp4FSM/kiPZub9UIs/Jrb5ZAOzvTUSGYrWsrSu1JvoPw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-dynamic-import@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
+ integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-export-namespace-from@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a"
+ integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+"@babel/plugin-syntax-json-strings@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
+ integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.8.3":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz#000e2e25d8673cce49300517a3eda44c263e4201"
+ integrity sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
+ integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
+ integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-numeric-separator@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
+ integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-object-rest-spread@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
+ integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
+ integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-chaining@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
+ integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-private-property-in-object@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad"
+ integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-top-level-await@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
+ integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-arrow-functions@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a"
+ integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-async-to-generator@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67"
+ integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==
+ dependencies:
+ "@babel/helper-module-imports" "^7.14.5"
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/helper-remap-async-to-generator" "^7.14.5"
+
+"@babel/plugin-transform-block-scoped-functions@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4"
+ integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-block-scoping@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz#8cc63e61e50f42e078e6f09be775a75f23ef9939"
+ integrity sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-classes@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz#0e98e82097b38550b03b483f9b51a78de0acb2cf"
+ integrity sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.14.5"
+ "@babel/helper-function-name" "^7.14.5"
+ "@babel/helper-optimise-call-expression" "^7.14.5"
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/helper-replace-supers" "^7.14.5"
+ "@babel/helper-split-export-declaration" "^7.14.5"
+ globals "^11.1.0"
+
+"@babel/plugin-transform-computed-properties@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f"
+ integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-destructuring@^7.14.7":
+ version "7.14.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz#0ad58ed37e23e22084d109f185260835e5557576"
+ integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a"
+ integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.14.5"
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-duplicate-keys@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954"
+ integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-exponentiation-operator@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493"
+ integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==
+ dependencies:
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5"
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-for-of@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz#dae384613de8f77c196a8869cbf602a44f7fc0eb"
+ integrity sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-function-name@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2"
+ integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==
+ dependencies:
+ "@babel/helper-function-name" "^7.14.5"
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-literals@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78"
+ integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-member-expression-literals@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7"
+ integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-modules-amd@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7"
+ integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.14.5"
+ "@babel/helper-plugin-utils" "^7.14.5"
+ babel-plugin-dynamic-import-node "^2.3.3"
+
+"@babel/plugin-transform-modules-commonjs@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz#7aaee0ea98283de94da98b28f8c35701429dad97"
+ integrity sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.14.5"
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/helper-simple-access" "^7.14.5"
+ babel-plugin-dynamic-import-node "^2.3.3"
+
+"@babel/plugin-transform-modules-systemjs@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz#c75342ef8b30dcde4295d3401aae24e65638ed29"
+ integrity sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA==
+ dependencies:
+ "@babel/helper-hoist-variables" "^7.14.5"
+ "@babel/helper-module-transforms" "^7.14.5"
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/helper-validator-identifier" "^7.14.5"
+ babel-plugin-dynamic-import-node "^2.3.3"
+
+"@babel/plugin-transform-modules-umd@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0"
+ integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.14.5"
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-named-capturing-groups-regex@^7.14.7":
+ version "7.14.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.7.tgz#60c06892acf9df231e256c24464bfecb0908fd4e"
+ integrity sha512-DTNOTaS7TkW97xsDMrp7nycUVh6sn/eq22VaxWfEdzuEbRsiaOU0pqU7DlyUGHVsbQbSghvjKRpEl+nUCKGQSg==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.14.5"
+
+"@babel/plugin-transform-new-target@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8"
+ integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-object-super@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45"
+ integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/helper-replace-supers" "^7.14.5"
+
+"@babel/plugin-transform-parameters@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz#49662e86a1f3ddccac6363a7dfb1ff0a158afeb3"
+ integrity sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-property-literals@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34"
+ integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-regenerator@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz#9676fd5707ed28f522727c5b3c0aa8544440b04f"
+ integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==
+ dependencies:
+ regenerator-transform "^0.14.2"
+
+"@babel/plugin-transform-reserved-words@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304"
+ integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-runtime@^7.11.0":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.5.tgz#30491dad49c6059f8f8fa5ee8896a0089e987523"
+ integrity sha512-fPMBhh1AV8ZyneiCIA+wYYUH1arzlXR1UMcApjvchDhfKxhy2r2lReJv8uHEyihi4IFIGlr1Pdx7S5fkESDQsg==
+ dependencies:
+ "@babel/helper-module-imports" "^7.14.5"
+ "@babel/helper-plugin-utils" "^7.14.5"
+ babel-plugin-polyfill-corejs2 "^0.2.2"
+ babel-plugin-polyfill-corejs3 "^0.2.2"
+ babel-plugin-polyfill-regenerator "^0.2.2"
+ semver "^6.3.0"
+
+"@babel/plugin-transform-shorthand-properties@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58"
+ integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-spread@^7.14.6":
+ version "7.14.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144"
+ integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5"
+
+"@babel/plugin-transform-sticky-regex@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9"
+ integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-template-literals@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93"
+ integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-typeof-symbol@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4"
+ integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-unicode-escapes@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b"
+ integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-transform-unicode-regex@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e"
+ integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.14.5"
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/preset-env@^7.11.0":
+ version "7.14.7"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.7.tgz#5c70b22d4c2d893b03d8c886a5c17422502b932a"
+ integrity sha512-itOGqCKLsSUl0Y+1nSfhbuuOlTs0MJk2Iv7iSH+XT/mR8U1zRLO7NjWlYXB47yhK4J/7j+HYty/EhFZDYKa/VA==
+ dependencies:
+ "@babel/compat-data" "^7.14.7"
+ "@babel/helper-compilation-targets" "^7.14.5"
+ "@babel/helper-plugin-utils" "^7.14.5"
+ "@babel/helper-validator-option" "^7.14.5"
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.14.5"
+ "@babel/plugin-proposal-async-generator-functions" "^7.14.7"
+ "@babel/plugin-proposal-class-properties" "^7.14.5"
+ "@babel/plugin-proposal-class-static-block" "^7.14.5"
+ "@babel/plugin-proposal-dynamic-import" "^7.14.5"
+ "@babel/plugin-proposal-export-namespace-from" "^7.14.5"
+ "@babel/plugin-proposal-json-strings" "^7.14.5"
+ "@babel/plugin-proposal-logical-assignment-operators" "^7.14.5"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5"
+ "@babel/plugin-proposal-numeric-separator" "^7.14.5"
+ "@babel/plugin-proposal-object-rest-spread" "^7.14.7"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.14.5"
+ "@babel/plugin-proposal-optional-chaining" "^7.14.5"
+ "@babel/plugin-proposal-private-methods" "^7.14.5"
+ "@babel/plugin-proposal-private-property-in-object" "^7.14.5"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.14.5"
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
+ "@babel/plugin-syntax-class-properties" "^7.12.13"
+ "@babel/plugin-syntax-class-static-block" "^7.14.5"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+ "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+ "@babel/plugin-syntax-top-level-await" "^7.14.5"
+ "@babel/plugin-transform-arrow-functions" "^7.14.5"
+ "@babel/plugin-transform-async-to-generator" "^7.14.5"
+ "@babel/plugin-transform-block-scoped-functions" "^7.14.5"
+ "@babel/plugin-transform-block-scoping" "^7.14.5"
+ "@babel/plugin-transform-classes" "^7.14.5"
+ "@babel/plugin-transform-computed-properties" "^7.14.5"
+ "@babel/plugin-transform-destructuring" "^7.14.7"
+ "@babel/plugin-transform-dotall-regex" "^7.14.5"
+ "@babel/plugin-transform-duplicate-keys" "^7.14.5"
+ "@babel/plugin-transform-exponentiation-operator" "^7.14.5"
+ "@babel/plugin-transform-for-of" "^7.14.5"
+ "@babel/plugin-transform-function-name" "^7.14.5"
+ "@babel/plugin-transform-literals" "^7.14.5"
+ "@babel/plugin-transform-member-expression-literals" "^7.14.5"
+ "@babel/plugin-transform-modules-amd" "^7.14.5"
+ "@babel/plugin-transform-modules-commonjs" "^7.14.5"
+ "@babel/plugin-transform-modules-systemjs" "^7.14.5"
+ "@babel/plugin-transform-modules-umd" "^7.14.5"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.14.7"
+ "@babel/plugin-transform-new-target" "^7.14.5"
+ "@babel/plugin-transform-object-super" "^7.14.5"
+ "@babel/plugin-transform-parameters" "^7.14.5"
+ "@babel/plugin-transform-property-literals" "^7.14.5"
+ "@babel/plugin-transform-regenerator" "^7.14.5"
+ "@babel/plugin-transform-reserved-words" "^7.14.5"
+ "@babel/plugin-transform-shorthand-properties" "^7.14.5"
+ "@babel/plugin-transform-spread" "^7.14.6"
+ "@babel/plugin-transform-sticky-regex" "^7.14.5"
+ "@babel/plugin-transform-template-literals" "^7.14.5"
+ "@babel/plugin-transform-typeof-symbol" "^7.14.5"
+ "@babel/plugin-transform-unicode-escapes" "^7.14.5"
+ "@babel/plugin-transform-unicode-regex" "^7.14.5"
+ "@babel/preset-modules" "^0.1.4"
+ "@babel/types" "^7.14.5"
+ babel-plugin-polyfill-corejs2 "^0.2.2"
+ babel-plugin-polyfill-corejs3 "^0.2.2"
+ babel-plugin-polyfill-regenerator "^0.2.2"
+ core-js-compat "^3.15.0"
+ semver "^6.3.0"
+
+"@babel/preset-modules@^0.1.4":
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e"
+ integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
+ "@babel/plugin-transform-dotall-regex" "^7.4.4"
+ "@babel/types" "^7.4.4"
+ esutils "^2.0.2"
+
+"@babel/runtime@^7.11.0", "@babel/runtime@^7.8.4":
+ version "7.14.6"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.6.tgz#535203bc0892efc7dec60bdc27b2ecf6e409062d"
+ integrity sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg==
+ dependencies:
+ regenerator-runtime "^0.13.4"
+
+"@babel/template@^7.0.0", "@babel/template@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4"
+ integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==
+ dependencies:
+ "@babel/code-frame" "^7.14.5"
+ "@babel/parser" "^7.14.5"
+ "@babel/types" "^7.14.5"
+
+"@babel/traverse@^7.0.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.7.0":
+ version "7.14.7"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.7.tgz#64007c9774cfdc3abd23b0780bc18a3ce3631753"
+ integrity sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==
+ dependencies:
+ "@babel/code-frame" "^7.14.5"
+ "@babel/generator" "^7.14.5"
+ "@babel/helper-function-name" "^7.14.5"
+ "@babel/helper-hoist-variables" "^7.14.5"
+ "@babel/helper-split-export-declaration" "^7.14.5"
+ "@babel/parser" "^7.14.7"
+ "@babel/types" "^7.14.5"
+ debug "^4.1.0"
+ globals "^11.1.0"
+
+"@babel/types@^7.0.0", "@babel/types@^7.14.5", "@babel/types@^7.4.4", "@babel/types@^7.7.0":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff"
+ integrity sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.14.5"
+ to-fast-properties "^2.0.0"
+
+"@casl/ability@4.1.6":
+ version "4.1.6"
+ resolved "https://registry.yarnpkg.com/@casl/ability/-/ability-4.1.6.tgz#89f263903adfc9316cedff329ad615564662448a"
+ integrity sha512-ZI30fRacHKCCrWJn1pmxx/+IKUkoycVNz+Mge9EeIH+esDT7nydgWbitVPnlBAbxQXz5eybPAvfPSg3WOa2izw==
+ dependencies:
+ sift "^13.0.0"
+
+"@casl/vue@1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@casl/vue/-/vue-1.1.1.tgz#e3aa3125b17ec83cabfdd8d3b5029cc57981d54e"
+ integrity sha512-lJnPGJ2sdid22IGNPegWsMH0136WSMKZqqZb2YjLWL/vsRvw+wuLZE+yaR7enEfETmH5KZE55WAfXpyZgy99hQ==
+
+"@fullcalendar/common@5.x", "@fullcalendar/common@~5.8.0":
+ version "5.8.0"
+ resolved "https://registry.yarnpkg.com/@fullcalendar/common/-/common-5.8.0.tgz#43e79e26e6347af83baaa603157aced67e23d549"
+ integrity sha512-cKmXNgo/9auw86MOwXxA+5FRrgvbE93C9YDwic+Alfm3bUruDTzJDnuvRndrFVurpSBLm6/ZitaR+yoWKLIsgA==
+ dependencies:
+ tslib "^2.1.0"
+
+"@fullcalendar/core@5.x", "@fullcalendar/core@~5.8.0":
+ version "5.8.0"
+ resolved "https://registry.yarnpkg.com/@fullcalendar/core/-/core-5.8.0.tgz#86f034fc4a49c6a44886380aff01c6fcd7204966"
+ integrity sha512-55Zwy4fwcxBqHjfjhV5eae4qOh9fMlpjGcyy4Zt39zA1NlgUW0JxCGOyIu2K2jm2JZn+27/P8b06JXy57DmtKg==
+ dependencies:
+ "@fullcalendar/common" "~5.8.0"
+ preact "^10.0.5"
+ tslib "^2.1.0"
+
+"@fullcalendar/daygrid@5.x", "@fullcalendar/daygrid@~5.8.0":
+ version "5.8.0"
+ resolved "https://registry.yarnpkg.com/@fullcalendar/daygrid/-/daygrid-5.8.0.tgz#6a5991886ed3323366f72e7614ac8907cbd8d998"
+ integrity sha512-VrqwI97cewoUjFrKT67sS+f+JANI8xMx0g5bpM0XgV/KEEwvXpH5OmwkFSbXOnx1m4RXsvolQc6EBZpnJCf69Q==
+ dependencies:
+ "@fullcalendar/common" "~5.8.0"
+ tslib "^2.1.0"
+
+"@fullcalendar/interaction@5.x":
+ version "5.8.0"
+ resolved "https://registry.yarnpkg.com/@fullcalendar/interaction/-/interaction-5.8.0.tgz#1661682f4df7b076b36fedf2fc9b33a03f04bf07"
+ integrity sha512-ocOCS5g1AT06uR3OeKpN2WKJO4BLmnUZn/v2H/iPllbC7MwYBSy/obC4CoQqnK93FyJXUOFH1KfLwTK013C1+w==
+ dependencies:
+ "@fullcalendar/common" "~5.8.0"
+ tslib "^2.1.0"
+
+"@fullcalendar/list@5.x":
+ version "5.8.0"
+ resolved "https://registry.yarnpkg.com/@fullcalendar/list/-/list-5.8.0.tgz#703290784d860133abaa9176bdf66383f7c7ef9f"
+ integrity sha512-JlqXbWq8Gl2BMx1mOAeEWakW43xDYypBBjwKztnax5tOB5Sfty8chVmeG7ffz2NFtvg2c1nj6MP/zGrVCYY0RA==
+ dependencies:
+ "@fullcalendar/common" "~5.8.0"
+ tslib "^2.1.0"
+
+"@fullcalendar/timegrid@5.x":
+ version "5.8.0"
+ resolved "https://registry.yarnpkg.com/@fullcalendar/timegrid/-/timegrid-5.8.0.tgz#4f1f8e1aee52f3b493701b3c9e3b59510be53c24"
+ integrity sha512-N24TkOuRkxMDn02E8LPj4fKKgAxQxF6k/PONIwMVHnOih2v3SeiKOOemmrk6uoTwOS7R2fVblOJQGFWXobYu3g==
+ dependencies:
+ "@fullcalendar/common" "~5.8.0"
+ "@fullcalendar/daygrid" "~5.8.0"
+ tslib "^2.1.0"
+
+"@fullcalendar/vue@5.x":
+ version "5.8.0"
+ resolved "https://registry.yarnpkg.com/@fullcalendar/vue/-/vue-5.8.0.tgz#856d300d641a532d9a0818b599e42ffcc916f3b1"
+ integrity sha512-tL/knBuy6y17d86uyvqC9FHwgkJtTf1S7GDV5xVDohJlqNDE/YcJkV3kxzEgH263oYn8MHMxB4P4lGQy0hGmtw==
+ dependencies:
+ "@fullcalendar/core" "~5.8.0"
+ tslib "^2.1.0"
+
+"@hapi/address@2.x.x":
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5"
+ integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==
+
+"@hapi/bourne@1.x.x":
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a"
+ integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==
+
+"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0":
+ version "8.5.1"
+ resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06"
+ integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==
+
+"@hapi/joi@^15.0.1":
+ version "15.1.1"
+ resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7"
+ integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==
+ dependencies:
+ "@hapi/address" "2.x.x"
+ "@hapi/bourne" "1.x.x"
+ "@hapi/hoek" "8.x.x"
+ "@hapi/topo" "3.x.x"
+
+"@hapi/topo@3.x.x":
+ version "3.1.6"
+ resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29"
+ integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==
+ dependencies:
+ "@hapi/hoek" "^8.3.0"
+
+"@intervolga/optimize-cssnano-plugin@^1.0.5":
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz#be7c7846128b88f6a9b1d1261a0ad06eb5c0fdf8"
+ integrity sha512-zN69TnSr0viRSU6cEDIcuPcP67QcpQ6uHACg58FiN9PDrU6SLyGW3MR4tiISbYxy1kDWAVPwD+XwQTWE5cigAA==
+ dependencies:
+ cssnano "^4.0.0"
+ cssnano-preset-default "^4.0.0"
+ postcss "^7.0.0"
+
+"@mrmlnc/readdir-enhanced@^2.2.1":
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde"
+ integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==
+ dependencies:
+ call-me-maybe "^1.0.1"
+ glob-to-regexp "^0.3.0"
+
+"@nodelib/fs.scandir@2.1.5":
+ version "2.1.5"
+ resolved "https://registry.nlark.com/@nodelib/fs.scandir/download/@nodelib/fs.scandir-2.1.5.tgz?cache=0&sync_timestamp=1622792738877&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.scandir%2Fdownload%2F%40nodelib%2Ffs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
+ integrity sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=
+ dependencies:
+ "@nodelib/fs.stat" "2.0.5"
+ run-parallel "^1.1.9"
+
+"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
+ version "2.0.5"
+ resolved "https://registry.nlark.com/@nodelib/fs.stat/download/@nodelib/fs.stat-2.0.5.tgz?cache=0&sync_timestamp=1622792616417&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
+ integrity sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=
+
+"@nodelib/fs.stat@^1.1.2":
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b"
+ integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==
+
+"@nodelib/fs.walk@^1.2.3":
+ version "1.2.8"
+ resolved "https://registry.nlark.com/@nodelib/fs.walk/download/@nodelib/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
+ integrity sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=
+ dependencies:
+ "@nodelib/fs.scandir" "2.1.5"
+ fastq "^1.6.0"
+
+"@nuxt/opencollective@^0.3.2":
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/@nuxt/opencollective/-/opencollective-0.3.2.tgz#83cb70cdb2bac5fad6f8c93529e7b11187d49c02"
+ integrity sha512-XG7rUdXG9fcafu9KTDIYjJSkRO38EwjlKYIb5TQ/0WDbiTUTtUtgncMscKOYzfsY86kGs05pAuMOR+3Fi0aN3A==
+ dependencies:
+ chalk "^4.1.0"
+ consola "^2.15.0"
+ node-fetch "^2.6.1"
+
+"@sindresorhus/is@^0.14.0":
+ version "0.14.0"
+ resolved "https://registry.nlark.com/@sindresorhus/is/download/@sindresorhus/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
+ integrity sha1-n7OjzzEyMoFR81PeRjLgHlIQK+o=
+
+"@sindresorhus/is@^0.7.0":
+ version "0.7.0"
+ resolved "https://registry.nlark.com/@sindresorhus/is/download/@sindresorhus/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd"
+ integrity sha1-mgb08TfuhNffBGDB/bETX/psUP0=
+
+"@sindresorhus/is@^4.0.0":
+ version "4.0.1"
+ resolved "https://registry.nlark.com/@sindresorhus/is/download/@sindresorhus/is-4.0.1.tgz#d26729db850fa327b7cacc5522252194404226f5"
+ integrity sha1-0mcp24UPoye3ysxVIiUhlEBCJvU=
+
+"@soda/friendly-errors-webpack-plugin@^1.7.1":
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.0.tgz#84751d82a93019d5c92c0cf0e45ac59087cd2240"
+ integrity sha512-RLotfx6k1+nfLacwNCenj7VnTMPxVwYKoGOcffMFoJDKM8tXzBiCN0hMHFJNnoAojduYAsxuiMm0EOMixgiRow==
+ dependencies:
+ chalk "^2.4.2"
+ error-stack-parser "^2.0.2"
+ string-width "^2.0.0"
+ strip-ansi "^5"
+
+"@soda/get-current-script@^1.0.0":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@soda/get-current-script/-/get-current-script-1.0.2.tgz#a53515db25d8038374381b73af20bb4f2e508d87"
+ integrity sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==
+
+"@szmarczak/http-timer@^1.1.2":
+ version "1.1.2"
+ resolved "https://registry.nlark.com/@szmarczak/http-timer/download/@szmarczak/http-timer-1.1.2.tgz?cache=0&sync_timestamp=1626126261719&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40szmarczak%2Fhttp-timer%2Fdownload%2F%40szmarczak%2Fhttp-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421"
+ integrity sha1-sWZeLEYaLNkvTBu/UNVFTeDUtCE=
+ dependencies:
+ defer-to-connect "^1.0.1"
+
+"@szmarczak/http-timer@^4.0.5":
+ version "4.0.6"
+ resolved "https://registry.nlark.com/@szmarczak/http-timer/download/@szmarczak/http-timer-4.0.6.tgz?cache=0&sync_timestamp=1626126261719&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40szmarczak%2Fhttp-timer%2Fdownload%2F%40szmarczak%2Fhttp-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807"
+ integrity sha1-tKkUu2LnwnLU5Zif5EQPgSqx2Ac=
+ dependencies:
+ defer-to-connect "^2.0.0"
+
+"@tauri-apps/cli@1.0.0-beta.3":
+ version "1.0.0-beta.3"
+ resolved "https://registry.nlark.com/@tauri-apps/cli/download/@tauri-apps/cli-1.0.0-beta.3.tgz#cede848e26122c8ee607749d84269fcc8d3c2ee1"
+ integrity sha1-zt6EjiYSLI7mB3SdhCafzI08LuE=
+ dependencies:
+ "@tauri-apps/toml" "2.2.4"
+ chalk "4.1.1"
+ cross-env "7.0.3"
+ cross-spawn "7.0.3"
+ fs-extra "10.0.0"
+ got "11.8.2"
+ imagemin "8.0.0"
+ imagemin-optipng "8.0.0"
+ imagemin-zopfli "7.0.0"
+ inquirer "8.1.1"
+ is-png "3.0.0"
+ minimist "1.2.5"
+ ms "2.1.3"
+ png2icons "2.0.1"
+ read-chunk "3.2.0"
+ semver "7.3.5"
+ sharp "0.28.3"
+ update-notifier "5.1.0"
+
+"@tauri-apps/toml@2.2.4":
+ version "2.2.4"
+ resolved "https://registry.npm.taobao.org/@tauri-apps/toml/download/@tauri-apps/toml-2.2.4.tgz#2b4f637aded7fc3a7302724605682c8fa3ac7505"
+ integrity sha1-K09jet7X/DpzAnJGBWgsj6OsdQU=
+
+"@tokenizer/token@^0.1.1":
+ version "0.1.1"
+ resolved "https://registry.nlark.com/@tokenizer/token/download/@tokenizer/token-0.1.1.tgz#f0d92c12f87079ddfd1b29f614758b9696bc29e3"
+ integrity sha1-8NksEvhwed39Gyn2FHWLlpa8KeM=
+
+"@types/body-parser@*":
+ version "1.19.1"
+ resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.1.tgz#0c0174c42a7d017b818303d4b5d969cb0b75929c"
+ integrity sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==
+ dependencies:
+ "@types/connect" "*"
+ "@types/node" "*"
+
+"@types/cacheable-request@^6.0.1":
+ version "6.0.2"
+ resolved "https://registry.nlark.com/@types/cacheable-request/download/@types/cacheable-request-6.0.2.tgz?cache=0&sync_timestamp=1625596835916&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fcacheable-request%2Fdownload%2F%40types%2Fcacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9"
+ integrity sha1-wyTaAZfeCpiiMSFWU2riYkKf9rk=
+ dependencies:
+ "@types/http-cache-semantics" "*"
+ "@types/keyv" "*"
+ "@types/node" "*"
+ "@types/responselike" "*"
+
+"@types/connect-history-api-fallback@*":
+ version "1.3.5"
+ resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae"
+ integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==
+ dependencies:
+ "@types/express-serve-static-core" "*"
+ "@types/node" "*"
+
+"@types/connect@*":
+ version "3.4.35"
+ resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1"
+ integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==
+ dependencies:
+ "@types/node" "*"
+
+"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18":
+ version "4.17.24"
+ resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz#ea41f93bf7e0d59cd5a76665068ed6aab6815c07"
+ integrity sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==
+ dependencies:
+ "@types/node" "*"
+ "@types/qs" "*"
+ "@types/range-parser" "*"
+
+"@types/express@*":
+ version "4.17.13"
+ resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034"
+ integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==
+ dependencies:
+ "@types/body-parser" "*"
+ "@types/express-serve-static-core" "^4.17.18"
+ "@types/qs" "*"
+ "@types/serve-static" "*"
+
+"@types/glob@^7.1.1":
+ version "7.1.4"
+ resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.4.tgz#ea59e21d2ee5c517914cb4bc8e4153b99e566672"
+ integrity sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==
+ dependencies:
+ "@types/minimatch" "*"
+ "@types/node" "*"
+
+"@types/http-cache-semantics@*":
+ version "4.0.1"
+ resolved "https://registry.nlark.com/@types/http-cache-semantics/download/@types/http-cache-semantics-4.0.1.tgz?cache=0&sync_timestamp=1625607856094&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fhttp-cache-semantics%2Fdownload%2F%40types%2Fhttp-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812"
+ integrity sha1-Dqe2FJaQK5WJDcTDoRa2DLja6BI=
+
+"@types/http-proxy@^1.17.5":
+ version "1.17.7"
+ resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.7.tgz#30ea85cc2c868368352a37f0d0d3581e24834c6f"
+ integrity sha512-9hdj6iXH64tHSLTY+Vt2eYOGzSogC+JQ2H7bdPWkuh7KXP5qLllWx++t+K9Wk556c3dkDdPws/SpMRi0sdCT1w==
+ dependencies:
+ "@types/node" "*"
+
+"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7":
+ version "7.0.8"
+ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.8.tgz#edf1bf1dbf4e04413ca8e5b17b3b7d7d54b59818"
+ integrity sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==
+
+"@types/keyv@*":
+ version "3.1.2"
+ resolved "https://registry.nlark.com/@types/keyv/download/@types/keyv-3.1.2.tgz?cache=0&sync_timestamp=1625610098677&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fkeyv%2Fdownload%2F%40types%2Fkeyv-3.1.2.tgz#5d97bb65526c20b6e0845f6b0d2ade4f28604ee5"
+ integrity sha1-XZe7ZVJsILbghF9rDSreTyhgTuU=
+ dependencies:
+ "@types/node" "*"
+
+"@types/mime@^1":
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a"
+ integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==
+
+"@types/minimatch@*":
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40"
+ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==
+
+"@types/minimist@^1.2.0":
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c"
+ integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==
+
+"@types/node@*":
+ version "16.3.3"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.3.3.tgz#0c30adff37bbbc7a50eb9b58fae2a504d0d88038"
+ integrity sha512-8h7k1YgQKxKXWckzFCMfsIwn0Y61UK6tlD6y2lOb3hTOIMlK3t9/QwHOhc81TwU+RMf0As5fj7NPjroERCnejQ==
+
+"@types/normalize-package-data@^2.4.0":
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301"
+ integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==
+
+"@types/q@^1.5.1":
+ version "1.5.5"
+ resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df"
+ integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==
+
+"@types/qs@*":
+ version "6.9.7"
+ resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb"
+ integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==
+
+"@types/range-parser@*":
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc"
+ integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==
+
+"@types/responselike@*", "@types/responselike@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.nlark.com/@types/responselike/download/@types/responselike-1.0.0.tgz?cache=0&sync_timestamp=1621242544305&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40types%2Fresponselike%2Fdownload%2F%40types%2Fresponselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29"
+ integrity sha1-JR9P59FU0rrRJavhtCmyOv0mLik=
+ dependencies:
+ "@types/node" "*"
+
+"@types/serve-static@*":
+ version "1.13.10"
+ resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9"
+ integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==
+ dependencies:
+ "@types/mime" "^1"
+ "@types/node" "*"
+
+"@types/source-list-map@*":
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9"
+ integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==
+
+"@types/tapable@^1":
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310"
+ integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==
+
+"@types/uglify-js@*":
+ version "3.13.1"
+ resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.1.tgz#5e889e9e81e94245c75b6450600e1c5ea2878aea"
+ integrity sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ==
+ dependencies:
+ source-map "^0.6.1"
+
+"@types/webpack-dev-server@^3.11.0":
+ version "3.11.5"
+ resolved "https://registry.yarnpkg.com/@types/webpack-dev-server/-/webpack-dev-server-3.11.5.tgz#f4a254a3dd0667c8ee4af90d42afdb4ad1d607f3"
+ integrity sha512-vjsbQBW3fE5FDICkF3w3ZWFRXNwQdKt7JRPLmRy5W0KXlcuew4wgpKWXhgHS71iLNv7Z2PlY9dSSIaYg+bk+9w==
+ dependencies:
+ "@types/connect-history-api-fallback" "*"
+ "@types/express" "*"
+ "@types/serve-static" "*"
+ "@types/webpack" "^4"
+ http-proxy-middleware "^1.0.0"
+
+"@types/webpack-sources@*":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-2.1.1.tgz#6af17e3a3ded71eec2b98008d7c12f498a0a4506"
+ integrity sha512-MjM1R6iuw8XaVbtkCBz0N349cyqBjJHCbQiOeppe3VBeFvxqs74RKHAVt9LkxTnUWc7YLZOEsUfPUnmK6SBPKQ==
+ dependencies:
+ "@types/node" "*"
+ "@types/source-list-map" "*"
+ source-map "^0.7.3"
+
+"@types/webpack@^4", "@types/webpack@^4.0.0":
+ version "4.41.30"
+ resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.30.tgz#fd3db6d0d41e145a8eeeafcd3c4a7ccde9068ddc"
+ integrity sha512-GUHyY+pfuQ6haAfzu4S14F+R5iGRwN6b2FRNJY7U0NilmFAqbsOfK6j1HwuLBAqwRIT+pVdNDJGJ6e8rpp0KHA==
+ dependencies:
+ "@types/node" "*"
+ "@types/tapable" "^1"
+ "@types/uglify-js" "*"
+ "@types/webpack-sources" "*"
+ anymatch "^3.0.0"
+ source-map "^0.6.0"
+
+"@vue/babel-helper-vue-jsx-merge-props@^1.2.1":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz#31624a7a505fb14da1d58023725a4c5f270e6a81"
+ integrity sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA==
+
+"@vue/babel-helper-vue-transform-on@^1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.2.tgz#9b9c691cd06fc855221a2475c3cc831d774bc7dc"
+ integrity sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==
+
+"@vue/babel-plugin-jsx@^1.0.3":
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.0.6.tgz#184bf3541ab6efdbe5079ab8b20c19e2af100bfb"
+ integrity sha512-RzYsvBhzKUmY2YG6LoV+W5PnlnkInq0thh1AzCmewwctAgGN6e9UFon6ZrQQV1CO5G5PeME7MqpB+/vvGg0h4g==
+ dependencies:
+ "@babel/helper-module-imports" "^7.0.0"
+ "@babel/plugin-syntax-jsx" "^7.0.0"
+ "@babel/template" "^7.0.0"
+ "@babel/traverse" "^7.0.0"
+ "@babel/types" "^7.0.0"
+ "@vue/babel-helper-vue-transform-on" "^1.0.2"
+ camelcase "^6.0.0"
+ html-tags "^3.1.0"
+ svg-tags "^1.0.0"
+
+"@vue/babel-plugin-transform-vue-jsx@^1.2.1":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.2.1.tgz#646046c652c2f0242727f34519d917b064041ed7"
+ integrity sha512-HJuqwACYehQwh1fNT8f4kyzqlNMpBuUK4rSiSES5D4QsYncv5fxFsLyrxFPG2ksO7t5WP+Vgix6tt6yKClwPzA==
+ dependencies:
+ "@babel/helper-module-imports" "^7.0.0"
+ "@babel/plugin-syntax-jsx" "^7.2.0"
+ "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1"
+ html-tags "^2.0.0"
+ lodash.kebabcase "^4.1.1"
+ svg-tags "^1.0.0"
+
+"@vue/babel-preset-app@^4.5.13":
+ version "4.5.13"
+ resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-4.5.13.tgz#cb475321e4c73f7f110dac29a48c2a9cb80afeb6"
+ integrity sha512-pM7CR3yXB6L8Gfn6EmX7FLNE3+V/15I3o33GkSNsWvgsMp6HVGXKkXgojrcfUUauyL1LZOdvTmu4enU2RePGHw==
+ dependencies:
+ "@babel/core" "^7.11.0"
+ "@babel/helper-compilation-targets" "^7.9.6"
+ "@babel/helper-module-imports" "^7.8.3"
+ "@babel/plugin-proposal-class-properties" "^7.8.3"
+ "@babel/plugin-proposal-decorators" "^7.8.3"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+ "@babel/plugin-syntax-jsx" "^7.8.3"
+ "@babel/plugin-transform-runtime" "^7.11.0"
+ "@babel/preset-env" "^7.11.0"
+ "@babel/runtime" "^7.11.0"
+ "@vue/babel-plugin-jsx" "^1.0.3"
+ "@vue/babel-preset-jsx" "^1.2.4"
+ babel-plugin-dynamic-import-node "^2.3.3"
+ core-js "^3.6.5"
+ core-js-compat "^3.6.5"
+ semver "^6.1.0"
+
+"@vue/babel-preset-jsx@^1.2.4":
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.2.4.tgz#92fea79db6f13b01e80d3a0099e2924bdcbe4e87"
+ integrity sha512-oRVnmN2a77bYDJzeGSt92AuHXbkIxbf/XXSE3klINnh9AXBmVS1DGa1f0d+dDYpLfsAKElMnqKTQfKn7obcL4w==
+ dependencies:
+ "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1"
+ "@vue/babel-plugin-transform-vue-jsx" "^1.2.1"
+ "@vue/babel-sugar-composition-api-inject-h" "^1.2.1"
+ "@vue/babel-sugar-composition-api-render-instance" "^1.2.4"
+ "@vue/babel-sugar-functional-vue" "^1.2.2"
+ "@vue/babel-sugar-inject-h" "^1.2.2"
+ "@vue/babel-sugar-v-model" "^1.2.3"
+ "@vue/babel-sugar-v-on" "^1.2.3"
+
+"@vue/babel-sugar-composition-api-inject-h@^1.2.1":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.2.1.tgz#05d6e0c432710e37582b2be9a6049b689b6f03eb"
+ integrity sha512-4B3L5Z2G+7s+9Bwbf+zPIifkFNcKth7fQwekVbnOA3cr3Pq71q71goWr97sk4/yyzH8phfe5ODVzEjX7HU7ItQ==
+ dependencies:
+ "@babel/plugin-syntax-jsx" "^7.2.0"
+
+"@vue/babel-sugar-composition-api-render-instance@^1.2.4":
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.2.4.tgz#e4cbc6997c344fac271785ad7a29325c51d68d19"
+ integrity sha512-joha4PZznQMsxQYXtR3MnTgCASC9u3zt9KfBxIeuI5g2gscpTsSKRDzWQt4aqNIpx6cv8On7/m6zmmovlNsG7Q==
+ dependencies:
+ "@babel/plugin-syntax-jsx" "^7.2.0"
+
+"@vue/babel-sugar-functional-vue@^1.2.2":
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.2.2.tgz#267a9ac8d787c96edbf03ce3f392c49da9bd2658"
+ integrity sha512-JvbgGn1bjCLByIAU1VOoepHQ1vFsroSA/QkzdiSs657V79q6OwEWLCQtQnEXD/rLTA8rRit4rMOhFpbjRFm82w==
+ dependencies:
+ "@babel/plugin-syntax-jsx" "^7.2.0"
+
+"@vue/babel-sugar-inject-h@^1.2.2":
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.2.2.tgz#d738d3c893367ec8491dcbb669b000919293e3aa"
+ integrity sha512-y8vTo00oRkzQTgufeotjCLPAvlhnpSkcHFEp60+LJUwygGcd5Chrpn5480AQp/thrxVm8m2ifAk0LyFel9oCnw==
+ dependencies:
+ "@babel/plugin-syntax-jsx" "^7.2.0"
+
+"@vue/babel-sugar-v-model@^1.2.3":
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.2.3.tgz#fa1f29ba51ebf0aa1a6c35fa66d539bc459a18f2"
+ integrity sha512-A2jxx87mySr/ulAsSSyYE8un6SIH0NWHiLaCWpodPCVOlQVODCaSpiR4+IMsmBr73haG+oeCuSvMOM+ttWUqRQ==
+ dependencies:
+ "@babel/plugin-syntax-jsx" "^7.2.0"
+ "@vue/babel-helper-vue-jsx-merge-props" "^1.2.1"
+ "@vue/babel-plugin-transform-vue-jsx" "^1.2.1"
+ camelcase "^5.0.0"
+ html-tags "^2.0.0"
+ svg-tags "^1.0.0"
+
+"@vue/babel-sugar-v-on@^1.2.3":
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.2.3.tgz#342367178586a69f392f04bfba32021d02913ada"
+ integrity sha512-kt12VJdz/37D3N3eglBywV8GStKNUhNrsxChXIV+o0MwVXORYuhDTHJRKPgLJRb/EY3vM2aRFQdxJBp9CLikjw==
+ dependencies:
+ "@babel/plugin-syntax-jsx" "^7.2.0"
+ "@vue/babel-plugin-transform-vue-jsx" "^1.2.1"
+ camelcase "^5.0.0"
+
+"@vue/cli-overlay@^4.5.13":
+ version "4.5.13"
+ resolved "https://registry.yarnpkg.com/@vue/cli-overlay/-/cli-overlay-4.5.13.tgz#4f1fd2161be8f69d6cba8079f3f0d7dc4dee47a7"
+ integrity sha512-jhUIg3klgi5Cxhs8dnat5hi/W2tQJvsqCxR0u6hgfSob0ORODgUBlN+F/uwq7cKIe/pzedVUk1y07F13GQvPqg==
+
+"@vue/cli-plugin-babel@~4.5.9":
+ version "4.5.13"
+ resolved "https://registry.yarnpkg.com/@vue/cli-plugin-babel/-/cli-plugin-babel-4.5.13.tgz#a89c482edcc4ea1d135645cec502a7f5fd4c30e7"
+ integrity sha512-ykvEAfD8PgGs+dGMGqr7l/nRmIS39NRzWLhMluPLTvDV1L+IxcoB73HNLGA/aENDpl8CuWrTE+1VgydcOhp+wg==
+ dependencies:
+ "@babel/core" "^7.11.0"
+ "@vue/babel-preset-app" "^4.5.13"
+ "@vue/cli-shared-utils" "^4.5.13"
+ babel-loader "^8.1.0"
+ cache-loader "^4.1.0"
+ thread-loader "^2.1.3"
+ webpack "^4.0.0"
+
+"@vue/cli-plugin-eslint@~4.5.9":
+ version "4.5.13"
+ resolved "https://registry.yarnpkg.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-4.5.13.tgz#8baf22d0d96d76720c7506646b96f4f62c05bdfa"
+ integrity sha512-yc2uXX6aBiy3vEf5TwaueaDqQbdIXIhk0x0KzEtpPo23jBdLkpOSoU5NCgE06g/ZiGAcettpmBSv73Hfp4wHEw==
+ dependencies:
+ "@vue/cli-shared-utils" "^4.5.13"
+ eslint-loader "^2.2.1"
+ globby "^9.2.0"
+ inquirer "^7.1.0"
+ webpack "^4.0.0"
+ yorkie "^2.0.0"
+
+"@vue/cli-plugin-router@^4.5.13", "@vue/cli-plugin-router@~4.5.9":
+ version "4.5.13"
+ resolved "https://registry.yarnpkg.com/@vue/cli-plugin-router/-/cli-plugin-router-4.5.13.tgz#0b67c8898a2bf132941919a2a2e5f3aacbd9ffbe"
+ integrity sha512-tgtMDjchB/M1z8BcfV4jSOY9fZSMDTPgF9lsJIiqBWMxvBIsk9uIZHxp62DibYME4CCKb/nNK61XHaikFp+83w==
+ dependencies:
+ "@vue/cli-shared-utils" "^4.5.13"
+
+"@vue/cli-plugin-vuex@^4.5.13", "@vue/cli-plugin-vuex@~4.5.9":
+ version "4.5.13"
+ resolved "https://registry.yarnpkg.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.13.tgz#98646d8bc1e69cf6c6a6cba2fed3eace0356c360"
+ integrity sha512-I1S9wZC7iI0Wn8kw8Zh+A2Qkf6s1M6vTGBkx8boXjuzfwEEyEHRxadsVCecZc8Mkpydo0nykj+MyYF96TKFuVA==
+
+"@vue/cli-service@~4.5.9":
+ version "4.5.13"
+ resolved "https://registry.yarnpkg.com/@vue/cli-service/-/cli-service-4.5.13.tgz#a09e684a801684b6e24e5414ad30650970eec9ed"
+ integrity sha512-CKAZN4iokMMsaUyJRU22oUAz3oS/X9sVBSKAF2/shFBV5xh3jqAlKl8OXZYz4cXGFLA6djNuYrniuLAo7Ku97A==
+ dependencies:
+ "@intervolga/optimize-cssnano-plugin" "^1.0.5"
+ "@soda/friendly-errors-webpack-plugin" "^1.7.1"
+ "@soda/get-current-script" "^1.0.0"
+ "@types/minimist" "^1.2.0"
+ "@types/webpack" "^4.0.0"
+ "@types/webpack-dev-server" "^3.11.0"
+ "@vue/cli-overlay" "^4.5.13"
+ "@vue/cli-plugin-router" "^4.5.13"
+ "@vue/cli-plugin-vuex" "^4.5.13"
+ "@vue/cli-shared-utils" "^4.5.13"
+ "@vue/component-compiler-utils" "^3.1.2"
+ "@vue/preload-webpack-plugin" "^1.1.0"
+ "@vue/web-component-wrapper" "^1.2.0"
+ acorn "^7.4.0"
+ acorn-walk "^7.1.1"
+ address "^1.1.2"
+ autoprefixer "^9.8.6"
+ browserslist "^4.12.0"
+ cache-loader "^4.1.0"
+ case-sensitive-paths-webpack-plugin "^2.3.0"
+ cli-highlight "^2.1.4"
+ clipboardy "^2.3.0"
+ cliui "^6.0.0"
+ copy-webpack-plugin "^5.1.1"
+ css-loader "^3.5.3"
+ cssnano "^4.1.10"
+ debug "^4.1.1"
+ default-gateway "^5.0.5"
+ dotenv "^8.2.0"
+ dotenv-expand "^5.1.0"
+ file-loader "^4.2.0"
+ fs-extra "^7.0.1"
+ globby "^9.2.0"
+ hash-sum "^2.0.0"
+ html-webpack-plugin "^3.2.0"
+ launch-editor-middleware "^2.2.1"
+ lodash.defaultsdeep "^4.6.1"
+ lodash.mapvalues "^4.6.0"
+ lodash.transform "^4.6.0"
+ mini-css-extract-plugin "^0.9.0"
+ minimist "^1.2.5"
+ pnp-webpack-plugin "^1.6.4"
+ portfinder "^1.0.26"
+ postcss-loader "^3.0.0"
+ ssri "^8.0.1"
+ terser-webpack-plugin "^1.4.4"
+ thread-loader "^2.1.3"
+ url-loader "^2.2.0"
+ vue-loader "^15.9.2"
+ vue-style-loader "^4.1.2"
+ webpack "^4.0.0"
+ webpack-bundle-analyzer "^3.8.0"
+ webpack-chain "^6.4.0"
+ webpack-dev-server "^3.11.0"
+ webpack-merge "^4.2.2"
+ optionalDependencies:
+ vue-loader-v16 "npm:vue-loader@^16.1.0"
+
+"@vue/cli-shared-utils@^4.1.1", "@vue/cli-shared-utils@^4.5.13":
+ version "4.5.13"
+ resolved "https://registry.yarnpkg.com/@vue/cli-shared-utils/-/cli-shared-utils-4.5.13.tgz#acd40f31b4790f1634292bdaa5fca95dc1e0ff50"
+ integrity sha512-HpnOrkLg42RFUsQGMJv26oTG3J3FmKtO2WSRhKIIL+1ok3w9OjGCtA3nMMXN27f9eX14TqO64M36DaiSZ1fSiw==
+ dependencies:
+ "@hapi/joi" "^15.0.1"
+ chalk "^2.4.2"
+ execa "^1.0.0"
+ launch-editor "^2.2.1"
+ lru-cache "^5.1.1"
+ node-ipc "^9.1.1"
+ open "^6.3.0"
+ ora "^3.4.0"
+ read-pkg "^5.1.1"
+ request "^2.88.2"
+ semver "^6.1.0"
+ strip-ansi "^6.0.0"
+
+"@vue/component-compiler-utils@^3.1.0", "@vue/component-compiler-utils@^3.1.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.2.2.tgz#2f7ed5feed82ff7f0284acc11d525ee7eff22460"
+ integrity sha512-rAYMLmgMuqJFWAOb3Awjqqv5X3Q3hVr4jH/kgrFJpiU0j3a90tnNBplqbj+snzrgZhC9W128z+dtgMifOiMfJg==
+ dependencies:
+ consolidate "^0.15.1"
+ hash-sum "^1.0.2"
+ lru-cache "^4.1.2"
+ merge-source-map "^1.1.0"
+ postcss "^7.0.36"
+ postcss-selector-parser "^6.0.2"
+ source-map "~0.6.1"
+ vue-template-es2015-compiler "^1.9.0"
+ optionalDependencies:
+ prettier "^1.18.2"
+
+"@vue/composition-api@1.0.0-beta.22":
+ version "1.0.0-beta.22"
+ resolved "https://registry.yarnpkg.com/@vue/composition-api/-/composition-api-1.0.0-beta.22.tgz#8b0046bda138820c6d79c91dc961839a52d853c7"
+ integrity sha512-KkTeHVWgsJbtoA5t6pUien/ARw7JhVM7QZh05ko/UdgzALYMGwJsBf4WlcvbpMKE5eAu4ONYJypQ+r8LwBIOhA==
+ dependencies:
+ tslib "^2.0.1"
+
+"@vue/eslint-config-airbnb@^5.3.0":
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/@vue/eslint-config-airbnb/-/eslint-config-airbnb-5.3.0.tgz#896551d600816a06dff13fdd7d04fd5153379817"
+ integrity sha512-m9ldRhbqaODbcc9mQZjPgnTzyNweZblLMTqMfC2kHWY68dYd3kwG/hvENeZWXJnKKo+eGnoptk+7Zq/c1519ZQ==
+ dependencies:
+ eslint-config-airbnb-base "^14.0.0"
+ eslint-import-resolver-node "^0.3.4"
+ eslint-import-resolver-webpack "^0.13.0"
+ eslint-plugin-import "^2.21.2"
+
+"@vue/preload-webpack-plugin@^1.1.0":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz#ceb924b4ecb3b9c43871c7a429a02f8423e621ab"
+ integrity sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ==
+
+"@vue/web-component-wrapper@^1.2.0":
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz#b6b40a7625429d2bd7c2281ddba601ed05dc7f1a"
+ integrity sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==
+
+"@vuepress/plugin-medium-zoom@^1.7.1":
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/@vuepress/plugin-medium-zoom/-/plugin-medium-zoom-1.8.2.tgz#0243dd27edf0c710f9a41a234d253d76ab51e625"
+ integrity sha512-Mljso/8E6IbNmIKmwKeC6FDfnhKY3fsOUSs5kEGzz3RQwd54eshqHAMRVwW4LZkYZHhwQXF8+qk7YqoMZB7jjg==
+ dependencies:
+ medium-zoom "^1.0.4"
+
+"@vueuse/core@4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-4.0.0.tgz#5bea3eaa848e3b3e00427f5053fb98e7e4834b0f"
+ integrity sha512-BBkqriC2j9SH/LuHCggS2MP7VSwBfGkTB9qQh1lzadodk2TnM1JHwM76f3G0hCGqqhEF7ab8Xs+1M1PlvuEQYA==
+ dependencies:
+ "@vueuse/shared" "4.0.0"
+ vue-demi latest
+
+"@vueuse/shared@4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-4.0.0.tgz#d495b8fd2f28a453ef0fccae175ca848a4a84bb0"
+ integrity sha512-8tn1BpnaMJU2LqFyFzzN6Dvmc1uDsSlb3Neli5bwwb9f+rcASpuOS3nAWAY6/rIODZP1iwXDNCL4rNFR3YxYtQ==
+ dependencies:
+ vue-demi latest
+
+"@webassemblyjs/ast@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964"
+ integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==
+ dependencies:
+ "@webassemblyjs/helper-module-context" "1.9.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+ "@webassemblyjs/wast-parser" "1.9.0"
+
+"@webassemblyjs/floating-point-hex-parser@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4"
+ integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==
+
+"@webassemblyjs/helper-api-error@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2"
+ integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==
+
+"@webassemblyjs/helper-buffer@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00"
+ integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==
+
+"@webassemblyjs/helper-code-frame@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27"
+ integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==
+ dependencies:
+ "@webassemblyjs/wast-printer" "1.9.0"
+
+"@webassemblyjs/helper-fsm@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8"
+ integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==
+
+"@webassemblyjs/helper-module-context@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07"
+ integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+
+"@webassemblyjs/helper-wasm-bytecode@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790"
+ integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==
+
+"@webassemblyjs/helper-wasm-section@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346"
+ integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-buffer" "1.9.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+ "@webassemblyjs/wasm-gen" "1.9.0"
+
+"@webassemblyjs/ieee754@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4"
+ integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==
+ dependencies:
+ "@xtuc/ieee754" "^1.2.0"
+
+"@webassemblyjs/leb128@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95"
+ integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==
+ dependencies:
+ "@xtuc/long" "4.2.2"
+
+"@webassemblyjs/utf8@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab"
+ integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==
+
+"@webassemblyjs/wasm-edit@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf"
+ integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-buffer" "1.9.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+ "@webassemblyjs/helper-wasm-section" "1.9.0"
+ "@webassemblyjs/wasm-gen" "1.9.0"
+ "@webassemblyjs/wasm-opt" "1.9.0"
+ "@webassemblyjs/wasm-parser" "1.9.0"
+ "@webassemblyjs/wast-printer" "1.9.0"
+
+"@webassemblyjs/wasm-gen@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c"
+ integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+ "@webassemblyjs/ieee754" "1.9.0"
+ "@webassemblyjs/leb128" "1.9.0"
+ "@webassemblyjs/utf8" "1.9.0"
+
+"@webassemblyjs/wasm-opt@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61"
+ integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-buffer" "1.9.0"
+ "@webassemblyjs/wasm-gen" "1.9.0"
+ "@webassemblyjs/wasm-parser" "1.9.0"
+
+"@webassemblyjs/wasm-parser@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e"
+ integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-api-error" "1.9.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+ "@webassemblyjs/ieee754" "1.9.0"
+ "@webassemblyjs/leb128" "1.9.0"
+ "@webassemblyjs/utf8" "1.9.0"
+
+"@webassemblyjs/wast-parser@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914"
+ integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/floating-point-hex-parser" "1.9.0"
+ "@webassemblyjs/helper-api-error" "1.9.0"
+ "@webassemblyjs/helper-code-frame" "1.9.0"
+ "@webassemblyjs/helper-fsm" "1.9.0"
+ "@xtuc/long" "4.2.2"
+
+"@webassemblyjs/wast-printer@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899"
+ integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/wast-parser" "1.9.0"
+ "@xtuc/long" "4.2.2"
+
+"@xtuc/ieee754@^1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
+ integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
+
+"@xtuc/long@4.2.2":
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
+ integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
+
+accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
+ version "1.3.7"
+ resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
+ integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
+ dependencies:
+ mime-types "~2.1.24"
+ negotiator "0.6.2"
+
+acorn-jsx@^5.2.0:
+ version "5.3.2"
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
+ integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
+
+acorn-walk@^7.1.1:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
+ integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
+
+acorn@^6.4.1:
+ version "6.4.2"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6"
+ integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==
+
+acorn@^7.1.1, acorn@^7.4.0:
+ version "7.4.1"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
+ integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
+
+address@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6"
+ integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==
+
+ajv-errors@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d"
+ integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==
+
+ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2:
+ version "3.5.2"
+ resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
+ integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
+
+ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5:
+ version "6.12.6"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+ integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.4.1"
+ uri-js "^4.2.2"
+
+alphanum-sort@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
+ integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=
+
+animate.css@4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/animate.css/-/animate.css-4.1.1.tgz#614ec5a81131d7e4dc362a58143f7406abd68075"
+ integrity sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==
+
+ansi-align@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npm.taobao.org/ansi-align/download/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb"
+ integrity sha1-tTazcc9ofKrvI2wY0+If43l0Z8s=
+ dependencies:
+ string-width "^3.0.0"
+
+ansi-colors@^3.0.0:
+ version "3.2.4"
+ resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf"
+ integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==
+
+ansi-escapes@^4.2.1:
+ version "4.3.2"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
+ integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
+ dependencies:
+ type-fest "^0.21.3"
+
+ansi-html@0.0.7:
+ version "0.0.7"
+ resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
+ integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4=
+
+ansi-regex@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+ integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
+
+ansi-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+ integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
+
+ansi-regex@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
+ integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
+
+ansi-regex@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
+ integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
+
+ansi-styles@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.nlark.com/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&sync_timestamp=1618995588464&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+ integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
+
+ansi-styles@^3.2.0, ansi-styles@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+ dependencies:
+ color-convert "^1.9.0"
+
+ansi-styles@^4.0.0, ansi-styles@^4.1.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+ integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+ dependencies:
+ color-convert "^2.0.1"
+
+any-promise@^1.0.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
+ integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=
+
+anymatch@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
+ integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
+ dependencies:
+ micromatch "^3.1.4"
+ normalize-path "^2.1.1"
+
+anymatch@^3.0.0, anymatch@~3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
+ integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
+ dependencies:
+ normalize-path "^3.0.0"
+ picomatch "^2.0.4"
+
+apexcharts@3.23.0:
+ version "3.23.0"
+ resolved "https://registry.yarnpkg.com/apexcharts/-/apexcharts-3.23.0.tgz#12877aa789d658aef5eb930af6c3b8850fefd925"
+ integrity sha512-1mV6qouuopvYR6UFSXi/Ge4jRMe//zyAN3aK05mAs4Iuet8mA0w31Q6OU6syD77bawt9p3YKNOmNF7OO2u9w0g==
+ dependencies:
+ svg.draggable.js "^2.2.2"
+ svg.easing.js "^2.0.0"
+ svg.filter.js "^2.0.2"
+ svg.pathmorphing.js "^0.1.3"
+ svg.resize.js "^1.4.3"
+ svg.select.js "^3.0.1"
+
+aproba@^1.0.3, aproba@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
+ integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
+
+arch@^2.1.0, arch@^2.1.1:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11"
+ integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==
+
+archive-type@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npm.taobao.org/archive-type/download/archive-type-4.0.0.tgz#f92e72233056dfc6969472749c267bdb046b1d70"
+ integrity sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=
+ dependencies:
+ file-type "^4.2.0"
+
+are-we-there-yet@~1.1.2:
+ version "1.1.5"
+ resolved "https://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
+ integrity sha1-SzXClE8GKov82mZBB2A1D+nd/CE=
+ dependencies:
+ delegates "^1.0.0"
+ readable-stream "^2.0.6"
+
+argparse@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+ integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
+ dependencies:
+ sprintf-js "~1.0.2"
+
+arr-diff@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
+ integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
+
+arr-flatten@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
+ integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
+
+arr-union@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
+ integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
+
+array-find-index@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.nlark.com/array-find-index/download/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
+ integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=
+
+array-find@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/array-find/-/array-find-1.0.0.tgz#6c8e286d11ed768327f8e62ecee87353ca3e78b8"
+ integrity sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=
+
+array-flatten@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
+ integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
+
+array-flatten@^2.1.0:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099"
+ integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==
+
+array-includes@^3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a"
+ integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.18.0-next.2"
+ get-intrinsic "^1.1.1"
+ is-string "^1.0.5"
+
+array-union@^1.0.1, array-union@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
+ integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=
+ dependencies:
+ array-uniq "^1.0.1"
+
+array-union@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npm.taobao.org/array-union/download/array-union-2.1.0.tgz?cache=0&sync_timestamp=1614624262896&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-union%2Fdownload%2Farray-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
+ integrity sha1-t5hCCtvrHego2ErNii4j0+/oXo0=
+
+array-uniq@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
+ integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
+
+array-unique@^0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
+ integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
+
+array.prototype.flat@^1.2.4:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123"
+ integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==
+ dependencies:
+ call-bind "^1.0.0"
+ define-properties "^1.1.3"
+ es-abstract "^1.18.0-next.1"
+
+asn1.js@^5.2.0:
+ version "5.4.1"
+ resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07"
+ integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==
+ dependencies:
+ bn.js "^4.0.0"
+ inherits "^2.0.1"
+ minimalistic-assert "^1.0.0"
+ safer-buffer "^2.1.0"
+
+asn1@~0.2.3:
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
+ integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
+ dependencies:
+ safer-buffer "~2.1.0"
+
+assert-plus@1.0.0, assert-plus@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+ integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
+
+assert@^1.1.1:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb"
+ integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==
+ dependencies:
+ object-assign "^4.1.1"
+ util "0.10.3"
+
+assign-symbols@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
+ integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
+
+astral-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
+ integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
+
+async-each@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
+ integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
+
+async-limiter@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
+ integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
+
+async@^2.6.2:
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
+ integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
+ dependencies:
+ lodash "^4.17.14"
+
+asynckit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+ integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
+
+atob@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
+ integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
+
+autoprefixer@^9.8.6:
+ version "9.8.6"
+ resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f"
+ integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==
+ dependencies:
+ browserslist "^4.12.0"
+ caniuse-lite "^1.0.30001109"
+ colorette "^1.2.1"
+ normalize-range "^0.1.2"
+ num2fraction "^1.2.2"
+ postcss "^7.0.32"
+ postcss-value-parser "^4.1.0"
+
+aws-sign2@~0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
+ integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
+
+aws4@^1.8.0:
+ version "1.11.0"
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
+ integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
+
+axios-mock-adapter@1.19.0:
+ version "1.19.0"
+ resolved "https://registry.yarnpkg.com/axios-mock-adapter/-/axios-mock-adapter-1.19.0.tgz#9d72e321a6c5418e1eff067aa99761a86c5188a4"
+ integrity sha512-D+0U4LNPr7WroiBDvWilzTMYPYTuZlbo6BI8YHZtj7wYQS8NkARlP9KBt8IWWHTQJ0q/8oZ0ClPBtKCCkx8cQg==
+ dependencies:
+ fast-deep-equal "^3.1.3"
+ is-buffer "^2.0.3"
+
+axios@0.21.1:
+ version "0.21.1"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8"
+ integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==
+ dependencies:
+ follow-redirects "^1.10.0"
+
+babel-eslint@^10.0.3:
+ version "10.1.0"
+ resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232"
+ integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@babel/parser" "^7.7.0"
+ "@babel/traverse" "^7.7.0"
+ "@babel/types" "^7.7.0"
+ eslint-visitor-keys "^1.0.0"
+ resolve "^1.12.0"
+
+babel-helper-vue-jsx-merge-props@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6"
+ integrity sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==
+
+babel-loader@^8.1.0:
+ version "8.2.2"
+ resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81"
+ integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==
+ dependencies:
+ find-cache-dir "^3.3.1"
+ loader-utils "^1.4.0"
+ make-dir "^3.1.0"
+ schema-utils "^2.6.5"
+
+babel-plugin-dynamic-import-node@^2.3.3:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
+ integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
+ dependencies:
+ object.assign "^4.1.0"
+
+babel-plugin-polyfill-corejs2@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327"
+ integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==
+ dependencies:
+ "@babel/compat-data" "^7.13.11"
+ "@babel/helper-define-polyfill-provider" "^0.2.2"
+ semver "^6.1.1"
+
+babel-plugin-polyfill-corejs3@^0.2.2:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.3.tgz#72add68cf08a8bf139ba6e6dfc0b1d504098e57b"
+ integrity sha512-rCOFzEIJpJEAU14XCcV/erIf/wZQMmMT5l5vXOpL5uoznyOGfDIjPj6FVytMvtzaKSTSVKouOCTPJ5OMUZH30g==
+ dependencies:
+ "@babel/helper-define-polyfill-provider" "^0.2.2"
+ core-js-compat "^3.14.0"
+
+babel-plugin-polyfill-regenerator@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077"
+ integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==
+ dependencies:
+ "@babel/helper-define-polyfill-provider" "^0.2.2"
+
+balanced-match@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+ integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+
+base64-js@^1.0.2, base64-js@^1.3.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
+ integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+
+base@^0.11.1:
+ version "0.11.2"
+ resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
+ integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
+ dependencies:
+ cache-base "^1.0.1"
+ class-utils "^0.3.5"
+ component-emitter "^1.2.1"
+ define-property "^1.0.0"
+ isobject "^3.0.1"
+ mixin-deep "^1.2.0"
+ pascalcase "^0.1.1"
+
+batch@0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
+ integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=
+
+bcrypt-pbkdf@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
+ integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
+ dependencies:
+ tweetnacl "^0.14.3"
+
+bfj@^6.1.1:
+ version "6.1.2"
+ resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f"
+ integrity sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==
+ dependencies:
+ bluebird "^3.5.5"
+ check-types "^8.0.3"
+ hoopy "^0.1.4"
+ tryer "^1.0.1"
+
+big.js@^3.1.3:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
+ integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==
+
+big.js@^5.2.2:
+ version "5.2.2"
+ resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
+ integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
+
+bin-build@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npm.taobao.org/bin-build/download/bin-build-3.0.0.tgz#c5780a25a8a9f966d8244217e6c1f5082a143861"
+ integrity sha1-xXgKJaip+WbYJEIX5sH1CCoUOGE=
+ dependencies:
+ decompress "^4.0.0"
+ download "^6.2.2"
+ execa "^0.7.0"
+ p-map-series "^1.0.0"
+ tempfile "^2.0.0"
+
+bin-check@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.npm.taobao.org/bin-check/download/bin-check-4.1.0.tgz#fc495970bdc88bb1d5a35fc17e65c4a149fc4a49"
+ integrity sha1-/ElZcL3Ii7HVo1/BfmXEoUn8Skk=
+ dependencies:
+ execa "^0.7.0"
+ executable "^4.1.0"
+
+bin-version-check@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.nlark.com/bin-version-check/download/bin-version-check-4.0.0.tgz?cache=0&sync_timestamp=1619602121719&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fbin-version-check%2Fdownload%2Fbin-version-check-4.0.0.tgz#7d819c62496991f80d893e6e02a3032361608f71"
+ integrity sha1-fYGcYklpkfgNiT5uAqMDI2Fgj3E=
+ dependencies:
+ bin-version "^3.0.0"
+ semver "^5.6.0"
+ semver-truncate "^1.1.2"
+
+bin-version@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.nlark.com/bin-version/download/bin-version-3.1.0.tgz#5b09eb280752b1bd28f0c9db3f96f2f43b6c0839"
+ integrity sha1-WwnrKAdSsb0o8MnbP5by9DtsCDk=
+ dependencies:
+ execa "^1.0.0"
+ find-versions "^3.0.0"
+
+bin-wrapper@^4.0.0, bin-wrapper@^4.0.1:
+ version "4.1.0"
+ resolved "https://registry.npm.taobao.org/bin-wrapper/download/bin-wrapper-4.1.0.tgz#99348f2cf85031e3ef7efce7e5300aeaae960605"
+ integrity sha1-mTSPLPhQMePvfvzn5TAK6q6WBgU=
+ dependencies:
+ bin-check "^4.1.0"
+ bin-version-check "^4.0.0"
+ download "^7.1.0"
+ import-lazy "^3.1.0"
+ os-filter-obj "^2.0.0"
+ pify "^4.0.1"
+
+binary-extensions@^1.0.0:
+ version "1.13.1"
+ resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"
+ integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==
+
+binary-extensions@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
+ integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
+
+bindings@^1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
+ integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
+ dependencies:
+ file-uri-to-path "1.0.0"
+
+bl@^1.0.0:
+ version "1.2.3"
+ resolved "https://registry.nlark.com/bl/download/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7"
+ integrity sha1-Ho3YAULqyA1xWMnczAR/tiDgNec=
+ dependencies:
+ readable-stream "^2.3.5"
+ safe-buffer "^5.1.1"
+
+bl@^4.0.3, bl@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.nlark.com/bl/download/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
+ integrity sha1-RRU1JkGCvsL7vIOmKrmM8R2fezo=
+ dependencies:
+ buffer "^5.5.0"
+ inherits "^2.0.4"
+ readable-stream "^3.4.0"
+
+bluebird@^3.1.1, bluebird@^3.5.5:
+ version "3.7.2"
+ resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
+ integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
+
+bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
+ version "4.12.0"
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
+ integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
+
+bn.js@^5.0.0, bn.js@^5.1.1:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002"
+ integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==
+
+body-parser@1.19.0:
+ version "1.19.0"
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
+ integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==
+ dependencies:
+ bytes "3.1.0"
+ content-type "~1.0.4"
+ debug "2.6.9"
+ depd "~1.1.2"
+ http-errors "1.7.2"
+ iconv-lite "0.4.24"
+ on-finished "~2.3.0"
+ qs "6.7.0"
+ raw-body "2.4.0"
+ type-is "~1.6.17"
+
+bonjour@^3.5.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5"
+ integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU=
+ dependencies:
+ array-flatten "^2.1.0"
+ deep-equal "^1.0.1"
+ dns-equal "^1.0.0"
+ dns-txt "^2.0.2"
+ multicast-dns "^6.0.1"
+ multicast-dns-service-types "^1.1.0"
+
+boolbase@^1.0.0, boolbase@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
+ integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
+
+bootstrap-vue@2.21.1:
+ version "2.21.1"
+ resolved "https://registry.yarnpkg.com/bootstrap-vue/-/bootstrap-vue-2.21.1.tgz#20d3ced96b735917d8be71b77717eee74bb40c6f"
+ integrity sha512-hGAfy6hwA6pH/2oxKtd4GOETDW38br+K1ICw4sDDkuARxNlMwrVgIjMQFV8hGzo9NZi/bj82NZx8wRR9221qkw==
+ dependencies:
+ "@nuxt/opencollective" "^0.3.2"
+ bootstrap ">=4.5.3 <5.0.0"
+ popper.js "^1.16.1"
+ portal-vue "^2.1.7"
+ vue-functional-data-merge "^3.1.0"
+
+bootstrap@4.6.0, "bootstrap@>=4.5.3 <5.0.0":
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.6.0.tgz#97b9f29ac98f98dfa43bf7468262d84392552fd7"
+ integrity sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==
+
+boxen@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.npm.taobao.org/boxen/download/boxen-5.0.1.tgz#657528bdd3f59a772b8279b831f27ec2c744664b"
+ integrity sha1-ZXUovdP1mncrgnm4MfJ+wsdEZks=
+ dependencies:
+ ansi-align "^3.0.0"
+ camelcase "^6.2.0"
+ chalk "^4.1.0"
+ cli-boxes "^2.2.1"
+ string-width "^4.2.0"
+ type-fest "^0.20.2"
+ widest-line "^3.1.0"
+ wrap-ansi "^7.0.0"
+
+brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+braces@^2.3.1, braces@^2.3.2:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
+ integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
+ dependencies:
+ arr-flatten "^1.1.0"
+ array-unique "^0.3.2"
+ extend-shallow "^2.0.1"
+ fill-range "^4.0.0"
+ isobject "^3.0.1"
+ repeat-element "^1.1.2"
+ snapdragon "^0.8.1"
+ snapdragon-node "^2.0.1"
+ split-string "^3.0.2"
+ to-regex "^3.0.1"
+
+braces@^3.0.1, braces@~3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
+ integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+ dependencies:
+ fill-range "^7.0.1"
+
+brorand@^1.0.1, brorand@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
+ integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
+
+browserify-aes@^1.0.0, browserify-aes@^1.0.4:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
+ integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
+ dependencies:
+ buffer-xor "^1.0.3"
+ cipher-base "^1.0.0"
+ create-hash "^1.1.0"
+ evp_bytestokey "^1.0.3"
+ inherits "^2.0.1"
+ safe-buffer "^5.0.1"
+
+browserify-cipher@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
+ integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
+ dependencies:
+ browserify-aes "^1.0.4"
+ browserify-des "^1.0.0"
+ evp_bytestokey "^1.0.0"
+
+browserify-des@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
+ integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==
+ dependencies:
+ cipher-base "^1.0.1"
+ des.js "^1.0.0"
+ inherits "^2.0.1"
+ safe-buffer "^5.1.2"
+
+browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d"
+ integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==
+ dependencies:
+ bn.js "^5.0.0"
+ randombytes "^2.0.1"
+
+browserify-sign@^4.0.0:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3"
+ integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==
+ dependencies:
+ bn.js "^5.1.1"
+ browserify-rsa "^4.0.1"
+ create-hash "^1.2.0"
+ create-hmac "^1.1.7"
+ elliptic "^6.5.3"
+ inherits "^2.0.4"
+ parse-asn1 "^5.1.5"
+ readable-stream "^3.6.0"
+ safe-buffer "^5.2.0"
+
+browserify-zlib@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
+ integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
+ dependencies:
+ pako "~1.0.5"
+
+browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.16.6:
+ version "4.16.6"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2"
+ integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==
+ dependencies:
+ caniuse-lite "^1.0.30001219"
+ colorette "^1.2.2"
+ electron-to-chromium "^1.3.723"
+ escalade "^3.1.1"
+ node-releases "^1.1.71"
+
+buffer-alloc-unsafe@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npm.taobao.org/buffer-alloc-unsafe/download/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
+ integrity sha1-vX3CauKXLQ7aJTvgYdupkjScGfA=
+
+buffer-alloc@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.nlark.com/buffer-alloc/download/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec"
+ integrity sha1-iQ3ZDZI6hz4I4Q5f1RpX5bfM4Ow=
+ dependencies:
+ buffer-alloc-unsafe "^1.1.0"
+ buffer-fill "^1.0.0"
+
+buffer-crc32@~0.2.3:
+ version "0.2.13"
+ resolved "https://registry.npm.taobao.org/buffer-crc32/download/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
+ integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
+
+buffer-equal-constant-time@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
+ integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=
+
+buffer-fill@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npm.taobao.org/buffer-fill/download/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
+ integrity sha1-+PeLdniYiO858gXNY39o5wISKyw=
+
+buffer-from@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
+ integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
+
+buffer-indexof@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c"
+ integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==
+
+buffer-json@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/buffer-json/-/buffer-json-2.0.0.tgz#f73e13b1e42f196fe2fd67d001c7d7107edd7c23"
+ integrity sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw==
+
+buffer-xor@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
+ integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=
+
+buffer@^4.3.0:
+ version "4.9.2"
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8"
+ integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==
+ dependencies:
+ base64-js "^1.0.2"
+ ieee754 "^1.1.4"
+ isarray "^1.0.0"
+
+buffer@^5.2.1, buffer@^5.5.0:
+ version "5.7.1"
+ resolved "https://registry.nlark.com/buffer/download/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
+ integrity sha1-umLnwTEzBTWCGXFghRqPZI6Z7tA=
+ dependencies:
+ base64-js "^1.3.1"
+ ieee754 "^1.1.13"
+
+builtin-status-codes@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
+ integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
+
+bytes@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
+ integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
+
+bytes@3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
+ integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
+
+cacache@^12.0.2, cacache@^12.0.3:
+ version "12.0.4"
+ resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c"
+ integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==
+ dependencies:
+ bluebird "^3.5.5"
+ chownr "^1.1.1"
+ figgy-pudding "^3.5.1"
+ glob "^7.1.4"
+ graceful-fs "^4.1.15"
+ infer-owner "^1.0.3"
+ lru-cache "^5.1.1"
+ mississippi "^3.0.0"
+ mkdirp "^0.5.1"
+ move-concurrently "^1.0.1"
+ promise-inflight "^1.0.1"
+ rimraf "^2.6.3"
+ ssri "^6.0.1"
+ unique-filename "^1.1.1"
+ y18n "^4.0.0"
+
+cache-base@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
+ integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
+ dependencies:
+ collection-visit "^1.0.0"
+ component-emitter "^1.2.1"
+ get-value "^2.0.6"
+ has-value "^1.0.0"
+ isobject "^3.0.1"
+ set-value "^2.0.0"
+ to-object-path "^0.3.0"
+ union-value "^1.0.0"
+ unset-value "^1.0.0"
+
+cache-loader@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-4.1.0.tgz#9948cae353aec0a1fcb1eafda2300816ec85387e"
+ integrity sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw==
+ dependencies:
+ buffer-json "^2.0.0"
+ find-cache-dir "^3.0.0"
+ loader-utils "^1.2.3"
+ mkdirp "^0.5.1"
+ neo-async "^2.6.1"
+ schema-utils "^2.0.0"
+
+cacheable-lookup@^5.0.3:
+ version "5.0.4"
+ resolved "https://registry.npm.taobao.org/cacheable-lookup/download/cacheable-lookup-5.0.4.tgz?cache=0&sync_timestamp=1613567617958&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacheable-lookup%2Fdownload%2Fcacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005"
+ integrity sha1-WmuGWyxENXvj1evCpGewMnGacAU=
+
+cacheable-request@^2.1.1:
+ version "2.1.4"
+ resolved "https://registry.nlark.com/cacheable-request/download/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d"
+ integrity sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=
+ dependencies:
+ clone-response "1.0.2"
+ get-stream "3.0.0"
+ http-cache-semantics "3.8.1"
+ keyv "3.0.0"
+ lowercase-keys "1.0.0"
+ normalize-url "2.0.1"
+ responselike "1.0.2"
+
+cacheable-request@^6.0.0:
+ version "6.1.0"
+ resolved "https://registry.nlark.com/cacheable-request/download/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912"
+ integrity sha1-IP+4vRYrpL4R6VZ9gj22UQUsqRI=
+ dependencies:
+ clone-response "^1.0.2"
+ get-stream "^5.1.0"
+ http-cache-semantics "^4.0.0"
+ keyv "^3.0.0"
+ lowercase-keys "^2.0.0"
+ normalize-url "^4.1.0"
+ responselike "^1.0.2"
+
+cacheable-request@^7.0.1:
+ version "7.0.2"
+ resolved "https://registry.nlark.com/cacheable-request/download/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27"
+ integrity sha1-6g0LiJNkolhUdXMByhKy2nf5HSc=
+ dependencies:
+ clone-response "^1.0.2"
+ get-stream "^5.1.0"
+ http-cache-semantics "^4.0.0"
+ keyv "^4.0.0"
+ lowercase-keys "^2.0.0"
+ normalize-url "^6.0.1"
+ responselike "^2.0.0"
+
+call-bind@^1.0.0, call-bind@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
+ integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
+ dependencies:
+ function-bind "^1.1.1"
+ get-intrinsic "^1.0.2"
+
+call-me-maybe@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b"
+ integrity sha1-JtII6onje1y95gJQoV8DHBak1ms=
+
+caller-callsite@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
+ integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=
+ dependencies:
+ callsites "^2.0.0"
+
+caller-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
+ integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=
+ dependencies:
+ caller-callsite "^2.0.0"
+
+callsites@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
+ integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
+
+callsites@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+ integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+
+camel-case@3.0.x:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73"
+ integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=
+ dependencies:
+ no-case "^2.2.0"
+ upper-case "^1.1.1"
+
+camelcase-keys@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.nlark.com/camelcase-keys/download/camelcase-keys-2.1.0.tgz?cache=0&sync_timestamp=1624609060222&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcamelcase-keys%2Fdownload%2Fcamelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
+ integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc=
+ dependencies:
+ camelcase "^2.0.0"
+ map-obj "^1.0.0"
+
+camelcase@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
+ integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=
+
+camelcase@^5.0.0, camelcase@^5.3.1:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
+ integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+
+camelcase@^6.0.0, camelcase@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809"
+ integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==
+
+caniuse-api@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
+ integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==
+ dependencies:
+ browserslist "^4.0.0"
+ caniuse-lite "^1.0.0"
+ lodash.memoize "^4.1.2"
+ lodash.uniq "^4.5.0"
+
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219:
+ version "1.0.30001245"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001245.tgz#45b941bbd833cb0fa53861ff2bae746b3c6ca5d4"
+ integrity sha512-768fM9j1PKXpOCKws6eTo3RHmvTUsG9UrpT4WoREFeZgJBTi4/X9g565azS/rVUGtqb8nt7FjLeF5u4kukERnA==
+
+case-sensitive-paths-webpack-plugin@^2.3.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4"
+ integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==
+
+caseless@~0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
+ integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
+
+caw@^2.0.0, caw@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npm.taobao.org/caw/download/caw-2.0.1.tgz#6c3ca071fc194720883c2dc5da9b074bfc7e9e95"
+ integrity sha1-bDygcfwZRyCIPC3F2psHS/x+npU=
+ dependencies:
+ get-proxy "^2.0.0"
+ isurl "^1.0.0-alpha5"
+ tunnel-agent "^0.6.0"
+ url-to-options "^1.0.1"
+
+chalk@4.1.1, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad"
+ integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
+chalk@^1.0.0:
+ version "1.1.3"
+ resolved "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+ integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
+ dependencies:
+ ansi-styles "^2.2.1"
+ escape-string-regexp "^1.0.2"
+ has-ansi "^2.0.0"
+ strip-ansi "^3.0.0"
+ supports-color "^2.0.0"
+
+chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+ dependencies:
+ ansi-styles "^3.2.1"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
+chardet@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
+ integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
+
+chart.js@2.9.4:
+ version "2.9.4"
+ resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.9.4.tgz#0827f9563faffb2dc5c06562f8eb10337d5b9684"
+ integrity sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A==
+ dependencies:
+ chartjs-color "^2.1.0"
+ moment "^2.10.2"
+
+chartjs-color-string@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz#1df096621c0e70720a64f4135ea171d051402f71"
+ integrity sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A==
+ dependencies:
+ color-name "^1.0.0"
+
+chartjs-color@^2.1.0:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.4.1.tgz#6118bba202fe1ea79dd7f7c0f9da93467296c3b0"
+ integrity sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==
+ dependencies:
+ chartjs-color-string "^0.6.0"
+ color-convert "^1.9.3"
+
+check-types@^8.0.3:
+ version "8.0.3"
+ resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552"
+ integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==
+
+"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.1:
+ version "3.5.2"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75"
+ integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==
+ dependencies:
+ anymatch "~3.1.2"
+ braces "~3.0.2"
+ glob-parent "~5.1.2"
+ is-binary-path "~2.1.0"
+ is-glob "~4.0.1"
+ normalize-path "~3.0.0"
+ readdirp "~3.6.0"
+ optionalDependencies:
+ fsevents "~2.3.2"
+
+chokidar@^2.1.8:
+ version "2.1.8"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917"
+ integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==
+ dependencies:
+ anymatch "^2.0.0"
+ async-each "^1.0.1"
+ braces "^2.3.2"
+ glob-parent "^3.1.0"
+ inherits "^2.0.3"
+ is-binary-path "^1.0.0"
+ is-glob "^4.0.0"
+ normalize-path "^3.0.0"
+ path-is-absolute "^1.0.0"
+ readdirp "^2.2.1"
+ upath "^1.1.1"
+ optionalDependencies:
+ fsevents "^1.2.7"
+
+chownr@^1.1.1:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
+ integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
+
+chrome-trace-event@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac"
+ integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==
+
+ci-info@^1.5.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497"
+ integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==
+
+ci-info@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.nlark.com/ci-info/download/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
+ integrity sha1-Z6npZL4xpR4V5QENWObxKDQAL0Y=
+
+cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
+ integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==
+ dependencies:
+ inherits "^2.0.1"
+ safe-buffer "^5.0.1"
+
+class-utils@^0.3.5:
+ version "0.3.6"
+ resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
+ integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
+ dependencies:
+ arr-union "^3.1.0"
+ define-property "^0.2.5"
+ isobject "^3.0.0"
+ static-extend "^0.1.1"
+
+clean-css@4.2.x:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78"
+ integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==
+ dependencies:
+ source-map "~0.6.0"
+
+cleave.js@^1.4.7:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/cleave.js/-/cleave.js-1.6.0.tgz#0e4e011943bdd70c67c9dcf4ff800ce710529171"
+ integrity sha512-ivqesy3j5hQVG3gywPfwKPbi/7ZSftY/UNp5uphnqjr25yI2CP8FS2ODQPzuLXXnNLi29e2+PgPkkiKUXLs/Nw==
+
+cli-boxes@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.nlark.com/cli-boxes/download/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f"
+ integrity sha1-3dUDXSUJT84iDpyrQKRYQKRAMY8=
+
+cli-cursor@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
+ integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=
+ dependencies:
+ restore-cursor "^2.0.0"
+
+cli-cursor@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
+ integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
+ dependencies:
+ restore-cursor "^3.1.0"
+
+cli-highlight@^2.1.4:
+ version "2.1.11"
+ resolved "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-2.1.11.tgz#49736fa452f0aaf4fae580e30acb26828d2dc1bf"
+ integrity sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==
+ dependencies:
+ chalk "^4.0.0"
+ highlight.js "^10.7.1"
+ mz "^2.4.0"
+ parse5 "^5.1.1"
+ parse5-htmlparser2-tree-adapter "^6.0.0"
+ yargs "^16.0.0"
+
+cli-spinners@^2.0.0, cli-spinners@^2.5.0:
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.0.tgz#36c7dc98fb6a9a76bd6238ec3f77e2425627e939"
+ integrity sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==
+
+cli-width@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6"
+ integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==
+
+clipboard@^2.0.0:
+ version "2.0.8"
+ resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.8.tgz#ffc6c103dd2967a83005f3f61976aa4655a4cdba"
+ integrity sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ==
+ dependencies:
+ good-listener "^1.2.2"
+ select "^1.1.2"
+ tiny-emitter "^2.0.0"
+
+clipboardy@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-2.3.0.tgz#3c2903650c68e46a91b388985bc2774287dba290"
+ integrity sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==
+ dependencies:
+ arch "^2.1.1"
+ execa "^1.0.0"
+ is-wsl "^2.1.1"
+
+cliui@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
+ integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==
+ dependencies:
+ string-width "^3.1.0"
+ strip-ansi "^5.2.0"
+ wrap-ansi "^5.1.0"
+
+cliui@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
+ integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==
+ dependencies:
+ string-width "^4.2.0"
+ strip-ansi "^6.0.0"
+ wrap-ansi "^6.2.0"
+
+cliui@^7.0.2:
+ version "7.0.4"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
+ integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
+ dependencies:
+ string-width "^4.2.0"
+ strip-ansi "^6.0.0"
+ wrap-ansi "^7.0.0"
+
+clone-response@1.0.2, clone-response@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npm.taobao.org/clone-response/download/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b"
+ integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=
+ dependencies:
+ mimic-response "^1.0.0"
+
+clone@^1.0.2:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
+ integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
+
+clone@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
+ integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
+
+coa@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
+ integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==
+ dependencies:
+ "@types/q" "^1.5.1"
+ chalk "^2.4.1"
+ q "^1.1.2"
+
+code-point-at@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.nlark.com/code-point-at/download/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+ integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
+
+collection-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
+ integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
+ dependencies:
+ map-visit "^1.0.0"
+ object-visit "^1.0.0"
+
+color-convert@^1.9.0, color-convert@^1.9.1, color-convert@^1.9.3:
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+ dependencies:
+ color-name "1.1.3"
+
+color-convert@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+ dependencies:
+ color-name "~1.1.4"
+
+color-name@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+ integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
+
+color-name@^1.0.0, color-name@~1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+color-string@^1.5.4:
+ version "1.5.5"
+ resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014"
+ integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==
+ dependencies:
+ color-name "^1.0.0"
+ simple-swizzle "^0.2.2"
+
+color@^3.0.0, color@^3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e"
+ integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==
+ dependencies:
+ color-convert "^1.9.1"
+ color-string "^1.5.4"
+
+colorette@^1.2.1, colorette@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
+ integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
+
+colors@~0.6.0-1:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc"
+ integrity sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=
+
+combined-stream@^1.0.6, combined-stream@~1.0.6:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+ dependencies:
+ delayed-stream "~1.0.0"
+
+commander@2.17.x:
+ version "2.17.1"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
+ integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==
+
+commander@^2.18.0, commander@^2.20.0, commander@^2.8.1:
+ version "2.20.3"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
+ integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+
+commander@~2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.1.0.tgz#d121bbae860d9992a3d517ba96f56588e47c6781"
+ integrity sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E=
+
+commander@~2.19.0:
+ version "2.19.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
+ integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
+
+commondir@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
+ integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
+
+component-emitter@^1.2.1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
+ integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
+
+compressible@~2.0.16:
+ version "2.0.18"
+ resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba"
+ integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==
+ dependencies:
+ mime-db ">= 1.43.0 < 2"
+
+compression@^1.7.4:
+ version "1.7.4"
+ resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f"
+ integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==
+ dependencies:
+ accepts "~1.3.5"
+ bytes "3.0.0"
+ compressible "~2.0.16"
+ debug "2.6.9"
+ on-headers "~1.0.2"
+ safe-buffer "5.1.2"
+ vary "~1.1.2"
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+
+concat-stream@^1.5.0:
+ version "1.6.2"
+ resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
+ integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
+ dependencies:
+ buffer-from "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^2.2.2"
+ typedarray "^0.0.6"
+
+config-chain@^1.1.11:
+ version "1.1.13"
+ resolved "https://registry.nlark.com/config-chain/download/config-chain-1.1.13.tgz?cache=0&sync_timestamp=1622745851079&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fconfig-chain%2Fdownload%2Fconfig-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4"
+ integrity sha1-+tB5Wqamza/57Rto6d/5Q3LCMvQ=
+ dependencies:
+ ini "^1.3.4"
+ proto-list "~1.2.1"
+
+configstore@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npm.taobao.org/configstore/download/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96"
+ integrity sha1-02UCG130uYzdGH1qOw4/anzF7ZY=
+ dependencies:
+ dot-prop "^5.2.0"
+ graceful-fs "^4.1.2"
+ make-dir "^3.0.0"
+ unique-string "^2.0.0"
+ write-file-atomic "^3.0.0"
+ xdg-basedir "^4.0.0"
+
+confusing-browser-globals@^1.0.10:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz#30d1e7f3d1b882b25ec4933d1d1adac353d20a59"
+ integrity sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==
+
+connect-history-api-fallback@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc"
+ integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==
+
+consola@^2.15.0:
+ version "2.15.3"
+ resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550"
+ integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==
+
+console-browserify@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
+ integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
+
+console-control-strings@^1.0.0, console-control-strings@~1.1.0:
+ version "1.1.0"
+ resolved "https://registry.nlark.com/console-control-strings/download/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
+ integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
+
+console-stream@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.npm.taobao.org/console-stream/download/console-stream-0.1.1.tgz#a095fe07b20465955f2fafd28b5d72bccd949d44"
+ integrity sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ=
+
+consolidate@^0.15.1:
+ version "0.15.1"
+ resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7"
+ integrity sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==
+ dependencies:
+ bluebird "^3.1.1"
+
+constants-browserify@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
+ integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=
+
+content-disposition@0.5.3, content-disposition@^0.5.2:
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
+ integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
+ dependencies:
+ safe-buffer "5.1.2"
+
+content-type@~1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
+ integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
+
+convert-source-map@^1.7.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
+ integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
+ dependencies:
+ safe-buffer "~5.1.1"
+
+cookie-signature@1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
+ integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
+
+cookie@0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
+ integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
+
+copy-concurrently@^1.0.0:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
+ integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==
+ dependencies:
+ aproba "^1.1.1"
+ fs-write-stream-atomic "^1.0.8"
+ iferr "^0.1.5"
+ mkdirp "^0.5.1"
+ rimraf "^2.5.4"
+ run-queue "^1.0.0"
+
+copy-descriptor@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
+ integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
+
+copy-webpack-plugin@^5.1.1:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz#8a889e1dcafa6c91c6cd4be1ad158f1d3823bae2"
+ integrity sha512-Uh7crJAco3AjBvgAy9Z75CjK8IG+gxaErro71THQ+vv/bl4HaQcpkexAY8KVW/T6D2W2IRr+couF/knIRkZMIQ==
+ dependencies:
+ cacache "^12.0.3"
+ find-cache-dir "^2.1.0"
+ glob-parent "^3.1.0"
+ globby "^7.1.1"
+ is-glob "^4.0.1"
+ loader-utils "^1.2.3"
+ minimatch "^3.0.4"
+ normalize-path "^3.0.0"
+ p-limit "^2.2.1"
+ schema-utils "^1.0.0"
+ serialize-javascript "^4.0.0"
+ webpack-log "^2.0.0"
+
+core-js-compat@^3.14.0, core-js-compat@^3.15.0, core-js-compat@^3.6.5:
+ version "3.15.2"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.15.2.tgz#47272fbb479880de14b4e6081f71f3492f5bd3cb"
+ integrity sha512-Wp+BJVvwopjI+A1EFqm2dwUmWYXrvucmtIB2LgXn/Rb+gWPKYxtmb4GKHGKG/KGF1eK9jfjzT38DITbTOCX/SQ==
+ dependencies:
+ browserslist "^4.16.6"
+ semver "7.0.0"
+
+core-js@3.8.1:
+ version "3.8.1"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.8.1.tgz#f51523668ac8a294d1285c3b9db44025fda66d47"
+ integrity sha512-9Id2xHY1W7m8hCl8NkhQn5CufmF/WuR30BTRewvCXc1aZd3kMECwNZ69ndLbekKfakw9Rf2Xyc+QR6E7Gg+obg==
+
+core-js@^3.4.4, core-js@^3.6.5:
+ version "3.15.2"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.15.2.tgz#740660d2ff55ef34ce664d7e2455119c5bdd3d61"
+ integrity sha512-tKs41J7NJVuaya8DxIOCnl8QuPHx5/ZVbFo1oKgVl1qHFBBrDctzQGtuLjPpRdNTWmKPH6oEvgN/MUID+l485Q==
+
+core-util-is@1.0.2, core-util-is@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+ integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
+
+cosmiconfig@^5.0.0:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
+ integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==
+ dependencies:
+ import-fresh "^2.0.0"
+ is-directory "^0.3.1"
+ js-yaml "^3.13.1"
+ parse-json "^4.0.0"
+
+create-ecdh@^4.0.0:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e"
+ integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==
+ dependencies:
+ bn.js "^4.1.0"
+ elliptic "^6.5.3"
+
+create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
+ integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
+ dependencies:
+ cipher-base "^1.0.1"
+ inherits "^2.0.1"
+ md5.js "^1.3.4"
+ ripemd160 "^2.0.1"
+ sha.js "^2.4.0"
+
+create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
+ integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
+ dependencies:
+ cipher-base "^1.0.3"
+ create-hash "^1.1.0"
+ inherits "^2.0.1"
+ ripemd160 "^2.0.0"
+ safe-buffer "^5.0.1"
+ sha.js "^2.4.8"
+
+cross-env@7.0.3:
+ version "7.0.3"
+ resolved "https://registry.nlark.com/cross-env/download/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf"
+ integrity sha1-hlJkspZ33AFbqEGJGJZd0jL8VM8=
+ dependencies:
+ cross-spawn "^7.0.1"
+
+cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.1:
+ version "7.0.3"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
+ integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
+ dependencies:
+ path-key "^3.1.0"
+ shebang-command "^2.0.0"
+ which "^2.0.1"
+
+cross-spawn@^5.0.1:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
+ integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=
+ dependencies:
+ lru-cache "^4.0.1"
+ shebang-command "^1.2.0"
+ which "^1.2.9"
+
+cross-spawn@^6.0.0, cross-spawn@^6.0.5:
+ version "6.0.5"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
+ integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
+ dependencies:
+ nice-try "^1.0.4"
+ path-key "^2.0.1"
+ semver "^5.5.0"
+ shebang-command "^1.2.0"
+ which "^1.2.9"
+
+crypto-browserify@^3.11.0:
+ version "3.12.0"
+ resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
+ integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
+ dependencies:
+ browserify-cipher "^1.0.0"
+ browserify-sign "^4.0.0"
+ create-ecdh "^4.0.0"
+ create-hash "^1.1.0"
+ create-hmac "^1.1.0"
+ diffie-hellman "^5.0.0"
+ inherits "^2.0.1"
+ pbkdf2 "^3.0.3"
+ public-encrypt "^4.0.0"
+ randombytes "^2.0.0"
+ randomfill "^1.0.3"
+
+crypto-random-string@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.nlark.com/crypto-random-string/download/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
+ integrity sha1-7yp6lm7BEIM4g2m6oC6+rSKbMNU=
+
+css-color-names@0.0.4, css-color-names@^0.0.4:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
+ integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=
+
+css-declaration-sorter@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22"
+ integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==
+ dependencies:
+ postcss "^7.0.1"
+ timsort "^0.3.0"
+
+css-loader@^3.5.3:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645"
+ integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==
+ dependencies:
+ camelcase "^5.3.1"
+ cssesc "^3.0.0"
+ icss-utils "^4.1.1"
+ loader-utils "^1.2.3"
+ normalize-path "^3.0.0"
+ postcss "^7.0.32"
+ postcss-modules-extract-imports "^2.0.0"
+ postcss-modules-local-by-default "^3.0.2"
+ postcss-modules-scope "^2.2.0"
+ postcss-modules-values "^3.0.0"
+ postcss-value-parser "^4.1.0"
+ schema-utils "^2.7.0"
+ semver "^6.3.0"
+
+css-select-base-adapter@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7"
+ integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==
+
+css-select@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef"
+ integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==
+ dependencies:
+ boolbase "^1.0.0"
+ css-what "^3.2.1"
+ domutils "^1.7.0"
+ nth-check "^1.0.2"
+
+css-select@^4.1.3:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067"
+ integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==
+ dependencies:
+ boolbase "^1.0.0"
+ css-what "^5.0.0"
+ domhandler "^4.2.0"
+ domutils "^2.6.0"
+ nth-check "^2.0.0"
+
+css-tree@1.0.0-alpha.37:
+ version "1.0.0-alpha.37"
+ resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22"
+ integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==
+ dependencies:
+ mdn-data "2.0.4"
+ source-map "^0.6.1"
+
+css-tree@^1.1.2:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
+ integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
+ dependencies:
+ mdn-data "2.0.14"
+ source-map "^0.6.1"
+
+css-what@^3.2.1:
+ version "3.4.2"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4"
+ integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==
+
+css-what@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.0.1.tgz#3efa820131f4669a8ac2408f9c32e7c7de9f4cad"
+ integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==
+
+cssesc@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
+ integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
+
+cssnano-preset-default@^4.0.0, cssnano-preset-default@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff"
+ integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==
+ dependencies:
+ css-declaration-sorter "^4.0.1"
+ cssnano-util-raw-cache "^4.0.1"
+ postcss "^7.0.0"
+ postcss-calc "^7.0.1"
+ postcss-colormin "^4.0.3"
+ postcss-convert-values "^4.0.1"
+ postcss-discard-comments "^4.0.2"
+ postcss-discard-duplicates "^4.0.2"
+ postcss-discard-empty "^4.0.1"
+ postcss-discard-overridden "^4.0.1"
+ postcss-merge-longhand "^4.0.11"
+ postcss-merge-rules "^4.0.3"
+ postcss-minify-font-values "^4.0.2"
+ postcss-minify-gradients "^4.0.2"
+ postcss-minify-params "^4.0.2"
+ postcss-minify-selectors "^4.0.2"
+ postcss-normalize-charset "^4.0.1"
+ postcss-normalize-display-values "^4.0.2"
+ postcss-normalize-positions "^4.0.2"
+ postcss-normalize-repeat-style "^4.0.2"
+ postcss-normalize-string "^4.0.2"
+ postcss-normalize-timing-functions "^4.0.2"
+ postcss-normalize-unicode "^4.0.1"
+ postcss-normalize-url "^4.0.1"
+ postcss-normalize-whitespace "^4.0.2"
+ postcss-ordered-values "^4.1.2"
+ postcss-reduce-initial "^4.0.3"
+ postcss-reduce-transforms "^4.0.2"
+ postcss-svgo "^4.0.3"
+ postcss-unique-selectors "^4.0.1"
+
+cssnano-util-get-arguments@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f"
+ integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=
+
+cssnano-util-get-match@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d"
+ integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=
+
+cssnano-util-raw-cache@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282"
+ integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==
+ dependencies:
+ postcss "^7.0.0"
+
+cssnano-util-same-parent@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3"
+ integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==
+
+cssnano@^4.0.0, cssnano@^4.1.10:
+ version "4.1.11"
+ resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99"
+ integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==
+ dependencies:
+ cosmiconfig "^5.0.0"
+ cssnano-preset-default "^4.0.8"
+ is-resolvable "^1.0.0"
+ postcss "^7.0.0"
+
+csso@^4.0.2:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529"
+ integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==
+ dependencies:
+ css-tree "^1.1.2"
+
+currently-unhandled@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.nlark.com/currently-unhandled/download/currently-unhandled-0.4.1.tgz?cache=0&sync_timestamp=1618847033604&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcurrently-unhandled%2Fdownload%2Fcurrently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
+ integrity sha1-mI3zP+qxke95mmE2nddsF635V+o=
+ dependencies:
+ array-find-index "^1.0.1"
+
+cyclist@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
+ integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=
+
+dashdash@^1.12.0:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+ integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
+ dependencies:
+ assert-plus "^1.0.0"
+
+date-fns@^2.0.0-beta.4:
+ version "2.22.1"
+ resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.22.1.tgz#1e5af959831ebb1d82992bf67b765052d8f0efc4"
+ integrity sha512-yUFPQjrxEmIsMqlHhAhmxkuH769baF21Kk+nZwZGyrMoyLA+LugaQtC0+Tqf9CBUUULWwUJt6Q5ySI3LJDDCGg==
+
+de-indent@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
+ integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=
+
+debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+ dependencies:
+ ms "2.0.0"
+
+debug@^3.1.1, debug@^3.2.6, debug@^3.2.7:
+ version "3.2.7"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
+ integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
+ dependencies:
+ ms "^2.1.1"
+
+debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
+ version "4.3.2"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
+ integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
+ dependencies:
+ ms "2.1.2"
+
+decamelize@^1.1.2, decamelize@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+ integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
+
+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"
+ integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
+
+decompress-response@^3.2.0, decompress-response@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.npm.taobao.org/decompress-response/download/decompress-response-3.3.0.tgz?cache=0&sync_timestamp=1613125280468&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecompress-response%2Fdownload%2Fdecompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
+ integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=
+ dependencies:
+ mimic-response "^1.0.0"
+
+decompress-response@^4.2.0:
+ version "4.2.1"
+ resolved "https://registry.npm.taobao.org/decompress-response/download/decompress-response-4.2.1.tgz?cache=0&sync_timestamp=1613125280468&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecompress-response%2Fdownload%2Fdecompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986"
+ integrity sha1-QUAjzHowLaJc4uyC0NUjjMr9iYY=
+ dependencies:
+ mimic-response "^2.0.0"
+
+decompress-response@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npm.taobao.org/decompress-response/download/decompress-response-6.0.0.tgz?cache=0&sync_timestamp=1613125280468&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecompress-response%2Fdownload%2Fdecompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc"
+ integrity sha1-yjh2Et234QS9FthaqwDV7PCcZvw=
+ dependencies:
+ mimic-response "^3.1.0"
+
+decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.npm.taobao.org/decompress-tar/download/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1"
+ integrity sha1-cYy9P8sWIJcW5womuE57pFkuWvE=
+ dependencies:
+ file-type "^5.2.0"
+ is-stream "^1.1.0"
+ tar-stream "^1.5.2"
+
+decompress-tarbz2@^4.0.0:
+ version "4.1.1"
+ resolved "https://registry.npm.taobao.org/decompress-tarbz2/download/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b"
+ integrity sha1-MIKluIDqQEOBY0nzeLVsUWvho5s=
+ dependencies:
+ decompress-tar "^4.1.0"
+ file-type "^6.1.0"
+ is-stream "^1.1.0"
+ seek-bzip "^1.0.5"
+ unbzip2-stream "^1.0.9"
+
+decompress-targz@^4.0.0:
+ version "4.1.1"
+ resolved "https://registry.npm.taobao.org/decompress-targz/download/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee"
+ integrity sha1-wJvDXE0R894J8tLaU+neI+fOHu4=
+ dependencies:
+ decompress-tar "^4.1.1"
+ file-type "^5.2.0"
+ is-stream "^1.1.0"
+
+decompress-unzip@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npm.taobao.org/decompress-unzip/download/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69"
+ integrity sha1-3qrM39FK6vhVePczroIQ+bSEj2k=
+ dependencies:
+ file-type "^3.8.0"
+ get-stream "^2.2.0"
+ pify "^2.3.0"
+ yauzl "^2.4.2"
+
+decompress@^4.0.0, decompress@^4.2.0:
+ version "4.2.1"
+ resolved "https://registry.nlark.com/decompress/download/decompress-4.2.1.tgz#007f55cc6a62c055afa37c07eb6a4ee1b773f118"
+ integrity sha1-AH9VzGpiwFWvo3wH62pO4bdz8Rg=
+ dependencies:
+ decompress-tar "^4.0.0"
+ decompress-tarbz2 "^4.0.0"
+ decompress-targz "^4.0.0"
+ decompress-unzip "^4.0.1"
+ graceful-fs "^4.1.10"
+ make-dir "^1.0.0"
+ pify "^2.3.0"
+ strip-dirs "^2.0.0"
+
+deep-equal@^1.0.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a"
+ integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==
+ dependencies:
+ is-arguments "^1.0.4"
+ is-date-object "^1.0.1"
+ is-regex "^1.0.4"
+ object-is "^1.0.1"
+ object-keys "^1.1.1"
+ regexp.prototype.flags "^1.2.0"
+
+deep-extend@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.nlark.com/deep-extend/download/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
+ integrity sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw=
+
+deep-is@~0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
+ integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
+
+deepmerge@^1.5.2:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753"
+ integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==
+
+default-gateway@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b"
+ integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==
+ dependencies:
+ execa "^1.0.0"
+ ip-regex "^2.1.0"
+
+default-gateway@^5.0.5:
+ version "5.0.5"
+ resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-5.0.5.tgz#4fd6bd5d2855d39b34cc5a59505486e9aafc9b10"
+ integrity sha512-z2RnruVmj8hVMmAnEJMTIJNijhKCDiGjbLP+BHJFOT7ld3Bo5qcIBpVYDniqhbMIIf+jZDlkP2MkPXiQy/DBLA==
+ dependencies:
+ execa "^3.3.0"
+
+defaults@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
+ integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=
+ dependencies:
+ clone "^1.0.2"
+
+defer-to-connect@^1.0.1:
+ version "1.1.3"
+ resolved "https://registry.nlark.com/defer-to-connect/download/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591"
+ integrity sha1-MxrgUMCNz3ifjIOnuB8O2U9KxZE=
+
+defer-to-connect@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.nlark.com/defer-to-connect/download/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587"
+ integrity sha1-gBa9tBQ+RjK3ejRJxiNid95SBYc=
+
+define-properties@^1.1.2, define-properties@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
+ integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
+ dependencies:
+ object-keys "^1.0.12"
+
+define-property@^0.2.5:
+ version "0.2.5"
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
+ integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
+ dependencies:
+ is-descriptor "^0.1.0"
+
+define-property@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
+ integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
+ dependencies:
+ is-descriptor "^1.0.0"
+
+define-property@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
+ integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
+ dependencies:
+ is-descriptor "^1.0.2"
+ isobject "^3.0.1"
+
+del@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4"
+ integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==
+ dependencies:
+ "@types/glob" "^7.1.1"
+ globby "^6.1.0"
+ is-path-cwd "^2.0.0"
+ is-path-in-cwd "^2.0.0"
+ p-map "^2.0.0"
+ pify "^4.0.1"
+ rimraf "^2.6.3"
+
+delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+ integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
+
+delegate@^3.1.2:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166"
+ integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==
+
+delegates@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
+ integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
+
+depd@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
+ integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
+
+des.js@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843"
+ integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==
+ dependencies:
+ inherits "^2.0.1"
+ minimalistic-assert "^1.0.0"
+
+destroy@~1.0.4:
+ version "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.npm.taobao.org/detect-libc/download/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
+ integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
+
+detect-node@^2.0.4:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1"
+ integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==
+
+diacriticless@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/diacriticless/-/diacriticless-1.0.1.tgz#e7dda978c2919609bb48aee1efc5de6a337bd4c3"
+ integrity sha1-592peMKRlgm7SK7h78XeajN71MM=
+
+diffie-hellman@^5.0.0:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
+ integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
+ dependencies:
+ bn.js "^4.1.0"
+ miller-rabin "^4.0.0"
+ randombytes "^2.0.0"
+
+dir-glob@^2.0.0, dir-glob@^2.2.2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4"
+ integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==
+ dependencies:
+ path-type "^3.0.0"
+
+dir-glob@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npm.taobao.org/dir-glob/download/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
+ integrity sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=
+ dependencies:
+ path-type "^4.0.0"
+
+dns-equal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
+ integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0=
+
+dns-packet@^1.3.1:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f"
+ integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==
+ dependencies:
+ ip "^1.1.0"
+ safe-buffer "^5.0.1"
+
+dns-txt@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6"
+ integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=
+ dependencies:
+ buffer-indexof "^1.0.0"
+
+doctrine@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
+ integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==
+ dependencies:
+ esutils "^2.0.2"
+
+doctrine@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
+ integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
+ dependencies:
+ esutils "^2.0.2"
+
+dom-converter@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768"
+ integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==
+ dependencies:
+ utila "~0.4"
+
+dom-serializer@0:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51"
+ integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==
+ dependencies:
+ domelementtype "^2.0.1"
+ entities "^2.0.0"
+
+dom-serializer@^1.0.1:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91"
+ integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==
+ dependencies:
+ domelementtype "^2.0.1"
+ domhandler "^4.2.0"
+ entities "^2.0.0"
+
+dom7@^2.1.5:
+ version "2.1.5"
+ resolved "https://registry.yarnpkg.com/dom7/-/dom7-2.1.5.tgz#a79411017800b31d8400070cdaebbfc92c1f6377"
+ integrity sha512-xnhwVgyOh3eD++/XGtH+5qBwYTgCm0aW91GFgPJ3XG+jlsRLyJivnbP0QmUBFhI+Oaz9FV0s7cxgXHezwOEBYA==
+ dependencies:
+ ssr-window "^2.0.0"
+
+domain-browser@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
+ integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
+
+domelementtype@1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
+ integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
+
+domelementtype@^2.0.1, domelementtype@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57"
+ integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==
+
+domhandler@^4.0.0, domhandler@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059"
+ integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==
+ dependencies:
+ domelementtype "^2.2.0"
+
+domutils@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
+ integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
+ dependencies:
+ dom-serializer "0"
+ domelementtype "1"
+
+domutils@^2.5.2, domutils@^2.6.0:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.7.0.tgz#8ebaf0c41ebafcf55b0b72ec31c56323712c5442"
+ integrity sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==
+ dependencies:
+ dom-serializer "^1.0.1"
+ domelementtype "^2.2.0"
+ domhandler "^4.2.0"
+
+dot-prop@^5.2.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
+ integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==
+ dependencies:
+ is-obj "^2.0.0"
+
+dotenv-expand@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0"
+ integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==
+
+dotenv@^8.2.0:
+ version "8.6.0"
+ resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b"
+ integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==
+
+download@^6.2.2:
+ version "6.2.5"
+ resolved "https://registry.npm.taobao.org/download/download/download-6.2.5.tgz#acd6a542e4cd0bb42ca70cfc98c9e43b07039714"
+ integrity sha1-rNalQuTNC7Qspwz8mMnkOwcDlxQ=
+ dependencies:
+ caw "^2.0.0"
+ content-disposition "^0.5.2"
+ decompress "^4.0.0"
+ ext-name "^5.0.0"
+ file-type "5.2.0"
+ filenamify "^2.0.0"
+ get-stream "^3.0.0"
+ got "^7.0.0"
+ make-dir "^1.0.0"
+ p-event "^1.0.0"
+ pify "^3.0.0"
+
+download@^7.1.0:
+ version "7.1.0"
+ resolved "https://registry.npm.taobao.org/download/download/download-7.1.0.tgz#9059aa9d70b503ee76a132897be6dec8e5587233"
+ integrity sha1-kFmqnXC1A+52oTKJe+beyOVYcjM=
+ dependencies:
+ archive-type "^4.0.0"
+ caw "^2.0.1"
+ content-disposition "^0.5.2"
+ decompress "^4.2.0"
+ ext-name "^5.0.0"
+ file-type "^8.1.0"
+ filenamify "^2.0.0"
+ get-stream "^3.0.0"
+ got "^8.3.1"
+ make-dir "^1.2.0"
+ p-event "^2.1.0"
+ pify "^3.0.0"
+
+duplexer3@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.npm.taobao.org/duplexer3/download/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
+ integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
+
+duplexer@^0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
+ integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
+
+duplexify@^3.4.2, duplexify@^3.6.0:
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
+ integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==
+ dependencies:
+ end-of-stream "^1.0.0"
+ inherits "^2.0.1"
+ readable-stream "^2.0.0"
+ stream-shift "^1.0.0"
+
+easy-stack@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/easy-stack/-/easy-stack-1.0.1.tgz#8afe4264626988cabb11f3c704ccd0c835411066"
+ integrity sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==
+
+ecc-jsbn@~0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
+ integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
+ dependencies:
+ jsbn "~0.1.0"
+ safer-buffer "^2.1.0"
+
+ecdsa-sig-formatter@1.0.11:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf"
+ integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==
+ dependencies:
+ safe-buffer "^5.0.1"
+
+echarts@4.8.0:
+ version "4.8.0"
+ resolved "https://registry.yarnpkg.com/echarts/-/echarts-4.8.0.tgz#b2c1cfb9229b13d368ee104fc8eea600b574d4c4"
+ integrity sha512-YwShpug8fWngj/RlgxDaYrLBoD+LsZUArrusjNPHpAF+is+gGe38xx4W848AwWMGoi745t3OXM52JedNrv+F6g==
+ dependencies:
+ zrender "4.3.1"
+
+ee-first@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
+ integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
+
+ejs@^2.6.1:
+ version "2.7.4"
+ resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba"
+ integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
+
+electron-to-chromium@^1.3.723:
+ version "1.3.779"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.779.tgz#de55492a756deec63424f89fbe62aec9776f0e6d"
+ integrity sha512-nreave0y/1Qhmo8XtO6C/LpawNyC6U26+q7d814/e+tIqUK073pM+4xW7WUXyqCRa5K4wdxHmNMBAi8ap9nEew==
+
+elliptic@^6.5.3:
+ version "6.5.4"
+ resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
+ integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
+ dependencies:
+ bn.js "^4.11.9"
+ brorand "^1.1.0"
+ hash.js "^1.0.0"
+ hmac-drbg "^1.0.1"
+ inherits "^2.0.4"
+ minimalistic-assert "^1.0.1"
+ minimalistic-crypto-utils "^1.0.1"
+
+emoji-regex@^7.0.1:
+ version "7.0.3"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
+ integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
+
+emoji-regex@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+emojis-list@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
+ integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
+
+emojis-list@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
+ integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
+
+encodeurl@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
+ integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
+
+end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1:
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
+ integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
+ dependencies:
+ once "^1.4.0"
+
+enhanced-resolve@^0.9.1:
+ version "0.9.1"
+ resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e"
+ integrity sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=
+ dependencies:
+ graceful-fs "^4.1.2"
+ memory-fs "^0.2.0"
+ tapable "^0.1.8"
+
+enhanced-resolve@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec"
+ integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==
+ dependencies:
+ graceful-fs "^4.1.2"
+ memory-fs "^0.5.0"
+ tapable "^1.0.0"
+
+entities@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
+ integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
+
+errno@^0.1.3, errno@~0.1.7:
+ version "0.1.8"
+ resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f"
+ integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==
+ dependencies:
+ prr "~1.0.1"
+
+error-ex@^1.2.0, error-ex@^1.3.1:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
+ integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
+ dependencies:
+ is-arrayish "^0.2.1"
+
+error-stack-parser@^2.0.2:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8"
+ integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==
+ dependencies:
+ stackframe "^1.1.1"
+
+es-abstract@^1.17.2, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2:
+ version "1.18.3"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0"
+ integrity sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==
+ dependencies:
+ call-bind "^1.0.2"
+ es-to-primitive "^1.2.1"
+ function-bind "^1.1.1"
+ get-intrinsic "^1.1.1"
+ has "^1.0.3"
+ has-symbols "^1.0.2"
+ is-callable "^1.2.3"
+ is-negative-zero "^2.0.1"
+ is-regex "^1.1.3"
+ is-string "^1.0.6"
+ object-inspect "^1.10.3"
+ object-keys "^1.1.1"
+ object.assign "^4.1.2"
+ string.prototype.trimend "^1.0.4"
+ string.prototype.trimstart "^1.0.4"
+ unbox-primitive "^1.0.1"
+
+es-to-primitive@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
+ integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
+ dependencies:
+ is-callable "^1.1.4"
+ is-date-object "^1.0.1"
+ is-symbol "^1.0.2"
+
+escalade@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
+ integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+
+escape-goat@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.npm.taobao.org/escape-goat/download/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675"
+ integrity sha1-Gy3HcANnbEV+x2Cy3GjttkgYhnU=
+
+escape-html@~1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
+ integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
+
+escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+ integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+
+eslint-config-airbnb-base@^14.0.0:
+ version "14.2.1"
+ resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz#8a2eb38455dc5a312550193b319cdaeef042cd1e"
+ integrity sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==
+ dependencies:
+ confusing-browser-globals "^1.0.10"
+ object.assign "^4.1.2"
+ object.entries "^1.1.2"
+
+eslint-import-resolver-node@^0.3.4:
+ version "0.3.4"
+ resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717"
+ integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==
+ dependencies:
+ debug "^2.6.9"
+ resolve "^1.13.1"
+
+eslint-import-resolver-webpack@^0.13.0:
+ version "0.13.1"
+ resolved "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.13.1.tgz#6d2fb928091daf2da46efa1e568055555b2de902"
+ integrity sha512-O/8mG6AHmaKYSMb4lWxiXPpaARxOJ4rMQEHJ8vTgjS1MXooJA3KPgBPPAdOPoV17v5ML5120qod5FBLM+DtgEw==
+ dependencies:
+ array-find "^1.0.0"
+ debug "^3.2.7"
+ enhanced-resolve "^0.9.1"
+ find-root "^1.1.0"
+ has "^1.0.3"
+ interpret "^1.4.0"
+ is-core-module "^2.4.0"
+ is-regex "^1.1.3"
+ lodash "^4.17.21"
+ resolve "^1.20.0"
+ semver "^5.7.1"
+
+eslint-loader@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.2.1.tgz#28b9c12da54057af0845e2a6112701a2f6bf8337"
+ integrity sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg==
+ dependencies:
+ loader-fs-cache "^1.0.0"
+ loader-utils "^1.0.2"
+ object-assign "^4.0.1"
+ object-hash "^1.1.4"
+ rimraf "^2.6.1"
+
+eslint-module-utils@^2.6.1:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz#b51be1e473dd0de1c5ea638e22429c2490ea8233"
+ integrity sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==
+ dependencies:
+ debug "^3.2.7"
+ pkg-dir "^2.0.0"
+
+eslint-plugin-import@^2.21.2, eslint-plugin-import@^2.22.1:
+ version "2.23.4"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz#8dceb1ed6b73e46e50ec9a5bb2411b645e7d3d97"
+ integrity sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==
+ dependencies:
+ array-includes "^3.1.3"
+ array.prototype.flat "^1.2.4"
+ debug "^2.6.9"
+ doctrine "^2.1.0"
+ eslint-import-resolver-node "^0.3.4"
+ eslint-module-utils "^2.6.1"
+ find-up "^2.0.0"
+ has "^1.0.3"
+ is-core-module "^2.4.0"
+ minimatch "^3.0.4"
+ object.values "^1.1.3"
+ pkg-up "^2.0.0"
+ read-pkg-up "^3.0.0"
+ resolve "^1.20.0"
+ tsconfig-paths "^3.9.0"
+
+eslint-plugin-vue@6.2.2:
+ version "6.2.2"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz#27fecd9a3a24789b0f111ecdd540a9e56198e0fe"
+ integrity sha512-Nhc+oVAHm0uz/PkJAWscwIT4ijTrK5fqNqz9QB1D35SbbuMG1uB6Yr5AJpvPSWg+WOw7nYNswerYh0kOk64gqQ==
+ dependencies:
+ natural-compare "^1.4.0"
+ semver "^5.6.0"
+ vue-eslint-parser "^7.0.0"
+
+eslint-scope@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
+ integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==
+ dependencies:
+ esrecurse "^4.1.0"
+ estraverse "^4.1.1"
+
+eslint-scope@^5.0.0, eslint-scope@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
+ integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
+ dependencies:
+ esrecurse "^4.3.0"
+ estraverse "^4.1.1"
+
+eslint-utils@^1.4.3:
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
+ integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==
+ dependencies:
+ eslint-visitor-keys "^1.1.0"
+
+eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
+ integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
+
+eslint@6.8.0:
+ version "6.8.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb"
+ integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ ajv "^6.10.0"
+ chalk "^2.1.0"
+ cross-spawn "^6.0.5"
+ debug "^4.0.1"
+ doctrine "^3.0.0"
+ eslint-scope "^5.0.0"
+ eslint-utils "^1.4.3"
+ eslint-visitor-keys "^1.1.0"
+ espree "^6.1.2"
+ esquery "^1.0.1"
+ esutils "^2.0.2"
+ file-entry-cache "^5.0.1"
+ functional-red-black-tree "^1.0.1"
+ glob-parent "^5.0.0"
+ globals "^12.1.0"
+ ignore "^4.0.6"
+ import-fresh "^3.0.0"
+ imurmurhash "^0.1.4"
+ inquirer "^7.0.0"
+ is-glob "^4.0.0"
+ js-yaml "^3.13.1"
+ json-stable-stringify-without-jsonify "^1.0.1"
+ levn "^0.3.0"
+ lodash "^4.17.14"
+ minimatch "^3.0.4"
+ mkdirp "^0.5.1"
+ natural-compare "^1.4.0"
+ optionator "^0.8.3"
+ progress "^2.0.0"
+ regexpp "^2.0.1"
+ semver "^6.1.2"
+ strip-ansi "^5.2.0"
+ strip-json-comments "^3.0.1"
+ table "^5.2.3"
+ text-table "^0.2.0"
+ v8-compile-cache "^2.0.3"
+
+espree@^6.1.2, espree@^6.2.1:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a"
+ integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==
+ dependencies:
+ acorn "^7.1.1"
+ acorn-jsx "^5.2.0"
+ eslint-visitor-keys "^1.1.0"
+
+esprima@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
+ integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
+
+esquery@^1.0.1, esquery@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
+ integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
+ dependencies:
+ estraverse "^5.1.0"
+
+esrecurse@^4.1.0, esrecurse@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+ integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+ dependencies:
+ estraverse "^5.2.0"
+
+estraverse@^4.1.1:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
+ integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+
+estraverse@^5.1.0, estraverse@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
+ integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
+
+esutils@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+etag@~1.8.1:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
+ integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
+
+event-pubsub@4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/event-pubsub/-/event-pubsub-4.3.0.tgz#f68d816bc29f1ec02c539dc58c8dd40ce72cb36e"
+ integrity sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==
+
+eventemitter3@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba"
+ integrity sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=
+
+eventemitter3@^4.0.0:
+ version "4.0.7"
+ resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
+ integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
+
+events@^3.0.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
+ integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
+
+eventsource@^1.0.7:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.0.tgz#00e8ca7c92109e94b0ddf32dac677d841028cfaf"
+ integrity sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==
+ dependencies:
+ original "^1.0.0"
+
+evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
+ integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
+ dependencies:
+ md5.js "^1.3.4"
+ safe-buffer "^5.1.1"
+
+exec-buffer@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.npm.taobao.org/exec-buffer/download/exec-buffer-3.2.0.tgz#b1686dbd904c7cf982e652c1f5a79b1e5573082b"
+ integrity sha1-sWhtvZBMfPmC5lLB9aebHlVzCCs=
+ dependencies:
+ execa "^0.7.0"
+ p-finally "^1.0.0"
+ pify "^3.0.0"
+ rimraf "^2.5.4"
+ tempfile "^2.0.0"
+
+execa@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.nlark.com/execa/download/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
+ integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=
+ dependencies:
+ cross-spawn "^5.0.1"
+ get-stream "^3.0.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
+execa@^0.8.0:
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da"
+ integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=
+ dependencies:
+ cross-spawn "^5.0.1"
+ get-stream "^3.0.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
+execa@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
+ integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
+ dependencies:
+ cross-spawn "^6.0.0"
+ get-stream "^4.0.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
+execa@^3.3.0, execa@^3.4.0:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89"
+ integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==
+ dependencies:
+ cross-spawn "^7.0.0"
+ get-stream "^5.0.0"
+ human-signals "^1.1.1"
+ is-stream "^2.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^4.0.0"
+ onetime "^5.1.0"
+ p-finally "^2.0.0"
+ signal-exit "^3.0.2"
+ strip-final-newline "^2.0.0"
+
+executable@^4.1.0:
+ version "4.1.1"
+ resolved "https://registry.npm.taobao.org/executable/download/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c"
+ integrity sha1-QVMr/zYdPlevTXY7cFgtsY9dEzw=
+ dependencies:
+ pify "^2.2.0"
+
+expand-brackets@^2.1.4:
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
+ integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
+ dependencies:
+ debug "^2.3.3"
+ define-property "^0.2.5"
+ extend-shallow "^2.0.1"
+ posix-character-classes "^0.1.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+expand-template@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.npm.taobao.org/expand-template/download/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c"
+ integrity sha1-bhSz/O4POmNA7LV9LokYaSBSpHw=
+
+express@^4.16.3, express@^4.17.1:
+ version "4.17.1"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
+ integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==
+ dependencies:
+ accepts "~1.3.7"
+ array-flatten "1.1.1"
+ body-parser "1.19.0"
+ content-disposition "0.5.3"
+ content-type "~1.0.4"
+ cookie "0.4.0"
+ cookie-signature "1.0.6"
+ debug "2.6.9"
+ depd "~1.1.2"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ etag "~1.8.1"
+ finalhandler "~1.1.2"
+ fresh "0.5.2"
+ merge-descriptors "1.0.1"
+ methods "~1.1.2"
+ on-finished "~2.3.0"
+ parseurl "~1.3.3"
+ path-to-regexp "0.1.7"
+ proxy-addr "~2.0.5"
+ qs "6.7.0"
+ range-parser "~1.2.1"
+ safe-buffer "5.1.2"
+ send "0.17.1"
+ serve-static "1.14.1"
+ setprototypeof "1.1.1"
+ statuses "~1.5.0"
+ type-is "~1.6.18"
+ utils-merge "1.0.1"
+ vary "~1.1.2"
+
+ext-list@^2.0.0:
+ version "2.2.2"
+ resolved "https://registry.npm.taobao.org/ext-list/download/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37"
+ integrity sha1-C5jmTtgvWs8PKTG6v2khLvUt3Tc=
+ dependencies:
+ mime-db "^1.28.0"
+
+ext-name@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.nlark.com/ext-name/download/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6"
+ integrity sha1-cHgZgdGD7hXROZPIgiBFxQbI8KY=
+ dependencies:
+ ext-list "^2.0.0"
+ sort-keys-length "^1.0.0"
+
+extend-shallow@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
+ integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
+ dependencies:
+ is-extendable "^0.1.0"
+
+extend-shallow@^3.0.0, extend-shallow@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
+ integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
+ dependencies:
+ assign-symbols "^1.0.0"
+ is-extendable "^1.0.1"
+
+extend@^3.0.2, extend@~3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
+ integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
+
+external-editor@^3.0.3:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
+ integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==
+ dependencies:
+ chardet "^0.7.0"
+ iconv-lite "^0.4.24"
+ tmp "^0.0.33"
+
+extglob@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
+ integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
+ dependencies:
+ array-unique "^0.3.2"
+ define-property "^1.0.0"
+ expand-brackets "^2.1.4"
+ extend-shallow "^2.0.1"
+ fragment-cache "^0.2.1"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+extsprintf@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+ integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
+
+extsprintf@^1.2.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
+ integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
+
+fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+fast-diff@1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154"
+ integrity sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==
+
+fast-glob@^2.2.6:
+ version "2.2.7"
+ resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d"
+ integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==
+ dependencies:
+ "@mrmlnc/readdir-enhanced" "^2.2.1"
+ "@nodelib/fs.stat" "^1.1.2"
+ glob-parent "^3.1.0"
+ is-glob "^4.0.0"
+ merge2 "^1.2.3"
+ micromatch "^3.1.10"
+
+fast-glob@^3.1.1:
+ version "3.2.7"
+ resolved "https://registry.nlark.com/fast-glob/download/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1"
+ integrity sha1-/Wy3otfpqnp4RhEehaGW1rL3ZqE=
+ dependencies:
+ "@nodelib/fs.stat" "^2.0.2"
+ "@nodelib/fs.walk" "^1.2.3"
+ glob-parent "^5.1.2"
+ merge2 "^1.3.0"
+ micromatch "^4.0.4"
+
+fast-json-stable-stringify@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
+fast-levenshtein@~2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+ integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+
+fastq@^1.6.0:
+ version "1.11.1"
+ resolved "https://registry.nlark.com/fastq/download/fastq-1.11.1.tgz?cache=0&sync_timestamp=1625392906410&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffastq%2Fdownload%2Ffastq-1.11.1.tgz#5d8175aae17db61947f8b162cfc7f63264d22807"
+ integrity sha1-XYF1quF9thlH+LFiz8f2MmTSKAc=
+ dependencies:
+ reusify "^1.0.4"
+
+faye-websocket@^0.11.3:
+ version "0.11.4"
+ resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da"
+ integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==
+ dependencies:
+ websocket-driver ">=0.5.1"
+
+fd-slicer@~1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npm.taobao.org/fd-slicer/download/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
+ integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=
+ dependencies:
+ pend "~1.2.0"
+
+figgy-pudding@^3.5.1:
+ version "3.5.2"
+ resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
+ integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==
+
+figures@^1.3.5:
+ version "1.7.0"
+ resolved "https://registry.nlark.com/figures/download/figures-1.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffigures%2Fdownload%2Ffigures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
+ integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=
+ dependencies:
+ escape-string-regexp "^1.0.5"
+ object-assign "^4.1.0"
+
+figures@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
+ integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
+ dependencies:
+ escape-string-regexp "^1.0.5"
+
+file-entry-cache@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
+ integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==
+ dependencies:
+ flat-cache "^2.0.1"
+
+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==
+ dependencies:
+ loader-utils "^1.2.3"
+ schema-utils "^2.5.0"
+
+file-type@5.2.0, file-type@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.nlark.com/file-type/download/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6"
+ integrity sha1-LdvqfHP/42No365J3DOMBYwritY=
+
+file-type@^14.6.0:
+ version "14.7.1"
+ resolved "https://registry.nlark.com/file-type/download/file-type-14.7.1.tgz#f748732b3e70478bff530e1cf0ec2fe33608b1bb"
+ integrity sha1-90hzKz5wR4v/Uw4c8Owv4zYIsbs=
+ dependencies:
+ readable-web-to-node-stream "^2.0.0"
+ strtok3 "^6.0.3"
+ token-types "^2.0.0"
+ typedarray-to-buffer "^3.1.5"
+
+file-type@^3.8.0:
+ version "3.9.0"
+ resolved "https://registry.nlark.com/file-type/download/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9"
+ integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek=
+
+file-type@^4.2.0:
+ version "4.4.0"
+ resolved "https://registry.nlark.com/file-type/download/file-type-4.4.0.tgz#1b600e5fca1fbdc6e80c0a70c71c8dba5f7906c5"
+ integrity sha1-G2AOX8ofvcboDApwxxyNul95BsU=
+
+file-type@^6.1.0:
+ version "6.2.0"
+ resolved "https://registry.nlark.com/file-type/download/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919"
+ integrity sha1-5QzXXTVv/tTjBtxPW89Sp5kDqRk=
+
+file-type@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.nlark.com/file-type/download/file-type-8.1.0.tgz#244f3b7ef641bbe0cca196c7276e4b332399f68c"
+ integrity sha1-JE87fvZBu+DMoZbHJ25LMyOZ9ow=
+
+file-uri-to-path@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
+ integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
+
+filename-reserved-regex@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/filename-reserved-regex/download/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229"
+ integrity sha1-q/c9+rc10EVECr/qLZHzieu/oik=
+
+filenamify@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.nlark.com/filenamify/download/filenamify-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffilenamify%2Fdownload%2Ffilenamify-2.1.0.tgz#88faf495fb1b47abfd612300002a16228c677ee9"
+ integrity sha1-iPr0lfsbR6v9YSMAACoWIoxnfuk=
+ dependencies:
+ filename-reserved-regex "^2.0.0"
+ strip-outer "^1.0.0"
+ trim-repeated "^1.0.0"
+
+filesize@^3.6.1:
+ version "3.6.1"
+ resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317"
+ integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==
+
+fill-range@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
+ integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-number "^3.0.0"
+ repeat-string "^1.6.1"
+ to-regex-range "^2.1.0"
+
+fill-range@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+ integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+ dependencies:
+ to-regex-range "^5.0.1"
+
+finalhandler@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
+ integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
+ dependencies:
+ debug "2.6.9"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ on-finished "~2.3.0"
+ parseurl "~1.3.3"
+ statuses "~1.5.0"
+ unpipe "~1.0.0"
+
+find-cache-dir@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9"
+ integrity sha1-yN765XyKUqinhPnjHFfHQumToLk=
+ dependencies:
+ commondir "^1.0.1"
+ mkdirp "^0.5.1"
+ pkg-dir "^1.0.0"
+
+find-cache-dir@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
+ integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==
+ dependencies:
+ commondir "^1.0.1"
+ make-dir "^2.0.0"
+ pkg-dir "^3.0.0"
+
+find-cache-dir@^3.0.0, find-cache-dir@^3.3.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880"
+ integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==
+ dependencies:
+ commondir "^1.0.1"
+ make-dir "^3.0.2"
+ pkg-dir "^4.1.0"
+
+find-root@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
+ integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==
+
+find-up@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
+ integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=
+ dependencies:
+ path-exists "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+find-up@^2.0.0, find-up@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+ integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
+ dependencies:
+ locate-path "^2.0.0"
+
+find-up@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
+ integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
+ dependencies:
+ locate-path "^3.0.0"
+
+find-up@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
+ integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+ dependencies:
+ locate-path "^5.0.0"
+ path-exists "^4.0.0"
+
+find-versions@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.nlark.com/find-versions/download/find-versions-3.2.0.tgz?cache=0&sync_timestamp=1619599444272&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffind-versions%2Fdownload%2Ffind-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e"
+ integrity sha1-ECl/mAMKeGgpaBaQVF72We0dJU4=
+ dependencies:
+ semver-regex "^2.0.0"
+
+findup@^0.1.5:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/findup/-/findup-0.1.5.tgz#8ad929a3393bac627957a7e5de4623b06b0e2ceb"
+ integrity sha1-itkpozk7rGJ5V6fl3kYjsGsOLOs=
+ dependencies:
+ colors "~0.6.0-1"
+ commander "~2.1.0"
+
+flat-cache@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0"
+ integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==
+ dependencies:
+ flatted "^2.0.0"
+ rimraf "2.6.3"
+ write "1.0.3"
+
+flatpickr@^4.6.6:
+ version "4.6.9"
+ resolved "https://registry.yarnpkg.com/flatpickr/-/flatpickr-4.6.9.tgz#9a13383e8a6814bda5d232eae3fcdccb97dc1499"
+ integrity sha512-F0azNNi8foVWKSF+8X+ZJzz8r9sE1G4hl06RyceIaLvyltKvDl6vqk9Lm/6AUUCi5HWaIjiUbk7UpeE/fOXOpw==
+
+flatted@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
+ integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
+
+flush-write-stream@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"
+ integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==
+ dependencies:
+ inherits "^2.0.3"
+ readable-stream "^2.3.6"
+
+follow-redirects@^1.0.0, follow-redirects@^1.10.0:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43"
+ integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==
+
+for-in@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
+ integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
+
+forever-agent@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+ integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
+
+form-data@~2.3.2:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
+ integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.6"
+ mime-types "^2.1.12"
+
+forwarded@0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
+ integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
+
+fragment-cache@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
+ integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
+ dependencies:
+ map-cache "^0.2.2"
+
+fresh@0.5.2:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
+ integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
+
+from2@^2.1.0, from2@^2.1.1:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
+ integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=
+ dependencies:
+ inherits "^2.0.1"
+ readable-stream "^2.0.0"
+
+fs-constants@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npm.taobao.org/fs-constants/download/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
+ integrity sha1-a+Dem+mYzhavivwkSXue6bfM2a0=
+
+fs-extra@10.0.0:
+ version "10.0.0"
+ resolved "https://registry.nlark.com/fs-extra/download/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1"
+ integrity sha1-n/YbZV3eU/s0qC34S7IUzoAuF8E=
+ dependencies:
+ graceful-fs "^4.2.0"
+ jsonfile "^6.0.1"
+ universalify "^2.0.0"
+
+fs-extra@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
+ integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==
+ dependencies:
+ graceful-fs "^4.1.2"
+ jsonfile "^4.0.0"
+ universalify "^0.1.0"
+
+fs-write-stream-atomic@^1.0.8:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
+ integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=
+ dependencies:
+ graceful-fs "^4.1.2"
+ iferr "^0.1.5"
+ imurmurhash "^0.1.4"
+ readable-stream "1 || 2"
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+
+fsevents@^1.2.7:
+ version "1.2.13"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38"
+ integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==
+ dependencies:
+ bindings "^1.5.0"
+ nan "^2.12.1"
+
+fsevents@~2.3.2:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
+ integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+
+function-bind@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+ integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+
+functional-red-black-tree@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
+ integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
+
+gauge@~2.7.3:
+ version "2.7.4"
+ resolved "https://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
+ integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
+ dependencies:
+ aproba "^1.0.3"
+ console-control-strings "^1.0.0"
+ has-unicode "^2.0.0"
+ object-assign "^4.1.0"
+ signal-exit "^3.0.0"
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+ wide-align "^1.1.0"
+
+gensync@^1.0.0-beta.2:
+ version "1.0.0-beta.2"
+ resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
+ integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
+
+get-caller-file@^2.0.1, get-caller-file@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
+ integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+
+get-intrinsic@^1.0.2, get-intrinsic@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
+ integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
+ dependencies:
+ function-bind "^1.1.1"
+ has "^1.0.3"
+ has-symbols "^1.0.1"
+
+get-proxy@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npm.taobao.org/get-proxy/download/get-proxy-2.1.0.tgz#349f2b4d91d44c4d4d4e9cba2ad90143fac5ef93"
+ integrity sha1-NJ8rTZHUTE1NTpy6KtkBQ/rF75M=
+ dependencies:
+ npm-conf "^1.1.0"
+
+get-stdin@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npm.taobao.org/get-stdin/download/get-stdin-4.0.1.tgz?cache=0&sync_timestamp=1618557719783&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stdin%2Fdownload%2Fget-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
+ integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=
+
+get-stream@3.0.0, get-stream@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
+ integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=
+
+get-stream@^2.2.0:
+ version "2.3.1"
+ resolved "https://registry.npm.taobao.org/get-stream/download/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de"
+ integrity sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=
+ dependencies:
+ object-assign "^4.0.1"
+ pinkie-promise "^2.0.0"
+
+get-stream@^4.0.0, get-stream@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
+ integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
+ dependencies:
+ pump "^3.0.0"
+
+get-stream@^5.0.0, get-stream@^5.1.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
+ integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
+ dependencies:
+ pump "^3.0.0"
+
+get-value@^2.0.3, get-value@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
+ integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
+
+getpass@^0.1.1:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
+ integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
+ dependencies:
+ assert-plus "^1.0.0"
+
+github-from-package@0.0.0:
+ version "0.0.0"
+ resolved "https://registry.npm.taobao.org/github-from-package/download/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce"
+ integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=
+
+glob-parent@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
+ integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=
+ dependencies:
+ is-glob "^3.1.0"
+ path-dirname "^1.0.0"
+
+glob-parent@^5.0.0, glob-parent@^5.1.2, glob-parent@~5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+ integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
+ dependencies:
+ is-glob "^4.0.1"
+
+glob-to-regexp@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab"
+ integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=
+
+glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
+ version "7.1.7"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
+ integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+global-dirs@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npm.taobao.org/global-dirs/download/global-dirs-3.0.0.tgz?cache=0&sync_timestamp=1610454716901&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobal-dirs%2Fdownload%2Fglobal-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686"
+ integrity sha1-cKdv6E6jFas3sfVXbL3n1I73JoY=
+ dependencies:
+ ini "2.0.0"
+
+globals@^11.1.0:
+ version "11.12.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
+ integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
+
+globals@^12.1.0:
+ version "12.4.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
+ integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==
+ dependencies:
+ type-fest "^0.8.1"
+
+globby@^11.0.3:
+ version "11.0.4"
+ resolved "https://registry.nlark.com/globby/download/globby-11.0.4.tgz?cache=0&sync_timestamp=1623850192942&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fglobby%2Fdownload%2Fglobby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5"
+ integrity sha1-LLr/d8Lypi5x6bKBOme5ejowAaU=
+ dependencies:
+ array-union "^2.1.0"
+ dir-glob "^3.0.1"
+ fast-glob "^3.1.1"
+ ignore "^5.1.4"
+ merge2 "^1.3.0"
+ slash "^3.0.0"
+
+globby@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
+ integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=
+ dependencies:
+ array-union "^1.0.1"
+ glob "^7.0.3"
+ object-assign "^4.0.1"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+globby@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680"
+ integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA=
+ dependencies:
+ array-union "^1.0.1"
+ dir-glob "^2.0.0"
+ glob "^7.1.2"
+ ignore "^3.3.5"
+ pify "^3.0.0"
+ slash "^1.0.0"
+
+globby@^9.2.0:
+ version "9.2.0"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d"
+ integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==
+ dependencies:
+ "@types/glob" "^7.1.1"
+ array-union "^1.0.2"
+ dir-glob "^2.2.2"
+ fast-glob "^2.2.6"
+ glob "^7.1.3"
+ ignore "^4.0.3"
+ pify "^4.0.1"
+ slash "^2.0.0"
+
+good-listener@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50"
+ integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=
+ dependencies:
+ delegate "^3.1.2"
+
+got@11.8.2:
+ version "11.8.2"
+ resolved "https://registry.nlark.com/got/download/got-11.8.2.tgz#7abb3959ea28c31f3576f1576c1effce23f33599"
+ integrity sha1-ers5Weoowx81dvFXbB7/ziPzNZk=
+ dependencies:
+ "@sindresorhus/is" "^4.0.0"
+ "@szmarczak/http-timer" "^4.0.5"
+ "@types/cacheable-request" "^6.0.1"
+ "@types/responselike" "^1.0.0"
+ cacheable-lookup "^5.0.3"
+ cacheable-request "^7.0.1"
+ decompress-response "^6.0.0"
+ http2-wrapper "^1.0.0-beta.5.2"
+ lowercase-keys "^2.0.0"
+ p-cancelable "^2.0.0"
+ responselike "^2.0.0"
+
+got@^7.0.0:
+ version "7.1.0"
+ resolved "https://registry.nlark.com/got/download/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a"
+ integrity sha1-BUUP2ECU5rvqVvRRpDqcKJFmOFo=
+ dependencies:
+ decompress-response "^3.2.0"
+ duplexer3 "^0.1.4"
+ get-stream "^3.0.0"
+ is-plain-obj "^1.1.0"
+ is-retry-allowed "^1.0.0"
+ is-stream "^1.0.0"
+ isurl "^1.0.0-alpha5"
+ lowercase-keys "^1.0.0"
+ p-cancelable "^0.3.0"
+ p-timeout "^1.1.1"
+ safe-buffer "^5.0.1"
+ timed-out "^4.0.0"
+ url-parse-lax "^1.0.0"
+ url-to-options "^1.0.1"
+
+got@^8.3.1:
+ version "8.3.2"
+ resolved "https://registry.nlark.com/got/download/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937"
+ integrity sha1-HSP2Q5Dpf3dsrFLluTbl9RTS6Tc=
+ dependencies:
+ "@sindresorhus/is" "^0.7.0"
+ cacheable-request "^2.1.1"
+ decompress-response "^3.3.0"
+ duplexer3 "^0.1.4"
+ get-stream "^3.0.0"
+ into-stream "^3.1.0"
+ is-retry-allowed "^1.1.0"
+ isurl "^1.0.0-alpha5"
+ lowercase-keys "^1.0.0"
+ mimic-response "^1.0.0"
+ p-cancelable "^0.4.0"
+ p-timeout "^2.0.1"
+ pify "^3.0.0"
+ safe-buffer "^5.1.1"
+ timed-out "^4.0.1"
+ url-parse-lax "^3.0.0"
+ url-to-options "^1.0.1"
+
+got@^9.6.0:
+ version "9.6.0"
+ resolved "https://registry.nlark.com/got/download/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85"
+ integrity sha1-7fRefWf5lUVwXeH3u+7rEhdl7YU=
+ dependencies:
+ "@sindresorhus/is" "^0.14.0"
+ "@szmarczak/http-timer" "^1.1.2"
+ cacheable-request "^6.0.0"
+ decompress-response "^3.3.0"
+ duplexer3 "^0.1.4"
+ get-stream "^4.1.0"
+ lowercase-keys "^1.0.1"
+ mimic-response "^1.0.1"
+ p-cancelable "^1.0.0"
+ to-readable-stream "^1.0.0"
+ url-parse-lax "^3.0.0"
+
+graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6:
+ version "4.2.6"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
+ integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
+
+gzip-size@^5.0.0:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274"
+ integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==
+ dependencies:
+ duplexer "^0.1.1"
+ pify "^4.0.1"
+
+handle-thing@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e"
+ integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==
+
+har-schema@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
+ integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
+
+har-validator@~5.1.3:
+ version "5.1.5"
+ resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"
+ integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
+ dependencies:
+ ajv "^6.12.3"
+ har-schema "^2.0.0"
+
+has-ansi@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.nlark.com/has-ansi/download/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
+ integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
+ dependencies:
+ ansi-regex "^2.0.0"
+
+has-bigints@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113"
+ integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==
+
+has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+ integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
+
+has-flag@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
+ integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
+has-symbol-support-x@^1.4.1:
+ version "1.4.2"
+ resolved "https://registry.npm.taobao.org/has-symbol-support-x/download/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455"
+ integrity sha1-FAn5i8ACR9pF2mfO4KNvKC/yZFU=
+
+has-symbols@^1.0.1, has-symbols@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
+ integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
+
+has-to-string-tag-x@^1.2.0:
+ version "1.4.1"
+ resolved "https://registry.npm.taobao.org/has-to-string-tag-x/download/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d"
+ integrity sha1-oEWrOD17SyASoAFIqwql8pAETU0=
+ dependencies:
+ has-symbol-support-x "^1.4.1"
+
+has-unicode@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
+ integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
+
+has-value@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
+ integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
+ dependencies:
+ get-value "^2.0.3"
+ has-values "^0.1.4"
+ isobject "^2.0.0"
+
+has-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
+ integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
+ dependencies:
+ get-value "^2.0.6"
+ has-values "^1.0.0"
+ isobject "^3.0.0"
+
+has-values@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
+ integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
+
+has-values@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
+ integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
+ dependencies:
+ is-number "^3.0.0"
+ kind-of "^4.0.0"
+
+has-yarn@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.nlark.com/has-yarn/download/has-yarn-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-yarn%2Fdownload%2Fhas-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77"
+ integrity sha1-E34RNUp7W/EapctknPDG8/8rLnc=
+
+has@^1.0.0, has@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+ integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
+ dependencies:
+ function-bind "^1.1.1"
+
+hash-base@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33"
+ integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==
+ dependencies:
+ inherits "^2.0.4"
+ readable-stream "^3.6.0"
+ safe-buffer "^5.2.0"
+
+hash-sum@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04"
+ integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=
+
+hash-sum@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a"
+ integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==
+
+hash.js@^1.0.0, hash.js@^1.0.3:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
+ integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
+ dependencies:
+ inherits "^2.0.3"
+ minimalistic-assert "^1.0.1"
+
+he@1.2.x, he@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
+ integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
+
+hex-color-regex@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
+ integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
+
+highlight.js@^10.7.1:
+ version "10.7.3"
+ resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531"
+ integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==
+
+hmac-drbg@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
+ integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
+ dependencies:
+ hash.js "^1.0.3"
+ minimalistic-assert "^1.0.0"
+ minimalistic-crypto-utils "^1.0.1"
+
+hoopy@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d"
+ integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==
+
+hosted-git-info@^2.1.4:
+ version "2.8.9"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
+ integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
+
+hpack.js@^2.1.6:
+ version "2.1.6"
+ resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2"
+ integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=
+ dependencies:
+ inherits "^2.0.1"
+ obuf "^1.0.0"
+ readable-stream "^2.0.1"
+ wbuf "^1.1.0"
+
+hsl-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e"
+ integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=
+
+hsla-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"
+ integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg=
+
+html-entities@^1.3.1:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc"
+ integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==
+
+html-minifier@^3.2.3:
+ version "3.5.21"
+ resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c"
+ integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==
+ dependencies:
+ camel-case "3.0.x"
+ clean-css "4.2.x"
+ commander "2.17.x"
+ he "1.2.x"
+ param-case "2.1.x"
+ relateurl "0.2.x"
+ uglify-js "3.4.x"
+
+html-tags@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b"
+ integrity sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=
+
+html-tags@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140"
+ integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==
+
+html-webpack-plugin@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b"
+ integrity sha1-sBq71yOsqqeze2r0SS69oD2d03s=
+ dependencies:
+ html-minifier "^3.2.3"
+ loader-utils "^0.2.16"
+ lodash "^4.17.3"
+ pretty-error "^2.0.2"
+ tapable "^1.0.0"
+ toposort "^1.0.0"
+ util.promisify "1.0.0"
+
+htmlparser2@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7"
+ integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==
+ dependencies:
+ domelementtype "^2.0.1"
+ domhandler "^4.0.0"
+ domutils "^2.5.2"
+ entities "^2.0.0"
+
+http-cache-semantics@3.8.1:
+ version "3.8.1"
+ resolved "https://registry.nlark.com/http-cache-semantics/download/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2"
+ integrity sha1-ObDhat2bYFvwqe89nar0hDtMrNI=
+
+http-cache-semantics@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.nlark.com/http-cache-semantics/download/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
+ integrity sha1-SekcXL82yblLz81xwj1SSex045A=
+
+http-deceiver@^1.2.7:
+ version "1.2.7"
+ resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
+ integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=
+
+http-errors@1.7.2:
+ version "1.7.2"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
+ integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
+ dependencies:
+ depd "~1.1.2"
+ inherits "2.0.3"
+ setprototypeof "1.1.1"
+ statuses ">= 1.5.0 < 2"
+ toidentifier "1.0.0"
+
+http-errors@~1.6.2:
+ version "1.6.3"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
+ integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=
+ dependencies:
+ depd "~1.1.2"
+ inherits "2.0.3"
+ setprototypeof "1.1.0"
+ statuses ">= 1.4.0 < 2"
+
+http-errors@~1.7.2:
+ version "1.7.3"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
+ integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
+ dependencies:
+ depd "~1.1.2"
+ inherits "2.0.4"
+ setprototypeof "1.1.1"
+ statuses ">= 1.5.0 < 2"
+ toidentifier "1.0.0"
+
+http-parser-js@>=0.5.1:
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9"
+ integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==
+
+http-proxy-middleware@0.19.1:
+ version "0.19.1"
+ resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a"
+ integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==
+ dependencies:
+ http-proxy "^1.17.0"
+ is-glob "^4.0.0"
+ lodash "^4.17.11"
+ micromatch "^3.1.10"
+
+http-proxy-middleware@^1.0.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz#43700d6d9eecb7419bf086a128d0f7205d9eb665"
+ integrity sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg==
+ dependencies:
+ "@types/http-proxy" "^1.17.5"
+ http-proxy "^1.18.1"
+ is-glob "^4.0.1"
+ is-plain-obj "^3.0.0"
+ micromatch "^4.0.2"
+
+http-proxy@^1.17.0, http-proxy@^1.18.1:
+ version "1.18.1"
+ resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549"
+ integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==
+ dependencies:
+ eventemitter3 "^4.0.0"
+ follow-redirects "^1.0.0"
+ requires-port "^1.0.0"
+
+http-signature@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
+ integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
+ dependencies:
+ assert-plus "^1.0.0"
+ jsprim "^1.2.2"
+ sshpk "^1.7.0"
+
+http2-wrapper@^1.0.0-beta.5.2:
+ version "1.0.3"
+ resolved "https://registry.nlark.com/http2-wrapper/download/http2-wrapper-1.0.3.tgz?cache=0&sync_timestamp=1626124919738&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhttp2-wrapper%2Fdownload%2Fhttp2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d"
+ integrity sha1-uPVeDB8l1OvQizsMLAeflZCACz0=
+ dependencies:
+ quick-lru "^5.1.1"
+ resolve-alpn "^1.0.0"
+
+https-browserify@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
+ integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
+
+human-signals@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
+ integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
+
+iconv-lite@0.4.24, iconv-lite@^0.4.24:
+ version "0.4.24"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3"
+
+icss-utils@^4.0.0, icss-utils@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467"
+ integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==
+ dependencies:
+ postcss "^7.0.14"
+
+ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
+ integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+
+iferr@^0.1.5:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
+ integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
+
+ignore@^3.3.5:
+ version "3.3.10"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
+ integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==
+
+ignore@^4.0.3, ignore@^4.0.6:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
+ integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
+
+ignore@^5.1.4:
+ version "5.1.8"
+ resolved "https://registry.nlark.com/ignore/download/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
+ integrity sha1-8VCotQo0KJsz4i9YiavU2AFvDlc=
+
+imagemin-optipng@8.0.0:
+ version "8.0.0"
+ resolved "https://registry.npm.taobao.org/imagemin-optipng/download/imagemin-optipng-8.0.0.tgz#b88e5cf6da25cc8479e07cdf38c3ae0479df7ef2"
+ integrity sha1-uI5c9tolzIR54HzfOMOuBHnffvI=
+ dependencies:
+ exec-buffer "^3.0.0"
+ is-png "^2.0.0"
+ optipng-bin "^7.0.0"
+
+imagemin-zopfli@7.0.0:
+ version "7.0.0"
+ resolved "https://registry.npm.taobao.org/imagemin-zopfli/download/imagemin-zopfli-7.0.0.tgz#a44daa3bb80e2620cd1dc883d823b20b4d3788d6"
+ integrity sha1-pE2qO7gOJiDNHciD2COyC003iNY=
+ dependencies:
+ exec-buffer "^3.0.0"
+ is-png "^2.0.0"
+ zopflipng-bin "^6.0.0"
+
+imagemin@8.0.0:
+ version "8.0.0"
+ resolved "https://registry.nlark.com/imagemin/download/imagemin-8.0.0.tgz?cache=0&sync_timestamp=1618999751113&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fimagemin%2Fdownload%2Fimagemin-8.0.0.tgz#d707920d6c7a7f8b329d2e02d8c78d5dcc826356"
+ integrity sha1-1weSDWx6f4synS4C2MeNXcyCY1Y=
+ dependencies:
+ file-type "^14.6.0"
+ globby "^11.0.3"
+ graceful-fs "^4.2.6"
+ junk "^3.1.0"
+ p-pipe "^4.0.0"
+ replace-ext "^2.0.0"
+
+import-cwd@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9"
+ integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=
+ dependencies:
+ import-from "^2.1.0"
+
+import-fresh@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
+ integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY=
+ dependencies:
+ caller-path "^2.0.0"
+ resolve-from "^3.0.0"
+
+import-fresh@^3.0.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+ integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+ dependencies:
+ parent-module "^1.0.0"
+ resolve-from "^4.0.0"
+
+import-from@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1"
+ integrity sha1-M1238qev/VOqpHHUuAId7ja387E=
+ dependencies:
+ resolve-from "^3.0.0"
+
+import-lazy@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npm.taobao.org/import-lazy/download/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
+ integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=
+
+import-lazy@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npm.taobao.org/import-lazy/download/import-lazy-3.1.0.tgz#891279202c8a2280fdbd6674dbd8da1a1dfc67cc"
+ integrity sha1-iRJ5ICyKIoD9vWZ029jaGh38Z8w=
+
+import-local@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d"
+ integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==
+ dependencies:
+ pkg-dir "^3.0.0"
+ resolve-cwd "^2.0.0"
+
+imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+ integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
+
+indent-string@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.nlark.com/indent-string/download/indent-string-2.1.0.tgz?cache=0&sync_timestamp=1618847271946&other_urls=https%3A%2F%2Fregistry.nlark.com%2Findent-string%2Fdownload%2Findent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
+ integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=
+ dependencies:
+ repeating "^2.0.0"
+
+indexes-of@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
+ integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc=
+
+infer-owner@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
+ integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+inherits@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
+ integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
+
+inherits@2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+ integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
+
+ini@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.nlark.com/ini/download/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5"
+ integrity sha1-5f1Vbs3VcmvpePoQAYYurLCpS8U=
+
+ini@^1.3.4, ini@~1.3.0:
+ version "1.3.8"
+ resolved "https://registry.nlark.com/ini/download/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
+ integrity sha1-op2kJbSIBvNHZ6Tvzjlyaa8oQyw=
+
+inquirer@8.1.1:
+ version "8.1.1"
+ resolved "https://registry.nlark.com/inquirer/download/inquirer-8.1.1.tgz#7c53d94c6d03011c7bb2a947f0dca3b98246c26a"
+ integrity sha1-fFPZTG0DARx7sqlH8NyjuYJGwmo=
+ dependencies:
+ ansi-escapes "^4.2.1"
+ chalk "^4.1.1"
+ cli-cursor "^3.1.0"
+ cli-width "^3.0.0"
+ external-editor "^3.0.3"
+ figures "^3.0.0"
+ lodash "^4.17.21"
+ mute-stream "0.0.8"
+ ora "^5.3.0"
+ run-async "^2.4.0"
+ rxjs "^6.6.6"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+ through "^2.3.6"
+
+inquirer@^7.0.0, inquirer@^7.1.0:
+ version "7.3.3"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003"
+ integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==
+ dependencies:
+ ansi-escapes "^4.2.1"
+ chalk "^4.1.0"
+ cli-cursor "^3.1.0"
+ cli-width "^3.0.0"
+ external-editor "^3.0.3"
+ figures "^3.0.0"
+ lodash "^4.17.19"
+ mute-stream "0.0.8"
+ run-async "^2.4.0"
+ rxjs "^6.6.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+ through "^2.3.6"
+
+internal-ip@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907"
+ integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==
+ dependencies:
+ default-gateway "^4.2.0"
+ ipaddr.js "^1.9.0"
+
+interpret@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
+ integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
+
+into-stream@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npm.taobao.org/into-stream/download/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6"
+ integrity sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=
+ dependencies:
+ from2 "^2.1.1"
+ p-is-promise "^1.1.0"
+
+ip-regex@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
+ integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=
+
+ip@^1.1.0, ip@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
+ integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=
+
+ipaddr.js@1.9.1, ipaddr.js@^1.9.0:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
+ integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
+
+is-absolute-url@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"
+ integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=
+
+is-absolute-url@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698"
+ integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==
+
+is-accessor-descriptor@^0.1.6:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
+ integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
+ dependencies:
+ kind-of "^3.0.2"
+
+is-accessor-descriptor@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
+ integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
+ dependencies:
+ kind-of "^6.0.0"
+
+is-arguments@^1.0.4:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9"
+ integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==
+ dependencies:
+ call-bind "^1.0.0"
+
+is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+ integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
+
+is-arrayish@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
+ integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
+
+is-bigint@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a"
+ integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==
+
+is-binary-path@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
+ integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=
+ dependencies:
+ binary-extensions "^1.0.0"
+
+is-binary-path@~2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+ integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+ dependencies:
+ binary-extensions "^2.0.0"
+
+is-boolean-object@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8"
+ integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==
+ dependencies:
+ call-bind "^1.0.2"
+
+is-buffer@^1.1.5:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
+ integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
+
+is-buffer@^2.0.3:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191"
+ integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==
+
+is-callable@^1.1.4, is-callable@^1.2.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e"
+ integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==
+
+is-ci@^1.0.10:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c"
+ integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==
+ dependencies:
+ ci-info "^1.5.0"
+
+is-ci@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.nlark.com/is-ci/download/is-ci-2.0.0.tgz?cache=0&sync_timestamp=1618847026826&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-ci%2Fdownload%2Fis-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
+ integrity sha1-a8YzQYGBDgS1wis9WJ/cpVAmQEw=
+ dependencies:
+ ci-info "^2.0.0"
+
+is-color-stop@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345"
+ integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=
+ dependencies:
+ css-color-names "^0.0.4"
+ hex-color-regex "^1.1.0"
+ hsl-regex "^1.0.0"
+ hsla-regex "^1.0.0"
+ rgb-regex "^1.0.1"
+ rgba-regex "^1.0.0"
+
+is-core-module@^2.2.0, is-core-module@^2.4.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.5.0.tgz#f754843617c70bfd29b7bd87327400cda5c18491"
+ integrity sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==
+ dependencies:
+ has "^1.0.3"
+
+is-data-descriptor@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
+ integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
+ dependencies:
+ kind-of "^3.0.2"
+
+is-data-descriptor@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
+ integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
+ dependencies:
+ kind-of "^6.0.0"
+
+is-date-object@^1.0.1:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5"
+ integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==
+
+is-descriptor@^0.1.0:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
+ integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
+ dependencies:
+ is-accessor-descriptor "^0.1.6"
+ is-data-descriptor "^0.1.4"
+ kind-of "^5.0.0"
+
+is-descriptor@^1.0.0, is-descriptor@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
+ integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
+ dependencies:
+ is-accessor-descriptor "^1.0.0"
+ is-data-descriptor "^1.0.0"
+ kind-of "^6.0.2"
+
+is-directory@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
+ integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
+
+is-docker@^2.0.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
+ integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
+
+is-extendable@^0.1.0, is-extendable@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
+ integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
+
+is-extendable@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
+ integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
+ dependencies:
+ is-plain-object "^2.0.4"
+
+is-extglob@^2.1.0, is-extglob@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+ integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
+
+is-finite@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.nlark.com/is-finite/download/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3"
+ integrity sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM=
+
+is-fullwidth-code-point@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.nlark.com/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+ integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
+ dependencies:
+ number-is-nan "^1.0.0"
+
+is-fullwidth-code-point@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+ integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
+
+is-fullwidth-code-point@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+ integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
+is-glob@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
+ integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=
+ dependencies:
+ is-extglob "^2.1.0"
+
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
+ integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
+ dependencies:
+ is-extglob "^2.1.1"
+
+is-installed-globally@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.npm.taobao.org/is-installed-globally/download/is-installed-globally-0.4.0.tgz?cache=0&sync_timestamp=1610875398433&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-installed-globally%2Fdownload%2Fis-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520"
+ integrity sha1-mg/UB5ScMPhutpWe8beZTtC3tSA=
+ dependencies:
+ global-dirs "^3.0.0"
+ is-path-inside "^3.0.2"
+
+is-interactive@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.nlark.com/is-interactive/download/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e"
+ integrity sha1-zqbmrlyHCnsKAAQHC3tYfgJSkS4=
+
+is-natural-number@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npm.taobao.org/is-natural-number/download/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8"
+ integrity sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=
+
+is-negative-zero@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24"
+ integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==
+
+is-npm@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.nlark.com/is-npm/download/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8"
+ integrity sha1-Q+jWXMVuG2f41HJiz2ZwmRk/Rag=
+
+is-number-object@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb"
+ integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==
+
+is-number@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
+ integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
+ dependencies:
+ kind-of "^3.0.2"
+
+is-number@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
+is-obj@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
+ integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
+
+is-object@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npm.taobao.org/is-object/download/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf"
+ integrity sha1-pWVS4cZlyelQtKAlRh2ofnL4b88=
+
+is-path-cwd@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb"
+ integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==
+
+is-path-in-cwd@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb"
+ integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==
+ dependencies:
+ is-path-inside "^2.1.0"
+
+is-path-inside@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2"
+ integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==
+ dependencies:
+ path-is-inside "^1.0.2"
+
+is-path-inside@^3.0.2:
+ version "3.0.3"
+ resolved "https://registry.nlark.com/is-path-inside/download/is-path-inside-3.0.3.tgz?cache=0&sync_timestamp=1620046845369&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-path-inside%2Fdownload%2Fis-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
+ integrity sha1-0jE2LlOgf/Kw4Op/7QSRYf/RYoM=
+
+is-plain-obj@^1.0.0, is-plain-obj@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
+ integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4=
+
+is-plain-obj@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7"
+ integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==
+
+is-plain-object@^2.0.3, is-plain-object@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
+ integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
+ dependencies:
+ isobject "^3.0.1"
+
+is-png@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npm.taobao.org/is-png/download/is-png-3.0.0.tgz#7bf5db7f32527d10c90594a751c15f74d46c8f5e"
+ integrity sha1-e/XbfzJSfRDJBZSnUcFfdNRsj14=
+
+is-png@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/is-png/download/is-png-2.0.0.tgz#ee8cbc9e9b050425cedeeb4a6fb74a649b0a4a8d"
+ integrity sha1-7oy8npsFBCXO3utKb7dKZJsKSo0=
+
+is-regex@^1.0.4, is-regex@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f"
+ integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==
+ dependencies:
+ call-bind "^1.0.2"
+ has-symbols "^1.0.2"
+
+is-resolvable@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
+ integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==
+
+is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.npm.taobao.org/is-retry-allowed/download/is-retry-allowed-1.2.0.tgz?cache=0&sync_timestamp=1618646442055&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-retry-allowed%2Fdownload%2Fis-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4"
+ integrity sha1-13hIi9CkZmo76KFIK58rqv7eqLQ=
+
+is-stream@^1.0.0, is-stream@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+ integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
+
+is-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
+ integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
+
+is-string@^1.0.5, is-string@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f"
+ integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==
+
+is-symbol@^1.0.2, is-symbol@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
+ integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
+ dependencies:
+ has-symbols "^1.0.2"
+
+is-typedarray@^1.0.0, is-typedarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+ integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
+
+is-unicode-supported@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.nlark.com/is-unicode-supported/download/is-unicode-supported-0.1.0.tgz?cache=0&sync_timestamp=1625294010675&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-unicode-supported%2Fdownload%2Fis-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7"
+ integrity sha1-PybHaoCVk7Ur+i7LVxDtJ3m1Iqc=
+
+is-utf8@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.nlark.com/is-utf8/download/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
+ integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=
+
+is-windows@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
+ integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
+
+is-wsl@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
+ integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
+
+is-wsl@^2.1.1:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
+ integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
+ dependencies:
+ is-docker "^2.0.0"
+
+is-yarn-global@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.nlark.com/is-yarn-global/download/is-yarn-global-0.3.0.tgz?cache=0&sync_timestamp=1619356824740&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-yarn-global%2Fdownload%2Fis-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232"
+ integrity sha1-1QLTOCWQ6jAEiTdGdUyJE5lz4jI=
+
+isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+ integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
+
+isobject@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
+ integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
+ dependencies:
+ isarray "1.0.0"
+
+isobject@^3.0.0, isobject@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
+ integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
+
+isstream@~0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
+ integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
+
+isurl@^1.0.0-alpha5:
+ version "1.0.0"
+ resolved "https://registry.npm.taobao.org/isurl/download/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67"
+ integrity sha1-sn9PSfPNqj6kSgpbfzRi5u3DnWc=
+ dependencies:
+ has-to-string-tag-x "^1.2.0"
+ is-object "^1.0.1"
+
+javascript-stringify@^2.0.1:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz#27c76539be14d8bd128219a2d731b09337904e79"
+ integrity sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==
+
+js-message@1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/js-message/-/js-message-1.0.7.tgz#fbddd053c7a47021871bb8b2c95397cc17c20e47"
+ integrity sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==
+
+js-queue@2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/js-queue/-/js-queue-2.0.2.tgz#0be590338f903b36c73d33c31883a821412cd482"
+ integrity sha512-pbKLsbCfi7kriM3s1J4DDCo7jQkI58zPLHi0heXPzPlj0hjUsm+FesPUbE0DSbIVIK503A36aUBoCN7eMFedkA==
+ dependencies:
+ easy-stack "^1.0.1"
+
+"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+js-yaml@^3.13.1:
+ version "3.14.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
+ integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
+jsbn@~0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
+ integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
+
+jsesc@^2.5.1:
+ version "2.5.2"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
+ integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
+
+jsesc@~0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
+ integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
+
+json-buffer@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npm.taobao.org/json-buffer/download/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
+ integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=
+
+json-buffer@3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npm.taobao.org/json-buffer/download/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
+ integrity sha1-kziAKjDTtmBfvgYT4JQAjKjAWhM=
+
+json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
+ integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
+
+json-parse-even-better-errors@^2.3.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
+ integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+
+json-schema-traverse@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+ integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+json-schema@0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
+ integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
+
+json-stable-stringify-without-jsonify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+ integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
+
+json-stringify-safe@~5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
+ integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
+
+json3@^3.3.3:
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81"
+ integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==
+
+json5@^0.5.0:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
+ integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=
+
+json5@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
+ integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
+ dependencies:
+ minimist "^1.2.0"
+
+json5@^2.1.2, json5@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
+ integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
+ dependencies:
+ minimist "^1.2.5"
+
+jsonfile@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
+ integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+jsonfile@^6.0.1:
+ version "6.1.0"
+ resolved "https://registry.npm.taobao.org/jsonfile/download/jsonfile-6.1.0.tgz?cache=0&sync_timestamp=1604161876665&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
+ integrity sha1-vFWyY0eTxnnsZAMJTrE2mKbsCq4=
+ dependencies:
+ universalify "^2.0.0"
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+jsonwebtoken@8.5.1:
+ version "8.5.1"
+ resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d"
+ integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==
+ dependencies:
+ jws "^3.2.2"
+ lodash.includes "^4.3.0"
+ lodash.isboolean "^3.0.3"
+ lodash.isinteger "^4.0.4"
+ lodash.isnumber "^3.0.3"
+ lodash.isplainobject "^4.0.6"
+ lodash.isstring "^4.0.1"
+ lodash.once "^4.0.0"
+ ms "^2.1.1"
+ semver "^5.6.0"
+
+jsprim@^1.2.2:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
+ integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
+ dependencies:
+ assert-plus "1.0.0"
+ extsprintf "1.3.0"
+ json-schema "0.2.3"
+ verror "1.10.0"
+
+jump.js@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/jump.js/-/jump.js-1.0.2.tgz#e0641b47f40a38f2139c25fda0500bf28e43015a"
+ integrity sha1-4GQbR/QKOPITnCX9oFAL8o5DAVo=
+
+junk@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npm.taobao.org/junk/download/junk-3.1.0.tgz#31499098d902b7e98c5d9b9c80f43457a88abfa1"
+ integrity sha1-MUmQmNkCt+mMXZucgPQ0V6iKv6E=
+
+jwa@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a"
+ integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==
+ dependencies:
+ buffer-equal-constant-time "1.0.1"
+ ecdsa-sig-formatter "1.0.11"
+ safe-buffer "^5.0.1"
+
+jws@^3.2.2:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304"
+ integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==
+ dependencies:
+ jwa "^1.4.1"
+ safe-buffer "^5.0.1"
+
+keyv@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npm.taobao.org/keyv/download/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373"
+ integrity sha1-RJI7o55osSp87H32wyaMAx8u83M=
+ dependencies:
+ json-buffer "3.0.0"
+
+keyv@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.npm.taobao.org/keyv/download/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9"
+ integrity sha1-7MIoSG9pmR5J6UdkhaW+Ho/FxNk=
+ dependencies:
+ json-buffer "3.0.0"
+
+keyv@^4.0.0:
+ version "4.0.3"
+ resolved "https://registry.npm.taobao.org/keyv/download/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254"
+ integrity sha1-TzqpjeJUgDyvzSiWc0EI2qNeQlQ=
+ dependencies:
+ json-buffer "3.0.1"
+
+killable@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892"
+ integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==
+
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
+ integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
+ dependencies:
+ is-buffer "^1.1.5"
+
+kind-of@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
+ integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
+ dependencies:
+ is-buffer "^1.1.5"
+
+kind-of@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
+ integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
+
+kind-of@^6.0.0, kind-of@^6.0.2:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
+ integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
+
+klona@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0"
+ integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==
+
+latest-version@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.nlark.com/latest-version/download/latest-version-5.1.0.tgz?cache=0&sync_timestamp=1618847146540&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flatest-version%2Fdownload%2Flatest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face"
+ integrity sha1-EZ3+kI/jjRXfpD7NE/oS7Igy+s4=
+ dependencies:
+ package-json "^6.3.0"
+
+launch-editor-middleware@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/launch-editor-middleware/-/launch-editor-middleware-2.2.1.tgz#e14b07e6c7154b0a4b86a0fd345784e45804c157"
+ integrity sha512-s0UO2/gEGiCgei3/2UN3SMuUj1phjQN8lcpnvgLSz26fAzNWPQ6Nf/kF5IFClnfU2ehp6LrmKdMU/beveO+2jg==
+ dependencies:
+ launch-editor "^2.2.1"
+
+launch-editor@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.2.1.tgz#871b5a3ee39d6680fcc26d37930b6eeda89db0ca"
+ integrity sha512-On+V7K2uZK6wK7x691ycSUbLD/FyKKelArkbaAMSSJU8JmqmhwN2+mnJDNINuJWSrh2L0kDk+ZQtbC/gOWUwLw==
+ dependencies:
+ chalk "^2.3.0"
+ shell-quote "^1.6.1"
+
+leaflet@1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.6.0.tgz#aecbb044b949ec29469eeb31c77a88e2f448f308"
+ integrity sha512-CPkhyqWUKZKFJ6K8umN5/D2wrJ2+/8UIpXppY7QDnUZW5bZL5+SEI2J7GBpwh4LIupOKqbNSQXgqmrEJopHVNQ==
+
+levn@^0.3.0, levn@~0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
+ integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
+ dependencies:
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+
+lines-and-columns@^1.1.6:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
+ integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
+
+load-json-file@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.nlark.com/load-json-file/download/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
+ integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^2.2.0"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+ strip-bom "^2.0.0"
+
+load-json-file@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
+ integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs=
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^4.0.0"
+ pify "^3.0.0"
+ strip-bom "^3.0.0"
+
+loader-fs-cache@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz#f08657646d607078be2f0a032f8bd69dd6f277d9"
+ integrity sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==
+ dependencies:
+ find-cache-dir "^0.1.1"
+ mkdirp "^0.5.1"
+
+loader-runner@^2.3.1, loader-runner@^2.4.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
+ integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
+
+loader-utils@^0.2.16:
+ version "0.2.17"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
+ integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=
+ dependencies:
+ big.js "^3.1.3"
+ emojis-list "^2.0.0"
+ 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:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
+ integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
+ dependencies:
+ big.js "^5.2.2"
+ emojis-list "^3.0.0"
+ json5 "^1.0.1"
+
+loader-utils@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0"
+ integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==
+ dependencies:
+ big.js "^5.2.2"
+ emojis-list "^3.0.0"
+ json5 "^2.1.2"
+
+locate-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+ integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
+ dependencies:
+ p-locate "^2.0.0"
+ path-exists "^3.0.0"
+
+locate-path@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
+ integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
+ dependencies:
+ p-locate "^3.0.0"
+ path-exists "^3.0.0"
+
+locate-path@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
+ integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
+ dependencies:
+ p-locate "^4.1.0"
+
+lodash.assign@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
+ integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=
+
+lodash.clonedeep@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
+ integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
+
+lodash.debounce@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
+ integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
+
+lodash.defaultsdeep@^4.6.1:
+ version "4.6.1"
+ resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6"
+ integrity sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==
+
+lodash.filter@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace"
+ integrity sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=
+
+lodash.foreach@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53"
+ integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=
+
+lodash.includes@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
+ integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=
+
+lodash.isboolean@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6"
+ integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=
+
+lodash.isequal@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
+ integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA=
+
+lodash.isinteger@^4.0.4:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343"
+ integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=
+
+lodash.isnumber@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc"
+ integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=
+
+lodash.isplainobject@^4.0.6:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
+ integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=
+
+lodash.isstring@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
+ integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=
+
+lodash.kebabcase@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36"
+ integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY=
+
+lodash.mapvalues@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c"
+ integrity sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=
+
+lodash.memoize@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
+ integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
+
+lodash.once@^4.0.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
+ integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=
+
+lodash.transform@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0"
+ integrity sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=
+
+lodash.uniq@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
+ integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
+
+lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3:
+ version "4.17.21"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+ integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+
+log-symbols@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
+ integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==
+ dependencies:
+ chalk "^2.0.1"
+
+log-symbols@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.nlark.com/log-symbols/download/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503"
+ integrity sha1-P727lbRoOsn8eFER55LlWNSr1QM=
+ dependencies:
+ chalk "^4.1.0"
+ is-unicode-supported "^0.1.0"
+
+logalot@^2.0.0, logalot@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npm.taobao.org/logalot/download/logalot-2.1.0.tgz#5f8e8c90d304edf12530951a5554abb8c5e3f552"
+ integrity sha1-X46MkNME7fElMJUaVVSruMXj9VI=
+ dependencies:
+ figures "^1.3.5"
+ squeak "^1.0.0"
+
+loglevel@^1.6.8:
+ version "1.7.1"
+ resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197"
+ integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==
+
+longest@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npm.taobao.org/longest/download/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
+ integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=
+
+loose-envify@^1.2.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
+ dependencies:
+ js-tokens "^3.0.0 || ^4.0.0"
+
+loud-rejection@^1.0.0:
+ version "1.6.0"
+ resolved "https://registry.npm.taobao.org/loud-rejection/download/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
+ integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=
+ dependencies:
+ currently-unhandled "^0.4.1"
+ signal-exit "^3.0.0"
+
+lower-case@^1.1.1:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
+ integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw=
+
+lowercase-keys@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306"
+ integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=
+
+lowercase-keys@^1.0.0, lowercase-keys@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
+ integrity sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=
+
+lowercase-keys@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/lowercase-keys/download/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479"
+ integrity sha1-JgPni3tLAAbLyi+8yKMgJVislHk=
+
+lpad-align@^1.0.1:
+ version "1.1.2"
+ resolved "https://registry.nlark.com/lpad-align/download/lpad-align-1.1.2.tgz#21f600ac1c3095c3c6e497ee67271ee08481fe9e"
+ integrity sha1-IfYArBwwlcPG5JfuZyce4ISB/p4=
+ dependencies:
+ get-stdin "^4.0.1"
+ indent-string "^2.1.0"
+ longest "^1.0.0"
+ meow "^3.3.0"
+
+lru-cache@^4.0.1, lru-cache@^4.1.2:
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
+ integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
+ dependencies:
+ pseudomap "^1.0.2"
+ yallist "^2.1.2"
+
+lru-cache@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
+ integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
+ dependencies:
+ yallist "^3.0.2"
+
+lru-cache@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+ integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+ dependencies:
+ yallist "^4.0.0"
+
+make-dir@^1.0.0, make-dir@^1.2.0:
+ version "1.3.0"
+ resolved "https://registry.nlark.com/make-dir/download/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
+ integrity sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=
+ dependencies:
+ pify "^3.0.0"
+
+make-dir@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
+ integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
+ dependencies:
+ pify "^4.0.1"
+ semver "^5.6.0"
+
+make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
+ integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
+ dependencies:
+ semver "^6.0.0"
+
+map-cache@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
+ integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
+
+map-obj@^1.0.0, map-obj@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npm.taobao.org/map-obj/download/map-obj-1.0.1.tgz?cache=0&sync_timestamp=1617771341569&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-obj%2Fdownload%2Fmap-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
+ integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
+
+map-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
+ integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
+ dependencies:
+ object-visit "^1.0.0"
+
+md5.js@^1.3.4:
+ version "1.3.5"
+ resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
+ integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==
+ dependencies:
+ hash-base "^3.0.0"
+ inherits "^2.0.1"
+ safe-buffer "^5.1.2"
+
+mdn-data@2.0.14:
+ version "2.0.14"
+ resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
+ integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
+
+mdn-data@2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
+ integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==
+
+media-typer@0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
+ integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
+
+medium-zoom@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/medium-zoom/-/medium-zoom-1.0.6.tgz#9247f21ca9313d8bbe9420aca153a410df08d027"
+ integrity sha512-UdiUWfvz9fZMg1pzf4dcuqA0W079o0mpqbTnOz5ip4VGYX96QjmbM+OgOU/0uOzAytxC0Ny4z+VcYQnhdifimg==
+
+memory-fs@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290"
+ integrity sha1-8rslNovBIeORwlIN6Slpyu4KApA=
+
+memory-fs@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
+ integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=
+ dependencies:
+ errno "^0.1.3"
+ readable-stream "^2.0.1"
+
+memory-fs@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c"
+ integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==
+ dependencies:
+ errno "^0.1.3"
+ readable-stream "^2.0.1"
+
+meow@^3.3.0:
+ version "3.7.0"
+ resolved "https://registry.nlark.com/meow/download/meow-3.7.0.tgz?cache=0&sync_timestamp=1626388195360&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmeow%2Fdownload%2Fmeow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
+ integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=
+ dependencies:
+ camelcase-keys "^2.0.0"
+ decamelize "^1.1.2"
+ loud-rejection "^1.0.0"
+ map-obj "^1.0.1"
+ minimist "^1.1.3"
+ normalize-package-data "^2.3.4"
+ object-assign "^4.0.1"
+ read-pkg-up "^1.0.1"
+ redent "^1.0.0"
+ trim-newlines "^1.0.0"
+
+merge-descriptors@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
+ integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
+
+merge-source-map@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646"
+ integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==
+ dependencies:
+ source-map "^0.6.1"
+
+merge-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
+ integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
+
+merge2@^1.2.3, merge2@^1.3.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
+ integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+
+methods@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
+ integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
+
+micromatch@^3.1.10, micromatch@^3.1.4:
+ version "3.1.10"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
+ integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
+ dependencies:
+ arr-diff "^4.0.0"
+ array-unique "^0.3.2"
+ braces "^2.3.1"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ extglob "^2.0.4"
+ fragment-cache "^0.2.1"
+ kind-of "^6.0.2"
+ nanomatch "^1.2.9"
+ object.pick "^1.3.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.2"
+
+micromatch@^4.0.2, micromatch@^4.0.4:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
+ integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
+ dependencies:
+ braces "^3.0.1"
+ picomatch "^2.2.3"
+
+miller-rabin@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
+ integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
+ dependencies:
+ bn.js "^4.0.0"
+ brorand "^1.0.1"
+
+mime-db@1.48.0, "mime-db@>= 1.43.0 < 2", mime-db@^1.28.0:
+ version "1.48.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.48.0.tgz#e35b31045dd7eada3aaad537ed88a33afbef2d1d"
+ integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==
+
+mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24:
+ version "2.1.31"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.31.tgz#a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b"
+ integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==
+ dependencies:
+ mime-db "1.48.0"
+
+mime@1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
+ integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
+
+mime@^2.4.4:
+ version "2.5.2"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe"
+ integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==
+
+mimic-fn@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
+ integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
+
+mimic-fn@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
+ integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+
+mimic-response@^1.0.0, mimic-response@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.nlark.com/mimic-response/download/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
+ integrity sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=
+
+mimic-response@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.nlark.com/mimic-response/download/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43"
+ integrity sha1-0Tdj019hPQnsN+uzC6wEacDuj0M=
+
+mimic-response@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.nlark.com/mimic-response/download/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9"
+ integrity sha1-LR1Zr5wbEpgVrMwsRqAipc4fo8k=
+
+mini-css-extract-plugin@^0.9.0:
+ version "0.9.0"
+ resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e"
+ integrity sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A==
+ dependencies:
+ loader-utils "^1.1.0"
+ normalize-url "1.9.1"
+ schema-utils "^1.0.0"
+ webpack-sources "^1.1.0"
+
+minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
+ integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
+
+minimalistic-crypto-utils@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
+ integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
+
+minimatch@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minimist@1.2.5, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
+ integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
+
+minipass@^3.1.1:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd"
+ integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==
+ dependencies:
+ yallist "^4.0.0"
+
+mississippi@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
+ integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==
+ dependencies:
+ concat-stream "^1.5.0"
+ duplexify "^3.4.2"
+ end-of-stream "^1.1.0"
+ flush-write-stream "^1.0.0"
+ from2 "^2.1.0"
+ parallel-transform "^1.1.0"
+ pump "^3.0.0"
+ pumpify "^1.3.3"
+ stream-each "^1.1.0"
+ through2 "^2.0.0"
+
+mixin-deep@^1.2.0:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
+ integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
+ dependencies:
+ for-in "^1.0.2"
+ is-extendable "^1.0.1"
+
+mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3:
+ version "0.5.3"
+ resolved "https://registry.nlark.com/mkdirp-classic/download/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
+ integrity sha1-+hDJEVzG2IZb4iG6R+6b7XhgERM=
+
+mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1:
+ version "0.5.5"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
+ integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
+ dependencies:
+ minimist "^1.2.5"
+
+moment@^2.10.2:
+ version "2.29.1"
+ resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3"
+ integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
+
+move-concurrently@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
+ integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=
+ dependencies:
+ aproba "^1.1.1"
+ copy-concurrently "^1.0.0"
+ fs-write-stream-atomic "^1.0.8"
+ mkdirp "^0.5.1"
+ rimraf "^2.5.4"
+ run-queue "^1.0.3"
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+ integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+
+ms@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
+ integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
+
+ms@2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
+ms@2.1.3, ms@^2.1.1:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+ integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
+multicast-dns-service-types@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901"
+ integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=
+
+multicast-dns@^6.0.1:
+ version "6.2.3"
+ resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229"
+ integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==
+ dependencies:
+ dns-packet "^1.3.1"
+ thunky "^1.0.2"
+
+mute-stream@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
+ integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
+
+mz@^2.4.0:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
+ integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==
+ dependencies:
+ any-promise "^1.0.0"
+ object-assign "^4.0.1"
+ thenify-all "^1.0.0"
+
+nan@^2.12.1:
+ version "2.14.2"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19"
+ integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==
+
+nanomatch@^1.2.9:
+ version "1.2.13"
+ resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
+ integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
+ dependencies:
+ arr-diff "^4.0.0"
+ array-unique "^0.3.2"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ fragment-cache "^0.2.1"
+ is-windows "^1.0.2"
+ kind-of "^6.0.2"
+ object.pick "^1.3.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+napi-build-utils@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npm.taobao.org/napi-build-utils/download/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806"
+ integrity sha1-sf3cCyxG44Cgt6dvmE3UfEGhOAY=
+
+natural-compare@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+ integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
+
+negotiator@0.6.2:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
+ integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
+
+neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1, neo-async@^2.6.2:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
+ integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
+
+nice-try@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
+ integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
+
+no-case@^2.2.0:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac"
+ integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==
+ dependencies:
+ lower-case "^1.1.1"
+
+node-abi@^2.21.0:
+ version "2.30.0"
+ resolved "https://registry.nlark.com/node-abi/download/node-abi-2.30.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnode-abi%2Fdownload%2Fnode-abi-2.30.0.tgz#8be53bf3e7945a34eea10e0fc9a5982776cf550b"
+ integrity sha1-i+U78+eUWjTuoQ4PyaWYJ3bPVQs=
+ dependencies:
+ semver "^5.4.1"
+
+node-addon-api@^3.2.0:
+ version "3.2.1"
+ resolved "https://registry.nlark.com/node-addon-api/download/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161"
+ integrity sha1-gTJeCiEXeJwBKNq2Xn448HzroWE=
+
+node-fetch@^2.6.1:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
+ integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
+
+node-forge@^0.10.0:
+ version "0.10.0"
+ resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
+ integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==
+
+node-ipc@^9.1.1:
+ version "9.2.1"
+ resolved "https://registry.yarnpkg.com/node-ipc/-/node-ipc-9.2.1.tgz#b32f66115f9d6ce841dc4ec2009d6a733f98bb6b"
+ integrity sha512-mJzaM6O3xHf9VT8BULvJSbdVbmHUKRNOH7zDDkCrA1/T+CVjq2WVIDfLt0azZRXpgArJtl3rtmEozrbXPZ9GaQ==
+ dependencies:
+ event-pubsub "4.3.0"
+ js-message "1.0.7"
+ js-queue "2.0.2"
+
+node-libs-browser@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425"
+ integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==
+ dependencies:
+ assert "^1.1.1"
+ browserify-zlib "^0.2.0"
+ buffer "^4.3.0"
+ console-browserify "^1.1.0"
+ constants-browserify "^1.0.0"
+ crypto-browserify "^3.11.0"
+ domain-browser "^1.1.1"
+ events "^3.0.0"
+ https-browserify "^1.0.0"
+ os-browserify "^0.3.0"
+ path-browserify "0.0.1"
+ process "^0.11.10"
+ punycode "^1.2.4"
+ querystring-es3 "^0.2.0"
+ readable-stream "^2.3.3"
+ stream-browserify "^2.0.1"
+ stream-http "^2.7.2"
+ string_decoder "^1.0.0"
+ timers-browserify "^2.0.4"
+ tty-browserify "0.0.0"
+ url "^0.11.0"
+ util "^0.11.0"
+ vm-browserify "^1.0.1"
+
+node-releases@^1.1.71:
+ version "1.1.73"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20"
+ integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==
+
+normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
+ integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
+ dependencies:
+ hosted-git-info "^2.1.4"
+ resolve "^1.10.0"
+ semver "2 || 3 || 4 || 5"
+ validate-npm-package-license "^3.0.1"
+
+normalize-path@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379"
+ integrity sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=
+
+normalize-path@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
+ integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
+ dependencies:
+ remove-trailing-separator "^1.0.1"
+
+normalize-path@^3.0.0, normalize-path@~3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+ integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
+normalize-range@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
+ integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
+
+normalize-url@1.9.1:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c"
+ integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=
+ dependencies:
+ object-assign "^4.0.1"
+ prepend-http "^1.0.0"
+ query-string "^4.1.0"
+ sort-keys "^1.0.0"
+
+normalize-url@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.nlark.com/normalize-url/download/normalize-url-2.0.1.tgz?cache=0&sync_timestamp=1625826787829&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnormalize-url%2Fdownload%2Fnormalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6"
+ integrity sha1-g1qdoVUfom9w6SMpBpojqmV01+Y=
+ dependencies:
+ prepend-http "^2.0.0"
+ query-string "^5.0.1"
+ sort-keys "^2.0.0"
+
+normalize-url@^3.0.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
+ integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==
+
+normalize-url@^4.1.0:
+ version "4.5.1"
+ resolved "https://registry.nlark.com/normalize-url/download/normalize-url-4.5.1.tgz?cache=0&sync_timestamp=1625826787829&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnormalize-url%2Fdownload%2Fnormalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a"
+ integrity sha1-DdkM8SiO4dExO4cIHJpZMu5IUYo=
+
+normalize-url@^6.0.1:
+ version "6.1.0"
+ resolved "https://registry.nlark.com/normalize-url/download/normalize-url-6.1.0.tgz?cache=0&sync_timestamp=1625826787829&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnormalize-url%2Fdownload%2Fnormalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a"
+ integrity sha1-QNCIW1Nd7/4/MUe+yHfQX+TFZoo=
+
+npm-conf@^1.1.0:
+ version "1.1.3"
+ resolved "https://registry.npm.taobao.org/npm-conf/download/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9"
+ integrity sha1-JWzEe9DiGMJZxOlVC/QTvCGSr/k=
+ dependencies:
+ config-chain "^1.1.11"
+ pify "^3.0.0"
+
+npm-run-path@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
+ integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
+ dependencies:
+ path-key "^2.0.0"
+
+npm-run-path@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
+ integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
+ dependencies:
+ path-key "^3.0.0"
+
+npmlog@^4.0.1:
+ version "4.1.2"
+ resolved "https://registry.nlark.com/npmlog/download/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
+ integrity sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=
+ dependencies:
+ are-we-there-yet "~1.1.2"
+ console-control-strings "~1.1.0"
+ gauge "~2.7.3"
+ set-blocking "~2.0.0"
+
+nth-check@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
+ integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
+ dependencies:
+ boolbase "~1.0.0"
+
+nth-check@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125"
+ integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==
+ dependencies:
+ boolbase "^1.0.0"
+
+num2fraction@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
+ integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=
+
+number-is-nan@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+ integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
+
+oauth-sign@~0.9.0:
+ version "0.9.0"
+ resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
+ integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
+
+object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+ integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
+
+object-copy@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
+ integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
+ dependencies:
+ copy-descriptor "^0.1.0"
+ define-property "^0.2.5"
+ kind-of "^3.0.3"
+
+object-hash@^1.1.4:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df"
+ integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==
+
+object-inspect@^1.10.3:
+ version "1.11.0"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1"
+ integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==
+
+object-is@^1.0.1:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac"
+ integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+
+object-keys@^1.0.12, object-keys@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
+ integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+
+object-visit@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
+ integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
+ dependencies:
+ isobject "^3.0.0"
+
+object.assign@^4.1.0, object.assign@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
+ integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
+ dependencies:
+ call-bind "^1.0.0"
+ define-properties "^1.1.3"
+ has-symbols "^1.0.1"
+ object-keys "^1.1.1"
+
+object.entries@^1.1.2:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.4.tgz#43ccf9a50bc5fd5b649d45ab1a579f24e088cafd"
+ integrity sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.18.2"
+
+object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7"
+ integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.18.0-next.2"
+
+object.pick@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
+ integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
+ dependencies:
+ isobject "^3.0.1"
+
+object.values@^1.1.0, object.values@^1.1.3:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30"
+ integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.18.2"
+
+obuf@^1.0.0, obuf@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
+ integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
+
+on-finished@~2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
+ integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
+ dependencies:
+ ee-first "1.1.1"
+
+on-headers@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"
+ integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==
+
+once@^1.3.0, once@^1.3.1, once@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
+ dependencies:
+ wrappy "1"
+
+onetime@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
+ integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=
+ dependencies:
+ mimic-fn "^1.0.0"
+
+onetime@^5.1.0:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
+ integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
+ dependencies:
+ mimic-fn "^2.1.0"
+
+open@^6.3.0:
+ version "6.4.0"
+ resolved "https://registry.yarnpkg.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9"
+ integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==
+ dependencies:
+ is-wsl "^1.1.0"
+
+opener@^1.5.1:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598"
+ integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==
+
+opn@^5.5.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc"
+ integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==
+ dependencies:
+ is-wsl "^1.1.0"
+
+optionator@^0.8.3:
+ version "0.8.3"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
+ integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
+ dependencies:
+ deep-is "~0.1.3"
+ fast-levenshtein "~2.0.6"
+ levn "~0.3.0"
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+ word-wrap "~1.2.3"
+
+optipng-bin@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.npm.taobao.org/optipng-bin/download/optipng-bin-7.0.0.tgz#2dfcc68a5f006e7746e76ad64d317d6fb7c7f9ed"
+ integrity sha1-LfzGil8AbndG52rWTTF9b7fH+e0=
+ dependencies:
+ bin-build "^3.0.0"
+ bin-wrapper "^4.0.0"
+ logalot "^2.0.0"
+
+ora@^3.4.0:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318"
+ integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==
+ dependencies:
+ chalk "^2.4.2"
+ cli-cursor "^2.1.0"
+ cli-spinners "^2.0.0"
+ log-symbols "^2.2.0"
+ strip-ansi "^5.2.0"
+ wcwidth "^1.0.1"
+
+ora@^5.3.0:
+ version "5.4.1"
+ resolved "https://registry.nlark.com/ora/download/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18"
+ integrity sha1-GyZ4Qmr0rEpQkAjl5KyemVnbnhg=
+ dependencies:
+ bl "^4.1.0"
+ chalk "^4.1.0"
+ cli-cursor "^3.1.0"
+ cli-spinners "^2.5.0"
+ is-interactive "^1.0.0"
+ is-unicode-supported "^0.1.0"
+ log-symbols "^4.1.0"
+ strip-ansi "^6.0.0"
+ wcwidth "^1.0.1"
+
+original@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f"
+ integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==
+ dependencies:
+ url-parse "^1.4.3"
+
+os-browserify@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
+ integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=
+
+os-filter-obj@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/os-filter-obj/download/os-filter-obj-2.0.0.tgz#1c0b62d5f3a2442749a2d139e6dddee6e81d8d16"
+ integrity sha1-HAti1fOiRCdJotE55t3e5ugdjRY=
+ dependencies:
+ arch "^2.1.0"
+
+os-tmpdir@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
+ integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
+
+p-cancelable@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.nlark.com/p-cancelable/download/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa"
+ integrity sha1-ueEjgAvOu3rBOkeb4ZW1B7mNMPo=
+
+p-cancelable@^0.4.0:
+ version "0.4.1"
+ resolved "https://registry.nlark.com/p-cancelable/download/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0"
+ integrity sha1-NfNj1n1SCByNlYXje8zrfgu8sqA=
+
+p-cancelable@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.nlark.com/p-cancelable/download/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc"
+ integrity sha1-0HjRWjr0CSIMiG8dmgyi5EGrJsw=
+
+p-cancelable@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.nlark.com/p-cancelable/download/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf"
+ integrity sha1-qrf71BZYL6MqPbSYWcEiSHxe0s8=
+
+p-event@^1.0.0:
+ version "1.3.0"
+ resolved "https://registry.nlark.com/p-event/download/p-event-1.3.0.tgz#8e6b4f4f65c72bc5b6fe28b75eda874f96a4a085"
+ integrity sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU=
+ dependencies:
+ p-timeout "^1.1.1"
+
+p-event@^2.1.0:
+ version "2.3.1"
+ resolved "https://registry.nlark.com/p-event/download/p-event-2.3.1.tgz#596279ef169ab2c3e0cae88c1cfbb08079993ef6"
+ integrity sha1-WWJ57xaassPgyuiMHPuwgHmZPvY=
+ dependencies:
+ p-timeout "^2.0.1"
+
+p-finally@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+ integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
+
+p-finally@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561"
+ integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==
+
+p-is-promise@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.nlark.com/p-is-promise/download/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e"
+ integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=
+
+p-limit@^1.1.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
+ integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
+ dependencies:
+ p-try "^1.0.0"
+
+p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+ integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
+ dependencies:
+ p-try "^2.0.0"
+
+p-locate@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+ integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
+ dependencies:
+ p-limit "^1.1.0"
+
+p-locate@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
+ integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
+ dependencies:
+ p-limit "^2.0.0"
+
+p-locate@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
+ integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
+ dependencies:
+ p-limit "^2.2.0"
+
+p-map-series@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npm.taobao.org/p-map-series/download/p-map-series-1.0.0.tgz?cache=0&sync_timestamp=1617950183954&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-map-series%2Fdownload%2Fp-map-series-1.0.0.tgz#bf98fe575705658a9e1351befb85ae4c1f07bdca"
+ integrity sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco=
+ dependencies:
+ p-reduce "^1.0.0"
+
+p-map@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
+ integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
+
+p-pipe@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npm.taobao.org/p-pipe/download/p-pipe-4.0.0.tgz?cache=0&sync_timestamp=1617892628060&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-pipe%2Fdownload%2Fp-pipe-4.0.0.tgz#7e5424569351b2ab452a47826acb93ce09ad6a2c"
+ integrity sha1-flQkVpNRsqtFKkeCasuTzgmtaiw=
+
+p-reduce@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.nlark.com/p-reduce/download/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa"
+ integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=
+
+p-retry@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328"
+ integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==
+ dependencies:
+ retry "^0.12.0"
+
+p-timeout@^1.1.1:
+ version "1.2.1"
+ resolved "https://registry.nlark.com/p-timeout/download/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386"
+ integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=
+ dependencies:
+ p-finally "^1.0.0"
+
+p-timeout@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.nlark.com/p-timeout/download/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038"
+ integrity sha1-2N0ZeVldLcATnh/ka4tkbLPN8Dg=
+ dependencies:
+ p-finally "^1.0.0"
+
+p-try@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+ integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
+
+p-try@^2.0.0, p-try@^2.1.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
+ integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+
+package-json@^6.3.0:
+ version "6.5.0"
+ resolved "https://registry.nlark.com/package-json/download/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0"
+ integrity sha1-b+7ayjXnVyWHbQsOZJdGl/7RRbA=
+ dependencies:
+ got "^9.6.0"
+ registry-auth-token "^4.0.0"
+ registry-url "^5.0.0"
+ semver "^6.2.0"
+
+pako@~1.0.5:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
+ integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
+
+parallel-transform@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc"
+ integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==
+ dependencies:
+ cyclist "^1.0.1"
+ inherits "^2.0.3"
+ readable-stream "^2.1.5"
+
+param-case@2.1.x:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247"
+ integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc=
+ dependencies:
+ no-case "^2.2.0"
+
+parchment@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/parchment/-/parchment-1.1.4.tgz#aeded7ab938fe921d4c34bc339ce1168bc2ffde5"
+ integrity sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==
+
+parent-module@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
+ integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
+ dependencies:
+ callsites "^3.0.0"
+
+parse-asn1@^5.0.0, parse-asn1@^5.1.5:
+ version "5.1.6"
+ resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4"
+ integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==
+ dependencies:
+ asn1.js "^5.2.0"
+ browserify-aes "^1.0.0"
+ evp_bytestokey "^1.0.0"
+ pbkdf2 "^3.0.3"
+ safe-buffer "^5.1.1"
+
+parse-json@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.nlark.com/parse-json/download/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
+ integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=
+ dependencies:
+ error-ex "^1.2.0"
+
+parse-json@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
+ integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
+ dependencies:
+ error-ex "^1.3.1"
+ json-parse-better-errors "^1.0.1"
+
+parse-json@^5.0.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
+ integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ error-ex "^1.3.1"
+ json-parse-even-better-errors "^2.3.0"
+ lines-and-columns "^1.1.6"
+
+parse5-htmlparser2-tree-adapter@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6"
+ integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==
+ dependencies:
+ parse5 "^6.0.1"
+
+parse5@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178"
+ integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==
+
+parse5@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b"
+ integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==
+
+parseurl@~1.3.2, parseurl@~1.3.3:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
+ integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
+
+pascalcase@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
+ integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
+
+path-browserify@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a"
+ integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==
+
+path-dirname@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
+ integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=
+
+path-exists@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
+ integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=
+ dependencies:
+ pinkie-promise "^2.0.0"
+
+path-exists@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+ integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
+
+path-exists@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+ integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+ integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
+
+path-is-inside@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
+ integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
+
+path-key@^2.0.0, path-key@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+ integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
+
+path-key@^3.0.0, path-key@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+ integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+
+path-parse@^1.0.6:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+
+path-to-regexp@0.1.7:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
+ integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
+
+path-type@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.nlark.com/path-type/download/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
+ integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=
+ dependencies:
+ graceful-fs "^4.1.2"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+path-type@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
+ integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==
+ dependencies:
+ pify "^3.0.0"
+
+path-type@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.nlark.com/path-type/download/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
+ integrity sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=
+
+pbkdf2@^3.0.3:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075"
+ integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==
+ dependencies:
+ create-hash "^1.1.2"
+ create-hmac "^1.1.4"
+ ripemd160 "^2.0.1"
+ safe-buffer "^5.0.1"
+ sha.js "^2.4.8"
+
+peek-readable@^3.1.4:
+ version "3.1.4"
+ resolved "https://registry.nlark.com/peek-readable/download/peek-readable-3.1.4.tgz#f5c3b41a4eeb63a1322c4131f0b5bac7105b892e"
+ integrity sha1-9cO0Gk7rY6EyLEEx8LW6xxBbiS4=
+
+pend@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.nlark.com/pend/download/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
+ integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
+
+performance-now@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+ integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
+
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
+ integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
+
+pify@^2.0.0, pify@^2.2.0, pify@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+ integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
+
+pify@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
+ integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
+
+pify@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
+ integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
+
+pinkie-promise@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
+ integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o=
+ dependencies:
+ pinkie "^2.0.0"
+
+pinkie@^2.0.0:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
+ integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
+
+pkg-dir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
+ integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q=
+ dependencies:
+ find-up "^1.0.0"
+
+pkg-dir@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
+ integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=
+ dependencies:
+ find-up "^2.1.0"
+
+pkg-dir@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
+ integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==
+ dependencies:
+ find-up "^3.0.0"
+
+pkg-dir@^4.1.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
+ integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
+ dependencies:
+ find-up "^4.0.0"
+
+pkg-up@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f"
+ integrity sha1-yBmscoBZpGHKscOImivjxJoATX8=
+ dependencies:
+ find-up "^2.1.0"
+
+png2icons@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npm.taobao.org/png2icons/download/png2icons-2.0.1.tgz#09d8f10b71302e98ca178d3324bc4deff9b90124"
+ integrity sha1-CdjxC3EwLpjKF40zJLxN7/m5ASQ=
+
+pnp-webpack-plugin@^1.6.4:
+ version "1.6.4"
+ resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149"
+ integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==
+ dependencies:
+ ts-pnp "^1.1.6"
+
+popper.js@^1.16.0, popper.js@^1.16.1:
+ version "1.16.1"
+ resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b"
+ integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==
+
+portal-vue@2.1.7, portal-vue@^2.1.7:
+ version "2.1.7"
+ resolved "https://registry.yarnpkg.com/portal-vue/-/portal-vue-2.1.7.tgz#ea08069b25b640ca08a5b86f67c612f15f4e4ad4"
+ integrity sha512-+yCno2oB3xA7irTt0EU5Ezw22L2J51uKAacE/6hMPMoO/mx3h4rXFkkBkT4GFsMDv/vEe8TNKC3ujJJ0PTwb6g==
+
+portfinder@^1.0.26:
+ version "1.0.28"
+ resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778"
+ integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==
+ dependencies:
+ async "^2.6.2"
+ debug "^3.1.1"
+ mkdirp "^0.5.5"
+
+posix-character-classes@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
+ integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
+
+postcss-calc@^7.0.1:
+ version "7.0.5"
+ resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e"
+ integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==
+ dependencies:
+ postcss "^7.0.27"
+ postcss-selector-parser "^6.0.2"
+ postcss-value-parser "^4.0.2"
+
+postcss-colormin@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381"
+ integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==
+ dependencies:
+ browserslist "^4.0.0"
+ color "^3.0.0"
+ has "^1.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-convert-values@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f"
+ integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==
+ dependencies:
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-discard-comments@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033"
+ integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==
+ dependencies:
+ postcss "^7.0.0"
+
+postcss-discard-duplicates@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb"
+ integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==
+ dependencies:
+ postcss "^7.0.0"
+
+postcss-discard-empty@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765"
+ integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==
+ dependencies:
+ postcss "^7.0.0"
+
+postcss-discard-overridden@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57"
+ integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==
+ dependencies:
+ postcss "^7.0.0"
+
+postcss-load-config@^2.0.0:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a"
+ integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==
+ dependencies:
+ cosmiconfig "^5.0.0"
+ import-cwd "^2.0.0"
+
+postcss-loader@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d"
+ integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==
+ dependencies:
+ loader-utils "^1.1.0"
+ postcss "^7.0.0"
+ postcss-load-config "^2.0.0"
+ schema-utils "^1.0.0"
+
+postcss-merge-longhand@^4.0.11:
+ version "4.0.11"
+ resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24"
+ integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==
+ dependencies:
+ css-color-names "0.0.4"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+ stylehacks "^4.0.0"
+
+postcss-merge-rules@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650"
+ integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==
+ dependencies:
+ browserslist "^4.0.0"
+ caniuse-api "^3.0.0"
+ cssnano-util-same-parent "^4.0.0"
+ postcss "^7.0.0"
+ postcss-selector-parser "^3.0.0"
+ vendors "^1.0.0"
+
+postcss-minify-font-values@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6"
+ integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==
+ dependencies:
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-minify-gradients@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471"
+ integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==
+ dependencies:
+ cssnano-util-get-arguments "^4.0.0"
+ is-color-stop "^1.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-minify-params@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874"
+ integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==
+ dependencies:
+ alphanum-sort "^1.0.0"
+ browserslist "^4.0.0"
+ cssnano-util-get-arguments "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+ uniqs "^2.0.0"
+
+postcss-minify-selectors@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8"
+ integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==
+ dependencies:
+ alphanum-sort "^1.0.0"
+ has "^1.0.0"
+ postcss "^7.0.0"
+ postcss-selector-parser "^3.0.0"
+
+postcss-modules-extract-imports@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e"
+ integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==
+ dependencies:
+ postcss "^7.0.5"
+
+postcss-modules-local-by-default@^3.0.2:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0"
+ integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==
+ dependencies:
+ icss-utils "^4.1.1"
+ postcss "^7.0.32"
+ postcss-selector-parser "^6.0.2"
+ postcss-value-parser "^4.1.0"
+
+postcss-modules-scope@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee"
+ integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==
+ dependencies:
+ postcss "^7.0.6"
+ postcss-selector-parser "^6.0.0"
+
+postcss-modules-values@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10"
+ integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==
+ dependencies:
+ icss-utils "^4.0.0"
+ postcss "^7.0.6"
+
+postcss-normalize-charset@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4"
+ integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==
+ dependencies:
+ postcss "^7.0.0"
+
+postcss-normalize-display-values@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a"
+ integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==
+ dependencies:
+ cssnano-util-get-match "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-normalize-positions@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f"
+ integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==
+ dependencies:
+ cssnano-util-get-arguments "^4.0.0"
+ has "^1.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-normalize-repeat-style@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c"
+ integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==
+ dependencies:
+ cssnano-util-get-arguments "^4.0.0"
+ cssnano-util-get-match "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-normalize-string@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c"
+ integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==
+ dependencies:
+ has "^1.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-normalize-timing-functions@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9"
+ integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==
+ dependencies:
+ cssnano-util-get-match "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-normalize-unicode@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb"
+ integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==
+ dependencies:
+ browserslist "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-normalize-url@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1"
+ integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==
+ dependencies:
+ is-absolute-url "^2.0.0"
+ normalize-url "^3.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-normalize-whitespace@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82"
+ integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==
+ dependencies:
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-ordered-values@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee"
+ integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==
+ dependencies:
+ cssnano-util-get-arguments "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-reduce-initial@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df"
+ integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==
+ dependencies:
+ browserslist "^4.0.0"
+ caniuse-api "^3.0.0"
+ has "^1.0.0"
+ postcss "^7.0.0"
+
+postcss-reduce-transforms@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29"
+ integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==
+ dependencies:
+ cssnano-util-get-match "^4.0.0"
+ has "^1.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+postcss-rtl@1.7.3:
+ version "1.7.3"
+ resolved "https://registry.yarnpkg.com/postcss-rtl/-/postcss-rtl-1.7.3.tgz#5019bf2826e90972fba8ad061c7f80d43c817bfb"
+ integrity sha512-PMwlrQSeZKChNJQGtWz9Xfk3rY1W7P5Jp4sFRXVufczQIH6vRhTNSc5gnEwKHaWrU8SMoZMi2VY7ihOmwVvW7g==
+ dependencies:
+ rtlcss "2.5.0"
+
+postcss-selector-parser@^3.0.0:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270"
+ integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==
+ dependencies:
+ dot-prop "^5.2.0"
+ indexes-of "^1.0.1"
+ uniq "^1.0.1"
+
+postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2:
+ version "6.0.6"
+ resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea"
+ integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==
+ dependencies:
+ cssesc "^3.0.0"
+ util-deprecate "^1.0.2"
+
+postcss-svgo@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e"
+ integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==
+ dependencies:
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+ svgo "^1.0.0"
+
+postcss-unique-selectors@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac"
+ integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==
+ dependencies:
+ alphanum-sort "^1.0.0"
+ postcss "^7.0.0"
+ uniqs "^2.0.0"
+
+postcss-value-parser@^3.0.0:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
+ integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
+
+postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
+ integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
+
+postcss@^6.0.23:
+ version "6.0.23"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324"
+ integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==
+ dependencies:
+ chalk "^2.4.1"
+ source-map "^0.6.1"
+ supports-color "^5.4.0"
+
+postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.36, postcss@^7.0.5, postcss@^7.0.6:
+ version "7.0.36"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.36.tgz#056f8cffa939662a8f5905950c07d5285644dfcb"
+ integrity sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==
+ dependencies:
+ chalk "^2.4.2"
+ source-map "^0.6.1"
+ supports-color "^6.1.0"
+
+preact@^10.0.5:
+ version "10.5.14"
+ resolved "https://registry.yarnpkg.com/preact/-/preact-10.5.14.tgz#0b14a2eefba3c10a57116b90d1a65f5f00cd2701"
+ integrity sha512-KojoltCrshZ099ksUZ2OQKfbH66uquFoxHSbnwKbTJHeQNvx42EmC7wQVWNuDt6vC5s3nudRHFtKbpY4ijKlaQ==
+
+prebuild-install@^6.1.2:
+ version "6.1.3"
+ resolved "https://registry.nlark.com/prebuild-install/download/prebuild-install-6.1.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fprebuild-install%2Fdownload%2Fprebuild-install-6.1.3.tgz#8ea1f9d7386a0b30f7ef20247e36f8b2b82825a2"
+ integrity sha1-jqH51zhqCzD37yAkfjb4srgoJaI=
+ dependencies:
+ detect-libc "^1.0.3"
+ expand-template "^2.0.3"
+ github-from-package "0.0.0"
+ minimist "^1.2.3"
+ mkdirp-classic "^0.5.3"
+ napi-build-utils "^1.0.1"
+ node-abi "^2.21.0"
+ npmlog "^4.0.1"
+ pump "^3.0.0"
+ rc "^1.2.7"
+ simple-get "^3.0.3"
+ tar-fs "^2.0.0"
+ tunnel-agent "^0.6.0"
+
+prelude-ls@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+ integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
+
+prepend-http@^1.0.0, prepend-http@^1.0.1:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
+ integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=
+
+prepend-http@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.nlark.com/prepend-http/download/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
+ integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=
+
+prettier@^1.18.2:
+ version "1.19.1"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
+ integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
+
+pretty-error@^2.0.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6"
+ integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==
+ dependencies:
+ lodash "^4.17.20"
+ renderkid "^2.0.4"
+
+prismjs@1.19.0:
+ version "1.19.0"
+ resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.19.0.tgz#713afbd45c3baca4b321569f2df39e17e729d4dc"
+ integrity sha512-IVFtbW9mCWm9eOIaEkNyo2Vl4NnEifis2GQ7/MLRG5TQe6t+4Sj9J5QWI9i3v+SS43uZBlCAOn+zYTVYQcPXJw==
+ optionalDependencies:
+ clipboard "^2.0.0"
+
+process-nextick-args@~2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+ integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
+process@^0.11.10:
+ version "0.11.10"
+ resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
+ integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
+
+progress@^2.0.0:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
+ integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
+
+promise-inflight@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
+ integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
+
+proto-list@~1.2.1:
+ version "1.2.4"
+ resolved "https://registry.npm.taobao.org/proto-list/download/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
+ integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=
+
+proxy-addr@~2.0.5:
+ version "2.0.7"
+ resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
+ integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
+ dependencies:
+ forwarded "0.2.0"
+ ipaddr.js "1.9.1"
+
+prr@~1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
+ integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=
+
+pseudomap@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
+ integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
+
+psl@^1.1.28:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
+ integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
+
+public-encrypt@^4.0.0:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
+ integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
+ dependencies:
+ bn.js "^4.1.0"
+ browserify-rsa "^4.0.0"
+ create-hash "^1.1.0"
+ parse-asn1 "^5.0.0"
+ randombytes "^2.0.1"
+ safe-buffer "^5.1.2"
+
+pump@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
+ integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
+pump@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
+ integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
+pumpify@^1.3.3:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce"
+ integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==
+ dependencies:
+ duplexify "^3.6.0"
+ inherits "^2.0.3"
+ pump "^2.0.0"
+
+punycode@1.3.2:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
+ integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
+
+punycode@^1.2.4:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+ integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
+
+punycode@^2.1.0, punycode@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
+ integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
+
+pupa@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.nlark.com/pupa/download/pupa-2.1.1.tgz?cache=0&sync_timestamp=1626170133238&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpupa%2Fdownload%2Fpupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62"
+ integrity sha1-9ej9SvwsXZeCj6pSNUnth0SiDWI=
+ dependencies:
+ escape-goat "^2.0.0"
+
+q@^1.1.2:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
+ integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
+
+qs@6.7.0:
+ version "6.7.0"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
+ integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
+
+qs@~6.5.2:
+ version "6.5.2"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
+ integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
+
+query-string@^4.1.0:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb"
+ integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s=
+ dependencies:
+ object-assign "^4.1.0"
+ strict-uri-encode "^1.0.0"
+
+query-string@^5.0.1:
+ version "5.1.1"
+ resolved "https://registry.nlark.com/query-string/download/query-string-5.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fquery-string%2Fdownload%2Fquery-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb"
+ integrity sha1-p4wBK3HBfgXy4/ojGd0zBoLvs8s=
+ dependencies:
+ decode-uri-component "^0.2.0"
+ object-assign "^4.1.0"
+ strict-uri-encode "^1.0.0"
+
+querystring-es3@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
+ integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=
+
+querystring@0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
+ integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
+
+querystringify@^2.1.1:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
+ integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
+
+queue-microtask@^1.2.2:
+ version "1.2.3"
+ resolved "https://registry.npm.taobao.org/queue-microtask/download/queue-microtask-1.2.3.tgz?cache=0&sync_timestamp=1616391471040&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqueue-microtask%2Fdownload%2Fqueue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
+ integrity sha1-SSkii7xyTfrEPg77BYyve2z7YkM=
+
+quick-lru@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.nlark.com/quick-lru/download/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
+ integrity sha1-NmST5rPkKjpoheLpnRj4D7eoyTI=
+
+quill-delta@^3.6.2:
+ version "3.6.3"
+ resolved "https://registry.yarnpkg.com/quill-delta/-/quill-delta-3.6.3.tgz#b19fd2b89412301c60e1ff213d8d860eac0f1032"
+ integrity sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==
+ dependencies:
+ deep-equal "^1.0.1"
+ extend "^3.0.2"
+ fast-diff "1.1.2"
+
+quill@^1.3.4:
+ version "1.3.7"
+ resolved "https://registry.yarnpkg.com/quill/-/quill-1.3.7.tgz#da5b2f3a2c470e932340cdbf3668c9f21f9286e8"
+ integrity sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==
+ dependencies:
+ clone "^2.1.1"
+ deep-equal "^1.0.1"
+ eventemitter3 "^2.0.3"
+ extend "^3.0.2"
+ parchment "^1.1.4"
+ quill-delta "^3.6.2"
+
+randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
+ integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
+ dependencies:
+ safe-buffer "^5.1.0"
+
+randomfill@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"
+ integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==
+ dependencies:
+ randombytes "^2.0.5"
+ safe-buffer "^5.1.0"
+
+range-parser@^1.2.1, range-parser@~1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
+ integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
+
+raw-body@2.4.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
+ integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==
+ dependencies:
+ bytes "3.1.0"
+ http-errors "1.7.2"
+ iconv-lite "0.4.24"
+ unpipe "1.0.0"
+
+rc@^1.2.7, rc@^1.2.8:
+ version "1.2.8"
+ resolved "https://registry.nlark.com/rc/download/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
+ integrity sha1-zZJL9SAKB1uDwYjNa54hG3/A0+0=
+ dependencies:
+ deep-extend "^0.6.0"
+ ini "~1.3.0"
+ minimist "^1.2.0"
+ strip-json-comments "~2.0.1"
+
+read-chunk@3.2.0:
+ version "3.2.0"
+ resolved "https://registry.npm.taobao.org/read-chunk/download/read-chunk-3.2.0.tgz#2984afe78ca9bfbbdb74b19387bf9e86289c16ca"
+ integrity sha1-KYSv54ypv7vbdLGTh7+ehiicFso=
+ dependencies:
+ pify "^4.0.1"
+ with-open-file "^0.1.6"
+
+read-pkg-up@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.nlark.com/read-pkg-up/download/read-pkg-up-1.0.1.tgz?cache=0&sync_timestamp=1618846971516&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
+ integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=
+ dependencies:
+ find-up "^1.0.0"
+ read-pkg "^1.0.0"
+
+read-pkg-up@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07"
+ integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=
+ dependencies:
+ find-up "^2.0.0"
+ read-pkg "^3.0.0"
+
+read-pkg@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.nlark.com/read-pkg/download/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
+ integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=
+ dependencies:
+ load-json-file "^1.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^1.0.0"
+
+read-pkg@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
+ integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=
+ dependencies:
+ load-json-file "^4.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^3.0.0"
+
+read-pkg@^5.1.1:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
+ integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==
+ dependencies:
+ "@types/normalize-package-data" "^2.4.0"
+ normalize-package-data "^2.5.0"
+ parse-json "^5.0.0"
+ type-fest "^0.6.0"
+
+"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
+ version "2.3.7"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
+ integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~2.0.0"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.1.1"
+ util-deprecate "~1.0.1"
+
+readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
+ integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
+ dependencies:
+ inherits "^2.0.3"
+ string_decoder "^1.1.1"
+ util-deprecate "^1.0.1"
+
+readable-web-to-node-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.nlark.com/readable-web-to-node-stream/download/readable-web-to-node-stream-2.0.0.tgz#751e632f466552ac0d5c440cc01470352f93c4b7"
+ integrity sha1-dR5jL0ZlUqwNXEQMwBRwNS+TxLc=
+
+readdirp@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
+ integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==
+ dependencies:
+ graceful-fs "^4.1.11"
+ micromatch "^3.1.10"
+ readable-stream "^2.0.2"
+
+readdirp@~3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
+ integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
+ dependencies:
+ picomatch "^2.2.1"
+
+redent@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.nlark.com/redent/download/redent-1.0.0.tgz?cache=0&sync_timestamp=1620069702182&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fredent%2Fdownload%2Fredent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
+ integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=
+ dependencies:
+ indent-string "^2.1.0"
+ strip-indent "^1.0.1"
+
+regenerate-unicode-properties@^8.2.0:
+ version "8.2.0"
+ resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec"
+ integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==
+ dependencies:
+ regenerate "^1.4.0"
+
+regenerate@^1.4.0:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
+ integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
+
+regenerator-runtime@^0.13.4:
+ version "0.13.7"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55"
+ integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==
+
+regenerator-transform@^0.14.2:
+ version "0.14.5"
+ resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4"
+ integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==
+ dependencies:
+ "@babel/runtime" "^7.8.4"
+
+regex-not@^1.0.0, regex-not@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
+ integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
+ dependencies:
+ extend-shallow "^3.0.2"
+ safe-regex "^1.1.0"
+
+regexp.prototype.flags@^1.2.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26"
+ integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+
+regexpp@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
+ integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
+
+regexpu-core@^4.7.1:
+ version "4.7.1"
+ resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6"
+ integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==
+ dependencies:
+ regenerate "^1.4.0"
+ regenerate-unicode-properties "^8.2.0"
+ regjsgen "^0.5.1"
+ regjsparser "^0.6.4"
+ unicode-match-property-ecmascript "^1.0.4"
+ unicode-match-property-value-ecmascript "^1.2.0"
+
+registry-auth-token@^4.0.0:
+ version "4.2.1"
+ resolved "https://registry.npm.taobao.org/registry-auth-token/download/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250"
+ integrity sha1-bXtABkQZGJcszV/tzUHcMix5slA=
+ dependencies:
+ rc "^1.2.8"
+
+registry-url@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.npm.taobao.org/registry-url/download/registry-url-5.1.0.tgz?cache=0&sync_timestamp=1618681893788&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregistry-url%2Fdownload%2Fregistry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009"
+ integrity sha1-6YM0tQ1UNLgRNrROxjjZwgCcUAk=
+ dependencies:
+ rc "^1.2.8"
+
+regjsgen@^0.5.1:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733"
+ integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==
+
+regjsparser@^0.6.4:
+ version "0.6.9"
+ resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6"
+ integrity sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==
+ dependencies:
+ jsesc "~0.5.0"
+
+relateurl@0.2.x:
+ version "0.2.7"
+ resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
+ integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
+
+remove-trailing-separator@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
+ integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
+
+renderkid@^2.0.4:
+ version "2.0.7"
+ resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609"
+ integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==
+ dependencies:
+ css-select "^4.1.3"
+ dom-converter "^0.2.0"
+ htmlparser2 "^6.1.0"
+ lodash "^4.17.21"
+ strip-ansi "^3.0.1"
+
+repeat-element@^1.1.2:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9"
+ integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==
+
+repeat-string@^1.6.1:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+ integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
+
+repeating@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.nlark.com/repeating/download/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
+ integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=
+ dependencies:
+ is-finite "^1.0.0"
+
+replace-ext@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/replace-ext/download/replace-ext-2.0.0.tgz#9471c213d22e1bcc26717cd6e50881d88f812b06"
+ integrity sha1-lHHCE9IuG8wmcXzW5QiB2I+BKwY=
+
+request@^2.88.2:
+ version "2.88.2"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
+ integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
+ dependencies:
+ aws-sign2 "~0.7.0"
+ aws4 "^1.8.0"
+ caseless "~0.12.0"
+ combined-stream "~1.0.6"
+ extend "~3.0.2"
+ forever-agent "~0.6.1"
+ form-data "~2.3.2"
+ har-validator "~5.1.3"
+ http-signature "~1.2.0"
+ is-typedarray "~1.0.0"
+ isstream "~0.1.2"
+ json-stringify-safe "~5.0.1"
+ mime-types "~2.1.19"
+ oauth-sign "~0.9.0"
+ performance-now "^2.1.0"
+ qs "~6.5.2"
+ safe-buffer "^5.1.2"
+ tough-cookie "~2.5.0"
+ tunnel-agent "^0.6.0"
+ uuid "^3.3.2"
+
+require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+ integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
+
+require-main-filename@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
+ integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
+
+requires-port@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
+ integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=
+
+resize-detector@^0.1.10:
+ version "0.1.10"
+ resolved "https://registry.yarnpkg.com/resize-detector/-/resize-detector-0.1.10.tgz#1da3f961aa5f914ccbcfd3752d52fd45beeb692c"
+ integrity sha512-iLcXC8A6Fb0DfA+TRiywrK/0A22bFqkhntjMJMEzXDA4XkcEkfwpNbv7W8iewUiD0xYIaeiXOfiEehTqGKsUFw==
+
+resolve-alpn@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.npm.taobao.org/resolve-alpn/download/resolve-alpn-1.1.2.tgz#30b60cfbb0c0b8dc897940fe13fe255afcdd4d28"
+ integrity sha1-MLYM+7DAuNyJeUD+E/4lWvzdTSg=
+
+resolve-cwd@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
+ integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=
+ dependencies:
+ resolve-from "^3.0.0"
+
+resolve-from@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
+ integrity sha1-six699nWiBvItuZTM17rywoYh0g=
+
+resolve-from@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+ integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+
+resolve-url@^0.2.1:
+ version "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.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.20.0:
+ version "1.20.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
+ integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
+ dependencies:
+ is-core-module "^2.2.0"
+ path-parse "^1.0.6"
+
+responselike@1.0.2, responselike@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npm.taobao.org/responselike/download/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7"
+ integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=
+ dependencies:
+ lowercase-keys "^1.0.0"
+
+responselike@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/responselike/download/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723"
+ integrity sha1-JjkbzDF091D5p56sxAoSpcQtdyM=
+ dependencies:
+ lowercase-keys "^2.0.0"
+
+restore-cursor@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
+ integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368=
+ dependencies:
+ onetime "^2.0.0"
+ signal-exit "^3.0.2"
+
+restore-cursor@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
+ integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
+ dependencies:
+ onetime "^5.1.0"
+ signal-exit "^3.0.2"
+
+ret@~0.1.10:
+ version "0.1.15"
+ resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
+ integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
+
+retry@^0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
+ integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=
+
+reusify@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npm.taobao.org/reusify/download/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
+ integrity sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=
+
+rgb-regex@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1"
+ integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE=
+
+rgba-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
+ integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
+
+rimraf@2.6.3:
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
+ integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
+ dependencies:
+ glob "^7.1.3"
+
+rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
+ integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
+ dependencies:
+ glob "^7.1.3"
+
+ripemd160@^2.0.0, ripemd160@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
+ integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==
+ dependencies:
+ hash-base "^3.0.0"
+ inherits "^2.0.1"
+
+rtlcss@2.5.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/rtlcss/-/rtlcss-2.5.0.tgz#455549e49113f9e1cf83169a44de526c816de8a4"
+ integrity sha512-NCVdF45w70/3CQeqVvQ84bu2HN8agNn+CDjw+RxXaiWb7mPOmEvltdd1z4qzm9kin4Jnu9ShFBIx28yvWerZ2g==
+ dependencies:
+ chalk "^2.4.2"
+ findup "^0.1.5"
+ mkdirp "^0.5.1"
+ postcss "^6.0.23"
+ strip-json-comments "^2.0.0"
+
+run-async@^2.4.0:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
+ integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
+
+run-parallel@^1.1.9:
+ version "1.2.0"
+ resolved "https://registry.nlark.com/run-parallel/download/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
+ integrity sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=
+ dependencies:
+ queue-microtask "^1.2.2"
+
+run-queue@^1.0.0, run-queue@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
+ integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=
+ dependencies:
+ aproba "^1.1.1"
+
+rxjs@^6.6.0, rxjs@^6.6.6:
+ version "6.6.7"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9"
+ integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==
+ dependencies:
+ tslib "^1.9.0"
+
+safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
+safe-regex@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
+ integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
+ dependencies:
+ ret "~0.1.10"
+
+"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+sass-loader@^10.1.0:
+ version "10.2.0"
+ resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.2.0.tgz#3d64c1590f911013b3fa48a0b22a83d5e1494716"
+ integrity sha512-kUceLzC1gIHz0zNJPpqRsJyisWatGYNFRmv2CKZK2/ngMJgLqxTbXwe/hJ85luyvZkgqU3VlJ33UVF2T/0g6mw==
+ dependencies:
+ klona "^2.0.4"
+ loader-utils "^2.0.0"
+ neo-async "^2.6.2"
+ schema-utils "^3.0.0"
+ semver "^7.3.2"
+
+sass@1.32.*:
+ version "1.32.13"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.13.tgz#8d29c849e625a415bce71609c7cf95e15f74ed00"
+ integrity sha512-dEgI9nShraqP7cXQH+lEXVf73WOPCse0QlFzSD8k+1TcOxCMwVXfQlr0jtoluZysQOyJGnfr21dLvYKDJq8HkA==
+ dependencies:
+ chokidar ">=3.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"
+ integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
+
+schema-utils@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
+ integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==
+ dependencies:
+ ajv "^6.1.0"
+ ajv-errors "^1.0.0"
+ ajv-keywords "^3.1.0"
+
+schema-utils@^2.0.0, schema-utils@^2.5.0, schema-utils@^2.6.5, schema-utils@^2.7.0:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7"
+ integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==
+ dependencies:
+ "@types/json-schema" "^7.0.5"
+ ajv "^6.12.4"
+ ajv-keywords "^3.5.2"
+
+schema-utils@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.0.tgz#95986eb604f66daadeed56e379bfe7a7f963cdb9"
+ integrity sha512-tTEaeYkyIhEZ9uWgAjDerWov3T9MgX8dhhy2r0IGeeX4W8ngtGl1++dUve/RUqzuaASSh7shwCDJjEzthxki8w==
+ dependencies:
+ "@types/json-schema" "^7.0.7"
+ ajv "^6.12.5"
+ ajv-keywords "^3.5.2"
+
+seek-bzip@^1.0.5:
+ version "1.0.6"
+ resolved "https://registry.npm.taobao.org/seek-bzip/download/seek-bzip-1.0.6.tgz#35c4171f55a680916b52a07859ecf3b5857f21c4"
+ integrity sha1-NcQXH1WmgJFrUqB4WezztYV/IcQ=
+ dependencies:
+ commander "^2.8.1"
+
+select-hose@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
+ integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=
+
+select@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d"
+ integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=
+
+selfsigned@^1.10.8:
+ version "1.10.11"
+ resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9"
+ integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==
+ dependencies:
+ node-forge "^0.10.0"
+
+semver-diff@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.nlark.com/semver-diff/download/semver-diff-3.1.1.tgz?cache=0&sync_timestamp=1620044887257&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsemver-diff%2Fdownload%2Fsemver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b"
+ integrity sha1-Bfd85Z8yXgDicGr9Z7tQbdscoys=
+ dependencies:
+ semver "^6.3.0"
+
+semver-regex@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.nlark.com/semver-regex/download/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338"
+ integrity sha1-qTwsWERTmncCMzeRB7OMe0rJ0zg=
+
+semver-truncate@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.nlark.com/semver-truncate/download/semver-truncate-1.1.2.tgz#57f41de69707a62709a7e0104ba2117109ea47e8"
+ integrity sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=
+ dependencies:
+ semver "^5.3.0"
+
+"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1:
+ version "5.7.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
+ integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
+
+semver@7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
+ integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
+
+semver@7.3.5, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5:
+ version "7.3.5"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
+ integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
+ dependencies:
+ lru-cache "^6.0.0"
+
+semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
+ integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+
+send@0.17.1:
+ version "0.17.1"
+ resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
+ integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==
+ dependencies:
+ debug "2.6.9"
+ depd "~1.1.2"
+ destroy "~1.0.4"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ etag "~1.8.1"
+ fresh "0.5.2"
+ http-errors "~1.7.2"
+ mime "1.6.0"
+ ms "2.1.1"
+ on-finished "~2.3.0"
+ range-parser "~1.2.1"
+ statuses "~1.5.0"
+
+serialize-javascript@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa"
+ integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==
+ dependencies:
+ randombytes "^2.1.0"
+
+serve-index@^1.9.1:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
+ integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=
+ dependencies:
+ accepts "~1.3.4"
+ batch "0.6.1"
+ debug "2.6.9"
+ escape-html "~1.0.3"
+ http-errors "~1.6.2"
+ mime-types "~2.1.17"
+ parseurl "~1.3.2"
+
+serve-static@1.14.1:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
+ integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==
+ dependencies:
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ parseurl "~1.3.3"
+ send "0.17.1"
+
+set-blocking@^2.0.0, set-blocking@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+ integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
+
+set-value@^2.0.0, set-value@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
+ integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-extendable "^0.1.1"
+ is-plain-object "^2.0.3"
+ split-string "^3.0.1"
+
+setimmediate@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
+ integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
+
+setprototypeof@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
+ integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==
+
+setprototypeof@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
+ integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
+
+sha.js@^2.4.0, sha.js@^2.4.8:
+ version "2.4.11"
+ resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
+ integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==
+ dependencies:
+ inherits "^2.0.1"
+ safe-buffer "^5.0.1"
+
+sharp@0.28.3:
+ version "0.28.3"
+ resolved "https://registry.nlark.com/sharp/download/sharp-0.28.3.tgz?cache=0&sync_timestamp=1621876609161&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsharp%2Fdownload%2Fsharp-0.28.3.tgz#ecd74cefd020bee4891bb137c9850ee2ce277a8b"
+ integrity sha1-7NdM79AgvuSJG7E3yYUO4s4neos=
+ dependencies:
+ color "^3.1.3"
+ detect-libc "^1.0.3"
+ node-addon-api "^3.2.0"
+ prebuild-install "^6.1.2"
+ semver "^7.3.5"
+ simple-get "^3.1.0"
+ tar-fs "^2.1.1"
+ tunnel-agent "^0.6.0"
+
+shebang-command@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+ integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
+ dependencies:
+ shebang-regex "^1.0.0"
+
+shebang-command@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
+ integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
+ dependencies:
+ shebang-regex "^3.0.0"
+
+shebang-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+ integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
+
+shebang-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
+ integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+
+shell-quote@^1.6.1:
+ version "1.7.2"
+ resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2"
+ integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==
+
+sift@^13.0.0:
+ version "13.5.4"
+ resolved "https://registry.yarnpkg.com/sift/-/sift-13.5.4.tgz#7b2a67f724c8b2fca121fcfdef4011bb1ea4e3ef"
+ integrity sha512-J/d0r/MJlD7vG3j6FZI3/KnN+MxEmPUx2nyKNawysbl2ktisEnAWI5j0AgHM19p4xFA2vDXve4i8TQYYfi9O6Q==
+
+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"
+ integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
+
+simple-concat@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.nlark.com/simple-concat/download/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f"
+ integrity sha1-9Gl2CCujXCJj8cirXt/ibEHJVS8=
+
+simple-get@^3.0.3, simple-get@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npm.taobao.org/simple-get/download/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3"
+ integrity sha1-tFvgYkNeUNFZVAtXYgLO7EC5xrM=
+ dependencies:
+ decompress-response "^4.2.0"
+ once "^1.3.1"
+ simple-concat "^1.0.0"
+
+simple-swizzle@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
+ integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
+ dependencies:
+ is-arrayish "^0.3.1"
+
+slash@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
+ integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=
+
+slash@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
+ integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
+
+slash@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.nlark.com/slash/download/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
+ integrity sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=
+
+slice-ansi@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
+ integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
+ dependencies:
+ ansi-styles "^3.2.0"
+ astral-regex "^1.0.0"
+ is-fullwidth-code-point "^2.0.0"
+
+snapdragon-node@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
+ integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
+ dependencies:
+ define-property "^1.0.0"
+ isobject "^3.0.0"
+ snapdragon-util "^3.0.1"
+
+snapdragon-util@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
+ integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
+ dependencies:
+ kind-of "^3.2.0"
+
+snapdragon@^0.8.1:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
+ integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
+ dependencies:
+ base "^0.11.1"
+ debug "^2.2.0"
+ define-property "^0.2.5"
+ extend-shallow "^2.0.1"
+ map-cache "^0.2.2"
+ source-map "^0.5.6"
+ source-map-resolve "^0.5.0"
+ use "^3.1.0"
+
+sockjs-client@^1.5.0:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.1.tgz#256908f6d5adfb94dabbdbd02c66362cca0f9ea6"
+ integrity sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ==
+ dependencies:
+ debug "^3.2.6"
+ eventsource "^1.0.7"
+ faye-websocket "^0.11.3"
+ inherits "^2.0.4"
+ json3 "^3.3.3"
+ url-parse "^1.5.1"
+
+sockjs@^0.3.21:
+ version "0.3.21"
+ resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417"
+ integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==
+ dependencies:
+ faye-websocket "^0.11.3"
+ uuid "^3.4.0"
+ websocket-driver "^0.7.4"
+
+sort-keys-length@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npm.taobao.org/sort-keys-length/download/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188"
+ integrity sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=
+ dependencies:
+ sort-keys "^1.0.0"
+
+sort-keys@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad"
+ integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0=
+ dependencies:
+ is-plain-obj "^1.0.0"
+
+sort-keys@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.nlark.com/sort-keys/download/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128"
+ integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=
+ dependencies:
+ is-plain-obj "^1.0.0"
+
+sortablejs@1.10.2:
+ version "1.10.2"
+ resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.10.2.tgz#6e40364d913f98b85a14f6678f92b5c1221f5290"
+ integrity sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A==
+
+source-list-map@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
+ integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
+
+source-map-resolve@^0.5.0:
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
+ integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
+ dependencies:
+ atob "^2.1.2"
+ decode-uri-component "^0.2.0"
+ resolve-url "^0.2.1"
+ source-map-url "^0.4.0"
+ urix "^0.1.0"
+
+source-map-support@~0.5.12:
+ version "0.5.19"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
+ integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
+
+source-map-url@^0.4.0:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56"
+ integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==
+
+source-map@^0.5.0, source-map@^0.5.6:
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+ integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
+
+source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+source-map@^0.7.3:
+ version "0.7.3"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
+ integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
+
+spdx-correct@^3.0.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
+ integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==
+ dependencies:
+ spdx-expression-parse "^3.0.0"
+ spdx-license-ids "^3.0.0"
+
+spdx-exceptions@^2.1.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
+ integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
+
+spdx-expression-parse@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
+ integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
+ dependencies:
+ spdx-exceptions "^2.1.0"
+ spdx-license-ids "^3.0.0"
+
+spdx-license-ids@^3.0.0:
+ version "3.0.9"
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f"
+ integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==
+
+spdy-transport@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31"
+ integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==
+ dependencies:
+ debug "^4.1.0"
+ detect-node "^2.0.4"
+ hpack.js "^2.1.6"
+ obuf "^1.1.2"
+ readable-stream "^3.0.6"
+ wbuf "^1.7.3"
+
+spdy@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b"
+ integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==
+ dependencies:
+ debug "^4.1.0"
+ handle-thing "^2.0.0"
+ http-deceiver "^1.2.7"
+ select-hose "^2.0.0"
+ spdy-transport "^3.0.0"
+
+split-string@^3.0.1, split-string@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
+ integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
+ dependencies:
+ extend-shallow "^3.0.0"
+
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+ integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
+
+squeak@^1.0.0:
+ version "1.3.0"
+ resolved "https://registry.npm.taobao.org/squeak/download/squeak-1.3.0.tgz#33045037b64388b567674b84322a6521073916c3"
+ integrity sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM=
+ dependencies:
+ chalk "^1.0.0"
+ console-stream "^0.1.1"
+ lpad-align "^1.0.1"
+
+sshpk@^1.7.0:
+ version "1.16.1"
+ resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
+ integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
+ dependencies:
+ asn1 "~0.2.3"
+ assert-plus "^1.0.0"
+ bcrypt-pbkdf "^1.0.0"
+ dashdash "^1.12.0"
+ ecc-jsbn "~0.1.1"
+ getpass "^0.1.1"
+ jsbn "~0.1.0"
+ safer-buffer "^2.0.2"
+ tweetnacl "~0.14.0"
+
+ssr-window@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ssr-window/-/ssr-window-2.0.0.tgz#98c301aef99523317f8d69618f0010791096efc4"
+ integrity sha512-NXzN+/HPObKAx191H3zKlYomE5WrVIkoCB5IaSdvKokxTpjBdWfr0RaP+1Z5KOfDT0ZVz+2tdtiBkhsEQ9p+0A==
+
+ssri@^6.0.1:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5"
+ integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==
+ dependencies:
+ figgy-pudding "^3.5.1"
+
+ssri@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af"
+ integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==
+ dependencies:
+ minipass "^3.1.1"
+
+stable@^0.1.8:
+ version "0.1.8"
+ resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
+ integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
+
+stackframe@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303"
+ integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==
+
+static-extend@^0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
+ integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
+ dependencies:
+ define-property "^0.2.5"
+ object-copy "^0.1.0"
+
+"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
+ integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
+
+stream-browserify@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b"
+ integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==
+ dependencies:
+ inherits "~2.0.1"
+ readable-stream "^2.0.2"
+
+stream-each@^1.1.0:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae"
+ integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==
+ dependencies:
+ end-of-stream "^1.1.0"
+ stream-shift "^1.0.0"
+
+stream-http@^2.7.2:
+ version "2.8.3"
+ resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc"
+ integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==
+ dependencies:
+ builtin-status-codes "^3.0.0"
+ inherits "^2.0.1"
+ readable-stream "^2.3.6"
+ to-arraybuffer "^1.0.0"
+ xtend "^4.0.0"
+
+stream-shift@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
+ integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
+
+strict-uri-encode@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
+ integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=
+
+string-width@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.nlark.com/string-width/download/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+ integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
+ dependencies:
+ code-point-at "^1.0.0"
+ is-fullwidth-code-point "^1.0.0"
+ strip-ansi "^3.0.0"
+
+"string-width@^1.0.2 || 2", string-width@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+ integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^4.0.0"
+
+string-width@^3.0.0, string-width@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
+ integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
+ dependencies:
+ emoji-regex "^7.0.1"
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^5.1.0"
+
+string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0:
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5"
+ integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.0"
+
+string.prototype.trimend@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80"
+ integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+
+string.prototype.trimstart@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed"
+ integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+
+string_decoder@^1.0.0, string_decoder@^1.1.1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
+ integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+ dependencies:
+ safe-buffer "~5.2.0"
+
+string_decoder@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+ integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+ dependencies:
+ safe-buffer "~5.1.0"
+
+strip-ansi@^3.0.0, strip-ansi@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+ integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
+ dependencies:
+ ansi-regex "^2.0.0"
+
+strip-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+ integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
+ dependencies:
+ ansi-regex "^3.0.0"
+
+strip-ansi@^5, strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
+ integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
+ dependencies:
+ ansi-regex "^4.1.0"
+
+strip-ansi@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
+ integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
+ dependencies:
+ ansi-regex "^5.0.0"
+
+strip-bom@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.nlark.com/strip-bom/download/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
+ integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=
+ dependencies:
+ is-utf8 "^0.2.0"
+
+strip-bom@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+ integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
+
+strip-dirs@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npm.taobao.org/strip-dirs/download/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5"
+ integrity sha1-SYdzYmT8NEzyD2w0rKnRPR1O1sU=
+ dependencies:
+ is-natural-number "^4.0.1"
+
+strip-eof@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+ integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
+
+strip-final-newline@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
+ integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+
+strip-indent@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.nlark.com/strip-indent/download/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
+ integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=
+ dependencies:
+ get-stdin "^4.0.1"
+
+strip-indent@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68"
+ integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=
+
+strip-json-comments@^2.0.0, strip-json-comments@~2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+ integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
+
+strip-json-comments@^3.0.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
+ integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+
+strip-outer@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npm.taobao.org/strip-outer/download/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631"
+ integrity sha1-sv0qv2YEudHmATBXGV34Nrip1jE=
+ dependencies:
+ escape-string-regexp "^1.0.2"
+
+strtok3@^6.0.3:
+ version "6.1.3"
+ resolved "https://registry.nlark.com/strtok3/download/strtok3-6.1.3.tgz#488fe8ca91664cf93432c94752ba9e5c785bd9dd"
+ integrity sha1-SI/oypFmTPk0MslHUrqeXHhb2d0=
+ dependencies:
+ "@tokenizer/token" "^0.1.1"
+ peek-readable "^3.1.4"
+
+stylehacks@^4.0.0:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5"
+ integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==
+ dependencies:
+ browserslist "^4.0.0"
+ postcss "^7.0.0"
+ postcss-selector-parser "^3.0.0"
+
+supports-color@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.nlark.com/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+ integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
+
+supports-color@^5.3.0, supports-color@^5.4.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+ dependencies:
+ has-flag "^3.0.0"
+
+supports-color@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
+ integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==
+ dependencies:
+ has-flag "^3.0.0"
+
+supports-color@^7.1.0:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
+ integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
+ dependencies:
+ has-flag "^4.0.0"
+
+svg-tags@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
+ integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=
+
+svg.draggable.js@^2.2.2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz#c514a2f1405efb6f0263e7958f5b68fce50603ba"
+ integrity sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==
+ dependencies:
+ svg.js "^2.0.1"
+
+svg.easing.js@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/svg.easing.js/-/svg.easing.js-2.0.0.tgz#8aa9946b0a8e27857a5c40a10eba4091e5691f12"
+ integrity sha1-iqmUawqOJ4V6XEChDrpAkeVpHxI=
+ dependencies:
+ svg.js ">=2.3.x"
+
+svg.filter.js@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/svg.filter.js/-/svg.filter.js-2.0.2.tgz#91008e151389dd9230779fcbe6e2c9a362d1c203"
+ integrity sha1-kQCOFROJ3ZIwd5/L5uLJo2LRwgM=
+ dependencies:
+ svg.js "^2.2.5"
+
+svg.js@>=2.3.x, svg.js@^2.0.1, svg.js@^2.2.5, svg.js@^2.4.0, svg.js@^2.6.5:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/svg.js/-/svg.js-2.7.1.tgz#eb977ed4737001eab859949b4a398ee1bb79948d"
+ integrity sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==
+
+svg.pathmorphing.js@^0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz#c25718a1cc7c36e852ecabc380e758ac09bb2b65"
+ integrity sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==
+ dependencies:
+ svg.js "^2.4.0"
+
+svg.resize.js@^1.4.3:
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/svg.resize.js/-/svg.resize.js-1.4.3.tgz#885abd248e0cd205b36b973c4b578b9a36f23332"
+ integrity sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==
+ dependencies:
+ svg.js "^2.6.5"
+ svg.select.js "^2.1.2"
+
+svg.select.js@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/svg.select.js/-/svg.select.js-2.1.2.tgz#e41ce13b1acff43a7441f9f8be87a2319c87be73"
+ integrity sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==
+ dependencies:
+ svg.js "^2.2.5"
+
+svg.select.js@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/svg.select.js/-/svg.select.js-3.0.1.tgz#a4198e359f3825739226415f82176a90ea5cc917"
+ integrity sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==
+ dependencies:
+ svg.js "^2.6.5"
+
+svgo@^1.0.0:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167"
+ integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==
+ dependencies:
+ chalk "^2.4.1"
+ coa "^2.0.2"
+ css-select "^2.0.0"
+ css-select-base-adapter "^0.1.1"
+ css-tree "1.0.0-alpha.37"
+ csso "^4.0.2"
+ js-yaml "^3.13.1"
+ mkdirp "~0.5.1"
+ object.values "^1.1.0"
+ sax "~1.2.4"
+ stable "^0.1.8"
+ unquote "~1.1.1"
+ util.promisify "~1.0.0"
+
+sweetalert2@10.x:
+ version "10.16.9"
+ resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-10.16.9.tgz#8ed86f2fa811a136667a48357e204348705be8c9"
+ integrity sha512-oNe+md5tmmS3fGfVHa7gVPlun7Td2oANSacnZCeghnrr3OHBi6UPVPU+GFrymwaDqwQspACilLRmRnM7aTjNPA==
+
+swiper@5.4.5:
+ version "5.4.5"
+ resolved "https://registry.yarnpkg.com/swiper/-/swiper-5.4.5.tgz#a350f654bf68426dbb651793824925512d223c0f"
+ integrity sha512-7QjA0XpdOmiMoClfaZ2lYN6ICHcMm72LXiY+NF4fQLFidigameaofvpjEEiTQuw3xm5eksG5hzkaRsjQX57vtA==
+ dependencies:
+ dom7 "^2.1.5"
+ ssr-window "^2.0.0"
+
+table@^5.2.3:
+ version "5.4.6"
+ resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e"
+ integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==
+ dependencies:
+ ajv "^6.10.2"
+ lodash "^4.17.14"
+ slice-ansi "^2.1.0"
+ string-width "^3.0.0"
+
+tapable@^0.1.8:
+ version "0.1.10"
+ resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4"
+ integrity sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=
+
+tapable@^1.0.0, tapable@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
+ integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
+
+tar-fs@^2.0.0, tar-fs@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.nlark.com/tar-fs/download/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784"
+ integrity sha1-SJoVq4Xx8L76uzcLfeT561y+h4Q=
+ dependencies:
+ chownr "^1.1.1"
+ mkdirp-classic "^0.5.2"
+ pump "^3.0.0"
+ tar-stream "^2.1.4"
+
+tar-stream@^1.5.2:
+ version "1.6.2"
+ resolved "https://registry.npm.taobao.org/tar-stream/download/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555"
+ integrity sha1-jqVdqzeXIlPZqa+Q/c1VmuQ1xVU=
+ dependencies:
+ bl "^1.0.0"
+ buffer-alloc "^1.2.0"
+ end-of-stream "^1.0.0"
+ fs-constants "^1.0.0"
+ readable-stream "^2.3.0"
+ to-buffer "^1.1.1"
+ xtend "^4.0.0"
+
+tar-stream@^2.1.4:
+ version "2.2.0"
+ resolved "https://registry.npm.taobao.org/tar-stream/download/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
+ integrity sha1-rK2EwoQTawYNw/qmRHSqmuvXcoc=
+ dependencies:
+ bl "^4.0.3"
+ end-of-stream "^1.4.1"
+ fs-constants "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^3.1.1"
+
+temp-dir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npm.taobao.org/temp-dir/download/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d"
+ integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=
+
+tempfile@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.nlark.com/tempfile/download/tempfile-2.0.0.tgz?cache=0&sync_timestamp=1623137926951&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftempfile%2Fdownload%2Ftempfile-2.0.0.tgz#6b0446856a9b1114d1856ffcbe509cccb0977265"
+ integrity sha1-awRGhWqbERTRhW/8vlCczLCXcmU=
+ dependencies:
+ temp-dir "^1.0.0"
+ uuid "^3.0.1"
+
+terser-webpack-plugin@^1.4.3, terser-webpack-plugin@^1.4.4:
+ version "1.4.5"
+ resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b"
+ integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==
+ dependencies:
+ cacache "^12.0.2"
+ find-cache-dir "^2.1.0"
+ is-wsl "^1.1.0"
+ schema-utils "^1.0.0"
+ serialize-javascript "^4.0.0"
+ source-map "^0.6.1"
+ terser "^4.1.2"
+ webpack-sources "^1.4.0"
+ worker-farm "^1.7.0"
+
+terser@^4.1.2:
+ version "4.8.0"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17"
+ integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==
+ dependencies:
+ commander "^2.20.0"
+ source-map "~0.6.1"
+ source-map-support "~0.5.12"
+
+text-table@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+ integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
+
+thenify-all@^1.0.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
+ integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=
+ dependencies:
+ thenify ">= 3.1.0 < 4"
+
+"thenify@>= 3.1.0 < 4":
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f"
+ integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==
+ dependencies:
+ any-promise "^1.0.0"
+
+thread-loader@^2.1.3:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/thread-loader/-/thread-loader-2.1.3.tgz#cbd2c139fc2b2de6e9d28f62286ab770c1acbdda"
+ integrity sha512-wNrVKH2Lcf8ZrWxDF/khdlLlsTMczdcwPA9VEK4c2exlEPynYWxi9op3nPTo5lAnDIkE0rQEB3VBP+4Zncc9Hg==
+ dependencies:
+ loader-runner "^2.3.1"
+ loader-utils "^1.1.0"
+ neo-async "^2.6.0"
+
+through2@^2.0.0:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
+ integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
+ dependencies:
+ readable-stream "~2.3.6"
+ xtend "~4.0.1"
+
+through@^2.3.6, through@^2.3.8:
+ version "2.3.8"
+ resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+ integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
+
+thunky@^1.0.2:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d"
+ integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==
+
+timed-out@^4.0.0, timed-out@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.nlark.com/timed-out/download/timed-out-4.0.1.tgz?cache=0&sync_timestamp=1619073467606&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftimed-out%2Fdownload%2Ftimed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
+ integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=
+
+timers-browserify@^2.0.4:
+ version "2.0.12"
+ resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee"
+ integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==
+ dependencies:
+ setimmediate "^1.0.4"
+
+timsort@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
+ integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
+
+tiny-emitter@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
+ integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==
+
+tmp@^0.0.33:
+ version "0.0.33"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
+ integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
+ dependencies:
+ os-tmpdir "~1.0.2"
+
+to-arraybuffer@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
+ integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=
+
+to-buffer@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npm.taobao.org/to-buffer/download/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80"
+ integrity sha1-STvUj2LXxD/N7TE6A9ytsuEhOoA=
+
+to-fast-properties@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
+ integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
+
+to-object-path@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
+ integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
+ dependencies:
+ kind-of "^3.0.2"
+
+to-readable-stream@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.nlark.com/to-readable-stream/download/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771"
+ integrity sha1-zgqgwvPfat+FLvtASng+d8BHV3E=
+
+to-regex-range@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
+ integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
+ dependencies:
+ is-number "^3.0.0"
+ repeat-string "^1.6.1"
+
+to-regex-range@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ dependencies:
+ is-number "^7.0.0"
+
+to-regex@^3.0.1, to-regex@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
+ integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
+ dependencies:
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ regex-not "^1.0.2"
+ safe-regex "^1.1.0"
+
+toidentifier@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
+ integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
+
+token-types@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.nlark.com/token-types/download/token-types-2.1.1.tgz#bd585d64902aaf720b8979d257b4b850b4d45c45"
+ integrity sha1-vVhdZJAqr3ILiXnSV7S4ULTUXEU=
+ dependencies:
+ "@tokenizer/token" "^0.1.1"
+ ieee754 "^1.2.1"
+
+toposort@^1.0.0:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029"
+ integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk=
+
+tough-cookie@~2.5.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
+ integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
+ dependencies:
+ psl "^1.1.28"
+ punycode "^2.1.1"
+
+trim-newlines@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.nlark.com/trim-newlines/download/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
+ integrity sha1-WIeWa7WCpFA6QetST301ARgVphM=
+
+trim-repeated@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.nlark.com/trim-repeated/download/trim-repeated-1.0.0.tgz?cache=0&sync_timestamp=1619005347796&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftrim-repeated%2Fdownload%2Ftrim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21"
+ integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE=
+ dependencies:
+ escape-string-regexp "^1.0.2"
+
+tryer@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8"
+ integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==
+
+ts-pnp@^1.1.6:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92"
+ integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==
+
+tsconfig-paths@^3.9.0:
+ version "3.10.1"
+ resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.10.1.tgz#79ae67a68c15289fdf5c51cb74f397522d795ed7"
+ integrity sha512-rETidPDgCpltxF7MjBZlAFPUHv5aHH2MymyPvh+vEyWAED4Eb/WeMbsnD/JDr4OKPOA1TssDHgIcpTN5Kh0p6Q==
+ dependencies:
+ json5 "^2.2.0"
+ minimist "^1.2.0"
+ strip-bom "^3.0.0"
+
+tslib@^1.9.0:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
+ integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
+
+tslib@^2.0.1, tslib@^2.1.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e"
+ integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
+
+tty-browserify@0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
+ integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=
+
+tunnel-agent@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
+ integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
+ dependencies:
+ safe-buffer "^5.0.1"
+
+tweetnacl@^0.14.3, tweetnacl@~0.14.0:
+ version "0.14.5"
+ resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
+ integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
+
+type-check@~0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
+ integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
+ dependencies:
+ prelude-ls "~1.1.2"
+
+type-fest@^0.20.2:
+ version "0.20.2"
+ resolved "https://registry.nlark.com/type-fest/download/type-fest-0.20.2.tgz?cache=0&sync_timestamp=1625745315038&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
+ integrity sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=
+
+type-fest@^0.21.3:
+ version "0.21.3"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
+ integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
+
+type-fest@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
+ integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==
+
+type-fest@^0.8.1:
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
+ integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
+
+type-is@~1.6.17, type-is@~1.6.18:
+ version "1.6.18"
+ resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
+ integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
+ dependencies:
+ media-typer "0.3.0"
+ mime-types "~2.1.24"
+
+typedarray-to-buffer@^3.1.5:
+ version "3.1.5"
+ resolved "https://registry.npm.taobao.org/typedarray-to-buffer/download/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
+ integrity sha1-qX7nqf9CaRufeD/xvFES/j/KkIA=
+ dependencies:
+ is-typedarray "^1.0.0"
+
+typedarray@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+ integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
+
+uglify-js@3.4.x:
+ version "3.4.10"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f"
+ integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==
+ dependencies:
+ commander "~2.19.0"
+ source-map "~0.6.1"
+
+unbox-primitive@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"
+ integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==
+ dependencies:
+ function-bind "^1.1.1"
+ has-bigints "^1.0.1"
+ has-symbols "^1.0.2"
+ which-boxed-primitive "^1.0.2"
+
+unbzip2-stream@^1.0.9:
+ version "1.4.3"
+ resolved "https://registry.nlark.com/unbzip2-stream/download/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7"
+ integrity sha1-sNoExDcTEd93HNwhXofyEwmRrOc=
+ dependencies:
+ buffer "^5.2.1"
+ through "^2.3.8"
+
+unicode-canonical-property-names-ecmascript@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
+ integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==
+
+unicode-match-property-ecmascript@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c"
+ integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==
+ dependencies:
+ unicode-canonical-property-names-ecmascript "^1.0.4"
+ unicode-property-aliases-ecmascript "^1.0.4"
+
+unicode-match-property-value-ecmascript@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531"
+ integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==
+
+unicode-property-aliases-ecmascript@^1.0.4:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4"
+ integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==
+
+union-value@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
+ integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
+ dependencies:
+ arr-union "^3.1.0"
+ get-value "^2.0.6"
+ is-extendable "^0.1.1"
+ set-value "^2.0.1"
+
+uniq@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
+ integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
+
+uniqs@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02"
+ integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI=
+
+unique-filename@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
+ integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==
+ dependencies:
+ unique-slug "^2.0.0"
+
+unique-slug@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c"
+ integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==
+ dependencies:
+ imurmurhash "^0.1.4"
+
+unique-string@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.nlark.com/unique-string/download/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d"
+ integrity sha1-OcZFH4GvsnSd4rIz4/fF6IQ72J0=
+ dependencies:
+ crypto-random-string "^2.0.0"
+
+universalify@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
+ integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+
+universalify@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npm.taobao.org/universalify/download/universalify-2.0.0.tgz?cache=0&sync_timestamp=1603180004159&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
+ integrity sha1-daSYTv7cSwiXXFrrc/Uw0C3yVxc=
+
+unpipe@1.0.0, unpipe@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
+ integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
+
+unquote@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544"
+ integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=
+
+unset-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
+ integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
+ dependencies:
+ has-value "^0.3.1"
+ isobject "^3.0.0"
+
+upath@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
+ integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
+
+update-notifier@5.1.0:
+ version "5.1.0"
+ resolved "https://registry.npm.taobao.org/update-notifier/download/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9"
+ integrity sha1-SrDXx/NqIx3XMWz3cpMT8CFNmtk=
+ dependencies:
+ boxen "^5.0.0"
+ chalk "^4.1.0"
+ configstore "^5.0.1"
+ has-yarn "^2.1.0"
+ import-lazy "^2.1.0"
+ is-ci "^2.0.0"
+ is-installed-globally "^0.4.0"
+ is-npm "^5.0.0"
+ is-yarn-global "^0.3.0"
+ latest-version "^5.1.0"
+ pupa "^2.1.1"
+ semver "^7.3.4"
+ semver-diff "^3.1.1"
+ xdg-basedir "^4.0.0"
+
+upper-case@^1.1.1:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598"
+ integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=
+
+uri-js@^4.2.2:
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+ integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+ dependencies:
+ punycode "^2.1.0"
+
+urix@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
+ integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
+
+url-loader@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-2.3.0.tgz#e0e2ef658f003efb8ca41b0f3ffbf76bab88658b"
+ integrity sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==
+ dependencies:
+ loader-utils "^1.2.3"
+ mime "^2.4.4"
+ schema-utils "^2.5.0"
+
+url-parse-lax@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.nlark.com/url-parse-lax/download/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73"
+ integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=
+ dependencies:
+ prepend-http "^1.0.1"
+
+url-parse-lax@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.nlark.com/url-parse-lax/download/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c"
+ integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=
+ dependencies:
+ prepend-http "^2.0.0"
+
+url-parse@^1.4.3, url-parse@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b"
+ integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==
+ dependencies:
+ querystringify "^2.1.1"
+ requires-port "^1.0.0"
+
+url-to-options@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npm.taobao.org/url-to-options/download/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9"
+ integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=
+
+url@^0.11.0:
+ version "0.11.0"
+ resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
+ integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=
+ dependencies:
+ punycode "1.3.2"
+ querystring "0.2.0"
+
+use@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
+ integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
+
+util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
+
+util.promisify@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
+ integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==
+ dependencies:
+ define-properties "^1.1.2"
+ object.getownpropertydescriptors "^2.0.3"
+
+util.promisify@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee"
+ integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.2"
+ has-symbols "^1.0.1"
+ object.getownpropertydescriptors "^2.1.0"
+
+util@0.10.3:
+ version "0.10.3"
+ resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
+ integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk=
+ dependencies:
+ inherits "2.0.1"
+
+util@^0.11.0:
+ version "0.11.1"
+ resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61"
+ integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==
+ dependencies:
+ inherits "2.0.3"
+
+utila@~0.4:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c"
+ integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=
+
+utils-merge@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
+ integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
+
+uuid@8.3.2:
+ version "8.3.2"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
+ integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
+
+uuid@^3.0.1, uuid@^3.3.2, uuid@^3.4.0:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
+ integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
+
+v8-compile-cache@^2.0.3:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
+ integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
+
+validate-npm-package-license@^3.0.1:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
+ integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
+ dependencies:
+ spdx-correct "^3.0.0"
+ spdx-expression-parse "^3.0.0"
+
+vary@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
+ integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
+
+vee-validate@3.4.5:
+ version "3.4.5"
+ resolved "https://registry.yarnpkg.com/vee-validate/-/vee-validate-3.4.5.tgz#96a456c309f7bdb2cce62c3b554f96d893e9f6ae"
+ integrity sha512-ZEcLqOAZzSkMhDvPcTx0xcwVOijFnMW9J+BA20j+rDmo24T8RCCqVQyRwwrDrcWJZV2dRYl/yYNa2GB6UCoBvg==
+
+vendors@^1.0.0:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e"
+ integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==
+
+verror@1.10.0:
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+ integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
+ dependencies:
+ assert-plus "^1.0.0"
+ core-util-is "1.0.2"
+ extsprintf "^1.2.0"
+
+vm-browserify@^1.0.1:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
+ integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
+
+vue-apexcharts@1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/vue-apexcharts/-/vue-apexcharts-1.6.0.tgz#c7d3afd93f712433d404e5ceeb4e3aa65f422af2"
+ integrity sha512-sT6tuVTLBwfH3TA7azecDNS/W70bmz14ZJI7aE7QIqcG9I6OywyH7x3hcOeY1v1DxttI8Svc5RuYj4Dd+A5F4g==
+
+vue-autosuggest@2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/vue-autosuggest/-/vue-autosuggest-2.2.0.tgz#0202b9aaeeef6a3a4357bf401a73be2ecbe166f1"
+ integrity sha512-cHgEakpoRUOaqXXEo8RcRrbSTM3eAaCu9b55ZXiKbaS6IUD8ewqffQrMy/A1DXqHSQbyEEGui4oAsCbRge29Jg==
+
+vue-awesome-swiper@4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/vue-awesome-swiper/-/vue-awesome-swiper-4.1.1.tgz#8f7ab221ad003021d756b86aa618f429924900fe"
+ integrity sha512-50um10t6N+lJaORkpwSi1wWuMmBI1sgFc9Znsi5oUykw2cO5DzLaBHcO2JNX21R+Ue4TGoIJDhhxjBHtkFrTEQ==
+
+vue-chartjs@3.5.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/vue-chartjs/-/vue-chartjs-3.5.0.tgz#edd0c2be94c521bcbc5357c24afb9f3560855f84"
+ integrity sha512-yWNhG3B6g6lvYqNInP0WaDWNZG/SNb6XnltkjR0wYC5pmLm6jvdiotj8er7Mui8qkJGfLZe6ULjrZdHWjegAUg==
+
+vue-class-component@^7.1.0:
+ version "7.2.6"
+ resolved "https://registry.yarnpkg.com/vue-class-component/-/vue-class-component-7.2.6.tgz#8471e037b8e4762f5a464686e19e5afc708502e4"
+ integrity sha512-+eaQXVrAm/LldalI272PpDe3+i4mPis0ORiMYxF6Ae4hyuCh15W8Idet7wPUEs4N4YptgFHGys4UrgNQOMyO6w==
+
+vue-cleave-component@2.1.3:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/vue-cleave-component/-/vue-cleave-component-2.1.3.tgz#c4968d141df4f3c7bfe4fd24aa97190c23685701"
+ integrity sha512-/lfIo5ElkJyQU6ar9Rc3AjqpBvfKB5GMf+EsymF0QpAyWaDXoOTb2fVj6v2wpu5kj4l+Jd/BBAg4laYRKVzErA==
+ dependencies:
+ cleave.js "^1.4.7"
+
+vue-cli-plugin-tauri@~1.0.0-beta.3:
+ version "1.0.0-beta.3"
+ resolved "https://registry.nlark.com/vue-cli-plugin-tauri/download/vue-cli-plugin-tauri-1.0.0-beta.3.tgz#d49d092bd2fe11c09fa0203568fc883728742c30"
+ integrity sha1-1J0JK9L+EcCfoCA1aPyINyh0LDA=
+ dependencies:
+ "@tauri-apps/cli" "1.0.0-beta.3"
+ "@vue/cli-shared-utils" "^4.1.1"
+ execa "^3.4.0"
+
+vue-clickaway@^2.2.2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/vue-clickaway/-/vue-clickaway-2.2.2.tgz#cecf6839575e8b2afc5d3edb3efb616d293dbb44"
+ integrity sha512-25SpjXKetL06GLYoLoC8pqAV6Cur9cQ//2g35GRFBV4FgoljbZZjTINR8g2NuVXXDMLSUXaKx5dutgO4PaDE7A==
+ dependencies:
+ loose-envify "^1.2.0"
+
+vue-clipboard2@0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/vue-clipboard2/-/vue-clipboard2-0.3.1.tgz#6e551fb7bd384889b28b0da3b12289ed6bca4894"
+ integrity sha512-H5S/agEDj0kXjUb5GP2c0hCzIXWRBygaWLN3NEFsaI9I3uWin778SFEMt8QRXiPG+7anyjqWiw2lqcxWUSfkYg==
+ dependencies:
+ clipboard "^2.0.0"
+
+vue-context@6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/vue-context/-/vue-context-6.0.0.tgz#97a1a423fc86fb7a54f46d1567670aba281a5970"
+ integrity sha512-x8gO6xgj0MtTCWcYbDjO/7VJ/gT+nV+unqICvsN0hwqqBzft31eYyExYqrSvfDCRI7ixxObu5tbl7BQAKge7eg==
+ dependencies:
+ vue-clickaway "^2.2.2"
+
+vue-demi@latest:
+ version "0.11.2"
+ resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.11.2.tgz#faa06da53887c493a695b997f4fcb4784a667990"
+ integrity sha512-J+X8Au6BhQdcej6LY4O986634hZLu55L0ewU2j8my7WIKlu8cK0dqmdUxqVHHMd/cMrKKZ9SywB/id6aLhwCtA==
+
+vue-echarts@5.0.0-beta.0:
+ version "5.0.0-beta.0"
+ resolved "https://registry.yarnpkg.com/vue-echarts/-/vue-echarts-5.0.0-beta.0.tgz#438dd4b0fc5ccea281709c1f7c6321b05352bdf4"
+ integrity sha512-QZFKGXDAYFQo+F20REpzcdLx79nsl4kOorJRpN+08aYq4YiIlmtWss1Lxadm7Fo+NYyWm8nnT+h4xHv3uqWIDQ==
+ dependencies:
+ core-js "^3.4.4"
+ lodash "^4.17.15"
+ resize-detector "^0.1.10"
+
+vue-eslint-parser@^7.0.0:
+ version "7.8.0"
+ resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.8.0.tgz#43850bf856c9a69d62c0e12769609c338423684b"
+ integrity sha512-ehmmrLZNYLUoKayvVW8l8HyPQIfuYZHiJoQLRP3dapDlTU7bGs4tqIKVGdAEpMuXS/b4R/PImCt7Tkj4UhX1SQ==
+ dependencies:
+ debug "^4.1.1"
+ eslint-scope "^5.1.1"
+ eslint-visitor-keys "^1.1.0"
+ espree "^6.2.1"
+ esquery "^1.4.0"
+ lodash "^4.17.21"
+ semver "^6.3.0"
+
+vue-feather-icons@5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/vue-feather-icons/-/vue-feather-icons-5.1.0.tgz#db658aca5f4c088c2f725f8b1f2967d4a1e4d398"
+ integrity sha512-ZyM2yFGmL9DYLZYHm63KV1zCQOj8czC2LzDSkxoIp9o6zMAOY4yv1FkxbX+XNUwcH3RRrAuvf25Ij7CnUUsQVA==
+ dependencies:
+ babel-helper-vue-jsx-merge-props "^2.0.2"
+
+vue-flatpickr-component@8.1.6:
+ version "8.1.6"
+ resolved "https://registry.yarnpkg.com/vue-flatpickr-component/-/vue-flatpickr-component-8.1.6.tgz#8fb25dc72946ceb1ab005b871a8151461c0883f6"
+ integrity sha512-RUu/M/1lbuzQT+U3yP7O5/M2EIizr9vXLXqSc1eFOvCT3AHurQg8+iO02rjW+2l78Kit8pCNAUvHw7eexws6hw==
+ dependencies:
+ flatpickr "^4.6.6"
+
+vue-form-wizard@0.8.4:
+ version "0.8.4"
+ resolved "https://registry.yarnpkg.com/vue-form-wizard/-/vue-form-wizard-0.8.4.tgz#ddf864c9709b7ba2a6323f59e5d6d17536b7800e"
+ integrity sha512-/Zk1+B7bz7qHFJ16mwu021lpPXWf/9Tlr2mTNG3J7M0Hdy3rgA802lWsbKYySns0B0qtsD8BYGjQ2Wyxgg+4uw==
+
+vue-functional-data-merge@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/vue-functional-data-merge/-/vue-functional-data-merge-3.1.0.tgz#08a7797583b7f35680587f8a1d51d729aa1dc657"
+ integrity sha512-leT4kdJVQyeZNY1kmnS1xiUlQ9z1B/kdBFCILIjYYQDqZgLqCLa0UhjSSeRX6c3mUe6U5qYeM8LrEqkHJ1B4LA==
+
+vue-good-table@2.21.0:
+ version "2.21.0"
+ resolved "https://registry.yarnpkg.com/vue-good-table/-/vue-good-table-2.21.0.tgz#78f90ee4e40696b72545e2a198c9398c45f0ba45"
+ integrity sha512-e384AGlmEBG0CfTkZXN/OZe1O58V2mbxQafsKqzVrqvROcMZsa9iSyK11D4YS2JzlJo9mRqsad4/vrV/U/Xbdw==
+ dependencies:
+ date-fns "^2.0.0-beta.4"
+ diacriticless "1.0.1"
+ lodash.assign "^4.2.0"
+ lodash.clonedeep "^4.5.0"
+ lodash.filter "^4.6.0"
+ lodash.foreach "^4.5.0"
+ lodash.isequal "^4.5.0"
+
+vue-hot-reload-api@^2.3.0:
+ version "2.3.4"
+ resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2"
+ integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==
+
+vue-i18n@8.22.2:
+ version "8.22.2"
+ resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-8.22.2.tgz#58299a5a050e67b4f799d96fee7dd8bd269e0907"
+ integrity sha512-rb569fVJInPUgS/bbCxEQ9DrAoFTntuJvYoK4Fpk2VfNbA09WzdTKk57ppjz3S+ps9hW+p9H+2ASgMvojedkow==
+
+"vue-loader-v16@npm:vue-loader@^16.1.0":
+ version "16.3.1"
+ resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-16.3.1.tgz#5b675ae28ac97080111e93b26d22adca36dd57aa"
+ integrity sha512-QTtXgdqQ+4G3d8dmhnnfJSiKKHQtp53XiivSYAvAqNCOufL9aK0DYOc9MW9MSy7Xzj/1qdcghb28zKhOPvQYqQ==
+ dependencies:
+ chalk "^4.1.0"
+ hash-sum "^2.0.0"
+ loader-utils "^2.0.0"
+
+vue-loader@^15.9.2:
+ version "15.9.7"
+ resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.7.tgz#15b05775c3e0c38407679393c2ce6df673b01044"
+ integrity sha512-qzlsbLV1HKEMf19IqCJqdNvFJRCI58WNbS6XbPqK13MrLz65es75w392MSQ5TsARAfIjUw+ATm3vlCXUJSOH9Q==
+ dependencies:
+ "@vue/component-compiler-utils" "^3.1.0"
+ hash-sum "^1.0.2"
+ loader-utils "^1.1.0"
+ vue-hot-reload-api "^2.3.0"
+ vue-style-loader "^4.1.0"
+
+vue-perfect-scrollbar@0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/vue-perfect-scrollbar/-/vue-perfect-scrollbar-0.2.1.tgz#2fecab975512f7c8c37e1610dee48faf46d649f3"
+ integrity sha512-45rOonNrZaKX0mu0N9v422+c3Ngm8iTnVAP0N2iUwPfWZJds4S6eRGdmiNbrVFqmUc8IfRNI0Dpa3Zk8ntjaZQ==
+
+vue-prism-component@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/vue-prism-component/-/vue-prism-component-1.1.1.tgz#df0e375f7f9b367b069b2d54e6ed86facde96030"
+ integrity sha512-M4wM7gMIagWgf3YNS5Hrq7YDYu0pYbqMaJOhkVDfCfJ1col4ZCv+uyWpW/gkYZCuG3ic8UF3EAV22asm4pWjMA==
+
+vue-property-decorator@^8.0.0:
+ version "8.5.1"
+ resolved "https://registry.yarnpkg.com/vue-property-decorator/-/vue-property-decorator-8.5.1.tgz#571a91cf8d2b507f537d79bf8275af3184572fff"
+ integrity sha512-O6OUN2OMsYTGPvgFtXeBU3jPnX5ffQ9V4I1WfxFQ6dqz6cOUbR3Usou7kgFpfiXDvV7dJQSFcJ5yUPgOtPPm1Q==
+ dependencies:
+ vue-class-component "^7.1.0"
+
+vue-quill-editor@3.0.6:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/vue-quill-editor/-/vue-quill-editor-3.0.6.tgz#1f85646211d68a31a80a72cb7f45bb2f119bc8fb"
+ integrity sha512-g20oSZNWg8Hbu41Kinjd55e235qVWPLfg4NvsLW6d+DhgBTFbEuMpcWlUdrD6qT3+Noim6DRu18VLM9lVShXOQ==
+ dependencies:
+ object-assign "^4.1.1"
+ quill "^1.3.4"
+
+vue-ripple-directive@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/vue-ripple-directive/-/vue-ripple-directive-2.0.1.tgz#817ae4bc2874cbf01d8a018c8e8d97c8cadb6355"
+ integrity sha512-jXZEX6uZpo89wxmdcw02uFpsMBpm1pxjQ60uqghNLQ8H8ju9eon2vE0+vvSWJ1WGCOTEfxGDR4InabJJu5f1GA==
+ dependencies:
+ vue "^2.2.1"
+
+vue-router@3.4.9:
+ version "3.4.9"
+ resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.4.9.tgz#c016f42030ae2932f14e4748b39a1d9a0e250e66"
+ integrity sha512-CGAKWN44RqXW06oC+u4mPgHLQQi2t6vLD/JbGRDAXm0YpMv0bgpKuU5bBd7AvMgfTz9kXVRIWKHqRwGEb8xFkA==
+
+vue-select@3.11.2:
+ version "3.11.2"
+ resolved "https://registry.yarnpkg.com/vue-select/-/vue-select-3.11.2.tgz#3ef93e3f2707e133c2df0b2920a05eea78764d18"
+ integrity sha512-pIOcY8ajWNSwg8Ns4eHVr5ZWwqKCSZeQRymTnlUI8i+3QiQXF6JIM4lylK6mVfbccs4S6vOyxB7zmJBpp7tDUg==
+
+vue-slider-component@3.2.11:
+ version "3.2.11"
+ resolved "https://registry.yarnpkg.com/vue-slider-component/-/vue-slider-component-3.2.11.tgz#79e338dc5a32ca927a8f79ee55256197bd785235"
+ integrity sha512-2YyJW6TFnYk5FUvqQLvZcCJ+hthBXB819qNHtwnEUyDbOcTXV0n3Ou1ZphOi5FX9phlQIiC2NvjLuRAVmNq+Zw==
+ dependencies:
+ core-js "^3.6.5"
+ vue-property-decorator "^8.0.0"
+
+vue-style-loader@^4.1.0, vue-style-loader@^4.1.2:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz#6d55863a51fa757ab24e89d9371465072aa7bc35"
+ integrity sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==
+ dependencies:
+ hash-sum "^1.0.2"
+ loader-utils "^1.0.2"
+
+vue-sweetalert2@4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/vue-sweetalert2/-/vue-sweetalert2-4.1.1.tgz#77963821d798bbf95fd4567ccd55e8cc51c78463"
+ integrity sha512-9ytddeXkjixIGzUxgmVAVdIOrbPiWcjEPQuO3mEPq4zc8clbQbhOn192zvYUdcM0SbRPzbafyXTFx9mNMNJzQA==
+ dependencies:
+ sweetalert2 "10.x"
+
+vue-template-compiler@2.x:
+ version "2.6.14"
+ resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz#a2f0e7d985670d42c9c9ee0d044fed7690f4f763"
+ integrity sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g==
+ dependencies:
+ de-indent "^1.0.2"
+ he "^1.1.0"
+
+vue-template-es2015-compiler@^1.9.0:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825"
+ integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==
+
+vue-toastification@1.7.8:
+ version "1.7.8"
+ resolved "https://registry.yarnpkg.com/vue-toastification/-/vue-toastification-1.7.8.tgz#fd970f0a4656ac25e9d63ff5d863cdf27d9a1d9c"
+ integrity sha512-LGYK29D7Stv7In8ebYJKZu6zYpnzMC5vvhVmlzuiBjpK41OEUYL05Nox1DISUJebS9OgD2HCm3Qb4k4+CbaqSw==
+
+vue-tour@1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/vue-tour/-/vue-tour-1.5.0.tgz#4dbbbc03ea6932a1ae3ccd819c219304f3a30109"
+ integrity sha512-T92vetsw4iLO+31kQ7Q5DIKVbgqEE7SmLmfkUEgIznMn59tCELfsklxyUP9irAcRqrZdlV8zT0HgFgzGXeZemg==
+ dependencies:
+ hash-sum "^2.0.0"
+ jump.js "^1.0.2"
+ popper.js "^1.16.0"
+ vue "^2.6.10"
+
+vue-tree-halower@1.8.3:
+ version "1.8.3"
+ resolved "https://registry.yarnpkg.com/vue-tree-halower/-/vue-tree-halower-1.8.3.tgz#a5dc53b33dbd820ea776dc5c554a03bca9c3d799"
+ integrity sha512-56rcHqu41wKIoJMrEwOEVmrmfNYWFg0XDWbSVLHjhc8yH4AVS2b5iEb1UyKnLhpj/N5Y4hJ8CYYs932Pm+GRag==
+ dependencies:
+ vue "^2.4.4"
+
+vue2-leaflet@2.5.2:
+ version "2.5.2"
+ resolved "https://registry.yarnpkg.com/vue2-leaflet/-/vue2-leaflet-2.5.2.tgz#b89c056fe741c7ce7cb9df5aca90809092e5eb8d"
+ integrity sha512-9eN0TxqCkyXbaI7waO3u+n0OAezkxjb811tstG6gRLAZy/ocXlNLC3JqTWE0FwBUlqBbMpyzsIk6LrEhs8oVBQ==
+
+vue@2.x, vue@^2.2.1, vue@^2.4.4, vue@^2.6.10:
+ version "2.6.14"
+ resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.14.tgz#e51aa5250250d569a3fbad3a8a5a687d6036e235"
+ integrity sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==
+
+vuedraggable@2.24.3:
+ version "2.24.3"
+ resolved "https://registry.yarnpkg.com/vuedraggable/-/vuedraggable-2.24.3.tgz#43c93849b746a24ce503e123d5b259c701ba0d19"
+ integrity sha512-6/HDXi92GzB+Hcs9fC6PAAozK1RLt1ewPTLjK0anTYguXLAeySDmcnqE8IC0xa7shvSzRjQXq3/+dsZ7ETGF3g==
+ dependencies:
+ sortablejs "1.10.2"
+
+vuex@3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.6.0.tgz#95efa56a58f7607c135b053350833a09e01aa813"
+ integrity sha512-W74OO2vCJPs9/YjNjW8lLbj+jzT24waTo2KShI8jLvJW8OaIkgb3wuAMA7D+ZiUxDOx3ubwSZTaJBip9G8a3aQ==
+
+watchpack-chokidar2@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957"
+ integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==
+ dependencies:
+ chokidar "^2.1.8"
+
+watchpack@^1.7.4:
+ version "1.7.5"
+ resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453"
+ integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==
+ dependencies:
+ graceful-fs "^4.1.2"
+ neo-async "^2.5.0"
+ optionalDependencies:
+ chokidar "^3.4.1"
+ watchpack-chokidar2 "^2.0.1"
+
+wbuf@^1.1.0, wbuf@^1.7.3:
+ version "1.7.3"
+ resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df"
+ integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==
+ dependencies:
+ minimalistic-assert "^1.0.0"
+
+wcwidth@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
+ integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=
+ dependencies:
+ defaults "^1.0.3"
+
+webpack-bundle-analyzer@^3.8.0:
+ version "3.9.0"
+ resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz#f6f94db108fb574e415ad313de41a2707d33ef3c"
+ integrity sha512-Ob8amZfCm3rMB1ScjQVlbYYUEJyEjdEtQ92jqiFUYt5VkEeO2v5UMbv49P/gnmCZm3A6yaFQzCBvpZqN4MUsdA==
+ dependencies:
+ acorn "^7.1.1"
+ acorn-walk "^7.1.1"
+ bfj "^6.1.1"
+ chalk "^2.4.1"
+ commander "^2.18.0"
+ ejs "^2.6.1"
+ express "^4.16.3"
+ filesize "^3.6.1"
+ gzip-size "^5.0.0"
+ lodash "^4.17.19"
+ mkdirp "^0.5.1"
+ opener "^1.5.1"
+ ws "^6.0.0"
+
+webpack-chain@^6.4.0:
+ version "6.5.1"
+ resolved "https://registry.yarnpkg.com/webpack-chain/-/webpack-chain-6.5.1.tgz#4f27284cbbb637e3c8fbdef43eef588d4d861206"
+ integrity sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==
+ dependencies:
+ deepmerge "^1.5.2"
+ javascript-stringify "^2.0.1"
+
+webpack-dev-middleware@^3.7.2:
+ version "3.7.3"
+ resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5"
+ integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==
+ dependencies:
+ memory-fs "^0.4.1"
+ mime "^2.4.4"
+ mkdirp "^0.5.1"
+ range-parser "^1.2.1"
+ webpack-log "^2.0.0"
+
+webpack-dev-server@^3.11.0:
+ version "3.11.2"
+ resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708"
+ integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==
+ dependencies:
+ ansi-html "0.0.7"
+ bonjour "^3.5.0"
+ chokidar "^2.1.8"
+ compression "^1.7.4"
+ connect-history-api-fallback "^1.6.0"
+ debug "^4.1.1"
+ del "^4.1.1"
+ express "^4.17.1"
+ html-entities "^1.3.1"
+ http-proxy-middleware "0.19.1"
+ import-local "^2.0.0"
+ internal-ip "^4.3.0"
+ ip "^1.1.5"
+ is-absolute-url "^3.0.3"
+ killable "^1.0.1"
+ loglevel "^1.6.8"
+ opn "^5.5.0"
+ p-retry "^3.0.1"
+ portfinder "^1.0.26"
+ schema-utils "^1.0.0"
+ selfsigned "^1.10.8"
+ semver "^6.3.0"
+ serve-index "^1.9.1"
+ sockjs "^0.3.21"
+ sockjs-client "^1.5.0"
+ spdy "^4.0.2"
+ strip-ansi "^3.0.1"
+ supports-color "^6.1.0"
+ url "^0.11.0"
+ webpack-dev-middleware "^3.7.2"
+ webpack-log "^2.0.0"
+ ws "^6.2.1"
+ yargs "^13.3.2"
+
+webpack-log@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f"
+ integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==
+ dependencies:
+ ansi-colors "^3.0.0"
+ uuid "^3.3.2"
+
+webpack-merge@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d"
+ integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==
+ dependencies:
+ lodash "^4.17.15"
+
+webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1:
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"
+ integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==
+ dependencies:
+ source-list-map "^2.0.0"
+ source-map "~0.6.1"
+
+webpack@^4.0.0:
+ version "4.46.0"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542"
+ integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-module-context" "1.9.0"
+ "@webassemblyjs/wasm-edit" "1.9.0"
+ "@webassemblyjs/wasm-parser" "1.9.0"
+ acorn "^6.4.1"
+ ajv "^6.10.2"
+ ajv-keywords "^3.4.1"
+ chrome-trace-event "^1.0.2"
+ enhanced-resolve "^4.5.0"
+ eslint-scope "^4.0.3"
+ json-parse-better-errors "^1.0.2"
+ loader-runner "^2.4.0"
+ loader-utils "^1.2.3"
+ memory-fs "^0.4.1"
+ micromatch "^3.1.10"
+ mkdirp "^0.5.3"
+ neo-async "^2.6.1"
+ node-libs-browser "^2.2.1"
+ schema-utils "^1.0.0"
+ tapable "^1.1.3"
+ terser-webpack-plugin "^1.4.3"
+ watchpack "^1.7.4"
+ webpack-sources "^1.4.1"
+
+websocket-driver@>=0.5.1, websocket-driver@^0.7.4:
+ version "0.7.4"
+ resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760"
+ integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==
+ dependencies:
+ http-parser-js ">=0.5.1"
+ safe-buffer ">=5.1.0"
+ websocket-extensions ">=0.1.1"
+
+websocket-extensions@>=0.1.1:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42"
+ integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==
+
+which-boxed-primitive@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
+ integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
+ dependencies:
+ is-bigint "^1.0.1"
+ is-boolean-object "^1.1.0"
+ is-number-object "^1.0.4"
+ is-string "^1.0.5"
+ is-symbol "^1.0.3"
+
+which-module@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
+ integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
+
+which@^1.2.9:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
+ integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
+ dependencies:
+ isexe "^2.0.0"
+
+which@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+ integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+ dependencies:
+ isexe "^2.0.0"
+
+wide-align@^1.1.0:
+ version "1.1.3"
+ resolved "https://registry.nlark.com/wide-align/download/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
+ integrity sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=
+ dependencies:
+ string-width "^1.0.2 || 2"
+
+widest-line@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.nlark.com/widest-line/download/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca"
+ integrity sha1-gpIzO79my0X/DeFgOxNreuFJbso=
+ dependencies:
+ string-width "^4.0.0"
+
+with-open-file@^0.1.6:
+ version "0.1.7"
+ resolved "https://registry.npm.taobao.org/with-open-file/download/with-open-file-0.1.7.tgz#e2de8d974e8a8ae6e58886be4fe8e7465b58a729"
+ integrity sha1-4t6Nl06KiubliIa+T+jnRltYpyk=
+ dependencies:
+ p-finally "^1.0.0"
+ p-try "^2.1.0"
+ pify "^4.0.1"
+
+word-wrap@~1.2.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
+ integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
+
+worker-farm@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
+ integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==
+ dependencies:
+ errno "~0.1.7"
+
+wrap-ansi@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
+ integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==
+ dependencies:
+ ansi-styles "^3.2.0"
+ string-width "^3.0.0"
+ strip-ansi "^5.0.0"
+
+wrap-ansi@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
+ integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
+wrap-ansi@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+
+write-file-atomic@^3.0.0:
+ version "3.0.3"
+ resolved "https://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8"
+ integrity sha1-Vr1cWlxwSBzRnFcb05q5ZaXeVug=
+ dependencies:
+ imurmurhash "^0.1.4"
+ is-typedarray "^1.0.0"
+ signal-exit "^3.0.2"
+ typedarray-to-buffer "^3.1.5"
+
+write@1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3"
+ integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==
+ dependencies:
+ mkdirp "^0.5.1"
+
+ws@^6.0.0, ws@^6.2.1:
+ version "6.2.2"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e"
+ integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==
+ dependencies:
+ async-limiter "~1.0.0"
+
+xdg-basedir@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npm.taobao.org/xdg-basedir/download/xdg-basedir-4.0.0.tgz?cache=0&sync_timestamp=1617611838739&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fxdg-basedir%2Fdownload%2Fxdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13"
+ integrity sha1-S8jZmEQDaWIl74OhVzy7y0552xM=
+
+xtend@^4.0.0, xtend@~4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
+ integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
+
+y18n@^4.0.0:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
+ integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==
+
+y18n@^5.0.5:
+ version "5.0.8"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
+ integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
+
+yallist@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
+ integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
+
+yallist@^3.0.2:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
+ integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
+
+yallist@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+ integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+
+yargs-parser@^13.1.2:
+ version "13.1.2"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"
+ integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==
+ dependencies:
+ camelcase "^5.0.0"
+ decamelize "^1.2.0"
+
+yargs-parser@^20.2.2:
+ version "20.2.9"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
+ integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
+
+yargs@^13.3.2:
+ version "13.3.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"
+ integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==
+ dependencies:
+ cliui "^5.0.0"
+ find-up "^3.0.0"
+ get-caller-file "^2.0.1"
+ require-directory "^2.1.1"
+ require-main-filename "^2.0.0"
+ set-blocking "^2.0.0"
+ string-width "^3.0.0"
+ which-module "^2.0.0"
+ y18n "^4.0.0"
+ yargs-parser "^13.1.2"
+
+yargs@^16.0.0:
+ version "16.2.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
+ integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
+ dependencies:
+ cliui "^7.0.2"
+ escalade "^3.1.1"
+ get-caller-file "^2.0.5"
+ require-directory "^2.1.1"
+ string-width "^4.2.0"
+ y18n "^5.0.5"
+ yargs-parser "^20.2.2"
+
+yauzl@^2.4.2:
+ version "2.10.0"
+ resolved "https://registry.nlark.com/yauzl/download/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
+ integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=
+ dependencies:
+ buffer-crc32 "~0.2.3"
+ fd-slicer "~1.1.0"
+
+yorkie@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/yorkie/-/yorkie-2.0.0.tgz#92411912d435214e12c51c2ae1093e54b6bb83d9"
+ integrity sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw==
+ dependencies:
+ execa "^0.8.0"
+ is-ci "^1.0.10"
+ normalize-path "^1.0.0"
+ strip-indent "^2.0.0"
+
+zopflipng-bin@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.npm.taobao.org/zopflipng-bin/download/zopflipng-bin-6.0.1.tgz#a91ef81bdba18e151dda3f34df23d3ecd7d04a1f"
+ integrity sha1-qR74G9uhjhUd2j803yPT7NfQSh8=
+ dependencies:
+ bin-build "^3.0.0"
+ bin-wrapper "^4.0.1"
+ logalot "^2.1.0"
+
+zrender@4.3.1:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/zrender/-/zrender-4.3.1.tgz#baf8aa6dc8187a2f819692d7d5f9bedfa2b90fa3"
+ integrity sha512-CeH2TpJeCdG0TAGYoPSAcFX2ogdug1K7LIn9UO/q9HWqQ54gWhrMAlDP9AwWYMUDhrPe4VeazQ4DW3msD96nUQ==