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 + + + +
+ +
+
+
+
+
+
+
+ + + 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 @@ + + + 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 @@ + + + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + + + + + 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 @@ + + + + + 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 @@ + + + + + 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 @@ + + + + + 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 @@ + + + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + + + 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 @@ + + + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + 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 @@ + + + + + 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 @@ + + + + + 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 @@ + + + + + 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 @@ + + + + + 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 @@ + + + + + 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==