commit 8fd3a287a8afc801c66490a0fd15c71bbe9c61b8 Author: wangjx Date: Fri Feb 21 09:14:45 2025 +0800 release: 第一版工程提交 diff --git a/.cz-config.js b/.cz-config.js new file mode 100644 index 0000000..01a6539 --- /dev/null +++ b/.cz-config.js @@ -0,0 +1,103 @@ +module.exports = { + // type 类型(定义之后,可通过上下键选择) + types: [ + { value: 'improvement', name: 'improvement: 功能优化' }, + { value: 'fix', name: 'fix: 修复 bug' }, + { value: 'feat', name: 'feat: 新增功能' }, + { value: 'style', name: 'style: 代码格式(不影响功能,例如空格、分号等格式修正)' }, + { value: 'docs', name: 'docs: 文档变更' }, + { value: 'refactor', name: 'refactor: 代码重构(不包括 bug 修复、功能新增)' }, + { value: 'perf', name: 'perf: 性能优化' }, + { value: 'test', name: 'test: 添加、修改测试用例' }, + { + value: 'ci', + name: 'ci: 修改 CI 配置、脚本(如打包部署脚本、dockerfile等)' + }, + { value: 'revert', name: 'revert: 回滚 commit' }, + { + value: 'build', + name: 'build: 构建流程、外部依赖变更(如升级 npm 包、修改 webpack 配置等)' + }, + { + value: 'chore', + name: 'chore: 版本发布或对构建过程或辅助工具和库的更改(不影响源文件、测试用例)' + } + // { value: ':bug: fix', name: '🐛 fix: 修复 bug' }, + // { value: ':sparkles: feat', name: '✨ feat: 新增功能' }, + // { + // value: ':lipstick: style', + // name: '💄 style: 代码格式(不影响功能,例如空格、分号等格式修正)' + // }, + // { value: ':memo: docs', name: '📝 docs: 文档变更' }, + // { value: ':recycle: refactor', name: '♻️ refactor: 代码重构(不包括 bug 修复、功能新增)' }, + // { value: ':zap: perf', name: '⚡️ perf: 性能优化' }, + // { value: ':white_check_mark: test', name: '✅ test: 添加、修改测试用例' }, + // { + // value: ':hammer: chore', + // name: '🔨 chore: 对构建过程或辅助工具和库的更改(不影响源文件、测试用例)' + // }, + // { value: ':wrench: ci', name: '🔧 ci: 修改 CI 配置、脚本' }, + // { value: ':rocket: deps', name: '🚀 deps: 升级依赖' } + // { + // value: ':bookmark: release', + // name: '🔖 release: 版本发布' + // } + ], + + // scope 类型(定义之后,可通过上下键选择) + scopes: [ + ['custom', '自定义范围,例如sys/user'], + ['utils', 'utils 相关'], + ['router', 'router 相关'] + ].map(([value, description]) => { + return { + value, + name: `${value.padEnd(30)} (${description})` + } + }), + // 是否允许自定义填写 scope,在 scope 选择的时候,会有 empty 和 custom 可以选择。 + // allowCustomScopes: true, + // allowTicketNumber: false, + // isTicketNumberRequired: false, + // ticketNumberPrefix: 'TICKET-', + // ticketNumberRegExp: '\\d{1,5}', + + // 针对每一个 type 去定义对应的 scopes,例如 fix + scopeOverrides: { + chore: [ + { value: 'release', name: 'release 版本发布' }, + { value: 'custom', name: 'custom 自定义scope' } + ], + ci: [ + { value: 'deploy', name: 'deploy 部署脚本' }, + { value: 'docker', name: 'docker docker相关' }, + { value: 'custom', name: 'custom 自定义scope' } + ], + build: [ + { value: 'deps', name: 'deps 依赖变更' }, + { value: 'custom', name: 'custom 自定义scope' } + ] + }, + // 交互提示信息 + messages: { + type: '确保本次提交遵循 Angular 规范!\n选择你要提交的类型:', + scope: '\n选择一个 scope(可选):', + customScope: '请输入自定义的 scope:', + subject: '填写简短精炼的变更描述:\n', + body: '填写更加详细的变更描述(可选)。使用 "|" 换行:\n', + breaking: '列举非兼容性重大的变更(可选):\n', + footer: '列举出所有变更的 ISSUES CLOSED(可选)。 例如: #31, #34:\n', + confirmCommit: '确认提交?' + }, + + // ['feat', 'fix']设置只有 type 选择了 feat 或 fix,才询问 breaking message + allowBreakingChanges: [], + // 跳过要询问的步骤 + skipQuestions: ['body'], + + // subject 限制长度 + subjectLimit: 100, + breaklineChar: '|' // 支持 body 和 footer + // footerPrefix : 'ISSUES CLOSED:' + // askForBreakingChangeFirst : true, +} diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..ddcefeb --- /dev/null +++ b/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see http://editorconfig.org + +# 表示是最顶层的 EditorConfig 配置文件 +root = true + +[*] # 表示所有文件适用 +charset = utf-8 # 设置文件字符集为 utf-8 +indent_style = space # 缩进风格(tab | space) +indent_size = 2 # 缩进大小 +end_of_line = lf # 控制换行类型(lf | cr | crlf) +trim_trailing_whitespace = true # 去除行首的任意空白字符 +insert_final_newline = true # 始终在文件末尾插入一个新行 + +[*.md] # 表示仅 md 文件适用以下规则 +max_line_length = off +trim_trailing_whitespace = false diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json new file mode 100644 index 0000000..abc343c --- /dev/null +++ b/.eslintrc-auto-import.json @@ -0,0 +1,281 @@ +{ + "globals": { + "Component": true, + "ComponentPublicInstance": true, + "ComputedRef": true, + "EffectScope": true, + "ExtractDefaultPropTypes": true, + "ExtractPropTypes": true, + "ExtractPublicPropTypes": true, + "InjectionKey": true, + "PropType": true, + "Ref": true, + "VNode": true, + "WritableComputedRef": true, + "asyncComputed": true, + "autoResetRef": true, + "computed": true, + "computedAsync": true, + "computedEager": true, + "computedInject": true, + "computedWithControl": true, + "controlledComputed": true, + "controlledRef": true, + "createApp": true, + "createEventHook": true, + "createGlobalState": true, + "createInjectionState": true, + "createReactiveFn": true, + "createSharedComposable": true, + "createUnrefFn": true, + "customRef": true, + "debouncedRef": true, + "debouncedWatch": true, + "defineAsyncComponent": true, + "defineComponent": true, + "eagerComputed": true, + "effectScope": true, + "extendRef": true, + "getCurrentInstance": true, + "getCurrentScope": true, + "h": true, + "ignorableWatch": true, + "inject": true, + "isDefined": true, + "isProxy": true, + "isReactive": true, + "isReadonly": true, + "isRef": true, + "makeDestructurable": true, + "markRaw": true, + "nextTick": true, + "onActivated": true, + "onBeforeMount": true, + "onBeforeRouteLeave": true, + "onBeforeRouteUpdate": true, + "onBeforeUnmount": true, + "onBeforeUpdate": true, + "onClickOutside": true, + "onDeactivated": true, + "onErrorCaptured": true, + "onKeyStroke": true, + "onLongPress": true, + "onMounted": true, + "onRenderTracked": true, + "onRenderTriggered": true, + "onScopeDispose": true, + "onServerPrefetch": true, + "onStartTyping": true, + "onUnmounted": true, + "onUpdated": true, + "pausableWatch": true, + "provide": true, + "reactify": true, + "reactifyObject": true, + "reactive": true, + "reactiveComputed": true, + "reactiveOmit": true, + "reactivePick": true, + "readonly": true, + "ref": true, + "refAutoReset": true, + "refDebounced": true, + "refDefault": true, + "refThrottled": true, + "refWithControl": true, + "resolveComponent": true, + "resolveRef": true, + "resolveUnref": true, + "shallowReactive": true, + "shallowReadonly": true, + "shallowRef": true, + "syncRef": true, + "syncRefs": true, + "templateRef": true, + "throttledRef": true, + "throttledWatch": true, + "toRaw": true, + "toReactive": true, + "toRef": true, + "toRefs": true, + "toValue": true, + "triggerRef": true, + "tryOnBeforeMount": true, + "tryOnBeforeUnmount": true, + "tryOnMounted": true, + "tryOnScopeDispose": true, + "tryOnUnmounted": true, + "unref": true, + "unrefElement": true, + "until": true, + "useActiveElement": true, + "useArrayEvery": true, + "useArrayFilter": true, + "useArrayFind": true, + "useArrayFindIndex": true, + "useArrayFindLast": true, + "useArrayJoin": true, + "useArrayMap": true, + "useArrayReduce": true, + "useArraySome": true, + "useArrayUnique": true, + "useAsyncQueue": true, + "useAsyncState": true, + "useAttrs": true, + "useBase64": true, + "useBattery": true, + "useBluetooth": true, + "useBreakpoints": true, + "useBroadcastChannel": true, + "useBrowserLocation": true, + "useCached": true, + "useClipboard": true, + "useCloned": true, + "useColorMode": true, + "useConfirmDialog": true, + "useCounter": true, + "useCssModule": true, + "useCssVar": true, + "useCssVars": true, + "useCurrentElement": true, + "useCycleList": true, + "useDark": true, + "useDateFormat": true, + "useDebounce": true, + "useDebounceFn": true, + "useDebouncedRefHistory": true, + "useDeviceMotion": true, + "useDeviceOrientation": true, + "useDevicePixelRatio": true, + "useDevicesList": true, + "useDisplayMedia": true, + "useDocumentVisibility": true, + "useDraggable": true, + "useDropZone": true, + "useElementBounding": true, + "useElementByPoint": true, + "useElementHover": true, + "useElementSize": true, + "useElementVisibility": true, + "useEventBus": true, + "useEventListener": true, + "useEventSource": true, + "useEyeDropper": true, + "useFavicon": true, + "useFetch": true, + "useFileDialog": true, + "useFileSystemAccess": true, + "useFocus": true, + "useFocusWithin": true, + "useFps": true, + "useFullscreen": true, + "useGamepad": true, + "useGeolocation": true, + "useIdle": true, + "useImage": true, + "useInfiniteScroll": true, + "useIntersectionObserver": true, + "useInterval": true, + "useIntervalFn": true, + "useKeyModifier": true, + "useLastChanged": true, + "useLink": true, + "useLocalStorage": true, + "useMagicKeys": true, + "useManualRefHistory": true, + "useMediaControls": true, + "useMediaQuery": true, + "useMemoize": true, + "useMemory": true, + "useMounted": true, + "useMouse": true, + "useMouseInElement": true, + "useMousePressed": true, + "useMutationObserver": true, + "useNavigatorLanguage": true, + "useNetwork": true, + "useNow": true, + "useObjectUrl": true, + "useOffsetPagination": true, + "useOnline": true, + "usePageLeave": true, + "useParallax": true, + "usePermission": true, + "usePointer": true, + "usePointerLock": true, + "usePointerSwipe": true, + "usePreferredColorScheme": true, + "usePreferredContrast": true, + "usePreferredDark": true, + "usePreferredLanguages": true, + "usePreferredReducedMotion": true, + "usePrevious": true, + "useRafFn": true, + "useRefHistory": true, + "useResizeObserver": true, + "useRoute": true, + "useRouter": true, + "useScreenOrientation": true, + "useScreenSafeArea": true, + "useScriptTag": true, + "useScroll": true, + "useScrollLock": true, + "useSessionStorage": true, + "useShare": true, + "useSlots": true, + "useSorted": true, + "useSpeechRecognition": true, + "useSpeechSynthesis": true, + "useStepper": true, + "useStorage": true, + "useStorageAsync": true, + "useStyleTag": true, + "useSupported": true, + "useSwipe": true, + "useTemplateRefsList": true, + "useTextDirection": true, + "useTextSelection": true, + "useTextareaAutosize": true, + "useThrottle": true, + "useThrottleFn": true, + "useThrottledRefHistory": true, + "useTimeAgo": true, + "useTimeout": true, + "useTimeoutFn": true, + "useTimeoutPoll": true, + "useTimestamp": true, + "useTitle": true, + "useToNumber": true, + "useToString": true, + "useToggle": true, + "useTransition": true, + "useUrlSearchParams": true, + "useUserMedia": true, + "useVModel": true, + "useVModels": true, + "useVibrate": true, + "useVirtualList": true, + "useWakeLock": true, + "useWebNotification": true, + "useWebSocket": true, + "useWebWorker": true, + "useWebWorkerFn": true, + "useWindowFocus": true, + "useWindowScroll": true, + "useWindowSize": true, + "watch": true, + "watchArray": true, + "watchAtMost": true, + "watchDebounced": true, + "watchEffect": true, + "watchIgnorable": true, + "watchOnce": true, + "watchPausable": true, + "watchPostEffect": true, + "watchSyncEffect": true, + "watchThrottled": true, + "watchTriggerable": true, + "watchWithFilter": true, + "whenever": true + } +} diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..78499c0 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,56 @@ +module.exports = { + env: { + browser: true, + es2021: true, + node: true + }, + extends: [ + 'plugin:vue/vue3-essential', + 'airbnb-base', + 'plugin:prettier/recommended', // 添加 prettier 插件 + './.eslintrc-auto-import.json' + ], + parserOptions: { + ecmaVersion: 12, + parser: '@typescript-eslint/parser', + sourceType: 'module' + }, + globals: { + defineProps: true, + defineEmits: true, + defineExpose: true + }, + settings: {}, + plugins: ['vue', '@typescript-eslint'], + rules: { + 'import/no-unresolved': 'off', + 'import/extensions': 'off', + // 开放入参修改值 + 'no-param-reassign': [ + 'error', + { + props: true, + ignorePropertyModificationsFor: [ + 'e', // for e.returnvalue + 'ctx', // for Koa routing + 'req', // for Express requests + 'request', // for Express requests + 'res', // for Express responses + 'response', // for Express responses + 'state' // for vuex state + ] + } + ], + 'import/prefer-default-export': 'off', + 'no-unused-vars': 'off', + '@typescript-eslint/no-unused-vars': [ + 'error', + { + vars: 'all', + args: 'after-used', + ignoreRestSiblings: true + } + ], + 'import/no-extraneous-dependencies': ['error', { devDependencies: true }] + } +} diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9e58908 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,33 @@ +* text=auto + +# Force the following filetypes to have unix eols, so Windows does not break them +*.* text eol=lf + +# Separate configuration for files without suffix +LICENSE text eol=lf +Dockerfile text eol=lf +pre-commit text eol=lf +commit-msg text eol=lf + +# These files are binary and should be left untouched +# (binary is a macro for -text -diff) +*.ico binary +*.jpg binary +*.jpeg binary +*.png binary + +*.pdf binary +*.doc binary +*.docx binary +*.ppt binary +*.pptx binary +*.xls binary +*.xlsx binary +*.exe binary + +*.ttf binary +*.woff binary +*.woff2 binary +*.eot binary +*.otf binary +# Add more binary... diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml new file mode 100644 index 0000000..9766b69 --- /dev/null +++ b/.gitea/workflows/build.yaml @@ -0,0 +1,56 @@ +name: Build + +# 打标签时触发构建,另外标签需v开头,例如v1.0.0,需要配置DOCKER_PASSWORD的secrets +# 构建后镜像为 ${docker_registry}/${docker_username}/${repo_name}:1.0.0 +on: + push: + tags: + - v* + +env: + DOCKER_REGISTRY: registry.cn-hangzhou.aliyuncs.com + DOCKER_USERNAME: rsjst + +jobs: + build-image: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 1 + + - name: Setup Pnpm and Install + uses: seepine/action-setup-pnpm@v1 + + - name: Project Build + run: pnpm run build + + - name: Get Meta + id: meta + run: | + echo REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F"/" '{print $2}') >> $GITHUB_OUTPUT + echo REPO_VERSION=$(echo ${{ github.ref }} | awk -F"/" '{print $3}' | awk -F"v" '{print $2}') >> $GITHUB_OUTPUT + + - name: Docker build push + uses: seepine/action-docker-build-push@v1 + with: + registry: ${{ env.DOCKER_REGISTRY }} + username: ${{ env.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + context: . + file: ./docker/Dockerfile + platforms: linux/amd64,linux/arm64 + tags: | + ${{ env.DOCKER_REGISTRY }}/${{ env.DOCKER_USERNAME }}/${{ steps.meta.outputs.REPO_NAME }}:latest + ${{ env.DOCKER_REGISTRY }}/${{ env.DOCKER_USERNAME }}/${{ steps.meta.outputs.REPO_NAME }}:${{ steps.meta.outputs.REPO_VERSION }} + + - name: WeChat Work notification + uses: seepine/action-wechat-work@master + env: + WECHAT_WORK_BOT_WEBHOOK: ${{ secrets.WECHAT_WORK_BOT_WEBHOOK }} + if: ${{ env.WECHAT_WORK_BOT_WEBHOOK != '' }} + with: + msgtype: markdown + content: "${{ steps.meta.outputs.REPO_NAME }} build docker image success.\n + > Tag: ${{ env.DOCKER_REGISTRY }}/${{ env.DOCKER_USERNAME }}/${{ steps.meta.outputs.REPO_NAME }}:${{ steps.meta.outputs.REPO_VERSION }}" diff --git a/.gitea/workflows/check.yml b/.gitea/workflows/check.yml new file mode 100644 index 0000000..b987911 --- /dev/null +++ b/.gitea/workflows/check.yml @@ -0,0 +1,76 @@ +name: Checks + +on: + - pull_request + +jobs: + setup: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 1 + + - name: Setup Pnpm and Install + uses: seepine/action-setup-pnpm@v1 + + eslint: + needs: setup + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 1 + + - name: Setup Pnpm and Install + uses: seepine/action-setup-pnpm@v1 + + - name: Eslint Test + run: npx eslint --ext ".vue,.js,.jsx,.ts,.tsx" src/ --max-warnings=0 + + tslint: + needs: setup + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 1 + + - name: Setup Pnpm and Install + uses: seepine/action-setup-pnpm@v1 + + - name: Tslint Test + run: pnpm type-check + + commit-lint: + needs: setup + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 10 + + - name: Setup Pnpm and Install + uses: seepine/action-setup-pnpm@v1 + + - name: Commit lint + run: npx commitlint --to HEAD --verbose + + build: + needs: setup + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 1 + + - name: Setup Pnpm and Install + uses: seepine/action-setup-pnpm@v1 + + - name: Build + run: pnpm build diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c2dfe0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,29 @@ +node_modules +.DS_Store +dist +dist-ssr +*.local + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# Editor directories and files +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +auto-imports.d.ts +components.d.ts + +yarn.lock +package-lock.lock diff --git a/.hintrc b/.hintrc new file mode 100644 index 0000000..5b18485 --- /dev/null +++ b/.hintrc @@ -0,0 +1,8 @@ +{ + "extends": [ + "development" + ], + "hints": { + "meta-viewport": "off" + } +} \ No newline at end of file diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100644 index 0000000..5e563eb --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npx --no-install commitlint --edit diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 0000000..d24fdfc --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npx lint-staged diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..7549542 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +registry=https://registry.npmmirror.com diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..68854e0 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,11 @@ +{ + "useTabs": false, + "tabWidth": 2, + "printWidth": 100, + "singleQuote": true, + "trailingComma": "none", + "bracketSpacing": true, + "semi": false, + "plugins": ["prettier-plugin-tailwindcss"], + "tailwindConfig": "./tailwind.config.js" +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..87d4dda --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,22 @@ +{ + "recommendations": [ + // volar + "Vue.volar", + // editor + "EditorConfig.EditorConfig", + // prettier + "esbenp.prettier-vscode", + // eslint + "dbaeumer.vscode-eslint", + // package 包跳转 + "ravenq.vscode-goto-node-modules", + // html 标签自动重命名 + "formulahendry.auto-rename-tag", + // git 插件 + "mhutchie.git-graph", + // tailwindcss 插件 + "bradlc.vscode-tailwindcss", + // 彩虹插件 + "oderwat.indent-rainbow" + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..600c590 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,44 @@ +{ + // 保存时执行eslint + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit" + }, + // 从不展示扩展缩写 + "emmet.showExpandedAbbreviation": "never", + // 关闭代码区域小地图 + "editor.minimap.enabled": false, + // 代码过长换行 + "editor.wordWrap": "on", + // 开启文件折叠 + "explorer.fileNesting.enabled": true, + "explorer.fileNesting.expand": false, + "explorer.fileNesting.patterns": { + // 把大部分配置文件都折叠到package.json里 + "package.json": ".*, index.html, yarn.lock, *.js, *.ts, *.json, *.sh" + }, + // 隐藏某些文件或目录 + "files.exclude": { + "**/.git": true, + "**/.svn": true, + "**/.hg": true, + "**/CVS": true, + "**/.DS_Store": true, + "**/Thumbs.db": true, + ".husky": true + }, + // 自定义彩虹插件颜色 + "indentRainbow.colors": [ + "rgba(245, 63, 63, 0.07)", + "rgba(255, 125, 0, 0.07)", + "rgba(247, 186, 30, 0.07)", + "rgba(250, 220, 25, 0.07)", + "rgba(159, 219, 29, 0.07)", + "rgba(0, 180, 42, 0.07)", + "rgba(20, 201, 201, 0.07)", + "rgba(52, 145, 250, 0.07)", + "rgba(22, 93, 255, 0.07)", + "rgba(114, 46, 209, 0.07)", + "rgba(217, 26, 217, 0.07)", + "rgba(245, 49, 157, 0.07)" + ] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..31ee235 --- /dev/null +++ b/README.md @@ -0,0 +1,172 @@ +# FxBootUi + +## 一、开发准备 + +### 1.开发工具:VsCode + +### 2.安装插件 + +打开项目后右下角会有建议安装,选择安装即可,也可自己一个个搜索安装 + +- Vue.volar +- EditorConfig.EditorConfig +- esbenp.prettier-vscode +- dbaeumer.vscode-eslint +- ravenq.vscode-goto-node-modules +- formulahendry.auto-rename-tag +- mhutchie.git-graph + +## 二、快速入门 + +### 1.修改项目信息 + +配置根目录的`package.json`,修改项目名和版本号 + +```json +{ + "name": "fxboot-ui", + "version": "0.1.0" +} +``` + +### 2.安装依赖 + +```shell +# 若未安装pnpm请先执行npm i -g pnpm +pnpm i +``` + +### 3.运行 + +```shell +pnpm dev +``` + +## 三、代码管理 + +### 1.配置用户名和邮箱 + +将以下命令中 `yourName` 和 `your@email.com` 替换为你的用户名和邮箱并执行 + +```shell +git config user.name yourName +git config user.email your@email.com +``` + +### 2.非 windows 系统可能需要先执行命令 + +```shell +chmod 755 .husky/pre-commit +chmod 755 .husky/commit-msg +``` + +### 3.保存变更文件 + +使用 `git add xxx` 或 VsCode 左侧的源代码管理面板提交变更文件 + +### 4.提交代码 + +执行命令后,按提示输入内容即可 + +```shell +pnpm cz +``` + +### 5.推送到仓库 + +```shell +git push +``` + +### 6.查看提交记录 + +通过`菜单栏->查看->命令面板`(或快捷键打开也可),输入`git log`,选择建议项`Git Graph: View Git Graph (git log)`即可 + +## 四、部署 + +### 1.配置镜像 + +配置根目录的 `deploy.sh` 文件,修改 `HUB` 为你的镜像地址 + +```shell +HUB=registry.cn-hangzhou.aliyuncs.com/rsjst +``` + +### 2.打包 + +```shell +sh deploy.sh +``` + +### 3.部署 + +配置 dockerSwarm 的 stack 中的 image 为打包的镜像即可,例如 + +```yml +version: '3.7' +services: + fx-boot-ui: + image: registry.cn-hangzhou.aliyuncs.com/rsjst/fx-boot-ui:0.1.0 + environment: + # 配置为服务器的ip地址:后端端口 + PROXY_PASS: http://192.168.1.1:8020/ + ports: + # 映射为4000端口 + - 4000:80 + # 下述配置实现热更新,不需要可去除 + deploy: + mode: replicated + replicas: 1 + update_config: + delay: 5s + order: start-first +``` + +### 4.配置 nginx + +配置服务器上的nginx,代理转发到前端端口 + +```nginx +location / { + proxy_pass http://127.0.0.1:4000/; + proxy_set_header Host $host:$server_port; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +} +``` + +## 五、技术要点 + +Vue 3 + Typescript + Vite + +- 编程语言:TypeScript 4.x + JavaScript +- 构建工具:Vite 3.x +- 前端框架:Vue 3.x +- 路由工具:Vue Router 4.x +- 状态管理:Pinia +- UI 组件库:Arco +- UI 组件库:Crco +- CSS 预编译:Sass +- HTTP 工具:Axios +- Git Hook 工具:husky + lint-staged +- 代码规范:EditorConfig + Prettier + ESLint + Airbnb JavaScript Style Guide +- 提交规范:Commitizen + Commitlint + + +## 六、相关文档 + +### 1.Vue3.X +[快速上手|Vue.js](https://cn.vuejs.org/guide/quick-start.html) + +### 2.Pinia +[Pinia](https://pinia.vuejs.org/) + +[Pinia Demo](./src/store/README.md) + +### 3.Arco +[Arco 组件库](https://arco.design/vue/component/button) + +### 4.Crco +[Crco 组件库](https://crco.seepine.com) + +或从 `/src/views` 中任意子目录中,皆可查看 `crco` 的应用案例,例如 `/src/views/recruit/resume` diff --git a/commitlint.config.js b/commitlint.config.js new file mode 100644 index 0000000..c10e122 --- /dev/null +++ b/commitlint.config.js @@ -0,0 +1,26 @@ +module.exports = { + extends: [ + '@commitlint/config-conventional' + // 'gitmoji' + ], + rules: { + 'type-enum': [ + 2, + 'always', + [ + 'build', + 'chore', + 'ci', + 'docs', + 'feat', + 'fix', + 'perf', + 'refactor', + 'revert', + 'style', + 'test', + 'improvement' + ] + ] + } +} diff --git a/deploy.sh b/deploy.sh new file mode 100644 index 0000000..13f66e7 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,18 @@ +run() { + echo "[RUN] " $* + $* + if [ $? -ne 0 ]; then + echo "[ERROR] fail" + exit 1 + fi +} + +run npm run pre +run npm run build + +HUB=registry.cn-hangzhou.aliyuncs.com/rsjst +NAME=$(cat package.json | grep "name" | sed 's/:/\n/g' | sed '1d' | sed 's/}//g' | sed 's/ //g' | sed 's/,//g' | sed 's/"//g') +VERSION=$(cat package.json | grep "version" | sed 's/:/\n/g' | sed '1d' | sed 's/}//g' | sed 's/ //g' | sed 's/,//g' | sed 's/"//g') + +run docker buildx build -t $HUB/$NAME:$VERSION --platform=linux/amd64,linux/arm64 -f ./docker/Dockerfile . --push +run echo build and push $HUB/$NAME:$VERSION success diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..555dfe5 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,16 @@ +FROM git.zgfxrc.cn/registry/nginx:1.25-alpine-slim + +RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories \ + && apk add --no-cache tzdata \ + && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ + && apk del tzdata \ + && echo "*/30 * * * * ntpd -d -q -n -p ntp.aliyun.com" >> /etc/crontabs/root + +ENV LISTEN_PORT=80\ + SERVER_NAME=localhost\ + PROXY_PASS=http://127.0.0.1 + +ADD ./docker/ui.conf /etc/nginx/templates/default.conf.template + +COPY ./dist/ /html +RUN chmod -R 755 /html diff --git a/docker/ui.conf b/docker/ui.conf new file mode 100644 index 0000000..6ebe548 --- /dev/null +++ b/docker/ui.conf @@ -0,0 +1,31 @@ +server { + listen ${LISTEN_PORT}; + server_name ${SERVER_NAME}; + + gzip on; + gzip_min_length 1k; + gzip_buffers 4 16k; + gzip_http_version 1.1; + gzip_comp_level 2; + gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml; + gzip_vary on; + gzip_proxied expired no-cache no-store private auth; + gzip_disable "MSIE [1-6]\."; + + client_max_body_size 4000m; + client_header_buffer_size 32k; + large_client_header_buffers 4 32k; + + location /webapi/ { + proxy_pass ${PROXY_PASS}; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto http; + } + + location / { + root /html; + index index.html; + try_files $uri $uri/ /index.html; + } +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..8d6793f --- /dev/null +++ b/index.html @@ -0,0 +1,277 @@ + + + + + + + FxBoot + + + + + + + + +
+
+
+
+
+
FxBoot
+
+
+ + + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..5052cae --- /dev/null +++ b/package.json @@ -0,0 +1,71 @@ +{ + "name": "fxboot-ui", + "version": "0.1.0", + "private": true, + "license": "ISC", + "packageManager": "pnpm@9.7.0", + "scripts": { + "dev": "vite", + "build": "vite optimize && vite build", + "type-check": "vite optimize && vue-tsc --noEmit --project tsconfig.json --strict", + "serve": "vite preview", + "prepare": "husky install", + "commit": "npx cz-customizable", + "cz": "npx cz-customizable" + }, + "dependencies": { + "@icon-park/vue-next": "^1.4.2", + "@vueuse/core": "^9.13.0", + "axios": "^1.6.8", + "crypto-js": "^4.1.1", + "dayjs": "^1.11.3", + "decimal.js": "^10.4.3", + "encryptlong": "^3.1.4", + "jsencrypt": "^3.2.1", + "lodash": "^4.17.21", + "pinia": "~2.0.14", + "qs": "~6.10.1", + "vue": "~3.2.37", + "vue-router": "~4.0.16", + "xlsx": "^0.18.5" + }, + "devDependencies": { + "@arco-design/web-vue": "~2.55.1", + "@commitlint/cli": "~17.3.0", + "@commitlint/config-conventional": "~17.3.0", + "@iconify/json": "^2.2.144", + "@types/lodash": "^4.14.180", + "@types/node": "~16.11.11", + "@typescript-eslint/eslint-plugin": "~4.33.0", + "@typescript-eslint/parser": "~4.33.0", + "@vitejs/plugin-vue": "^3.0.0", + "@vitejs/plugin-vue-jsx": "^2.0.0", + "autoprefixer": "^10.4.13", + "crco": "2.9.14", + "cz-customizable": "~7.0.0", + "eslint": "~7.32.0", + "eslint-config-airbnb-base": "~14.2.1", + "eslint-config-prettier": "~8.3.0", + "eslint-plugin-import": "~2.25.3", + "eslint-plugin-prettier": "~4.0.0", + "eslint-plugin-vue": "~7.20.0", + "husky": "~8.0.2", + "less": "^4.1.2", + "lint-staged": "~12.3.7", + "postcss": "^8.4.21", + "prettier": "~2.6.0", + "prettier-plugin-tailwindcss": "^0.2.4", + "sass": "~1.49.9", + "tailwindcss": "^3.2.7", + "terser": "^5.14.2", + "typescript": "~4.4.4", + "unplugin-auto-import": "^0.16.7", + "unplugin-vue-components": "^0.25.2", + "vite": "^3.0.0", + "vite-plugin-compression": "^0.5.1", + "vue-tsc": "~0.3.0" + }, + "lint-staged": { + "*.{vue,js,jsx,ts,tsx}": "eslint --fix" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..186e2d4 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,6477 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@icon-park/vue-next': + specifier: ^1.4.2 + version: 1.4.2(vue@3.2.37) + '@vueuse/core': + specifier: ^9.13.0 + version: 9.13.0(vue@3.2.37) + axios: + specifier: ^1.6.8 + version: 1.6.8 + crypto-js: + specifier: ^4.1.1 + version: 4.1.1 + dayjs: + specifier: ^1.11.3 + version: 1.11.3 + decimal.js: + specifier: ^10.4.3 + version: 10.4.3 + encryptlong: + specifier: ^3.1.4 + version: 3.1.4 + jsencrypt: + specifier: ^3.2.1 + version: 3.2.1 + lodash: + specifier: ^4.17.21 + version: 4.17.21 + pinia: + specifier: ~2.0.14 + version: 2.0.14(typescript@4.4.4)(vue@3.2.37) + qs: + specifier: ~6.10.1 + version: 6.10.1 + vue: + specifier: ~3.2.37 + version: 3.2.37 + vue-router: + specifier: ~4.0.16 + version: 4.0.16(vue@3.2.37) + xlsx: + specifier: ^0.18.5 + version: 0.18.5 + devDependencies: + '@arco-design/web-vue': + specifier: ~2.55.1 + version: 2.55.1(vue@3.2.37) + '@commitlint/cli': + specifier: ~17.3.0 + version: 17.3.0 + '@commitlint/config-conventional': + specifier: ~17.3.0 + version: 17.3.0 + '@iconify/json': + specifier: ^2.2.144 + version: 2.2.144 + '@types/lodash': + specifier: ^4.14.180 + version: 4.14.180 + '@types/node': + specifier: ~16.11.11 + version: 16.11.11 + '@typescript-eslint/eslint-plugin': + specifier: ~4.33.0 + version: 4.33.0(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@4.4.4))(eslint@7.32.0)(typescript@4.4.4) + '@typescript-eslint/parser': + specifier: ~4.33.0 + version: 4.33.0(eslint@7.32.0)(typescript@4.4.4) + '@vitejs/plugin-vue': + specifier: ^3.0.0 + version: 3.0.0(vite@3.0.0(less@4.1.2)(sass@1.49.9)(terser@5.14.2))(vue@3.2.37) + '@vitejs/plugin-vue-jsx': + specifier: ^2.0.0 + version: 2.0.0(vite@3.0.0(less@4.1.2)(sass@1.49.9)(terser@5.14.2))(vue@3.2.37) + autoprefixer: + specifier: ^10.4.13 + version: 10.4.13(postcss@8.4.21) + crco: + specifier: 2.9.14 + version: 2.9.14(@arco-design/web-vue@2.55.1(vue@3.2.37))(axios@1.6.8)(lodash@4.17.21) + cz-customizable: + specifier: ~7.0.0 + version: 7.0.0 + eslint: + specifier: ~7.32.0 + version: 7.32.0 + eslint-config-airbnb-base: + specifier: ~14.2.1 + version: 14.2.1(eslint-plugin-import@2.25.3(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@4.4.4))(eslint@7.32.0))(eslint@7.32.0) + eslint-config-prettier: + specifier: ~8.3.0 + version: 8.3.0(eslint@7.32.0) + eslint-plugin-import: + specifier: ~2.25.3 + version: 2.25.3(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@4.4.4))(eslint@7.32.0) + eslint-plugin-prettier: + specifier: ~4.0.0 + version: 4.0.0(eslint-config-prettier@8.3.0(eslint@7.32.0))(eslint@7.32.0)(prettier@2.6.0) + eslint-plugin-vue: + specifier: ~7.20.0 + version: 7.20.0(eslint@7.32.0) + husky: + specifier: ~8.0.2 + version: 8.0.2 + less: + specifier: ^4.1.2 + version: 4.1.2 + lint-staged: + specifier: ~12.3.7 + version: 12.3.7(enquirer@2.4.1) + postcss: + specifier: ^8.4.21 + version: 8.4.21 + prettier: + specifier: ~2.6.0 + version: 2.6.0 + prettier-plugin-tailwindcss: + specifier: ^0.2.4 + version: 0.2.4(prettier@2.6.0) + sass: + specifier: ~1.49.9 + version: 1.49.9 + tailwindcss: + specifier: ^3.2.7 + version: 3.2.7(postcss@8.4.21)(ts-node@10.9.1(@types/node@20.5.1)(typescript@4.9.5)) + terser: + specifier: ^5.14.2 + version: 5.14.2 + typescript: + specifier: ~4.4.4 + version: 4.4.4 + unplugin-auto-import: + specifier: ^0.16.7 + version: 0.16.7(@vueuse/core@9.13.0(vue@3.2.37))(rollup@2.79.1) + unplugin-vue-components: + specifier: ^0.25.2 + version: 0.25.2(@babel/parser@7.23.3)(rollup@2.79.1)(vue@3.2.37) + vite: + specifier: ^3.0.0 + version: 3.0.0(less@4.1.2)(sass@1.49.9)(terser@5.14.2) + vite-plugin-compression: + specifier: ^0.5.1 + version: 0.5.1(vite@3.0.0(less@4.1.2)(sass@1.49.9)(terser@5.14.2)) + vue-tsc: + specifier: ~0.3.0 + version: 0.3.0(typescript@4.4.4) + +packages: + + '@aashutoshrathi/word-wrap@1.2.6': + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + + '@ampproject/remapping@2.2.1': + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} + + '@antfu/utils@0.7.6': + resolution: {integrity: sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w==} + + '@arco-design/color@0.4.0': + resolution: {integrity: sha512-s7p9MSwJgHeL8DwcATaXvWT3m2SigKpxx4JA1BGPHL4gfvaQsmQfrLBDpjOJFJuJ2jG2dMt3R3P8Pm9E65q18g==} + + '@arco-design/web-vue@2.55.1': + resolution: {integrity: sha512-MI0mteI4B1+UAKAslCrV2zqRKHWwkjLjdOpOLAR36cAbYhtlj7Tel3yAjGHk5zsQ1ODZX60OFfRfl66pq6919A==} + peerDependencies: + vue: ^3.1.0 + + '@babel/code-frame@7.12.11': + resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} + + '@babel/code-frame@7.22.13': + resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.23.3': + resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.23.3': + resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.23.3': + resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.22.5': + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.22.15': + resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.22.15': + resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-environment-visitor@7.22.20': + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-function-name@7.23.0': + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-hoist-variables@7.22.5': + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-member-expression-to-functions@7.23.0': + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.22.15': + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.23.3': + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.22.5': + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.22.5': + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-replace-supers@7.22.20': + resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-simple-access@7.22.5': + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-skip-transparent-expression-wrappers@7.22.5': + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-split-export-declaration@7.22.6': + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.22.5': + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.22.20': + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.22.15': + resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.23.2': + resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} + engines: {node: '>=6.9.0'} + + '@babel/highlight@7.22.20': + resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.23.3': + resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-jsx@7.23.3': + resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.23.3': + resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.23.3': + resolution: {integrity: sha512-ogV0yWnq38CFwH20l2Afz0dfKuZBx9o/Y2Rmh5vuSS0YD1hswgEgTfyTzuSrT2q9btmHRSqYoSfwFUVaC1M1Jw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/template@7.22.15': + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.23.3': + resolution: {integrity: sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.23.3': + resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==} + engines: {node: '>=6.9.0'} + + '@commitlint/cli@17.3.0': + resolution: {integrity: sha512-/H0md7TsKflKzVPz226VfXzVafJFO1f9+r2KcFvmBu08V0T56lZU1s8WL7/xlxqLMqBTVaBf7Ixtc4bskdEEZg==} + engines: {node: '>=v14'} + hasBin: true + + '@commitlint/config-conventional@17.3.0': + resolution: {integrity: sha512-hgI+fN5xF8nhS9uG/V06xyT0nlcyvHHMkq0kwRSr96vl5BFlRGaL2C0/YY4kQagfU087tmj01bJkG9Ek98Wllw==} + engines: {node: '>=v14'} + + '@commitlint/config-validator@17.8.1': + resolution: {integrity: sha512-UUgUC+sNiiMwkyiuIFR7JG2cfd9t/7MV8VB4TZ+q02ZFkHoduUS4tJGsCBWvBOGD9Btev6IecPMvlWUfJorkEA==} + engines: {node: '>=v14'} + + '@commitlint/ensure@17.8.1': + resolution: {integrity: sha512-xjafwKxid8s1K23NFpL8JNo6JnY/ysetKo8kegVM7c8vs+kWLP8VrQq+NbhgVlmCojhEDbzQKp4eRXSjVOGsow==} + engines: {node: '>=v14'} + + '@commitlint/execute-rule@17.8.1': + resolution: {integrity: sha512-JHVupQeSdNI6xzA9SqMF+p/JjrHTcrJdI02PwesQIDCIGUrv04hicJgCcws5nzaoZbROapPs0s6zeVHoxpMwFQ==} + engines: {node: '>=v14'} + + '@commitlint/format@17.8.1': + resolution: {integrity: sha512-f3oMTyZ84M9ht7fb93wbCKmWxO5/kKSbwuYvS867duVomoOsgrgljkGGIztmT/srZnaiGbaK8+Wf8Ik2tSr5eg==} + engines: {node: '>=v14'} + + '@commitlint/is-ignored@17.8.1': + resolution: {integrity: sha512-UshMi4Ltb4ZlNn4F7WtSEugFDZmctzFpmbqvpyxD3la510J+PLcnyhf9chs7EryaRFJMdAKwsEKfNK0jL/QM4g==} + engines: {node: '>=v14'} + + '@commitlint/lint@17.8.1': + resolution: {integrity: sha512-aQUlwIR1/VMv2D4GXSk7PfL5hIaFSfy6hSHV94O8Y27T5q+DlDEgd/cZ4KmVI+MWKzFfCTiTuWqjfRSfdRllCA==} + engines: {node: '>=v14'} + + '@commitlint/load@17.8.1': + resolution: {integrity: sha512-iF4CL7KDFstP1kpVUkT8K2Wl17h2yx9VaR1ztTc8vzByWWcbO/WaKwxsnCOqow9tVAlzPfo1ywk9m2oJ9ucMqA==} + engines: {node: '>=v14'} + + '@commitlint/message@17.8.1': + resolution: {integrity: sha512-6bYL1GUQsD6bLhTH3QQty8pVFoETfFQlMn2Nzmz3AOLqRVfNNtXBaSY0dhZ0dM6A2MEq4+2d7L/2LP8TjqGRkA==} + engines: {node: '>=v14'} + + '@commitlint/parse@17.8.1': + resolution: {integrity: sha512-/wLUickTo0rNpQgWwLPavTm7WbwkZoBy3X8PpkUmlSmQJyWQTj0m6bDjiykMaDt41qcUbfeFfaCvXfiR4EGnfw==} + engines: {node: '>=v14'} + + '@commitlint/read@17.8.1': + resolution: {integrity: sha512-Fd55Oaz9irzBESPCdMd8vWWgxsW3OWR99wOntBDHgf9h7Y6OOHjWEdS9Xzen1GFndqgyoaFplQS5y7KZe0kO2w==} + engines: {node: '>=v14'} + + '@commitlint/resolve-extends@17.8.1': + resolution: {integrity: sha512-W/ryRoQ0TSVXqJrx5SGkaYuAaE/BUontL1j1HsKckvM6e5ZaG0M9126zcwL6peKSuIetJi7E87PRQF8O86EW0Q==} + engines: {node: '>=v14'} + + '@commitlint/rules@17.8.1': + resolution: {integrity: sha512-2b7OdVbN7MTAt9U0vKOYKCDsOvESVXxQmrvuVUZ0rGFMCrCPJWWP1GJ7f0lAypbDAhaGb8zqtdOr47192LBrIA==} + engines: {node: '>=v14'} + + '@commitlint/to-lines@17.8.1': + resolution: {integrity: sha512-LE0jb8CuR/mj6xJyrIk8VLz03OEzXFgLdivBytoooKO5xLt5yalc8Ma5guTWobw998sbR3ogDd+2jed03CFmJA==} + engines: {node: '>=v14'} + + '@commitlint/top-level@17.8.1': + resolution: {integrity: sha512-l6+Z6rrNf5p333SHfEte6r+WkOxGlWK4bLuZKbtf/2TXRN+qhrvn1XE63VhD8Oe9oIHQ7F7W1nG2k/TJFhx2yA==} + engines: {node: '>=v14'} + + '@commitlint/types@17.8.1': + resolution: {integrity: sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==} + engines: {node: '>=v14'} + + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + + '@emmetio/abbreviation@2.3.3': + resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} + + '@emmetio/css-abbreviation@2.1.8': + resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} + + '@emmetio/scanner@1.0.4': + resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} + + '@esbuild/linux-loong64@0.14.54': + resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@eslint/eslintrc@0.4.3': + resolution: {integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==} + engines: {node: ^10.12.0 || >=12.0.0} + + '@humanwhocodes/config-array@0.5.0': + resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} + engines: {node: '>=10.10.0'} + + '@humanwhocodes/object-schema@1.2.1': + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + + '@icon-park/vue-next@1.4.2': + resolution: {integrity: sha512-+QklF255wkfBOabY+xw6FAI0Bwln/RhdwCunNy/9sKdKuChtaU67QZqU67KGAvZUTeeBgsL+yaHHxqfQeGZXEQ==} + engines: {node: '>= 8.0.0', npm: '>= 5.0.0'} + peerDependencies: + vue: 3.x + + '@iconify/json@2.2.144': + resolution: {integrity: sha512-R8JfNAFdp+jJqsdK/ANYFj2iTuWlSphtuHg0d0Ja+UVntXhPptDX1jMASEQrCFnUhLgifjQ7UoBa6sYAUvFUgw==} + + '@iconify/types@2.0.0': + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + + '@jridgewell/gen-mapping@0.3.3': + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.1': + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.1.2': + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.5': + resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} + + '@jridgewell/sourcemap-codec@1.4.15': + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + '@jridgewell/trace-mapping@0.3.20': + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@rollup/pluginutils@5.0.5': + resolution: {integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@tsconfig/node10@1.0.9': + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + '@types/lodash@4.14.180': + resolution: {integrity: sha512-XOKXa1KIxtNXgASAnwj7cnttJxS4fksBRywK/9LzRV5YxrF80BXZIGeQSuoESQ/VkUj30Ae0+YcuHc15wJCB2g==} + + '@types/minimist@1.2.5': + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + + '@types/node@16.11.11': + resolution: {integrity: sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==} + + '@types/node@20.5.1': + resolution: {integrity: sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==} + + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + + '@types/web-bluetooth@0.0.16': + resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} + + '@typescript-eslint/eslint-plugin@4.33.0': + resolution: {integrity: sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + '@typescript-eslint/parser': ^4.0.0 + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/experimental-utils@4.33.0': + resolution: {integrity: sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + eslint: '*' + + '@typescript-eslint/parser@4.33.0': + resolution: {integrity: sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@4.33.0': + resolution: {integrity: sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + + '@typescript-eslint/types@4.33.0': + resolution: {integrity: sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + + '@typescript-eslint/typescript-estree@4.33.0': + resolution: {integrity: sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/visitor-keys@4.33.0': + resolution: {integrity: sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + + '@vitejs/plugin-vue-jsx@2.0.0': + resolution: {integrity: sha512-WF9ApZ/ivyyW3volQfu0Td0KNPhcccYEaRNzNY1NxRLVJQLSX0nFqquv3e2g7MF74p1XZK4bGtDL2y5i5O5+1A==} + engines: {node: '>=14.18.0'} + peerDependencies: + vite: ^3.0.0 + vue: ^3.0.0 + + '@vitejs/plugin-vue@3.0.0': + resolution: {integrity: sha512-yWP34ArFh/jAeNUDkkLz/kVRLjf5ppJiq4L36f64Cp6dIrMQeYZGDP9xxdemlXfZR9ylN9JgHUl3GzfqOtgYDg==} + engines: {node: '>=14.18.0'} + peerDependencies: + vite: ^3.0.0 + vue: ^3.2.25 + + '@volar/code-gen@0.27.24': + resolution: {integrity: sha512-s4j/QqOZUW03PeD6LmVYI00Q1C3CfJEOePDOQwDvCTUov4lFk0iSBtFyYhjlLyQ1pdtV1+TDTErkj2aMQtc4PA==} + + '@volar/html2pug@0.27.13': + resolution: {integrity: sha512-3NYgNA5F3PDsKbbpOrVdGy2S7ZYmZIbFmbp1A/27DDzjj/uIC9Pj7HXVvbYOzi8HcOxUPt0BMrh4TVzBUaCFww==} + deprecated: 'WARNING: This project has been renamed to @johnsoncodehk/html2pug. Install using @johnsoncodehk/html2pug instead.' + + '@volar/shared@0.27.24': + resolution: {integrity: sha512-Mi8a4GQaiorfb+o4EqOXDZm9E/uBJXgScFgF+NhtcMBOUKHNMKQyLI7YRGumtyJTTdaX7nSDJjGGTkv23tcOtQ==} + + '@volar/source-map@0.27.24': + resolution: {integrity: sha512-2I5a7cXqekZ66D6lHep7ttJgvVVtPEBUIe1hnpcGbnXWNA2ya6f6jKNNyTmrXQyfkh32IEuaUd4kocR+3AKMag==} + + '@volar/transforms@0.27.24': + resolution: {integrity: sha512-sOHi1ZSapFlxn7yPl4MO5TXd9aWC0BVq2CgXAJ2EESb+ddh2uJbGQgLLNocX+MDh419cUuuFT2QAJpuWHhJcng==} + + '@vscode/emmet-helper@2.9.2': + resolution: {integrity: sha512-MaGuyW+fa13q3aYsluKqclmh62Hgp0BpKIqS66fCxfOaBcVQ1OnMQxRRgQUYnCkxFISAQlkJ0qWWPyXjro1Qrg==} + + '@vue/babel-helper-vue-transform-on@1.1.5': + resolution: {integrity: sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==} + + '@vue/babel-plugin-jsx@1.1.5': + resolution: {integrity: sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@vue/compiler-core@3.2.37': + resolution: {integrity: sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==} + + '@vue/compiler-core@3.3.8': + resolution: {integrity: sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g==} + + '@vue/compiler-dom@3.2.37': + resolution: {integrity: sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==} + + '@vue/compiler-dom@3.3.8': + resolution: {integrity: sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ==} + + '@vue/compiler-sfc@3.2.37': + resolution: {integrity: sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==} + + '@vue/compiler-ssr@3.2.37': + resolution: {integrity: sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==} + + '@vue/devtools-api@6.5.1': + resolution: {integrity: sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==} + + '@vue/reactivity-transform@3.2.37': + resolution: {integrity: sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==} + + '@vue/reactivity@3.2.37': + resolution: {integrity: sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==} + + '@vue/reactivity@3.3.8': + resolution: {integrity: sha512-ctLWitmFBu6mtddPyOKpHg8+5ahouoTCRtmAHZAXmolDtuZXfjL2T3OJ6DL6ezBPQB1SmMnpzjiWjCiMYmpIuw==} + + '@vue/runtime-core@3.2.37': + resolution: {integrity: sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==} + + '@vue/runtime-dom@3.2.37': + resolution: {integrity: sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==} + + '@vue/server-renderer@3.2.37': + resolution: {integrity: sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==} + peerDependencies: + vue: 3.2.37 + + '@vue/shared@3.2.37': + resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==} + + '@vue/shared@3.3.8': + resolution: {integrity: sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw==} + + '@vueuse/core@9.13.0': + resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==} + + '@vueuse/metadata@9.13.0': + resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} + + '@vueuse/shared@9.13.0': + resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} + + JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn-node@1.8.2: + resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} + + acorn-walk@7.2.0: + resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} + engines: {node: '>=0.4.0'} + + acorn-walk@8.3.0: + resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} + engines: {node: '>=0.4.0'} + + acorn@7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} + hasBin: true + + acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} + engines: {node: '>=0.4.0'} + hasBin: true + + adler-32@1.3.1: + resolution: {integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==} + engines: {node: '>=0.8'} + + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + ansi-escapes@3.2.0: + resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==} + engines: {node: '>=4'} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-regex@3.0.1: + resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} + engines: {node: '>=4'} + + ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + + array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + + array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + engines: {node: '>= 0.4'} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + + arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} + + arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + + asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + + assert-never@1.2.1: + resolution: {integrity: sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==} + + astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + autoprefixer@10.4.13: + resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + + axios@1.6.8: + resolution: {integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==} + + b-tween@0.3.3: + resolution: {integrity: sha512-oEHegcRpA7fAuc9KC4nktucuZn2aS8htymCPcP3qkEGPqiBH+GfqtqoG2l7LxHngg6O0HFM7hOeOYExl1Oz4ZA==} + + b-validate@1.5.3: + resolution: {integrity: sha512-iCvCkGFskbaYtfQ0a3GmcQCHl/Sv1GufXFGuUQ+FE+WJa7A/espLOuFIn09B944V8/ImPj71T4+rTASxO2PAuA==} + + babel-walk@3.0.0-canary-5: + resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==} + engines: {node: '>= 10.0.0'} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + batch-processor@1.0.0: + resolution: {integrity: sha512-xoLQD8gmmR32MeuBHgH0Tzd5PuSZx71ZsbhVxOCRbgktZEPe4SQy7s9Z50uPp0F/f7iw2XmkHN2xkgbMfckMDA==} + + binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + + browserslist@4.22.1: + resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + caniuse-lite@1.0.30001561: + resolution: {integrity: sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==} + + cfb@1.2.2: + resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==} + engines: {node: '>=0.8'} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + character-parser@2.2.0: + resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==} + + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + + chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + cli-cursor@2.1.0: + resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==} + engines: {node: '>=4'} + + cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + + cli-truncate@2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + + cli-truncate@3.1.0: + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + cli-width@2.2.1: + resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + codepage@1.15.0: + resolution: {integrity: sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==} + engines: {node: '>=0.8'} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color@3.2.1: + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + + compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + + compute-scroll-into-view@1.0.20: + resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + confusing-browser-globals@1.0.11: + resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} + + constantinople@4.0.1: + resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==} + + conventional-changelog-angular@6.0.0: + resolution: {integrity: sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==} + engines: {node: '>=14'} + + conventional-changelog-conventionalcommits@5.0.0: + resolution: {integrity: sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw==} + engines: {node: '>=10'} + + conventional-commits-parser@4.0.0: + resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==} + engines: {node: '>=14'} + hasBin: true + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + copy-anything@2.0.6: + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} + + cosmiconfig-typescript-loader@4.4.0: + resolution: {integrity: sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw==} + engines: {node: '>=v14.21.3'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=7' + ts-node: '>=10' + typescript: '>=4' + + cosmiconfig@8.3.6: + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + + crco@2.9.14: + resolution: {integrity: sha512-X+r8FU7CqeP4CZ90EwwISQ/aGubMNZzxOHsFza7uqwkTA02oJkENjRkUN1FAtvF0jqWyhQWIBN4zlaNWROB80A==} + peerDependencies: + '@arco-design/web-vue': '>=2.39.2' + axios: '>=0.20.0' + lodash: '>=4.17.21' + + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + crypto-js@4.1.1: + resolution: {integrity: sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csstype@2.6.21: + resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} + + cz-customizable@7.0.0: + resolution: {integrity: sha512-pQKkGSm+8SY9VY/yeJqDOla1MjrGaG7WG4EYLLEV4VNctGO7WdzdGtWEr2ydKSkrpmTs7f8fmBksg/FaTrUAyw==} + hasBin: true + + dargs@7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} + + dayjs@1.11.3: + resolution: {integrity: sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A==} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + defined@1.0.1: + resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + detective@5.2.1: + resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==} + engines: {node: '>=0.8.0'} + hasBin: true + + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + doctypes@1.1.0: + resolution: {integrity: sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==} + + dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + + domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + + dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + editor@1.0.0: + resolution: {integrity: sha512-SoRmbGStwNYHgKfjOrX2L0mUvp9bUVv0uPppZSOMAntEbcFtoC3MKF5b3T6HQPXKIV+QGY3xPO3JK5it5lVkuw==} + + electron-to-chromium@1.4.580: + resolution: {integrity: sha512-T5q3pjQon853xxxHUq3ZP68ZpvJHuSMY2+BZaW3QzjS4HvNuvsMmZ/+lU+nCrftre1jFZ+OSlExynXWBihnXzw==} + + element-resize-detector@1.2.4: + resolution: {integrity: sha512-Fl5Ftk6WwXE0wqCgNoseKWndjzZlDCwuPTcoVZfCP9R3EHQF8qUtr3YUPNETegRBOKqQKPW3n4kiIWngGi8tKg==} + + emmet@2.4.6: + resolution: {integrity: sha512-dJfbdY/hfeTyf/Ef7Y7ubLYzkBvPQ912wPaeVYpAxvFxkEBf/+hJu4H6vhAvFN6HlxqedlfVn2x1S44FfQ97pg==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + encryptlong@3.1.4: + resolution: {integrity: sha512-nx+om7MXaSBSBPBNKKPrOWMot/C0L0Ru8dy9WTyjO5k8Wo+1hsnK0d8uX1UjctkgcgEWhkKhVScniYDjXvnKgw==} + + enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + + entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + + errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + hasBin: true + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + es-abstract@1.22.3: + resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.0.2: + resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + + es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + + esbuild-android-64@0.14.54: + resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + esbuild-android-arm64@0.14.54: + resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + esbuild-darwin-64@0.14.54: + resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + esbuild-darwin-arm64@0.14.54: + resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + esbuild-freebsd-64@0.14.54: + resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + esbuild-freebsd-arm64@0.14.54: + resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + esbuild-linux-32@0.14.54: + resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + esbuild-linux-64@0.14.54: + resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + esbuild-linux-arm64@0.14.54: + resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + esbuild-linux-arm@0.14.54: + resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + esbuild-linux-mips64le@0.14.54: + resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + esbuild-linux-ppc64le@0.14.54: + resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + esbuild-linux-riscv64@0.14.54: + resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + esbuild-linux-s390x@0.14.54: + resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + esbuild-netbsd-64@0.14.54: + resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + esbuild-openbsd-64@0.14.54: + resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + esbuild-sunos-64@0.14.54: + resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + esbuild-windows-32@0.14.54: + resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + esbuild-windows-64@0.14.54: + resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + esbuild-windows-arm64@0.14.54: + resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + esbuild@0.14.54: + resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} + engines: {node: '>=12'} + hasBin: true + + escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + eslint-config-airbnb-base@14.2.1: + resolution: {integrity: sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==} + engines: {node: '>= 6'} + peerDependencies: + eslint: ^5.16.0 || ^6.8.0 || ^7.2.0 + eslint-plugin-import: ^2.22.1 + + eslint-config-prettier@8.3.0: + resolution: {integrity: sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-module-utils@2.8.0: + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-plugin-import@2.25.3: + resolution: {integrity: sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-prettier@4.0.0: + resolution: {integrity: sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==} + engines: {node: '>=6.0.0'} + peerDependencies: + eslint: '>=7.28.0' + eslint-config-prettier: '*' + prettier: '>=2.0.0' + peerDependenciesMeta: + eslint-config-prettier: + optional: true + + eslint-plugin-vue@7.20.0: + resolution: {integrity: sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw==} + engines: {node: '>=8.10'} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + eslint-utils@2.1.0: + resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} + engines: {node: '>=6'} + + eslint-utils@3.0.0: + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + + eslint-visitor-keys@1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} + + eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + + eslint@7.32.0: + resolution: {integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==} + engines: {node: ^10.12.0 || >=12.0.0} + hasBin: true + + espree@6.2.1: + resolution: {integrity: sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==} + engines: {node: '>=6.0.0'} + + espree@7.3.1: + resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} + engines: {node: ^10.12.0 || >=12.0.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + + figures@2.0.0: + resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} + engines: {node: '>=4'} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + + find-config@1.0.0: + resolution: {integrity: sha512-Z+suHH+7LSE40WfUeZPIxSxypCWvrzdVc60xAjUShZeT5eMWM0/FQUduq3HjluyfAHWvC/aOBkT1pTZktyF/jg==} + engines: {node: '>= 0.12'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@3.1.1: + resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==} + engines: {node: '>=12.0.0'} + + flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + + follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + frac@1.1.2: + resolution: {integrity: sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==} + engines: {node: '>=0.8'} + + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + + fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + + fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + engines: {node: '>=14.14'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + + functional-red-black-tree@1.0.1: + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-intrinsic@1.2.2: + resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + + git-raw-commits@2.0.11: + resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} + engines: {node: '>=10'} + hasBin: true + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + + global-dirs@0.1.1: + resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} + engines: {node: '>=4'} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globals@13.23.0: + resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} + engines: {node: '>=8'} + + globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + + has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + + has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + + has@1.0.4: + resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} + engines: {node: '>= 0.4.0'} + + hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + + html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + + htmlparser2@6.1.0: + resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + husky@8.0.2: + resolution: {integrity: sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==} + engines: {node: '>=14'} + hasBin: true + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + ignore@4.0.6: + resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} + engines: {node: '>= 4'} + + ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + + image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + engines: {node: '>=0.10.0'} + hasBin: true + + immutable@4.3.4: + resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + inquirer@6.5.2: + resolution: {integrity: sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==} + engines: {node: '>=6.0.0'} + + internal-slot@1.0.6: + resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} + engines: {node: '>= 0.4'} + + is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + + is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + + is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + + is-expression@4.0.0: + resolution: {integrity: sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} + engines: {node: '>=4'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + + is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + + is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + + is-promise@2.2.2: + resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} + + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + + is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + + is-text-path@1.0.1: + resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} + engines: {node: '>=0.10.0'} + + is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + + is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + + is-what@3.14.1: + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + js-stringify@1.0.2: + resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsencrypt@3.2.1: + resolution: {integrity: sha512-k1sD5QV0KPn+D8uG9AdGzTQuamt82QZ3A3l6f7TRwMU6Oi2Vg0BsL+wZIQBONcraO1pc78ExMdvmBBJ8WhNYUA==} + + jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonc-parser@2.3.1: + resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} + + jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + jstransformer@1.0.0: + resolution: {integrity: sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + less@4.1.2: + resolution: {integrity: sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==} + engines: {node: '>=6'} + hasBin: true + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lilconfig@2.0.4: + resolution: {integrity: sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==} + engines: {node: '>=10'} + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + lint-staged@12.3.7: + resolution: {integrity: sha512-/S4D726e2GIsDVWIk1XGvheCaDm1SJRQp8efamZFWJxQMVEbOwSysp7xb49Oo73KYCdy97mIWinhlxcoNqIfIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + listr2@4.0.5: + resolution: {integrity: sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==} + engines: {node: '>=12'} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + + local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + engines: {node: '>=14'} + + local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + lodash.isfunction@3.0.9: + resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.kebabcase@4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + + lodash.snakecase@4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + + lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + + lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + lodash.upperfirst@4.3.1: + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log-update@4.0.0: + resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} + engines: {node: '>=10'} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + magic-string@0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + + magic-string@0.30.5: + resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} + engines: {node: '>=12'} + + make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + + map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + + meow@8.1.2: + resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} + engines: {node: '>=10'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mimic-fn@1.2.0: + resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==} + engines: {node: '>=4'} + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + mlly@1.4.2: + resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + mute-stream@0.0.7: + resolution: {integrity: sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==} + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + needle@2.9.1: + resolution: {integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==} + engines: {node: '>= 4.4.x'} + hasBin: true + + node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + number-precision@1.6.0: + resolution: {integrity: sha512-05OLPgbgmnixJw+VvEh18yNPUo3iyp4BEWJcrLu4X9W05KmMifN7Mu5exYvQXqxxeNWhvIF+j3Rij+HmddM/hQ==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + + object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + engines: {node: '>= 0.4'} + + object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + engines: {node: '>= 0.4'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@2.0.1: + resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==} + engines: {node: '>=4'} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + + os-homedir@1.0.2: + resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} + engines: {node: '>=0.10.0'} + + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} + engines: {node: '>= 0.10'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathe@1.1.1: + resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} + + picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pidtree@0.5.0: + resolution: {integrity: sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA==} + engines: {node: '>=0.10'} + hasBin: true + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pinia@2.0.14: + resolution: {integrity: sha512-0nPuZR4TetT/WcLN+feMSjWJku3SQU7dBbXC6uw+R6FLQJCsg+/0pzXyD82T1FmAYe0lsx+jnEDQ1BLgkRKlxA==} + peerDependencies: + '@vue/composition-api': ^1.4.0 + typescript: '>=4.4.4' + vue: ^2.6.14 || ^3.2.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + typescript: + optional: true + + pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + + postcss-import@14.1.0: + resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} + engines: {node: '>=10.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.0.1: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@3.1.4: + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-nested@6.0.0: + resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.4.21: + resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + + prettier-plugin-tailwindcss@0.2.4: + resolution: {integrity: sha512-wMyugRI2yD8gqmMpZSS8kTA0gGeKozX/R+w8iWE+yiCZL09zY0SvfiHfHabNhjGhzxlQ2S2VuTxPE3T72vppCQ==} + engines: {node: '>=12.17.0'} + peerDependencies: + '@ianvs/prettier-plugin-sort-imports': '*' + '@prettier/plugin-php': '*' + '@prettier/plugin-pug': '*' + '@shopify/prettier-plugin-liquid': '*' + '@shufo/prettier-plugin-blade': '*' + '@trivago/prettier-plugin-sort-imports': '*' + prettier: '>=2.2.0' + prettier-plugin-astro: '*' + prettier-plugin-css-order: '*' + prettier-plugin-import-sort: '*' + prettier-plugin-jsdoc: '*' + prettier-plugin-organize-attributes: '*' + prettier-plugin-organize-imports: '*' + prettier-plugin-style-order: '*' + prettier-plugin-svelte: '*' + prettier-plugin-twig-melody: '*' + peerDependenciesMeta: + '@ianvs/prettier-plugin-sort-imports': + optional: true + '@prettier/plugin-php': + optional: true + '@prettier/plugin-pug': + optional: true + '@shopify/prettier-plugin-liquid': + optional: true + '@shufo/prettier-plugin-blade': + optional: true + '@trivago/prettier-plugin-sort-imports': + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-css-order: + optional: true + prettier-plugin-import-sort: + optional: true + prettier-plugin-jsdoc: + optional: true + prettier-plugin-organize-attributes: + optional: true + prettier-plugin-organize-imports: + optional: true + prettier-plugin-style-order: + optional: true + prettier-plugin-svelte: + optional: true + prettier-plugin-twig-melody: + optional: true + + prettier@2.6.0: + resolution: {integrity: sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A==} + engines: {node: '>=10.13.0'} + hasBin: true + + progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + + promise@7.3.1: + resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + + pug-attrs@3.0.0: + resolution: {integrity: sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==} + + pug-code-gen@3.0.2: + resolution: {integrity: sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==} + + pug-error@2.0.0: + resolution: {integrity: sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==} + + pug-filters@4.0.0: + resolution: {integrity: sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==} + + pug-lexer@5.0.1: + resolution: {integrity: sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==} + + pug-linker@4.0.0: + resolution: {integrity: sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==} + + pug-load@3.0.0: + resolution: {integrity: sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==} + + pug-parser@6.0.0: + resolution: {integrity: sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==} + + pug-runtime@3.0.1: + resolution: {integrity: sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==} + + pug-strip-comments@2.0.0: + resolution: {integrity: sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==} + + pug-walk@2.0.0: + resolution: {integrity: sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==} + + pug@3.0.2: + resolution: {integrity: sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + q@1.5.1: + resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} + engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + + qs@6.10.1: + resolution: {integrity: sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==} + engines: {node: '>=0.6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + + regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + engines: {node: '>= 0.4'} + + regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + + request-light@0.5.8: + resolution: {integrity: sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-global@1.0.0: + resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} + engines: {node: '>=8'} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + restore-cursor@2.0.0: + resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==} + engines: {node: '>=4'} + + restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + + rimraf@2.6.3: + resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + hasBin: true + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + + rollup@2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + engines: {node: '>=10.0.0'} + hasBin: true + + run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rxjs@6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sass@1.49.9: + resolution: {integrity: sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==} + engines: {node: '>=12.0.0'} + hasBin: true + + sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + + scroll-into-view-if-needed@2.2.31: + resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==} + + scule@1.0.0: + resolution: {integrity: sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + + set-function-length@1.1.1: + resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slice-ansi@3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + + slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + + source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.16: + resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} + + split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + ssf@0.11.2: + resolution: {integrity: sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==} + engines: {node: '>=0.8'} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + + string-width@2.1.1: + resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} + engines: {node: '>=4'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + + string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@4.0.0: + resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} + engines: {node: '>=4'} + + strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@9.4.0: + resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} + engines: {node: '>=12'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + svg-tags@1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + + table@6.8.1: + resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} + engines: {node: '>=10.0.0'} + + tailwindcss@3.2.7: + resolution: {integrity: sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==} + engines: {node: '>=12.13.0'} + hasBin: true + peerDependencies: + postcss: ^8.0.9 + + temp@0.9.4: + resolution: {integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==} + engines: {node: '>=6.0.0'} + + terser@5.14.2: + resolution: {integrity: sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==} + engines: {node: '>=10'} + hasBin: true + + text-extensions@1.9.0: + resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} + engines: {node: '>=0.10'} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + token-stream@1.0.0: + resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==} + + trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + + ts-node@10.9.1: + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + + tsconfig-paths@3.14.2: + resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} + + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + tsutils@3.21.0: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + + typescript@4.4.4: + resolution: {integrity: sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==} + engines: {node: '>=4.2.0'} + hasBin: true + + typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + + ufo@1.3.1: + resolution: {integrity: sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==} + + unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + + unimport@3.5.0: + resolution: {integrity: sha512-0Ei1iTeSYxs7oxxUf79/KaBc2dPjZxe7qdVpw7yIz5YcdTZjmBYO6ToLDW+fX9QOHiueZ3xtwb5Z/wqaSfXx6A==} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unplugin-auto-import@0.16.7: + resolution: {integrity: sha512-w7XmnRlchq6YUFJVFGSvG1T/6j8GrdYN6Em9Wf0Ye+HXgD/22kont+WnuCAA0UaUoxtuvRR1u/mXKy63g/hfqQ==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': ^3.2.2 + '@vueuse/core': '*' + peerDependenciesMeta: + '@nuxt/kit': + optional: true + '@vueuse/core': + optional: true + + unplugin-vue-components@0.25.2: + resolution: {integrity: sha512-OVmLFqILH6w+eM8fyt/d/eoJT9A6WO51NZLf1vC5c1FZ4rmq2bbGxTy8WP2Jm7xwFdukaIdv819+UI7RClPyCA==} + engines: {node: '>=14'} + peerDependencies: + '@babel/parser': ^7.15.8 + '@nuxt/kit': ^3.2.2 + vue: 2 || 3 + peerDependenciesMeta: + '@babel/parser': + optional: true + '@nuxt/kit': + optional: true + + unplugin@1.5.0: + resolution: {integrity: sha512-9ZdRwbh/4gcm1JTOkp9lAkIDrtOyOxgHmY7cjuwI8L/2RTikMcVG25GsZwNAgRuap3iDw2jeq7eoqtAsz5rW3A==} + + upath@2.0.1: + resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} + engines: {node: '>=4'} + + update-browserslist-db@1.0.13: + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + user-home@2.0.0: + resolution: {integrity: sha512-KMWqdlOcjCYdtIJpicDSFBQ8nFwS2i9sslAd6f4+CBGcU4gist2REnr2fxj2YocvJFxSF3ZOHLYLVZnUxv4BZQ==} + engines: {node: '>=0.10.0'} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + + v8-compile-cache@2.4.0: + resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + vite-plugin-compression@0.5.1: + resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==} + peerDependencies: + vite: '>=2.0.0' + + vite@3.0.0: + resolution: {integrity: sha512-M7phQhY3+fRZa0H+1WzI6N+/onruwPTBTMvaj7TzgZ0v2TE+N2sdLKxJOfOv9CckDWt5C4HmyQP81xB4dwRKzA==} + engines: {node: '>=14.18.0'} + hasBin: true + peerDependencies: + less: '*' + sass: '*' + stylus: '*' + terser: ^5.4.0 + peerDependenciesMeta: + less: + optional: true + sass: + optional: true + stylus: + optional: true + terser: + optional: true + + void-elements@3.1.0: + resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} + engines: {node: '>=0.10.0'} + + vscode-css-languageservice@5.4.2: + resolution: {integrity: sha512-DT7+7vfdT2HDNjDoXWtYJ0lVDdeDEdbMNdK4PKqUl2MS8g7PWt7J5G9B6k9lYox8nOfhCEjLnoNC3UKHHCR1lg==} + + vscode-html-languageservice@4.2.5: + resolution: {integrity: sha512-dbr10KHabB9EaK8lI0XZW7SqOsTfrNyT3Nuj0GoPi4LjGKUmMiLtsqzfedIzRTzqY+w0FiLdh0/kQrnQ0tLxrw==} + + vscode-json-languageservice@4.2.1: + resolution: {integrity: sha512-xGmv9QIWs2H8obGbWg+sIPI/3/pFgj/5OWBhNzs00BkYQ9UaB2F6JJaGB/2/YOZJ3BvLXQTC4Q7muqU25QgAhA==} + + vscode-jsonrpc@8.1.0: + resolution: {integrity: sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw==} + engines: {node: '>=14.0.0'} + + vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + + vscode-languageserver-protocol@3.17.3: + resolution: {integrity: sha512-924/h0AqsMtA5yK22GgMtCYiMdCOtWTSGgUOkgEDX+wk2b0x4sAfLiO4NxBxqbiVtz7K7/1/RgVrVI0NClZwqA==} + + vscode-languageserver-textdocument@1.0.11: + resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} + + vscode-languageserver-types@3.17.3: + resolution: {integrity: sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA==} + + vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + + vscode-languageserver@8.1.0: + resolution: {integrity: sha512-eUt8f1z2N2IEUDBsKaNapkz7jl5QpskN2Y0G01T/ItMxBxw1fJwvtySGB9QMecatne8jFIWJGWI61dWjyTLQsw==} + hasBin: true + + vscode-nls@5.2.0: + resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} + + vscode-pug-languageservice@0.27.24: + resolution: {integrity: sha512-GSvsFB+rPhAD7cBlEKCVNNsFGIaOnp/0zyLw3WpYbXY24vJZafXu1kHvtYaaQXJRnIhqp5EI5p+EqpdI3hTBnw==} + deprecated: 'WARNING: This project has been renamed to @volar/pug-language-service. Install using @volar/pug-language-service instead.' + + vscode-typescript-languageservice@0.27.25: + resolution: {integrity: sha512-nxpJI9MnF2rn5rKL/032Qrsq3T9DgM3slK5fwZp3suNdo90JG2zFTs3Ola8n62k7+KWu4A775obxyb4wLIW6Gw==} + deprecated: 'WARNING: This project has been renamed to @volar/typescript-language-service. Install using @volar/typescript-language-service instead.' + + vscode-uri@2.1.2: + resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} + + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + + vscode-vue-languageservice@0.27.30: + resolution: {integrity: sha512-nPnUNCMqqHfxcCPLyLWvmgbNCgos3SwvPcl/CzAnMbqcjLtNZppsdI7bKX3EEj0Jbg6SGLQ9NanIvZaMI1bsUA==} + deprecated: 'WARNING: This project has been renamed to @volar/vue-language-service. Install using @volar/vue-language-service instead.' + + vue-demi@0.14.6: + resolution: {integrity: sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==} + engines: {node: '>=12'} + hasBin: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + + vue-eslint-parser@7.11.0: + resolution: {integrity: sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==} + engines: {node: '>=8.10'} + peerDependencies: + eslint: '>=5.0.0' + + vue-router@4.0.16: + resolution: {integrity: sha512-JcO7cb8QJLBWE+DfxGUL3xUDOae/8nhM1KVdnudadTAORbuxIC/xAydC5Zr/VLHUDQi1ppuTF5/rjBGzgzrJNA==} + peerDependencies: + vue: ^3.2.0 + + vue-tsc@0.3.0: + resolution: {integrity: sha512-zaDRZBxwRIz1XjhNP92FqugG71st6BUMnA2EwPeXrAyzbEYVRz6TezNFceYl3QYqqN8CtaxbqUhaQEDj/ntoCA==} + hasBin: true + peerDependencies: + typescript: '*' + + vue@3.2.37: + resolution: {integrity: sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==} + + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack-virtual-modules@0.5.0: + resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} + + which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + + which-typed-array@1.1.13: + resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} + engines: {node: '>= 0.4'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + with@7.0.2: + resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==} + engines: {node: '>= 10.0.0'} + + wmf@1.0.2: + resolution: {integrity: sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==} + engines: {node: '>=0.8'} + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + word@0.3.0: + resolution: {integrity: sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==} + engines: {node: '>=0.8'} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + xlsx@0.18.5: + resolution: {integrity: sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==} + engines: {node: '>=0.8'} + hasBin: true + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + +snapshots: + + '@aashutoshrathi/word-wrap@1.2.6': {} + + '@ampproject/remapping@2.2.1': + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + + '@antfu/utils@0.7.6': {} + + '@arco-design/color@0.4.0': + dependencies: + color: 3.2.1 + + '@arco-design/web-vue@2.55.1(vue@3.2.37)': + dependencies: + '@arco-design/color': 0.4.0 + b-tween: 0.3.3 + b-validate: 1.5.3 + compute-scroll-into-view: 1.0.20 + dayjs: 1.11.3 + number-precision: 1.6.0 + resize-observer-polyfill: 1.5.1 + scroll-into-view-if-needed: 2.2.31 + vue: 3.2.37 + + '@babel/code-frame@7.12.11': + dependencies: + '@babel/highlight': 7.22.20 + + '@babel/code-frame@7.22.13': + dependencies: + '@babel/highlight': 7.22.20 + chalk: 2.4.2 + + '@babel/compat-data@7.23.3': {} + + '@babel/core@7.23.3': + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.3 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) + '@babel/helpers': 7.23.2 + '@babel/parser': 7.23.3 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.3 + '@babel/types': 7.23.3 + convert-source-map: 2.0.0 + debug: 4.3.4(supports-color@9.4.0) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.23.3': + dependencies: + '@babel/types': 7.23.3 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + jsesc: 2.5.2 + + '@babel/helper-annotate-as-pure@7.22.5': + dependencies: + '@babel/types': 7.23.3 + + '@babel/helper-compilation-targets@7.22.15': + dependencies: + '@babel/compat-data': 7.23.3 + '@babel/helper-validator-option': 7.22.15 + browserslist: 4.22.1 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.3)': + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + + '@babel/helper-environment-visitor@7.22.20': {} + + '@babel/helper-function-name@7.23.0': + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.23.3 + + '@babel/helper-hoist-variables@7.22.5': + dependencies: + '@babel/types': 7.23.3 + + '@babel/helper-member-expression-to-functions@7.23.0': + dependencies: + '@babel/types': 7.23.3 + + '@babel/helper-module-imports@7.22.15': + dependencies: + '@babel/types': 7.23.3 + + '@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3)': + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + + '@babel/helper-optimise-call-expression@7.22.5': + dependencies: + '@babel/types': 7.23.3 + + '@babel/helper-plugin-utils@7.22.5': {} + + '@babel/helper-replace-supers@7.22.20(@babel/core@7.23.3)': + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + + '@babel/helper-simple-access@7.22.5': + dependencies: + '@babel/types': 7.23.3 + + '@babel/helper-skip-transparent-expression-wrappers@7.22.5': + dependencies: + '@babel/types': 7.23.3 + + '@babel/helper-split-export-declaration@7.22.6': + dependencies: + '@babel/types': 7.23.3 + + '@babel/helper-string-parser@7.22.5': {} + + '@babel/helper-validator-identifier@7.22.20': {} + + '@babel/helper-validator-option@7.22.15': {} + + '@babel/helpers@7.23.2': + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.3 + '@babel/types': 7.23.3 + transitivePeerDependencies: + - supports-color + + '@babel/highlight@7.22.20': + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + + '@babel/parser@7.23.3': + dependencies: + '@babel/types': 7.23.3 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.3)': + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.3)': + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.3)': + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': 7.22.5 + + '@babel/plugin-transform-typescript@7.23.3(@babel/core@7.23.3)': + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.3) + + '@babel/template@7.22.15': + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 + + '@babel/traverse@7.23.3': + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.3 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 + debug: 4.3.4(supports-color@9.4.0) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.23.3': + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + + '@commitlint/cli@17.3.0': + dependencies: + '@commitlint/format': 17.8.1 + '@commitlint/lint': 17.8.1 + '@commitlint/load': 17.8.1 + '@commitlint/read': 17.8.1 + '@commitlint/types': 17.8.1 + execa: 5.1.1 + lodash.isfunction: 3.0.9 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + + '@commitlint/config-conventional@17.3.0': + dependencies: + conventional-changelog-conventionalcommits: 5.0.0 + + '@commitlint/config-validator@17.8.1': + dependencies: + '@commitlint/types': 17.8.1 + ajv: 8.12.0 + + '@commitlint/ensure@17.8.1': + dependencies: + '@commitlint/types': 17.8.1 + lodash.camelcase: 4.3.0 + lodash.kebabcase: 4.1.1 + lodash.snakecase: 4.1.1 + lodash.startcase: 4.4.0 + lodash.upperfirst: 4.3.1 + + '@commitlint/execute-rule@17.8.1': {} + + '@commitlint/format@17.8.1': + dependencies: + '@commitlint/types': 17.8.1 + chalk: 4.1.2 + + '@commitlint/is-ignored@17.8.1': + dependencies: + '@commitlint/types': 17.8.1 + semver: 7.5.4 + + '@commitlint/lint@17.8.1': + dependencies: + '@commitlint/is-ignored': 17.8.1 + '@commitlint/parse': 17.8.1 + '@commitlint/rules': 17.8.1 + '@commitlint/types': 17.8.1 + + '@commitlint/load@17.8.1': + dependencies: + '@commitlint/config-validator': 17.8.1 + '@commitlint/execute-rule': 17.8.1 + '@commitlint/resolve-extends': 17.8.1 + '@commitlint/types': 17.8.1 + '@types/node': 20.5.1 + chalk: 4.1.2 + cosmiconfig: 8.3.6(typescript@4.9.5) + cosmiconfig-typescript-loader: 4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@4.4.4))(ts-node@10.9.1(@types/node@16.11.11)(typescript@4.4.4))(typescript@4.9.5) + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 + resolve-from: 5.0.0 + ts-node: 10.9.1(@types/node@20.5.1)(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + + '@commitlint/message@17.8.1': {} + + '@commitlint/parse@17.8.1': + dependencies: + '@commitlint/types': 17.8.1 + conventional-changelog-angular: 6.0.0 + conventional-commits-parser: 4.0.0 + + '@commitlint/read@17.8.1': + dependencies: + '@commitlint/top-level': 17.8.1 + '@commitlint/types': 17.8.1 + fs-extra: 11.1.1 + git-raw-commits: 2.0.11 + minimist: 1.2.8 + + '@commitlint/resolve-extends@17.8.1': + dependencies: + '@commitlint/config-validator': 17.8.1 + '@commitlint/types': 17.8.1 + import-fresh: 3.3.0 + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + + '@commitlint/rules@17.8.1': + dependencies: + '@commitlint/ensure': 17.8.1 + '@commitlint/message': 17.8.1 + '@commitlint/to-lines': 17.8.1 + '@commitlint/types': 17.8.1 + execa: 5.1.1 + + '@commitlint/to-lines@17.8.1': {} + + '@commitlint/top-level@17.8.1': + dependencies: + find-up: 5.0.0 + + '@commitlint/types@17.8.1': + dependencies: + chalk: 4.1.2 + + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + '@emmetio/abbreviation@2.3.3': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/css-abbreviation@2.1.8': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/scanner@1.0.4': {} + + '@esbuild/linux-loong64@0.14.54': + optional: true + + '@eslint/eslintrc@0.4.3': + dependencies: + ajv: 6.12.6 + debug: 4.3.4(supports-color@9.4.0) + espree: 7.3.1 + globals: 13.23.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + js-yaml: 3.14.1 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/config-array@0.5.0': + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4(supports-color@9.4.0) + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/object-schema@1.2.1': {} + + '@icon-park/vue-next@1.4.2(vue@3.2.37)': + dependencies: + vue: 3.2.37 + + '@iconify/json@2.2.144': + dependencies: + '@iconify/types': 2.0.0 + pathe: 1.1.1 + + '@iconify/types@2.0.0': {} + + '@jridgewell/gen-mapping@0.3.3': + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.20 + + '@jridgewell/resolve-uri@3.1.1': {} + + '@jridgewell/set-array@1.1.2': {} + + '@jridgewell/source-map@0.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + + '@jridgewell/sourcemap-codec@1.4.15': {} + + '@jridgewell/trace-mapping@0.3.20': + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + + '@rollup/pluginutils@5.0.5(rollup@2.79.1)': + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + optionalDependencies: + rollup: 2.79.1 + + '@tsconfig/node10@1.0.9': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} + + '@types/estree@1.0.5': {} + + '@types/json-schema@7.0.15': {} + + '@types/json5@0.0.29': {} + + '@types/lodash@4.14.180': {} + + '@types/minimist@1.2.5': {} + + '@types/node@16.11.11': {} + + '@types/node@20.5.1': {} + + '@types/normalize-package-data@2.4.4': {} + + '@types/web-bluetooth@0.0.16': {} + + '@typescript-eslint/eslint-plugin@4.33.0(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@4.4.4))(eslint@7.32.0)(typescript@4.4.4)': + dependencies: + '@typescript-eslint/experimental-utils': 4.33.0(eslint@7.32.0)(typescript@4.4.4) + '@typescript-eslint/parser': 4.33.0(eslint@7.32.0)(typescript@4.4.4) + '@typescript-eslint/scope-manager': 4.33.0 + debug: 4.3.4(supports-color@9.4.0) + eslint: 7.32.0 + functional-red-black-tree: 1.0.1 + ignore: 5.2.4 + regexpp: 3.2.0 + semver: 7.5.4 + tsutils: 3.21.0(typescript@4.4.4) + optionalDependencies: + typescript: 4.4.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/experimental-utils@4.33.0(eslint@7.32.0)(typescript@4.4.4)': + dependencies: + '@types/json-schema': 7.0.15 + '@typescript-eslint/scope-manager': 4.33.0 + '@typescript-eslint/types': 4.33.0 + '@typescript-eslint/typescript-estree': 4.33.0(typescript@4.4.4) + eslint: 7.32.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0(eslint@7.32.0) + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@4.4.4)': + dependencies: + '@typescript-eslint/scope-manager': 4.33.0 + '@typescript-eslint/types': 4.33.0 + '@typescript-eslint/typescript-estree': 4.33.0(typescript@4.4.4) + debug: 4.3.4(supports-color@9.4.0) + eslint: 7.32.0 + optionalDependencies: + typescript: 4.4.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@4.33.0': + dependencies: + '@typescript-eslint/types': 4.33.0 + '@typescript-eslint/visitor-keys': 4.33.0 + + '@typescript-eslint/types@4.33.0': {} + + '@typescript-eslint/typescript-estree@4.33.0(typescript@4.4.4)': + dependencies: + '@typescript-eslint/types': 4.33.0 + '@typescript-eslint/visitor-keys': 4.33.0 + debug: 4.3.4(supports-color@9.4.0) + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + tsutils: 3.21.0(typescript@4.4.4) + optionalDependencies: + typescript: 4.4.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@4.33.0': + dependencies: + '@typescript-eslint/types': 4.33.0 + eslint-visitor-keys: 2.1.0 + + '@vitejs/plugin-vue-jsx@2.0.0(vite@3.0.0(less@4.1.2)(sass@1.49.9)(terser@5.14.2))(vue@3.2.37)': + dependencies: + '@babel/core': 7.23.3 + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-transform-typescript': 7.23.3(@babel/core@7.23.3) + '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.23.3) + vite: 3.0.0(less@4.1.2)(sass@1.49.9)(terser@5.14.2) + vue: 3.2.37 + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-vue@3.0.0(vite@3.0.0(less@4.1.2)(sass@1.49.9)(terser@5.14.2))(vue@3.2.37)': + dependencies: + vite: 3.0.0(less@4.1.2)(sass@1.49.9)(terser@5.14.2) + vue: 3.2.37 + + '@volar/code-gen@0.27.24': + dependencies: + '@volar/shared': 0.27.24 + '@volar/source-map': 0.27.24 + + '@volar/html2pug@0.27.13': + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + htmlparser2: 6.1.0 + pug: 3.0.2 + + '@volar/shared@0.27.24': + dependencies: + upath: 2.0.1 + vscode-jsonrpc: 8.2.0 + vscode-uri: 3.0.8 + + '@volar/source-map@0.27.24': + dependencies: + '@volar/shared': 0.27.24 + + '@volar/transforms@0.27.24': + dependencies: + '@volar/shared': 0.27.24 + vscode-languageserver: 8.1.0 + + '@vscode/emmet-helper@2.9.2': + dependencies: + emmet: 2.4.6 + jsonc-parser: 2.3.1 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-uri: 2.1.2 + + '@vue/babel-helper-vue-transform-on@1.1.5': {} + + '@vue/babel-plugin-jsx@1.1.5(@babel/core@7.23.3)': + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-module-imports': 7.22.15 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.3) + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.3 + '@babel/types': 7.23.3 + '@vue/babel-helper-vue-transform-on': 1.1.5 + camelcase: 6.3.0 + html-tags: 3.3.1 + svg-tags: 1.0.0 + transitivePeerDependencies: + - supports-color + + '@vue/compiler-core@3.2.37': + dependencies: + '@babel/parser': 7.23.3 + '@vue/shared': 3.2.37 + estree-walker: 2.0.2 + source-map: 0.6.1 + + '@vue/compiler-core@3.3.8': + dependencies: + '@babel/parser': 7.23.3 + '@vue/shared': 3.3.8 + estree-walker: 2.0.2 + source-map-js: 1.0.2 + + '@vue/compiler-dom@3.2.37': + dependencies: + '@vue/compiler-core': 3.2.37 + '@vue/shared': 3.2.37 + + '@vue/compiler-dom@3.3.8': + dependencies: + '@vue/compiler-core': 3.3.8 + '@vue/shared': 3.3.8 + + '@vue/compiler-sfc@3.2.37': + dependencies: + '@babel/parser': 7.23.3 + '@vue/compiler-core': 3.2.37 + '@vue/compiler-dom': 3.2.37 + '@vue/compiler-ssr': 3.2.37 + '@vue/reactivity-transform': 3.2.37 + '@vue/shared': 3.2.37 + estree-walker: 2.0.2 + magic-string: 0.25.9 + postcss: 8.4.21 + source-map: 0.6.1 + + '@vue/compiler-ssr@3.2.37': + dependencies: + '@vue/compiler-dom': 3.2.37 + '@vue/shared': 3.2.37 + + '@vue/devtools-api@6.5.1': {} + + '@vue/reactivity-transform@3.2.37': + dependencies: + '@babel/parser': 7.23.3 + '@vue/compiler-core': 3.2.37 + '@vue/shared': 3.2.37 + estree-walker: 2.0.2 + magic-string: 0.25.9 + + '@vue/reactivity@3.2.37': + dependencies: + '@vue/shared': 3.2.37 + + '@vue/reactivity@3.3.8': + dependencies: + '@vue/shared': 3.3.8 + + '@vue/runtime-core@3.2.37': + dependencies: + '@vue/reactivity': 3.2.37 + '@vue/shared': 3.2.37 + + '@vue/runtime-dom@3.2.37': + dependencies: + '@vue/runtime-core': 3.2.37 + '@vue/shared': 3.2.37 + csstype: 2.6.21 + + '@vue/server-renderer@3.2.37(vue@3.2.37)': + dependencies: + '@vue/compiler-ssr': 3.2.37 + '@vue/shared': 3.2.37 + vue: 3.2.37 + + '@vue/shared@3.2.37': {} + + '@vue/shared@3.3.8': {} + + '@vueuse/core@9.13.0(vue@3.2.37)': + dependencies: + '@types/web-bluetooth': 0.0.16 + '@vueuse/metadata': 9.13.0 + '@vueuse/shared': 9.13.0(vue@3.2.37) + vue-demi: 0.14.6(vue@3.2.37) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vueuse/metadata@9.13.0': {} + + '@vueuse/shared@9.13.0(vue@3.2.37)': + dependencies: + vue-demi: 0.14.6(vue@3.2.37) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + JSONStream@1.3.5: + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + + acorn-jsx@5.3.2(acorn@7.4.1): + dependencies: + acorn: 7.4.1 + + acorn-node@1.8.2: + dependencies: + acorn: 7.4.1 + acorn-walk: 7.2.0 + xtend: 4.0.2 + + acorn-walk@7.2.0: {} + + acorn-walk@8.3.0: {} + + acorn@7.4.1: {} + + acorn@8.11.2: {} + + adler-32@1.3.1: {} + + aggregate-error@3.1.0: + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.12.0: + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + + ansi-colors@4.1.3: {} + + ansi-escapes@3.2.0: {} + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-regex@3.0.1: {} + + ansi-regex@4.1.1: {} + + ansi-regex@5.0.1: {} + + ansi-regex@6.0.1: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arg@4.1.3: {} + + arg@5.0.2: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + array-buffer-byte-length@1.0.0: + dependencies: + call-bind: 1.0.5 + is-array-buffer: 3.0.2 + + array-ify@1.0.0: {} + + array-includes@3.1.7: + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + is-string: 1.0.7 + + array-union@2.1.0: {} + + array.prototype.flat@1.3.2: + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + + arraybuffer.prototype.slice@1.0.2: + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + + arrify@1.0.1: {} + + asap@2.0.6: {} + + assert-never@1.2.1: {} + + astral-regex@2.0.0: {} + + asynckit@0.4.0: {} + + autoprefixer@10.4.13(postcss@8.4.21): + dependencies: + browserslist: 4.22.1 + caniuse-lite: 1.0.30001561 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + + available-typed-arrays@1.0.5: {} + + axios@1.6.8: + dependencies: + follow-redirects: 1.15.6 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + b-tween@0.3.3: {} + + b-validate@1.5.3: {} + + babel-walk@3.0.0-canary-5: + dependencies: + '@babel/types': 7.23.3 + + balanced-match@1.0.2: {} + + batch-processor@1.0.0: {} + + binary-extensions@2.2.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.2: + dependencies: + fill-range: 7.0.1 + + browserslist@4.22.1: + dependencies: + caniuse-lite: 1.0.30001561 + electron-to-chromium: 1.4.580 + node-releases: 2.0.13 + update-browserslist-db: 1.0.13(browserslist@4.22.1) + + buffer-from@1.1.2: {} + + call-bind@1.0.5: + dependencies: + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + set-function-length: 1.1.1 + + callsites@3.1.0: {} + + camelcase-css@2.0.1: {} + + camelcase-keys@6.2.2: + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + + camelcase@5.3.1: {} + + camelcase@6.3.0: {} + + caniuse-lite@1.0.30001561: {} + + cfb@1.2.2: + dependencies: + adler-32: 1.3.1 + crc-32: 1.2.2 + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + character-parser@2.2.0: + dependencies: + is-regex: 1.1.4 + + chardet@0.7.0: {} + + chokidar@3.5.3: + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + clean-stack@2.2.0: {} + + cli-cursor@2.1.0: + dependencies: + restore-cursor: 2.0.0 + + cli-cursor@3.1.0: + dependencies: + restore-cursor: 3.1.0 + + cli-truncate@2.1.0: + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + + cli-truncate@3.1.0: + dependencies: + slice-ansi: 5.0.0 + string-width: 5.1.2 + + cli-width@2.2.1: {} + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + codepage@1.15.0: {} + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + + color@3.2.1: + dependencies: + color-convert: 1.9.3 + color-string: 1.9.1 + + colorette@2.0.20: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@2.20.3: {} + + commander@8.3.0: {} + + compare-func@2.0.0: + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + + compute-scroll-into-view@1.0.20: {} + + concat-map@0.0.1: {} + + confusing-browser-globals@1.0.11: {} + + constantinople@4.0.1: + dependencies: + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 + + conventional-changelog-angular@6.0.0: + dependencies: + compare-func: 2.0.0 + + conventional-changelog-conventionalcommits@5.0.0: + dependencies: + compare-func: 2.0.0 + lodash: 4.17.21 + q: 1.5.1 + + conventional-commits-parser@4.0.0: + dependencies: + JSONStream: 1.3.5 + is-text-path: 1.0.1 + meow: 8.1.2 + split2: 3.2.2 + + convert-source-map@2.0.0: {} + + copy-anything@2.0.6: + dependencies: + is-what: 3.14.1 + + cosmiconfig-typescript-loader@4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@4.4.4))(ts-node@10.9.1(@types/node@16.11.11)(typescript@4.4.4))(typescript@4.9.5): + dependencies: + '@types/node': 20.5.1 + cosmiconfig: 8.3.6(typescript@4.9.5) + ts-node: 10.9.1(@types/node@20.5.1)(typescript@4.9.5) + typescript: 4.9.5 + + cosmiconfig@8.3.6(typescript@4.9.5): + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + optionalDependencies: + typescript: 4.9.5 + + crc-32@1.2.2: {} + + crco@2.9.14(@arco-design/web-vue@2.55.1(vue@3.2.37))(axios@1.6.8)(lodash@4.17.21): + dependencies: + '@arco-design/web-vue': 2.55.1(vue@3.2.37) + axios: 1.6.8 + element-resize-detector: 1.2.4 + lodash: 4.17.21 + + create-require@1.1.1: {} + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crypto-js@4.1.1: {} + + cssesc@3.0.0: {} + + csstype@2.6.21: {} + + cz-customizable@7.0.0: + dependencies: + editor: 1.0.0 + find-config: 1.0.0 + inquirer: 6.5.2 + lodash: 4.17.21 + temp: 0.9.4 + word-wrap: 1.2.5 + + dargs@7.0.0: {} + + dayjs@1.11.3: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.3.4(supports-color@9.4.0): + dependencies: + ms: 2.1.2 + optionalDependencies: + supports-color: 9.4.0 + + decamelize-keys@1.1.1: + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + + decamelize@1.2.0: {} + + decimal.js@10.4.3: {} + + deep-is@0.1.4: {} + + define-data-property@1.1.1: + dependencies: + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.1 + has-property-descriptors: 1.0.1 + object-keys: 1.1.1 + + defined@1.0.1: {} + + delayed-stream@1.0.0: {} + + detective@5.2.1: + dependencies: + acorn-node: 1.8.2 + defined: 1.0.1 + minimist: 1.2.8 + + didyoumean@1.2.2: {} + + diff@4.0.2: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dlv@1.1.3: {} + + doctrine@2.1.0: + dependencies: + esutils: 2.0.3 + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + doctypes@1.1.0: {} + + dom-serializer@1.4.1: + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + + domelementtype@2.3.0: {} + + domhandler@4.3.1: + dependencies: + domelementtype: 2.3.0 + + domutils@2.8.0: + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + + dot-prop@5.3.0: + dependencies: + is-obj: 2.0.0 + + eastasianwidth@0.2.0: {} + + editor@1.0.0: {} + + electron-to-chromium@1.4.580: {} + + element-resize-detector@1.2.4: + dependencies: + batch-processor: 1.0.0 + + emmet@2.4.6: + dependencies: + '@emmetio/abbreviation': 2.3.3 + '@emmetio/css-abbreviation': 2.1.8 + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + encryptlong@3.1.4: {} + + enquirer@2.4.1: + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + + entities@2.2.0: {} + + errno@0.1.8: + dependencies: + prr: 1.0.1 + optional: true + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + + es-abstract@1.22.3: + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + es-set-tostringtag: 2.0.2 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.2 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + internal-slot: 1.0.6 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.13 + + es-set-tostringtag@2.0.2: + dependencies: + get-intrinsic: 1.2.2 + has-tostringtag: 1.0.0 + hasown: 2.0.0 + + es-shim-unscopables@1.0.2: + dependencies: + hasown: 2.0.0 + + es-to-primitive@1.2.1: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + + esbuild-android-64@0.14.54: + optional: true + + esbuild-android-arm64@0.14.54: + optional: true + + esbuild-darwin-64@0.14.54: + optional: true + + esbuild-darwin-arm64@0.14.54: + optional: true + + esbuild-freebsd-64@0.14.54: + optional: true + + esbuild-freebsd-arm64@0.14.54: + optional: true + + esbuild-linux-32@0.14.54: + optional: true + + esbuild-linux-64@0.14.54: + optional: true + + esbuild-linux-arm64@0.14.54: + optional: true + + esbuild-linux-arm@0.14.54: + optional: true + + esbuild-linux-mips64le@0.14.54: + optional: true + + esbuild-linux-ppc64le@0.14.54: + optional: true + + esbuild-linux-riscv64@0.14.54: + optional: true + + esbuild-linux-s390x@0.14.54: + optional: true + + esbuild-netbsd-64@0.14.54: + optional: true + + esbuild-openbsd-64@0.14.54: + optional: true + + esbuild-sunos-64@0.14.54: + optional: true + + esbuild-windows-32@0.14.54: + optional: true + + esbuild-windows-64@0.14.54: + optional: true + + esbuild-windows-arm64@0.14.54: + optional: true + + esbuild@0.14.54: + optionalDependencies: + '@esbuild/linux-loong64': 0.14.54 + esbuild-android-64: 0.14.54 + esbuild-android-arm64: 0.14.54 + esbuild-darwin-64: 0.14.54 + esbuild-darwin-arm64: 0.14.54 + esbuild-freebsd-64: 0.14.54 + esbuild-freebsd-arm64: 0.14.54 + esbuild-linux-32: 0.14.54 + esbuild-linux-64: 0.14.54 + esbuild-linux-arm: 0.14.54 + esbuild-linux-arm64: 0.14.54 + esbuild-linux-mips64le: 0.14.54 + esbuild-linux-ppc64le: 0.14.54 + esbuild-linux-riscv64: 0.14.54 + esbuild-linux-s390x: 0.14.54 + esbuild-netbsd-64: 0.14.54 + esbuild-openbsd-64: 0.14.54 + esbuild-sunos-64: 0.14.54 + esbuild-windows-32: 0.14.54 + esbuild-windows-64: 0.14.54 + esbuild-windows-arm64: 0.14.54 + + escalade@3.1.1: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@4.0.0: {} + + escape-string-regexp@5.0.0: {} + + eslint-config-airbnb-base@14.2.1(eslint-plugin-import@2.25.3(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@4.4.4))(eslint@7.32.0))(eslint@7.32.0): + dependencies: + confusing-browser-globals: 1.0.11 + eslint: 7.32.0 + eslint-plugin-import: 2.25.3(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@4.4.4))(eslint@7.32.0) + object.assign: 4.1.4 + object.entries: 1.1.7 + + eslint-config-prettier@8.3.0(eslint@7.32.0): + dependencies: + eslint: 7.32.0 + + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.13.1 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.8.0(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@4.4.4))(eslint-import-resolver-node@0.3.9)(eslint@7.32.0): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 4.33.0(eslint@7.32.0)(typescript@4.4.4) + eslint: 7.32.0 + eslint-import-resolver-node: 0.3.9 + transitivePeerDependencies: + - supports-color + + eslint-plugin-import@2.25.3(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@4.4.4))(eslint@7.32.0): + dependencies: + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 + debug: 2.6.9 + doctrine: 2.1.0 + eslint: 7.32.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@4.33.0(eslint@7.32.0)(typescript@4.4.4))(eslint-import-resolver-node@0.3.9)(eslint@7.32.0) + has: 1.0.4 + is-core-module: 2.13.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.7 + resolve: 1.22.8 + tsconfig-paths: 3.14.2 + optionalDependencies: + '@typescript-eslint/parser': 4.33.0(eslint@7.32.0)(typescript@4.4.4) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-prettier@4.0.0(eslint-config-prettier@8.3.0(eslint@7.32.0))(eslint@7.32.0)(prettier@2.6.0): + dependencies: + eslint: 7.32.0 + prettier: 2.6.0 + prettier-linter-helpers: 1.0.0 + optionalDependencies: + eslint-config-prettier: 8.3.0(eslint@7.32.0) + + eslint-plugin-vue@7.20.0(eslint@7.32.0): + dependencies: + eslint: 7.32.0 + eslint-utils: 2.1.0 + natural-compare: 1.4.0 + semver: 6.3.1 + vue-eslint-parser: 7.11.0(eslint@7.32.0) + transitivePeerDependencies: + - supports-color + + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + eslint-utils@2.1.0: + dependencies: + eslint-visitor-keys: 1.3.0 + + eslint-utils@3.0.0(eslint@7.32.0): + dependencies: + eslint: 7.32.0 + eslint-visitor-keys: 2.1.0 + + eslint-visitor-keys@1.3.0: {} + + eslint-visitor-keys@2.1.0: {} + + eslint@7.32.0: + dependencies: + '@babel/code-frame': 7.12.11 + '@eslint/eslintrc': 0.4.3 + '@humanwhocodes/config-array': 0.5.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4(supports-color@9.4.0) + doctrine: 3.0.0 + enquirer: 2.4.1 + escape-string-regexp: 4.0.0 + eslint-scope: 5.1.1 + eslint-utils: 2.1.0 + eslint-visitor-keys: 2.1.0 + espree: 7.3.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + functional-red-black-tree: 1.0.1 + glob-parent: 5.1.2 + globals: 13.23.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + js-yaml: 3.14.1 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + progress: 2.0.3 + regexpp: 3.2.0 + semver: 7.5.4 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + table: 6.8.1 + text-table: 0.2.0 + v8-compile-cache: 2.4.0 + transitivePeerDependencies: + - supports-color + + espree@6.2.1: + dependencies: + acorn: 7.4.1 + acorn-jsx: 5.3.2(acorn@7.4.1) + eslint-visitor-keys: 1.3.0 + + espree@7.3.1: + dependencies: + acorn: 7.4.1 + acorn-jsx: 5.3.2(acorn@7.4.1) + eslint-visitor-keys: 1.3.0 + + esprima@4.0.1: {} + + esquery@1.5.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@4.3.0: {} + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + esutils@2.0.3: {} + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + external-editor@3.1.0: + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + + fast-deep-equal@3.1.3: {} + + fast-diff@1.3.0: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fastq@1.15.0: + dependencies: + reusify: 1.0.4 + + figures@2.0.0: + dependencies: + escape-string-regexp: 1.0.5 + + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.1.1 + + fill-range@7.0.1: + dependencies: + to-regex-range: 5.0.1 + + find-config@1.0.0: + dependencies: + user-home: 2.0.0 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@3.1.1: + dependencies: + flatted: 3.2.9 + keyv: 4.5.4 + rimraf: 3.0.2 + + flatted@3.2.9: {} + + follow-redirects@1.15.6: {} + + for-each@0.3.3: + dependencies: + is-callable: 1.2.7 + + form-data@4.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + frac@1.1.2: {} + + fraction.js@4.3.7: {} + + fs-extra@10.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@11.1.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + function.prototype.name@1.1.6: + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + functions-have-names: 1.2.3 + + functional-red-black-tree@1.0.1: {} + + functions-have-names@1.2.3: {} + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-intrinsic@1.2.2: + dependencies: + function-bind: 1.1.2 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + + get-stream@6.0.1: {} + + get-symbol-description@1.0.0: + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + + git-raw-commits@2.0.11: + dependencies: + dargs: 7.0.0 + lodash: 4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + global-dirs@0.1.1: + dependencies: + ini: 1.3.8 + + globals@11.12.0: {} + + globals@13.23.0: + dependencies: + type-fest: 0.20.2 + + globalthis@1.0.3: + dependencies: + define-properties: 1.2.1 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.2.4 + merge2: 1.4.1 + slash: 3.0.0 + + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.2 + + graceful-fs@4.2.11: {} + + hard-rejection@2.1.0: {} + + has-bigints@1.0.2: {} + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.1: + dependencies: + get-intrinsic: 1.2.2 + + has-proto@1.0.1: {} + + has-symbols@1.0.3: {} + + has-tostringtag@1.0.0: + dependencies: + has-symbols: 1.0.3 + + has@1.0.4: {} + + hasown@2.0.0: + dependencies: + function-bind: 1.1.2 + + hosted-git-info@2.8.9: {} + + hosted-git-info@4.1.0: + dependencies: + lru-cache: 6.0.0 + + html-tags@3.3.1: {} + + htmlparser2@6.1.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + domutils: 2.8.0 + entities: 2.2.0 + + human-signals@2.1.0: {} + + husky@8.0.2: {} + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + ignore@4.0.6: {} + + ignore@5.2.4: {} + + image-size@0.5.5: + optional: true + + immutable@4.3.4: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + indent-string@4.0.0: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + ini@1.3.8: {} + + inquirer@6.5.2: + dependencies: + ansi-escapes: 3.2.0 + chalk: 2.4.2 + cli-cursor: 2.1.0 + cli-width: 2.2.1 + external-editor: 3.1.0 + figures: 2.0.0 + lodash: 4.17.21 + mute-stream: 0.0.7 + run-async: 2.4.1 + rxjs: 6.6.7 + string-width: 2.1.1 + strip-ansi: 5.2.0 + through: 2.3.8 + + internal-slot@1.0.6: + dependencies: + get-intrinsic: 1.2.2 + hasown: 2.0.0 + side-channel: 1.0.4 + + is-array-buffer@3.0.2: + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 + + is-arrayish@0.2.1: {} + + is-arrayish@0.3.2: {} + + is-bigint@1.0.4: + dependencies: + has-bigints: 1.0.2 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.2.0 + + is-boolean-object@1.1.2: + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + + is-callable@1.2.7: {} + + is-core-module@2.13.1: + dependencies: + hasown: 2.0.0 + + is-date-object@1.0.5: + dependencies: + has-tostringtag: 1.0.0 + + is-expression@4.0.0: + dependencies: + acorn: 7.4.1 + object-assign: 4.1.1 + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@2.0.0: {} + + is-fullwidth-code-point@3.0.0: {} + + is-fullwidth-code-point@4.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-negative-zero@2.0.2: {} + + is-number-object@1.0.7: + dependencies: + has-tostringtag: 1.0.0 + + is-number@7.0.0: {} + + is-obj@2.0.0: {} + + is-plain-obj@1.1.0: {} + + is-promise@2.2.2: {} + + is-regex@1.1.4: + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + + is-shared-array-buffer@1.0.2: + dependencies: + call-bind: 1.0.5 + + is-stream@2.0.1: {} + + is-string@1.0.7: + dependencies: + has-tostringtag: 1.0.0 + + is-symbol@1.0.4: + dependencies: + has-symbols: 1.0.3 + + is-text-path@1.0.1: + dependencies: + text-extensions: 1.9.0 + + is-typed-array@1.1.12: + dependencies: + which-typed-array: 1.1.13 + + is-weakref@1.0.2: + dependencies: + call-bind: 1.0.5 + + is-what@3.14.1: {} + + isarray@2.0.5: {} + + isexe@2.0.0: {} + + js-stringify@1.0.2: {} + + js-tokens@4.0.0: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsencrypt@3.2.1: {} + + jsesc@2.5.2: {} + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + + json5@2.2.3: {} + + jsonc-parser@2.3.1: {} + + jsonc-parser@3.2.0: {} + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + jsonparse@1.3.1: {} + + jstransformer@1.0.0: + dependencies: + is-promise: 2.2.2 + promise: 7.3.1 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kind-of@6.0.3: {} + + less@4.1.2: + dependencies: + copy-anything: 2.0.6 + parse-node-version: 1.0.1 + tslib: 2.6.2 + optionalDependencies: + errno: 0.1.8 + graceful-fs: 4.2.11 + image-size: 0.5.5 + make-dir: 2.1.0 + mime: 1.6.0 + needle: 2.9.1 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lilconfig@2.0.4: {} + + lilconfig@2.1.0: {} + + lines-and-columns@1.2.4: {} + + lint-staged@12.3.7(enquirer@2.4.1): + dependencies: + cli-truncate: 3.1.0 + colorette: 2.0.20 + commander: 8.3.0 + debug: 4.3.4(supports-color@9.4.0) + execa: 5.1.1 + lilconfig: 2.0.4 + listr2: 4.0.5(enquirer@2.4.1) + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-inspect: 1.13.1 + pidtree: 0.5.0 + string-argv: 0.3.2 + supports-color: 9.4.0 + yaml: 1.10.2 + transitivePeerDependencies: + - enquirer + + listr2@4.0.5(enquirer@2.4.1): + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.20 + log-update: 4.0.0 + p-map: 4.0.0 + rfdc: 1.3.0 + rxjs: 7.8.1 + through: 2.3.8 + wrap-ansi: 7.0.0 + optionalDependencies: + enquirer: 2.4.1 + + local-pkg@0.4.3: {} + + local-pkg@0.5.0: + dependencies: + mlly: 1.4.2 + pkg-types: 1.0.3 + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.camelcase@4.3.0: {} + + lodash.isfunction@3.0.9: {} + + lodash.isplainobject@4.0.6: {} + + lodash.kebabcase@4.1.1: {} + + lodash.merge@4.6.2: {} + + lodash.mergewith@4.6.2: {} + + lodash.snakecase@4.1.1: {} + + lodash.startcase@4.4.0: {} + + lodash.truncate@4.4.2: {} + + lodash.uniq@4.5.0: {} + + lodash.upperfirst@4.3.1: {} + + lodash@4.17.21: {} + + log-update@4.0.0: + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + magic-string@0.25.9: + dependencies: + sourcemap-codec: 1.4.8 + + magic-string@0.30.5: + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + + make-dir@2.1.0: + dependencies: + pify: 4.0.1 + semver: 5.7.2 + optional: true + + make-error@1.3.6: {} + + map-obj@1.0.1: {} + + map-obj@4.3.0: {} + + meow@8.1.2: + dependencies: + '@types/minimist': 1.2.5 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + micromatch@4.0.5: + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime@1.6.0: + optional: true + + mimic-fn@1.2.0: {} + + mimic-fn@2.1.0: {} + + min-indent@1.0.1: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@9.0.3: + dependencies: + brace-expansion: 2.0.1 + + minimist-options@4.1.0: + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + + minimist@1.2.8: {} + + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + + mlly@1.4.2: + dependencies: + acorn: 8.11.2 + pathe: 1.1.1 + pkg-types: 1.0.3 + ufo: 1.3.1 + + ms@2.0.0: {} + + ms@2.1.2: {} + + ms@2.1.3: {} + + mute-stream@0.0.7: {} + + nanoid@3.3.7: {} + + natural-compare@1.4.0: {} + + needle@2.9.1: + dependencies: + debug: 3.2.7 + iconv-lite: 0.4.24 + sax: 1.3.0 + transitivePeerDependencies: + - supports-color + optional: true + + node-releases@2.0.13: {} + + normalize-package-data@2.5.0: + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + + normalize-package-data@3.0.3: + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.13.1 + semver: 7.5.4 + validate-npm-package-license: 3.0.4 + + normalize-path@3.0.0: {} + + normalize-range@0.1.2: {} + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + number-precision@1.6.0: {} + + object-assign@4.1.1: {} + + object-hash@3.0.0: {} + + object-inspect@1.13.1: {} + + object-keys@1.1.1: {} + + object.assign@4.1.4: + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + + object.entries@1.1.7: + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + + object.values@1.1.7: + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@2.0.1: + dependencies: + mimic-fn: 1.2.0 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + optionator@0.9.3: + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + + os-homedir@1.0.2: {} + + os-tmpdir@1.0.2: {} + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-map@4.0.0: + dependencies: + aggregate-error: 3.1.0 + + p-try@2.2.0: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.22.13 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parse-node-version@1.0.1: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-type@4.0.0: {} + + pathe@1.1.1: {} + + picocolors@1.0.0: {} + + picomatch@2.3.1: {} + + pidtree@0.5.0: {} + + pify@2.3.0: {} + + pify@4.0.1: + optional: true + + pinia@2.0.14(typescript@4.4.4)(vue@3.2.37): + dependencies: + '@vue/devtools-api': 6.5.1 + vue: 3.2.37 + vue-demi: 0.14.6(vue@3.2.37) + optionalDependencies: + typescript: 4.4.4 + + pkg-types@1.0.3: + dependencies: + jsonc-parser: 3.2.0 + mlly: 1.4.2 + pathe: 1.1.1 + + postcss-import@14.1.0(postcss@8.4.21): + dependencies: + postcss: 8.4.21 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + + postcss-js@4.0.1(postcss@8.4.21): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.21 + + postcss-load-config@3.1.4(postcss@8.4.21)(ts-node@10.9.1(@types/node@20.5.1)(typescript@4.9.5)): + dependencies: + lilconfig: 2.1.0 + yaml: 1.10.2 + optionalDependencies: + postcss: 8.4.21 + ts-node: 10.9.1(@types/node@20.5.1)(typescript@4.9.5) + + postcss-nested@6.0.0(postcss@8.4.21): + dependencies: + postcss: 8.4.21 + postcss-selector-parser: 6.0.13 + + postcss-selector-parser@6.0.13: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + + postcss@8.4.21: + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + + prelude-ls@1.2.1: {} + + prettier-linter-helpers@1.0.0: + dependencies: + fast-diff: 1.3.0 + + prettier-plugin-tailwindcss@0.2.4(prettier@2.6.0): + dependencies: + prettier: 2.6.0 + + prettier@2.6.0: {} + + progress@2.0.3: {} + + promise@7.3.1: + dependencies: + asap: 2.0.6 + + proxy-from-env@1.1.0: {} + + prr@1.0.1: + optional: true + + pug-attrs@3.0.0: + dependencies: + constantinople: 4.0.1 + js-stringify: 1.0.2 + pug-runtime: 3.0.1 + + pug-code-gen@3.0.2: + dependencies: + constantinople: 4.0.1 + doctypes: 1.1.0 + js-stringify: 1.0.2 + pug-attrs: 3.0.0 + pug-error: 2.0.0 + pug-runtime: 3.0.1 + void-elements: 3.1.0 + with: 7.0.2 + + pug-error@2.0.0: {} + + pug-filters@4.0.0: + dependencies: + constantinople: 4.0.1 + jstransformer: 1.0.0 + pug-error: 2.0.0 + pug-walk: 2.0.0 + resolve: 1.22.8 + + pug-lexer@5.0.1: + dependencies: + character-parser: 2.2.0 + is-expression: 4.0.0 + pug-error: 2.0.0 + + pug-linker@4.0.0: + dependencies: + pug-error: 2.0.0 + pug-walk: 2.0.0 + + pug-load@3.0.0: + dependencies: + object-assign: 4.1.1 + pug-walk: 2.0.0 + + pug-parser@6.0.0: + dependencies: + pug-error: 2.0.0 + token-stream: 1.0.0 + + pug-runtime@3.0.1: {} + + pug-strip-comments@2.0.0: + dependencies: + pug-error: 2.0.0 + + pug-walk@2.0.0: {} + + pug@3.0.2: + dependencies: + pug-code-gen: 3.0.2 + pug-filters: 4.0.0 + pug-lexer: 5.0.1 + pug-linker: 4.0.0 + pug-load: 3.0.0 + pug-parser: 6.0.0 + pug-runtime: 3.0.1 + pug-strip-comments: 2.0.0 + + punycode@2.3.1: {} + + q@1.5.1: {} + + qs@6.10.1: + dependencies: + side-channel: 1.0.4 + + queue-microtask@1.2.3: {} + + quick-lru@4.0.1: {} + + quick-lru@5.1.1: {} + + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + + read-pkg-up@7.0.1: + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + + read-pkg@5.2.0: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + redent@3.0.0: + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + + regexp.prototype.flags@1.5.1: + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + set-function-name: 2.0.1 + + regexpp@3.2.0: {} + + request-light@0.5.8: {} + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + resize-observer-polyfill@1.5.1: {} + + resolve-from@4.0.0: {} + + resolve-from@5.0.0: {} + + resolve-global@1.0.0: + dependencies: + global-dirs: 0.1.1 + + resolve@1.22.8: + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + restore-cursor@2.0.0: + dependencies: + onetime: 2.0.1 + signal-exit: 3.0.7 + + restore-cursor@3.1.0: + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + + reusify@1.0.4: {} + + rfdc@1.3.0: {} + + rimraf@2.6.3: + dependencies: + glob: 7.2.3 + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rollup@2.79.1: + optionalDependencies: + fsevents: 2.3.3 + + run-async@2.4.1: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + rxjs@6.6.7: + dependencies: + tslib: 1.14.1 + + rxjs@7.8.1: + dependencies: + tslib: 2.6.2 + + safe-array-concat@1.0.1: + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + isarray: 2.0.5 + + safe-buffer@5.2.1: {} + + safe-regex-test@1.0.0: + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-regex: 1.1.4 + + safer-buffer@2.1.2: {} + + sass@1.49.9: + dependencies: + chokidar: 3.5.3 + immutable: 4.3.4 + source-map-js: 1.0.2 + + sax@1.3.0: + optional: true + + scroll-into-view-if-needed@2.2.31: + dependencies: + compute-scroll-into-view: 1.0.20 + + scule@1.0.0: {} + + semver@5.7.2: {} + + semver@6.3.1: {} + + semver@7.5.4: + dependencies: + lru-cache: 6.0.0 + + set-function-length@1.1.1: + dependencies: + define-data-property: 1.1.1 + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + + set-function-name@2.0.1: + dependencies: + define-data-property: 1.1.1 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.1 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + side-channel@1.0.4: + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + object-inspect: 1.13.1 + + signal-exit@3.0.7: {} + + simple-swizzle@0.2.2: + dependencies: + is-arrayish: 0.3.2 + + slash@3.0.0: {} + + slice-ansi@3.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + + slice-ansi@4.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + + slice-ansi@5.0.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + + source-map-js@1.0.2: {} + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + sourcemap-codec@1.4.8: {} + + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.16 + + spdx-exceptions@2.3.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.16 + + spdx-license-ids@3.0.16: {} + + split2@3.2.2: + dependencies: + readable-stream: 3.6.2 + + sprintf-js@1.0.3: {} + + ssf@0.11.2: + dependencies: + frac: 1.1.2 + + string-argv@0.3.2: {} + + string-width@2.1.1: + dependencies: + is-fullwidth-code-point: 2.0.0 + strip-ansi: 4.0.0 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string.prototype.trim@1.2.8: + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + + string.prototype.trimend@1.0.7: + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + + string.prototype.trimstart@1.0.7: + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-ansi@4.0.0: + dependencies: + ansi-regex: 3.0.1 + + strip-ansi@5.2.0: + dependencies: + ansi-regex: 4.1.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.0.1 + + strip-bom@3.0.0: {} + + strip-final-newline@2.0.0: {} + + strip-indent@3.0.0: + dependencies: + min-indent: 1.0.1 + + strip-json-comments@3.1.1: {} + + strip-literal@1.3.0: + dependencies: + acorn: 8.11.2 + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@9.4.0: {} + + supports-preserve-symlinks-flag@1.0.0: {} + + svg-tags@1.0.0: {} + + table@6.8.1: + dependencies: + ajv: 8.12.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + tailwindcss@3.2.7(postcss@8.4.21)(ts-node@10.9.1(@types/node@20.5.1)(typescript@4.9.5)): + dependencies: + arg: 5.0.2 + chokidar: 3.5.3 + color-name: 1.1.4 + detective: 5.2.1 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.21 + postcss-import: 14.1.0(postcss@8.4.21) + postcss-js: 4.0.1(postcss@8.4.21) + postcss-load-config: 3.1.4(postcss@8.4.21)(ts-node@10.9.1(@types/node@20.5.1)(typescript@4.9.5)) + postcss-nested: 6.0.0(postcss@8.4.21) + postcss-selector-parser: 6.0.13 + postcss-value-parser: 4.2.0 + quick-lru: 5.1.1 + resolve: 1.22.8 + transitivePeerDependencies: + - ts-node + + temp@0.9.4: + dependencies: + mkdirp: 0.5.6 + rimraf: 2.6.3 + + terser@5.14.2: + dependencies: + '@jridgewell/source-map': 0.3.5 + acorn: 8.11.2 + commander: 2.20.3 + source-map-support: 0.5.21 + + text-extensions@1.9.0: {} + + text-table@0.2.0: {} + + through2@4.0.2: + dependencies: + readable-stream: 3.6.2 + + through@2.3.8: {} + + tmp@0.0.33: + dependencies: + os-tmpdir: 1.0.2 + + to-fast-properties@2.0.0: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + token-stream@1.0.0: {} + + trim-newlines@3.0.1: {} + + ts-node@10.9.1(@types/node@20.5.1)(typescript@4.9.5): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 20.5.1 + acorn: 8.11.2 + acorn-walk: 8.3.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.9.5 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + + tsconfig-paths@3.14.2: + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + + tslib@1.14.1: {} + + tslib@2.6.2: {} + + tsutils@3.21.0(typescript@4.4.4): + dependencies: + tslib: 1.14.1 + typescript: 4.4.4 + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@0.18.1: {} + + type-fest@0.20.2: {} + + type-fest@0.21.3: {} + + type-fest@0.6.0: {} + + type-fest@0.8.1: {} + + typed-array-buffer@1.0.0: + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 + + typed-array-byte-length@1.0.0: + dependencies: + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + + typed-array-byte-offset@1.0.0: + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + + typed-array-length@1.0.4: + dependencies: + call-bind: 1.0.5 + for-each: 0.3.3 + is-typed-array: 1.1.12 + + typescript@4.4.4: {} + + typescript@4.9.5: {} + + ufo@1.3.1: {} + + unbox-primitive@1.0.2: + dependencies: + call-bind: 1.0.5 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + + unimport@3.5.0(rollup@2.79.1): + dependencies: + '@rollup/pluginutils': 5.0.5(rollup@2.79.1) + escape-string-regexp: 5.0.0 + fast-glob: 3.3.2 + local-pkg: 0.5.0 + magic-string: 0.30.5 + mlly: 1.4.2 + pathe: 1.1.1 + pkg-types: 1.0.3 + scule: 1.0.0 + strip-literal: 1.3.0 + unplugin: 1.5.0 + transitivePeerDependencies: + - rollup + + universalify@2.0.1: {} + + unplugin-auto-import@0.16.7(@vueuse/core@9.13.0(vue@3.2.37))(rollup@2.79.1): + dependencies: + '@antfu/utils': 0.7.6 + '@rollup/pluginutils': 5.0.5(rollup@2.79.1) + fast-glob: 3.3.2 + local-pkg: 0.5.0 + magic-string: 0.30.5 + minimatch: 9.0.3 + unimport: 3.5.0(rollup@2.79.1) + unplugin: 1.5.0 + optionalDependencies: + '@vueuse/core': 9.13.0(vue@3.2.37) + transitivePeerDependencies: + - rollup + + unplugin-vue-components@0.25.2(@babel/parser@7.23.3)(rollup@2.79.1)(vue@3.2.37): + dependencies: + '@antfu/utils': 0.7.6 + '@rollup/pluginutils': 5.0.5(rollup@2.79.1) + chokidar: 3.5.3 + debug: 4.3.4(supports-color@9.4.0) + fast-glob: 3.3.2 + local-pkg: 0.4.3 + magic-string: 0.30.5 + minimatch: 9.0.3 + resolve: 1.22.8 + unplugin: 1.5.0 + vue: 3.2.37 + optionalDependencies: + '@babel/parser': 7.23.3 + transitivePeerDependencies: + - rollup + - supports-color + + unplugin@1.5.0: + dependencies: + acorn: 8.11.2 + chokidar: 3.5.3 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.5.0 + + upath@2.0.1: {} + + update-browserslist-db@1.0.13(browserslist@4.22.1): + dependencies: + browserslist: 4.22.1 + escalade: 3.1.1 + picocolors: 1.0.0 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + user-home@2.0.0: + dependencies: + os-homedir: 1.0.2 + + util-deprecate@1.0.2: {} + + v8-compile-cache-lib@3.0.1: {} + + v8-compile-cache@2.4.0: {} + + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + vite-plugin-compression@0.5.1(vite@3.0.0(less@4.1.2)(sass@1.49.9)(terser@5.14.2)): + dependencies: + chalk: 4.1.2 + debug: 4.3.4(supports-color@9.4.0) + fs-extra: 10.1.0 + vite: 3.0.0(less@4.1.2)(sass@1.49.9)(terser@5.14.2) + transitivePeerDependencies: + - supports-color + + vite@3.0.0(less@4.1.2)(sass@1.49.9)(terser@5.14.2): + dependencies: + esbuild: 0.14.54 + postcss: 8.4.21 + resolve: 1.22.8 + rollup: 2.79.1 + optionalDependencies: + fsevents: 2.3.3 + less: 4.1.2 + sass: 1.49.9 + terser: 5.14.2 + + void-elements@3.1.0: {} + + vscode-css-languageservice@5.4.2: + dependencies: + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + + vscode-html-languageservice@4.2.5: + dependencies: + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + + vscode-json-languageservice@4.2.1: + dependencies: + jsonc-parser: 3.2.0 + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.17.5 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + + vscode-jsonrpc@8.1.0: {} + + vscode-jsonrpc@8.2.0: {} + + vscode-languageserver-protocol@3.17.3: + dependencies: + vscode-jsonrpc: 8.1.0 + vscode-languageserver-types: 3.17.3 + + vscode-languageserver-textdocument@1.0.11: {} + + vscode-languageserver-types@3.17.3: {} + + vscode-languageserver-types@3.17.5: {} + + vscode-languageserver@8.1.0: + dependencies: + vscode-languageserver-protocol: 3.17.3 + + vscode-nls@5.2.0: {} + + vscode-pug-languageservice@0.27.24: + dependencies: + '@volar/code-gen': 0.27.24 + '@volar/shared': 0.27.24 + '@volar/source-map': 0.27.24 + '@volar/transforms': 0.27.24 + pug-lexer: 5.0.1 + pug-parser: 6.0.0 + vscode-languageserver: 8.1.0 + + vscode-typescript-languageservice@0.27.25: + dependencies: + '@volar/shared': 0.27.24 + semver: 7.5.4 + upath: 2.0.1 + vscode-languageserver: 8.1.0 + vscode-languageserver-textdocument: 1.0.11 + + vscode-uri@2.1.2: {} + + vscode-uri@3.0.8: {} + + vscode-vue-languageservice@0.27.30: + dependencies: + '@volar/code-gen': 0.27.24 + '@volar/html2pug': 0.27.13 + '@volar/shared': 0.27.24 + '@volar/source-map': 0.27.24 + '@volar/transforms': 0.27.24 + '@vscode/emmet-helper': 2.9.2 + '@vue/compiler-dom': 3.3.8 + '@vue/reactivity': 3.3.8 + '@vue/shared': 3.3.8 + request-light: 0.5.8 + upath: 2.0.1 + vscode-css-languageservice: 5.4.2 + vscode-html-languageservice: 4.2.5 + vscode-json-languageservice: 4.2.1 + vscode-languageserver: 8.1.0 + vscode-languageserver-textdocument: 1.0.11 + vscode-pug-languageservice: 0.27.24 + vscode-typescript-languageservice: 0.27.25 + + vue-demi@0.14.6(vue@3.2.37): + dependencies: + vue: 3.2.37 + + vue-eslint-parser@7.11.0(eslint@7.32.0): + dependencies: + debug: 4.3.4(supports-color@9.4.0) + eslint: 7.32.0 + eslint-scope: 5.1.1 + eslint-visitor-keys: 1.3.0 + espree: 6.2.1 + esquery: 1.5.0 + lodash: 4.17.21 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + vue-router@4.0.16(vue@3.2.37): + dependencies: + '@vue/devtools-api': 6.5.1 + vue: 3.2.37 + + vue-tsc@0.3.0(typescript@4.4.4): + dependencies: + typescript: 4.4.4 + vscode-vue-languageservice: 0.27.30 + + vue@3.2.37: + dependencies: + '@vue/compiler-dom': 3.2.37 + '@vue/compiler-sfc': 3.2.37 + '@vue/runtime-dom': 3.2.37 + '@vue/server-renderer': 3.2.37(vue@3.2.37) + '@vue/shared': 3.2.37 + + webpack-sources@3.2.3: {} + + webpack-virtual-modules@0.5.0: {} + + which-boxed-primitive@1.0.2: + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + + which-typed-array@1.1.13: + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + with@7.0.2: + dependencies: + '@babel/parser': 7.23.3 + '@babel/types': 7.23.3 + assert-never: 1.2.1 + babel-walk: 3.0.0-canary-5 + + wmf@1.0.2: {} + + word-wrap@1.2.5: {} + + word@0.3.0: {} + + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrappy@1.0.2: {} + + xlsx@0.18.5: + dependencies: + adler-32: 1.3.1 + cfb: 1.2.2 + codepage: 1.15.0 + crc-32: 1.2.2 + ssf: 0.11.2 + wmf: 1.0.2 + word: 0.3.0 + + xtend@4.0.2: {} + + y18n@5.0.8: {} + + yallist@3.1.1: {} + + yallist@4.0.0: {} + + yaml@1.10.2: {} + + yargs-parser@20.2.9: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yn@3.1.1: {} + + yocto-queue@0.1.0: {} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..85f717c --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {} + } +} diff --git a/public/bg.jpeg b/public/bg.jpeg new file mode 100644 index 0000000..2c6b8a0 Binary files /dev/null and b/public/bg.jpeg differ diff --git a/public/bg_small.jpeg b/public/bg_small.jpeg new file mode 100644 index 0000000..cce104e Binary files /dev/null and b/public/bg_small.jpeg differ diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..b09d2e5 Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/font-awesome-4.7.0/HELP-US-OUT.txt b/public/font-awesome-4.7.0/HELP-US-OUT.txt new file mode 100644 index 0000000..83d083d --- /dev/null +++ b/public/font-awesome-4.7.0/HELP-US-OUT.txt @@ -0,0 +1,7 @@ +I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project, +Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome, +comprehensive icon sets or copy and paste your own. + +Please. Check it out. + +-Dave Gandy diff --git a/public/font-awesome-4.7.0/css/font-awesome.css b/public/font-awesome-4.7.0/css/font-awesome.css new file mode 100644 index 0000000..0ab2b8f --- /dev/null +++ b/public/font-awesome-4.7.0/css/font-awesome.css @@ -0,0 +1,2341 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url('../fonts/fontawesome-webfont.eot?v=4.7.0'); + src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), + url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), + url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), + url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), + url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); + font-weight: normal; + font-style: normal; +} +.fa { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +/* makes the font 33% larger relative to the icon container */ +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} +.fa-2x { + font-size: 2em; +} +.fa-3x { + font-size: 3em; +} +.fa-4x { + font-size: 4em; +} +.fa-5x { + font-size: 5em; +} +.fa-fw { + width: 1.28571429em; + text-align: center; +} +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: 0.2em 0.25em 0.15em; + border: solid 0.08em #eeeeee; + border-radius: 0.1em; +} +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: 0.3em; +} +.fa.fa-pull-right { + margin-left: 0.3em; +} +/* Deprecated as of 4.4.0 */ +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.fa.pull-left { + margin-right: 0.3em; +} +.fa.pull-right { + margin-left: 0.3em; +} +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.fa-rotate-90 { + -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=1)'; + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.fa-rotate-180 { + -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=2)'; + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.fa-rotate-270 { + -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=3)'; + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.fa-flip-horizontal { + -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)'; + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.fa-flip-vertical { + -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)'; + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.fa-stack-1x { + line-height: inherit; +} +.fa-stack-2x { + font-size: 2em; +} +.fa-inverse { + color: #ffffff; +} +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.fa-glass:before { + content: '\f000'; +} +.fa-music:before { + content: '\f001'; +} +.fa-search:before { + content: '\f002'; +} +.fa-envelope-o:before { + content: '\f003'; +} +.fa-heart:before { + content: '\f004'; +} +.fa-star:before { + content: '\f005'; +} +.fa-star-o:before { + content: '\f006'; +} +.fa-user:before { + content: '\f007'; +} +.fa-film:before { + content: '\f008'; +} +.fa-th-large:before { + content: '\f009'; +} +.fa-th:before { + content: '\f00a'; +} +.fa-th-list:before { + content: '\f00b'; +} +.fa-check:before { + content: '\f00c'; +} +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: '\f00d'; +} +.fa-search-plus:before { + content: '\f00e'; +} +.fa-search-minus:before { + content: '\f010'; +} +.fa-power-off:before { + content: '\f011'; +} +.fa-signal:before { + content: '\f012'; +} +.fa-gear:before, +.fa-cog:before { + content: '\f013'; +} +.fa-trash-o:before { + content: '\f014'; +} +.fa-home:before { + content: '\f015'; +} +.fa-file-o:before { + content: '\f016'; +} +.fa-clock-o:before { + content: '\f017'; +} +.fa-road:before { + content: '\f018'; +} +.fa-download:before { + content: '\f019'; +} +.fa-arrow-circle-o-down:before { + content: '\f01a'; +} +.fa-arrow-circle-o-up:before { + content: '\f01b'; +} +.fa-inbox:before { + content: '\f01c'; +} +.fa-play-circle-o:before { + content: '\f01d'; +} +.fa-rotate-right:before, +.fa-repeat:before { + content: '\f01e'; +} +.fa-refresh:before { + content: '\f021'; +} +.fa-list-alt:before { + content: '\f022'; +} +.fa-lock:before { + content: '\f023'; +} +.fa-flag:before { + content: '\f024'; +} +.fa-headphones:before { + content: '\f025'; +} +.fa-volume-off:before { + content: '\f026'; +} +.fa-volume-down:before { + content: '\f027'; +} +.fa-volume-up:before { + content: '\f028'; +} +.fa-qrcode:before { + content: '\f029'; +} +.fa-barcode:before { + content: '\f02a'; +} +.fa-tag:before { + content: '\f02b'; +} +.fa-tags:before { + content: '\f02c'; +} +.fa-book:before { + content: '\f02d'; +} +.fa-bookmark:before { + content: '\f02e'; +} +.fa-print:before { + content: '\f02f'; +} +.fa-camera:before { + content: '\f030'; +} +.fa-font:before { + content: '\f031'; +} +.fa-bold:before { + content: '\f032'; +} +.fa-italic:before { + content: '\f033'; +} +.fa-text-height:before { + content: '\f034'; +} +.fa-text-width:before { + content: '\f035'; +} +.fa-align-left:before { + content: '\f036'; +} +.fa-align-center:before { + content: '\f037'; +} +.fa-align-right:before { + content: '\f038'; +} +.fa-align-justify:before { + content: '\f039'; +} +.fa-list:before { + content: '\f03a'; +} +.fa-dedent:before, +.fa-outdent:before { + content: '\f03b'; +} +.fa-indent:before { + content: '\f03c'; +} +.fa-video-camera:before { + content: '\f03d'; +} +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: '\f03e'; +} +.fa-pencil:before { + content: '\f040'; +} +.fa-map-marker:before { + content: '\f041'; +} +.fa-adjust:before { + content: '\f042'; +} +.fa-tint:before { + content: '\f043'; +} +.fa-edit:before, +.fa-pencil-square-o:before { + content: '\f044'; +} +.fa-share-square-o:before { + content: '\f045'; +} +.fa-check-square-o:before { + content: '\f046'; +} +.fa-arrows:before { + content: '\f047'; +} +.fa-step-backward:before { + content: '\f048'; +} +.fa-fast-backward:before { + content: '\f049'; +} +.fa-backward:before { + content: '\f04a'; +} +.fa-play:before { + content: '\f04b'; +} +.fa-pause:before { + content: '\f04c'; +} +.fa-stop:before { + content: '\f04d'; +} +.fa-forward:before { + content: '\f04e'; +} +.fa-fast-forward:before { + content: '\f050'; +} +.fa-step-forward:before { + content: '\f051'; +} +.fa-eject:before { + content: '\f052'; +} +.fa-chevron-left:before { + content: '\f053'; +} +.fa-chevron-right:before { + content: '\f054'; +} +.fa-plus-circle:before { + content: '\f055'; +} +.fa-minus-circle:before { + content: '\f056'; +} +.fa-times-circle:before { + content: '\f057'; +} +.fa-check-circle:before { + content: '\f058'; +} +.fa-question-circle:before { + content: '\f059'; +} +.fa-info-circle:before { + content: '\f05a'; +} +.fa-crosshairs:before { + content: '\f05b'; +} +.fa-times-circle-o:before { + content: '\f05c'; +} +.fa-check-circle-o:before { + content: '\f05d'; +} +.fa-ban:before { + content: '\f05e'; +} +.fa-arrow-left:before { + content: '\f060'; +} +.fa-arrow-right:before { + content: '\f061'; +} +.fa-arrow-up:before { + content: '\f062'; +} +.fa-arrow-down:before { + content: '\f063'; +} +.fa-mail-forward:before, +.fa-share:before { + content: '\f064'; +} +.fa-expand:before { + content: '\f065'; +} +.fa-compress:before { + content: '\f066'; +} +.fa-plus:before { + content: '\f067'; +} +.fa-minus:before { + content: '\f068'; +} +.fa-asterisk:before { + content: '\f069'; +} +.fa-exclamation-circle:before { + content: '\f06a'; +} +.fa-gift:before { + content: '\f06b'; +} +.fa-leaf:before { + content: '\f06c'; +} +.fa-fire:before { + content: '\f06d'; +} +.fa-eye:before { + content: '\f06e'; +} +.fa-eye-slash:before { + content: '\f070'; +} +.fa-warning:before, +.fa-exclamation-triangle:before { + content: '\f071'; +} +.fa-plane:before { + content: '\f072'; +} +.fa-calendar:before { + content: '\f073'; +} +.fa-random:before { + content: '\f074'; +} +.fa-comment:before { + content: '\f075'; +} +.fa-magnet:before { + content: '\f076'; +} +.fa-chevron-up:before { + content: '\f077'; +} +.fa-chevron-down:before { + content: '\f078'; +} +.fa-retweet:before { + content: '\f079'; +} +.fa-shopping-cart:before { + content: '\f07a'; +} +.fa-folder:before { + content: '\f07b'; +} +.fa-folder-open:before { + content: '\f07c'; +} +.fa-arrows-v:before { + content: '\f07d'; +} +.fa-arrows-h:before { + content: '\f07e'; +} +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: '\f080'; +} +.fa-twitter-square:before { + content: '\f081'; +} +.fa-facebook-square:before { + content: '\f082'; +} +.fa-camera-retro:before { + content: '\f083'; +} +.fa-key:before { + content: '\f084'; +} +.fa-gears:before, +.fa-cogs:before { + content: '\f085'; +} +.fa-comments:before { + content: '\f086'; +} +.fa-thumbs-o-up:before { + content: '\f087'; +} +.fa-thumbs-o-down:before { + content: '\f088'; +} +.fa-star-half:before { + content: '\f089'; +} +.fa-heart-o:before { + content: '\f08a'; +} +.fa-sign-out:before { + content: '\f08b'; +} +.fa-linkedin-square:before { + content: '\f08c'; +} +.fa-thumb-tack:before { + content: '\f08d'; +} +.fa-external-link:before { + content: '\f08e'; +} +.fa-sign-in:before { + content: '\f090'; +} +.fa-trophy:before { + content: '\f091'; +} +.fa-github-square:before { + content: '\f092'; +} +.fa-upload:before { + content: '\f093'; +} +.fa-lemon-o:before { + content: '\f094'; +} +.fa-phone:before { + content: '\f095'; +} +.fa-square-o:before { + content: '\f096'; +} +.fa-bookmark-o:before { + content: '\f097'; +} +.fa-phone-square:before { + content: '\f098'; +} +.fa-twitter:before { + content: '\f099'; +} +.fa-facebook-f:before, +.fa-facebook:before { + content: '\f09a'; +} +.fa-github:before { + content: '\f09b'; +} +.fa-unlock:before { + content: '\f09c'; +} +.fa-credit-card:before { + content: '\f09d'; +} +.fa-feed:before, +.fa-rss:before { + content: '\f09e'; +} +.fa-hdd-o:before { + content: '\f0a0'; +} +.fa-bullhorn:before { + content: '\f0a1'; +} +.fa-bell:before { + content: '\f0f3'; +} +.fa-certificate:before { + content: '\f0a3'; +} +.fa-hand-o-right:before { + content: '\f0a4'; +} +.fa-hand-o-left:before { + content: '\f0a5'; +} +.fa-hand-o-up:before { + content: '\f0a6'; +} +.fa-hand-o-down:before { + content: '\f0a7'; +} +.fa-arrow-circle-left:before { + content: '\f0a8'; +} +.fa-arrow-circle-right:before { + content: '\f0a9'; +} +.fa-arrow-circle-up:before { + content: '\f0aa'; +} +.fa-arrow-circle-down:before { + content: '\f0ab'; +} +.fa-globe:before { + content: '\f0ac'; +} +.fa-wrench:before { + content: '\f0ad'; +} +.fa-tasks:before { + content: '\f0ae'; +} +.fa-filter:before { + content: '\f0b0'; +} +.fa-briefcase:before { + content: '\f0b1'; +} +.fa-arrows-alt:before { + content: '\f0b2'; +} +.fa-group:before, +.fa-users:before { + content: '\f0c0'; +} +.fa-chain:before, +.fa-link:before { + content: '\f0c1'; +} +.fa-cloud:before { + content: '\f0c2'; +} +.fa-flask:before { + content: '\f0c3'; +} +.fa-cut:before, +.fa-scissors:before { + content: '\f0c4'; +} +.fa-copy:before, +.fa-files-o:before { + content: '\f0c5'; +} +.fa-paperclip:before { + content: '\f0c6'; +} +.fa-save:before, +.fa-floppy-o:before { + content: '\f0c7'; +} +.fa-square:before { + content: '\f0c8'; +} +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: '\f0c9'; +} +.fa-list-ul:before { + content: '\f0ca'; +} +.fa-list-ol:before { + content: '\f0cb'; +} +.fa-strikethrough:before { + content: '\f0cc'; +} +.fa-underline:before { + content: '\f0cd'; +} +.fa-table:before { + content: '\f0ce'; +} +.fa-magic:before { + content: '\f0d0'; +} +.fa-truck:before { + content: '\f0d1'; +} +.fa-pinterest:before { + content: '\f0d2'; +} +.fa-pinterest-square:before { + content: '\f0d3'; +} +.fa-google-plus-square:before { + content: '\f0d4'; +} +.fa-google-plus:before { + content: '\f0d5'; +} +.fa-money:before { + content: '\f0d6'; +} +.fa-caret-down:before { + content: '\f0d7'; +} +.fa-caret-up:before { + content: '\f0d8'; +} +.fa-caret-left:before { + content: '\f0d9'; +} +.fa-caret-right:before { + content: '\f0da'; +} +.fa-columns:before { + content: '\f0db'; +} +.fa-unsorted:before, +.fa-sort:before { + content: '\f0dc'; +} +.fa-sort-down:before, +.fa-sort-desc:before { + content: '\f0dd'; +} +.fa-sort-up:before, +.fa-sort-asc:before { + content: '\f0de'; +} +.fa-envelope:before { + content: '\f0e0'; +} +.fa-linkedin:before { + content: '\f0e1'; +} +.fa-rotate-left:before, +.fa-undo:before { + content: '\f0e2'; +} +.fa-legal:before, +.fa-gavel:before { + content: '\f0e3'; +} +.fa-dashboard:before, +.fa-tachometer:before { + content: '\f0e4'; +} +.fa-comment-o:before { + content: '\f0e5'; +} +.fa-comments-o:before { + content: '\f0e6'; +} +.fa-flash:before, +.fa-bolt:before { + content: '\f0e7'; +} +.fa-sitemap:before { + content: '\f0e8'; +} +.fa-umbrella:before { + content: '\f0e9'; +} +.fa-paste:before, +.fa-clipboard:before { + content: '\f0ea'; +} +.fa-lightbulb-o:before { + content: '\f0eb'; +} +.fa-exchange:before { + content: '\f0ec'; +} +.fa-cloud-download:before { + content: '\f0ed'; +} +.fa-cloud-upload:before { + content: '\f0ee'; +} +.fa-user-md:before { + content: '\f0f0'; +} +.fa-stethoscope:before { + content: '\f0f1'; +} +.fa-suitcase:before { + content: '\f0f2'; +} +.fa-bell-o:before { + content: '\f0a2'; +} +.fa-coffee:before { + content: '\f0f4'; +} +.fa-cutlery:before { + content: '\f0f5'; +} +.fa-file-text-o:before { + content: '\f0f6'; +} +.fa-building-o:before { + content: '\f0f7'; +} +.fa-hospital-o:before { + content: '\f0f8'; +} +.fa-ambulance:before { + content: '\f0f9'; +} +.fa-medkit:before { + content: '\f0fa'; +} +.fa-fighter-jet:before { + content: '\f0fb'; +} +.fa-beer:before { + content: '\f0fc'; +} +.fa-h-square:before { + content: '\f0fd'; +} +.fa-plus-square:before { + content: '\f0fe'; +} +.fa-angle-double-left:before { + content: '\f100'; +} +.fa-angle-double-right:before { + content: '\f101'; +} +.fa-angle-double-up:before { + content: '\f102'; +} +.fa-angle-double-down:before { + content: '\f103'; +} +.fa-angle-left:before { + content: '\f104'; +} +.fa-angle-right:before { + content: '\f105'; +} +.fa-angle-up:before { + content: '\f106'; +} +.fa-angle-down:before { + content: '\f107'; +} +.fa-desktop:before { + content: '\f108'; +} +.fa-laptop:before { + content: '\f109'; +} +.fa-tablet:before { + content: '\f10a'; +} +.fa-mobile-phone:before, +.fa-mobile:before { + content: '\f10b'; +} +.fa-circle-o:before { + content: '\f10c'; +} +.fa-quote-left:before { + content: '\f10d'; +} +.fa-quote-right:before { + content: '\f10e'; +} +.fa-spinner:before { + content: '\f110'; +} +.fa-circle:before { + content: '\f111'; +} +.fa-mail-reply:before, +.fa-reply:before { + content: '\f112'; +} +.fa-github-alt:before { + content: '\f113'; +} +.fa-folder-o:before { + content: '\f114'; +} +.fa-folder-open-o:before { + content: '\f115'; +} +.fa-smile-o:before { + content: '\f118'; +} +.fa-frown-o:before { + content: '\f119'; +} +.fa-meh-o:before { + content: '\f11a'; +} +.fa-gamepad:before { + content: '\f11b'; +} +.fa-keyboard-o:before { + content: '\f11c'; +} +.fa-flag-o:before { + content: '\f11d'; +} +.fa-flag-checkered:before { + content: '\f11e'; +} +.fa-terminal:before { + content: '\f120'; +} +.fa-code:before { + content: '\f121'; +} +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: '\f122'; +} +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: '\f123'; +} +.fa-location-arrow:before { + content: '\f124'; +} +.fa-crop:before { + content: '\f125'; +} +.fa-code-fork:before { + content: '\f126'; +} +.fa-unlink:before, +.fa-chain-broken:before { + content: '\f127'; +} +.fa-question:before { + content: '\f128'; +} +.fa-info:before { + content: '\f129'; +} +.fa-exclamation:before { + content: '\f12a'; +} +.fa-superscript:before { + content: '\f12b'; +} +.fa-subscript:before { + content: '\f12c'; +} +.fa-eraser:before { + content: '\f12d'; +} +.fa-puzzle-piece:before { + content: '\f12e'; +} +.fa-microphone:before { + content: '\f130'; +} +.fa-microphone-slash:before { + content: '\f131'; +} +.fa-shield:before { + content: '\f132'; +} +.fa-calendar-o:before { + content: '\f133'; +} +.fa-fire-extinguisher:before { + content: '\f134'; +} +.fa-rocket:before { + content: '\f135'; +} +.fa-maxcdn:before { + content: '\f136'; +} +.fa-chevron-circle-left:before { + content: '\f137'; +} +.fa-chevron-circle-right:before { + content: '\f138'; +} +.fa-chevron-circle-up:before { + content: '\f139'; +} +.fa-chevron-circle-down:before { + content: '\f13a'; +} +.fa-html5:before { + content: '\f13b'; +} +.fa-css3:before { + content: '\f13c'; +} +.fa-anchor:before { + content: '\f13d'; +} +.fa-unlock-alt:before { + content: '\f13e'; +} +.fa-bullseye:before { + content: '\f140'; +} +.fa-ellipsis-h:before { + content: '\f141'; +} +.fa-ellipsis-v:before { + content: '\f142'; +} +.fa-rss-square:before { + content: '\f143'; +} +.fa-play-circle:before { + content: '\f144'; +} +.fa-ticket:before { + content: '\f145'; +} +.fa-minus-square:before { + content: '\f146'; +} +.fa-minus-square-o:before { + content: '\f147'; +} +.fa-level-up:before { + content: '\f148'; +} +.fa-level-down:before { + content: '\f149'; +} +.fa-check-square:before { + content: '\f14a'; +} +.fa-pencil-square:before { + content: '\f14b'; +} +.fa-external-link-square:before { + content: '\f14c'; +} +.fa-share-square:before { + content: '\f14d'; +} +.fa-compass:before { + content: '\f14e'; +} +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: '\f150'; +} +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: '\f151'; +} +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: '\f152'; +} +.fa-euro:before, +.fa-eur:before { + content: '\f153'; +} +.fa-gbp:before { + content: '\f154'; +} +.fa-dollar:before, +.fa-usd:before { + content: '\f155'; +} +.fa-rupee:before, +.fa-inr:before { + content: '\f156'; +} +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: '\f157'; +} +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: '\f158'; +} +.fa-won:before, +.fa-krw:before { + content: '\f159'; +} +.fa-bitcoin:before, +.fa-btc:before { + content: '\f15a'; +} +.fa-file:before { + content: '\f15b'; +} +.fa-file-text:before { + content: '\f15c'; +} +.fa-sort-alpha-asc:before { + content: '\f15d'; +} +.fa-sort-alpha-desc:before { + content: '\f15e'; +} +.fa-sort-amount-asc:before { + content: '\f160'; +} +.fa-sort-amount-desc:before { + content: '\f161'; +} +.fa-sort-numeric-asc:before { + content: '\f162'; +} +.fa-sort-numeric-desc:before { + content: '\f163'; +} +.fa-thumbs-up:before { + content: '\f164'; +} +.fa-thumbs-down:before { + content: '\f165'; +} +.fa-youtube-square:before { + content: '\f166'; +} +.fa-youtube:before { + content: '\f167'; +} +.fa-xing:before { + content: '\f168'; +} +.fa-xing-square:before { + content: '\f169'; +} +.fa-youtube-play:before { + content: '\f16a'; +} +.fa-dropbox:before { + content: '\f16b'; +} +.fa-stack-overflow:before { + content: '\f16c'; +} +.fa-instagram:before { + content: '\f16d'; +} +.fa-flickr:before { + content: '\f16e'; +} +.fa-adn:before { + content: '\f170'; +} +.fa-bitbucket:before { + content: '\f171'; +} +.fa-bitbucket-square:before { + content: '\f172'; +} +.fa-tumblr:before { + content: '\f173'; +} +.fa-tumblr-square:before { + content: '\f174'; +} +.fa-long-arrow-down:before { + content: '\f175'; +} +.fa-long-arrow-up:before { + content: '\f176'; +} +.fa-long-arrow-left:before { + content: '\f177'; +} +.fa-long-arrow-right:before { + content: '\f178'; +} +.fa-apple:before { + content: '\f179'; +} +.fa-windows:before { + content: '\f17a'; +} +.fa-android:before { + content: '\f17b'; +} +.fa-linux:before { + content: '\f17c'; +} +.fa-dribbble:before { + content: '\f17d'; +} +.fa-skype:before { + content: '\f17e'; +} +.fa-foursquare:before { + content: '\f180'; +} +.fa-trello:before { + content: '\f181'; +} +.fa-female:before { + content: '\f182'; +} +.fa-male:before { + content: '\f183'; +} +.fa-gittip:before, +.fa-gratipay:before { + content: '\f184'; +} +.fa-sun-o:before { + content: '\f185'; +} +.fa-moon-o:before { + content: '\f186'; +} +.fa-archive:before { + content: '\f187'; +} +.fa-bug:before { + content: '\f188'; +} +.fa-vk:before { + content: '\f189'; +} +.fa-weibo:before { + content: '\f18a'; +} +.fa-renren:before { + content: '\f18b'; +} +.fa-pagelines:before { + content: '\f18c'; +} +.fa-stack-exchange:before { + content: '\f18d'; +} +.fa-arrow-circle-o-right:before { + content: '\f18e'; +} +.fa-arrow-circle-o-left:before { + content: '\f190'; +} +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: '\f191'; +} +.fa-dot-circle-o:before { + content: '\f192'; +} +.fa-wheelchair:before { + content: '\f193'; +} +.fa-vimeo-square:before { + content: '\f194'; +} +.fa-turkish-lira:before, +.fa-try:before { + content: '\f195'; +} +.fa-plus-square-o:before { + content: '\f196'; +} +.fa-space-shuttle:before { + content: '\f197'; +} +.fa-slack:before { + content: '\f198'; +} +.fa-envelope-square:before { + content: '\f199'; +} +.fa-wordpress:before { + content: '\f19a'; +} +.fa-openid:before { + content: '\f19b'; +} +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: '\f19c'; +} +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: '\f19d'; +} +.fa-yahoo:before { + content: '\f19e'; +} +.fa-google:before { + content: '\f1a0'; +} +.fa-reddit:before { + content: '\f1a1'; +} +.fa-reddit-square:before { + content: '\f1a2'; +} +.fa-stumbleupon-circle:before { + content: '\f1a3'; +} +.fa-stumbleupon:before { + content: '\f1a4'; +} +.fa-delicious:before { + content: '\f1a5'; +} +.fa-digg:before { + content: '\f1a6'; +} +.fa-pied-piper-pp:before { + content: '\f1a7'; +} +.fa-pied-piper-alt:before { + content: '\f1a8'; +} +.fa-drupal:before { + content: '\f1a9'; +} +.fa-joomla:before { + content: '\f1aa'; +} +.fa-language:before { + content: '\f1ab'; +} +.fa-fax:before { + content: '\f1ac'; +} +.fa-building:before { + content: '\f1ad'; +} +.fa-child:before { + content: '\f1ae'; +} +.fa-paw:before { + content: '\f1b0'; +} +.fa-spoon:before { + content: '\f1b1'; +} +.fa-cube:before { + content: '\f1b2'; +} +.fa-cubes:before { + content: '\f1b3'; +} +.fa-behance:before { + content: '\f1b4'; +} +.fa-behance-square:before { + content: '\f1b5'; +} +.fa-steam:before { + content: '\f1b6'; +} +.fa-steam-square:before { + content: '\f1b7'; +} +.fa-recycle:before { + content: '\f1b8'; +} +.fa-automobile:before, +.fa-car:before { + content: '\f1b9'; +} +.fa-cab:before, +.fa-taxi:before { + content: '\f1ba'; +} +.fa-tree:before { + content: '\f1bb'; +} +.fa-spotify:before { + content: '\f1bc'; +} +.fa-deviantart:before { + content: '\f1bd'; +} +.fa-soundcloud:before { + content: '\f1be'; +} +.fa-database:before { + content: '\f1c0'; +} +.fa-file-pdf-o:before { + content: '\f1c1'; +} +.fa-file-word-o:before { + content: '\f1c2'; +} +.fa-file-excel-o:before { + content: '\f1c3'; +} +.fa-file-powerpoint-o:before { + content: '\f1c4'; +} +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: '\f1c5'; +} +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: '\f1c6'; +} +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: '\f1c7'; +} +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: '\f1c8'; +} +.fa-file-code-o:before { + content: '\f1c9'; +} +.fa-vine:before { + content: '\f1ca'; +} +.fa-codepen:before { + content: '\f1cb'; +} +.fa-jsfiddle:before { + content: '\f1cc'; +} +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: '\f1cd'; +} +.fa-circle-o-notch:before { + content: '\f1ce'; +} +.fa-ra:before, +.fa-resistance:before, +.fa-rebel:before { + content: '\f1d0'; +} +.fa-ge:before, +.fa-empire:before { + content: '\f1d1'; +} +.fa-git-square:before { + content: '\f1d2'; +} +.fa-git:before { + content: '\f1d3'; +} +.fa-y-combinator-square:before, +.fa-yc-square:before, +.fa-hacker-news:before { + content: '\f1d4'; +} +.fa-tencent-weibo:before { + content: '\f1d5'; +} +.fa-qq:before { + content: '\f1d6'; +} +.fa-wechat:before, +.fa-weixin:before { + content: '\f1d7'; +} +.fa-send:before, +.fa-paper-plane:before { + content: '\f1d8'; +} +.fa-send-o:before, +.fa-paper-plane-o:before { + content: '\f1d9'; +} +.fa-history:before { + content: '\f1da'; +} +.fa-circle-thin:before { + content: '\f1db'; +} +.fa-header:before { + content: '\f1dc'; +} +.fa-paragraph:before { + content: '\f1dd'; +} +.fa-sliders:before { + content: '\f1de'; +} +.fa-share-alt:before { + content: '\f1e0'; +} +.fa-share-alt-square:before { + content: '\f1e1'; +} +.fa-bomb:before { + content: '\f1e2'; +} +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: '\f1e3'; +} +.fa-tty:before { + content: '\f1e4'; +} +.fa-binoculars:before { + content: '\f1e5'; +} +.fa-plug:before { + content: '\f1e6'; +} +.fa-slideshare:before { + content: '\f1e7'; +} +.fa-twitch:before { + content: '\f1e8'; +} +.fa-yelp:before { + content: '\f1e9'; +} +.fa-newspaper-o:before { + content: '\f1ea'; +} +.fa-wifi:before { + content: '\f1eb'; +} +.fa-calculator:before { + content: '\f1ec'; +} +.fa-paypal:before { + content: '\f1ed'; +} +.fa-google-wallet:before { + content: '\f1ee'; +} +.fa-cc-visa:before { + content: '\f1f0'; +} +.fa-cc-mastercard:before { + content: '\f1f1'; +} +.fa-cc-discover:before { + content: '\f1f2'; +} +.fa-cc-amex:before { + content: '\f1f3'; +} +.fa-cc-paypal:before { + content: '\f1f4'; +} +.fa-cc-stripe:before { + content: '\f1f5'; +} +.fa-bell-slash:before { + content: '\f1f6'; +} +.fa-bell-slash-o:before { + content: '\f1f7'; +} +.fa-trash:before { + content: '\f1f8'; +} +.fa-copyright:before { + content: '\f1f9'; +} +.fa-at:before { + content: '\f1fa'; +} +.fa-eyedropper:before { + content: '\f1fb'; +} +.fa-paint-brush:before { + content: '\f1fc'; +} +.fa-birthday-cake:before { + content: '\f1fd'; +} +.fa-area-chart:before { + content: '\f1fe'; +} +.fa-pie-chart:before { + content: '\f200'; +} +.fa-line-chart:before { + content: '\f201'; +} +.fa-lastfm:before { + content: '\f202'; +} +.fa-lastfm-square:before { + content: '\f203'; +} +.fa-toggle-off:before { + content: '\f204'; +} +.fa-toggle-on:before { + content: '\f205'; +} +.fa-bicycle:before { + content: '\f206'; +} +.fa-bus:before { + content: '\f207'; +} +.fa-ioxhost:before { + content: '\f208'; +} +.fa-angellist:before { + content: '\f209'; +} +.fa-cc:before { + content: '\f20a'; +} +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: '\f20b'; +} +.fa-meanpath:before { + content: '\f20c'; +} +.fa-buysellads:before { + content: '\f20d'; +} +.fa-connectdevelop:before { + content: '\f20e'; +} +.fa-dashcube:before { + content: '\f210'; +} +.fa-forumbee:before { + content: '\f211'; +} +.fa-leanpub:before { + content: '\f212'; +} +.fa-sellsy:before { + content: '\f213'; +} +.fa-shirtsinbulk:before { + content: '\f214'; +} +.fa-simplybuilt:before { + content: '\f215'; +} +.fa-skyatlas:before { + content: '\f216'; +} +.fa-cart-plus:before { + content: '\f217'; +} +.fa-cart-arrow-down:before { + content: '\f218'; +} +.fa-diamond:before { + content: '\f219'; +} +.fa-ship:before { + content: '\f21a'; +} +.fa-user-secret:before { + content: '\f21b'; +} +.fa-motorcycle:before { + content: '\f21c'; +} +.fa-street-view:before { + content: '\f21d'; +} +.fa-heartbeat:before { + content: '\f21e'; +} +.fa-venus:before { + content: '\f221'; +} +.fa-mars:before { + content: '\f222'; +} +.fa-mercury:before { + content: '\f223'; +} +.fa-intersex:before, +.fa-transgender:before { + content: '\f224'; +} +.fa-transgender-alt:before { + content: '\f225'; +} +.fa-venus-double:before { + content: '\f226'; +} +.fa-mars-double:before { + content: '\f227'; +} +.fa-venus-mars:before { + content: '\f228'; +} +.fa-mars-stroke:before { + content: '\f229'; +} +.fa-mars-stroke-v:before { + content: '\f22a'; +} +.fa-mars-stroke-h:before { + content: '\f22b'; +} +.fa-neuter:before { + content: '\f22c'; +} +.fa-genderless:before { + content: '\f22d'; +} +.fa-facebook-official:before { + content: '\f230'; +} +.fa-pinterest-p:before { + content: '\f231'; +} +.fa-whatsapp:before { + content: '\f232'; +} +.fa-server:before { + content: '\f233'; +} +.fa-user-plus:before { + content: '\f234'; +} +.fa-user-times:before { + content: '\f235'; +} +.fa-hotel:before, +.fa-bed:before { + content: '\f236'; +} +.fa-viacoin:before { + content: '\f237'; +} +.fa-train:before { + content: '\f238'; +} +.fa-subway:before { + content: '\f239'; +} +.fa-medium:before { + content: '\f23a'; +} +.fa-yc:before, +.fa-y-combinator:before { + content: '\f23b'; +} +.fa-optin-monster:before { + content: '\f23c'; +} +.fa-opencart:before { + content: '\f23d'; +} +.fa-expeditedssl:before { + content: '\f23e'; +} +.fa-battery-4:before, +.fa-battery:before, +.fa-battery-full:before { + content: '\f240'; +} +.fa-battery-3:before, +.fa-battery-three-quarters:before { + content: '\f241'; +} +.fa-battery-2:before, +.fa-battery-half:before { + content: '\f242'; +} +.fa-battery-1:before, +.fa-battery-quarter:before { + content: '\f243'; +} +.fa-battery-0:before, +.fa-battery-empty:before { + content: '\f244'; +} +.fa-mouse-pointer:before { + content: '\f245'; +} +.fa-i-cursor:before { + content: '\f246'; +} +.fa-object-group:before { + content: '\f247'; +} +.fa-object-ungroup:before { + content: '\f248'; +} +.fa-sticky-note:before { + content: '\f249'; +} +.fa-sticky-note-o:before { + content: '\f24a'; +} +.fa-cc-jcb:before { + content: '\f24b'; +} +.fa-cc-diners-club:before { + content: '\f24c'; +} +.fa-clone:before { + content: '\f24d'; +} +.fa-balance-scale:before { + content: '\f24e'; +} +.fa-hourglass-o:before { + content: '\f250'; +} +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: '\f251'; +} +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: '\f252'; +} +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: '\f253'; +} +.fa-hourglass:before { + content: '\f254'; +} +.fa-hand-grab-o:before, +.fa-hand-rock-o:before { + content: '\f255'; +} +.fa-hand-stop-o:before, +.fa-hand-paper-o:before { + content: '\f256'; +} +.fa-hand-scissors-o:before { + content: '\f257'; +} +.fa-hand-lizard-o:before { + content: '\f258'; +} +.fa-hand-spock-o:before { + content: '\f259'; +} +.fa-hand-pointer-o:before { + content: '\f25a'; +} +.fa-hand-peace-o:before { + content: '\f25b'; +} +.fa-trademark:before { + content: '\f25c'; +} +.fa-registered:before { + content: '\f25d'; +} +.fa-creative-commons:before { + content: '\f25e'; +} +.fa-gg:before { + content: '\f260'; +} +.fa-gg-circle:before { + content: '\f261'; +} +.fa-tripadvisor:before { + content: '\f262'; +} +.fa-odnoklassniki:before { + content: '\f263'; +} +.fa-odnoklassniki-square:before { + content: '\f264'; +} +.fa-get-pocket:before { + content: '\f265'; +} +.fa-wikipedia-w:before { + content: '\f266'; +} +.fa-safari:before { + content: '\f267'; +} +.fa-chrome:before { + content: '\f268'; +} +.fa-firefox:before { + content: '\f269'; +} +.fa-opera:before { + content: '\f26a'; +} +.fa-internet-explorer:before { + content: '\f26b'; +} +.fa-tv:before, +.fa-television:before { + content: '\f26c'; +} +.fa-contao:before { + content: '\f26d'; +} +.fa-500px:before { + content: '\f26e'; +} +.fa-amazon:before { + content: '\f270'; +} +.fa-calendar-plus-o:before { + content: '\f271'; +} +.fa-calendar-minus-o:before { + content: '\f272'; +} +.fa-calendar-times-o:before { + content: '\f273'; +} +.fa-calendar-check-o:before { + content: '\f274'; +} +.fa-industry:before { + content: '\f275'; +} +.fa-map-pin:before { + content: '\f276'; +} +.fa-map-signs:before { + content: '\f277'; +} +.fa-map-o:before { + content: '\f278'; +} +.fa-map:before { + content: '\f279'; +} +.fa-commenting:before { + content: '\f27a'; +} +.fa-commenting-o:before { + content: '\f27b'; +} +.fa-houzz:before { + content: '\f27c'; +} +.fa-vimeo:before { + content: '\f27d'; +} +.fa-black-tie:before { + content: '\f27e'; +} +.fa-fonticons:before { + content: '\f280'; +} +.fa-reddit-alien:before { + content: '\f281'; +} +.fa-edge:before { + content: '\f282'; +} +.fa-credit-card-alt:before { + content: '\f283'; +} +.fa-codiepie:before { + content: '\f284'; +} +.fa-modx:before { + content: '\f285'; +} +.fa-fort-awesome:before { + content: '\f286'; +} +.fa-usb:before { + content: '\f287'; +} +.fa-product-hunt:before { + content: '\f288'; +} +.fa-mixcloud:before { + content: '\f289'; +} +.fa-scribd:before { + content: '\f28a'; +} +.fa-pause-circle:before { + content: '\f28b'; +} +.fa-pause-circle-o:before { + content: '\f28c'; +} +.fa-stop-circle:before { + content: '\f28d'; +} +.fa-stop-circle-o:before { + content: '\f28e'; +} +.fa-shopping-bag:before { + content: '\f290'; +} +.fa-shopping-basket:before { + content: '\f291'; +} +.fa-hashtag:before { + content: '\f292'; +} +.fa-bluetooth:before { + content: '\f293'; +} +.fa-bluetooth-b:before { + content: '\f294'; +} +.fa-percent:before { + content: '\f295'; +} +.fa-gitlab:before { + content: '\f296'; +} +.fa-wpbeginner:before { + content: '\f297'; +} +.fa-wpforms:before { + content: '\f298'; +} +.fa-envira:before { + content: '\f299'; +} +.fa-universal-access:before { + content: '\f29a'; +} +.fa-wheelchair-alt:before { + content: '\f29b'; +} +.fa-question-circle-o:before { + content: '\f29c'; +} +.fa-blind:before { + content: '\f29d'; +} +.fa-audio-description:before { + content: '\f29e'; +} +.fa-volume-control-phone:before { + content: '\f2a0'; +} +.fa-braille:before { + content: '\f2a1'; +} +.fa-assistive-listening-systems:before { + content: '\f2a2'; +} +.fa-asl-interpreting:before, +.fa-american-sign-language-interpreting:before { + content: '\f2a3'; +} +.fa-deafness:before, +.fa-hard-of-hearing:before, +.fa-deaf:before { + content: '\f2a4'; +} +.fa-glide:before { + content: '\f2a5'; +} +.fa-glide-g:before { + content: '\f2a6'; +} +.fa-signing:before, +.fa-sign-language:before { + content: '\f2a7'; +} +.fa-low-vision:before { + content: '\f2a8'; +} +.fa-viadeo:before { + content: '\f2a9'; +} +.fa-viadeo-square:before { + content: '\f2aa'; +} +.fa-snapchat:before { + content: '\f2ab'; +} +.fa-snapchat-ghost:before { + content: '\f2ac'; +} +.fa-snapchat-square:before { + content: '\f2ad'; +} +.fa-pied-piper:before { + content: '\f2ae'; +} +.fa-first-order:before { + content: '\f2b0'; +} +.fa-yoast:before { + content: '\f2b1'; +} +.fa-themeisle:before { + content: '\f2b2'; +} +.fa-google-plus-circle:before, +.fa-google-plus-official:before { + content: '\f2b3'; +} +.fa-fa:before, +.fa-font-awesome:before { + content: '\f2b4'; +} +.fa-handshake-o:before { + content: '\f2b5'; +} +.fa-envelope-open:before { + content: '\f2b6'; +} +.fa-envelope-open-o:before { + content: '\f2b7'; +} +.fa-linode:before { + content: '\f2b8'; +} +.fa-address-book:before { + content: '\f2b9'; +} +.fa-address-book-o:before { + content: '\f2ba'; +} +.fa-vcard:before, +.fa-address-card:before { + content: '\f2bb'; +} +.fa-vcard-o:before, +.fa-address-card-o:before { + content: '\f2bc'; +} +.fa-user-circle:before { + content: '\f2bd'; +} +.fa-user-circle-o:before { + content: '\f2be'; +} +.fa-user-o:before { + content: '\f2c0'; +} +.fa-id-badge:before { + content: '\f2c1'; +} +.fa-drivers-license:before, +.fa-id-card:before { + content: '\f2c2'; +} +.fa-drivers-license-o:before, +.fa-id-card-o:before { + content: '\f2c3'; +} +.fa-quora:before { + content: '\f2c4'; +} +.fa-free-code-camp:before { + content: '\f2c5'; +} +.fa-telegram:before { + content: '\f2c6'; +} +.fa-thermometer-4:before, +.fa-thermometer:before, +.fa-thermometer-full:before { + content: '\f2c7'; +} +.fa-thermometer-3:before, +.fa-thermometer-three-quarters:before { + content: '\f2c8'; +} +.fa-thermometer-2:before, +.fa-thermometer-half:before { + content: '\f2c9'; +} +.fa-thermometer-1:before, +.fa-thermometer-quarter:before { + content: '\f2ca'; +} +.fa-thermometer-0:before, +.fa-thermometer-empty:before { + content: '\f2cb'; +} +.fa-shower:before { + content: '\f2cc'; +} +.fa-bathtub:before, +.fa-s15:before, +.fa-bath:before { + content: '\f2cd'; +} +.fa-podcast:before { + content: '\f2ce'; +} +.fa-window-maximize:before { + content: '\f2d0'; +} +.fa-window-minimize:before { + content: '\f2d1'; +} +.fa-window-restore:before { + content: '\f2d2'; +} +.fa-times-rectangle:before, +.fa-window-close:before { + content: '\f2d3'; +} +.fa-times-rectangle-o:before, +.fa-window-close-o:before { + content: '\f2d4'; +} +.fa-bandcamp:before { + content: '\f2d5'; +} +.fa-grav:before { + content: '\f2d6'; +} +.fa-etsy:before { + content: '\f2d7'; +} +.fa-imdb:before { + content: '\f2d8'; +} +.fa-ravelry:before { + content: '\f2d9'; +} +.fa-eercast:before { + content: '\f2da'; +} +.fa-microchip:before { + content: '\f2db'; +} +.fa-snowflake-o:before { + content: '\f2dc'; +} +.fa-superpowers:before { + content: '\f2dd'; +} +.fa-wpexplorer:before { + content: '\f2de'; +} +.fa-meetup:before { + content: '\f2e0'; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} diff --git a/public/font-awesome-4.7.0/css/font-awesome.min.css b/public/font-awesome-4.7.0/css/font-awesome.min.css new file mode 100644 index 0000000..fb6b9dd --- /dev/null +++ b/public/font-awesome-4.7.0/css/font-awesome.min.css @@ -0,0 +1,2335 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +@font-face { + font-family: 'FontAwesome'; + src: url('../fonts/fontawesome-webfont.eot?v=4.7.0'); + src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), + url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), + url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), + url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), + url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); + font-weight: normal; + font-style: normal; +} +.fa { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} +.fa-2x { + font-size: 2em; +} +.fa-3x { + font-size: 3em; +} +.fa-4x { + font-size: 4em; +} +.fa-5x { + font-size: 5em; +} +.fa-fw { + width: 1.28571429em; + text-align: center; +} +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: 0.2em 0.25em 0.15em; + border: solid 0.08em #eee; + border-radius: 0.1em; +} +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: 0.3em; +} +.fa.fa-pull-right { + margin-left: 0.3em; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.fa.pull-left { + margin-right: 0.3em; +} +.fa.pull-right { + margin-left: 0.3em; +} +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.fa-rotate-90 { + -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=1)'; + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.fa-rotate-180 { + -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=2)'; + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.fa-rotate-270 { + -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=3)'; + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.fa-flip-horizontal { + -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)'; + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.fa-flip-vertical { + -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)'; + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.fa-stack-1x { + line-height: inherit; +} +.fa-stack-2x { + font-size: 2em; +} +.fa-inverse { + color: #fff; +} +.fa-glass:before { + content: '\f000'; +} +.fa-music:before { + content: '\f001'; +} +.fa-search:before { + content: '\f002'; +} +.fa-envelope-o:before { + content: '\f003'; +} +.fa-heart:before { + content: '\f004'; +} +.fa-star:before { + content: '\f005'; +} +.fa-star-o:before { + content: '\f006'; +} +.fa-user:before { + content: '\f007'; +} +.fa-film:before { + content: '\f008'; +} +.fa-th-large:before { + content: '\f009'; +} +.fa-th:before { + content: '\f00a'; +} +.fa-th-list:before { + content: '\f00b'; +} +.fa-check:before { + content: '\f00c'; +} +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: '\f00d'; +} +.fa-search-plus:before { + content: '\f00e'; +} +.fa-search-minus:before { + content: '\f010'; +} +.fa-power-off:before { + content: '\f011'; +} +.fa-signal:before { + content: '\f012'; +} +.fa-gear:before, +.fa-cog:before { + content: '\f013'; +} +.fa-trash-o:before { + content: '\f014'; +} +.fa-home:before { + content: '\f015'; +} +.fa-file-o:before { + content: '\f016'; +} +.fa-clock-o:before { + content: '\f017'; +} +.fa-road:before { + content: '\f018'; +} +.fa-download:before { + content: '\f019'; +} +.fa-arrow-circle-o-down:before { + content: '\f01a'; +} +.fa-arrow-circle-o-up:before { + content: '\f01b'; +} +.fa-inbox:before { + content: '\f01c'; +} +.fa-play-circle-o:before { + content: '\f01d'; +} +.fa-rotate-right:before, +.fa-repeat:before { + content: '\f01e'; +} +.fa-refresh:before { + content: '\f021'; +} +.fa-list-alt:before { + content: '\f022'; +} +.fa-lock:before { + content: '\f023'; +} +.fa-flag:before { + content: '\f024'; +} +.fa-headphones:before { + content: '\f025'; +} +.fa-volume-off:before { + content: '\f026'; +} +.fa-volume-down:before { + content: '\f027'; +} +.fa-volume-up:before { + content: '\f028'; +} +.fa-qrcode:before { + content: '\f029'; +} +.fa-barcode:before { + content: '\f02a'; +} +.fa-tag:before { + content: '\f02b'; +} +.fa-tags:before { + content: '\f02c'; +} +.fa-book:before { + content: '\f02d'; +} +.fa-bookmark:before { + content: '\f02e'; +} +.fa-print:before { + content: '\f02f'; +} +.fa-camera:before { + content: '\f030'; +} +.fa-font:before { + content: '\f031'; +} +.fa-bold:before { + content: '\f032'; +} +.fa-italic:before { + content: '\f033'; +} +.fa-text-height:before { + content: '\f034'; +} +.fa-text-width:before { + content: '\f035'; +} +.fa-align-left:before { + content: '\f036'; +} +.fa-align-center:before { + content: '\f037'; +} +.fa-align-right:before { + content: '\f038'; +} +.fa-align-justify:before { + content: '\f039'; +} +.fa-list:before { + content: '\f03a'; +} +.fa-dedent:before, +.fa-outdent:before { + content: '\f03b'; +} +.fa-indent:before { + content: '\f03c'; +} +.fa-video-camera:before { + content: '\f03d'; +} +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: '\f03e'; +} +.fa-pencil:before { + content: '\f040'; +} +.fa-map-marker:before { + content: '\f041'; +} +.fa-adjust:before { + content: '\f042'; +} +.fa-tint:before { + content: '\f043'; +} +.fa-edit:before, +.fa-pencil-square-o:before { + content: '\f044'; +} +.fa-share-square-o:before { + content: '\f045'; +} +.fa-check-square-o:before { + content: '\f046'; +} +.fa-arrows:before { + content: '\f047'; +} +.fa-step-backward:before { + content: '\f048'; +} +.fa-fast-backward:before { + content: '\f049'; +} +.fa-backward:before { + content: '\f04a'; +} +.fa-play:before { + content: '\f04b'; +} +.fa-pause:before { + content: '\f04c'; +} +.fa-stop:before { + content: '\f04d'; +} +.fa-forward:before { + content: '\f04e'; +} +.fa-fast-forward:before { + content: '\f050'; +} +.fa-step-forward:before { + content: '\f051'; +} +.fa-eject:before { + content: '\f052'; +} +.fa-chevron-left:before { + content: '\f053'; +} +.fa-chevron-right:before { + content: '\f054'; +} +.fa-plus-circle:before { + content: '\f055'; +} +.fa-minus-circle:before { + content: '\f056'; +} +.fa-times-circle:before { + content: '\f057'; +} +.fa-check-circle:before { + content: '\f058'; +} +.fa-question-circle:before { + content: '\f059'; +} +.fa-info-circle:before { + content: '\f05a'; +} +.fa-crosshairs:before { + content: '\f05b'; +} +.fa-times-circle-o:before { + content: '\f05c'; +} +.fa-check-circle-o:before { + content: '\f05d'; +} +.fa-ban:before { + content: '\f05e'; +} +.fa-arrow-left:before { + content: '\f060'; +} +.fa-arrow-right:before { + content: '\f061'; +} +.fa-arrow-up:before { + content: '\f062'; +} +.fa-arrow-down:before { + content: '\f063'; +} +.fa-mail-forward:before, +.fa-share:before { + content: '\f064'; +} +.fa-expand:before { + content: '\f065'; +} +.fa-compress:before { + content: '\f066'; +} +.fa-plus:before { + content: '\f067'; +} +.fa-minus:before { + content: '\f068'; +} +.fa-asterisk:before { + content: '\f069'; +} +.fa-exclamation-circle:before { + content: '\f06a'; +} +.fa-gift:before { + content: '\f06b'; +} +.fa-leaf:before { + content: '\f06c'; +} +.fa-fire:before { + content: '\f06d'; +} +.fa-eye:before { + content: '\f06e'; +} +.fa-eye-slash:before { + content: '\f070'; +} +.fa-warning:before, +.fa-exclamation-triangle:before { + content: '\f071'; +} +.fa-plane:before { + content: '\f072'; +} +.fa-calendar:before { + content: '\f073'; +} +.fa-random:before { + content: '\f074'; +} +.fa-comment:before { + content: '\f075'; +} +.fa-magnet:before { + content: '\f076'; +} +.fa-chevron-up:before { + content: '\f077'; +} +.fa-chevron-down:before { + content: '\f078'; +} +.fa-retweet:before { + content: '\f079'; +} +.fa-shopping-cart:before { + content: '\f07a'; +} +.fa-folder:before { + content: '\f07b'; +} +.fa-folder-open:before { + content: '\f07c'; +} +.fa-arrows-v:before { + content: '\f07d'; +} +.fa-arrows-h:before { + content: '\f07e'; +} +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: '\f080'; +} +.fa-twitter-square:before { + content: '\f081'; +} +.fa-facebook-square:before { + content: '\f082'; +} +.fa-camera-retro:before { + content: '\f083'; +} +.fa-key:before { + content: '\f084'; +} +.fa-gears:before, +.fa-cogs:before { + content: '\f085'; +} +.fa-comments:before { + content: '\f086'; +} +.fa-thumbs-o-up:before { + content: '\f087'; +} +.fa-thumbs-o-down:before { + content: '\f088'; +} +.fa-star-half:before { + content: '\f089'; +} +.fa-heart-o:before { + content: '\f08a'; +} +.fa-sign-out:before { + content: '\f08b'; +} +.fa-linkedin-square:before { + content: '\f08c'; +} +.fa-thumb-tack:before { + content: '\f08d'; +} +.fa-external-link:before { + content: '\f08e'; +} +.fa-sign-in:before { + content: '\f090'; +} +.fa-trophy:before { + content: '\f091'; +} +.fa-github-square:before { + content: '\f092'; +} +.fa-upload:before { + content: '\f093'; +} +.fa-lemon-o:before { + content: '\f094'; +} +.fa-phone:before { + content: '\f095'; +} +.fa-square-o:before { + content: '\f096'; +} +.fa-bookmark-o:before { + content: '\f097'; +} +.fa-phone-square:before { + content: '\f098'; +} +.fa-twitter:before { + content: '\f099'; +} +.fa-facebook-f:before, +.fa-facebook:before { + content: '\f09a'; +} +.fa-github:before { + content: '\f09b'; +} +.fa-unlock:before { + content: '\f09c'; +} +.fa-credit-card:before { + content: '\f09d'; +} +.fa-feed:before, +.fa-rss:before { + content: '\f09e'; +} +.fa-hdd-o:before { + content: '\f0a0'; +} +.fa-bullhorn:before { + content: '\f0a1'; +} +.fa-bell:before { + content: '\f0f3'; +} +.fa-certificate:before { + content: '\f0a3'; +} +.fa-hand-o-right:before { + content: '\f0a4'; +} +.fa-hand-o-left:before { + content: '\f0a5'; +} +.fa-hand-o-up:before { + content: '\f0a6'; +} +.fa-hand-o-down:before { + content: '\f0a7'; +} +.fa-arrow-circle-left:before { + content: '\f0a8'; +} +.fa-arrow-circle-right:before { + content: '\f0a9'; +} +.fa-arrow-circle-up:before { + content: '\f0aa'; +} +.fa-arrow-circle-down:before { + content: '\f0ab'; +} +.fa-globe:before { + content: '\f0ac'; +} +.fa-wrench:before { + content: '\f0ad'; +} +.fa-tasks:before { + content: '\f0ae'; +} +.fa-filter:before { + content: '\f0b0'; +} +.fa-briefcase:before { + content: '\f0b1'; +} +.fa-arrows-alt:before { + content: '\f0b2'; +} +.fa-group:before, +.fa-users:before { + content: '\f0c0'; +} +.fa-chain:before, +.fa-link:before { + content: '\f0c1'; +} +.fa-cloud:before { + content: '\f0c2'; +} +.fa-flask:before { + content: '\f0c3'; +} +.fa-cut:before, +.fa-scissors:before { + content: '\f0c4'; +} +.fa-copy:before, +.fa-files-o:before { + content: '\f0c5'; +} +.fa-paperclip:before { + content: '\f0c6'; +} +.fa-save:before, +.fa-floppy-o:before { + content: '\f0c7'; +} +.fa-square:before { + content: '\f0c8'; +} +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: '\f0c9'; +} +.fa-list-ul:before { + content: '\f0ca'; +} +.fa-list-ol:before { + content: '\f0cb'; +} +.fa-strikethrough:before { + content: '\f0cc'; +} +.fa-underline:before { + content: '\f0cd'; +} +.fa-table:before { + content: '\f0ce'; +} +.fa-magic:before { + content: '\f0d0'; +} +.fa-truck:before { + content: '\f0d1'; +} +.fa-pinterest:before { + content: '\f0d2'; +} +.fa-pinterest-square:before { + content: '\f0d3'; +} +.fa-google-plus-square:before { + content: '\f0d4'; +} +.fa-google-plus:before { + content: '\f0d5'; +} +.fa-money:before { + content: '\f0d6'; +} +.fa-caret-down:before { + content: '\f0d7'; +} +.fa-caret-up:before { + content: '\f0d8'; +} +.fa-caret-left:before { + content: '\f0d9'; +} +.fa-caret-right:before { + content: '\f0da'; +} +.fa-columns:before { + content: '\f0db'; +} +.fa-unsorted:before, +.fa-sort:before { + content: '\f0dc'; +} +.fa-sort-down:before, +.fa-sort-desc:before { + content: '\f0dd'; +} +.fa-sort-up:before, +.fa-sort-asc:before { + content: '\f0de'; +} +.fa-envelope:before { + content: '\f0e0'; +} +.fa-linkedin:before { + content: '\f0e1'; +} +.fa-rotate-left:before, +.fa-undo:before { + content: '\f0e2'; +} +.fa-legal:before, +.fa-gavel:before { + content: '\f0e3'; +} +.fa-dashboard:before, +.fa-tachometer:before { + content: '\f0e4'; +} +.fa-comment-o:before { + content: '\f0e5'; +} +.fa-comments-o:before { + content: '\f0e6'; +} +.fa-flash:before, +.fa-bolt:before { + content: '\f0e7'; +} +.fa-sitemap:before { + content: '\f0e8'; +} +.fa-umbrella:before { + content: '\f0e9'; +} +.fa-paste:before, +.fa-clipboard:before { + content: '\f0ea'; +} +.fa-lightbulb-o:before { + content: '\f0eb'; +} +.fa-exchange:before { + content: '\f0ec'; +} +.fa-cloud-download:before { + content: '\f0ed'; +} +.fa-cloud-upload:before { + content: '\f0ee'; +} +.fa-user-md:before { + content: '\f0f0'; +} +.fa-stethoscope:before { + content: '\f0f1'; +} +.fa-suitcase:before { + content: '\f0f2'; +} +.fa-bell-o:before { + content: '\f0a2'; +} +.fa-coffee:before { + content: '\f0f4'; +} +.fa-cutlery:before { + content: '\f0f5'; +} +.fa-file-text-o:before { + content: '\f0f6'; +} +.fa-building-o:before { + content: '\f0f7'; +} +.fa-hospital-o:before { + content: '\f0f8'; +} +.fa-ambulance:before { + content: '\f0f9'; +} +.fa-medkit:before { + content: '\f0fa'; +} +.fa-fighter-jet:before { + content: '\f0fb'; +} +.fa-beer:before { + content: '\f0fc'; +} +.fa-h-square:before { + content: '\f0fd'; +} +.fa-plus-square:before { + content: '\f0fe'; +} +.fa-angle-double-left:before { + content: '\f100'; +} +.fa-angle-double-right:before { + content: '\f101'; +} +.fa-angle-double-up:before { + content: '\f102'; +} +.fa-angle-double-down:before { + content: '\f103'; +} +.fa-angle-left:before { + content: '\f104'; +} +.fa-angle-right:before { + content: '\f105'; +} +.fa-angle-up:before { + content: '\f106'; +} +.fa-angle-down:before { + content: '\f107'; +} +.fa-desktop:before { + content: '\f108'; +} +.fa-laptop:before { + content: '\f109'; +} +.fa-tablet:before { + content: '\f10a'; +} +.fa-mobile-phone:before, +.fa-mobile:before { + content: '\f10b'; +} +.fa-circle-o:before { + content: '\f10c'; +} +.fa-quote-left:before { + content: '\f10d'; +} +.fa-quote-right:before { + content: '\f10e'; +} +.fa-spinner:before { + content: '\f110'; +} +.fa-circle:before { + content: '\f111'; +} +.fa-mail-reply:before, +.fa-reply:before { + content: '\f112'; +} +.fa-github-alt:before { + content: '\f113'; +} +.fa-folder-o:before { + content: '\f114'; +} +.fa-folder-open-o:before { + content: '\f115'; +} +.fa-smile-o:before { + content: '\f118'; +} +.fa-frown-o:before { + content: '\f119'; +} +.fa-meh-o:before { + content: '\f11a'; +} +.fa-gamepad:before { + content: '\f11b'; +} +.fa-keyboard-o:before { + content: '\f11c'; +} +.fa-flag-o:before { + content: '\f11d'; +} +.fa-flag-checkered:before { + content: '\f11e'; +} +.fa-terminal:before { + content: '\f120'; +} +.fa-code:before { + content: '\f121'; +} +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: '\f122'; +} +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: '\f123'; +} +.fa-location-arrow:before { + content: '\f124'; +} +.fa-crop:before { + content: '\f125'; +} +.fa-code-fork:before { + content: '\f126'; +} +.fa-unlink:before, +.fa-chain-broken:before { + content: '\f127'; +} +.fa-question:before { + content: '\f128'; +} +.fa-info:before { + content: '\f129'; +} +.fa-exclamation:before { + content: '\f12a'; +} +.fa-superscript:before { + content: '\f12b'; +} +.fa-subscript:before { + content: '\f12c'; +} +.fa-eraser:before { + content: '\f12d'; +} +.fa-puzzle-piece:before { + content: '\f12e'; +} +.fa-microphone:before { + content: '\f130'; +} +.fa-microphone-slash:before { + content: '\f131'; +} +.fa-shield:before { + content: '\f132'; +} +.fa-calendar-o:before { + content: '\f133'; +} +.fa-fire-extinguisher:before { + content: '\f134'; +} +.fa-rocket:before { + content: '\f135'; +} +.fa-maxcdn:before { + content: '\f136'; +} +.fa-chevron-circle-left:before { + content: '\f137'; +} +.fa-chevron-circle-right:before { + content: '\f138'; +} +.fa-chevron-circle-up:before { + content: '\f139'; +} +.fa-chevron-circle-down:before { + content: '\f13a'; +} +.fa-html5:before { + content: '\f13b'; +} +.fa-css3:before { + content: '\f13c'; +} +.fa-anchor:before { + content: '\f13d'; +} +.fa-unlock-alt:before { + content: '\f13e'; +} +.fa-bullseye:before { + content: '\f140'; +} +.fa-ellipsis-h:before { + content: '\f141'; +} +.fa-ellipsis-v:before { + content: '\f142'; +} +.fa-rss-square:before { + content: '\f143'; +} +.fa-play-circle:before { + content: '\f144'; +} +.fa-ticket:before { + content: '\f145'; +} +.fa-minus-square:before { + content: '\f146'; +} +.fa-minus-square-o:before { + content: '\f147'; +} +.fa-level-up:before { + content: '\f148'; +} +.fa-level-down:before { + content: '\f149'; +} +.fa-check-square:before { + content: '\f14a'; +} +.fa-pencil-square:before { + content: '\f14b'; +} +.fa-external-link-square:before { + content: '\f14c'; +} +.fa-share-square:before { + content: '\f14d'; +} +.fa-compass:before { + content: '\f14e'; +} +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: '\f150'; +} +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: '\f151'; +} +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: '\f152'; +} +.fa-euro:before, +.fa-eur:before { + content: '\f153'; +} +.fa-gbp:before { + content: '\f154'; +} +.fa-dollar:before, +.fa-usd:before { + content: '\f155'; +} +.fa-rupee:before, +.fa-inr:before { + content: '\f156'; +} +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: '\f157'; +} +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: '\f158'; +} +.fa-won:before, +.fa-krw:before { + content: '\f159'; +} +.fa-bitcoin:before, +.fa-btc:before { + content: '\f15a'; +} +.fa-file:before { + content: '\f15b'; +} +.fa-file-text:before { + content: '\f15c'; +} +.fa-sort-alpha-asc:before { + content: '\f15d'; +} +.fa-sort-alpha-desc:before { + content: '\f15e'; +} +.fa-sort-amount-asc:before { + content: '\f160'; +} +.fa-sort-amount-desc:before { + content: '\f161'; +} +.fa-sort-numeric-asc:before { + content: '\f162'; +} +.fa-sort-numeric-desc:before { + content: '\f163'; +} +.fa-thumbs-up:before { + content: '\f164'; +} +.fa-thumbs-down:before { + content: '\f165'; +} +.fa-youtube-square:before { + content: '\f166'; +} +.fa-youtube:before { + content: '\f167'; +} +.fa-xing:before { + content: '\f168'; +} +.fa-xing-square:before { + content: '\f169'; +} +.fa-youtube-play:before { + content: '\f16a'; +} +.fa-dropbox:before { + content: '\f16b'; +} +.fa-stack-overflow:before { + content: '\f16c'; +} +.fa-instagram:before { + content: '\f16d'; +} +.fa-flickr:before { + content: '\f16e'; +} +.fa-adn:before { + content: '\f170'; +} +.fa-bitbucket:before { + content: '\f171'; +} +.fa-bitbucket-square:before { + content: '\f172'; +} +.fa-tumblr:before { + content: '\f173'; +} +.fa-tumblr-square:before { + content: '\f174'; +} +.fa-long-arrow-down:before { + content: '\f175'; +} +.fa-long-arrow-up:before { + content: '\f176'; +} +.fa-long-arrow-left:before { + content: '\f177'; +} +.fa-long-arrow-right:before { + content: '\f178'; +} +.fa-apple:before { + content: '\f179'; +} +.fa-windows:before { + content: '\f17a'; +} +.fa-android:before { + content: '\f17b'; +} +.fa-linux:before { + content: '\f17c'; +} +.fa-dribbble:before { + content: '\f17d'; +} +.fa-skype:before { + content: '\f17e'; +} +.fa-foursquare:before { + content: '\f180'; +} +.fa-trello:before { + content: '\f181'; +} +.fa-female:before { + content: '\f182'; +} +.fa-male:before { + content: '\f183'; +} +.fa-gittip:before, +.fa-gratipay:before { + content: '\f184'; +} +.fa-sun-o:before { + content: '\f185'; +} +.fa-moon-o:before { + content: '\f186'; +} +.fa-archive:before { + content: '\f187'; +} +.fa-bug:before { + content: '\f188'; +} +.fa-vk:before { + content: '\f189'; +} +.fa-weibo:before { + content: '\f18a'; +} +.fa-renren:before { + content: '\f18b'; +} +.fa-pagelines:before { + content: '\f18c'; +} +.fa-stack-exchange:before { + content: '\f18d'; +} +.fa-arrow-circle-o-right:before { + content: '\f18e'; +} +.fa-arrow-circle-o-left:before { + content: '\f190'; +} +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: '\f191'; +} +.fa-dot-circle-o:before { + content: '\f192'; +} +.fa-wheelchair:before { + content: '\f193'; +} +.fa-vimeo-square:before { + content: '\f194'; +} +.fa-turkish-lira:before, +.fa-try:before { + content: '\f195'; +} +.fa-plus-square-o:before { + content: '\f196'; +} +.fa-space-shuttle:before { + content: '\f197'; +} +.fa-slack:before { + content: '\f198'; +} +.fa-envelope-square:before { + content: '\f199'; +} +.fa-wordpress:before { + content: '\f19a'; +} +.fa-openid:before { + content: '\f19b'; +} +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: '\f19c'; +} +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: '\f19d'; +} +.fa-yahoo:before { + content: '\f19e'; +} +.fa-google:before { + content: '\f1a0'; +} +.fa-reddit:before { + content: '\f1a1'; +} +.fa-reddit-square:before { + content: '\f1a2'; +} +.fa-stumbleupon-circle:before { + content: '\f1a3'; +} +.fa-stumbleupon:before { + content: '\f1a4'; +} +.fa-delicious:before { + content: '\f1a5'; +} +.fa-digg:before { + content: '\f1a6'; +} +.fa-pied-piper-pp:before { + content: '\f1a7'; +} +.fa-pied-piper-alt:before { + content: '\f1a8'; +} +.fa-drupal:before { + content: '\f1a9'; +} +.fa-joomla:before { + content: '\f1aa'; +} +.fa-language:before { + content: '\f1ab'; +} +.fa-fax:before { + content: '\f1ac'; +} +.fa-building:before { + content: '\f1ad'; +} +.fa-child:before { + content: '\f1ae'; +} +.fa-paw:before { + content: '\f1b0'; +} +.fa-spoon:before { + content: '\f1b1'; +} +.fa-cube:before { + content: '\f1b2'; +} +.fa-cubes:before { + content: '\f1b3'; +} +.fa-behance:before { + content: '\f1b4'; +} +.fa-behance-square:before { + content: '\f1b5'; +} +.fa-steam:before { + content: '\f1b6'; +} +.fa-steam-square:before { + content: '\f1b7'; +} +.fa-recycle:before { + content: '\f1b8'; +} +.fa-automobile:before, +.fa-car:before { + content: '\f1b9'; +} +.fa-cab:before, +.fa-taxi:before { + content: '\f1ba'; +} +.fa-tree:before { + content: '\f1bb'; +} +.fa-spotify:before { + content: '\f1bc'; +} +.fa-deviantart:before { + content: '\f1bd'; +} +.fa-soundcloud:before { + content: '\f1be'; +} +.fa-database:before { + content: '\f1c0'; +} +.fa-file-pdf-o:before { + content: '\f1c1'; +} +.fa-file-word-o:before { + content: '\f1c2'; +} +.fa-file-excel-o:before { + content: '\f1c3'; +} +.fa-file-powerpoint-o:before { + content: '\f1c4'; +} +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: '\f1c5'; +} +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: '\f1c6'; +} +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: '\f1c7'; +} +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: '\f1c8'; +} +.fa-file-code-o:before { + content: '\f1c9'; +} +.fa-vine:before { + content: '\f1ca'; +} +.fa-codepen:before { + content: '\f1cb'; +} +.fa-jsfiddle:before { + content: '\f1cc'; +} +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: '\f1cd'; +} +.fa-circle-o-notch:before { + content: '\f1ce'; +} +.fa-ra:before, +.fa-resistance:before, +.fa-rebel:before { + content: '\f1d0'; +} +.fa-ge:before, +.fa-empire:before { + content: '\f1d1'; +} +.fa-git-square:before { + content: '\f1d2'; +} +.fa-git:before { + content: '\f1d3'; +} +.fa-y-combinator-square:before, +.fa-yc-square:before, +.fa-hacker-news:before { + content: '\f1d4'; +} +.fa-tencent-weibo:before { + content: '\f1d5'; +} +.fa-qq:before { + content: '\f1d6'; +} +.fa-wechat:before, +.fa-weixin:before { + content: '\f1d7'; +} +.fa-send:before, +.fa-paper-plane:before { + content: '\f1d8'; +} +.fa-send-o:before, +.fa-paper-plane-o:before { + content: '\f1d9'; +} +.fa-history:before { + content: '\f1da'; +} +.fa-circle-thin:before { + content: '\f1db'; +} +.fa-header:before { + content: '\f1dc'; +} +.fa-paragraph:before { + content: '\f1dd'; +} +.fa-sliders:before { + content: '\f1de'; +} +.fa-share-alt:before { + content: '\f1e0'; +} +.fa-share-alt-square:before { + content: '\f1e1'; +} +.fa-bomb:before { + content: '\f1e2'; +} +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: '\f1e3'; +} +.fa-tty:before { + content: '\f1e4'; +} +.fa-binoculars:before { + content: '\f1e5'; +} +.fa-plug:before { + content: '\f1e6'; +} +.fa-slideshare:before { + content: '\f1e7'; +} +.fa-twitch:before { + content: '\f1e8'; +} +.fa-yelp:before { + content: '\f1e9'; +} +.fa-newspaper-o:before { + content: '\f1ea'; +} +.fa-wifi:before { + content: '\f1eb'; +} +.fa-calculator:before { + content: '\f1ec'; +} +.fa-paypal:before { + content: '\f1ed'; +} +.fa-google-wallet:before { + content: '\f1ee'; +} +.fa-cc-visa:before { + content: '\f1f0'; +} +.fa-cc-mastercard:before { + content: '\f1f1'; +} +.fa-cc-discover:before { + content: '\f1f2'; +} +.fa-cc-amex:before { + content: '\f1f3'; +} +.fa-cc-paypal:before { + content: '\f1f4'; +} +.fa-cc-stripe:before { + content: '\f1f5'; +} +.fa-bell-slash:before { + content: '\f1f6'; +} +.fa-bell-slash-o:before { + content: '\f1f7'; +} +.fa-trash:before { + content: '\f1f8'; +} +.fa-copyright:before { + content: '\f1f9'; +} +.fa-at:before { + content: '\f1fa'; +} +.fa-eyedropper:before { + content: '\f1fb'; +} +.fa-paint-brush:before { + content: '\f1fc'; +} +.fa-birthday-cake:before { + content: '\f1fd'; +} +.fa-area-chart:before { + content: '\f1fe'; +} +.fa-pie-chart:before { + content: '\f200'; +} +.fa-line-chart:before { + content: '\f201'; +} +.fa-lastfm:before { + content: '\f202'; +} +.fa-lastfm-square:before { + content: '\f203'; +} +.fa-toggle-off:before { + content: '\f204'; +} +.fa-toggle-on:before { + content: '\f205'; +} +.fa-bicycle:before { + content: '\f206'; +} +.fa-bus:before { + content: '\f207'; +} +.fa-ioxhost:before { + content: '\f208'; +} +.fa-angellist:before { + content: '\f209'; +} +.fa-cc:before { + content: '\f20a'; +} +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: '\f20b'; +} +.fa-meanpath:before { + content: '\f20c'; +} +.fa-buysellads:before { + content: '\f20d'; +} +.fa-connectdevelop:before { + content: '\f20e'; +} +.fa-dashcube:before { + content: '\f210'; +} +.fa-forumbee:before { + content: '\f211'; +} +.fa-leanpub:before { + content: '\f212'; +} +.fa-sellsy:before { + content: '\f213'; +} +.fa-shirtsinbulk:before { + content: '\f214'; +} +.fa-simplybuilt:before { + content: '\f215'; +} +.fa-skyatlas:before { + content: '\f216'; +} +.fa-cart-plus:before { + content: '\f217'; +} +.fa-cart-arrow-down:before { + content: '\f218'; +} +.fa-diamond:before { + content: '\f219'; +} +.fa-ship:before { + content: '\f21a'; +} +.fa-user-secret:before { + content: '\f21b'; +} +.fa-motorcycle:before { + content: '\f21c'; +} +.fa-street-view:before { + content: '\f21d'; +} +.fa-heartbeat:before { + content: '\f21e'; +} +.fa-venus:before { + content: '\f221'; +} +.fa-mars:before { + content: '\f222'; +} +.fa-mercury:before { + content: '\f223'; +} +.fa-intersex:before, +.fa-transgender:before { + content: '\f224'; +} +.fa-transgender-alt:before { + content: '\f225'; +} +.fa-venus-double:before { + content: '\f226'; +} +.fa-mars-double:before { + content: '\f227'; +} +.fa-venus-mars:before { + content: '\f228'; +} +.fa-mars-stroke:before { + content: '\f229'; +} +.fa-mars-stroke-v:before { + content: '\f22a'; +} +.fa-mars-stroke-h:before { + content: '\f22b'; +} +.fa-neuter:before { + content: '\f22c'; +} +.fa-genderless:before { + content: '\f22d'; +} +.fa-facebook-official:before { + content: '\f230'; +} +.fa-pinterest-p:before { + content: '\f231'; +} +.fa-whatsapp:before { + content: '\f232'; +} +.fa-server:before { + content: '\f233'; +} +.fa-user-plus:before { + content: '\f234'; +} +.fa-user-times:before { + content: '\f235'; +} +.fa-hotel:before, +.fa-bed:before { + content: '\f236'; +} +.fa-viacoin:before { + content: '\f237'; +} +.fa-train:before { + content: '\f238'; +} +.fa-subway:before { + content: '\f239'; +} +.fa-medium:before { + content: '\f23a'; +} +.fa-yc:before, +.fa-y-combinator:before { + content: '\f23b'; +} +.fa-optin-monster:before { + content: '\f23c'; +} +.fa-opencart:before { + content: '\f23d'; +} +.fa-expeditedssl:before { + content: '\f23e'; +} +.fa-battery-4:before, +.fa-battery:before, +.fa-battery-full:before { + content: '\f240'; +} +.fa-battery-3:before, +.fa-battery-three-quarters:before { + content: '\f241'; +} +.fa-battery-2:before, +.fa-battery-half:before { + content: '\f242'; +} +.fa-battery-1:before, +.fa-battery-quarter:before { + content: '\f243'; +} +.fa-battery-0:before, +.fa-battery-empty:before { + content: '\f244'; +} +.fa-mouse-pointer:before { + content: '\f245'; +} +.fa-i-cursor:before { + content: '\f246'; +} +.fa-object-group:before { + content: '\f247'; +} +.fa-object-ungroup:before { + content: '\f248'; +} +.fa-sticky-note:before { + content: '\f249'; +} +.fa-sticky-note-o:before { + content: '\f24a'; +} +.fa-cc-jcb:before { + content: '\f24b'; +} +.fa-cc-diners-club:before { + content: '\f24c'; +} +.fa-clone:before { + content: '\f24d'; +} +.fa-balance-scale:before { + content: '\f24e'; +} +.fa-hourglass-o:before { + content: '\f250'; +} +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: '\f251'; +} +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: '\f252'; +} +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: '\f253'; +} +.fa-hourglass:before { + content: '\f254'; +} +.fa-hand-grab-o:before, +.fa-hand-rock-o:before { + content: '\f255'; +} +.fa-hand-stop-o:before, +.fa-hand-paper-o:before { + content: '\f256'; +} +.fa-hand-scissors-o:before { + content: '\f257'; +} +.fa-hand-lizard-o:before { + content: '\f258'; +} +.fa-hand-spock-o:before { + content: '\f259'; +} +.fa-hand-pointer-o:before { + content: '\f25a'; +} +.fa-hand-peace-o:before { + content: '\f25b'; +} +.fa-trademark:before { + content: '\f25c'; +} +.fa-registered:before { + content: '\f25d'; +} +.fa-creative-commons:before { + content: '\f25e'; +} +.fa-gg:before { + content: '\f260'; +} +.fa-gg-circle:before { + content: '\f261'; +} +.fa-tripadvisor:before { + content: '\f262'; +} +.fa-odnoklassniki:before { + content: '\f263'; +} +.fa-odnoklassniki-square:before { + content: '\f264'; +} +.fa-get-pocket:before { + content: '\f265'; +} +.fa-wikipedia-w:before { + content: '\f266'; +} +.fa-safari:before { + content: '\f267'; +} +.fa-chrome:before { + content: '\f268'; +} +.fa-firefox:before { + content: '\f269'; +} +.fa-opera:before { + content: '\f26a'; +} +.fa-internet-explorer:before { + content: '\f26b'; +} +.fa-tv:before, +.fa-television:before { + content: '\f26c'; +} +.fa-contao:before { + content: '\f26d'; +} +.fa-500px:before { + content: '\f26e'; +} +.fa-amazon:before { + content: '\f270'; +} +.fa-calendar-plus-o:before { + content: '\f271'; +} +.fa-calendar-minus-o:before { + content: '\f272'; +} +.fa-calendar-times-o:before { + content: '\f273'; +} +.fa-calendar-check-o:before { + content: '\f274'; +} +.fa-industry:before { + content: '\f275'; +} +.fa-map-pin:before { + content: '\f276'; +} +.fa-map-signs:before { + content: '\f277'; +} +.fa-map-o:before { + content: '\f278'; +} +.fa-map:before { + content: '\f279'; +} +.fa-commenting:before { + content: '\f27a'; +} +.fa-commenting-o:before { + content: '\f27b'; +} +.fa-houzz:before { + content: '\f27c'; +} +.fa-vimeo:before { + content: '\f27d'; +} +.fa-black-tie:before { + content: '\f27e'; +} +.fa-fonticons:before { + content: '\f280'; +} +.fa-reddit-alien:before { + content: '\f281'; +} +.fa-edge:before { + content: '\f282'; +} +.fa-credit-card-alt:before { + content: '\f283'; +} +.fa-codiepie:before { + content: '\f284'; +} +.fa-modx:before { + content: '\f285'; +} +.fa-fort-awesome:before { + content: '\f286'; +} +.fa-usb:before { + content: '\f287'; +} +.fa-product-hunt:before { + content: '\f288'; +} +.fa-mixcloud:before { + content: '\f289'; +} +.fa-scribd:before { + content: '\f28a'; +} +.fa-pause-circle:before { + content: '\f28b'; +} +.fa-pause-circle-o:before { + content: '\f28c'; +} +.fa-stop-circle:before { + content: '\f28d'; +} +.fa-stop-circle-o:before { + content: '\f28e'; +} +.fa-shopping-bag:before { + content: '\f290'; +} +.fa-shopping-basket:before { + content: '\f291'; +} +.fa-hashtag:before { + content: '\f292'; +} +.fa-bluetooth:before { + content: '\f293'; +} +.fa-bluetooth-b:before { + content: '\f294'; +} +.fa-percent:before { + content: '\f295'; +} +.fa-gitlab:before { + content: '\f296'; +} +.fa-wpbeginner:before { + content: '\f297'; +} +.fa-wpforms:before { + content: '\f298'; +} +.fa-envira:before { + content: '\f299'; +} +.fa-universal-access:before { + content: '\f29a'; +} +.fa-wheelchair-alt:before { + content: '\f29b'; +} +.fa-question-circle-o:before { + content: '\f29c'; +} +.fa-blind:before { + content: '\f29d'; +} +.fa-audio-description:before { + content: '\f29e'; +} +.fa-volume-control-phone:before { + content: '\f2a0'; +} +.fa-braille:before { + content: '\f2a1'; +} +.fa-assistive-listening-systems:before { + content: '\f2a2'; +} +.fa-asl-interpreting:before, +.fa-american-sign-language-interpreting:before { + content: '\f2a3'; +} +.fa-deafness:before, +.fa-hard-of-hearing:before, +.fa-deaf:before { + content: '\f2a4'; +} +.fa-glide:before { + content: '\f2a5'; +} +.fa-glide-g:before { + content: '\f2a6'; +} +.fa-signing:before, +.fa-sign-language:before { + content: '\f2a7'; +} +.fa-low-vision:before { + content: '\f2a8'; +} +.fa-viadeo:before { + content: '\f2a9'; +} +.fa-viadeo-square:before { + content: '\f2aa'; +} +.fa-snapchat:before { + content: '\f2ab'; +} +.fa-snapchat-ghost:before { + content: '\f2ac'; +} +.fa-snapchat-square:before { + content: '\f2ad'; +} +.fa-pied-piper:before { + content: '\f2ae'; +} +.fa-first-order:before { + content: '\f2b0'; +} +.fa-yoast:before { + content: '\f2b1'; +} +.fa-themeisle:before { + content: '\f2b2'; +} +.fa-google-plus-circle:before, +.fa-google-plus-official:before { + content: '\f2b3'; +} +.fa-fa:before, +.fa-font-awesome:before { + content: '\f2b4'; +} +.fa-handshake-o:before { + content: '\f2b5'; +} +.fa-envelope-open:before { + content: '\f2b6'; +} +.fa-envelope-open-o:before { + content: '\f2b7'; +} +.fa-linode:before { + content: '\f2b8'; +} +.fa-address-book:before { + content: '\f2b9'; +} +.fa-address-book-o:before { + content: '\f2ba'; +} +.fa-vcard:before, +.fa-address-card:before { + content: '\f2bb'; +} +.fa-vcard-o:before, +.fa-address-card-o:before { + content: '\f2bc'; +} +.fa-user-circle:before { + content: '\f2bd'; +} +.fa-user-circle-o:before { + content: '\f2be'; +} +.fa-user-o:before { + content: '\f2c0'; +} +.fa-id-badge:before { + content: '\f2c1'; +} +.fa-drivers-license:before, +.fa-id-card:before { + content: '\f2c2'; +} +.fa-drivers-license-o:before, +.fa-id-card-o:before { + content: '\f2c3'; +} +.fa-quora:before { + content: '\f2c4'; +} +.fa-free-code-camp:before { + content: '\f2c5'; +} +.fa-telegram:before { + content: '\f2c6'; +} +.fa-thermometer-4:before, +.fa-thermometer:before, +.fa-thermometer-full:before { + content: '\f2c7'; +} +.fa-thermometer-3:before, +.fa-thermometer-three-quarters:before { + content: '\f2c8'; +} +.fa-thermometer-2:before, +.fa-thermometer-half:before { + content: '\f2c9'; +} +.fa-thermometer-1:before, +.fa-thermometer-quarter:before { + content: '\f2ca'; +} +.fa-thermometer-0:before, +.fa-thermometer-empty:before { + content: '\f2cb'; +} +.fa-shower:before { + content: '\f2cc'; +} +.fa-bathtub:before, +.fa-s15:before, +.fa-bath:before { + content: '\f2cd'; +} +.fa-podcast:before { + content: '\f2ce'; +} +.fa-window-maximize:before { + content: '\f2d0'; +} +.fa-window-minimize:before { + content: '\f2d1'; +} +.fa-window-restore:before { + content: '\f2d2'; +} +.fa-times-rectangle:before, +.fa-window-close:before { + content: '\f2d3'; +} +.fa-times-rectangle-o:before, +.fa-window-close-o:before { + content: '\f2d4'; +} +.fa-bandcamp:before { + content: '\f2d5'; +} +.fa-grav:before { + content: '\f2d6'; +} +.fa-etsy:before { + content: '\f2d7'; +} +.fa-imdb:before { + content: '\f2d8'; +} +.fa-ravelry:before { + content: '\f2d9'; +} +.fa-eercast:before { + content: '\f2da'; +} +.fa-microchip:before { + content: '\f2db'; +} +.fa-snowflake-o:before { + content: '\f2dc'; +} +.fa-superpowers:before { + content: '\f2dd'; +} +.fa-wpexplorer:before { + content: '\f2de'; +} +.fa-meetup:before { + content: '\f2e0'; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} diff --git a/public/font-awesome-4.7.0/fonts/FontAwesome.otf b/public/font-awesome-4.7.0/fonts/FontAwesome.otf new file mode 100644 index 0000000..401ec0f Binary files /dev/null and b/public/font-awesome-4.7.0/fonts/FontAwesome.otf differ diff --git a/public/font-awesome-4.7.0/fonts/fontawesome-webfont.eot b/public/font-awesome-4.7.0/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..e9f60ca Binary files /dev/null and b/public/font-awesome-4.7.0/fonts/fontawesome-webfont.eot differ diff --git a/public/font-awesome-4.7.0/fonts/fontawesome-webfont.svg b/public/font-awesome-4.7.0/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..855c845 --- /dev/null +++ b/public/font-awesome-4.7.0/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf b/public/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/public/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf differ diff --git a/public/font-awesome-4.7.0/fonts/fontawesome-webfont.woff b/public/font-awesome-4.7.0/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..400014a Binary files /dev/null and b/public/font-awesome-4.7.0/fonts/fontawesome-webfont.woff differ diff --git a/public/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 b/public/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..4d13fc6 Binary files /dev/null and b/public/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 differ diff --git a/public/font-awesome-4.7.0/less/animated.less b/public/font-awesome-4.7.0/less/animated.less new file mode 100644 index 0000000..9baa4a1 --- /dev/null +++ b/public/font-awesome-4.7.0/less/animated.less @@ -0,0 +1,34 @@ +// Animated Icons +// -------------------------- + +.@{fa-css-prefix}-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.@{fa-css-prefix}-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} diff --git a/public/font-awesome-4.7.0/less/bordered-pulled.less b/public/font-awesome-4.7.0/less/bordered-pulled.less new file mode 100644 index 0000000..c20d877 --- /dev/null +++ b/public/font-awesome-4.7.0/less/bordered-pulled.less @@ -0,0 +1,41 @@ +// Bordered & Pulled +// ------------------------- + +.@{fa-css-prefix}-border { + padding: 0.2em 0.25em 0.15em; + border: solid 0.08em @fa-border-color; + border-radius: 0.1em; +} + +.@{fa-css-prefix}-pull-left { + float: left; +} +.@{fa-css-prefix}-pull-right { + float: right; +} + +.@{fa-css-prefix} { + &.@{fa-css-prefix}-pull-left { + margin-right: 0.3em; + } + &.@{fa-css-prefix}-pull-right { + margin-left: 0.3em; + } +} + +/* Deprecated as of 4.4.0 */ +.pull-right { + float: right; +} +.pull-left { + float: left; +} + +.@{fa-css-prefix} { + &.pull-left { + margin-right: 0.3em; + } + &.pull-right { + margin-left: 0.3em; + } +} diff --git a/public/font-awesome-4.7.0/less/core.less b/public/font-awesome-4.7.0/less/core.less new file mode 100644 index 0000000..d83bfa0 --- /dev/null +++ b/public/font-awesome-4.7.0/less/core.less @@ -0,0 +1,11 @@ +// Base Class Definition +// ------------------------- + +.@{fa-css-prefix} { + display: inline-block; + font: normal normal normal @fa-font-size-base / @fa-line-height-base FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} diff --git a/public/font-awesome-4.7.0/less/fixed-width.less b/public/font-awesome-4.7.0/less/fixed-width.less new file mode 100644 index 0000000..110289f --- /dev/null +++ b/public/font-awesome-4.7.0/less/fixed-width.less @@ -0,0 +1,6 @@ +// Fixed Width Icons +// ------------------------- +.@{fa-css-prefix}-fw { + width: (18em / 14); + text-align: center; +} diff --git a/public/font-awesome-4.7.0/less/font-awesome.less b/public/font-awesome-4.7.0/less/font-awesome.less new file mode 100644 index 0000000..3936ec1 --- /dev/null +++ b/public/font-awesome-4.7.0/less/font-awesome.less @@ -0,0 +1,18 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ + +@import 'variables.less'; +@import 'mixins.less'; +@import 'path.less'; +@import 'core.less'; +@import 'larger.less'; +@import 'fixed-width.less'; +@import 'list.less'; +@import 'bordered-pulled.less'; +@import 'animated.less'; +@import 'rotated-flipped.less'; +@import 'stacked.less'; +@import 'icons.less'; +@import 'screen-reader.less'; diff --git a/public/font-awesome-4.7.0/less/icons.less b/public/font-awesome-4.7.0/less/icons.less new file mode 100644 index 0000000..4804942 --- /dev/null +++ b/public/font-awesome-4.7.0/less/icons.less @@ -0,0 +1,2139 @@ +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ + +.@{fa-css-prefix}-glass:before { + content: @fa-var-glass; +} +.@{fa-css-prefix}-music:before { + content: @fa-var-music; +} +.@{fa-css-prefix}-search:before { + content: @fa-var-search; +} +.@{fa-css-prefix}-envelope-o:before { + content: @fa-var-envelope-o; +} +.@{fa-css-prefix}-heart:before { + content: @fa-var-heart; +} +.@{fa-css-prefix}-star:before { + content: @fa-var-star; +} +.@{fa-css-prefix}-star-o:before { + content: @fa-var-star-o; +} +.@{fa-css-prefix}-user:before { + content: @fa-var-user; +} +.@{fa-css-prefix}-film:before { + content: @fa-var-film; +} +.@{fa-css-prefix}-th-large:before { + content: @fa-var-th-large; +} +.@{fa-css-prefix}-th:before { + content: @fa-var-th; +} +.@{fa-css-prefix}-th-list:before { + content: @fa-var-th-list; +} +.@{fa-css-prefix}-check:before { + content: @fa-var-check; +} +.@{fa-css-prefix}-remove:before, +.@{fa-css-prefix}-close:before, +.@{fa-css-prefix}-times:before { + content: @fa-var-times; +} +.@{fa-css-prefix}-search-plus:before { + content: @fa-var-search-plus; +} +.@{fa-css-prefix}-search-minus:before { + content: @fa-var-search-minus; +} +.@{fa-css-prefix}-power-off:before { + content: @fa-var-power-off; +} +.@{fa-css-prefix}-signal:before { + content: @fa-var-signal; +} +.@{fa-css-prefix}-gear:before, +.@{fa-css-prefix}-cog:before { + content: @fa-var-cog; +} +.@{fa-css-prefix}-trash-o:before { + content: @fa-var-trash-o; +} +.@{fa-css-prefix}-home:before { + content: @fa-var-home; +} +.@{fa-css-prefix}-file-o:before { + content: @fa-var-file-o; +} +.@{fa-css-prefix}-clock-o:before { + content: @fa-var-clock-o; +} +.@{fa-css-prefix}-road:before { + content: @fa-var-road; +} +.@{fa-css-prefix}-download:before { + content: @fa-var-download; +} +.@{fa-css-prefix}-arrow-circle-o-down:before { + content: @fa-var-arrow-circle-o-down; +} +.@{fa-css-prefix}-arrow-circle-o-up:before { + content: @fa-var-arrow-circle-o-up; +} +.@{fa-css-prefix}-inbox:before { + content: @fa-var-inbox; +} +.@{fa-css-prefix}-play-circle-o:before { + content: @fa-var-play-circle-o; +} +.@{fa-css-prefix}-rotate-right:before, +.@{fa-css-prefix}-repeat:before { + content: @fa-var-repeat; +} +.@{fa-css-prefix}-refresh:before { + content: @fa-var-refresh; +} +.@{fa-css-prefix}-list-alt:before { + content: @fa-var-list-alt; +} +.@{fa-css-prefix}-lock:before { + content: @fa-var-lock; +} +.@{fa-css-prefix}-flag:before { + content: @fa-var-flag; +} +.@{fa-css-prefix}-headphones:before { + content: @fa-var-headphones; +} +.@{fa-css-prefix}-volume-off:before { + content: @fa-var-volume-off; +} +.@{fa-css-prefix}-volume-down:before { + content: @fa-var-volume-down; +} +.@{fa-css-prefix}-volume-up:before { + content: @fa-var-volume-up; +} +.@{fa-css-prefix}-qrcode:before { + content: @fa-var-qrcode; +} +.@{fa-css-prefix}-barcode:before { + content: @fa-var-barcode; +} +.@{fa-css-prefix}-tag:before { + content: @fa-var-tag; +} +.@{fa-css-prefix}-tags:before { + content: @fa-var-tags; +} +.@{fa-css-prefix}-book:before { + content: @fa-var-book; +} +.@{fa-css-prefix}-bookmark:before { + content: @fa-var-bookmark; +} +.@{fa-css-prefix}-print:before { + content: @fa-var-print; +} +.@{fa-css-prefix}-camera:before { + content: @fa-var-camera; +} +.@{fa-css-prefix}-font:before { + content: @fa-var-font; +} +.@{fa-css-prefix}-bold:before { + content: @fa-var-bold; +} +.@{fa-css-prefix}-italic:before { + content: @fa-var-italic; +} +.@{fa-css-prefix}-text-height:before { + content: @fa-var-text-height; +} +.@{fa-css-prefix}-text-width:before { + content: @fa-var-text-width; +} +.@{fa-css-prefix}-align-left:before { + content: @fa-var-align-left; +} +.@{fa-css-prefix}-align-center:before { + content: @fa-var-align-center; +} +.@{fa-css-prefix}-align-right:before { + content: @fa-var-align-right; +} +.@{fa-css-prefix}-align-justify:before { + content: @fa-var-align-justify; +} +.@{fa-css-prefix}-list:before { + content: @fa-var-list; +} +.@{fa-css-prefix}-dedent:before, +.@{fa-css-prefix}-outdent:before { + content: @fa-var-outdent; +} +.@{fa-css-prefix}-indent:before { + content: @fa-var-indent; +} +.@{fa-css-prefix}-video-camera:before { + content: @fa-var-video-camera; +} +.@{fa-css-prefix}-photo:before, +.@{fa-css-prefix}-image:before, +.@{fa-css-prefix}-picture-o:before { + content: @fa-var-picture-o; +} +.@{fa-css-prefix}-pencil:before { + content: @fa-var-pencil; +} +.@{fa-css-prefix}-map-marker:before { + content: @fa-var-map-marker; +} +.@{fa-css-prefix}-adjust:before { + content: @fa-var-adjust; +} +.@{fa-css-prefix}-tint:before { + content: @fa-var-tint; +} +.@{fa-css-prefix}-edit:before, +.@{fa-css-prefix}-pencil-square-o:before { + content: @fa-var-pencil-square-o; +} +.@{fa-css-prefix}-share-square-o:before { + content: @fa-var-share-square-o; +} +.@{fa-css-prefix}-check-square-o:before { + content: @fa-var-check-square-o; +} +.@{fa-css-prefix}-arrows:before { + content: @fa-var-arrows; +} +.@{fa-css-prefix}-step-backward:before { + content: @fa-var-step-backward; +} +.@{fa-css-prefix}-fast-backward:before { + content: @fa-var-fast-backward; +} +.@{fa-css-prefix}-backward:before { + content: @fa-var-backward; +} +.@{fa-css-prefix}-play:before { + content: @fa-var-play; +} +.@{fa-css-prefix}-pause:before { + content: @fa-var-pause; +} +.@{fa-css-prefix}-stop:before { + content: @fa-var-stop; +} +.@{fa-css-prefix}-forward:before { + content: @fa-var-forward; +} +.@{fa-css-prefix}-fast-forward:before { + content: @fa-var-fast-forward; +} +.@{fa-css-prefix}-step-forward:before { + content: @fa-var-step-forward; +} +.@{fa-css-prefix}-eject:before { + content: @fa-var-eject; +} +.@{fa-css-prefix}-chevron-left:before { + content: @fa-var-chevron-left; +} +.@{fa-css-prefix}-chevron-right:before { + content: @fa-var-chevron-right; +} +.@{fa-css-prefix}-plus-circle:before { + content: @fa-var-plus-circle; +} +.@{fa-css-prefix}-minus-circle:before { + content: @fa-var-minus-circle; +} +.@{fa-css-prefix}-times-circle:before { + content: @fa-var-times-circle; +} +.@{fa-css-prefix}-check-circle:before { + content: @fa-var-check-circle; +} +.@{fa-css-prefix}-question-circle:before { + content: @fa-var-question-circle; +} +.@{fa-css-prefix}-info-circle:before { + content: @fa-var-info-circle; +} +.@{fa-css-prefix}-crosshairs:before { + content: @fa-var-crosshairs; +} +.@{fa-css-prefix}-times-circle-o:before { + content: @fa-var-times-circle-o; +} +.@{fa-css-prefix}-check-circle-o:before { + content: @fa-var-check-circle-o; +} +.@{fa-css-prefix}-ban:before { + content: @fa-var-ban; +} +.@{fa-css-prefix}-arrow-left:before { + content: @fa-var-arrow-left; +} +.@{fa-css-prefix}-arrow-right:before { + content: @fa-var-arrow-right; +} +.@{fa-css-prefix}-arrow-up:before { + content: @fa-var-arrow-up; +} +.@{fa-css-prefix}-arrow-down:before { + content: @fa-var-arrow-down; +} +.@{fa-css-prefix}-mail-forward:before, +.@{fa-css-prefix}-share:before { + content: @fa-var-share; +} +.@{fa-css-prefix}-expand:before { + content: @fa-var-expand; +} +.@{fa-css-prefix}-compress:before { + content: @fa-var-compress; +} +.@{fa-css-prefix}-plus:before { + content: @fa-var-plus; +} +.@{fa-css-prefix}-minus:before { + content: @fa-var-minus; +} +.@{fa-css-prefix}-asterisk:before { + content: @fa-var-asterisk; +} +.@{fa-css-prefix}-exclamation-circle:before { + content: @fa-var-exclamation-circle; +} +.@{fa-css-prefix}-gift:before { + content: @fa-var-gift; +} +.@{fa-css-prefix}-leaf:before { + content: @fa-var-leaf; +} +.@{fa-css-prefix}-fire:before { + content: @fa-var-fire; +} +.@{fa-css-prefix}-eye:before { + content: @fa-var-eye; +} +.@{fa-css-prefix}-eye-slash:before { + content: @fa-var-eye-slash; +} +.@{fa-css-prefix}-warning:before, +.@{fa-css-prefix}-exclamation-triangle:before { + content: @fa-var-exclamation-triangle; +} +.@{fa-css-prefix}-plane:before { + content: @fa-var-plane; +} +.@{fa-css-prefix}-calendar:before { + content: @fa-var-calendar; +} +.@{fa-css-prefix}-random:before { + content: @fa-var-random; +} +.@{fa-css-prefix}-comment:before { + content: @fa-var-comment; +} +.@{fa-css-prefix}-magnet:before { + content: @fa-var-magnet; +} +.@{fa-css-prefix}-chevron-up:before { + content: @fa-var-chevron-up; +} +.@{fa-css-prefix}-chevron-down:before { + content: @fa-var-chevron-down; +} +.@{fa-css-prefix}-retweet:before { + content: @fa-var-retweet; +} +.@{fa-css-prefix}-shopping-cart:before { + content: @fa-var-shopping-cart; +} +.@{fa-css-prefix}-folder:before { + content: @fa-var-folder; +} +.@{fa-css-prefix}-folder-open:before { + content: @fa-var-folder-open; +} +.@{fa-css-prefix}-arrows-v:before { + content: @fa-var-arrows-v; +} +.@{fa-css-prefix}-arrows-h:before { + content: @fa-var-arrows-h; +} +.@{fa-css-prefix}-bar-chart-o:before, +.@{fa-css-prefix}-bar-chart:before { + content: @fa-var-bar-chart; +} +.@{fa-css-prefix}-twitter-square:before { + content: @fa-var-twitter-square; +} +.@{fa-css-prefix}-facebook-square:before { + content: @fa-var-facebook-square; +} +.@{fa-css-prefix}-camera-retro:before { + content: @fa-var-camera-retro; +} +.@{fa-css-prefix}-key:before { + content: @fa-var-key; +} +.@{fa-css-prefix}-gears:before, +.@{fa-css-prefix}-cogs:before { + content: @fa-var-cogs; +} +.@{fa-css-prefix}-comments:before { + content: @fa-var-comments; +} +.@{fa-css-prefix}-thumbs-o-up:before { + content: @fa-var-thumbs-o-up; +} +.@{fa-css-prefix}-thumbs-o-down:before { + content: @fa-var-thumbs-o-down; +} +.@{fa-css-prefix}-star-half:before { + content: @fa-var-star-half; +} +.@{fa-css-prefix}-heart-o:before { + content: @fa-var-heart-o; +} +.@{fa-css-prefix}-sign-out:before { + content: @fa-var-sign-out; +} +.@{fa-css-prefix}-linkedin-square:before { + content: @fa-var-linkedin-square; +} +.@{fa-css-prefix}-thumb-tack:before { + content: @fa-var-thumb-tack; +} +.@{fa-css-prefix}-external-link:before { + content: @fa-var-external-link; +} +.@{fa-css-prefix}-sign-in:before { + content: @fa-var-sign-in; +} +.@{fa-css-prefix}-trophy:before { + content: @fa-var-trophy; +} +.@{fa-css-prefix}-github-square:before { + content: @fa-var-github-square; +} +.@{fa-css-prefix}-upload:before { + content: @fa-var-upload; +} +.@{fa-css-prefix}-lemon-o:before { + content: @fa-var-lemon-o; +} +.@{fa-css-prefix}-phone:before { + content: @fa-var-phone; +} +.@{fa-css-prefix}-square-o:before { + content: @fa-var-square-o; +} +.@{fa-css-prefix}-bookmark-o:before { + content: @fa-var-bookmark-o; +} +.@{fa-css-prefix}-phone-square:before { + content: @fa-var-phone-square; +} +.@{fa-css-prefix}-twitter:before { + content: @fa-var-twitter; +} +.@{fa-css-prefix}-facebook-f:before, +.@{fa-css-prefix}-facebook:before { + content: @fa-var-facebook; +} +.@{fa-css-prefix}-github:before { + content: @fa-var-github; +} +.@{fa-css-prefix}-unlock:before { + content: @fa-var-unlock; +} +.@{fa-css-prefix}-credit-card:before { + content: @fa-var-credit-card; +} +.@{fa-css-prefix}-feed:before, +.@{fa-css-prefix}-rss:before { + content: @fa-var-rss; +} +.@{fa-css-prefix}-hdd-o:before { + content: @fa-var-hdd-o; +} +.@{fa-css-prefix}-bullhorn:before { + content: @fa-var-bullhorn; +} +.@{fa-css-prefix}-bell:before { + content: @fa-var-bell; +} +.@{fa-css-prefix}-certificate:before { + content: @fa-var-certificate; +} +.@{fa-css-prefix}-hand-o-right:before { + content: @fa-var-hand-o-right; +} +.@{fa-css-prefix}-hand-o-left:before { + content: @fa-var-hand-o-left; +} +.@{fa-css-prefix}-hand-o-up:before { + content: @fa-var-hand-o-up; +} +.@{fa-css-prefix}-hand-o-down:before { + content: @fa-var-hand-o-down; +} +.@{fa-css-prefix}-arrow-circle-left:before { + content: @fa-var-arrow-circle-left; +} +.@{fa-css-prefix}-arrow-circle-right:before { + content: @fa-var-arrow-circle-right; +} +.@{fa-css-prefix}-arrow-circle-up:before { + content: @fa-var-arrow-circle-up; +} +.@{fa-css-prefix}-arrow-circle-down:before { + content: @fa-var-arrow-circle-down; +} +.@{fa-css-prefix}-globe:before { + content: @fa-var-globe; +} +.@{fa-css-prefix}-wrench:before { + content: @fa-var-wrench; +} +.@{fa-css-prefix}-tasks:before { + content: @fa-var-tasks; +} +.@{fa-css-prefix}-filter:before { + content: @fa-var-filter; +} +.@{fa-css-prefix}-briefcase:before { + content: @fa-var-briefcase; +} +.@{fa-css-prefix}-arrows-alt:before { + content: @fa-var-arrows-alt; +} +.@{fa-css-prefix}-group:before, +.@{fa-css-prefix}-users:before { + content: @fa-var-users; +} +.@{fa-css-prefix}-chain:before, +.@{fa-css-prefix}-link:before { + content: @fa-var-link; +} +.@{fa-css-prefix}-cloud:before { + content: @fa-var-cloud; +} +.@{fa-css-prefix}-flask:before { + content: @fa-var-flask; +} +.@{fa-css-prefix}-cut:before, +.@{fa-css-prefix}-scissors:before { + content: @fa-var-scissors; +} +.@{fa-css-prefix}-copy:before, +.@{fa-css-prefix}-files-o:before { + content: @fa-var-files-o; +} +.@{fa-css-prefix}-paperclip:before { + content: @fa-var-paperclip; +} +.@{fa-css-prefix}-save:before, +.@{fa-css-prefix}-floppy-o:before { + content: @fa-var-floppy-o; +} +.@{fa-css-prefix}-square:before { + content: @fa-var-square; +} +.@{fa-css-prefix}-navicon:before, +.@{fa-css-prefix}-reorder:before, +.@{fa-css-prefix}-bars:before { + content: @fa-var-bars; +} +.@{fa-css-prefix}-list-ul:before { + content: @fa-var-list-ul; +} +.@{fa-css-prefix}-list-ol:before { + content: @fa-var-list-ol; +} +.@{fa-css-prefix}-strikethrough:before { + content: @fa-var-strikethrough; +} +.@{fa-css-prefix}-underline:before { + content: @fa-var-underline; +} +.@{fa-css-prefix}-table:before { + content: @fa-var-table; +} +.@{fa-css-prefix}-magic:before { + content: @fa-var-magic; +} +.@{fa-css-prefix}-truck:before { + content: @fa-var-truck; +} +.@{fa-css-prefix}-pinterest:before { + content: @fa-var-pinterest; +} +.@{fa-css-prefix}-pinterest-square:before { + content: @fa-var-pinterest-square; +} +.@{fa-css-prefix}-google-plus-square:before { + content: @fa-var-google-plus-square; +} +.@{fa-css-prefix}-google-plus:before { + content: @fa-var-google-plus; +} +.@{fa-css-prefix}-money:before { + content: @fa-var-money; +} +.@{fa-css-prefix}-caret-down:before { + content: @fa-var-caret-down; +} +.@{fa-css-prefix}-caret-up:before { + content: @fa-var-caret-up; +} +.@{fa-css-prefix}-caret-left:before { + content: @fa-var-caret-left; +} +.@{fa-css-prefix}-caret-right:before { + content: @fa-var-caret-right; +} +.@{fa-css-prefix}-columns:before { + content: @fa-var-columns; +} +.@{fa-css-prefix}-unsorted:before, +.@{fa-css-prefix}-sort:before { + content: @fa-var-sort; +} +.@{fa-css-prefix}-sort-down:before, +.@{fa-css-prefix}-sort-desc:before { + content: @fa-var-sort-desc; +} +.@{fa-css-prefix}-sort-up:before, +.@{fa-css-prefix}-sort-asc:before { + content: @fa-var-sort-asc; +} +.@{fa-css-prefix}-envelope:before { + content: @fa-var-envelope; +} +.@{fa-css-prefix}-linkedin:before { + content: @fa-var-linkedin; +} +.@{fa-css-prefix}-rotate-left:before, +.@{fa-css-prefix}-undo:before { + content: @fa-var-undo; +} +.@{fa-css-prefix}-legal:before, +.@{fa-css-prefix}-gavel:before { + content: @fa-var-gavel; +} +.@{fa-css-prefix}-dashboard:before, +.@{fa-css-prefix}-tachometer:before { + content: @fa-var-tachometer; +} +.@{fa-css-prefix}-comment-o:before { + content: @fa-var-comment-o; +} +.@{fa-css-prefix}-comments-o:before { + content: @fa-var-comments-o; +} +.@{fa-css-prefix}-flash:before, +.@{fa-css-prefix}-bolt:before { + content: @fa-var-bolt; +} +.@{fa-css-prefix}-sitemap:before { + content: @fa-var-sitemap; +} +.@{fa-css-prefix}-umbrella:before { + content: @fa-var-umbrella; +} +.@{fa-css-prefix}-paste:before, +.@{fa-css-prefix}-clipboard:before { + content: @fa-var-clipboard; +} +.@{fa-css-prefix}-lightbulb-o:before { + content: @fa-var-lightbulb-o; +} +.@{fa-css-prefix}-exchange:before { + content: @fa-var-exchange; +} +.@{fa-css-prefix}-cloud-download:before { + content: @fa-var-cloud-download; +} +.@{fa-css-prefix}-cloud-upload:before { + content: @fa-var-cloud-upload; +} +.@{fa-css-prefix}-user-md:before { + content: @fa-var-user-md; +} +.@{fa-css-prefix}-stethoscope:before { + content: @fa-var-stethoscope; +} +.@{fa-css-prefix}-suitcase:before { + content: @fa-var-suitcase; +} +.@{fa-css-prefix}-bell-o:before { + content: @fa-var-bell-o; +} +.@{fa-css-prefix}-coffee:before { + content: @fa-var-coffee; +} +.@{fa-css-prefix}-cutlery:before { + content: @fa-var-cutlery; +} +.@{fa-css-prefix}-file-text-o:before { + content: @fa-var-file-text-o; +} +.@{fa-css-prefix}-building-o:before { + content: @fa-var-building-o; +} +.@{fa-css-prefix}-hospital-o:before { + content: @fa-var-hospital-o; +} +.@{fa-css-prefix}-ambulance:before { + content: @fa-var-ambulance; +} +.@{fa-css-prefix}-medkit:before { + content: @fa-var-medkit; +} +.@{fa-css-prefix}-fighter-jet:before { + content: @fa-var-fighter-jet; +} +.@{fa-css-prefix}-beer:before { + content: @fa-var-beer; +} +.@{fa-css-prefix}-h-square:before { + content: @fa-var-h-square; +} +.@{fa-css-prefix}-plus-square:before { + content: @fa-var-plus-square; +} +.@{fa-css-prefix}-angle-double-left:before { + content: @fa-var-angle-double-left; +} +.@{fa-css-prefix}-angle-double-right:before { + content: @fa-var-angle-double-right; +} +.@{fa-css-prefix}-angle-double-up:before { + content: @fa-var-angle-double-up; +} +.@{fa-css-prefix}-angle-double-down:before { + content: @fa-var-angle-double-down; +} +.@{fa-css-prefix}-angle-left:before { + content: @fa-var-angle-left; +} +.@{fa-css-prefix}-angle-right:before { + content: @fa-var-angle-right; +} +.@{fa-css-prefix}-angle-up:before { + content: @fa-var-angle-up; +} +.@{fa-css-prefix}-angle-down:before { + content: @fa-var-angle-down; +} +.@{fa-css-prefix}-desktop:before { + content: @fa-var-desktop; +} +.@{fa-css-prefix}-laptop:before { + content: @fa-var-laptop; +} +.@{fa-css-prefix}-tablet:before { + content: @fa-var-tablet; +} +.@{fa-css-prefix}-mobile-phone:before, +.@{fa-css-prefix}-mobile:before { + content: @fa-var-mobile; +} +.@{fa-css-prefix}-circle-o:before { + content: @fa-var-circle-o; +} +.@{fa-css-prefix}-quote-left:before { + content: @fa-var-quote-left; +} +.@{fa-css-prefix}-quote-right:before { + content: @fa-var-quote-right; +} +.@{fa-css-prefix}-spinner:before { + content: @fa-var-spinner; +} +.@{fa-css-prefix}-circle:before { + content: @fa-var-circle; +} +.@{fa-css-prefix}-mail-reply:before, +.@{fa-css-prefix}-reply:before { + content: @fa-var-reply; +} +.@{fa-css-prefix}-github-alt:before { + content: @fa-var-github-alt; +} +.@{fa-css-prefix}-folder-o:before { + content: @fa-var-folder-o; +} +.@{fa-css-prefix}-folder-open-o:before { + content: @fa-var-folder-open-o; +} +.@{fa-css-prefix}-smile-o:before { + content: @fa-var-smile-o; +} +.@{fa-css-prefix}-frown-o:before { + content: @fa-var-frown-o; +} +.@{fa-css-prefix}-meh-o:before { + content: @fa-var-meh-o; +} +.@{fa-css-prefix}-gamepad:before { + content: @fa-var-gamepad; +} +.@{fa-css-prefix}-keyboard-o:before { + content: @fa-var-keyboard-o; +} +.@{fa-css-prefix}-flag-o:before { + content: @fa-var-flag-o; +} +.@{fa-css-prefix}-flag-checkered:before { + content: @fa-var-flag-checkered; +} +.@{fa-css-prefix}-terminal:before { + content: @fa-var-terminal; +} +.@{fa-css-prefix}-code:before { + content: @fa-var-code; +} +.@{fa-css-prefix}-mail-reply-all:before, +.@{fa-css-prefix}-reply-all:before { + content: @fa-var-reply-all; +} +.@{fa-css-prefix}-star-half-empty:before, +.@{fa-css-prefix}-star-half-full:before, +.@{fa-css-prefix}-star-half-o:before { + content: @fa-var-star-half-o; +} +.@{fa-css-prefix}-location-arrow:before { + content: @fa-var-location-arrow; +} +.@{fa-css-prefix}-crop:before { + content: @fa-var-crop; +} +.@{fa-css-prefix}-code-fork:before { + content: @fa-var-code-fork; +} +.@{fa-css-prefix}-unlink:before, +.@{fa-css-prefix}-chain-broken:before { + content: @fa-var-chain-broken; +} +.@{fa-css-prefix}-question:before { + content: @fa-var-question; +} +.@{fa-css-prefix}-info:before { + content: @fa-var-info; +} +.@{fa-css-prefix}-exclamation:before { + content: @fa-var-exclamation; +} +.@{fa-css-prefix}-superscript:before { + content: @fa-var-superscript; +} +.@{fa-css-prefix}-subscript:before { + content: @fa-var-subscript; +} +.@{fa-css-prefix}-eraser:before { + content: @fa-var-eraser; +} +.@{fa-css-prefix}-puzzle-piece:before { + content: @fa-var-puzzle-piece; +} +.@{fa-css-prefix}-microphone:before { + content: @fa-var-microphone; +} +.@{fa-css-prefix}-microphone-slash:before { + content: @fa-var-microphone-slash; +} +.@{fa-css-prefix}-shield:before { + content: @fa-var-shield; +} +.@{fa-css-prefix}-calendar-o:before { + content: @fa-var-calendar-o; +} +.@{fa-css-prefix}-fire-extinguisher:before { + content: @fa-var-fire-extinguisher; +} +.@{fa-css-prefix}-rocket:before { + content: @fa-var-rocket; +} +.@{fa-css-prefix}-maxcdn:before { + content: @fa-var-maxcdn; +} +.@{fa-css-prefix}-chevron-circle-left:before { + content: @fa-var-chevron-circle-left; +} +.@{fa-css-prefix}-chevron-circle-right:before { + content: @fa-var-chevron-circle-right; +} +.@{fa-css-prefix}-chevron-circle-up:before { + content: @fa-var-chevron-circle-up; +} +.@{fa-css-prefix}-chevron-circle-down:before { + content: @fa-var-chevron-circle-down; +} +.@{fa-css-prefix}-html5:before { + content: @fa-var-html5; +} +.@{fa-css-prefix}-css3:before { + content: @fa-var-css3; +} +.@{fa-css-prefix}-anchor:before { + content: @fa-var-anchor; +} +.@{fa-css-prefix}-unlock-alt:before { + content: @fa-var-unlock-alt; +} +.@{fa-css-prefix}-bullseye:before { + content: @fa-var-bullseye; +} +.@{fa-css-prefix}-ellipsis-h:before { + content: @fa-var-ellipsis-h; +} +.@{fa-css-prefix}-ellipsis-v:before { + content: @fa-var-ellipsis-v; +} +.@{fa-css-prefix}-rss-square:before { + content: @fa-var-rss-square; +} +.@{fa-css-prefix}-play-circle:before { + content: @fa-var-play-circle; +} +.@{fa-css-prefix}-ticket:before { + content: @fa-var-ticket; +} +.@{fa-css-prefix}-minus-square:before { + content: @fa-var-minus-square; +} +.@{fa-css-prefix}-minus-square-o:before { + content: @fa-var-minus-square-o; +} +.@{fa-css-prefix}-level-up:before { + content: @fa-var-level-up; +} +.@{fa-css-prefix}-level-down:before { + content: @fa-var-level-down; +} +.@{fa-css-prefix}-check-square:before { + content: @fa-var-check-square; +} +.@{fa-css-prefix}-pencil-square:before { + content: @fa-var-pencil-square; +} +.@{fa-css-prefix}-external-link-square:before { + content: @fa-var-external-link-square; +} +.@{fa-css-prefix}-share-square:before { + content: @fa-var-share-square; +} +.@{fa-css-prefix}-compass:before { + content: @fa-var-compass; +} +.@{fa-css-prefix}-toggle-down:before, +.@{fa-css-prefix}-caret-square-o-down:before { + content: @fa-var-caret-square-o-down; +} +.@{fa-css-prefix}-toggle-up:before, +.@{fa-css-prefix}-caret-square-o-up:before { + content: @fa-var-caret-square-o-up; +} +.@{fa-css-prefix}-toggle-right:before, +.@{fa-css-prefix}-caret-square-o-right:before { + content: @fa-var-caret-square-o-right; +} +.@{fa-css-prefix}-euro:before, +.@{fa-css-prefix}-eur:before { + content: @fa-var-eur; +} +.@{fa-css-prefix}-gbp:before { + content: @fa-var-gbp; +} +.@{fa-css-prefix}-dollar:before, +.@{fa-css-prefix}-usd:before { + content: @fa-var-usd; +} +.@{fa-css-prefix}-rupee:before, +.@{fa-css-prefix}-inr:before { + content: @fa-var-inr; +} +.@{fa-css-prefix}-cny:before, +.@{fa-css-prefix}-rmb:before, +.@{fa-css-prefix}-yen:before, +.@{fa-css-prefix}-jpy:before { + content: @fa-var-jpy; +} +.@{fa-css-prefix}-ruble:before, +.@{fa-css-prefix}-rouble:before, +.@{fa-css-prefix}-rub:before { + content: @fa-var-rub; +} +.@{fa-css-prefix}-won:before, +.@{fa-css-prefix}-krw:before { + content: @fa-var-krw; +} +.@{fa-css-prefix}-bitcoin:before, +.@{fa-css-prefix}-btc:before { + content: @fa-var-btc; +} +.@{fa-css-prefix}-file:before { + content: @fa-var-file; +} +.@{fa-css-prefix}-file-text:before { + content: @fa-var-file-text; +} +.@{fa-css-prefix}-sort-alpha-asc:before { + content: @fa-var-sort-alpha-asc; +} +.@{fa-css-prefix}-sort-alpha-desc:before { + content: @fa-var-sort-alpha-desc; +} +.@{fa-css-prefix}-sort-amount-asc:before { + content: @fa-var-sort-amount-asc; +} +.@{fa-css-prefix}-sort-amount-desc:before { + content: @fa-var-sort-amount-desc; +} +.@{fa-css-prefix}-sort-numeric-asc:before { + content: @fa-var-sort-numeric-asc; +} +.@{fa-css-prefix}-sort-numeric-desc:before { + content: @fa-var-sort-numeric-desc; +} +.@{fa-css-prefix}-thumbs-up:before { + content: @fa-var-thumbs-up; +} +.@{fa-css-prefix}-thumbs-down:before { + content: @fa-var-thumbs-down; +} +.@{fa-css-prefix}-youtube-square:before { + content: @fa-var-youtube-square; +} +.@{fa-css-prefix}-youtube:before { + content: @fa-var-youtube; +} +.@{fa-css-prefix}-xing:before { + content: @fa-var-xing; +} +.@{fa-css-prefix}-xing-square:before { + content: @fa-var-xing-square; +} +.@{fa-css-prefix}-youtube-play:before { + content: @fa-var-youtube-play; +} +.@{fa-css-prefix}-dropbox:before { + content: @fa-var-dropbox; +} +.@{fa-css-prefix}-stack-overflow:before { + content: @fa-var-stack-overflow; +} +.@{fa-css-prefix}-instagram:before { + content: @fa-var-instagram; +} +.@{fa-css-prefix}-flickr:before { + content: @fa-var-flickr; +} +.@{fa-css-prefix}-adn:before { + content: @fa-var-adn; +} +.@{fa-css-prefix}-bitbucket:before { + content: @fa-var-bitbucket; +} +.@{fa-css-prefix}-bitbucket-square:before { + content: @fa-var-bitbucket-square; +} +.@{fa-css-prefix}-tumblr:before { + content: @fa-var-tumblr; +} +.@{fa-css-prefix}-tumblr-square:before { + content: @fa-var-tumblr-square; +} +.@{fa-css-prefix}-long-arrow-down:before { + content: @fa-var-long-arrow-down; +} +.@{fa-css-prefix}-long-arrow-up:before { + content: @fa-var-long-arrow-up; +} +.@{fa-css-prefix}-long-arrow-left:before { + content: @fa-var-long-arrow-left; +} +.@{fa-css-prefix}-long-arrow-right:before { + content: @fa-var-long-arrow-right; +} +.@{fa-css-prefix}-apple:before { + content: @fa-var-apple; +} +.@{fa-css-prefix}-windows:before { + content: @fa-var-windows; +} +.@{fa-css-prefix}-android:before { + content: @fa-var-android; +} +.@{fa-css-prefix}-linux:before { + content: @fa-var-linux; +} +.@{fa-css-prefix}-dribbble:before { + content: @fa-var-dribbble; +} +.@{fa-css-prefix}-skype:before { + content: @fa-var-skype; +} +.@{fa-css-prefix}-foursquare:before { + content: @fa-var-foursquare; +} +.@{fa-css-prefix}-trello:before { + content: @fa-var-trello; +} +.@{fa-css-prefix}-female:before { + content: @fa-var-female; +} +.@{fa-css-prefix}-male:before { + content: @fa-var-male; +} +.@{fa-css-prefix}-gittip:before, +.@{fa-css-prefix}-gratipay:before { + content: @fa-var-gratipay; +} +.@{fa-css-prefix}-sun-o:before { + content: @fa-var-sun-o; +} +.@{fa-css-prefix}-moon-o:before { + content: @fa-var-moon-o; +} +.@{fa-css-prefix}-archive:before { + content: @fa-var-archive; +} +.@{fa-css-prefix}-bug:before { + content: @fa-var-bug; +} +.@{fa-css-prefix}-vk:before { + content: @fa-var-vk; +} +.@{fa-css-prefix}-weibo:before { + content: @fa-var-weibo; +} +.@{fa-css-prefix}-renren:before { + content: @fa-var-renren; +} +.@{fa-css-prefix}-pagelines:before { + content: @fa-var-pagelines; +} +.@{fa-css-prefix}-stack-exchange:before { + content: @fa-var-stack-exchange; +} +.@{fa-css-prefix}-arrow-circle-o-right:before { + content: @fa-var-arrow-circle-o-right; +} +.@{fa-css-prefix}-arrow-circle-o-left:before { + content: @fa-var-arrow-circle-o-left; +} +.@{fa-css-prefix}-toggle-left:before, +.@{fa-css-prefix}-caret-square-o-left:before { + content: @fa-var-caret-square-o-left; +} +.@{fa-css-prefix}-dot-circle-o:before { + content: @fa-var-dot-circle-o; +} +.@{fa-css-prefix}-wheelchair:before { + content: @fa-var-wheelchair; +} +.@{fa-css-prefix}-vimeo-square:before { + content: @fa-var-vimeo-square; +} +.@{fa-css-prefix}-turkish-lira:before, +.@{fa-css-prefix}-try:before { + content: @fa-var-try; +} +.@{fa-css-prefix}-plus-square-o:before { + content: @fa-var-plus-square-o; +} +.@{fa-css-prefix}-space-shuttle:before { + content: @fa-var-space-shuttle; +} +.@{fa-css-prefix}-slack:before { + content: @fa-var-slack; +} +.@{fa-css-prefix}-envelope-square:before { + content: @fa-var-envelope-square; +} +.@{fa-css-prefix}-wordpress:before { + content: @fa-var-wordpress; +} +.@{fa-css-prefix}-openid:before { + content: @fa-var-openid; +} +.@{fa-css-prefix}-institution:before, +.@{fa-css-prefix}-bank:before, +.@{fa-css-prefix}-university:before { + content: @fa-var-university; +} +.@{fa-css-prefix}-mortar-board:before, +.@{fa-css-prefix}-graduation-cap:before { + content: @fa-var-graduation-cap; +} +.@{fa-css-prefix}-yahoo:before { + content: @fa-var-yahoo; +} +.@{fa-css-prefix}-google:before { + content: @fa-var-google; +} +.@{fa-css-prefix}-reddit:before { + content: @fa-var-reddit; +} +.@{fa-css-prefix}-reddit-square:before { + content: @fa-var-reddit-square; +} +.@{fa-css-prefix}-stumbleupon-circle:before { + content: @fa-var-stumbleupon-circle; +} +.@{fa-css-prefix}-stumbleupon:before { + content: @fa-var-stumbleupon; +} +.@{fa-css-prefix}-delicious:before { + content: @fa-var-delicious; +} +.@{fa-css-prefix}-digg:before { + content: @fa-var-digg; +} +.@{fa-css-prefix}-pied-piper-pp:before { + content: @fa-var-pied-piper-pp; +} +.@{fa-css-prefix}-pied-piper-alt:before { + content: @fa-var-pied-piper-alt; +} +.@{fa-css-prefix}-drupal:before { + content: @fa-var-drupal; +} +.@{fa-css-prefix}-joomla:before { + content: @fa-var-joomla; +} +.@{fa-css-prefix}-language:before { + content: @fa-var-language; +} +.@{fa-css-prefix}-fax:before { + content: @fa-var-fax; +} +.@{fa-css-prefix}-building:before { + content: @fa-var-building; +} +.@{fa-css-prefix}-child:before { + content: @fa-var-child; +} +.@{fa-css-prefix}-paw:before { + content: @fa-var-paw; +} +.@{fa-css-prefix}-spoon:before { + content: @fa-var-spoon; +} +.@{fa-css-prefix}-cube:before { + content: @fa-var-cube; +} +.@{fa-css-prefix}-cubes:before { + content: @fa-var-cubes; +} +.@{fa-css-prefix}-behance:before { + content: @fa-var-behance; +} +.@{fa-css-prefix}-behance-square:before { + content: @fa-var-behance-square; +} +.@{fa-css-prefix}-steam:before { + content: @fa-var-steam; +} +.@{fa-css-prefix}-steam-square:before { + content: @fa-var-steam-square; +} +.@{fa-css-prefix}-recycle:before { + content: @fa-var-recycle; +} +.@{fa-css-prefix}-automobile:before, +.@{fa-css-prefix}-car:before { + content: @fa-var-car; +} +.@{fa-css-prefix}-cab:before, +.@{fa-css-prefix}-taxi:before { + content: @fa-var-taxi; +} +.@{fa-css-prefix}-tree:before { + content: @fa-var-tree; +} +.@{fa-css-prefix}-spotify:before { + content: @fa-var-spotify; +} +.@{fa-css-prefix}-deviantart:before { + content: @fa-var-deviantart; +} +.@{fa-css-prefix}-soundcloud:before { + content: @fa-var-soundcloud; +} +.@{fa-css-prefix}-database:before { + content: @fa-var-database; +} +.@{fa-css-prefix}-file-pdf-o:before { + content: @fa-var-file-pdf-o; +} +.@{fa-css-prefix}-file-word-o:before { + content: @fa-var-file-word-o; +} +.@{fa-css-prefix}-file-excel-o:before { + content: @fa-var-file-excel-o; +} +.@{fa-css-prefix}-file-powerpoint-o:before { + content: @fa-var-file-powerpoint-o; +} +.@{fa-css-prefix}-file-photo-o:before, +.@{fa-css-prefix}-file-picture-o:before, +.@{fa-css-prefix}-file-image-o:before { + content: @fa-var-file-image-o; +} +.@{fa-css-prefix}-file-zip-o:before, +.@{fa-css-prefix}-file-archive-o:before { + content: @fa-var-file-archive-o; +} +.@{fa-css-prefix}-file-sound-o:before, +.@{fa-css-prefix}-file-audio-o:before { + content: @fa-var-file-audio-o; +} +.@{fa-css-prefix}-file-movie-o:before, +.@{fa-css-prefix}-file-video-o:before { + content: @fa-var-file-video-o; +} +.@{fa-css-prefix}-file-code-o:before { + content: @fa-var-file-code-o; +} +.@{fa-css-prefix}-vine:before { + content: @fa-var-vine; +} +.@{fa-css-prefix}-codepen:before { + content: @fa-var-codepen; +} +.@{fa-css-prefix}-jsfiddle:before { + content: @fa-var-jsfiddle; +} +.@{fa-css-prefix}-life-bouy:before, +.@{fa-css-prefix}-life-buoy:before, +.@{fa-css-prefix}-life-saver:before, +.@{fa-css-prefix}-support:before, +.@{fa-css-prefix}-life-ring:before { + content: @fa-var-life-ring; +} +.@{fa-css-prefix}-circle-o-notch:before { + content: @fa-var-circle-o-notch; +} +.@{fa-css-prefix}-ra:before, +.@{fa-css-prefix}-resistance:before, +.@{fa-css-prefix}-rebel:before { + content: @fa-var-rebel; +} +.@{fa-css-prefix}-ge:before, +.@{fa-css-prefix}-empire:before { + content: @fa-var-empire; +} +.@{fa-css-prefix}-git-square:before { + content: @fa-var-git-square; +} +.@{fa-css-prefix}-git:before { + content: @fa-var-git; +} +.@{fa-css-prefix}-y-combinator-square:before, +.@{fa-css-prefix}-yc-square:before, +.@{fa-css-prefix}-hacker-news:before { + content: @fa-var-hacker-news; +} +.@{fa-css-prefix}-tencent-weibo:before { + content: @fa-var-tencent-weibo; +} +.@{fa-css-prefix}-qq:before { + content: @fa-var-qq; +} +.@{fa-css-prefix}-wechat:before, +.@{fa-css-prefix}-weixin:before { + content: @fa-var-weixin; +} +.@{fa-css-prefix}-send:before, +.@{fa-css-prefix}-paper-plane:before { + content: @fa-var-paper-plane; +} +.@{fa-css-prefix}-send-o:before, +.@{fa-css-prefix}-paper-plane-o:before { + content: @fa-var-paper-plane-o; +} +.@{fa-css-prefix}-history:before { + content: @fa-var-history; +} +.@{fa-css-prefix}-circle-thin:before { + content: @fa-var-circle-thin; +} +.@{fa-css-prefix}-header:before { + content: @fa-var-header; +} +.@{fa-css-prefix}-paragraph:before { + content: @fa-var-paragraph; +} +.@{fa-css-prefix}-sliders:before { + content: @fa-var-sliders; +} +.@{fa-css-prefix}-share-alt:before { + content: @fa-var-share-alt; +} +.@{fa-css-prefix}-share-alt-square:before { + content: @fa-var-share-alt-square; +} +.@{fa-css-prefix}-bomb:before { + content: @fa-var-bomb; +} +.@{fa-css-prefix}-soccer-ball-o:before, +.@{fa-css-prefix}-futbol-o:before { + content: @fa-var-futbol-o; +} +.@{fa-css-prefix}-tty:before { + content: @fa-var-tty; +} +.@{fa-css-prefix}-binoculars:before { + content: @fa-var-binoculars; +} +.@{fa-css-prefix}-plug:before { + content: @fa-var-plug; +} +.@{fa-css-prefix}-slideshare:before { + content: @fa-var-slideshare; +} +.@{fa-css-prefix}-twitch:before { + content: @fa-var-twitch; +} +.@{fa-css-prefix}-yelp:before { + content: @fa-var-yelp; +} +.@{fa-css-prefix}-newspaper-o:before { + content: @fa-var-newspaper-o; +} +.@{fa-css-prefix}-wifi:before { + content: @fa-var-wifi; +} +.@{fa-css-prefix}-calculator:before { + content: @fa-var-calculator; +} +.@{fa-css-prefix}-paypal:before { + content: @fa-var-paypal; +} +.@{fa-css-prefix}-google-wallet:before { + content: @fa-var-google-wallet; +} +.@{fa-css-prefix}-cc-visa:before { + content: @fa-var-cc-visa; +} +.@{fa-css-prefix}-cc-mastercard:before { + content: @fa-var-cc-mastercard; +} +.@{fa-css-prefix}-cc-discover:before { + content: @fa-var-cc-discover; +} +.@{fa-css-prefix}-cc-amex:before { + content: @fa-var-cc-amex; +} +.@{fa-css-prefix}-cc-paypal:before { + content: @fa-var-cc-paypal; +} +.@{fa-css-prefix}-cc-stripe:before { + content: @fa-var-cc-stripe; +} +.@{fa-css-prefix}-bell-slash:before { + content: @fa-var-bell-slash; +} +.@{fa-css-prefix}-bell-slash-o:before { + content: @fa-var-bell-slash-o; +} +.@{fa-css-prefix}-trash:before { + content: @fa-var-trash; +} +.@{fa-css-prefix}-copyright:before { + content: @fa-var-copyright; +} +.@{fa-css-prefix}-at:before { + content: @fa-var-at; +} +.@{fa-css-prefix}-eyedropper:before { + content: @fa-var-eyedropper; +} +.@{fa-css-prefix}-paint-brush:before { + content: @fa-var-paint-brush; +} +.@{fa-css-prefix}-birthday-cake:before { + content: @fa-var-birthday-cake; +} +.@{fa-css-prefix}-area-chart:before { + content: @fa-var-area-chart; +} +.@{fa-css-prefix}-pie-chart:before { + content: @fa-var-pie-chart; +} +.@{fa-css-prefix}-line-chart:before { + content: @fa-var-line-chart; +} +.@{fa-css-prefix}-lastfm:before { + content: @fa-var-lastfm; +} +.@{fa-css-prefix}-lastfm-square:before { + content: @fa-var-lastfm-square; +} +.@{fa-css-prefix}-toggle-off:before { + content: @fa-var-toggle-off; +} +.@{fa-css-prefix}-toggle-on:before { + content: @fa-var-toggle-on; +} +.@{fa-css-prefix}-bicycle:before { + content: @fa-var-bicycle; +} +.@{fa-css-prefix}-bus:before { + content: @fa-var-bus; +} +.@{fa-css-prefix}-ioxhost:before { + content: @fa-var-ioxhost; +} +.@{fa-css-prefix}-angellist:before { + content: @fa-var-angellist; +} +.@{fa-css-prefix}-cc:before { + content: @fa-var-cc; +} +.@{fa-css-prefix}-shekel:before, +.@{fa-css-prefix}-sheqel:before, +.@{fa-css-prefix}-ils:before { + content: @fa-var-ils; +} +.@{fa-css-prefix}-meanpath:before { + content: @fa-var-meanpath; +} +.@{fa-css-prefix}-buysellads:before { + content: @fa-var-buysellads; +} +.@{fa-css-prefix}-connectdevelop:before { + content: @fa-var-connectdevelop; +} +.@{fa-css-prefix}-dashcube:before { + content: @fa-var-dashcube; +} +.@{fa-css-prefix}-forumbee:before { + content: @fa-var-forumbee; +} +.@{fa-css-prefix}-leanpub:before { + content: @fa-var-leanpub; +} +.@{fa-css-prefix}-sellsy:before { + content: @fa-var-sellsy; +} +.@{fa-css-prefix}-shirtsinbulk:before { + content: @fa-var-shirtsinbulk; +} +.@{fa-css-prefix}-simplybuilt:before { + content: @fa-var-simplybuilt; +} +.@{fa-css-prefix}-skyatlas:before { + content: @fa-var-skyatlas; +} +.@{fa-css-prefix}-cart-plus:before { + content: @fa-var-cart-plus; +} +.@{fa-css-prefix}-cart-arrow-down:before { + content: @fa-var-cart-arrow-down; +} +.@{fa-css-prefix}-diamond:before { + content: @fa-var-diamond; +} +.@{fa-css-prefix}-ship:before { + content: @fa-var-ship; +} +.@{fa-css-prefix}-user-secret:before { + content: @fa-var-user-secret; +} +.@{fa-css-prefix}-motorcycle:before { + content: @fa-var-motorcycle; +} +.@{fa-css-prefix}-street-view:before { + content: @fa-var-street-view; +} +.@{fa-css-prefix}-heartbeat:before { + content: @fa-var-heartbeat; +} +.@{fa-css-prefix}-venus:before { + content: @fa-var-venus; +} +.@{fa-css-prefix}-mars:before { + content: @fa-var-mars; +} +.@{fa-css-prefix}-mercury:before { + content: @fa-var-mercury; +} +.@{fa-css-prefix}-intersex:before, +.@{fa-css-prefix}-transgender:before { + content: @fa-var-transgender; +} +.@{fa-css-prefix}-transgender-alt:before { + content: @fa-var-transgender-alt; +} +.@{fa-css-prefix}-venus-double:before { + content: @fa-var-venus-double; +} +.@{fa-css-prefix}-mars-double:before { + content: @fa-var-mars-double; +} +.@{fa-css-prefix}-venus-mars:before { + content: @fa-var-venus-mars; +} +.@{fa-css-prefix}-mars-stroke:before { + content: @fa-var-mars-stroke; +} +.@{fa-css-prefix}-mars-stroke-v:before { + content: @fa-var-mars-stroke-v; +} +.@{fa-css-prefix}-mars-stroke-h:before { + content: @fa-var-mars-stroke-h; +} +.@{fa-css-prefix}-neuter:before { + content: @fa-var-neuter; +} +.@{fa-css-prefix}-genderless:before { + content: @fa-var-genderless; +} +.@{fa-css-prefix}-facebook-official:before { + content: @fa-var-facebook-official; +} +.@{fa-css-prefix}-pinterest-p:before { + content: @fa-var-pinterest-p; +} +.@{fa-css-prefix}-whatsapp:before { + content: @fa-var-whatsapp; +} +.@{fa-css-prefix}-server:before { + content: @fa-var-server; +} +.@{fa-css-prefix}-user-plus:before { + content: @fa-var-user-plus; +} +.@{fa-css-prefix}-user-times:before { + content: @fa-var-user-times; +} +.@{fa-css-prefix}-hotel:before, +.@{fa-css-prefix}-bed:before { + content: @fa-var-bed; +} +.@{fa-css-prefix}-viacoin:before { + content: @fa-var-viacoin; +} +.@{fa-css-prefix}-train:before { + content: @fa-var-train; +} +.@{fa-css-prefix}-subway:before { + content: @fa-var-subway; +} +.@{fa-css-prefix}-medium:before { + content: @fa-var-medium; +} +.@{fa-css-prefix}-yc:before, +.@{fa-css-prefix}-y-combinator:before { + content: @fa-var-y-combinator; +} +.@{fa-css-prefix}-optin-monster:before { + content: @fa-var-optin-monster; +} +.@{fa-css-prefix}-opencart:before { + content: @fa-var-opencart; +} +.@{fa-css-prefix}-expeditedssl:before { + content: @fa-var-expeditedssl; +} +.@{fa-css-prefix}-battery-4:before, +.@{fa-css-prefix}-battery:before, +.@{fa-css-prefix}-battery-full:before { + content: @fa-var-battery-full; +} +.@{fa-css-prefix}-battery-3:before, +.@{fa-css-prefix}-battery-three-quarters:before { + content: @fa-var-battery-three-quarters; +} +.@{fa-css-prefix}-battery-2:before, +.@{fa-css-prefix}-battery-half:before { + content: @fa-var-battery-half; +} +.@{fa-css-prefix}-battery-1:before, +.@{fa-css-prefix}-battery-quarter:before { + content: @fa-var-battery-quarter; +} +.@{fa-css-prefix}-battery-0:before, +.@{fa-css-prefix}-battery-empty:before { + content: @fa-var-battery-empty; +} +.@{fa-css-prefix}-mouse-pointer:before { + content: @fa-var-mouse-pointer; +} +.@{fa-css-prefix}-i-cursor:before { + content: @fa-var-i-cursor; +} +.@{fa-css-prefix}-object-group:before { + content: @fa-var-object-group; +} +.@{fa-css-prefix}-object-ungroup:before { + content: @fa-var-object-ungroup; +} +.@{fa-css-prefix}-sticky-note:before { + content: @fa-var-sticky-note; +} +.@{fa-css-prefix}-sticky-note-o:before { + content: @fa-var-sticky-note-o; +} +.@{fa-css-prefix}-cc-jcb:before { + content: @fa-var-cc-jcb; +} +.@{fa-css-prefix}-cc-diners-club:before { + content: @fa-var-cc-diners-club; +} +.@{fa-css-prefix}-clone:before { + content: @fa-var-clone; +} +.@{fa-css-prefix}-balance-scale:before { + content: @fa-var-balance-scale; +} +.@{fa-css-prefix}-hourglass-o:before { + content: @fa-var-hourglass-o; +} +.@{fa-css-prefix}-hourglass-1:before, +.@{fa-css-prefix}-hourglass-start:before { + content: @fa-var-hourglass-start; +} +.@{fa-css-prefix}-hourglass-2:before, +.@{fa-css-prefix}-hourglass-half:before { + content: @fa-var-hourglass-half; +} +.@{fa-css-prefix}-hourglass-3:before, +.@{fa-css-prefix}-hourglass-end:before { + content: @fa-var-hourglass-end; +} +.@{fa-css-prefix}-hourglass:before { + content: @fa-var-hourglass; +} +.@{fa-css-prefix}-hand-grab-o:before, +.@{fa-css-prefix}-hand-rock-o:before { + content: @fa-var-hand-rock-o; +} +.@{fa-css-prefix}-hand-stop-o:before, +.@{fa-css-prefix}-hand-paper-o:before { + content: @fa-var-hand-paper-o; +} +.@{fa-css-prefix}-hand-scissors-o:before { + content: @fa-var-hand-scissors-o; +} +.@{fa-css-prefix}-hand-lizard-o:before { + content: @fa-var-hand-lizard-o; +} +.@{fa-css-prefix}-hand-spock-o:before { + content: @fa-var-hand-spock-o; +} +.@{fa-css-prefix}-hand-pointer-o:before { + content: @fa-var-hand-pointer-o; +} +.@{fa-css-prefix}-hand-peace-o:before { + content: @fa-var-hand-peace-o; +} +.@{fa-css-prefix}-trademark:before { + content: @fa-var-trademark; +} +.@{fa-css-prefix}-registered:before { + content: @fa-var-registered; +} +.@{fa-css-prefix}-creative-commons:before { + content: @fa-var-creative-commons; +} +.@{fa-css-prefix}-gg:before { + content: @fa-var-gg; +} +.@{fa-css-prefix}-gg-circle:before { + content: @fa-var-gg-circle; +} +.@{fa-css-prefix}-tripadvisor:before { + content: @fa-var-tripadvisor; +} +.@{fa-css-prefix}-odnoklassniki:before { + content: @fa-var-odnoklassniki; +} +.@{fa-css-prefix}-odnoklassniki-square:before { + content: @fa-var-odnoklassniki-square; +} +.@{fa-css-prefix}-get-pocket:before { + content: @fa-var-get-pocket; +} +.@{fa-css-prefix}-wikipedia-w:before { + content: @fa-var-wikipedia-w; +} +.@{fa-css-prefix}-safari:before { + content: @fa-var-safari; +} +.@{fa-css-prefix}-chrome:before { + content: @fa-var-chrome; +} +.@{fa-css-prefix}-firefox:before { + content: @fa-var-firefox; +} +.@{fa-css-prefix}-opera:before { + content: @fa-var-opera; +} +.@{fa-css-prefix}-internet-explorer:before { + content: @fa-var-internet-explorer; +} +.@{fa-css-prefix}-tv:before, +.@{fa-css-prefix}-television:before { + content: @fa-var-television; +} +.@{fa-css-prefix}-contao:before { + content: @fa-var-contao; +} +.@{fa-css-prefix}-500px:before { + content: @fa-var-500px; +} +.@{fa-css-prefix}-amazon:before { + content: @fa-var-amazon; +} +.@{fa-css-prefix}-calendar-plus-o:before { + content: @fa-var-calendar-plus-o; +} +.@{fa-css-prefix}-calendar-minus-o:before { + content: @fa-var-calendar-minus-o; +} +.@{fa-css-prefix}-calendar-times-o:before { + content: @fa-var-calendar-times-o; +} +.@{fa-css-prefix}-calendar-check-o:before { + content: @fa-var-calendar-check-o; +} +.@{fa-css-prefix}-industry:before { + content: @fa-var-industry; +} +.@{fa-css-prefix}-map-pin:before { + content: @fa-var-map-pin; +} +.@{fa-css-prefix}-map-signs:before { + content: @fa-var-map-signs; +} +.@{fa-css-prefix}-map-o:before { + content: @fa-var-map-o; +} +.@{fa-css-prefix}-map:before { + content: @fa-var-map; +} +.@{fa-css-prefix}-commenting:before { + content: @fa-var-commenting; +} +.@{fa-css-prefix}-commenting-o:before { + content: @fa-var-commenting-o; +} +.@{fa-css-prefix}-houzz:before { + content: @fa-var-houzz; +} +.@{fa-css-prefix}-vimeo:before { + content: @fa-var-vimeo; +} +.@{fa-css-prefix}-black-tie:before { + content: @fa-var-black-tie; +} +.@{fa-css-prefix}-fonticons:before { + content: @fa-var-fonticons; +} +.@{fa-css-prefix}-reddit-alien:before { + content: @fa-var-reddit-alien; +} +.@{fa-css-prefix}-edge:before { + content: @fa-var-edge; +} +.@{fa-css-prefix}-credit-card-alt:before { + content: @fa-var-credit-card-alt; +} +.@{fa-css-prefix}-codiepie:before { + content: @fa-var-codiepie; +} +.@{fa-css-prefix}-modx:before { + content: @fa-var-modx; +} +.@{fa-css-prefix}-fort-awesome:before { + content: @fa-var-fort-awesome; +} +.@{fa-css-prefix}-usb:before { + content: @fa-var-usb; +} +.@{fa-css-prefix}-product-hunt:before { + content: @fa-var-product-hunt; +} +.@{fa-css-prefix}-mixcloud:before { + content: @fa-var-mixcloud; +} +.@{fa-css-prefix}-scribd:before { + content: @fa-var-scribd; +} +.@{fa-css-prefix}-pause-circle:before { + content: @fa-var-pause-circle; +} +.@{fa-css-prefix}-pause-circle-o:before { + content: @fa-var-pause-circle-o; +} +.@{fa-css-prefix}-stop-circle:before { + content: @fa-var-stop-circle; +} +.@{fa-css-prefix}-stop-circle-o:before { + content: @fa-var-stop-circle-o; +} +.@{fa-css-prefix}-shopping-bag:before { + content: @fa-var-shopping-bag; +} +.@{fa-css-prefix}-shopping-basket:before { + content: @fa-var-shopping-basket; +} +.@{fa-css-prefix}-hashtag:before { + content: @fa-var-hashtag; +} +.@{fa-css-prefix}-bluetooth:before { + content: @fa-var-bluetooth; +} +.@{fa-css-prefix}-bluetooth-b:before { + content: @fa-var-bluetooth-b; +} +.@{fa-css-prefix}-percent:before { + content: @fa-var-percent; +} +.@{fa-css-prefix}-gitlab:before { + content: @fa-var-gitlab; +} +.@{fa-css-prefix}-wpbeginner:before { + content: @fa-var-wpbeginner; +} +.@{fa-css-prefix}-wpforms:before { + content: @fa-var-wpforms; +} +.@{fa-css-prefix}-envira:before { + content: @fa-var-envira; +} +.@{fa-css-prefix}-universal-access:before { + content: @fa-var-universal-access; +} +.@{fa-css-prefix}-wheelchair-alt:before { + content: @fa-var-wheelchair-alt; +} +.@{fa-css-prefix}-question-circle-o:before { + content: @fa-var-question-circle-o; +} +.@{fa-css-prefix}-blind:before { + content: @fa-var-blind; +} +.@{fa-css-prefix}-audio-description:before { + content: @fa-var-audio-description; +} +.@{fa-css-prefix}-volume-control-phone:before { + content: @fa-var-volume-control-phone; +} +.@{fa-css-prefix}-braille:before { + content: @fa-var-braille; +} +.@{fa-css-prefix}-assistive-listening-systems:before { + content: @fa-var-assistive-listening-systems; +} +.@{fa-css-prefix}-asl-interpreting:before, +.@{fa-css-prefix}-american-sign-language-interpreting:before { + content: @fa-var-american-sign-language-interpreting; +} +.@{fa-css-prefix}-deafness:before, +.@{fa-css-prefix}-hard-of-hearing:before, +.@{fa-css-prefix}-deaf:before { + content: @fa-var-deaf; +} +.@{fa-css-prefix}-glide:before { + content: @fa-var-glide; +} +.@{fa-css-prefix}-glide-g:before { + content: @fa-var-glide-g; +} +.@{fa-css-prefix}-signing:before, +.@{fa-css-prefix}-sign-language:before { + content: @fa-var-sign-language; +} +.@{fa-css-prefix}-low-vision:before { + content: @fa-var-low-vision; +} +.@{fa-css-prefix}-viadeo:before { + content: @fa-var-viadeo; +} +.@{fa-css-prefix}-viadeo-square:before { + content: @fa-var-viadeo-square; +} +.@{fa-css-prefix}-snapchat:before { + content: @fa-var-snapchat; +} +.@{fa-css-prefix}-snapchat-ghost:before { + content: @fa-var-snapchat-ghost; +} +.@{fa-css-prefix}-snapchat-square:before { + content: @fa-var-snapchat-square; +} +.@{fa-css-prefix}-pied-piper:before { + content: @fa-var-pied-piper; +} +.@{fa-css-prefix}-first-order:before { + content: @fa-var-first-order; +} +.@{fa-css-prefix}-yoast:before { + content: @fa-var-yoast; +} +.@{fa-css-prefix}-themeisle:before { + content: @fa-var-themeisle; +} +.@{fa-css-prefix}-google-plus-circle:before, +.@{fa-css-prefix}-google-plus-official:before { + content: @fa-var-google-plus-official; +} +.@{fa-css-prefix}-fa:before, +.@{fa-css-prefix}-font-awesome:before { + content: @fa-var-font-awesome; +} +.@{fa-css-prefix}-handshake-o:before { + content: @fa-var-handshake-o; +} +.@{fa-css-prefix}-envelope-open:before { + content: @fa-var-envelope-open; +} +.@{fa-css-prefix}-envelope-open-o:before { + content: @fa-var-envelope-open-o; +} +.@{fa-css-prefix}-linode:before { + content: @fa-var-linode; +} +.@{fa-css-prefix}-address-book:before { + content: @fa-var-address-book; +} +.@{fa-css-prefix}-address-book-o:before { + content: @fa-var-address-book-o; +} +.@{fa-css-prefix}-vcard:before, +.@{fa-css-prefix}-address-card:before { + content: @fa-var-address-card; +} +.@{fa-css-prefix}-vcard-o:before, +.@{fa-css-prefix}-address-card-o:before { + content: @fa-var-address-card-o; +} +.@{fa-css-prefix}-user-circle:before { + content: @fa-var-user-circle; +} +.@{fa-css-prefix}-user-circle-o:before { + content: @fa-var-user-circle-o; +} +.@{fa-css-prefix}-user-o:before { + content: @fa-var-user-o; +} +.@{fa-css-prefix}-id-badge:before { + content: @fa-var-id-badge; +} +.@{fa-css-prefix}-drivers-license:before, +.@{fa-css-prefix}-id-card:before { + content: @fa-var-id-card; +} +.@{fa-css-prefix}-drivers-license-o:before, +.@{fa-css-prefix}-id-card-o:before { + content: @fa-var-id-card-o; +} +.@{fa-css-prefix}-quora:before { + content: @fa-var-quora; +} +.@{fa-css-prefix}-free-code-camp:before { + content: @fa-var-free-code-camp; +} +.@{fa-css-prefix}-telegram:before { + content: @fa-var-telegram; +} +.@{fa-css-prefix}-thermometer-4:before, +.@{fa-css-prefix}-thermometer:before, +.@{fa-css-prefix}-thermometer-full:before { + content: @fa-var-thermometer-full; +} +.@{fa-css-prefix}-thermometer-3:before, +.@{fa-css-prefix}-thermometer-three-quarters:before { + content: @fa-var-thermometer-three-quarters; +} +.@{fa-css-prefix}-thermometer-2:before, +.@{fa-css-prefix}-thermometer-half:before { + content: @fa-var-thermometer-half; +} +.@{fa-css-prefix}-thermometer-1:before, +.@{fa-css-prefix}-thermometer-quarter:before { + content: @fa-var-thermometer-quarter; +} +.@{fa-css-prefix}-thermometer-0:before, +.@{fa-css-prefix}-thermometer-empty:before { + content: @fa-var-thermometer-empty; +} +.@{fa-css-prefix}-shower:before { + content: @fa-var-shower; +} +.@{fa-css-prefix}-bathtub:before, +.@{fa-css-prefix}-s15:before, +.@{fa-css-prefix}-bath:before { + content: @fa-var-bath; +} +.@{fa-css-prefix}-podcast:before { + content: @fa-var-podcast; +} +.@{fa-css-prefix}-window-maximize:before { + content: @fa-var-window-maximize; +} +.@{fa-css-prefix}-window-minimize:before { + content: @fa-var-window-minimize; +} +.@{fa-css-prefix}-window-restore:before { + content: @fa-var-window-restore; +} +.@{fa-css-prefix}-times-rectangle:before, +.@{fa-css-prefix}-window-close:before { + content: @fa-var-window-close; +} +.@{fa-css-prefix}-times-rectangle-o:before, +.@{fa-css-prefix}-window-close-o:before { + content: @fa-var-window-close-o; +} +.@{fa-css-prefix}-bandcamp:before { + content: @fa-var-bandcamp; +} +.@{fa-css-prefix}-grav:before { + content: @fa-var-grav; +} +.@{fa-css-prefix}-etsy:before { + content: @fa-var-etsy; +} +.@{fa-css-prefix}-imdb:before { + content: @fa-var-imdb; +} +.@{fa-css-prefix}-ravelry:before { + content: @fa-var-ravelry; +} +.@{fa-css-prefix}-eercast:before { + content: @fa-var-eercast; +} +.@{fa-css-prefix}-microchip:before { + content: @fa-var-microchip; +} +.@{fa-css-prefix}-snowflake-o:before { + content: @fa-var-snowflake-o; +} +.@{fa-css-prefix}-superpowers:before { + content: @fa-var-superpowers; +} +.@{fa-css-prefix}-wpexplorer:before { + content: @fa-var-wpexplorer; +} +.@{fa-css-prefix}-meetup:before { + content: @fa-var-meetup; +} diff --git a/public/font-awesome-4.7.0/less/larger.less b/public/font-awesome-4.7.0/less/larger.less new file mode 100644 index 0000000..0bb9772 --- /dev/null +++ b/public/font-awesome-4.7.0/less/larger.less @@ -0,0 +1,21 @@ +// Icon Sizes +// ------------------------- + +/* makes the font 33% larger relative to the icon container */ +.@{fa-css-prefix}-lg { + font-size: (4em / 3); + line-height: (3em / 4); + vertical-align: -15%; +} +.@{fa-css-prefix}-2x { + font-size: 2em; +} +.@{fa-css-prefix}-3x { + font-size: 3em; +} +.@{fa-css-prefix}-4x { + font-size: 4em; +} +.@{fa-css-prefix}-5x { + font-size: 5em; +} diff --git a/public/font-awesome-4.7.0/less/list.less b/public/font-awesome-4.7.0/less/list.less new file mode 100644 index 0000000..c105dec --- /dev/null +++ b/public/font-awesome-4.7.0/less/list.less @@ -0,0 +1,21 @@ +// List Icons +// ------------------------- + +.@{fa-css-prefix}-ul { + padding-left: 0; + margin-left: @fa-li-width; + list-style-type: none; + > li { + position: relative; + } +} +.@{fa-css-prefix}-li { + position: absolute; + left: -@fa-li-width; + width: @fa-li-width; + top: (2em / 14); + text-align: center; + &.@{fa-css-prefix}-lg { + left: (-@fa-li-width + (4em / 14)); + } +} diff --git a/public/font-awesome-4.7.0/less/mixins.less b/public/font-awesome-4.7.0/less/mixins.less new file mode 100644 index 0000000..38e3637 --- /dev/null +++ b/public/font-awesome-4.7.0/less/mixins.less @@ -0,0 +1,58 @@ +// Mixins +// -------------------------- + +.fa-icon() { + display: inline-block; + font: normal normal normal @fa-font-size-base / @fa-line-height-base FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.fa-icon-rotate(@degrees, @rotation) { + -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})'; + -webkit-transform: rotate(@degrees); + -ms-transform: rotate(@degrees); + transform: rotate(@degrees); +} + +.fa-icon-flip(@horiz, @vert, @rotation) { + -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)'; + -webkit-transform: scale(@horiz, @vert); + -ms-transform: scale(@horiz, @vert); + transform: scale(@horiz, @vert); +} + +// Only display content to screen readers. A la Bootstrap 4. +// +// See: http://a11yproject.com/posts/how-to-hide-content/ + +.sr-only() { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} + +// Use in conjunction with .sr-only to only display content when it's focused. +// +// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 +// +// Credit: HTML5 Boilerplate + +.sr-only-focusable() { + &:active, + &:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; + } +} diff --git a/public/font-awesome-4.7.0/less/path.less b/public/font-awesome-4.7.0/less/path.less new file mode 100644 index 0000000..d1b53eb --- /dev/null +++ b/public/font-awesome-4.7.0/less/path.less @@ -0,0 +1,16 @@ +/* FONT PATH + * -------------------------- */ + +@font-face { + font-family: 'FontAwesome'; + src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); + src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') + format('embedded-opentype'), + url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), + url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), + url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), + url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); + // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts + font-weight: normal; + font-style: normal; +} diff --git a/public/font-awesome-4.7.0/less/rotated-flipped.less b/public/font-awesome-4.7.0/less/rotated-flipped.less new file mode 100644 index 0000000..62f1e30 --- /dev/null +++ b/public/font-awesome-4.7.0/less/rotated-flipped.less @@ -0,0 +1,30 @@ +// Rotated & Flipped Icons +// ------------------------- + +.@{fa-css-prefix}-rotate-90 { + .fa-icon-rotate(90deg, 1); +} +.@{fa-css-prefix}-rotate-180 { + .fa-icon-rotate(180deg, 2); +} +.@{fa-css-prefix}-rotate-270 { + .fa-icon-rotate(270deg, 3); +} + +.@{fa-css-prefix}-flip-horizontal { + .fa-icon-flip(-1, 1, 0); +} +.@{fa-css-prefix}-flip-vertical { + .fa-icon-flip(1, -1, 2); +} + +// Hook for IE8-9 +// ------------------------- + +:root .@{fa-css-prefix}-rotate-90, +:root .@{fa-css-prefix}-rotate-180, +:root .@{fa-css-prefix}-rotate-270, +:root .@{fa-css-prefix}-flip-horizontal, +:root .@{fa-css-prefix}-flip-vertical { + filter: none; +} diff --git a/public/font-awesome-4.7.0/less/screen-reader.less b/public/font-awesome-4.7.0/less/screen-reader.less new file mode 100644 index 0000000..eea295d --- /dev/null +++ b/public/font-awesome-4.7.0/less/screen-reader.less @@ -0,0 +1,9 @@ +// Screen Readers +// ------------------------- + +.sr-only { + .sr-only(); +} +.sr-only-focusable { + .sr-only-focusable(); +} diff --git a/public/font-awesome-4.7.0/less/stacked.less b/public/font-awesome-4.7.0/less/stacked.less new file mode 100644 index 0000000..e0bb80d --- /dev/null +++ b/public/font-awesome-4.7.0/less/stacked.less @@ -0,0 +1,27 @@ +// Stacked Icons +// ------------------------- + +.@{fa-css-prefix}-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.@{fa-css-prefix}-stack-1x, +.@{fa-css-prefix}-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.@{fa-css-prefix}-stack-1x { + line-height: inherit; +} +.@{fa-css-prefix}-stack-2x { + font-size: 2em; +} +.@{fa-css-prefix}-inverse { + color: @fa-inverse; +} diff --git a/public/font-awesome-4.7.0/less/variables.less b/public/font-awesome-4.7.0/less/variables.less new file mode 100644 index 0000000..3d731f8 --- /dev/null +++ b/public/font-awesome-4.7.0/less/variables.less @@ -0,0 +1,799 @@ +// Variables +// -------------------------- + +@fa-font-path: '../fonts'; +@fa-font-size-base: 14px; +@fa-line-height-base: 1; +//@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts"; // for referencing Bootstrap CDN font files directly +@fa-css-prefix: fa; +@fa-version: '4.7.0'; +@fa-border-color: #eee; +@fa-inverse: #fff; +@fa-li-width: (30em / 14); + +@fa-var-500px: '\f26e'; +@fa-var-address-book: '\f2b9'; +@fa-var-address-book-o: '\f2ba'; +@fa-var-address-card: '\f2bb'; +@fa-var-address-card-o: '\f2bc'; +@fa-var-adjust: '\f042'; +@fa-var-adn: '\f170'; +@fa-var-align-center: '\f037'; +@fa-var-align-justify: '\f039'; +@fa-var-align-left: '\f036'; +@fa-var-align-right: '\f038'; +@fa-var-amazon: '\f270'; +@fa-var-ambulance: '\f0f9'; +@fa-var-american-sign-language-interpreting: '\f2a3'; +@fa-var-anchor: '\f13d'; +@fa-var-android: '\f17b'; +@fa-var-angellist: '\f209'; +@fa-var-angle-double-down: '\f103'; +@fa-var-angle-double-left: '\f100'; +@fa-var-angle-double-right: '\f101'; +@fa-var-angle-double-up: '\f102'; +@fa-var-angle-down: '\f107'; +@fa-var-angle-left: '\f104'; +@fa-var-angle-right: '\f105'; +@fa-var-angle-up: '\f106'; +@fa-var-apple: '\f179'; +@fa-var-archive: '\f187'; +@fa-var-area-chart: '\f1fe'; +@fa-var-arrow-circle-down: '\f0ab'; +@fa-var-arrow-circle-left: '\f0a8'; +@fa-var-arrow-circle-o-down: '\f01a'; +@fa-var-arrow-circle-o-left: '\f190'; +@fa-var-arrow-circle-o-right: '\f18e'; +@fa-var-arrow-circle-o-up: '\f01b'; +@fa-var-arrow-circle-right: '\f0a9'; +@fa-var-arrow-circle-up: '\f0aa'; +@fa-var-arrow-down: '\f063'; +@fa-var-arrow-left: '\f060'; +@fa-var-arrow-right: '\f061'; +@fa-var-arrow-up: '\f062'; +@fa-var-arrows: '\f047'; +@fa-var-arrows-alt: '\f0b2'; +@fa-var-arrows-h: '\f07e'; +@fa-var-arrows-v: '\f07d'; +@fa-var-asl-interpreting: '\f2a3'; +@fa-var-assistive-listening-systems: '\f2a2'; +@fa-var-asterisk: '\f069'; +@fa-var-at: '\f1fa'; +@fa-var-audio-description: '\f29e'; +@fa-var-automobile: '\f1b9'; +@fa-var-backward: '\f04a'; +@fa-var-balance-scale: '\f24e'; +@fa-var-ban: '\f05e'; +@fa-var-bandcamp: '\f2d5'; +@fa-var-bank: '\f19c'; +@fa-var-bar-chart: '\f080'; +@fa-var-bar-chart-o: '\f080'; +@fa-var-barcode: '\f02a'; +@fa-var-bars: '\f0c9'; +@fa-var-bath: '\f2cd'; +@fa-var-bathtub: '\f2cd'; +@fa-var-battery: '\f240'; +@fa-var-battery-0: '\f244'; +@fa-var-battery-1: '\f243'; +@fa-var-battery-2: '\f242'; +@fa-var-battery-3: '\f241'; +@fa-var-battery-4: '\f240'; +@fa-var-battery-empty: '\f244'; +@fa-var-battery-full: '\f240'; +@fa-var-battery-half: '\f242'; +@fa-var-battery-quarter: '\f243'; +@fa-var-battery-three-quarters: '\f241'; +@fa-var-bed: '\f236'; +@fa-var-beer: '\f0fc'; +@fa-var-behance: '\f1b4'; +@fa-var-behance-square: '\f1b5'; +@fa-var-bell: '\f0f3'; +@fa-var-bell-o: '\f0a2'; +@fa-var-bell-slash: '\f1f6'; +@fa-var-bell-slash-o: '\f1f7'; +@fa-var-bicycle: '\f206'; +@fa-var-binoculars: '\f1e5'; +@fa-var-birthday-cake: '\f1fd'; +@fa-var-bitbucket: '\f171'; +@fa-var-bitbucket-square: '\f172'; +@fa-var-bitcoin: '\f15a'; +@fa-var-black-tie: '\f27e'; +@fa-var-blind: '\f29d'; +@fa-var-bluetooth: '\f293'; +@fa-var-bluetooth-b: '\f294'; +@fa-var-bold: '\f032'; +@fa-var-bolt: '\f0e7'; +@fa-var-bomb: '\f1e2'; +@fa-var-book: '\f02d'; +@fa-var-bookmark: '\f02e'; +@fa-var-bookmark-o: '\f097'; +@fa-var-braille: '\f2a1'; +@fa-var-briefcase: '\f0b1'; +@fa-var-btc: '\f15a'; +@fa-var-bug: '\f188'; +@fa-var-building: '\f1ad'; +@fa-var-building-o: '\f0f7'; +@fa-var-bullhorn: '\f0a1'; +@fa-var-bullseye: '\f140'; +@fa-var-bus: '\f207'; +@fa-var-buysellads: '\f20d'; +@fa-var-cab: '\f1ba'; +@fa-var-calculator: '\f1ec'; +@fa-var-calendar: '\f073'; +@fa-var-calendar-check-o: '\f274'; +@fa-var-calendar-minus-o: '\f272'; +@fa-var-calendar-o: '\f133'; +@fa-var-calendar-plus-o: '\f271'; +@fa-var-calendar-times-o: '\f273'; +@fa-var-camera: '\f030'; +@fa-var-camera-retro: '\f083'; +@fa-var-car: '\f1b9'; +@fa-var-caret-down: '\f0d7'; +@fa-var-caret-left: '\f0d9'; +@fa-var-caret-right: '\f0da'; +@fa-var-caret-square-o-down: '\f150'; +@fa-var-caret-square-o-left: '\f191'; +@fa-var-caret-square-o-right: '\f152'; +@fa-var-caret-square-o-up: '\f151'; +@fa-var-caret-up: '\f0d8'; +@fa-var-cart-arrow-down: '\f218'; +@fa-var-cart-plus: '\f217'; +@fa-var-cc: '\f20a'; +@fa-var-cc-amex: '\f1f3'; +@fa-var-cc-diners-club: '\f24c'; +@fa-var-cc-discover: '\f1f2'; +@fa-var-cc-jcb: '\f24b'; +@fa-var-cc-mastercard: '\f1f1'; +@fa-var-cc-paypal: '\f1f4'; +@fa-var-cc-stripe: '\f1f5'; +@fa-var-cc-visa: '\f1f0'; +@fa-var-certificate: '\f0a3'; +@fa-var-chain: '\f0c1'; +@fa-var-chain-broken: '\f127'; +@fa-var-check: '\f00c'; +@fa-var-check-circle: '\f058'; +@fa-var-check-circle-o: '\f05d'; +@fa-var-check-square: '\f14a'; +@fa-var-check-square-o: '\f046'; +@fa-var-chevron-circle-down: '\f13a'; +@fa-var-chevron-circle-left: '\f137'; +@fa-var-chevron-circle-right: '\f138'; +@fa-var-chevron-circle-up: '\f139'; +@fa-var-chevron-down: '\f078'; +@fa-var-chevron-left: '\f053'; +@fa-var-chevron-right: '\f054'; +@fa-var-chevron-up: '\f077'; +@fa-var-child: '\f1ae'; +@fa-var-chrome: '\f268'; +@fa-var-circle: '\f111'; +@fa-var-circle-o: '\f10c'; +@fa-var-circle-o-notch: '\f1ce'; +@fa-var-circle-thin: '\f1db'; +@fa-var-clipboard: '\f0ea'; +@fa-var-clock-o: '\f017'; +@fa-var-clone: '\f24d'; +@fa-var-close: '\f00d'; +@fa-var-cloud: '\f0c2'; +@fa-var-cloud-download: '\f0ed'; +@fa-var-cloud-upload: '\f0ee'; +@fa-var-cny: '\f157'; +@fa-var-code: '\f121'; +@fa-var-code-fork: '\f126'; +@fa-var-codepen: '\f1cb'; +@fa-var-codiepie: '\f284'; +@fa-var-coffee: '\f0f4'; +@fa-var-cog: '\f013'; +@fa-var-cogs: '\f085'; +@fa-var-columns: '\f0db'; +@fa-var-comment: '\f075'; +@fa-var-comment-o: '\f0e5'; +@fa-var-commenting: '\f27a'; +@fa-var-commenting-o: '\f27b'; +@fa-var-comments: '\f086'; +@fa-var-comments-o: '\f0e6'; +@fa-var-compass: '\f14e'; +@fa-var-compress: '\f066'; +@fa-var-connectdevelop: '\f20e'; +@fa-var-contao: '\f26d'; +@fa-var-copy: '\f0c5'; +@fa-var-copyright: '\f1f9'; +@fa-var-creative-commons: '\f25e'; +@fa-var-credit-card: '\f09d'; +@fa-var-credit-card-alt: '\f283'; +@fa-var-crop: '\f125'; +@fa-var-crosshairs: '\f05b'; +@fa-var-css3: '\f13c'; +@fa-var-cube: '\f1b2'; +@fa-var-cubes: '\f1b3'; +@fa-var-cut: '\f0c4'; +@fa-var-cutlery: '\f0f5'; +@fa-var-dashboard: '\f0e4'; +@fa-var-dashcube: '\f210'; +@fa-var-database: '\f1c0'; +@fa-var-deaf: '\f2a4'; +@fa-var-deafness: '\f2a4'; +@fa-var-dedent: '\f03b'; +@fa-var-delicious: '\f1a5'; +@fa-var-desktop: '\f108'; +@fa-var-deviantart: '\f1bd'; +@fa-var-diamond: '\f219'; +@fa-var-digg: '\f1a6'; +@fa-var-dollar: '\f155'; +@fa-var-dot-circle-o: '\f192'; +@fa-var-download: '\f019'; +@fa-var-dribbble: '\f17d'; +@fa-var-drivers-license: '\f2c2'; +@fa-var-drivers-license-o: '\f2c3'; +@fa-var-dropbox: '\f16b'; +@fa-var-drupal: '\f1a9'; +@fa-var-edge: '\f282'; +@fa-var-edit: '\f044'; +@fa-var-eercast: '\f2da'; +@fa-var-eject: '\f052'; +@fa-var-ellipsis-h: '\f141'; +@fa-var-ellipsis-v: '\f142'; +@fa-var-empire: '\f1d1'; +@fa-var-envelope: '\f0e0'; +@fa-var-envelope-o: '\f003'; +@fa-var-envelope-open: '\f2b6'; +@fa-var-envelope-open-o: '\f2b7'; +@fa-var-envelope-square: '\f199'; +@fa-var-envira: '\f299'; +@fa-var-eraser: '\f12d'; +@fa-var-etsy: '\f2d7'; +@fa-var-eur: '\f153'; +@fa-var-euro: '\f153'; +@fa-var-exchange: '\f0ec'; +@fa-var-exclamation: '\f12a'; +@fa-var-exclamation-circle: '\f06a'; +@fa-var-exclamation-triangle: '\f071'; +@fa-var-expand: '\f065'; +@fa-var-expeditedssl: '\f23e'; +@fa-var-external-link: '\f08e'; +@fa-var-external-link-square: '\f14c'; +@fa-var-eye: '\f06e'; +@fa-var-eye-slash: '\f070'; +@fa-var-eyedropper: '\f1fb'; +@fa-var-fa: '\f2b4'; +@fa-var-facebook: '\f09a'; +@fa-var-facebook-f: '\f09a'; +@fa-var-facebook-official: '\f230'; +@fa-var-facebook-square: '\f082'; +@fa-var-fast-backward: '\f049'; +@fa-var-fast-forward: '\f050'; +@fa-var-fax: '\f1ac'; +@fa-var-feed: '\f09e'; +@fa-var-female: '\f182'; +@fa-var-fighter-jet: '\f0fb'; +@fa-var-file: '\f15b'; +@fa-var-file-archive-o: '\f1c6'; +@fa-var-file-audio-o: '\f1c7'; +@fa-var-file-code-o: '\f1c9'; +@fa-var-file-excel-o: '\f1c3'; +@fa-var-file-image-o: '\f1c5'; +@fa-var-file-movie-o: '\f1c8'; +@fa-var-file-o: '\f016'; +@fa-var-file-pdf-o: '\f1c1'; +@fa-var-file-photo-o: '\f1c5'; +@fa-var-file-picture-o: '\f1c5'; +@fa-var-file-powerpoint-o: '\f1c4'; +@fa-var-file-sound-o: '\f1c7'; +@fa-var-file-text: '\f15c'; +@fa-var-file-text-o: '\f0f6'; +@fa-var-file-video-o: '\f1c8'; +@fa-var-file-word-o: '\f1c2'; +@fa-var-file-zip-o: '\f1c6'; +@fa-var-files-o: '\f0c5'; +@fa-var-film: '\f008'; +@fa-var-filter: '\f0b0'; +@fa-var-fire: '\f06d'; +@fa-var-fire-extinguisher: '\f134'; +@fa-var-firefox: '\f269'; +@fa-var-first-order: '\f2b0'; +@fa-var-flag: '\f024'; +@fa-var-flag-checkered: '\f11e'; +@fa-var-flag-o: '\f11d'; +@fa-var-flash: '\f0e7'; +@fa-var-flask: '\f0c3'; +@fa-var-flickr: '\f16e'; +@fa-var-floppy-o: '\f0c7'; +@fa-var-folder: '\f07b'; +@fa-var-folder-o: '\f114'; +@fa-var-folder-open: '\f07c'; +@fa-var-folder-open-o: '\f115'; +@fa-var-font: '\f031'; +@fa-var-font-awesome: '\f2b4'; +@fa-var-fonticons: '\f280'; +@fa-var-fort-awesome: '\f286'; +@fa-var-forumbee: '\f211'; +@fa-var-forward: '\f04e'; +@fa-var-foursquare: '\f180'; +@fa-var-free-code-camp: '\f2c5'; +@fa-var-frown-o: '\f119'; +@fa-var-futbol-o: '\f1e3'; +@fa-var-gamepad: '\f11b'; +@fa-var-gavel: '\f0e3'; +@fa-var-gbp: '\f154'; +@fa-var-ge: '\f1d1'; +@fa-var-gear: '\f013'; +@fa-var-gears: '\f085'; +@fa-var-genderless: '\f22d'; +@fa-var-get-pocket: '\f265'; +@fa-var-gg: '\f260'; +@fa-var-gg-circle: '\f261'; +@fa-var-gift: '\f06b'; +@fa-var-git: '\f1d3'; +@fa-var-git-square: '\f1d2'; +@fa-var-github: '\f09b'; +@fa-var-github-alt: '\f113'; +@fa-var-github-square: '\f092'; +@fa-var-gitlab: '\f296'; +@fa-var-gittip: '\f184'; +@fa-var-glass: '\f000'; +@fa-var-glide: '\f2a5'; +@fa-var-glide-g: '\f2a6'; +@fa-var-globe: '\f0ac'; +@fa-var-google: '\f1a0'; +@fa-var-google-plus: '\f0d5'; +@fa-var-google-plus-circle: '\f2b3'; +@fa-var-google-plus-official: '\f2b3'; +@fa-var-google-plus-square: '\f0d4'; +@fa-var-google-wallet: '\f1ee'; +@fa-var-graduation-cap: '\f19d'; +@fa-var-gratipay: '\f184'; +@fa-var-grav: '\f2d6'; +@fa-var-group: '\f0c0'; +@fa-var-h-square: '\f0fd'; +@fa-var-hacker-news: '\f1d4'; +@fa-var-hand-grab-o: '\f255'; +@fa-var-hand-lizard-o: '\f258'; +@fa-var-hand-o-down: '\f0a7'; +@fa-var-hand-o-left: '\f0a5'; +@fa-var-hand-o-right: '\f0a4'; +@fa-var-hand-o-up: '\f0a6'; +@fa-var-hand-paper-o: '\f256'; +@fa-var-hand-peace-o: '\f25b'; +@fa-var-hand-pointer-o: '\f25a'; +@fa-var-hand-rock-o: '\f255'; +@fa-var-hand-scissors-o: '\f257'; +@fa-var-hand-spock-o: '\f259'; +@fa-var-hand-stop-o: '\f256'; +@fa-var-handshake-o: '\f2b5'; +@fa-var-hard-of-hearing: '\f2a4'; +@fa-var-hashtag: '\f292'; +@fa-var-hdd-o: '\f0a0'; +@fa-var-header: '\f1dc'; +@fa-var-headphones: '\f025'; +@fa-var-heart: '\f004'; +@fa-var-heart-o: '\f08a'; +@fa-var-heartbeat: '\f21e'; +@fa-var-history: '\f1da'; +@fa-var-home: '\f015'; +@fa-var-hospital-o: '\f0f8'; +@fa-var-hotel: '\f236'; +@fa-var-hourglass: '\f254'; +@fa-var-hourglass-1: '\f251'; +@fa-var-hourglass-2: '\f252'; +@fa-var-hourglass-3: '\f253'; +@fa-var-hourglass-end: '\f253'; +@fa-var-hourglass-half: '\f252'; +@fa-var-hourglass-o: '\f250'; +@fa-var-hourglass-start: '\f251'; +@fa-var-houzz: '\f27c'; +@fa-var-html5: '\f13b'; +@fa-var-i-cursor: '\f246'; +@fa-var-id-badge: '\f2c1'; +@fa-var-id-card: '\f2c2'; +@fa-var-id-card-o: '\f2c3'; +@fa-var-ils: '\f20b'; +@fa-var-image: '\f03e'; +@fa-var-imdb: '\f2d8'; +@fa-var-inbox: '\f01c'; +@fa-var-indent: '\f03c'; +@fa-var-industry: '\f275'; +@fa-var-info: '\f129'; +@fa-var-info-circle: '\f05a'; +@fa-var-inr: '\f156'; +@fa-var-instagram: '\f16d'; +@fa-var-institution: '\f19c'; +@fa-var-internet-explorer: '\f26b'; +@fa-var-intersex: '\f224'; +@fa-var-ioxhost: '\f208'; +@fa-var-italic: '\f033'; +@fa-var-joomla: '\f1aa'; +@fa-var-jpy: '\f157'; +@fa-var-jsfiddle: '\f1cc'; +@fa-var-key: '\f084'; +@fa-var-keyboard-o: '\f11c'; +@fa-var-krw: '\f159'; +@fa-var-language: '\f1ab'; +@fa-var-laptop: '\f109'; +@fa-var-lastfm: '\f202'; +@fa-var-lastfm-square: '\f203'; +@fa-var-leaf: '\f06c'; +@fa-var-leanpub: '\f212'; +@fa-var-legal: '\f0e3'; +@fa-var-lemon-o: '\f094'; +@fa-var-level-down: '\f149'; +@fa-var-level-up: '\f148'; +@fa-var-life-bouy: '\f1cd'; +@fa-var-life-buoy: '\f1cd'; +@fa-var-life-ring: '\f1cd'; +@fa-var-life-saver: '\f1cd'; +@fa-var-lightbulb-o: '\f0eb'; +@fa-var-line-chart: '\f201'; +@fa-var-link: '\f0c1'; +@fa-var-linkedin: '\f0e1'; +@fa-var-linkedin-square: '\f08c'; +@fa-var-linode: '\f2b8'; +@fa-var-linux: '\f17c'; +@fa-var-list: '\f03a'; +@fa-var-list-alt: '\f022'; +@fa-var-list-ol: '\f0cb'; +@fa-var-list-ul: '\f0ca'; +@fa-var-location-arrow: '\f124'; +@fa-var-lock: '\f023'; +@fa-var-long-arrow-down: '\f175'; +@fa-var-long-arrow-left: '\f177'; +@fa-var-long-arrow-right: '\f178'; +@fa-var-long-arrow-up: '\f176'; +@fa-var-low-vision: '\f2a8'; +@fa-var-magic: '\f0d0'; +@fa-var-magnet: '\f076'; +@fa-var-mail-forward: '\f064'; +@fa-var-mail-reply: '\f112'; +@fa-var-mail-reply-all: '\f122'; +@fa-var-male: '\f183'; +@fa-var-map: '\f279'; +@fa-var-map-marker: '\f041'; +@fa-var-map-o: '\f278'; +@fa-var-map-pin: '\f276'; +@fa-var-map-signs: '\f277'; +@fa-var-mars: '\f222'; +@fa-var-mars-double: '\f227'; +@fa-var-mars-stroke: '\f229'; +@fa-var-mars-stroke-h: '\f22b'; +@fa-var-mars-stroke-v: '\f22a'; +@fa-var-maxcdn: '\f136'; +@fa-var-meanpath: '\f20c'; +@fa-var-medium: '\f23a'; +@fa-var-medkit: '\f0fa'; +@fa-var-meetup: '\f2e0'; +@fa-var-meh-o: '\f11a'; +@fa-var-mercury: '\f223'; +@fa-var-microchip: '\f2db'; +@fa-var-microphone: '\f130'; +@fa-var-microphone-slash: '\f131'; +@fa-var-minus: '\f068'; +@fa-var-minus-circle: '\f056'; +@fa-var-minus-square: '\f146'; +@fa-var-minus-square-o: '\f147'; +@fa-var-mixcloud: '\f289'; +@fa-var-mobile: '\f10b'; +@fa-var-mobile-phone: '\f10b'; +@fa-var-modx: '\f285'; +@fa-var-money: '\f0d6'; +@fa-var-moon-o: '\f186'; +@fa-var-mortar-board: '\f19d'; +@fa-var-motorcycle: '\f21c'; +@fa-var-mouse-pointer: '\f245'; +@fa-var-music: '\f001'; +@fa-var-navicon: '\f0c9'; +@fa-var-neuter: '\f22c'; +@fa-var-newspaper-o: '\f1ea'; +@fa-var-object-group: '\f247'; +@fa-var-object-ungroup: '\f248'; +@fa-var-odnoklassniki: '\f263'; +@fa-var-odnoklassniki-square: '\f264'; +@fa-var-opencart: '\f23d'; +@fa-var-openid: '\f19b'; +@fa-var-opera: '\f26a'; +@fa-var-optin-monster: '\f23c'; +@fa-var-outdent: '\f03b'; +@fa-var-pagelines: '\f18c'; +@fa-var-paint-brush: '\f1fc'; +@fa-var-paper-plane: '\f1d8'; +@fa-var-paper-plane-o: '\f1d9'; +@fa-var-paperclip: '\f0c6'; +@fa-var-paragraph: '\f1dd'; +@fa-var-paste: '\f0ea'; +@fa-var-pause: '\f04c'; +@fa-var-pause-circle: '\f28b'; +@fa-var-pause-circle-o: '\f28c'; +@fa-var-paw: '\f1b0'; +@fa-var-paypal: '\f1ed'; +@fa-var-pencil: '\f040'; +@fa-var-pencil-square: '\f14b'; +@fa-var-pencil-square-o: '\f044'; +@fa-var-percent: '\f295'; +@fa-var-phone: '\f095'; +@fa-var-phone-square: '\f098'; +@fa-var-photo: '\f03e'; +@fa-var-picture-o: '\f03e'; +@fa-var-pie-chart: '\f200'; +@fa-var-pied-piper: '\f2ae'; +@fa-var-pied-piper-alt: '\f1a8'; +@fa-var-pied-piper-pp: '\f1a7'; +@fa-var-pinterest: '\f0d2'; +@fa-var-pinterest-p: '\f231'; +@fa-var-pinterest-square: '\f0d3'; +@fa-var-plane: '\f072'; +@fa-var-play: '\f04b'; +@fa-var-play-circle: '\f144'; +@fa-var-play-circle-o: '\f01d'; +@fa-var-plug: '\f1e6'; +@fa-var-plus: '\f067'; +@fa-var-plus-circle: '\f055'; +@fa-var-plus-square: '\f0fe'; +@fa-var-plus-square-o: '\f196'; +@fa-var-podcast: '\f2ce'; +@fa-var-power-off: '\f011'; +@fa-var-print: '\f02f'; +@fa-var-product-hunt: '\f288'; +@fa-var-puzzle-piece: '\f12e'; +@fa-var-qq: '\f1d6'; +@fa-var-qrcode: '\f029'; +@fa-var-question: '\f128'; +@fa-var-question-circle: '\f059'; +@fa-var-question-circle-o: '\f29c'; +@fa-var-quora: '\f2c4'; +@fa-var-quote-left: '\f10d'; +@fa-var-quote-right: '\f10e'; +@fa-var-ra: '\f1d0'; +@fa-var-random: '\f074'; +@fa-var-ravelry: '\f2d9'; +@fa-var-rebel: '\f1d0'; +@fa-var-recycle: '\f1b8'; +@fa-var-reddit: '\f1a1'; +@fa-var-reddit-alien: '\f281'; +@fa-var-reddit-square: '\f1a2'; +@fa-var-refresh: '\f021'; +@fa-var-registered: '\f25d'; +@fa-var-remove: '\f00d'; +@fa-var-renren: '\f18b'; +@fa-var-reorder: '\f0c9'; +@fa-var-repeat: '\f01e'; +@fa-var-reply: '\f112'; +@fa-var-reply-all: '\f122'; +@fa-var-resistance: '\f1d0'; +@fa-var-retweet: '\f079'; +@fa-var-rmb: '\f157'; +@fa-var-road: '\f018'; +@fa-var-rocket: '\f135'; +@fa-var-rotate-left: '\f0e2'; +@fa-var-rotate-right: '\f01e'; +@fa-var-rouble: '\f158'; +@fa-var-rss: '\f09e'; +@fa-var-rss-square: '\f143'; +@fa-var-rub: '\f158'; +@fa-var-ruble: '\f158'; +@fa-var-rupee: '\f156'; +@fa-var-s15: '\f2cd'; +@fa-var-safari: '\f267'; +@fa-var-save: '\f0c7'; +@fa-var-scissors: '\f0c4'; +@fa-var-scribd: '\f28a'; +@fa-var-search: '\f002'; +@fa-var-search-minus: '\f010'; +@fa-var-search-plus: '\f00e'; +@fa-var-sellsy: '\f213'; +@fa-var-send: '\f1d8'; +@fa-var-send-o: '\f1d9'; +@fa-var-server: '\f233'; +@fa-var-share: '\f064'; +@fa-var-share-alt: '\f1e0'; +@fa-var-share-alt-square: '\f1e1'; +@fa-var-share-square: '\f14d'; +@fa-var-share-square-o: '\f045'; +@fa-var-shekel: '\f20b'; +@fa-var-sheqel: '\f20b'; +@fa-var-shield: '\f132'; +@fa-var-ship: '\f21a'; +@fa-var-shirtsinbulk: '\f214'; +@fa-var-shopping-bag: '\f290'; +@fa-var-shopping-basket: '\f291'; +@fa-var-shopping-cart: '\f07a'; +@fa-var-shower: '\f2cc'; +@fa-var-sign-in: '\f090'; +@fa-var-sign-language: '\f2a7'; +@fa-var-sign-out: '\f08b'; +@fa-var-signal: '\f012'; +@fa-var-signing: '\f2a7'; +@fa-var-simplybuilt: '\f215'; +@fa-var-sitemap: '\f0e8'; +@fa-var-skyatlas: '\f216'; +@fa-var-skype: '\f17e'; +@fa-var-slack: '\f198'; +@fa-var-sliders: '\f1de'; +@fa-var-slideshare: '\f1e7'; +@fa-var-smile-o: '\f118'; +@fa-var-snapchat: '\f2ab'; +@fa-var-snapchat-ghost: '\f2ac'; +@fa-var-snapchat-square: '\f2ad'; +@fa-var-snowflake-o: '\f2dc'; +@fa-var-soccer-ball-o: '\f1e3'; +@fa-var-sort: '\f0dc'; +@fa-var-sort-alpha-asc: '\f15d'; +@fa-var-sort-alpha-desc: '\f15e'; +@fa-var-sort-amount-asc: '\f160'; +@fa-var-sort-amount-desc: '\f161'; +@fa-var-sort-asc: '\f0de'; +@fa-var-sort-desc: '\f0dd'; +@fa-var-sort-down: '\f0dd'; +@fa-var-sort-numeric-asc: '\f162'; +@fa-var-sort-numeric-desc: '\f163'; +@fa-var-sort-up: '\f0de'; +@fa-var-soundcloud: '\f1be'; +@fa-var-space-shuttle: '\f197'; +@fa-var-spinner: '\f110'; +@fa-var-spoon: '\f1b1'; +@fa-var-spotify: '\f1bc'; +@fa-var-square: '\f0c8'; +@fa-var-square-o: '\f096'; +@fa-var-stack-exchange: '\f18d'; +@fa-var-stack-overflow: '\f16c'; +@fa-var-star: '\f005'; +@fa-var-star-half: '\f089'; +@fa-var-star-half-empty: '\f123'; +@fa-var-star-half-full: '\f123'; +@fa-var-star-half-o: '\f123'; +@fa-var-star-o: '\f006'; +@fa-var-steam: '\f1b6'; +@fa-var-steam-square: '\f1b7'; +@fa-var-step-backward: '\f048'; +@fa-var-step-forward: '\f051'; +@fa-var-stethoscope: '\f0f1'; +@fa-var-sticky-note: '\f249'; +@fa-var-sticky-note-o: '\f24a'; +@fa-var-stop: '\f04d'; +@fa-var-stop-circle: '\f28d'; +@fa-var-stop-circle-o: '\f28e'; +@fa-var-street-view: '\f21d'; +@fa-var-strikethrough: '\f0cc'; +@fa-var-stumbleupon: '\f1a4'; +@fa-var-stumbleupon-circle: '\f1a3'; +@fa-var-subscript: '\f12c'; +@fa-var-subway: '\f239'; +@fa-var-suitcase: '\f0f2'; +@fa-var-sun-o: '\f185'; +@fa-var-superpowers: '\f2dd'; +@fa-var-superscript: '\f12b'; +@fa-var-support: '\f1cd'; +@fa-var-table: '\f0ce'; +@fa-var-tablet: '\f10a'; +@fa-var-tachometer: '\f0e4'; +@fa-var-tag: '\f02b'; +@fa-var-tags: '\f02c'; +@fa-var-tasks: '\f0ae'; +@fa-var-taxi: '\f1ba'; +@fa-var-telegram: '\f2c6'; +@fa-var-television: '\f26c'; +@fa-var-tencent-weibo: '\f1d5'; +@fa-var-terminal: '\f120'; +@fa-var-text-height: '\f034'; +@fa-var-text-width: '\f035'; +@fa-var-th: '\f00a'; +@fa-var-th-large: '\f009'; +@fa-var-th-list: '\f00b'; +@fa-var-themeisle: '\f2b2'; +@fa-var-thermometer: '\f2c7'; +@fa-var-thermometer-0: '\f2cb'; +@fa-var-thermometer-1: '\f2ca'; +@fa-var-thermometer-2: '\f2c9'; +@fa-var-thermometer-3: '\f2c8'; +@fa-var-thermometer-4: '\f2c7'; +@fa-var-thermometer-empty: '\f2cb'; +@fa-var-thermometer-full: '\f2c7'; +@fa-var-thermometer-half: '\f2c9'; +@fa-var-thermometer-quarter: '\f2ca'; +@fa-var-thermometer-three-quarters: '\f2c8'; +@fa-var-thumb-tack: '\f08d'; +@fa-var-thumbs-down: '\f165'; +@fa-var-thumbs-o-down: '\f088'; +@fa-var-thumbs-o-up: '\f087'; +@fa-var-thumbs-up: '\f164'; +@fa-var-ticket: '\f145'; +@fa-var-times: '\f00d'; +@fa-var-times-circle: '\f057'; +@fa-var-times-circle-o: '\f05c'; +@fa-var-times-rectangle: '\f2d3'; +@fa-var-times-rectangle-o: '\f2d4'; +@fa-var-tint: '\f043'; +@fa-var-toggle-down: '\f150'; +@fa-var-toggle-left: '\f191'; +@fa-var-toggle-off: '\f204'; +@fa-var-toggle-on: '\f205'; +@fa-var-toggle-right: '\f152'; +@fa-var-toggle-up: '\f151'; +@fa-var-trademark: '\f25c'; +@fa-var-train: '\f238'; +@fa-var-transgender: '\f224'; +@fa-var-transgender-alt: '\f225'; +@fa-var-trash: '\f1f8'; +@fa-var-trash-o: '\f014'; +@fa-var-tree: '\f1bb'; +@fa-var-trello: '\f181'; +@fa-var-tripadvisor: '\f262'; +@fa-var-trophy: '\f091'; +@fa-var-truck: '\f0d1'; +@fa-var-try: '\f195'; +@fa-var-tty: '\f1e4'; +@fa-var-tumblr: '\f173'; +@fa-var-tumblr-square: '\f174'; +@fa-var-turkish-lira: '\f195'; +@fa-var-tv: '\f26c'; +@fa-var-twitch: '\f1e8'; +@fa-var-twitter: '\f099'; +@fa-var-twitter-square: '\f081'; +@fa-var-umbrella: '\f0e9'; +@fa-var-underline: '\f0cd'; +@fa-var-undo: '\f0e2'; +@fa-var-universal-access: '\f29a'; +@fa-var-university: '\f19c'; +@fa-var-unlink: '\f127'; +@fa-var-unlock: '\f09c'; +@fa-var-unlock-alt: '\f13e'; +@fa-var-unsorted: '\f0dc'; +@fa-var-upload: '\f093'; +@fa-var-usb: '\f287'; +@fa-var-usd: '\f155'; +@fa-var-user: '\f007'; +@fa-var-user-circle: '\f2bd'; +@fa-var-user-circle-o: '\f2be'; +@fa-var-user-md: '\f0f0'; +@fa-var-user-o: '\f2c0'; +@fa-var-user-plus: '\f234'; +@fa-var-user-secret: '\f21b'; +@fa-var-user-times: '\f235'; +@fa-var-users: '\f0c0'; +@fa-var-vcard: '\f2bb'; +@fa-var-vcard-o: '\f2bc'; +@fa-var-venus: '\f221'; +@fa-var-venus-double: '\f226'; +@fa-var-venus-mars: '\f228'; +@fa-var-viacoin: '\f237'; +@fa-var-viadeo: '\f2a9'; +@fa-var-viadeo-square: '\f2aa'; +@fa-var-video-camera: '\f03d'; +@fa-var-vimeo: '\f27d'; +@fa-var-vimeo-square: '\f194'; +@fa-var-vine: '\f1ca'; +@fa-var-vk: '\f189'; +@fa-var-volume-control-phone: '\f2a0'; +@fa-var-volume-down: '\f027'; +@fa-var-volume-off: '\f026'; +@fa-var-volume-up: '\f028'; +@fa-var-warning: '\f071'; +@fa-var-wechat: '\f1d7'; +@fa-var-weibo: '\f18a'; +@fa-var-weixin: '\f1d7'; +@fa-var-whatsapp: '\f232'; +@fa-var-wheelchair: '\f193'; +@fa-var-wheelchair-alt: '\f29b'; +@fa-var-wifi: '\f1eb'; +@fa-var-wikipedia-w: '\f266'; +@fa-var-window-close: '\f2d3'; +@fa-var-window-close-o: '\f2d4'; +@fa-var-window-maximize: '\f2d0'; +@fa-var-window-minimize: '\f2d1'; +@fa-var-window-restore: '\f2d2'; +@fa-var-windows: '\f17a'; +@fa-var-won: '\f159'; +@fa-var-wordpress: '\f19a'; +@fa-var-wpbeginner: '\f297'; +@fa-var-wpexplorer: '\f2de'; +@fa-var-wpforms: '\f298'; +@fa-var-wrench: '\f0ad'; +@fa-var-xing: '\f168'; +@fa-var-xing-square: '\f169'; +@fa-var-y-combinator: '\f23b'; +@fa-var-y-combinator-square: '\f1d4'; +@fa-var-yahoo: '\f19e'; +@fa-var-yc: '\f23b'; +@fa-var-yc-square: '\f1d4'; +@fa-var-yelp: '\f1e9'; +@fa-var-yen: '\f157'; +@fa-var-yoast: '\f2b1'; +@fa-var-youtube: '\f167'; +@fa-var-youtube-play: '\f16a'; +@fa-var-youtube-square: '\f166'; diff --git a/public/font-awesome-4.7.0/scss/_animated.scss b/public/font-awesome-4.7.0/scss/_animated.scss new file mode 100644 index 0000000..230df6b --- /dev/null +++ b/public/font-awesome-4.7.0/scss/_animated.scss @@ -0,0 +1,34 @@ +// Spinning Icons +// -------------------------- + +.#{$fa-css-prefix}-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.#{$fa-css-prefix}-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} diff --git a/public/font-awesome-4.7.0/scss/_bordered-pulled.scss b/public/font-awesome-4.7.0/scss/_bordered-pulled.scss new file mode 100644 index 0000000..c9b6b38 --- /dev/null +++ b/public/font-awesome-4.7.0/scss/_bordered-pulled.scss @@ -0,0 +1,41 @@ +// Bordered & Pulled +// ------------------------- + +.#{$fa-css-prefix}-border { + padding: 0.2em 0.25em 0.15em; + border: solid 0.08em $fa-border-color; + border-radius: 0.1em; +} + +.#{$fa-css-prefix}-pull-left { + float: left; +} +.#{$fa-css-prefix}-pull-right { + float: right; +} + +.#{$fa-css-prefix} { + &.#{$fa-css-prefix}-pull-left { + margin-right: 0.3em; + } + &.#{$fa-css-prefix}-pull-right { + margin-left: 0.3em; + } +} + +/* Deprecated as of 4.4.0 */ +.pull-right { + float: right; +} +.pull-left { + float: left; +} + +.#{$fa-css-prefix} { + &.pull-left { + margin-right: 0.3em; + } + &.pull-right { + margin-left: 0.3em; + } +} diff --git a/public/font-awesome-4.7.0/scss/_core.scss b/public/font-awesome-4.7.0/scss/_core.scss new file mode 100644 index 0000000..a5411f1 --- /dev/null +++ b/public/font-awesome-4.7.0/scss/_core.scss @@ -0,0 +1,11 @@ +// Base Class Definition +// ------------------------- + +.#{$fa-css-prefix} { + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} diff --git a/public/font-awesome-4.7.0/scss/_fixed-width.scss b/public/font-awesome-4.7.0/scss/_fixed-width.scss new file mode 100644 index 0000000..b221c98 --- /dev/null +++ b/public/font-awesome-4.7.0/scss/_fixed-width.scss @@ -0,0 +1,6 @@ +// Fixed Width Icons +// ------------------------- +.#{$fa-css-prefix}-fw { + width: (18em / 14); + text-align: center; +} diff --git a/public/font-awesome-4.7.0/scss/_icons.scss b/public/font-awesome-4.7.0/scss/_icons.scss new file mode 100644 index 0000000..6ee6171 --- /dev/null +++ b/public/font-awesome-4.7.0/scss/_icons.scss @@ -0,0 +1,2139 @@ +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ + +.#{$fa-css-prefix}-glass:before { + content: $fa-var-glass; +} +.#{$fa-css-prefix}-music:before { + content: $fa-var-music; +} +.#{$fa-css-prefix}-search:before { + content: $fa-var-search; +} +.#{$fa-css-prefix}-envelope-o:before { + content: $fa-var-envelope-o; +} +.#{$fa-css-prefix}-heart:before { + content: $fa-var-heart; +} +.#{$fa-css-prefix}-star:before { + content: $fa-var-star; +} +.#{$fa-css-prefix}-star-o:before { + content: $fa-var-star-o; +} +.#{$fa-css-prefix}-user:before { + content: $fa-var-user; +} +.#{$fa-css-prefix}-film:before { + content: $fa-var-film; +} +.#{$fa-css-prefix}-th-large:before { + content: $fa-var-th-large; +} +.#{$fa-css-prefix}-th:before { + content: $fa-var-th; +} +.#{$fa-css-prefix}-th-list:before { + content: $fa-var-th-list; +} +.#{$fa-css-prefix}-check:before { + content: $fa-var-check; +} +.#{$fa-css-prefix}-remove:before, +.#{$fa-css-prefix}-close:before, +.#{$fa-css-prefix}-times:before { + content: $fa-var-times; +} +.#{$fa-css-prefix}-search-plus:before { + content: $fa-var-search-plus; +} +.#{$fa-css-prefix}-search-minus:before { + content: $fa-var-search-minus; +} +.#{$fa-css-prefix}-power-off:before { + content: $fa-var-power-off; +} +.#{$fa-css-prefix}-signal:before { + content: $fa-var-signal; +} +.#{$fa-css-prefix}-gear:before, +.#{$fa-css-prefix}-cog:before { + content: $fa-var-cog; +} +.#{$fa-css-prefix}-trash-o:before { + content: $fa-var-trash-o; +} +.#{$fa-css-prefix}-home:before { + content: $fa-var-home; +} +.#{$fa-css-prefix}-file-o:before { + content: $fa-var-file-o; +} +.#{$fa-css-prefix}-clock-o:before { + content: $fa-var-clock-o; +} +.#{$fa-css-prefix}-road:before { + content: $fa-var-road; +} +.#{$fa-css-prefix}-download:before { + content: $fa-var-download; +} +.#{$fa-css-prefix}-arrow-circle-o-down:before { + content: $fa-var-arrow-circle-o-down; +} +.#{$fa-css-prefix}-arrow-circle-o-up:before { + content: $fa-var-arrow-circle-o-up; +} +.#{$fa-css-prefix}-inbox:before { + content: $fa-var-inbox; +} +.#{$fa-css-prefix}-play-circle-o:before { + content: $fa-var-play-circle-o; +} +.#{$fa-css-prefix}-rotate-right:before, +.#{$fa-css-prefix}-repeat:before { + content: $fa-var-repeat; +} +.#{$fa-css-prefix}-refresh:before { + content: $fa-var-refresh; +} +.#{$fa-css-prefix}-list-alt:before { + content: $fa-var-list-alt; +} +.#{$fa-css-prefix}-lock:before { + content: $fa-var-lock; +} +.#{$fa-css-prefix}-flag:before { + content: $fa-var-flag; +} +.#{$fa-css-prefix}-headphones:before { + content: $fa-var-headphones; +} +.#{$fa-css-prefix}-volume-off:before { + content: $fa-var-volume-off; +} +.#{$fa-css-prefix}-volume-down:before { + content: $fa-var-volume-down; +} +.#{$fa-css-prefix}-volume-up:before { + content: $fa-var-volume-up; +} +.#{$fa-css-prefix}-qrcode:before { + content: $fa-var-qrcode; +} +.#{$fa-css-prefix}-barcode:before { + content: $fa-var-barcode; +} +.#{$fa-css-prefix}-tag:before { + content: $fa-var-tag; +} +.#{$fa-css-prefix}-tags:before { + content: $fa-var-tags; +} +.#{$fa-css-prefix}-book:before { + content: $fa-var-book; +} +.#{$fa-css-prefix}-bookmark:before { + content: $fa-var-bookmark; +} +.#{$fa-css-prefix}-print:before { + content: $fa-var-print; +} +.#{$fa-css-prefix}-camera:before { + content: $fa-var-camera; +} +.#{$fa-css-prefix}-font:before { + content: $fa-var-font; +} +.#{$fa-css-prefix}-bold:before { + content: $fa-var-bold; +} +.#{$fa-css-prefix}-italic:before { + content: $fa-var-italic; +} +.#{$fa-css-prefix}-text-height:before { + content: $fa-var-text-height; +} +.#{$fa-css-prefix}-text-width:before { + content: $fa-var-text-width; +} +.#{$fa-css-prefix}-align-left:before { + content: $fa-var-align-left; +} +.#{$fa-css-prefix}-align-center:before { + content: $fa-var-align-center; +} +.#{$fa-css-prefix}-align-right:before { + content: $fa-var-align-right; +} +.#{$fa-css-prefix}-align-justify:before { + content: $fa-var-align-justify; +} +.#{$fa-css-prefix}-list:before { + content: $fa-var-list; +} +.#{$fa-css-prefix}-dedent:before, +.#{$fa-css-prefix}-outdent:before { + content: $fa-var-outdent; +} +.#{$fa-css-prefix}-indent:before { + content: $fa-var-indent; +} +.#{$fa-css-prefix}-video-camera:before { + content: $fa-var-video-camera; +} +.#{$fa-css-prefix}-photo:before, +.#{$fa-css-prefix}-image:before, +.#{$fa-css-prefix}-picture-o:before { + content: $fa-var-picture-o; +} +.#{$fa-css-prefix}-pencil:before { + content: $fa-var-pencil; +} +.#{$fa-css-prefix}-map-marker:before { + content: $fa-var-map-marker; +} +.#{$fa-css-prefix}-adjust:before { + content: $fa-var-adjust; +} +.#{$fa-css-prefix}-tint:before { + content: $fa-var-tint; +} +.#{$fa-css-prefix}-edit:before, +.#{$fa-css-prefix}-pencil-square-o:before { + content: $fa-var-pencil-square-o; +} +.#{$fa-css-prefix}-share-square-o:before { + content: $fa-var-share-square-o; +} +.#{$fa-css-prefix}-check-square-o:before { + content: $fa-var-check-square-o; +} +.#{$fa-css-prefix}-arrows:before { + content: $fa-var-arrows; +} +.#{$fa-css-prefix}-step-backward:before { + content: $fa-var-step-backward; +} +.#{$fa-css-prefix}-fast-backward:before { + content: $fa-var-fast-backward; +} +.#{$fa-css-prefix}-backward:before { + content: $fa-var-backward; +} +.#{$fa-css-prefix}-play:before { + content: $fa-var-play; +} +.#{$fa-css-prefix}-pause:before { + content: $fa-var-pause; +} +.#{$fa-css-prefix}-stop:before { + content: $fa-var-stop; +} +.#{$fa-css-prefix}-forward:before { + content: $fa-var-forward; +} +.#{$fa-css-prefix}-fast-forward:before { + content: $fa-var-fast-forward; +} +.#{$fa-css-prefix}-step-forward:before { + content: $fa-var-step-forward; +} +.#{$fa-css-prefix}-eject:before { + content: $fa-var-eject; +} +.#{$fa-css-prefix}-chevron-left:before { + content: $fa-var-chevron-left; +} +.#{$fa-css-prefix}-chevron-right:before { + content: $fa-var-chevron-right; +} +.#{$fa-css-prefix}-plus-circle:before { + content: $fa-var-plus-circle; +} +.#{$fa-css-prefix}-minus-circle:before { + content: $fa-var-minus-circle; +} +.#{$fa-css-prefix}-times-circle:before { + content: $fa-var-times-circle; +} +.#{$fa-css-prefix}-check-circle:before { + content: $fa-var-check-circle; +} +.#{$fa-css-prefix}-question-circle:before { + content: $fa-var-question-circle; +} +.#{$fa-css-prefix}-info-circle:before { + content: $fa-var-info-circle; +} +.#{$fa-css-prefix}-crosshairs:before { + content: $fa-var-crosshairs; +} +.#{$fa-css-prefix}-times-circle-o:before { + content: $fa-var-times-circle-o; +} +.#{$fa-css-prefix}-check-circle-o:before { + content: $fa-var-check-circle-o; +} +.#{$fa-css-prefix}-ban:before { + content: $fa-var-ban; +} +.#{$fa-css-prefix}-arrow-left:before { + content: $fa-var-arrow-left; +} +.#{$fa-css-prefix}-arrow-right:before { + content: $fa-var-arrow-right; +} +.#{$fa-css-prefix}-arrow-up:before { + content: $fa-var-arrow-up; +} +.#{$fa-css-prefix}-arrow-down:before { + content: $fa-var-arrow-down; +} +.#{$fa-css-prefix}-mail-forward:before, +.#{$fa-css-prefix}-share:before { + content: $fa-var-share; +} +.#{$fa-css-prefix}-expand:before { + content: $fa-var-expand; +} +.#{$fa-css-prefix}-compress:before { + content: $fa-var-compress; +} +.#{$fa-css-prefix}-plus:before { + content: $fa-var-plus; +} +.#{$fa-css-prefix}-minus:before { + content: $fa-var-minus; +} +.#{$fa-css-prefix}-asterisk:before { + content: $fa-var-asterisk; +} +.#{$fa-css-prefix}-exclamation-circle:before { + content: $fa-var-exclamation-circle; +} +.#{$fa-css-prefix}-gift:before { + content: $fa-var-gift; +} +.#{$fa-css-prefix}-leaf:before { + content: $fa-var-leaf; +} +.#{$fa-css-prefix}-fire:before { + content: $fa-var-fire; +} +.#{$fa-css-prefix}-eye:before { + content: $fa-var-eye; +} +.#{$fa-css-prefix}-eye-slash:before { + content: $fa-var-eye-slash; +} +.#{$fa-css-prefix}-warning:before, +.#{$fa-css-prefix}-exclamation-triangle:before { + content: $fa-var-exclamation-triangle; +} +.#{$fa-css-prefix}-plane:before { + content: $fa-var-plane; +} +.#{$fa-css-prefix}-calendar:before { + content: $fa-var-calendar; +} +.#{$fa-css-prefix}-random:before { + content: $fa-var-random; +} +.#{$fa-css-prefix}-comment:before { + content: $fa-var-comment; +} +.#{$fa-css-prefix}-magnet:before { + content: $fa-var-magnet; +} +.#{$fa-css-prefix}-chevron-up:before { + content: $fa-var-chevron-up; +} +.#{$fa-css-prefix}-chevron-down:before { + content: $fa-var-chevron-down; +} +.#{$fa-css-prefix}-retweet:before { + content: $fa-var-retweet; +} +.#{$fa-css-prefix}-shopping-cart:before { + content: $fa-var-shopping-cart; +} +.#{$fa-css-prefix}-folder:before { + content: $fa-var-folder; +} +.#{$fa-css-prefix}-folder-open:before { + content: $fa-var-folder-open; +} +.#{$fa-css-prefix}-arrows-v:before { + content: $fa-var-arrows-v; +} +.#{$fa-css-prefix}-arrows-h:before { + content: $fa-var-arrows-h; +} +.#{$fa-css-prefix}-bar-chart-o:before, +.#{$fa-css-prefix}-bar-chart:before { + content: $fa-var-bar-chart; +} +.#{$fa-css-prefix}-twitter-square:before { + content: $fa-var-twitter-square; +} +.#{$fa-css-prefix}-facebook-square:before { + content: $fa-var-facebook-square; +} +.#{$fa-css-prefix}-camera-retro:before { + content: $fa-var-camera-retro; +} +.#{$fa-css-prefix}-key:before { + content: $fa-var-key; +} +.#{$fa-css-prefix}-gears:before, +.#{$fa-css-prefix}-cogs:before { + content: $fa-var-cogs; +} +.#{$fa-css-prefix}-comments:before { + content: $fa-var-comments; +} +.#{$fa-css-prefix}-thumbs-o-up:before { + content: $fa-var-thumbs-o-up; +} +.#{$fa-css-prefix}-thumbs-o-down:before { + content: $fa-var-thumbs-o-down; +} +.#{$fa-css-prefix}-star-half:before { + content: $fa-var-star-half; +} +.#{$fa-css-prefix}-heart-o:before { + content: $fa-var-heart-o; +} +.#{$fa-css-prefix}-sign-out:before { + content: $fa-var-sign-out; +} +.#{$fa-css-prefix}-linkedin-square:before { + content: $fa-var-linkedin-square; +} +.#{$fa-css-prefix}-thumb-tack:before { + content: $fa-var-thumb-tack; +} +.#{$fa-css-prefix}-external-link:before { + content: $fa-var-external-link; +} +.#{$fa-css-prefix}-sign-in:before { + content: $fa-var-sign-in; +} +.#{$fa-css-prefix}-trophy:before { + content: $fa-var-trophy; +} +.#{$fa-css-prefix}-github-square:before { + content: $fa-var-github-square; +} +.#{$fa-css-prefix}-upload:before { + content: $fa-var-upload; +} +.#{$fa-css-prefix}-lemon-o:before { + content: $fa-var-lemon-o; +} +.#{$fa-css-prefix}-phone:before { + content: $fa-var-phone; +} +.#{$fa-css-prefix}-square-o:before { + content: $fa-var-square-o; +} +.#{$fa-css-prefix}-bookmark-o:before { + content: $fa-var-bookmark-o; +} +.#{$fa-css-prefix}-phone-square:before { + content: $fa-var-phone-square; +} +.#{$fa-css-prefix}-twitter:before { + content: $fa-var-twitter; +} +.#{$fa-css-prefix}-facebook-f:before, +.#{$fa-css-prefix}-facebook:before { + content: $fa-var-facebook; +} +.#{$fa-css-prefix}-github:before { + content: $fa-var-github; +} +.#{$fa-css-prefix}-unlock:before { + content: $fa-var-unlock; +} +.#{$fa-css-prefix}-credit-card:before { + content: $fa-var-credit-card; +} +.#{$fa-css-prefix}-feed:before, +.#{$fa-css-prefix}-rss:before { + content: $fa-var-rss; +} +.#{$fa-css-prefix}-hdd-o:before { + content: $fa-var-hdd-o; +} +.#{$fa-css-prefix}-bullhorn:before { + content: $fa-var-bullhorn; +} +.#{$fa-css-prefix}-bell:before { + content: $fa-var-bell; +} +.#{$fa-css-prefix}-certificate:before { + content: $fa-var-certificate; +} +.#{$fa-css-prefix}-hand-o-right:before { + content: $fa-var-hand-o-right; +} +.#{$fa-css-prefix}-hand-o-left:before { + content: $fa-var-hand-o-left; +} +.#{$fa-css-prefix}-hand-o-up:before { + content: $fa-var-hand-o-up; +} +.#{$fa-css-prefix}-hand-o-down:before { + content: $fa-var-hand-o-down; +} +.#{$fa-css-prefix}-arrow-circle-left:before { + content: $fa-var-arrow-circle-left; +} +.#{$fa-css-prefix}-arrow-circle-right:before { + content: $fa-var-arrow-circle-right; +} +.#{$fa-css-prefix}-arrow-circle-up:before { + content: $fa-var-arrow-circle-up; +} +.#{$fa-css-prefix}-arrow-circle-down:before { + content: $fa-var-arrow-circle-down; +} +.#{$fa-css-prefix}-globe:before { + content: $fa-var-globe; +} +.#{$fa-css-prefix}-wrench:before { + content: $fa-var-wrench; +} +.#{$fa-css-prefix}-tasks:before { + content: $fa-var-tasks; +} +.#{$fa-css-prefix}-filter:before { + content: $fa-var-filter; +} +.#{$fa-css-prefix}-briefcase:before { + content: $fa-var-briefcase; +} +.#{$fa-css-prefix}-arrows-alt:before { + content: $fa-var-arrows-alt; +} +.#{$fa-css-prefix}-group:before, +.#{$fa-css-prefix}-users:before { + content: $fa-var-users; +} +.#{$fa-css-prefix}-chain:before, +.#{$fa-css-prefix}-link:before { + content: $fa-var-link; +} +.#{$fa-css-prefix}-cloud:before { + content: $fa-var-cloud; +} +.#{$fa-css-prefix}-flask:before { + content: $fa-var-flask; +} +.#{$fa-css-prefix}-cut:before, +.#{$fa-css-prefix}-scissors:before { + content: $fa-var-scissors; +} +.#{$fa-css-prefix}-copy:before, +.#{$fa-css-prefix}-files-o:before { + content: $fa-var-files-o; +} +.#{$fa-css-prefix}-paperclip:before { + content: $fa-var-paperclip; +} +.#{$fa-css-prefix}-save:before, +.#{$fa-css-prefix}-floppy-o:before { + content: $fa-var-floppy-o; +} +.#{$fa-css-prefix}-square:before { + content: $fa-var-square; +} +.#{$fa-css-prefix}-navicon:before, +.#{$fa-css-prefix}-reorder:before, +.#{$fa-css-prefix}-bars:before { + content: $fa-var-bars; +} +.#{$fa-css-prefix}-list-ul:before { + content: $fa-var-list-ul; +} +.#{$fa-css-prefix}-list-ol:before { + content: $fa-var-list-ol; +} +.#{$fa-css-prefix}-strikethrough:before { + content: $fa-var-strikethrough; +} +.#{$fa-css-prefix}-underline:before { + content: $fa-var-underline; +} +.#{$fa-css-prefix}-table:before { + content: $fa-var-table; +} +.#{$fa-css-prefix}-magic:before { + content: $fa-var-magic; +} +.#{$fa-css-prefix}-truck:before { + content: $fa-var-truck; +} +.#{$fa-css-prefix}-pinterest:before { + content: $fa-var-pinterest; +} +.#{$fa-css-prefix}-pinterest-square:before { + content: $fa-var-pinterest-square; +} +.#{$fa-css-prefix}-google-plus-square:before { + content: $fa-var-google-plus-square; +} +.#{$fa-css-prefix}-google-plus:before { + content: $fa-var-google-plus; +} +.#{$fa-css-prefix}-money:before { + content: $fa-var-money; +} +.#{$fa-css-prefix}-caret-down:before { + content: $fa-var-caret-down; +} +.#{$fa-css-prefix}-caret-up:before { + content: $fa-var-caret-up; +} +.#{$fa-css-prefix}-caret-left:before { + content: $fa-var-caret-left; +} +.#{$fa-css-prefix}-caret-right:before { + content: $fa-var-caret-right; +} +.#{$fa-css-prefix}-columns:before { + content: $fa-var-columns; +} +.#{$fa-css-prefix}-unsorted:before, +.#{$fa-css-prefix}-sort:before { + content: $fa-var-sort; +} +.#{$fa-css-prefix}-sort-down:before, +.#{$fa-css-prefix}-sort-desc:before { + content: $fa-var-sort-desc; +} +.#{$fa-css-prefix}-sort-up:before, +.#{$fa-css-prefix}-sort-asc:before { + content: $fa-var-sort-asc; +} +.#{$fa-css-prefix}-envelope:before { + content: $fa-var-envelope; +} +.#{$fa-css-prefix}-linkedin:before { + content: $fa-var-linkedin; +} +.#{$fa-css-prefix}-rotate-left:before, +.#{$fa-css-prefix}-undo:before { + content: $fa-var-undo; +} +.#{$fa-css-prefix}-legal:before, +.#{$fa-css-prefix}-gavel:before { + content: $fa-var-gavel; +} +.#{$fa-css-prefix}-dashboard:before, +.#{$fa-css-prefix}-tachometer:before { + content: $fa-var-tachometer; +} +.#{$fa-css-prefix}-comment-o:before { + content: $fa-var-comment-o; +} +.#{$fa-css-prefix}-comments-o:before { + content: $fa-var-comments-o; +} +.#{$fa-css-prefix}-flash:before, +.#{$fa-css-prefix}-bolt:before { + content: $fa-var-bolt; +} +.#{$fa-css-prefix}-sitemap:before { + content: $fa-var-sitemap; +} +.#{$fa-css-prefix}-umbrella:before { + content: $fa-var-umbrella; +} +.#{$fa-css-prefix}-paste:before, +.#{$fa-css-prefix}-clipboard:before { + content: $fa-var-clipboard; +} +.#{$fa-css-prefix}-lightbulb-o:before { + content: $fa-var-lightbulb-o; +} +.#{$fa-css-prefix}-exchange:before { + content: $fa-var-exchange; +} +.#{$fa-css-prefix}-cloud-download:before { + content: $fa-var-cloud-download; +} +.#{$fa-css-prefix}-cloud-upload:before { + content: $fa-var-cloud-upload; +} +.#{$fa-css-prefix}-user-md:before { + content: $fa-var-user-md; +} +.#{$fa-css-prefix}-stethoscope:before { + content: $fa-var-stethoscope; +} +.#{$fa-css-prefix}-suitcase:before { + content: $fa-var-suitcase; +} +.#{$fa-css-prefix}-bell-o:before { + content: $fa-var-bell-o; +} +.#{$fa-css-prefix}-coffee:before { + content: $fa-var-coffee; +} +.#{$fa-css-prefix}-cutlery:before { + content: $fa-var-cutlery; +} +.#{$fa-css-prefix}-file-text-o:before { + content: $fa-var-file-text-o; +} +.#{$fa-css-prefix}-building-o:before { + content: $fa-var-building-o; +} +.#{$fa-css-prefix}-hospital-o:before { + content: $fa-var-hospital-o; +} +.#{$fa-css-prefix}-ambulance:before { + content: $fa-var-ambulance; +} +.#{$fa-css-prefix}-medkit:before { + content: $fa-var-medkit; +} +.#{$fa-css-prefix}-fighter-jet:before { + content: $fa-var-fighter-jet; +} +.#{$fa-css-prefix}-beer:before { + content: $fa-var-beer; +} +.#{$fa-css-prefix}-h-square:before { + content: $fa-var-h-square; +} +.#{$fa-css-prefix}-plus-square:before { + content: $fa-var-plus-square; +} +.#{$fa-css-prefix}-angle-double-left:before { + content: $fa-var-angle-double-left; +} +.#{$fa-css-prefix}-angle-double-right:before { + content: $fa-var-angle-double-right; +} +.#{$fa-css-prefix}-angle-double-up:before { + content: $fa-var-angle-double-up; +} +.#{$fa-css-prefix}-angle-double-down:before { + content: $fa-var-angle-double-down; +} +.#{$fa-css-prefix}-angle-left:before { + content: $fa-var-angle-left; +} +.#{$fa-css-prefix}-angle-right:before { + content: $fa-var-angle-right; +} +.#{$fa-css-prefix}-angle-up:before { + content: $fa-var-angle-up; +} +.#{$fa-css-prefix}-angle-down:before { + content: $fa-var-angle-down; +} +.#{$fa-css-prefix}-desktop:before { + content: $fa-var-desktop; +} +.#{$fa-css-prefix}-laptop:before { + content: $fa-var-laptop; +} +.#{$fa-css-prefix}-tablet:before { + content: $fa-var-tablet; +} +.#{$fa-css-prefix}-mobile-phone:before, +.#{$fa-css-prefix}-mobile:before { + content: $fa-var-mobile; +} +.#{$fa-css-prefix}-circle-o:before { + content: $fa-var-circle-o; +} +.#{$fa-css-prefix}-quote-left:before { + content: $fa-var-quote-left; +} +.#{$fa-css-prefix}-quote-right:before { + content: $fa-var-quote-right; +} +.#{$fa-css-prefix}-spinner:before { + content: $fa-var-spinner; +} +.#{$fa-css-prefix}-circle:before { + content: $fa-var-circle; +} +.#{$fa-css-prefix}-mail-reply:before, +.#{$fa-css-prefix}-reply:before { + content: $fa-var-reply; +} +.#{$fa-css-prefix}-github-alt:before { + content: $fa-var-github-alt; +} +.#{$fa-css-prefix}-folder-o:before { + content: $fa-var-folder-o; +} +.#{$fa-css-prefix}-folder-open-o:before { + content: $fa-var-folder-open-o; +} +.#{$fa-css-prefix}-smile-o:before { + content: $fa-var-smile-o; +} +.#{$fa-css-prefix}-frown-o:before { + content: $fa-var-frown-o; +} +.#{$fa-css-prefix}-meh-o:before { + content: $fa-var-meh-o; +} +.#{$fa-css-prefix}-gamepad:before { + content: $fa-var-gamepad; +} +.#{$fa-css-prefix}-keyboard-o:before { + content: $fa-var-keyboard-o; +} +.#{$fa-css-prefix}-flag-o:before { + content: $fa-var-flag-o; +} +.#{$fa-css-prefix}-flag-checkered:before { + content: $fa-var-flag-checkered; +} +.#{$fa-css-prefix}-terminal:before { + content: $fa-var-terminal; +} +.#{$fa-css-prefix}-code:before { + content: $fa-var-code; +} +.#{$fa-css-prefix}-mail-reply-all:before, +.#{$fa-css-prefix}-reply-all:before { + content: $fa-var-reply-all; +} +.#{$fa-css-prefix}-star-half-empty:before, +.#{$fa-css-prefix}-star-half-full:before, +.#{$fa-css-prefix}-star-half-o:before { + content: $fa-var-star-half-o; +} +.#{$fa-css-prefix}-location-arrow:before { + content: $fa-var-location-arrow; +} +.#{$fa-css-prefix}-crop:before { + content: $fa-var-crop; +} +.#{$fa-css-prefix}-code-fork:before { + content: $fa-var-code-fork; +} +.#{$fa-css-prefix}-unlink:before, +.#{$fa-css-prefix}-chain-broken:before { + content: $fa-var-chain-broken; +} +.#{$fa-css-prefix}-question:before { + content: $fa-var-question; +} +.#{$fa-css-prefix}-info:before { + content: $fa-var-info; +} +.#{$fa-css-prefix}-exclamation:before { + content: $fa-var-exclamation; +} +.#{$fa-css-prefix}-superscript:before { + content: $fa-var-superscript; +} +.#{$fa-css-prefix}-subscript:before { + content: $fa-var-subscript; +} +.#{$fa-css-prefix}-eraser:before { + content: $fa-var-eraser; +} +.#{$fa-css-prefix}-puzzle-piece:before { + content: $fa-var-puzzle-piece; +} +.#{$fa-css-prefix}-microphone:before { + content: $fa-var-microphone; +} +.#{$fa-css-prefix}-microphone-slash:before { + content: $fa-var-microphone-slash; +} +.#{$fa-css-prefix}-shield:before { + content: $fa-var-shield; +} +.#{$fa-css-prefix}-calendar-o:before { + content: $fa-var-calendar-o; +} +.#{$fa-css-prefix}-fire-extinguisher:before { + content: $fa-var-fire-extinguisher; +} +.#{$fa-css-prefix}-rocket:before { + content: $fa-var-rocket; +} +.#{$fa-css-prefix}-maxcdn:before { + content: $fa-var-maxcdn; +} +.#{$fa-css-prefix}-chevron-circle-left:before { + content: $fa-var-chevron-circle-left; +} +.#{$fa-css-prefix}-chevron-circle-right:before { + content: $fa-var-chevron-circle-right; +} +.#{$fa-css-prefix}-chevron-circle-up:before { + content: $fa-var-chevron-circle-up; +} +.#{$fa-css-prefix}-chevron-circle-down:before { + content: $fa-var-chevron-circle-down; +} +.#{$fa-css-prefix}-html5:before { + content: $fa-var-html5; +} +.#{$fa-css-prefix}-css3:before { + content: $fa-var-css3; +} +.#{$fa-css-prefix}-anchor:before { + content: $fa-var-anchor; +} +.#{$fa-css-prefix}-unlock-alt:before { + content: $fa-var-unlock-alt; +} +.#{$fa-css-prefix}-bullseye:before { + content: $fa-var-bullseye; +} +.#{$fa-css-prefix}-ellipsis-h:before { + content: $fa-var-ellipsis-h; +} +.#{$fa-css-prefix}-ellipsis-v:before { + content: $fa-var-ellipsis-v; +} +.#{$fa-css-prefix}-rss-square:before { + content: $fa-var-rss-square; +} +.#{$fa-css-prefix}-play-circle:before { + content: $fa-var-play-circle; +} +.#{$fa-css-prefix}-ticket:before { + content: $fa-var-ticket; +} +.#{$fa-css-prefix}-minus-square:before { + content: $fa-var-minus-square; +} +.#{$fa-css-prefix}-minus-square-o:before { + content: $fa-var-minus-square-o; +} +.#{$fa-css-prefix}-level-up:before { + content: $fa-var-level-up; +} +.#{$fa-css-prefix}-level-down:before { + content: $fa-var-level-down; +} +.#{$fa-css-prefix}-check-square:before { + content: $fa-var-check-square; +} +.#{$fa-css-prefix}-pencil-square:before { + content: $fa-var-pencil-square; +} +.#{$fa-css-prefix}-external-link-square:before { + content: $fa-var-external-link-square; +} +.#{$fa-css-prefix}-share-square:before { + content: $fa-var-share-square; +} +.#{$fa-css-prefix}-compass:before { + content: $fa-var-compass; +} +.#{$fa-css-prefix}-toggle-down:before, +.#{$fa-css-prefix}-caret-square-o-down:before { + content: $fa-var-caret-square-o-down; +} +.#{$fa-css-prefix}-toggle-up:before, +.#{$fa-css-prefix}-caret-square-o-up:before { + content: $fa-var-caret-square-o-up; +} +.#{$fa-css-prefix}-toggle-right:before, +.#{$fa-css-prefix}-caret-square-o-right:before { + content: $fa-var-caret-square-o-right; +} +.#{$fa-css-prefix}-euro:before, +.#{$fa-css-prefix}-eur:before { + content: $fa-var-eur; +} +.#{$fa-css-prefix}-gbp:before { + content: $fa-var-gbp; +} +.#{$fa-css-prefix}-dollar:before, +.#{$fa-css-prefix}-usd:before { + content: $fa-var-usd; +} +.#{$fa-css-prefix}-rupee:before, +.#{$fa-css-prefix}-inr:before { + content: $fa-var-inr; +} +.#{$fa-css-prefix}-cny:before, +.#{$fa-css-prefix}-rmb:before, +.#{$fa-css-prefix}-yen:before, +.#{$fa-css-prefix}-jpy:before { + content: $fa-var-jpy; +} +.#{$fa-css-prefix}-ruble:before, +.#{$fa-css-prefix}-rouble:before, +.#{$fa-css-prefix}-rub:before { + content: $fa-var-rub; +} +.#{$fa-css-prefix}-won:before, +.#{$fa-css-prefix}-krw:before { + content: $fa-var-krw; +} +.#{$fa-css-prefix}-bitcoin:before, +.#{$fa-css-prefix}-btc:before { + content: $fa-var-btc; +} +.#{$fa-css-prefix}-file:before { + content: $fa-var-file; +} +.#{$fa-css-prefix}-file-text:before { + content: $fa-var-file-text; +} +.#{$fa-css-prefix}-sort-alpha-asc:before { + content: $fa-var-sort-alpha-asc; +} +.#{$fa-css-prefix}-sort-alpha-desc:before { + content: $fa-var-sort-alpha-desc; +} +.#{$fa-css-prefix}-sort-amount-asc:before { + content: $fa-var-sort-amount-asc; +} +.#{$fa-css-prefix}-sort-amount-desc:before { + content: $fa-var-sort-amount-desc; +} +.#{$fa-css-prefix}-sort-numeric-asc:before { + content: $fa-var-sort-numeric-asc; +} +.#{$fa-css-prefix}-sort-numeric-desc:before { + content: $fa-var-sort-numeric-desc; +} +.#{$fa-css-prefix}-thumbs-up:before { + content: $fa-var-thumbs-up; +} +.#{$fa-css-prefix}-thumbs-down:before { + content: $fa-var-thumbs-down; +} +.#{$fa-css-prefix}-youtube-square:before { + content: $fa-var-youtube-square; +} +.#{$fa-css-prefix}-youtube:before { + content: $fa-var-youtube; +} +.#{$fa-css-prefix}-xing:before { + content: $fa-var-xing; +} +.#{$fa-css-prefix}-xing-square:before { + content: $fa-var-xing-square; +} +.#{$fa-css-prefix}-youtube-play:before { + content: $fa-var-youtube-play; +} +.#{$fa-css-prefix}-dropbox:before { + content: $fa-var-dropbox; +} +.#{$fa-css-prefix}-stack-overflow:before { + content: $fa-var-stack-overflow; +} +.#{$fa-css-prefix}-instagram:before { + content: $fa-var-instagram; +} +.#{$fa-css-prefix}-flickr:before { + content: $fa-var-flickr; +} +.#{$fa-css-prefix}-adn:before { + content: $fa-var-adn; +} +.#{$fa-css-prefix}-bitbucket:before { + content: $fa-var-bitbucket; +} +.#{$fa-css-prefix}-bitbucket-square:before { + content: $fa-var-bitbucket-square; +} +.#{$fa-css-prefix}-tumblr:before { + content: $fa-var-tumblr; +} +.#{$fa-css-prefix}-tumblr-square:before { + content: $fa-var-tumblr-square; +} +.#{$fa-css-prefix}-long-arrow-down:before { + content: $fa-var-long-arrow-down; +} +.#{$fa-css-prefix}-long-arrow-up:before { + content: $fa-var-long-arrow-up; +} +.#{$fa-css-prefix}-long-arrow-left:before { + content: $fa-var-long-arrow-left; +} +.#{$fa-css-prefix}-long-arrow-right:before { + content: $fa-var-long-arrow-right; +} +.#{$fa-css-prefix}-apple:before { + content: $fa-var-apple; +} +.#{$fa-css-prefix}-windows:before { + content: $fa-var-windows; +} +.#{$fa-css-prefix}-android:before { + content: $fa-var-android; +} +.#{$fa-css-prefix}-linux:before { + content: $fa-var-linux; +} +.#{$fa-css-prefix}-dribbble:before { + content: $fa-var-dribbble; +} +.#{$fa-css-prefix}-skype:before { + content: $fa-var-skype; +} +.#{$fa-css-prefix}-foursquare:before { + content: $fa-var-foursquare; +} +.#{$fa-css-prefix}-trello:before { + content: $fa-var-trello; +} +.#{$fa-css-prefix}-female:before { + content: $fa-var-female; +} +.#{$fa-css-prefix}-male:before { + content: $fa-var-male; +} +.#{$fa-css-prefix}-gittip:before, +.#{$fa-css-prefix}-gratipay:before { + content: $fa-var-gratipay; +} +.#{$fa-css-prefix}-sun-o:before { + content: $fa-var-sun-o; +} +.#{$fa-css-prefix}-moon-o:before { + content: $fa-var-moon-o; +} +.#{$fa-css-prefix}-archive:before { + content: $fa-var-archive; +} +.#{$fa-css-prefix}-bug:before { + content: $fa-var-bug; +} +.#{$fa-css-prefix}-vk:before { + content: $fa-var-vk; +} +.#{$fa-css-prefix}-weibo:before { + content: $fa-var-weibo; +} +.#{$fa-css-prefix}-renren:before { + content: $fa-var-renren; +} +.#{$fa-css-prefix}-pagelines:before { + content: $fa-var-pagelines; +} +.#{$fa-css-prefix}-stack-exchange:before { + content: $fa-var-stack-exchange; +} +.#{$fa-css-prefix}-arrow-circle-o-right:before { + content: $fa-var-arrow-circle-o-right; +} +.#{$fa-css-prefix}-arrow-circle-o-left:before { + content: $fa-var-arrow-circle-o-left; +} +.#{$fa-css-prefix}-toggle-left:before, +.#{$fa-css-prefix}-caret-square-o-left:before { + content: $fa-var-caret-square-o-left; +} +.#{$fa-css-prefix}-dot-circle-o:before { + content: $fa-var-dot-circle-o; +} +.#{$fa-css-prefix}-wheelchair:before { + content: $fa-var-wheelchair; +} +.#{$fa-css-prefix}-vimeo-square:before { + content: $fa-var-vimeo-square; +} +.#{$fa-css-prefix}-turkish-lira:before, +.#{$fa-css-prefix}-try:before { + content: $fa-var-try; +} +.#{$fa-css-prefix}-plus-square-o:before { + content: $fa-var-plus-square-o; +} +.#{$fa-css-prefix}-space-shuttle:before { + content: $fa-var-space-shuttle; +} +.#{$fa-css-prefix}-slack:before { + content: $fa-var-slack; +} +.#{$fa-css-prefix}-envelope-square:before { + content: $fa-var-envelope-square; +} +.#{$fa-css-prefix}-wordpress:before { + content: $fa-var-wordpress; +} +.#{$fa-css-prefix}-openid:before { + content: $fa-var-openid; +} +.#{$fa-css-prefix}-institution:before, +.#{$fa-css-prefix}-bank:before, +.#{$fa-css-prefix}-university:before { + content: $fa-var-university; +} +.#{$fa-css-prefix}-mortar-board:before, +.#{$fa-css-prefix}-graduation-cap:before { + content: $fa-var-graduation-cap; +} +.#{$fa-css-prefix}-yahoo:before { + content: $fa-var-yahoo; +} +.#{$fa-css-prefix}-google:before { + content: $fa-var-google; +} +.#{$fa-css-prefix}-reddit:before { + content: $fa-var-reddit; +} +.#{$fa-css-prefix}-reddit-square:before { + content: $fa-var-reddit-square; +} +.#{$fa-css-prefix}-stumbleupon-circle:before { + content: $fa-var-stumbleupon-circle; +} +.#{$fa-css-prefix}-stumbleupon:before { + content: $fa-var-stumbleupon; +} +.#{$fa-css-prefix}-delicious:before { + content: $fa-var-delicious; +} +.#{$fa-css-prefix}-digg:before { + content: $fa-var-digg; +} +.#{$fa-css-prefix}-pied-piper-pp:before { + content: $fa-var-pied-piper-pp; +} +.#{$fa-css-prefix}-pied-piper-alt:before { + content: $fa-var-pied-piper-alt; +} +.#{$fa-css-prefix}-drupal:before { + content: $fa-var-drupal; +} +.#{$fa-css-prefix}-joomla:before { + content: $fa-var-joomla; +} +.#{$fa-css-prefix}-language:before { + content: $fa-var-language; +} +.#{$fa-css-prefix}-fax:before { + content: $fa-var-fax; +} +.#{$fa-css-prefix}-building:before { + content: $fa-var-building; +} +.#{$fa-css-prefix}-child:before { + content: $fa-var-child; +} +.#{$fa-css-prefix}-paw:before { + content: $fa-var-paw; +} +.#{$fa-css-prefix}-spoon:before { + content: $fa-var-spoon; +} +.#{$fa-css-prefix}-cube:before { + content: $fa-var-cube; +} +.#{$fa-css-prefix}-cubes:before { + content: $fa-var-cubes; +} +.#{$fa-css-prefix}-behance:before { + content: $fa-var-behance; +} +.#{$fa-css-prefix}-behance-square:before { + content: $fa-var-behance-square; +} +.#{$fa-css-prefix}-steam:before { + content: $fa-var-steam; +} +.#{$fa-css-prefix}-steam-square:before { + content: $fa-var-steam-square; +} +.#{$fa-css-prefix}-recycle:before { + content: $fa-var-recycle; +} +.#{$fa-css-prefix}-automobile:before, +.#{$fa-css-prefix}-car:before { + content: $fa-var-car; +} +.#{$fa-css-prefix}-cab:before, +.#{$fa-css-prefix}-taxi:before { + content: $fa-var-taxi; +} +.#{$fa-css-prefix}-tree:before { + content: $fa-var-tree; +} +.#{$fa-css-prefix}-spotify:before { + content: $fa-var-spotify; +} +.#{$fa-css-prefix}-deviantart:before { + content: $fa-var-deviantart; +} +.#{$fa-css-prefix}-soundcloud:before { + content: $fa-var-soundcloud; +} +.#{$fa-css-prefix}-database:before { + content: $fa-var-database; +} +.#{$fa-css-prefix}-file-pdf-o:before { + content: $fa-var-file-pdf-o; +} +.#{$fa-css-prefix}-file-word-o:before { + content: $fa-var-file-word-o; +} +.#{$fa-css-prefix}-file-excel-o:before { + content: $fa-var-file-excel-o; +} +.#{$fa-css-prefix}-file-powerpoint-o:before { + content: $fa-var-file-powerpoint-o; +} +.#{$fa-css-prefix}-file-photo-o:before, +.#{$fa-css-prefix}-file-picture-o:before, +.#{$fa-css-prefix}-file-image-o:before { + content: $fa-var-file-image-o; +} +.#{$fa-css-prefix}-file-zip-o:before, +.#{$fa-css-prefix}-file-archive-o:before { + content: $fa-var-file-archive-o; +} +.#{$fa-css-prefix}-file-sound-o:before, +.#{$fa-css-prefix}-file-audio-o:before { + content: $fa-var-file-audio-o; +} +.#{$fa-css-prefix}-file-movie-o:before, +.#{$fa-css-prefix}-file-video-o:before { + content: $fa-var-file-video-o; +} +.#{$fa-css-prefix}-file-code-o:before { + content: $fa-var-file-code-o; +} +.#{$fa-css-prefix}-vine:before { + content: $fa-var-vine; +} +.#{$fa-css-prefix}-codepen:before { + content: $fa-var-codepen; +} +.#{$fa-css-prefix}-jsfiddle:before { + content: $fa-var-jsfiddle; +} +.#{$fa-css-prefix}-life-bouy:before, +.#{$fa-css-prefix}-life-buoy:before, +.#{$fa-css-prefix}-life-saver:before, +.#{$fa-css-prefix}-support:before, +.#{$fa-css-prefix}-life-ring:before { + content: $fa-var-life-ring; +} +.#{$fa-css-prefix}-circle-o-notch:before { + content: $fa-var-circle-o-notch; +} +.#{$fa-css-prefix}-ra:before, +.#{$fa-css-prefix}-resistance:before, +.#{$fa-css-prefix}-rebel:before { + content: $fa-var-rebel; +} +.#{$fa-css-prefix}-ge:before, +.#{$fa-css-prefix}-empire:before { + content: $fa-var-empire; +} +.#{$fa-css-prefix}-git-square:before { + content: $fa-var-git-square; +} +.#{$fa-css-prefix}-git:before { + content: $fa-var-git; +} +.#{$fa-css-prefix}-y-combinator-square:before, +.#{$fa-css-prefix}-yc-square:before, +.#{$fa-css-prefix}-hacker-news:before { + content: $fa-var-hacker-news; +} +.#{$fa-css-prefix}-tencent-weibo:before { + content: $fa-var-tencent-weibo; +} +.#{$fa-css-prefix}-qq:before { + content: $fa-var-qq; +} +.#{$fa-css-prefix}-wechat:before, +.#{$fa-css-prefix}-weixin:before { + content: $fa-var-weixin; +} +.#{$fa-css-prefix}-send:before, +.#{$fa-css-prefix}-paper-plane:before { + content: $fa-var-paper-plane; +} +.#{$fa-css-prefix}-send-o:before, +.#{$fa-css-prefix}-paper-plane-o:before { + content: $fa-var-paper-plane-o; +} +.#{$fa-css-prefix}-history:before { + content: $fa-var-history; +} +.#{$fa-css-prefix}-circle-thin:before { + content: $fa-var-circle-thin; +} +.#{$fa-css-prefix}-header:before { + content: $fa-var-header; +} +.#{$fa-css-prefix}-paragraph:before { + content: $fa-var-paragraph; +} +.#{$fa-css-prefix}-sliders:before { + content: $fa-var-sliders; +} +.#{$fa-css-prefix}-share-alt:before { + content: $fa-var-share-alt; +} +.#{$fa-css-prefix}-share-alt-square:before { + content: $fa-var-share-alt-square; +} +.#{$fa-css-prefix}-bomb:before { + content: $fa-var-bomb; +} +.#{$fa-css-prefix}-soccer-ball-o:before, +.#{$fa-css-prefix}-futbol-o:before { + content: $fa-var-futbol-o; +} +.#{$fa-css-prefix}-tty:before { + content: $fa-var-tty; +} +.#{$fa-css-prefix}-binoculars:before { + content: $fa-var-binoculars; +} +.#{$fa-css-prefix}-plug:before { + content: $fa-var-plug; +} +.#{$fa-css-prefix}-slideshare:before { + content: $fa-var-slideshare; +} +.#{$fa-css-prefix}-twitch:before { + content: $fa-var-twitch; +} +.#{$fa-css-prefix}-yelp:before { + content: $fa-var-yelp; +} +.#{$fa-css-prefix}-newspaper-o:before { + content: $fa-var-newspaper-o; +} +.#{$fa-css-prefix}-wifi:before { + content: $fa-var-wifi; +} +.#{$fa-css-prefix}-calculator:before { + content: $fa-var-calculator; +} +.#{$fa-css-prefix}-paypal:before { + content: $fa-var-paypal; +} +.#{$fa-css-prefix}-google-wallet:before { + content: $fa-var-google-wallet; +} +.#{$fa-css-prefix}-cc-visa:before { + content: $fa-var-cc-visa; +} +.#{$fa-css-prefix}-cc-mastercard:before { + content: $fa-var-cc-mastercard; +} +.#{$fa-css-prefix}-cc-discover:before { + content: $fa-var-cc-discover; +} +.#{$fa-css-prefix}-cc-amex:before { + content: $fa-var-cc-amex; +} +.#{$fa-css-prefix}-cc-paypal:before { + content: $fa-var-cc-paypal; +} +.#{$fa-css-prefix}-cc-stripe:before { + content: $fa-var-cc-stripe; +} +.#{$fa-css-prefix}-bell-slash:before { + content: $fa-var-bell-slash; +} +.#{$fa-css-prefix}-bell-slash-o:before { + content: $fa-var-bell-slash-o; +} +.#{$fa-css-prefix}-trash:before { + content: $fa-var-trash; +} +.#{$fa-css-prefix}-copyright:before { + content: $fa-var-copyright; +} +.#{$fa-css-prefix}-at:before { + content: $fa-var-at; +} +.#{$fa-css-prefix}-eyedropper:before { + content: $fa-var-eyedropper; +} +.#{$fa-css-prefix}-paint-brush:before { + content: $fa-var-paint-brush; +} +.#{$fa-css-prefix}-birthday-cake:before { + content: $fa-var-birthday-cake; +} +.#{$fa-css-prefix}-area-chart:before { + content: $fa-var-area-chart; +} +.#{$fa-css-prefix}-pie-chart:before { + content: $fa-var-pie-chart; +} +.#{$fa-css-prefix}-line-chart:before { + content: $fa-var-line-chart; +} +.#{$fa-css-prefix}-lastfm:before { + content: $fa-var-lastfm; +} +.#{$fa-css-prefix}-lastfm-square:before { + content: $fa-var-lastfm-square; +} +.#{$fa-css-prefix}-toggle-off:before { + content: $fa-var-toggle-off; +} +.#{$fa-css-prefix}-toggle-on:before { + content: $fa-var-toggle-on; +} +.#{$fa-css-prefix}-bicycle:before { + content: $fa-var-bicycle; +} +.#{$fa-css-prefix}-bus:before { + content: $fa-var-bus; +} +.#{$fa-css-prefix}-ioxhost:before { + content: $fa-var-ioxhost; +} +.#{$fa-css-prefix}-angellist:before { + content: $fa-var-angellist; +} +.#{$fa-css-prefix}-cc:before { + content: $fa-var-cc; +} +.#{$fa-css-prefix}-shekel:before, +.#{$fa-css-prefix}-sheqel:before, +.#{$fa-css-prefix}-ils:before { + content: $fa-var-ils; +} +.#{$fa-css-prefix}-meanpath:before { + content: $fa-var-meanpath; +} +.#{$fa-css-prefix}-buysellads:before { + content: $fa-var-buysellads; +} +.#{$fa-css-prefix}-connectdevelop:before { + content: $fa-var-connectdevelop; +} +.#{$fa-css-prefix}-dashcube:before { + content: $fa-var-dashcube; +} +.#{$fa-css-prefix}-forumbee:before { + content: $fa-var-forumbee; +} +.#{$fa-css-prefix}-leanpub:before { + content: $fa-var-leanpub; +} +.#{$fa-css-prefix}-sellsy:before { + content: $fa-var-sellsy; +} +.#{$fa-css-prefix}-shirtsinbulk:before { + content: $fa-var-shirtsinbulk; +} +.#{$fa-css-prefix}-simplybuilt:before { + content: $fa-var-simplybuilt; +} +.#{$fa-css-prefix}-skyatlas:before { + content: $fa-var-skyatlas; +} +.#{$fa-css-prefix}-cart-plus:before { + content: $fa-var-cart-plus; +} +.#{$fa-css-prefix}-cart-arrow-down:before { + content: $fa-var-cart-arrow-down; +} +.#{$fa-css-prefix}-diamond:before { + content: $fa-var-diamond; +} +.#{$fa-css-prefix}-ship:before { + content: $fa-var-ship; +} +.#{$fa-css-prefix}-user-secret:before { + content: $fa-var-user-secret; +} +.#{$fa-css-prefix}-motorcycle:before { + content: $fa-var-motorcycle; +} +.#{$fa-css-prefix}-street-view:before { + content: $fa-var-street-view; +} +.#{$fa-css-prefix}-heartbeat:before { + content: $fa-var-heartbeat; +} +.#{$fa-css-prefix}-venus:before { + content: $fa-var-venus; +} +.#{$fa-css-prefix}-mars:before { + content: $fa-var-mars; +} +.#{$fa-css-prefix}-mercury:before { + content: $fa-var-mercury; +} +.#{$fa-css-prefix}-intersex:before, +.#{$fa-css-prefix}-transgender:before { + content: $fa-var-transgender; +} +.#{$fa-css-prefix}-transgender-alt:before { + content: $fa-var-transgender-alt; +} +.#{$fa-css-prefix}-venus-double:before { + content: $fa-var-venus-double; +} +.#{$fa-css-prefix}-mars-double:before { + content: $fa-var-mars-double; +} +.#{$fa-css-prefix}-venus-mars:before { + content: $fa-var-venus-mars; +} +.#{$fa-css-prefix}-mars-stroke:before { + content: $fa-var-mars-stroke; +} +.#{$fa-css-prefix}-mars-stroke-v:before { + content: $fa-var-mars-stroke-v; +} +.#{$fa-css-prefix}-mars-stroke-h:before { + content: $fa-var-mars-stroke-h; +} +.#{$fa-css-prefix}-neuter:before { + content: $fa-var-neuter; +} +.#{$fa-css-prefix}-genderless:before { + content: $fa-var-genderless; +} +.#{$fa-css-prefix}-facebook-official:before { + content: $fa-var-facebook-official; +} +.#{$fa-css-prefix}-pinterest-p:before { + content: $fa-var-pinterest-p; +} +.#{$fa-css-prefix}-whatsapp:before { + content: $fa-var-whatsapp; +} +.#{$fa-css-prefix}-server:before { + content: $fa-var-server; +} +.#{$fa-css-prefix}-user-plus:before { + content: $fa-var-user-plus; +} +.#{$fa-css-prefix}-user-times:before { + content: $fa-var-user-times; +} +.#{$fa-css-prefix}-hotel:before, +.#{$fa-css-prefix}-bed:before { + content: $fa-var-bed; +} +.#{$fa-css-prefix}-viacoin:before { + content: $fa-var-viacoin; +} +.#{$fa-css-prefix}-train:before { + content: $fa-var-train; +} +.#{$fa-css-prefix}-subway:before { + content: $fa-var-subway; +} +.#{$fa-css-prefix}-medium:before { + content: $fa-var-medium; +} +.#{$fa-css-prefix}-yc:before, +.#{$fa-css-prefix}-y-combinator:before { + content: $fa-var-y-combinator; +} +.#{$fa-css-prefix}-optin-monster:before { + content: $fa-var-optin-monster; +} +.#{$fa-css-prefix}-opencart:before { + content: $fa-var-opencart; +} +.#{$fa-css-prefix}-expeditedssl:before { + content: $fa-var-expeditedssl; +} +.#{$fa-css-prefix}-battery-4:before, +.#{$fa-css-prefix}-battery:before, +.#{$fa-css-prefix}-battery-full:before { + content: $fa-var-battery-full; +} +.#{$fa-css-prefix}-battery-3:before, +.#{$fa-css-prefix}-battery-three-quarters:before { + content: $fa-var-battery-three-quarters; +} +.#{$fa-css-prefix}-battery-2:before, +.#{$fa-css-prefix}-battery-half:before { + content: $fa-var-battery-half; +} +.#{$fa-css-prefix}-battery-1:before, +.#{$fa-css-prefix}-battery-quarter:before { + content: $fa-var-battery-quarter; +} +.#{$fa-css-prefix}-battery-0:before, +.#{$fa-css-prefix}-battery-empty:before { + content: $fa-var-battery-empty; +} +.#{$fa-css-prefix}-mouse-pointer:before { + content: $fa-var-mouse-pointer; +} +.#{$fa-css-prefix}-i-cursor:before { + content: $fa-var-i-cursor; +} +.#{$fa-css-prefix}-object-group:before { + content: $fa-var-object-group; +} +.#{$fa-css-prefix}-object-ungroup:before { + content: $fa-var-object-ungroup; +} +.#{$fa-css-prefix}-sticky-note:before { + content: $fa-var-sticky-note; +} +.#{$fa-css-prefix}-sticky-note-o:before { + content: $fa-var-sticky-note-o; +} +.#{$fa-css-prefix}-cc-jcb:before { + content: $fa-var-cc-jcb; +} +.#{$fa-css-prefix}-cc-diners-club:before { + content: $fa-var-cc-diners-club; +} +.#{$fa-css-prefix}-clone:before { + content: $fa-var-clone; +} +.#{$fa-css-prefix}-balance-scale:before { + content: $fa-var-balance-scale; +} +.#{$fa-css-prefix}-hourglass-o:before { + content: $fa-var-hourglass-o; +} +.#{$fa-css-prefix}-hourglass-1:before, +.#{$fa-css-prefix}-hourglass-start:before { + content: $fa-var-hourglass-start; +} +.#{$fa-css-prefix}-hourglass-2:before, +.#{$fa-css-prefix}-hourglass-half:before { + content: $fa-var-hourglass-half; +} +.#{$fa-css-prefix}-hourglass-3:before, +.#{$fa-css-prefix}-hourglass-end:before { + content: $fa-var-hourglass-end; +} +.#{$fa-css-prefix}-hourglass:before { + content: $fa-var-hourglass; +} +.#{$fa-css-prefix}-hand-grab-o:before, +.#{$fa-css-prefix}-hand-rock-o:before { + content: $fa-var-hand-rock-o; +} +.#{$fa-css-prefix}-hand-stop-o:before, +.#{$fa-css-prefix}-hand-paper-o:before { + content: $fa-var-hand-paper-o; +} +.#{$fa-css-prefix}-hand-scissors-o:before { + content: $fa-var-hand-scissors-o; +} +.#{$fa-css-prefix}-hand-lizard-o:before { + content: $fa-var-hand-lizard-o; +} +.#{$fa-css-prefix}-hand-spock-o:before { + content: $fa-var-hand-spock-o; +} +.#{$fa-css-prefix}-hand-pointer-o:before { + content: $fa-var-hand-pointer-o; +} +.#{$fa-css-prefix}-hand-peace-o:before { + content: $fa-var-hand-peace-o; +} +.#{$fa-css-prefix}-trademark:before { + content: $fa-var-trademark; +} +.#{$fa-css-prefix}-registered:before { + content: $fa-var-registered; +} +.#{$fa-css-prefix}-creative-commons:before { + content: $fa-var-creative-commons; +} +.#{$fa-css-prefix}-gg:before { + content: $fa-var-gg; +} +.#{$fa-css-prefix}-gg-circle:before { + content: $fa-var-gg-circle; +} +.#{$fa-css-prefix}-tripadvisor:before { + content: $fa-var-tripadvisor; +} +.#{$fa-css-prefix}-odnoklassniki:before { + content: $fa-var-odnoklassniki; +} +.#{$fa-css-prefix}-odnoklassniki-square:before { + content: $fa-var-odnoklassniki-square; +} +.#{$fa-css-prefix}-get-pocket:before { + content: $fa-var-get-pocket; +} +.#{$fa-css-prefix}-wikipedia-w:before { + content: $fa-var-wikipedia-w; +} +.#{$fa-css-prefix}-safari:before { + content: $fa-var-safari; +} +.#{$fa-css-prefix}-chrome:before { + content: $fa-var-chrome; +} +.#{$fa-css-prefix}-firefox:before { + content: $fa-var-firefox; +} +.#{$fa-css-prefix}-opera:before { + content: $fa-var-opera; +} +.#{$fa-css-prefix}-internet-explorer:before { + content: $fa-var-internet-explorer; +} +.#{$fa-css-prefix}-tv:before, +.#{$fa-css-prefix}-television:before { + content: $fa-var-television; +} +.#{$fa-css-prefix}-contao:before { + content: $fa-var-contao; +} +.#{$fa-css-prefix}-500px:before { + content: $fa-var-500px; +} +.#{$fa-css-prefix}-amazon:before { + content: $fa-var-amazon; +} +.#{$fa-css-prefix}-calendar-plus-o:before { + content: $fa-var-calendar-plus-o; +} +.#{$fa-css-prefix}-calendar-minus-o:before { + content: $fa-var-calendar-minus-o; +} +.#{$fa-css-prefix}-calendar-times-o:before { + content: $fa-var-calendar-times-o; +} +.#{$fa-css-prefix}-calendar-check-o:before { + content: $fa-var-calendar-check-o; +} +.#{$fa-css-prefix}-industry:before { + content: $fa-var-industry; +} +.#{$fa-css-prefix}-map-pin:before { + content: $fa-var-map-pin; +} +.#{$fa-css-prefix}-map-signs:before { + content: $fa-var-map-signs; +} +.#{$fa-css-prefix}-map-o:before { + content: $fa-var-map-o; +} +.#{$fa-css-prefix}-map:before { + content: $fa-var-map; +} +.#{$fa-css-prefix}-commenting:before { + content: $fa-var-commenting; +} +.#{$fa-css-prefix}-commenting-o:before { + content: $fa-var-commenting-o; +} +.#{$fa-css-prefix}-houzz:before { + content: $fa-var-houzz; +} +.#{$fa-css-prefix}-vimeo:before { + content: $fa-var-vimeo; +} +.#{$fa-css-prefix}-black-tie:before { + content: $fa-var-black-tie; +} +.#{$fa-css-prefix}-fonticons:before { + content: $fa-var-fonticons; +} +.#{$fa-css-prefix}-reddit-alien:before { + content: $fa-var-reddit-alien; +} +.#{$fa-css-prefix}-edge:before { + content: $fa-var-edge; +} +.#{$fa-css-prefix}-credit-card-alt:before { + content: $fa-var-credit-card-alt; +} +.#{$fa-css-prefix}-codiepie:before { + content: $fa-var-codiepie; +} +.#{$fa-css-prefix}-modx:before { + content: $fa-var-modx; +} +.#{$fa-css-prefix}-fort-awesome:before { + content: $fa-var-fort-awesome; +} +.#{$fa-css-prefix}-usb:before { + content: $fa-var-usb; +} +.#{$fa-css-prefix}-product-hunt:before { + content: $fa-var-product-hunt; +} +.#{$fa-css-prefix}-mixcloud:before { + content: $fa-var-mixcloud; +} +.#{$fa-css-prefix}-scribd:before { + content: $fa-var-scribd; +} +.#{$fa-css-prefix}-pause-circle:before { + content: $fa-var-pause-circle; +} +.#{$fa-css-prefix}-pause-circle-o:before { + content: $fa-var-pause-circle-o; +} +.#{$fa-css-prefix}-stop-circle:before { + content: $fa-var-stop-circle; +} +.#{$fa-css-prefix}-stop-circle-o:before { + content: $fa-var-stop-circle-o; +} +.#{$fa-css-prefix}-shopping-bag:before { + content: $fa-var-shopping-bag; +} +.#{$fa-css-prefix}-shopping-basket:before { + content: $fa-var-shopping-basket; +} +.#{$fa-css-prefix}-hashtag:before { + content: $fa-var-hashtag; +} +.#{$fa-css-prefix}-bluetooth:before { + content: $fa-var-bluetooth; +} +.#{$fa-css-prefix}-bluetooth-b:before { + content: $fa-var-bluetooth-b; +} +.#{$fa-css-prefix}-percent:before { + content: $fa-var-percent; +} +.#{$fa-css-prefix}-gitlab:before { + content: $fa-var-gitlab; +} +.#{$fa-css-prefix}-wpbeginner:before { + content: $fa-var-wpbeginner; +} +.#{$fa-css-prefix}-wpforms:before { + content: $fa-var-wpforms; +} +.#{$fa-css-prefix}-envira:before { + content: $fa-var-envira; +} +.#{$fa-css-prefix}-universal-access:before { + content: $fa-var-universal-access; +} +.#{$fa-css-prefix}-wheelchair-alt:before { + content: $fa-var-wheelchair-alt; +} +.#{$fa-css-prefix}-question-circle-o:before { + content: $fa-var-question-circle-o; +} +.#{$fa-css-prefix}-blind:before { + content: $fa-var-blind; +} +.#{$fa-css-prefix}-audio-description:before { + content: $fa-var-audio-description; +} +.#{$fa-css-prefix}-volume-control-phone:before { + content: $fa-var-volume-control-phone; +} +.#{$fa-css-prefix}-braille:before { + content: $fa-var-braille; +} +.#{$fa-css-prefix}-assistive-listening-systems:before { + content: $fa-var-assistive-listening-systems; +} +.#{$fa-css-prefix}-asl-interpreting:before, +.#{$fa-css-prefix}-american-sign-language-interpreting:before { + content: $fa-var-american-sign-language-interpreting; +} +.#{$fa-css-prefix}-deafness:before, +.#{$fa-css-prefix}-hard-of-hearing:before, +.#{$fa-css-prefix}-deaf:before { + content: $fa-var-deaf; +} +.#{$fa-css-prefix}-glide:before { + content: $fa-var-glide; +} +.#{$fa-css-prefix}-glide-g:before { + content: $fa-var-glide-g; +} +.#{$fa-css-prefix}-signing:before, +.#{$fa-css-prefix}-sign-language:before { + content: $fa-var-sign-language; +} +.#{$fa-css-prefix}-low-vision:before { + content: $fa-var-low-vision; +} +.#{$fa-css-prefix}-viadeo:before { + content: $fa-var-viadeo; +} +.#{$fa-css-prefix}-viadeo-square:before { + content: $fa-var-viadeo-square; +} +.#{$fa-css-prefix}-snapchat:before { + content: $fa-var-snapchat; +} +.#{$fa-css-prefix}-snapchat-ghost:before { + content: $fa-var-snapchat-ghost; +} +.#{$fa-css-prefix}-snapchat-square:before { + content: $fa-var-snapchat-square; +} +.#{$fa-css-prefix}-pied-piper:before { + content: $fa-var-pied-piper; +} +.#{$fa-css-prefix}-first-order:before { + content: $fa-var-first-order; +} +.#{$fa-css-prefix}-yoast:before { + content: $fa-var-yoast; +} +.#{$fa-css-prefix}-themeisle:before { + content: $fa-var-themeisle; +} +.#{$fa-css-prefix}-google-plus-circle:before, +.#{$fa-css-prefix}-google-plus-official:before { + content: $fa-var-google-plus-official; +} +.#{$fa-css-prefix}-fa:before, +.#{$fa-css-prefix}-font-awesome:before { + content: $fa-var-font-awesome; +} +.#{$fa-css-prefix}-handshake-o:before { + content: $fa-var-handshake-o; +} +.#{$fa-css-prefix}-envelope-open:before { + content: $fa-var-envelope-open; +} +.#{$fa-css-prefix}-envelope-open-o:before { + content: $fa-var-envelope-open-o; +} +.#{$fa-css-prefix}-linode:before { + content: $fa-var-linode; +} +.#{$fa-css-prefix}-address-book:before { + content: $fa-var-address-book; +} +.#{$fa-css-prefix}-address-book-o:before { + content: $fa-var-address-book-o; +} +.#{$fa-css-prefix}-vcard:before, +.#{$fa-css-prefix}-address-card:before { + content: $fa-var-address-card; +} +.#{$fa-css-prefix}-vcard-o:before, +.#{$fa-css-prefix}-address-card-o:before { + content: $fa-var-address-card-o; +} +.#{$fa-css-prefix}-user-circle:before { + content: $fa-var-user-circle; +} +.#{$fa-css-prefix}-user-circle-o:before { + content: $fa-var-user-circle-o; +} +.#{$fa-css-prefix}-user-o:before { + content: $fa-var-user-o; +} +.#{$fa-css-prefix}-id-badge:before { + content: $fa-var-id-badge; +} +.#{$fa-css-prefix}-drivers-license:before, +.#{$fa-css-prefix}-id-card:before { + content: $fa-var-id-card; +} +.#{$fa-css-prefix}-drivers-license-o:before, +.#{$fa-css-prefix}-id-card-o:before { + content: $fa-var-id-card-o; +} +.#{$fa-css-prefix}-quora:before { + content: $fa-var-quora; +} +.#{$fa-css-prefix}-free-code-camp:before { + content: $fa-var-free-code-camp; +} +.#{$fa-css-prefix}-telegram:before { + content: $fa-var-telegram; +} +.#{$fa-css-prefix}-thermometer-4:before, +.#{$fa-css-prefix}-thermometer:before, +.#{$fa-css-prefix}-thermometer-full:before { + content: $fa-var-thermometer-full; +} +.#{$fa-css-prefix}-thermometer-3:before, +.#{$fa-css-prefix}-thermometer-three-quarters:before { + content: $fa-var-thermometer-three-quarters; +} +.#{$fa-css-prefix}-thermometer-2:before, +.#{$fa-css-prefix}-thermometer-half:before { + content: $fa-var-thermometer-half; +} +.#{$fa-css-prefix}-thermometer-1:before, +.#{$fa-css-prefix}-thermometer-quarter:before { + content: $fa-var-thermometer-quarter; +} +.#{$fa-css-prefix}-thermometer-0:before, +.#{$fa-css-prefix}-thermometer-empty:before { + content: $fa-var-thermometer-empty; +} +.#{$fa-css-prefix}-shower:before { + content: $fa-var-shower; +} +.#{$fa-css-prefix}-bathtub:before, +.#{$fa-css-prefix}-s15:before, +.#{$fa-css-prefix}-bath:before { + content: $fa-var-bath; +} +.#{$fa-css-prefix}-podcast:before { + content: $fa-var-podcast; +} +.#{$fa-css-prefix}-window-maximize:before { + content: $fa-var-window-maximize; +} +.#{$fa-css-prefix}-window-minimize:before { + content: $fa-var-window-minimize; +} +.#{$fa-css-prefix}-window-restore:before { + content: $fa-var-window-restore; +} +.#{$fa-css-prefix}-times-rectangle:before, +.#{$fa-css-prefix}-window-close:before { + content: $fa-var-window-close; +} +.#{$fa-css-prefix}-times-rectangle-o:before, +.#{$fa-css-prefix}-window-close-o:before { + content: $fa-var-window-close-o; +} +.#{$fa-css-prefix}-bandcamp:before { + content: $fa-var-bandcamp; +} +.#{$fa-css-prefix}-grav:before { + content: $fa-var-grav; +} +.#{$fa-css-prefix}-etsy:before { + content: $fa-var-etsy; +} +.#{$fa-css-prefix}-imdb:before { + content: $fa-var-imdb; +} +.#{$fa-css-prefix}-ravelry:before { + content: $fa-var-ravelry; +} +.#{$fa-css-prefix}-eercast:before { + content: $fa-var-eercast; +} +.#{$fa-css-prefix}-microchip:before { + content: $fa-var-microchip; +} +.#{$fa-css-prefix}-snowflake-o:before { + content: $fa-var-snowflake-o; +} +.#{$fa-css-prefix}-superpowers:before { + content: $fa-var-superpowers; +} +.#{$fa-css-prefix}-wpexplorer:before { + content: $fa-var-wpexplorer; +} +.#{$fa-css-prefix}-meetup:before { + content: $fa-var-meetup; +} diff --git a/public/font-awesome-4.7.0/scss/_larger.scss b/public/font-awesome-4.7.0/scss/_larger.scss new file mode 100644 index 0000000..1efeef3 --- /dev/null +++ b/public/font-awesome-4.7.0/scss/_larger.scss @@ -0,0 +1,21 @@ +// Icon Sizes +// ------------------------- + +/* makes the font 33% larger relative to the icon container */ +.#{$fa-css-prefix}-lg { + font-size: (4em / 3); + line-height: (3em / 4); + vertical-align: -15%; +} +.#{$fa-css-prefix}-2x { + font-size: 2em; +} +.#{$fa-css-prefix}-3x { + font-size: 3em; +} +.#{$fa-css-prefix}-4x { + font-size: 4em; +} +.#{$fa-css-prefix}-5x { + font-size: 5em; +} diff --git a/public/font-awesome-4.7.0/scss/_list.scss b/public/font-awesome-4.7.0/scss/_list.scss new file mode 100644 index 0000000..9e30bee --- /dev/null +++ b/public/font-awesome-4.7.0/scss/_list.scss @@ -0,0 +1,21 @@ +// List Icons +// ------------------------- + +.#{$fa-css-prefix}-ul { + padding-left: 0; + margin-left: $fa-li-width; + list-style-type: none; + > li { + position: relative; + } +} +.#{$fa-css-prefix}-li { + position: absolute; + left: -$fa-li-width; + width: $fa-li-width; + top: (2em / 14); + text-align: center; + &.#{$fa-css-prefix}-lg { + left: -$fa-li-width + (4em / 14); + } +} diff --git a/public/font-awesome-4.7.0/scss/_mixins.scss b/public/font-awesome-4.7.0/scss/_mixins.scss new file mode 100644 index 0000000..f2a92c1 --- /dev/null +++ b/public/font-awesome-4.7.0/scss/_mixins.scss @@ -0,0 +1,58 @@ +// Mixins +// -------------------------- + +@mixin fa-icon() { + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +@mixin fa-icon-rotate($degrees, $rotation) { + -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})'; + -webkit-transform: rotate($degrees); + -ms-transform: rotate($degrees); + transform: rotate($degrees); +} + +@mixin fa-icon-flip($horiz, $vert, $rotation) { + -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)'; + -webkit-transform: scale($horiz, $vert); + -ms-transform: scale($horiz, $vert); + transform: scale($horiz, $vert); +} + +// Only display content to screen readers. A la Bootstrap 4. +// +// See: http://a11yproject.com/posts/how-to-hide-content/ + +@mixin sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} + +// Use in conjunction with .sr-only to only display content when it's focused. +// +// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 +// +// Credit: HTML5 Boilerplate + +@mixin sr-only-focusable { + &:active, + &:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; + } +} diff --git a/public/font-awesome-4.7.0/scss/_path.scss b/public/font-awesome-4.7.0/scss/_path.scss new file mode 100644 index 0000000..ed5efc4 --- /dev/null +++ b/public/font-awesome-4.7.0/scss/_path.scss @@ -0,0 +1,17 @@ +/* FONT PATH + * -------------------------- */ + +@font-face { + font-family: 'FontAwesome'; + src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); + src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') + format('embedded-opentype'), + url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), + url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), + url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), + url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') + format('svg'); + // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts + font-weight: normal; + font-style: normal; +} diff --git a/public/font-awesome-4.7.0/scss/_rotated-flipped.scss b/public/font-awesome-4.7.0/scss/_rotated-flipped.scss new file mode 100644 index 0000000..07c11a8 --- /dev/null +++ b/public/font-awesome-4.7.0/scss/_rotated-flipped.scss @@ -0,0 +1,30 @@ +// Rotated & Flipped Icons +// ------------------------- + +.#{$fa-css-prefix}-rotate-90 { + @include fa-icon-rotate(90deg, 1); +} +.#{$fa-css-prefix}-rotate-180 { + @include fa-icon-rotate(180deg, 2); +} +.#{$fa-css-prefix}-rotate-270 { + @include fa-icon-rotate(270deg, 3); +} + +.#{$fa-css-prefix}-flip-horizontal { + @include fa-icon-flip(-1, 1, 0); +} +.#{$fa-css-prefix}-flip-vertical { + @include fa-icon-flip(1, -1, 2); +} + +// Hook for IE8-9 +// ------------------------- + +:root .#{$fa-css-prefix}-rotate-90, +:root .#{$fa-css-prefix}-rotate-180, +:root .#{$fa-css-prefix}-rotate-270, +:root .#{$fa-css-prefix}-flip-horizontal, +:root .#{$fa-css-prefix}-flip-vertical { + filter: none; +} diff --git a/public/font-awesome-4.7.0/scss/_screen-reader.scss b/public/font-awesome-4.7.0/scss/_screen-reader.scss new file mode 100644 index 0000000..e3bff89 --- /dev/null +++ b/public/font-awesome-4.7.0/scss/_screen-reader.scss @@ -0,0 +1,9 @@ +// Screen Readers +// ------------------------- + +.sr-only { + @include sr-only(); +} +.sr-only-focusable { + @include sr-only-focusable(); +} diff --git a/public/font-awesome-4.7.0/scss/_stacked.scss b/public/font-awesome-4.7.0/scss/_stacked.scss new file mode 100644 index 0000000..33fbe76 --- /dev/null +++ b/public/font-awesome-4.7.0/scss/_stacked.scss @@ -0,0 +1,27 @@ +// Stacked Icons +// ------------------------- + +.#{$fa-css-prefix}-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.#{$fa-css-prefix}-stack-1x, +.#{$fa-css-prefix}-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.#{$fa-css-prefix}-stack-1x { + line-height: inherit; +} +.#{$fa-css-prefix}-stack-2x { + font-size: 2em; +} +.#{$fa-css-prefix}-inverse { + color: $fa-inverse; +} diff --git a/public/font-awesome-4.7.0/scss/_variables.scss b/public/font-awesome-4.7.0/scss/_variables.scss new file mode 100644 index 0000000..1e91e83 --- /dev/null +++ b/public/font-awesome-4.7.0/scss/_variables.scss @@ -0,0 +1,799 @@ +// Variables +// -------------------------- + +$fa-font-path: '../fonts' !default; +$fa-font-size-base: 14px !default; +$fa-line-height-base: 1 !default; +//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts" !default; // for referencing Bootstrap CDN font files directly +$fa-css-prefix: fa !default; +$fa-version: '4.7.0' !default; +$fa-border-color: #eee !default; +$fa-inverse: #fff !default; +$fa-li-width: (30em / 14) !default; + +$fa-var-500px: '\f26e'; +$fa-var-address-book: '\f2b9'; +$fa-var-address-book-o: '\f2ba'; +$fa-var-address-card: '\f2bb'; +$fa-var-address-card-o: '\f2bc'; +$fa-var-adjust: '\f042'; +$fa-var-adn: '\f170'; +$fa-var-align-center: '\f037'; +$fa-var-align-justify: '\f039'; +$fa-var-align-left: '\f036'; +$fa-var-align-right: '\f038'; +$fa-var-amazon: '\f270'; +$fa-var-ambulance: '\f0f9'; +$fa-var-american-sign-language-interpreting: '\f2a3'; +$fa-var-anchor: '\f13d'; +$fa-var-android: '\f17b'; +$fa-var-angellist: '\f209'; +$fa-var-angle-double-down: '\f103'; +$fa-var-angle-double-left: '\f100'; +$fa-var-angle-double-right: '\f101'; +$fa-var-angle-double-up: '\f102'; +$fa-var-angle-down: '\f107'; +$fa-var-angle-left: '\f104'; +$fa-var-angle-right: '\f105'; +$fa-var-angle-up: '\f106'; +$fa-var-apple: '\f179'; +$fa-var-archive: '\f187'; +$fa-var-area-chart: '\f1fe'; +$fa-var-arrow-circle-down: '\f0ab'; +$fa-var-arrow-circle-left: '\f0a8'; +$fa-var-arrow-circle-o-down: '\f01a'; +$fa-var-arrow-circle-o-left: '\f190'; +$fa-var-arrow-circle-o-right: '\f18e'; +$fa-var-arrow-circle-o-up: '\f01b'; +$fa-var-arrow-circle-right: '\f0a9'; +$fa-var-arrow-circle-up: '\f0aa'; +$fa-var-arrow-down: '\f063'; +$fa-var-arrow-left: '\f060'; +$fa-var-arrow-right: '\f061'; +$fa-var-arrow-up: '\f062'; +$fa-var-arrows: '\f047'; +$fa-var-arrows-alt: '\f0b2'; +$fa-var-arrows-h: '\f07e'; +$fa-var-arrows-v: '\f07d'; +$fa-var-asl-interpreting: '\f2a3'; +$fa-var-assistive-listening-systems: '\f2a2'; +$fa-var-asterisk: '\f069'; +$fa-var-at: '\f1fa'; +$fa-var-audio-description: '\f29e'; +$fa-var-automobile: '\f1b9'; +$fa-var-backward: '\f04a'; +$fa-var-balance-scale: '\f24e'; +$fa-var-ban: '\f05e'; +$fa-var-bandcamp: '\f2d5'; +$fa-var-bank: '\f19c'; +$fa-var-bar-chart: '\f080'; +$fa-var-bar-chart-o: '\f080'; +$fa-var-barcode: '\f02a'; +$fa-var-bars: '\f0c9'; +$fa-var-bath: '\f2cd'; +$fa-var-bathtub: '\f2cd'; +$fa-var-battery: '\f240'; +$fa-var-battery-0: '\f244'; +$fa-var-battery-1: '\f243'; +$fa-var-battery-2: '\f242'; +$fa-var-battery-3: '\f241'; +$fa-var-battery-4: '\f240'; +$fa-var-battery-empty: '\f244'; +$fa-var-battery-full: '\f240'; +$fa-var-battery-half: '\f242'; +$fa-var-battery-quarter: '\f243'; +$fa-var-battery-three-quarters: '\f241'; +$fa-var-bed: '\f236'; +$fa-var-beer: '\f0fc'; +$fa-var-behance: '\f1b4'; +$fa-var-behance-square: '\f1b5'; +$fa-var-bell: '\f0f3'; +$fa-var-bell-o: '\f0a2'; +$fa-var-bell-slash: '\f1f6'; +$fa-var-bell-slash-o: '\f1f7'; +$fa-var-bicycle: '\f206'; +$fa-var-binoculars: '\f1e5'; +$fa-var-birthday-cake: '\f1fd'; +$fa-var-bitbucket: '\f171'; +$fa-var-bitbucket-square: '\f172'; +$fa-var-bitcoin: '\f15a'; +$fa-var-black-tie: '\f27e'; +$fa-var-blind: '\f29d'; +$fa-var-bluetooth: '\f293'; +$fa-var-bluetooth-b: '\f294'; +$fa-var-bold: '\f032'; +$fa-var-bolt: '\f0e7'; +$fa-var-bomb: '\f1e2'; +$fa-var-book: '\f02d'; +$fa-var-bookmark: '\f02e'; +$fa-var-bookmark-o: '\f097'; +$fa-var-braille: '\f2a1'; +$fa-var-briefcase: '\f0b1'; +$fa-var-btc: '\f15a'; +$fa-var-bug: '\f188'; +$fa-var-building: '\f1ad'; +$fa-var-building-o: '\f0f7'; +$fa-var-bullhorn: '\f0a1'; +$fa-var-bullseye: '\f140'; +$fa-var-bus: '\f207'; +$fa-var-buysellads: '\f20d'; +$fa-var-cab: '\f1ba'; +$fa-var-calculator: '\f1ec'; +$fa-var-calendar: '\f073'; +$fa-var-calendar-check-o: '\f274'; +$fa-var-calendar-minus-o: '\f272'; +$fa-var-calendar-o: '\f133'; +$fa-var-calendar-plus-o: '\f271'; +$fa-var-calendar-times-o: '\f273'; +$fa-var-camera: '\f030'; +$fa-var-camera-retro: '\f083'; +$fa-var-car: '\f1b9'; +$fa-var-caret-down: '\f0d7'; +$fa-var-caret-left: '\f0d9'; +$fa-var-caret-right: '\f0da'; +$fa-var-caret-square-o-down: '\f150'; +$fa-var-caret-square-o-left: '\f191'; +$fa-var-caret-square-o-right: '\f152'; +$fa-var-caret-square-o-up: '\f151'; +$fa-var-caret-up: '\f0d8'; +$fa-var-cart-arrow-down: '\f218'; +$fa-var-cart-plus: '\f217'; +$fa-var-cc: '\f20a'; +$fa-var-cc-amex: '\f1f3'; +$fa-var-cc-diners-club: '\f24c'; +$fa-var-cc-discover: '\f1f2'; +$fa-var-cc-jcb: '\f24b'; +$fa-var-cc-mastercard: '\f1f1'; +$fa-var-cc-paypal: '\f1f4'; +$fa-var-cc-stripe: '\f1f5'; +$fa-var-cc-visa: '\f1f0'; +$fa-var-certificate: '\f0a3'; +$fa-var-chain: '\f0c1'; +$fa-var-chain-broken: '\f127'; +$fa-var-check: '\f00c'; +$fa-var-check-circle: '\f058'; +$fa-var-check-circle-o: '\f05d'; +$fa-var-check-square: '\f14a'; +$fa-var-check-square-o: '\f046'; +$fa-var-chevron-circle-down: '\f13a'; +$fa-var-chevron-circle-left: '\f137'; +$fa-var-chevron-circle-right: '\f138'; +$fa-var-chevron-circle-up: '\f139'; +$fa-var-chevron-down: '\f078'; +$fa-var-chevron-left: '\f053'; +$fa-var-chevron-right: '\f054'; +$fa-var-chevron-up: '\f077'; +$fa-var-child: '\f1ae'; +$fa-var-chrome: '\f268'; +$fa-var-circle: '\f111'; +$fa-var-circle-o: '\f10c'; +$fa-var-circle-o-notch: '\f1ce'; +$fa-var-circle-thin: '\f1db'; +$fa-var-clipboard: '\f0ea'; +$fa-var-clock-o: '\f017'; +$fa-var-clone: '\f24d'; +$fa-var-close: '\f00d'; +$fa-var-cloud: '\f0c2'; +$fa-var-cloud-download: '\f0ed'; +$fa-var-cloud-upload: '\f0ee'; +$fa-var-cny: '\f157'; +$fa-var-code: '\f121'; +$fa-var-code-fork: '\f126'; +$fa-var-codepen: '\f1cb'; +$fa-var-codiepie: '\f284'; +$fa-var-coffee: '\f0f4'; +$fa-var-cog: '\f013'; +$fa-var-cogs: '\f085'; +$fa-var-columns: '\f0db'; +$fa-var-comment: '\f075'; +$fa-var-comment-o: '\f0e5'; +$fa-var-commenting: '\f27a'; +$fa-var-commenting-o: '\f27b'; +$fa-var-comments: '\f086'; +$fa-var-comments-o: '\f0e6'; +$fa-var-compass: '\f14e'; +$fa-var-compress: '\f066'; +$fa-var-connectdevelop: '\f20e'; +$fa-var-contao: '\f26d'; +$fa-var-copy: '\f0c5'; +$fa-var-copyright: '\f1f9'; +$fa-var-creative-commons: '\f25e'; +$fa-var-credit-card: '\f09d'; +$fa-var-credit-card-alt: '\f283'; +$fa-var-crop: '\f125'; +$fa-var-crosshairs: '\f05b'; +$fa-var-css3: '\f13c'; +$fa-var-cube: '\f1b2'; +$fa-var-cubes: '\f1b3'; +$fa-var-cut: '\f0c4'; +$fa-var-cutlery: '\f0f5'; +$fa-var-dashboard: '\f0e4'; +$fa-var-dashcube: '\f210'; +$fa-var-database: '\f1c0'; +$fa-var-deaf: '\f2a4'; +$fa-var-deafness: '\f2a4'; +$fa-var-dedent: '\f03b'; +$fa-var-delicious: '\f1a5'; +$fa-var-desktop: '\f108'; +$fa-var-deviantart: '\f1bd'; +$fa-var-diamond: '\f219'; +$fa-var-digg: '\f1a6'; +$fa-var-dollar: '\f155'; +$fa-var-dot-circle-o: '\f192'; +$fa-var-download: '\f019'; +$fa-var-dribbble: '\f17d'; +$fa-var-drivers-license: '\f2c2'; +$fa-var-drivers-license-o: '\f2c3'; +$fa-var-dropbox: '\f16b'; +$fa-var-drupal: '\f1a9'; +$fa-var-edge: '\f282'; +$fa-var-edit: '\f044'; +$fa-var-eercast: '\f2da'; +$fa-var-eject: '\f052'; +$fa-var-ellipsis-h: '\f141'; +$fa-var-ellipsis-v: '\f142'; +$fa-var-empire: '\f1d1'; +$fa-var-envelope: '\f0e0'; +$fa-var-envelope-o: '\f003'; +$fa-var-envelope-open: '\f2b6'; +$fa-var-envelope-open-o: '\f2b7'; +$fa-var-envelope-square: '\f199'; +$fa-var-envira: '\f299'; +$fa-var-eraser: '\f12d'; +$fa-var-etsy: '\f2d7'; +$fa-var-eur: '\f153'; +$fa-var-euro: '\f153'; +$fa-var-exchange: '\f0ec'; +$fa-var-exclamation: '\f12a'; +$fa-var-exclamation-circle: '\f06a'; +$fa-var-exclamation-triangle: '\f071'; +$fa-var-expand: '\f065'; +$fa-var-expeditedssl: '\f23e'; +$fa-var-external-link: '\f08e'; +$fa-var-external-link-square: '\f14c'; +$fa-var-eye: '\f06e'; +$fa-var-eye-slash: '\f070'; +$fa-var-eyedropper: '\f1fb'; +$fa-var-fa: '\f2b4'; +$fa-var-facebook: '\f09a'; +$fa-var-facebook-f: '\f09a'; +$fa-var-facebook-official: '\f230'; +$fa-var-facebook-square: '\f082'; +$fa-var-fast-backward: '\f049'; +$fa-var-fast-forward: '\f050'; +$fa-var-fax: '\f1ac'; +$fa-var-feed: '\f09e'; +$fa-var-female: '\f182'; +$fa-var-fighter-jet: '\f0fb'; +$fa-var-file: '\f15b'; +$fa-var-file-archive-o: '\f1c6'; +$fa-var-file-audio-o: '\f1c7'; +$fa-var-file-code-o: '\f1c9'; +$fa-var-file-excel-o: '\f1c3'; +$fa-var-file-image-o: '\f1c5'; +$fa-var-file-movie-o: '\f1c8'; +$fa-var-file-o: '\f016'; +$fa-var-file-pdf-o: '\f1c1'; +$fa-var-file-photo-o: '\f1c5'; +$fa-var-file-picture-o: '\f1c5'; +$fa-var-file-powerpoint-o: '\f1c4'; +$fa-var-file-sound-o: '\f1c7'; +$fa-var-file-text: '\f15c'; +$fa-var-file-text-o: '\f0f6'; +$fa-var-file-video-o: '\f1c8'; +$fa-var-file-word-o: '\f1c2'; +$fa-var-file-zip-o: '\f1c6'; +$fa-var-files-o: '\f0c5'; +$fa-var-film: '\f008'; +$fa-var-filter: '\f0b0'; +$fa-var-fire: '\f06d'; +$fa-var-fire-extinguisher: '\f134'; +$fa-var-firefox: '\f269'; +$fa-var-first-order: '\f2b0'; +$fa-var-flag: '\f024'; +$fa-var-flag-checkered: '\f11e'; +$fa-var-flag-o: '\f11d'; +$fa-var-flash: '\f0e7'; +$fa-var-flask: '\f0c3'; +$fa-var-flickr: '\f16e'; +$fa-var-floppy-o: '\f0c7'; +$fa-var-folder: '\f07b'; +$fa-var-folder-o: '\f114'; +$fa-var-folder-open: '\f07c'; +$fa-var-folder-open-o: '\f115'; +$fa-var-font: '\f031'; +$fa-var-font-awesome: '\f2b4'; +$fa-var-fonticons: '\f280'; +$fa-var-fort-awesome: '\f286'; +$fa-var-forumbee: '\f211'; +$fa-var-forward: '\f04e'; +$fa-var-foursquare: '\f180'; +$fa-var-free-code-camp: '\f2c5'; +$fa-var-frown-o: '\f119'; +$fa-var-futbol-o: '\f1e3'; +$fa-var-gamepad: '\f11b'; +$fa-var-gavel: '\f0e3'; +$fa-var-gbp: '\f154'; +$fa-var-ge: '\f1d1'; +$fa-var-gear: '\f013'; +$fa-var-gears: '\f085'; +$fa-var-genderless: '\f22d'; +$fa-var-get-pocket: '\f265'; +$fa-var-gg: '\f260'; +$fa-var-gg-circle: '\f261'; +$fa-var-gift: '\f06b'; +$fa-var-git: '\f1d3'; +$fa-var-git-square: '\f1d2'; +$fa-var-github: '\f09b'; +$fa-var-github-alt: '\f113'; +$fa-var-github-square: '\f092'; +$fa-var-gitlab: '\f296'; +$fa-var-gittip: '\f184'; +$fa-var-glass: '\f000'; +$fa-var-glide: '\f2a5'; +$fa-var-glide-g: '\f2a6'; +$fa-var-globe: '\f0ac'; +$fa-var-google: '\f1a0'; +$fa-var-google-plus: '\f0d5'; +$fa-var-google-plus-circle: '\f2b3'; +$fa-var-google-plus-official: '\f2b3'; +$fa-var-google-plus-square: '\f0d4'; +$fa-var-google-wallet: '\f1ee'; +$fa-var-graduation-cap: '\f19d'; +$fa-var-gratipay: '\f184'; +$fa-var-grav: '\f2d6'; +$fa-var-group: '\f0c0'; +$fa-var-h-square: '\f0fd'; +$fa-var-hacker-news: '\f1d4'; +$fa-var-hand-grab-o: '\f255'; +$fa-var-hand-lizard-o: '\f258'; +$fa-var-hand-o-down: '\f0a7'; +$fa-var-hand-o-left: '\f0a5'; +$fa-var-hand-o-right: '\f0a4'; +$fa-var-hand-o-up: '\f0a6'; +$fa-var-hand-paper-o: '\f256'; +$fa-var-hand-peace-o: '\f25b'; +$fa-var-hand-pointer-o: '\f25a'; +$fa-var-hand-rock-o: '\f255'; +$fa-var-hand-scissors-o: '\f257'; +$fa-var-hand-spock-o: '\f259'; +$fa-var-hand-stop-o: '\f256'; +$fa-var-handshake-o: '\f2b5'; +$fa-var-hard-of-hearing: '\f2a4'; +$fa-var-hashtag: '\f292'; +$fa-var-hdd-o: '\f0a0'; +$fa-var-header: '\f1dc'; +$fa-var-headphones: '\f025'; +$fa-var-heart: '\f004'; +$fa-var-heart-o: '\f08a'; +$fa-var-heartbeat: '\f21e'; +$fa-var-history: '\f1da'; +$fa-var-home: '\f015'; +$fa-var-hospital-o: '\f0f8'; +$fa-var-hotel: '\f236'; +$fa-var-hourglass: '\f254'; +$fa-var-hourglass-1: '\f251'; +$fa-var-hourglass-2: '\f252'; +$fa-var-hourglass-3: '\f253'; +$fa-var-hourglass-end: '\f253'; +$fa-var-hourglass-half: '\f252'; +$fa-var-hourglass-o: '\f250'; +$fa-var-hourglass-start: '\f251'; +$fa-var-houzz: '\f27c'; +$fa-var-html5: '\f13b'; +$fa-var-i-cursor: '\f246'; +$fa-var-id-badge: '\f2c1'; +$fa-var-id-card: '\f2c2'; +$fa-var-id-card-o: '\f2c3'; +$fa-var-ils: '\f20b'; +$fa-var-image: '\f03e'; +$fa-var-imdb: '\f2d8'; +$fa-var-inbox: '\f01c'; +$fa-var-indent: '\f03c'; +$fa-var-industry: '\f275'; +$fa-var-info: '\f129'; +$fa-var-info-circle: '\f05a'; +$fa-var-inr: '\f156'; +$fa-var-instagram: '\f16d'; +$fa-var-institution: '\f19c'; +$fa-var-internet-explorer: '\f26b'; +$fa-var-intersex: '\f224'; +$fa-var-ioxhost: '\f208'; +$fa-var-italic: '\f033'; +$fa-var-joomla: '\f1aa'; +$fa-var-jpy: '\f157'; +$fa-var-jsfiddle: '\f1cc'; +$fa-var-key: '\f084'; +$fa-var-keyboard-o: '\f11c'; +$fa-var-krw: '\f159'; +$fa-var-language: '\f1ab'; +$fa-var-laptop: '\f109'; +$fa-var-lastfm: '\f202'; +$fa-var-lastfm-square: '\f203'; +$fa-var-leaf: '\f06c'; +$fa-var-leanpub: '\f212'; +$fa-var-legal: '\f0e3'; +$fa-var-lemon-o: '\f094'; +$fa-var-level-down: '\f149'; +$fa-var-level-up: '\f148'; +$fa-var-life-bouy: '\f1cd'; +$fa-var-life-buoy: '\f1cd'; +$fa-var-life-ring: '\f1cd'; +$fa-var-life-saver: '\f1cd'; +$fa-var-lightbulb-o: '\f0eb'; +$fa-var-line-chart: '\f201'; +$fa-var-link: '\f0c1'; +$fa-var-linkedin: '\f0e1'; +$fa-var-linkedin-square: '\f08c'; +$fa-var-linode: '\f2b8'; +$fa-var-linux: '\f17c'; +$fa-var-list: '\f03a'; +$fa-var-list-alt: '\f022'; +$fa-var-list-ol: '\f0cb'; +$fa-var-list-ul: '\f0ca'; +$fa-var-location-arrow: '\f124'; +$fa-var-lock: '\f023'; +$fa-var-long-arrow-down: '\f175'; +$fa-var-long-arrow-left: '\f177'; +$fa-var-long-arrow-right: '\f178'; +$fa-var-long-arrow-up: '\f176'; +$fa-var-low-vision: '\f2a8'; +$fa-var-magic: '\f0d0'; +$fa-var-magnet: '\f076'; +$fa-var-mail-forward: '\f064'; +$fa-var-mail-reply: '\f112'; +$fa-var-mail-reply-all: '\f122'; +$fa-var-male: '\f183'; +$fa-var-map: '\f279'; +$fa-var-map-marker: '\f041'; +$fa-var-map-o: '\f278'; +$fa-var-map-pin: '\f276'; +$fa-var-map-signs: '\f277'; +$fa-var-mars: '\f222'; +$fa-var-mars-double: '\f227'; +$fa-var-mars-stroke: '\f229'; +$fa-var-mars-stroke-h: '\f22b'; +$fa-var-mars-stroke-v: '\f22a'; +$fa-var-maxcdn: '\f136'; +$fa-var-meanpath: '\f20c'; +$fa-var-medium: '\f23a'; +$fa-var-medkit: '\f0fa'; +$fa-var-meetup: '\f2e0'; +$fa-var-meh-o: '\f11a'; +$fa-var-mercury: '\f223'; +$fa-var-microchip: '\f2db'; +$fa-var-microphone: '\f130'; +$fa-var-microphone-slash: '\f131'; +$fa-var-minus: '\f068'; +$fa-var-minus-circle: '\f056'; +$fa-var-minus-square: '\f146'; +$fa-var-minus-square-o: '\f147'; +$fa-var-mixcloud: '\f289'; +$fa-var-mobile: '\f10b'; +$fa-var-mobile-phone: '\f10b'; +$fa-var-modx: '\f285'; +$fa-var-money: '\f0d6'; +$fa-var-moon-o: '\f186'; +$fa-var-mortar-board: '\f19d'; +$fa-var-motorcycle: '\f21c'; +$fa-var-mouse-pointer: '\f245'; +$fa-var-music: '\f001'; +$fa-var-navicon: '\f0c9'; +$fa-var-neuter: '\f22c'; +$fa-var-newspaper-o: '\f1ea'; +$fa-var-object-group: '\f247'; +$fa-var-object-ungroup: '\f248'; +$fa-var-odnoklassniki: '\f263'; +$fa-var-odnoklassniki-square: '\f264'; +$fa-var-opencart: '\f23d'; +$fa-var-openid: '\f19b'; +$fa-var-opera: '\f26a'; +$fa-var-optin-monster: '\f23c'; +$fa-var-outdent: '\f03b'; +$fa-var-pagelines: '\f18c'; +$fa-var-paint-brush: '\f1fc'; +$fa-var-paper-plane: '\f1d8'; +$fa-var-paper-plane-o: '\f1d9'; +$fa-var-paperclip: '\f0c6'; +$fa-var-paragraph: '\f1dd'; +$fa-var-paste: '\f0ea'; +$fa-var-pause: '\f04c'; +$fa-var-pause-circle: '\f28b'; +$fa-var-pause-circle-o: '\f28c'; +$fa-var-paw: '\f1b0'; +$fa-var-paypal: '\f1ed'; +$fa-var-pencil: '\f040'; +$fa-var-pencil-square: '\f14b'; +$fa-var-pencil-square-o: '\f044'; +$fa-var-percent: '\f295'; +$fa-var-phone: '\f095'; +$fa-var-phone-square: '\f098'; +$fa-var-photo: '\f03e'; +$fa-var-picture-o: '\f03e'; +$fa-var-pie-chart: '\f200'; +$fa-var-pied-piper: '\f2ae'; +$fa-var-pied-piper-alt: '\f1a8'; +$fa-var-pied-piper-pp: '\f1a7'; +$fa-var-pinterest: '\f0d2'; +$fa-var-pinterest-p: '\f231'; +$fa-var-pinterest-square: '\f0d3'; +$fa-var-plane: '\f072'; +$fa-var-play: '\f04b'; +$fa-var-play-circle: '\f144'; +$fa-var-play-circle-o: '\f01d'; +$fa-var-plug: '\f1e6'; +$fa-var-plus: '\f067'; +$fa-var-plus-circle: '\f055'; +$fa-var-plus-square: '\f0fe'; +$fa-var-plus-square-o: '\f196'; +$fa-var-podcast: '\f2ce'; +$fa-var-power-off: '\f011'; +$fa-var-print: '\f02f'; +$fa-var-product-hunt: '\f288'; +$fa-var-puzzle-piece: '\f12e'; +$fa-var-qq: '\f1d6'; +$fa-var-qrcode: '\f029'; +$fa-var-question: '\f128'; +$fa-var-question-circle: '\f059'; +$fa-var-question-circle-o: '\f29c'; +$fa-var-quora: '\f2c4'; +$fa-var-quote-left: '\f10d'; +$fa-var-quote-right: '\f10e'; +$fa-var-ra: '\f1d0'; +$fa-var-random: '\f074'; +$fa-var-ravelry: '\f2d9'; +$fa-var-rebel: '\f1d0'; +$fa-var-recycle: '\f1b8'; +$fa-var-reddit: '\f1a1'; +$fa-var-reddit-alien: '\f281'; +$fa-var-reddit-square: '\f1a2'; +$fa-var-refresh: '\f021'; +$fa-var-registered: '\f25d'; +$fa-var-remove: '\f00d'; +$fa-var-renren: '\f18b'; +$fa-var-reorder: '\f0c9'; +$fa-var-repeat: '\f01e'; +$fa-var-reply: '\f112'; +$fa-var-reply-all: '\f122'; +$fa-var-resistance: '\f1d0'; +$fa-var-retweet: '\f079'; +$fa-var-rmb: '\f157'; +$fa-var-road: '\f018'; +$fa-var-rocket: '\f135'; +$fa-var-rotate-left: '\f0e2'; +$fa-var-rotate-right: '\f01e'; +$fa-var-rouble: '\f158'; +$fa-var-rss: '\f09e'; +$fa-var-rss-square: '\f143'; +$fa-var-rub: '\f158'; +$fa-var-ruble: '\f158'; +$fa-var-rupee: '\f156'; +$fa-var-s15: '\f2cd'; +$fa-var-safari: '\f267'; +$fa-var-save: '\f0c7'; +$fa-var-scissors: '\f0c4'; +$fa-var-scribd: '\f28a'; +$fa-var-search: '\f002'; +$fa-var-search-minus: '\f010'; +$fa-var-search-plus: '\f00e'; +$fa-var-sellsy: '\f213'; +$fa-var-send: '\f1d8'; +$fa-var-send-o: '\f1d9'; +$fa-var-server: '\f233'; +$fa-var-share: '\f064'; +$fa-var-share-alt: '\f1e0'; +$fa-var-share-alt-square: '\f1e1'; +$fa-var-share-square: '\f14d'; +$fa-var-share-square-o: '\f045'; +$fa-var-shekel: '\f20b'; +$fa-var-sheqel: '\f20b'; +$fa-var-shield: '\f132'; +$fa-var-ship: '\f21a'; +$fa-var-shirtsinbulk: '\f214'; +$fa-var-shopping-bag: '\f290'; +$fa-var-shopping-basket: '\f291'; +$fa-var-shopping-cart: '\f07a'; +$fa-var-shower: '\f2cc'; +$fa-var-sign-in: '\f090'; +$fa-var-sign-language: '\f2a7'; +$fa-var-sign-out: '\f08b'; +$fa-var-signal: '\f012'; +$fa-var-signing: '\f2a7'; +$fa-var-simplybuilt: '\f215'; +$fa-var-sitemap: '\f0e8'; +$fa-var-skyatlas: '\f216'; +$fa-var-skype: '\f17e'; +$fa-var-slack: '\f198'; +$fa-var-sliders: '\f1de'; +$fa-var-slideshare: '\f1e7'; +$fa-var-smile-o: '\f118'; +$fa-var-snapchat: '\f2ab'; +$fa-var-snapchat-ghost: '\f2ac'; +$fa-var-snapchat-square: '\f2ad'; +$fa-var-snowflake-o: '\f2dc'; +$fa-var-soccer-ball-o: '\f1e3'; +$fa-var-sort: '\f0dc'; +$fa-var-sort-alpha-asc: '\f15d'; +$fa-var-sort-alpha-desc: '\f15e'; +$fa-var-sort-amount-asc: '\f160'; +$fa-var-sort-amount-desc: '\f161'; +$fa-var-sort-asc: '\f0de'; +$fa-var-sort-desc: '\f0dd'; +$fa-var-sort-down: '\f0dd'; +$fa-var-sort-numeric-asc: '\f162'; +$fa-var-sort-numeric-desc: '\f163'; +$fa-var-sort-up: '\f0de'; +$fa-var-soundcloud: '\f1be'; +$fa-var-space-shuttle: '\f197'; +$fa-var-spinner: '\f110'; +$fa-var-spoon: '\f1b1'; +$fa-var-spotify: '\f1bc'; +$fa-var-square: '\f0c8'; +$fa-var-square-o: '\f096'; +$fa-var-stack-exchange: '\f18d'; +$fa-var-stack-overflow: '\f16c'; +$fa-var-star: '\f005'; +$fa-var-star-half: '\f089'; +$fa-var-star-half-empty: '\f123'; +$fa-var-star-half-full: '\f123'; +$fa-var-star-half-o: '\f123'; +$fa-var-star-o: '\f006'; +$fa-var-steam: '\f1b6'; +$fa-var-steam-square: '\f1b7'; +$fa-var-step-backward: '\f048'; +$fa-var-step-forward: '\f051'; +$fa-var-stethoscope: '\f0f1'; +$fa-var-sticky-note: '\f249'; +$fa-var-sticky-note-o: '\f24a'; +$fa-var-stop: '\f04d'; +$fa-var-stop-circle: '\f28d'; +$fa-var-stop-circle-o: '\f28e'; +$fa-var-street-view: '\f21d'; +$fa-var-strikethrough: '\f0cc'; +$fa-var-stumbleupon: '\f1a4'; +$fa-var-stumbleupon-circle: '\f1a3'; +$fa-var-subscript: '\f12c'; +$fa-var-subway: '\f239'; +$fa-var-suitcase: '\f0f2'; +$fa-var-sun-o: '\f185'; +$fa-var-superpowers: '\f2dd'; +$fa-var-superscript: '\f12b'; +$fa-var-support: '\f1cd'; +$fa-var-table: '\f0ce'; +$fa-var-tablet: '\f10a'; +$fa-var-tachometer: '\f0e4'; +$fa-var-tag: '\f02b'; +$fa-var-tags: '\f02c'; +$fa-var-tasks: '\f0ae'; +$fa-var-taxi: '\f1ba'; +$fa-var-telegram: '\f2c6'; +$fa-var-television: '\f26c'; +$fa-var-tencent-weibo: '\f1d5'; +$fa-var-terminal: '\f120'; +$fa-var-text-height: '\f034'; +$fa-var-text-width: '\f035'; +$fa-var-th: '\f00a'; +$fa-var-th-large: '\f009'; +$fa-var-th-list: '\f00b'; +$fa-var-themeisle: '\f2b2'; +$fa-var-thermometer: '\f2c7'; +$fa-var-thermometer-0: '\f2cb'; +$fa-var-thermometer-1: '\f2ca'; +$fa-var-thermometer-2: '\f2c9'; +$fa-var-thermometer-3: '\f2c8'; +$fa-var-thermometer-4: '\f2c7'; +$fa-var-thermometer-empty: '\f2cb'; +$fa-var-thermometer-full: '\f2c7'; +$fa-var-thermometer-half: '\f2c9'; +$fa-var-thermometer-quarter: '\f2ca'; +$fa-var-thermometer-three-quarters: '\f2c8'; +$fa-var-thumb-tack: '\f08d'; +$fa-var-thumbs-down: '\f165'; +$fa-var-thumbs-o-down: '\f088'; +$fa-var-thumbs-o-up: '\f087'; +$fa-var-thumbs-up: '\f164'; +$fa-var-ticket: '\f145'; +$fa-var-times: '\f00d'; +$fa-var-times-circle: '\f057'; +$fa-var-times-circle-o: '\f05c'; +$fa-var-times-rectangle: '\f2d3'; +$fa-var-times-rectangle-o: '\f2d4'; +$fa-var-tint: '\f043'; +$fa-var-toggle-down: '\f150'; +$fa-var-toggle-left: '\f191'; +$fa-var-toggle-off: '\f204'; +$fa-var-toggle-on: '\f205'; +$fa-var-toggle-right: '\f152'; +$fa-var-toggle-up: '\f151'; +$fa-var-trademark: '\f25c'; +$fa-var-train: '\f238'; +$fa-var-transgender: '\f224'; +$fa-var-transgender-alt: '\f225'; +$fa-var-trash: '\f1f8'; +$fa-var-trash-o: '\f014'; +$fa-var-tree: '\f1bb'; +$fa-var-trello: '\f181'; +$fa-var-tripadvisor: '\f262'; +$fa-var-trophy: '\f091'; +$fa-var-truck: '\f0d1'; +$fa-var-try: '\f195'; +$fa-var-tty: '\f1e4'; +$fa-var-tumblr: '\f173'; +$fa-var-tumblr-square: '\f174'; +$fa-var-turkish-lira: '\f195'; +$fa-var-tv: '\f26c'; +$fa-var-twitch: '\f1e8'; +$fa-var-twitter: '\f099'; +$fa-var-twitter-square: '\f081'; +$fa-var-umbrella: '\f0e9'; +$fa-var-underline: '\f0cd'; +$fa-var-undo: '\f0e2'; +$fa-var-universal-access: '\f29a'; +$fa-var-university: '\f19c'; +$fa-var-unlink: '\f127'; +$fa-var-unlock: '\f09c'; +$fa-var-unlock-alt: '\f13e'; +$fa-var-unsorted: '\f0dc'; +$fa-var-upload: '\f093'; +$fa-var-usb: '\f287'; +$fa-var-usd: '\f155'; +$fa-var-user: '\f007'; +$fa-var-user-circle: '\f2bd'; +$fa-var-user-circle-o: '\f2be'; +$fa-var-user-md: '\f0f0'; +$fa-var-user-o: '\f2c0'; +$fa-var-user-plus: '\f234'; +$fa-var-user-secret: '\f21b'; +$fa-var-user-times: '\f235'; +$fa-var-users: '\f0c0'; +$fa-var-vcard: '\f2bb'; +$fa-var-vcard-o: '\f2bc'; +$fa-var-venus: '\f221'; +$fa-var-venus-double: '\f226'; +$fa-var-venus-mars: '\f228'; +$fa-var-viacoin: '\f237'; +$fa-var-viadeo: '\f2a9'; +$fa-var-viadeo-square: '\f2aa'; +$fa-var-video-camera: '\f03d'; +$fa-var-vimeo: '\f27d'; +$fa-var-vimeo-square: '\f194'; +$fa-var-vine: '\f1ca'; +$fa-var-vk: '\f189'; +$fa-var-volume-control-phone: '\f2a0'; +$fa-var-volume-down: '\f027'; +$fa-var-volume-off: '\f026'; +$fa-var-volume-up: '\f028'; +$fa-var-warning: '\f071'; +$fa-var-wechat: '\f1d7'; +$fa-var-weibo: '\f18a'; +$fa-var-weixin: '\f1d7'; +$fa-var-whatsapp: '\f232'; +$fa-var-wheelchair: '\f193'; +$fa-var-wheelchair-alt: '\f29b'; +$fa-var-wifi: '\f1eb'; +$fa-var-wikipedia-w: '\f266'; +$fa-var-window-close: '\f2d3'; +$fa-var-window-close-o: '\f2d4'; +$fa-var-window-maximize: '\f2d0'; +$fa-var-window-minimize: '\f2d1'; +$fa-var-window-restore: '\f2d2'; +$fa-var-windows: '\f17a'; +$fa-var-won: '\f159'; +$fa-var-wordpress: '\f19a'; +$fa-var-wpbeginner: '\f297'; +$fa-var-wpexplorer: '\f2de'; +$fa-var-wpforms: '\f298'; +$fa-var-wrench: '\f0ad'; +$fa-var-xing: '\f168'; +$fa-var-xing-square: '\f169'; +$fa-var-y-combinator: '\f23b'; +$fa-var-y-combinator-square: '\f1d4'; +$fa-var-yahoo: '\f19e'; +$fa-var-yc: '\f23b'; +$fa-var-yc-square: '\f1d4'; +$fa-var-yelp: '\f1e9'; +$fa-var-yen: '\f157'; +$fa-var-yoast: '\f2b1'; +$fa-var-youtube: '\f167'; +$fa-var-youtube-play: '\f16a'; +$fa-var-youtube-square: '\f166'; diff --git a/public/font-awesome-4.7.0/scss/font-awesome.scss b/public/font-awesome-4.7.0/scss/font-awesome.scss new file mode 100644 index 0000000..e16b4b8 --- /dev/null +++ b/public/font-awesome-4.7.0/scss/font-awesome.scss @@ -0,0 +1,18 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ + +@import 'variables'; +@import 'mixins'; +@import 'path'; +@import 'core'; +@import 'larger'; +@import 'fixed-width'; +@import 'list'; +@import 'bordered-pulled'; +@import 'animated'; +@import 'rotated-flipped'; +@import 'stacked'; +@import 'icons'; +@import 'screen-reader'; diff --git a/public/iconfont/iconfont.css b/public/iconfont/iconfont.css new file mode 100644 index 0000000..872e90f --- /dev/null +++ b/public/iconfont/iconfont.css @@ -0,0 +1,19 @@ +@font-face { + font-family: "iconfont"; /* Project id 3814452 */ + src: url('iconfont.woff2?t=1670405177902') format('woff2'), + url('iconfont.woff?t=1670405177902') format('woff'), + url('iconfont.ttf?t=1670405177902') format('truetype'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-enterprise:before { + content: "\e724"; +} + diff --git a/public/iconfont/iconfont.ttf b/public/iconfont/iconfont.ttf new file mode 100644 index 0000000..8b78923 Binary files /dev/null and b/public/iconfont/iconfont.ttf differ diff --git a/public/iconfont/iconfont.woff b/public/iconfont/iconfont.woff new file mode 100644 index 0000000..504dfbe Binary files /dev/null and b/public/iconfont/iconfont.woff differ diff --git a/public/iconfont/iconfont.woff2 b/public/iconfont/iconfont.woff2 new file mode 100644 index 0000000..595756b Binary files /dev/null and b/public/iconfont/iconfont.woff2 differ diff --git a/public/iframe/index.html b/public/iframe/index.html new file mode 100644 index 0000000..0346692 --- /dev/null +++ b/public/iframe/index.html @@ -0,0 +1,36 @@ + + + + + + + + + +
+ +
+ + + diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..9fa6cc2 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/src/api/api.ts b/src/api/api.ts new file mode 100644 index 0000000..963cf96 --- /dev/null +++ b/src/api/api.ts @@ -0,0 +1,25 @@ +import axios from '@/utils/axios' +import { encrypt } from '@/utils/crypto' + +export function login(form: any) { + // 处理逻辑 + const timestamp = new Date().getTime().toString() + return axios.post('/sys/api/login', { + secret: timestamp, + captchaVerification: form.captchaVerification, + phone: encrypt(timestamp + form.phone), + password: encrypt(timestamp + form.password) + }) +} + +export function forget(form: any) { + // 处理逻辑 + const timestamp = new Date().getTime().toString() + return axios.post('/sys/api/forget', { + secret: timestamp, + email: encrypt(timestamp + form.email), + password: encrypt(timestamp + form.password), + code: encrypt(timestamp + form.code), + inviteCode: form.inviteCode + }) +} diff --git a/src/api/upms/dept.ts b/src/api/upms/dept.ts new file mode 100644 index 0000000..238cc00 --- /dev/null +++ b/src/api/upms/dept.ts @@ -0,0 +1,45 @@ +import axios from '@/utils/axios' + +/** + * 获取所有部门 + * @returns Promise + */ +export function fetchAllTree() { + return axios.post('/sys/dept/fetch/all') +} +/** + * 获取所有部门包含用户 + * @returns Promise + */ +export function fetchUserTree() { + return axios.post('/sys/dept/fetch/user') +} + +/** + * 通过部门id获取用户ids + * + * @param deptId 部门id + * @return 用户ids + * @date 2022.12.12 + */ +export function userIdsByDeptId(deptId: string) { + return axios.post(`/sys/dept/user/ids/by/${deptId}`) +} + +/** + * 重新设置部门成员 + * @param deptId 部门id + * @param userIds 新成员ids + */ +export function resetDeptUser(deptId: string, userIds: string[]) { + return axios.post('/sys/dept/reset/dept/user', { id: deptId, userIds }) +} + +/** + * 移除部门中某个成员 + * @param deptId 部门id + * @param userId 成员id + */ +export function removeDeptUser(deptId: string, userId: string) { + return axios.post('/sys/dept/remove/dept/user', { deptId, userId }) +} diff --git a/src/api/upms/group.ts b/src/api/upms/group.ts new file mode 100644 index 0000000..33ee543 --- /dev/null +++ b/src/api/upms/group.ts @@ -0,0 +1,30 @@ +import axios from '@/utils/axios' + +/** + * 通过id获取用户ids + * + * @param groupId id + * @return 用户ids + * @date 2022.12.12 + */ +export function userIdsByGroupId(groupId: string) { + return axios.post(`/sys/group/user/ids/by/${groupId}`) +} + +/** + * 重新设置成员 + * @param groupId id + * @param userIds 新成员ids + */ +export function userReset(groupId: string, userIds: string[]) { + return axios.post('/sys/group/user/reset', { id: groupId, userIds }) +} + +/** + * 移除某个成员 + * @param groupId id + * @param userId 成员id + */ +export function userRemove(groupId: string, userId: string) { + return axios.post('/sys/group/user/remove', { groupId, userId }) +} diff --git a/src/api/upms/menu.ts b/src/api/upms/menu.ts new file mode 100644 index 0000000..b628ec4 --- /dev/null +++ b/src/api/upms/menu.ts @@ -0,0 +1,26 @@ +import axios from '@/utils/axios' + +/** + * 获取有权限的菜单树 + * @returns Promise + */ +// eslint-disable-next-line import/prefer-default-export +export function getMenuTree() { + return axios.post('/sys/menu/tree') +} + +export function getMenuTreeByRoleId(roleId: string) { + return axios.post(`/sys/menu/tree/role/${roleId}`) +} + +export function editRoleMenus(roleId: string, menuIds: Array) { + return axios.post(`/sys/menu/role/${roleId}`, menuIds) +} + +export function getMenuTreeByPackageId(packageId: string) { + return axios.post(`/sys/menu/tree/package/${packageId}`) +} + +export function editPackageMenus(packageId: string, menuIds: Array) { + return axios.post(`/sys/menu/package/${packageId}`, menuIds) +} diff --git a/src/api/upms/notify-channel.ts b/src/api/upms/notify-channel.ts new file mode 100644 index 0000000..16b4722 --- /dev/null +++ b/src/api/upms/notify-channel.ts @@ -0,0 +1,19 @@ +import { SysNotifyChannel } from '@/entity/upms/notify-channel' +import axios from '@/utils/axios' + +const baseUrl = 'sys/notify/channel' +/** + * 获取所有消息通道配置 + * @returns Array + */ +export function getConfig() { + return axios.post(`${baseUrl}/get/config`) +} + +/** + * 编辑某项配置 + * @param data 数据{type,config} + */ +export function editConfig(data: SysNotifyChannel) { + return axios.post(`${baseUrl}/edit/config`, data) +} diff --git a/src/api/upms/user.ts b/src/api/upms/user.ts new file mode 100644 index 0000000..8c8d695 --- /dev/null +++ b/src/api/upms/user.ts @@ -0,0 +1,10 @@ +import axios from '@/utils/axios' + +/** + * 修改个人密码 + * @param password 旧密码 + * @param newPassword 新密码 + */ +export function updatePassword(password: string, newPassword: string) { + return axios.post('/sys/user/password', { password, newPassword }) +} diff --git a/src/assets/css/arco.scss b/src/assets/css/arco.scss new file mode 100644 index 0000000..762df9b --- /dev/null +++ b/src/assets/css/arco.scss @@ -0,0 +1,71 @@ + +// 设置暗黑模式下spin的背景色透明 +body[arco-theme='dark'] { + .arco-spin-mask { + background-color: unset !important; + } +} +.arco-modal-body { + max-height: calc(100vh - 48px - 65px - 48px); + overflow-y: auto; + overflow-x: hidden; + // 未引入tailwind需要此 + // width: calc(100% - 40px); +} + +@media screen and (max-width: 530px) { + .arco-modal { + width: 94vw; + } +} + +.arco-scrollbar-thumb-direction-vertical .arco-scrollbar-thumb-bar { + width: 7px; + margin: 0 5px; +} + +.arco-popconfirm-content { + white-space: pre-wrap; +} + +// 自定义arco表格滚动条样式 +.arco-table-content-scroll-x, +.arco-table-content-scroll-y, +.arco-table.arco-table-empty .arco-table-header { + /*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/ + &::-webkit-scrollbar { + background-color: var(--color-fill-1); + border-bottom-right-radius: var(--border-radius-medium); + } + /*定义滚动条轨道 内阴影+圆角*/ + &::-webkit-scrollbar-track { + border-radius: 6px; + } + /*定义滑块 内阴影+圆角*/ + &::-webkit-scrollbar-thumb { + border-radius: 6px; + background-color: var(--color-neutral-4); + cursor: pointer; + &:hover { + background-color: var(--color-neutral-5); + } + &:active { + background-color: var(--color-neutral-6); + } + } +} +.arco-table-content-scroll-x, +.arco-table.arco-table-empty .arco-table-header { + &::-webkit-scrollbar { + height: 9px; + } +} +.arco-table-content-scroll-y { + &::-webkit-scrollbar { + width: 9px; + } +} + +.arco-trigger-popup{ + white-space:pre-wrap; +} diff --git a/src/assets/css/flex.scss b/src/assets/css/flex.scss new file mode 100644 index 0000000..8d9e212 --- /dev/null +++ b/src/assets/css/flex.scss @@ -0,0 +1,274 @@ +.un-select { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-user-drag: none; + img { + -webkit-user-drag: none; + } +} +.flex-view { + position: relative; + display: flex; + flex-direction: column; +} +.flex { + display: flex; +} +/* Flexbox 布局 */ +/* Flex Direction */ +.flex-row { + @extend .flex-view; + flex-direction: row; +} +.flex-row-reverse { + flex-direction: row-reverse !important; + @extend .flex-view; +} +.flex-column { + flex-direction: column !important; + @extend .flex-view; +} +.flex-column-reverse { + flex-direction: column-reverse !important; + @extend .flex-view; +} +/* Flex Wrap */ +.flex-nowrap { + flex-wrap: nowrap !important; + @extend .flex-view; +} +.flex-wrap { + flex-wrap: wrap !important; + @extend .flex-view; +} +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; + @extend .flex-view; +} +/* Align Items */ +.align-stretch { + align-items: stretch !important; + @extend .flex-view; +} +.align-start { + align-items: flex-start !important; + @extend .flex-view; +} +.align-center { + align-items: center !important; + @extend .flex-view; +} +.align-end { + align-items: flex-end !important; + @extend .flex-view; +} +/* Justify Content */ +.justify-start { + justify-content: flex-start !important; + @extend .flex-view; +} +.justify-center { + justify-content: center !important; + @extend .flex-view; +} +.justify-end { + justify-content: flex-end !important; + @extend .flex-view; +} +.justify-between { + justify-content: space-between !important; + @extend .flex-view; +} +.justify-around { + justify-content: space-around !important; + @extend .flex-view; +} +/* 字体粗细 */ +.text-bold { + font-weight: bold; +} +/* 文本对齐 */ +.text-left { + text-align: left; +} +.text-center { + text-align: center; +} +.text-right { + text-align: right; +} +/* 文本装饰 */ +.text-underline { + text-decoration: underline; +} +.text-through { + text-decoration: line-through; +} +/* flex */ +.flex-1 { + flex: 1 !important; +} +.flex-2 { + flex: 2 !important; +} +.flex-3 { + flex: 3 !important; +} +.flex-4 { + flex: 4 !important; +} +.flex-5 { + flex: 5 !important; +} +.flex-6 { + flex: 6 !important; +} +.flex-7 { + flex: 7 !important; +} +.flex-8 { + flex: 8 !important; +} +/* 文本大小 */ +.text-xs { + font-size: 12px !important; +} +.text-sm { + font-size: 14px !important; +} +.text-md { + font-size: 16px !important; +} +.text-lg { + font-size: 20px !important; +} +.text-xl { + font-size: 24px !important; +} +/* 行高 */ +.leading-xs { + line-height: 14px; +} +.leading-sm { + line-height: 16px; +} +.leading-md { + line-height: 20px; +} +.leading-lg { + line-height: 24px; +} +.leading-xl { + line-height: 28px; +} + +@mixin lines($num) { + text-overflow: ellipsis; + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: $num; + lines: $num; +} +/* 超出行省略 */ +.lines-1 { + @include lines(1); +} +.lines-2 { + @include lines(2); +} +.lines-3 { + @include lines(3); +} +.lines-4 { + @include lines(4); +} +.lines-5 { + @include lines(5); +} +/* 定位 */ +.absolute { + position: absolute !important; +} +.absolute-screen { + position: absolute !important; + left: 0; + right: 0; + top: 0; + bottom: 0; + z-index: 998; +} +.fixed { + position: fixed !important; +} +.fixed-screen { + position: fixed !important; + left: 0; + right: 0; + top: 0; + bottom: 0; + z-index: 999; +} +.sticky { + position: sticky !important; + top: 0; + z-index: 969; +} +/* 内外边距 */ +$margin-map: ( + xs: 8px, + sm: 16px, + md: 24px, + lg: 32px, + xl: 48px +); +@each $parameter in xs, sm, md, lg, xl { + .ma-#{$parameter} { + margin: map-get($map: $margin-map, $key: $parameter); + } + .mt-#{$parameter} { + margin-top: map-get($map: $margin-map, $key: $parameter); + } + .mb-#{$parameter} { + margin-bottom: map-get($map: $margin-map, $key: $parameter); + } + .ml-#{$parameter} { + margin-left: map-get($map: $margin-map, $key: $parameter); + } + .mr-#{$parameter} { + margin-right: map-get($map: $margin-map, $key: $parameter); + } + .mx-#{$parameter} { + margin-left: map-get($map: $margin-map, $key: $parameter); + margin-right: map-get($map: $margin-map, $key: $parameter); + } + .my-#{$parameter} { + margin-top: map-get($map: $margin-map, $key: $parameter); + margin-bottom: map-get($map: $margin-map, $key: $parameter); + } + .pa-#{$parameter} { + padding: map-get($map: $margin-map, $key: $parameter); + } + .pt-#{$parameter} { + padding-top: map-get($map: $margin-map, $key: $parameter); + } + .pb-#{$parameter} { + padding-bottom: map-get($map: $margin-map, $key: $parameter); + } + .pl-#{$parameter} { + padding-left: map-get($map: $margin-map, $key: $parameter); + } + .pr-#{$parameter} { + padding-right: map-get($map: $margin-map, $key: $parameter); + } + .px-#{$parameter} { + padding-left: map-get($map: $margin-map, $key: $parameter); + padding-right: map-get($map: $margin-map, $key: $parameter); + } + .py-#{$parameter} { + padding-top: map-get($map: $margin-map, $key: $parameter); + padding-bottom: map-get($map: $margin-map, $key: $parameter); + } +} diff --git a/src/assets/css/tailwind.css b/src/assets/css/tailwind.css new file mode 100644 index 0000000..7903962 --- /dev/null +++ b/src/assets/css/tailwind.css @@ -0,0 +1,28 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +/* Flexbox 布局 */ +/* Flex Direction */ +.flex-row { + display: flex; +} +.flex-row-reverse { + display: flex; +} +.flex-col { + display: flex; +} +.flex-col-reverse { + display: flex; +} + +/* 解决冲突 */ +.arco-switch{ + background-color: var(--color-fill-4); + -webkit-appearance:unset; + background-image:unset; +} +.arco-switch-checked { + background-color: rgb(var(--primary-6)); +} diff --git a/src/assets/images/login-arrow.png b/src/assets/images/login-arrow.png new file mode 100644 index 0000000..c5297bb Binary files /dev/null and b/src/assets/images/login-arrow.png differ diff --git a/src/assets/images/login-logo.png b/src/assets/images/login-logo.png new file mode 100644 index 0000000..6f0c93d Binary files /dev/null and b/src/assets/images/login-logo.png differ diff --git a/src/axios.d.ts b/src/axios.d.ts new file mode 100644 index 0000000..e8f18b0 --- /dev/null +++ b/src/axios.d.ts @@ -0,0 +1,14 @@ +import { AxiosRequestConfig } from 'axios' + +declare module 'axios' { + export interface AxiosInstance { + (config: AxiosRequestConfig): Promise + request(config: AxiosRequestConfig): Promise + get(url: string, config?: AxiosRequestConfig): Promise + delete(url: string, config?: AxiosRequestConfig): Promise + head(url: string, config?: AxiosRequestConfig): Promise + post(url: string, data?: any, config?: AxiosRequestConfig): Promise + put(url: string, data?: any, config?: AxiosRequestConfig): Promise + patch(url: string, data?: any, config?: AxiosRequestConfig): Promise + } +} diff --git a/src/components/_hooks/use-tree-search.ts b/src/components/_hooks/use-tree-search.ts new file mode 100644 index 0000000..001907f --- /dev/null +++ b/src/components/_hooks/use-tree-search.ts @@ -0,0 +1,62 @@ +import { computed, ref } from 'vue' + +const searchData = (val: string | undefined, data: any[]): any[] => { + if (!val) { + return data + } + const result: any[] = [] + data.forEach((item) => { + if (item.name.toLowerCase().indexOf(val.toLowerCase()) > -1) { + result.push({ ...item }) + } else if (item.children) { + const filterSearchData = searchData(val, item.children) + if (filterSearchData.length) { + result.push({ + ...item, + children: filterSearchData + }) + } + } + }) + return result +} + +const filterData = (tree: any[], ignoreIds: string[]) => { + const traverse = (nodes: any) => { + const result: any[] = [] + nodes.forEach((node: any) => { + if (!ignoreIds.includes(node.id)) { + const children = traverse(node.children) + result.push({ + ...node, + children: children || [] + }) + } + }) + return result + } + + return traverse(tree) +} + +export default (ignoreIds?: string[]) => { + const searchKey = ref('') + + const treeData = ref([]) + const searchTreeData = computed(() => searchData(searchKey.value, treeData.value)) + const realTreeData = computed(() => filterData(searchTreeData.value, ignoreIds || [])) + + let timeout: any + const inputChange = (val: string) => { + if (timeout) clearTimeout(timeout) + timeout = setTimeout(() => { + searchKey.value = val + }, 300) + } + return { + searchKey, + treeData, + realTreeData, + inputChange + } +} diff --git a/src/components/f-dept-tree/f-dept-tree-item-node.vue b/src/components/f-dept-tree/f-dept-tree-item-node.vue new file mode 100644 index 0000000..ebefb95 --- /dev/null +++ b/src/components/f-dept-tree/f-dept-tree-item-node.vue @@ -0,0 +1,36 @@ + + + diff --git a/src/components/f-dept-tree/index.vue b/src/components/f-dept-tree/index.vue new file mode 100644 index 0000000..538b941 --- /dev/null +++ b/src/components/f-dept-tree/index.vue @@ -0,0 +1,126 @@ + + + + + diff --git a/src/components/f-dept-tree/use-dept-tooltip.ts b/src/components/f-dept-tree/use-dept-tooltip.ts new file mode 100644 index 0000000..ba6524e --- /dev/null +++ b/src/components/f-dept-tree/use-dept-tooltip.ts @@ -0,0 +1,21 @@ +import { ref } from 'vue' +import { getStore, setStore } from '@/utils/storage' + +export default () => { + const deptTooltipVisible = ref(false) + if (getStore('dept_tooltip_visible') !== true) { + setTimeout(() => { + deptTooltipVisible.value = true + setTimeout(() => { + deptTooltipVisible.value = false + }, 3000) + }, 1000) + } + const handleCloseDeptTooltip = () => { + setStore('dept_tooltip_visible', true) + } + return { + deptTooltipVisible, + handleCloseDeptTooltip + } +} diff --git a/src/components/f-user-avatar/index.vue b/src/components/f-user-avatar/index.vue new file mode 100644 index 0000000..520f1b5 --- /dev/null +++ b/src/components/f-user-avatar/index.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/src/components/f-user-select-modal/f-user-select-modal-item-node.vue b/src/components/f-user-select-modal/f-user-select-modal-item-node.vue new file mode 100644 index 0000000..6268982 --- /dev/null +++ b/src/components/f-user-select-modal/f-user-select-modal-item-node.vue @@ -0,0 +1,36 @@ + + + diff --git a/src/components/f-user-select-modal/index.vue b/src/components/f-user-select-modal/index.vue new file mode 100644 index 0000000..4331513 --- /dev/null +++ b/src/components/f-user-select-modal/index.vue @@ -0,0 +1,270 @@ + + + diff --git a/src/components/f-user-select-modal/use-adapt-size.ts b/src/components/f-user-select-modal/use-adapt-size.ts new file mode 100644 index 0000000..0b9ff04 --- /dev/null +++ b/src/components/f-user-select-modal/use-adapt-size.ts @@ -0,0 +1,44 @@ +import { inject, computed, Ref } from 'vue' +import { isUndefined } from 'lodash' +import { SystemInfo } from '@/types/types' + +export default () => { + const systemInfo = inject>('systemInfo') + const height = computed(() => { + if (isUndefined(systemInfo)) { + return 100 + } + if (systemInfo.value.clientHeight > 1000) { + return 900 + } + if (systemInfo.value.clientHeight > 800) { + return 600 + } + if (systemInfo.value.clientHeight > 600) { + return 440 + } + if (systemInfo.value.clientHeight > 500) { + return 440 + } + return systemInfo.value.clientHeight - 60 + }) + const width = computed(() => { + if (!systemInfo) { + return '520px' + } + if (systemInfo.value.clientWidth > 1920) { + return '720px' + } + if (systemInfo.value.clientWidth > 1360) { + return '620px' + } + if (systemInfo.value.clientWidth < 600) { + return `${systemInfo.value.clientWidth}px` + } + return '520px' + }) + return { + width, + height + } +} diff --git a/src/components/f-user-select-modal/use-check.ts b/src/components/f-user-select-modal/use-check.ts new file mode 100644 index 0000000..29f77b9 --- /dev/null +++ b/src/components/f-user-select-modal/use-check.ts @@ -0,0 +1,115 @@ +import { TreeNodeData } from '@arco-design/web-vue' +import { Ref, ref } from 'vue' +import _, { isUndefined } from 'lodash' +/** + * 根据ids搜索出nodes + * + * @param ids 选中的ids + * @param tree 树所有节点数据 + */ +const searchTree = (ids: string[], tree: any[]): any[] => { + const finds: any[] = [] + if (tree) { + tree.forEach((node) => { + if (node) { + if (ids.findIndex((id) => id === node.id) >= 0) { + finds.push(node) + } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const findChild = searchTree(ids, node.children) + finds.push(...findChild) + } + }) + } + return _.unionWith(finds, (arrVal, othVal) => { + return arrVal.id === othVal.id + }) +} +export default (treeData: Ref, limit: number) => { + /** + * 选中的ids + */ + const checkedKeys = ref([]) + /** + * 选中的nodes + */ + const checkedNodes = ref([]) + const canCheck = computed(() => limit > checkedKeys.value.length) + /** + * 计算checkedKeys和checkedNodes + * @param node 节点数据{id,name,...} + */ + const checkChange = (node?: any) => { + if (!isUndefined(node)) { + const idx = checkedKeys.value.findIndex((item) => item === node.id) + if (idx >= 0) { + checkedKeys.value.splice(idx, 1) + checkedNodes.value.splice(idx, 1) + } else { + if (!canCheck.value) { + checkedKeys.value.splice(checkedKeys.value.length - 1, 1) + checkedNodes.value.splice(checkedNodes.value.length - 1, 1) + } + checkedKeys.value.push(node.id) + checkedNodes.value.push(node) + } + } + } + + /** + * 提供给a-tree的@select事件 + * @param keys 选择的keys,string[] + * @param data 反馈数据 + */ + const handleSelect = ( + keys: (string | number)[], + data: { selected?: boolean; selectedNodes: TreeNodeData[]; node?: TreeNodeData; e?: Event } + ) => { + if (data.node && data.node.checkable) { + checkChange(data.node) + } + } + + /** + * 提供给a-tree的@check事件 + * @param keys 选择的keys,string[] + * @param data 反馈数据 + */ + const handleCheck = ( + keys: Array, + data: { + checked?: boolean + checkedNodes: TreeNodeData[] + node?: TreeNodeData + e?: Event + halfCheckedKeys: (string | number)[] + halfCheckedNodes: TreeNodeData[] + } + ) => { + if (data.node && data.node.checkable) { + checkChange(data.node) + } + } + + /** + * 取消选择 + * @param node 节点数据{id,name,...} + */ + const handleUncheck = (node: any) => { + checkChange(node) + } + /** + * 让checkedNodes根据checkedKeys同步数据 + */ + const synchronize = () => { + checkedNodes.value = searchTree(checkedKeys.value, treeData.value) + } + return { + checkedKeys, + checkedNodes, + handleSelect, + handleUncheck, + handleCheck, + synchronize + } +} diff --git a/src/components/f-user-select-modal/use-search.ts b/src/components/f-user-select-modal/use-search.ts new file mode 100644 index 0000000..35194b0 --- /dev/null +++ b/src/components/f-user-select-modal/use-search.ts @@ -0,0 +1,24 @@ +import _ from 'lodash' +/** + * 从树结构过滤出用户list + * + * @param tree 树所有节点数据 + */ +export const searchUserList = (tree: any[]): any[] => { + const finds: any[] = [] + if (tree) { + tree.forEach((node) => { + if (node) { + if (node.type === 'user') { + finds.push(node) + } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const findChild = searchUserList(node.children) + finds.push(...findChild) + } + }) + } + return _.unionWith(finds, (arrVal, othVal) => { + return arrVal.id === othVal.id + }) +} diff --git a/src/components/f-user-select/index.vue b/src/components/f-user-select/index.vue new file mode 100644 index 0000000..fa9b14a --- /dev/null +++ b/src/components/f-user-select/index.vue @@ -0,0 +1,93 @@ + + + + + diff --git a/src/components/f-user-select/option.ts b/src/components/f-user-select/option.ts new file mode 100644 index 0000000..9d4adb0 --- /dev/null +++ b/src/components/f-user-select/option.ts @@ -0,0 +1,32 @@ +import { TableOption } from '@/types' + +const option: TableOption = { + api: { + base: '/sys/user', + page: '/page/res' + }, + addBtn: false, + editBtn: false, + delBtn: false, + menuProps: { + display: false + }, + rowSelection: {}, + columns: [ + { + name: '姓名', + prop: 'fullName' + }, + { + name: '手机号', + prop: 'phone' + }, + { + name: '部门', + prop: 'deptNames', + addDisplay: false, + editDisplay: false + } + ] +} +export default option diff --git a/src/components/verifition/Verify.vue b/src/components/verifition/Verify.vue new file mode 100644 index 0000000..1278ec9 --- /dev/null +++ b/src/components/verifition/Verify.vue @@ -0,0 +1,439 @@ + + + diff --git a/src/components/verifition/Verify/VerifyPoints.vue b/src/components/verifition/Verify/VerifyPoints.vue new file mode 100644 index 0000000..c384b6f --- /dev/null +++ b/src/components/verifition/Verify/VerifyPoints.vue @@ -0,0 +1,291 @@ + + diff --git a/src/components/verifition/Verify/VerifySlide.vue b/src/components/verifition/Verify/VerifySlide.vue new file mode 100644 index 0000000..cb6d748 --- /dev/null +++ b/src/components/verifition/Verify/VerifySlide.vue @@ -0,0 +1,423 @@ + + diff --git a/src/components/verifition/api/index.js b/src/components/verifition/api/index.js new file mode 100644 index 0000000..588ed4a --- /dev/null +++ b/src/components/verifition/api/index.js @@ -0,0 +1,23 @@ +/** + * 此处可直接引用自己项目封装好的 axios 配合后端联调 + */ + +import request from '@/utils/axios' // 组件内部封装的axios + +// 获取验证图片 以及token +export function reqGet(data) { + return request({ + url: '/captcha/get', + method: 'post', + data + }) +} + +// 滑动或者点选验证 +export function reqCheck(data) { + return request({ + url: '/captcha/check', + method: 'post', + data + }) +} diff --git a/src/components/verifition/utils/ase.js b/src/components/verifition/utils/ase.js new file mode 100644 index 0000000..5326112 --- /dev/null +++ b/src/components/verifition/utils/ase.js @@ -0,0 +1,15 @@ +import CryptoJS from 'crypto-js' +/** + * @word 要加密的内容 + * @keyWord String 服务器随机返回的关键字 + * */ +// eslint-disable-next-line import/prefer-default-export +export function aesEncrypt(word, keyWord = 'XwKsGlMcdPMEhR1B') { + const key = CryptoJS.enc.Utf8.parse(keyWord) + const srcs = CryptoJS.enc.Utf8.parse(word) + const encrypted = CryptoJS.AES.encrypt(srcs, key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7 + }) + return encrypted.toString() +} diff --git a/src/components/verifition/utils/util.js b/src/components/verifition/utils/util.js new file mode 100644 index 0000000..b228331 --- /dev/null +++ b/src/components/verifition/utils/util.js @@ -0,0 +1,101 @@ +/* eslint-disable */ +export function resetSize(vm) { + let img_width + let img_height + let bar_width + let bar_height // 图片的宽度、高度,移动条的宽度、高度 + + const parentWidth = vm.$el.parentNode.offsetWidth || window.offsetWidth + const parentHeight = vm.$el.parentNode.offsetHeight || window.offsetHeight + if (vm.imgSize.width.indexOf('%') != -1) { + img_width = `${(parseInt(vm.imgSize.width) / 100) * parentWidth}px` + } else { + img_width = vm.imgSize.width + } + + if (vm.imgSize.height.indexOf('%') != -1) { + img_height = `${(parseInt(vm.imgSize.height) / 100) * parentHeight}px` + } else { + img_height = vm.imgSize.height + } + + if (vm.barSize.width.indexOf('%') != -1) { + bar_width = `${(parseInt(vm.barSize.width) / 100) * parentWidth}px` + } else { + bar_width = vm.barSize.width + } + + if (vm.barSize.height.indexOf('%') != -1) { + bar_height = `${(parseInt(vm.barSize.height) / 100) * parentHeight}px` + } else { + bar_height = vm.barSize.height + } + + return { imgWidth: img_width, imgHeight: img_height, barWidth: bar_width, barHeight: bar_height } +} + +export const _code_chars = [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'g', + 'h', + 'i', + 'j', + 'k', + 'l', + 'm', + 'n', + 'o', + 'p', + 'q', + 'r', + 's', + 't', + 'u', + 'v', + 'w', + 'x', + 'y', + 'z', + 'A', + 'B', + 'C', + 'D', + 'E', + 'F', + 'G', + 'H', + 'I', + 'J', + 'K', + 'L', + 'M', + 'N', + 'O', + 'P', + 'Q', + 'R', + 'S', + 'T', + 'U', + 'V', + 'W', + 'X', + 'Y', + 'Z' +] +export const _code_color1 = ['#fffff0', '#f0ffff', '#f0fff0', '#fff0f0'] +export const _code_color2 = ['#FF0033', '#006699', '#993366', '#FF9900', '#66CC66', '#FF33CC'] diff --git a/src/entity/global.ts b/src/entity/global.ts new file mode 100644 index 0000000..d7fe2ec --- /dev/null +++ b/src/entity/global.ts @@ -0,0 +1,5 @@ +export interface Page { + current: number + size: number + records: T[] +} diff --git a/src/entity/upms/dict.ts b/src/entity/upms/dict.ts new file mode 100644 index 0000000..12466da --- /dev/null +++ b/src/entity/upms/dict.ts @@ -0,0 +1,10 @@ +import { DictType } from '@/enums/upms/dict-type' + +export interface SysDict { + id?: string + name: string + dicCode: string + description?: string + type: DictType + sort: number +} diff --git a/src/entity/upms/index.ts b/src/entity/upms/index.ts new file mode 100644 index 0000000..906caa9 --- /dev/null +++ b/src/entity/upms/index.ts @@ -0,0 +1 @@ +export { SysDict } from './dict' diff --git a/src/entity/upms/notify-channel.ts b/src/entity/upms/notify-channel.ts new file mode 100644 index 0000000..c5ed9be --- /dev/null +++ b/src/entity/upms/notify-channel.ts @@ -0,0 +1,7 @@ +import { notifyChannelType } from '@/enums/upms/notify-channel-type' + +export interface SysNotifyChannel { + id?: string + type: notifyChannelType + config: string +} diff --git a/src/entity/upms/user.ts b/src/entity/upms/user.ts new file mode 100644 index 0000000..afaee75 --- /dev/null +++ b/src/entity/upms/user.ts @@ -0,0 +1,20 @@ +import { activeStatus } from '@/enums/active_status' +import { PlatformType } from '@/enums/platform_type' + +interface UserClaims { + tenantShortName: string + platformType: PlatformType + isSystem: boolean + status: activeStatus + tenantLogo: string +} + +export interface User { + id: string + phone: string + fullName: string + tenantName: string + permissions: Array + claims: UserClaims + token: string +} diff --git a/src/enums/active_status.ts b/src/enums/active_status.ts new file mode 100644 index 0000000..4c97c36 --- /dev/null +++ b/src/enums/active_status.ts @@ -0,0 +1,20 @@ +export const userActiveStatus = [ + { + value: 'normal', + label: '正常' + }, + { + value: 'suspend', + label: '已停用' + } +] +const dic = [ + ...userActiveStatus, + { + value: 'not_active', + label: '未激活' + } +] as const + +export default dic +export type activeStatus = typeof dic[number]['value'] diff --git a/src/enums/gender.ts b/src/enums/gender.ts new file mode 100644 index 0000000..8671c49 --- /dev/null +++ b/src/enums/gender.ts @@ -0,0 +1,10 @@ +export default [ + { + value: 'male', + label: '男' + }, + { + value: 'female', + label: '女' + } +] diff --git a/src/enums/menu_type.ts b/src/enums/menu_type.ts new file mode 100644 index 0000000..ae13441 --- /dev/null +++ b/src/enums/menu_type.ts @@ -0,0 +1,10 @@ +export default [ + { + value: 'menu', + label: '菜单' + }, + { + value: 'button', + label: '按钮' + } +] diff --git a/src/enums/platform_type.ts b/src/enums/platform_type.ts new file mode 100644 index 0000000..49cea26 --- /dev/null +++ b/src/enums/platform_type.ts @@ -0,0 +1,13 @@ +const dic = [ + { + value: 'sys', + label: '平台' + }, + { + value: 'enterprise', + label: '企业' + } +] as const + +export default dic +export type PlatformType = typeof dic[number]['value'] diff --git a/src/enums/upms/dict-type.ts b/src/enums/upms/dict-type.ts new file mode 100644 index 0000000..68fbb51 --- /dev/null +++ b/src/enums/upms/dict-type.ts @@ -0,0 +1,14 @@ +const dic = [ + { + value: 'global', + label: '全局字典' + }, + { + value: 'default', + label: '默认字典' + } +] as const + +export default dic +export const DictTypeDic = dic +export type DictType = typeof dic[number]['value'] diff --git a/src/enums/upms/notify-channel-type.ts b/src/enums/upms/notify-channel-type.ts new file mode 100644 index 0000000..7adf43f --- /dev/null +++ b/src/enums/upms/notify-channel-type.ts @@ -0,0 +1,17 @@ +const dic = [ + { + value: 'mail', + label: '邮箱' + }, + { + value: 'ding', + label: '钉钉' + }, + { + value: 'wechat', + label: '企业微信' + } +] as const + +export default dic +export type notifyChannelType = typeof dic[number]['value'] diff --git a/src/enums/util.ts b/src/enums/util.ts new file mode 100644 index 0000000..980d66e --- /dev/null +++ b/src/enums/util.ts @@ -0,0 +1,8 @@ +// eslint-disable-next-line import/prefer-default-export +export const filterLabel = (value: string, dicData: readonly any[]) => { + const find = dicData.find((data: any) => data.value === value) + if (find) { + return find.label + } + return value +} diff --git a/src/env.d.ts b/src/env.d.ts new file mode 100644 index 0000000..f766e18 --- /dev/null +++ b/src/env.d.ts @@ -0,0 +1,15 @@ +/// + +declare module '*.vue' { + import { DefineComponent } from 'vue' + // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types + const component: DefineComponent<{}, {}, any> + export default component +} + +// eslint-disable-next-line no-unused-vars +declare interface Window { + axios: any +} + +declare module 'crco' diff --git a/src/hooks/version.ts b/src/hooks/version.ts new file mode 100644 index 0000000..f84048e --- /dev/null +++ b/src/hooks/version.ts @@ -0,0 +1,55 @@ +import { Button, Notification } from '@arco-design/web-vue' +import axios from 'axios' + +let timer: any +/** + * 版本更新监听器,当有新版本,右上角弹出消息通知 + * @param time 检查间隔,单位秒,默认5分钟 + */ +export const useVersionUpdateListener = (time = 5 * 60) => { + if (timer !== undefined) { + return + } + if (import.meta.env.PROD) { + let indexJs: string + timer = setInterval(() => { + axios + .request({ + baseURL: '', + url: `/manifest.json?t=${Date.now()}` + }) + .then((res) => { + let file + try { + file = res.data['index.html'].file + } catch (_) { + return + } + if (!indexJs) { + indexJs = file + } + if (indexJs !== file) { + clearInterval(timer) + Notification.info({ + duration: 0, + content: '发现新版本,点击获取最新版本。', + footer: () => + h( + Button, + { + size: 'small', + text: true, + type: 'primary', + onClick: () => { + window.location.reload() + } + }, + { default: () => h('span', '刷新') } + ) + }) + } + }) + .catch(() => {}) + }, time * 1000) + } +} diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..e34462b --- /dev/null +++ b/src/main.ts @@ -0,0 +1,36 @@ +import { createPinia } from 'pinia' +import ArcoVue, { Notification } from '@arco-design/web-vue' + +import '@arco-design/web-vue/dist/arco.less' +import ArcoVueIcon from '@arco-design/web-vue/es/icon' +import { createApp } from 'vue' +import crco from 'crco' +import isToday from 'dayjs/plugin/isToday' +import dayjs from 'dayjs' +import axios from './utils/axios' +import router from './router/index' +import App from './App.vue' +import 'crco/dist/index.css' +import './assets/css/arco.scss' +import './assets/css/tailwind.css' + +dayjs.extend(isToday) + +const pinia = createPinia() + +window.axios = axios + +const app = createApp(App) + +app + .use(pinia) + .use(router) + .use(ArcoVue) + .use(ArcoVueIcon) + .use(crco, { + axios, + method: 'POST' + }) + .mount('#app') +// eslint-disable-next-line no-underscore-dangle +Notification._context = app._context diff --git a/src/mixins/system_info.ts b/src/mixins/system_info.ts new file mode 100644 index 0000000..0dbc18c --- /dev/null +++ b/src/mixins/system_info.ts @@ -0,0 +1,70 @@ +import { nextTick, ref } from 'vue' +import { SystemInfo } from '@/types/types' + +const systemInfo = ref({ + offsetWidth: 0, + offsetHeight: 0, + clientWidth: 0, + clientHeight: 0, + scrollWidth: 0, + scrollHeight: 0, + isWideScreen: false, + isMobile: false, + isAndroid: false, + isIos: false, + isXsScreen: false, // <576 + isSmScreen: false, // >=576 + isMdScreen: false, // >=768 + isLgScreen: false, // >=992 + isXlScreen: false, // >=1200 + isXxlScreen: false, // >=1600 + xsScreen: false, // <576 + smScreen: false, // >=576 + mdScreen: false, // >=768 + lgScreen: false, // >=992 + xlScreen: false, // >=1200 + xxlScreen: false // >=1600 +}) +const initUa = () => { + const ua = navigator.userAgent + systemInfo.value.isIos = !!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) + systemInfo.value.isAndroid = + ua.indexOf('Android') > -1 || ua.indexOf('Adr') > -1 || /micromessenger/.test(ua) + systemInfo.value.isMobile = systemInfo.value.isIos || systemInfo.value.isAndroid +} +initUa() +const resetSizeScreen = () => { + systemInfo.value.isXsScreen = document.body.clientWidth < 576 + systemInfo.value.isSmScreen = document.body.clientWidth >= 576 && document.body.clientWidth < 768 + systemInfo.value.isMdScreen = document.body.clientWidth >= 768 && document.body.clientWidth < 992 + systemInfo.value.isLgScreen = document.body.clientWidth >= 992 && document.body.clientWidth < 1200 + systemInfo.value.isXlScreen = + document.body.clientWidth >= 1200 && document.body.clientWidth < 1600 + systemInfo.value.isXxlScreen = document.body.clientWidth >= 1600 + + systemInfo.value.xsScreen = document.body.clientWidth < 576 + systemInfo.value.smScreen = document.body.clientWidth >= 576 + systemInfo.value.mdScreen = document.body.clientWidth >= 768 + systemInfo.value.lgScreen = document.body.clientWidth >= 992 + systemInfo.value.xlScreen = document.body.clientWidth >= 1200 + systemInfo.value.xxlScreen = document.body.clientWidth >= 1600 + + systemInfo.value.isWideScreen = document.body.clientWidth >= 1200 +} +const resize = () => { + nextTick().then(() => { + if (document && document.body) { + systemInfo.value.offsetWidth = document.body.offsetWidth + systemInfo.value.offsetHeight = document.body.offsetHeight + systemInfo.value.clientWidth = document.body.clientWidth + systemInfo.value.clientHeight = document.body.clientHeight + systemInfo.value.scrollWidth = document.body.scrollWidth + systemInfo.value.scrollHeight = document.body.scrollHeight + resetSizeScreen() + } + }) +} +resize() +window.addEventListener('resize', resize) + +export default systemInfo diff --git a/src/pages/common/404.vue b/src/pages/common/404.vue new file mode 100644 index 0000000..6d1f6f0 --- /dev/null +++ b/src/pages/common/404.vue @@ -0,0 +1,18 @@ + + diff --git a/src/pages/home/index.vue b/src/pages/home/index.vue new file mode 100644 index 0000000..b70e21b --- /dev/null +++ b/src/pages/home/index.vue @@ -0,0 +1,15 @@ + + diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue new file mode 100644 index 0000000..44bdf86 --- /dev/null +++ b/src/pages/index/index.vue @@ -0,0 +1,124 @@ + + + + + diff --git a/src/pages/index/m-header/index.vue b/src/pages/index/m-header/index.vue new file mode 100644 index 0000000..c545810 --- /dev/null +++ b/src/pages/index/m-header/index.vue @@ -0,0 +1,169 @@ + + + + + + diff --git a/src/pages/index/m-header/use-menu.ts b/src/pages/index/m-header/use-menu.ts new file mode 100644 index 0000000..aaae54f --- /dev/null +++ b/src/pages/index/m-header/use-menu.ts @@ -0,0 +1,29 @@ +import { computed, inject, Ref, ref, watchEffect } from 'vue' +import { isUndefined } from 'lodash' +import { SystemInfo } from '@/types/types' + +export default () => { + const systemInfo = inject>('systemInfo') + const visibleMenu = ref(false) + const smallScreen = computed(() => { + if (isUndefined(systemInfo)) { + return false + } + return systemInfo.value.clientWidth < 768 + }) + const collapsed = ref(systemInfo && !systemInfo.value.isWideScreen) + watchEffect(() => { + if (!isUndefined(systemInfo)) { + if (!smallScreen.value) { + collapsed.value = !systemInfo!.value.isWideScreen + } else { + collapsed.value = false + } + } + }) + return { + collapsed, + visibleMenu, + smallScreen + } +} diff --git a/src/pages/index/m-sider/index.vue b/src/pages/index/m-sider/index.vue new file mode 100644 index 0000000..2852369 --- /dev/null +++ b/src/pages/index/m-sider/index.vue @@ -0,0 +1,110 @@ + + + diff --git a/src/pages/login/index.vue b/src/pages/login/index.vue new file mode 100644 index 0000000..92669cf --- /dev/null +++ b/src/pages/login/index.vue @@ -0,0 +1,590 @@ + + + + + diff --git a/src/router/index.ts b/src/router/index.ts new file mode 100644 index 0000000..67b11e3 --- /dev/null +++ b/src/router/index.ts @@ -0,0 +1,74 @@ +import { createRouter, createWebHistory, RouteLocationNormalized, RouteRecordRaw } from 'vue-router' +import { getStore } from '@/utils/storage' +import addRoutes from './util' + +const routes: Array = [ + { + path: '/login', + name: '登录', + component: () => import('@/pages/login/index.vue') + }, + { + path: '/', + name: '首页', + component: () => import('@/pages/index/index.vue'), + children: [ + { + path: '/', + meta: { + keepAlive: true + }, + component: () => import('@/pages/home/index.vue') + }, + { + path: '/user/info', + name: '个人中心', + component: () => import('@/views/upms/user/info/index.vue'), + children: [ + { + path: '/user/info', + name: '个人信息', + component: () => import('@/views/upms/user/info/info.vue') + }, + { + path: '/user/info/password', + name: '修改密码', + component: () => import('@/views/upms/user/info/pwd.vue') + } + ] + }, + { + path: '/404', + name: '页面未找到', + component: () => import('@/pages/common/404.vue') + } + ] + }, + { path: '/:pathMatch(.*)*', redirect: '/404' } +] + +const router = createRouter({ + history: createWebHistory(), + routes +}) + +// 赋值标题 +router.beforeEach((to: RouteLocationNormalized, from, next) => { + if (to.name) { + document.title = `${String(to.meta.name ? to.meta.name : to.name)} - FxBoot` + } else { + document.title = 'FxBoot' + } + // if (getStore('token') || to.fullPath === '/login') { + // next() + // } else { + // next('/login') + // } + next() +}) +// 若有缓存,直接设置 +const menus = getStore('menus') +if (menus) { + addRoutes(menus, router) +} +export default router diff --git a/src/router/util.ts b/src/router/util.ts new file mode 100644 index 0000000..7efa12d --- /dev/null +++ b/src/router/util.ts @@ -0,0 +1,44 @@ +import router from './index' + +const hasChildren = (item: any) => { + return item.children && item.children.length > 0 +} + +const viewPage = import.meta.glob('/src/views/**/index.vue') + +const getRoute = (item: any) => { + if (item.path.indexOf('http') >= 0) { + return null + } + return { + path: item.path, + name: item.path, + meta: { + name: item.name, + keepAlive: item.keepAlive === '1' + }, + component: viewPage[`/src/views${item.path}/index.vue`] + } +} + +const addRoute = (routerCtx: any, route: any) => { + if (route) { + routerCtx.addRoute('首页', route) + } +} + +export default function addRoutes(menus: any, tempRouter?: any) { + let routerCtx = tempRouter + if (!routerCtx) { + routerCtx = router + } + menus.forEach((item: any) => { + if (hasChildren(item)) { + item.children.forEach((child: any) => { + addRoute(routerCtx, getRoute(child)) + }) + } else { + addRoute(routerCtx, getRoute(item)) + } + }) +} diff --git a/src/rules/login-rules.ts b/src/rules/login-rules.ts new file mode 100644 index 0000000..a603807 --- /dev/null +++ b/src/rules/login-rules.ts @@ -0,0 +1,56 @@ +import { validateLowerCase, validateEmail, validateNumberAndLowerCase } from '@/utils/validate' + +function usernameValidator(value: string | undefined, callback: (errMsg?: string) => void) { + if (value === '' || !value) { + callback('用户名不能为空') + } else if (value.length < 3 || value.length > 20) { + callback('用户名长度为3-20个字符') + } else if (!validateLowerCase(value.substring(0, 1))) { + callback('用户名只能由小写字母开头') + } else if (!validateNumberAndLowerCase(value)) { + callback('用户名只能由小写字母和数字组成') + } else { + callback() + } +} + +function phoneValidator(value: string | undefined, callback: (errMsg?: string) => void) { + if (value === '' || !value) { + callback('手机号不能为空') + } else if (value.length !== 11) { + callback('手机号长度为11个字符') + } else if (!/^1[0-9]{10}$/.test(value)) { + callback('手机号格式错误') + } else { + callback() + } +} + +export const passwordRule = [ + { required: true, message: '密码不能为空' }, + { minLength: 8, message: '密码长度不小于8个字符' } +] + +export const usernameRule = [ + { required: true, message: '用户名不能为空' }, + { validator: usernameValidator } +] + +export const phoneRule = [ + { required: true, message: '手机号不能为空' }, + { validator: phoneValidator } +] + +function emailValidator(value: string | undefined, callback: (errMsg?: string) => void) { + if (value === '' || !value) { + callback('邮箱不能为空') + } else if (!validateEmail(value)) { + callback('邮箱格式错误') + } else { + callback() + } +} +export const emailRule = [ + { required: true, message: '邮箱不能为空' }, + { validator: emailValidator } +] diff --git a/src/rules/user-rules.ts b/src/rules/user-rules.ts new file mode 100644 index 0000000..7455f9c --- /dev/null +++ b/src/rules/user-rules.ts @@ -0,0 +1,122 @@ +import { validateLowerCase, validateNumberAndLowerCase } from '@/utils/validate' + +const USERNAME_DIC: Array = [ + 'admin', + 'zhangsan', + 'lisi', + 'wangwu', + 'abc', + 'asdf', + 'qwer', + 'zxcv', + '123', + 'aaa', + 'bbb', + 'ccc', + 'ddd', + 'eee', + 'fff', + 'ggg', + 'hhh', + 'iii', + 'jjj', + 'kkk', + 'lll', + 'mmm', + 'nnn', + 'ooo', + 'ppp', + 'qqq', + 'rrr', + 'sss', + 'ttt', + 'uuu', + 'vvv', + 'www', + 'xxx', + 'yyy', + 'zzz' +] +/** + * 校验用户名 + * @param rule + * @param value + * @param callback + */ +function usernameValidator(value: string | undefined, callback: (errMsg?: string) => void) { + if (value === '' || !value) { + callback('用户名不能为空') + } else if (value.length < 3 || value.length > 20) { + callback('用户名长度为3-20个字符') + } else if (!validateLowerCase(value.substring(0, 1))) { + callback('用户名只能由小写字母开头') + } else if (!validateNumberAndLowerCase(value)) { + callback('用户名只能由小写字母和数字组成') + } else { + for (let i = 0; i < USERNAME_DIC.length; i += 1) { + const str = USERNAME_DIC[i] + if (value.indexOf(str) >= 0) { + callback(`请勿包含简易字符[${str}]`) + return + } + } + callback() + } +} + +/** + * 校验密码 + * @param rule + * @param value + * @param callback + */ +export function passwordValidator(value: string | undefined, callback: (errMsg?: string) => void) { + if (value === '' || !value) { + callback() + } else if (value.length < 6 || value.length > 20) { + callback('密码长度在6-20个字符之间') + } + // else if (!/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-./\\]).{8,}$/.test(value)) { + // callback('密码须至少包含一个大小写字母、数字和特殊符合') + // } + else { + callback() + } +} +/** + * 校验支付密码 + * @param rule + * @param value + * @param callback + */ +export function passwordPayValidator( + value: string | undefined, + callback: (errMsg?: string) => void +) { + if (value === '' || !value) { + callback() + } else if (value.length < 6 || value.length > 20) { + callback('密码长度在6-20个字符之间') + } else { + callback() + } +} + +export const usernameRule = [ + { required: true, message: '用户名不能为空' }, + { validator: usernameValidator } +] + +export const passwordRule = [ + { required: true, message: '密码不能为空' }, + { + validator: passwordValidator + } +] +export const passwordPayRule = [ + { required: true, message: '支付密码不能为空' }, + { + validator: passwordPayValidator + } +] +export const passwordWithBlankRule = [{ validator: passwordValidator }] diff --git a/src/store/README.md b/src/store/README.md new file mode 100644 index 0000000..8cf11ec --- /dev/null +++ b/src/store/README.md @@ -0,0 +1,25 @@ +## How to use ? + +### 1.import + +```js +import { useUserStore } from '@/store/user' +const userStore = useUserStore() + +// get +userStore.name +userStore.avatar + +// set +userStore.name = 'zhangsan' + +userStore.$patch({ + name: 'zhangsan', + avatar: 'https://xxxxxx.jpg' +}) + +// function +userStore.login(form) +// function support async +await userStore.login(form) +``` diff --git a/src/store/menu/index.ts b/src/store/menu/index.ts new file mode 100644 index 0000000..c9a9b55 --- /dev/null +++ b/src/store/menu/index.ts @@ -0,0 +1,55 @@ +import { defineStore } from 'pinia' +import { getStore, setStore } from '@/utils/storage' +import { Menu, MenuState } from './types' +import { getMenuTree } from '@/api/upms/menu' +import addRoutes from '@/router/util' + +export const useMenuStore = defineStore('menu', { + state: (): MenuState => ({ + menus: getStore('menus') || [], + loading: 'wait' + }), + getters: { + /** + * 展示的菜单,只展示有字节点的 + * @param state + */ + showMenus(state: MenuState): any[] { + const menus: any[] = [] + state.menus.forEach((item: any) => { + const isSubmenu = item.children && item.children.length > 0 + if (isSubmenu || item.path === '/') { + menus.push(item) + } + }) + return menus + } + }, + actions: { + setMenus(menus: Array) { + setStore('menus', menus) + this.menus = menus + }, + /** + * 加载菜单 + */ + loadMenus() { + // 延迟设为加载中避免骨架屏一闪而过 + if (this.menus.length > 0) { + this.loading = 'done' + } else { + setTimeout(() => { + if (this.loading !== 'done') { + this.loading = 'ing' + } + }, 250) + } + // 请求后端获取菜单 + getMenuTree().then((res: any) => { + addRoutes(res) + this.setMenus(res) + this.loading = 'done' + }) + } + } +}) diff --git a/src/store/menu/types.ts b/src/store/menu/types.ts new file mode 100644 index 0000000..4c5d659 --- /dev/null +++ b/src/store/menu/types.ts @@ -0,0 +1,14 @@ +import type { PlatformType } from '@/enums/platform_type' + +export interface Menu { + name: string + platformType: PlatformType +} + +export interface MenuState { + menus: Menu[] + /** + * 加载状态,未加载,加载中,加载结束 + */ + loading: 'wait' | 'ing' | 'done' +} diff --git a/src/store/user/index.ts b/src/store/user/index.ts new file mode 100644 index 0000000..7eeee98 --- /dev/null +++ b/src/store/user/index.ts @@ -0,0 +1,77 @@ +import { defineStore } from 'pinia' +import { getStore, removeStore, setStore } from '@/utils/storage' +import { UserState } from './types' +import { User } from '@/entity/upms/user' +import axios from '@/utils/axios' + +const defaultUser: User = { + id: '', + token: '', + claims: { + status: '', + isSystem: false, + tenantShortName: '-', + platformType: 'sys', + tenantLogo: '' + }, + phone: '', + fullName: '', + tenantName: '-', + permissions: [] +} + +// eslint-disable-next-line import/prefer-default-export +export const useUserStore = defineStore('user', { + state: (): UserState => ({ + user: getStore('userInfo') || defaultUser, + tenantId: getStore('tenantId') + }), + + getters: { + userInfo(state: UserState): UserState { + return { ...state } + }, + permissions(state: UserState): any { + const obj = {} + state.user.permissions.forEach((item) => { + // @ts-ignore + obj[item] = true + }) + return obj + } + }, + + actions: { + // Get user's information + async info() { + // this.name,this.avatar + // const res = await getUserInfo() + // this.setInfo(res.data) + }, + /** + * 加载菜单 + */ + loadPermissions() { + // 延迟设为加载中避免骨架屏一闪而过 + axios.post('/sys/user/get/permissions').then((res) => { + this.login({ + ...this.user, + permissions: res + }) + }) + }, + // Login + async login(info: User) { + this.user = info + setStore('userInfo', info) + // const res = await userLogin(loginForm) + // setToken(res.data.token) + }, + + logout() { + this.user = defaultUser + removeStore('userInfo') + removeStore('token') + } + } +}) diff --git a/src/store/user/types.ts b/src/store/user/types.ts new file mode 100644 index 0000000..a94b750 --- /dev/null +++ b/src/store/user/types.ts @@ -0,0 +1,6 @@ +import { User } from '@/entity/upms/user' + +export interface UserState { + user: User + tenantId: string +} diff --git a/src/types/index.ts b/src/types/index.ts new file mode 100644 index 0000000..58f6b9c --- /dev/null +++ b/src/types/index.ts @@ -0,0 +1,6 @@ +export type { CrcoOptions, RequestMethod, ResponsiveValue } from 'crco/src/types' +export type { FormColumn, DicItem, OnChange } from 'crco/src/types/column' +export type { FormOption } from 'crco/src/types/form' +export type { TableOption, TableColumn } from 'crco/src/types/table' +export type { PageCallback, PageRes } from 'crco/src/types/page' +export type { ListFormOption } from 'crco/src/types/list-form' diff --git a/src/types/types.ts b/src/types/types.ts new file mode 100644 index 0000000..6ac2720 --- /dev/null +++ b/src/types/types.ts @@ -0,0 +1,26 @@ +/* eslint-disable no-unused-vars */ + +export type SystemInfo = { + offsetWidth: number + offsetHeight: number + clientWidth: number + clientHeight: number + scrollWidth: number + scrollHeight: number + isWideScreen: boolean + isMobile: boolean + isAndroid: boolean + isIos: boolean + isXsScreen: boolean // <576 + isSmScreen: boolean // >=576 + isMdScreen: boolean // >=768 + isLgScreen: boolean // >=992 + isXlScreen: boolean // >=1200 + isXxlScreen: boolean // >=1600 + xsScreen: boolean // <576 + smScreen: boolean // >=576 + mdScreen: boolean // >=768 + lgScreen: boolean // >=992 + xlScreen: boolean // >=1200 + xxlScreen: boolean // >=1600 +} diff --git a/src/utils/axios-response.ts b/src/utils/axios-response.ts new file mode 100644 index 0000000..77624c4 --- /dev/null +++ b/src/utils/axios-response.ts @@ -0,0 +1,88 @@ +import { Message } from '@arco-design/web-vue' +import { isString, throttle } from 'lodash' +// @ts-ignore +import qs from 'qs' +import router from '@/router' +import { removeStore } from './storage' + +const show = throttle( + (msg: string) => { + Message.error({ + content: isString(msg) ? msg : '系统错误,请联系平台管理员', + duration: 6 * 1000, + closable: true + }) + }, + 1000, + { trailing: false } +) +let oldMsg = '' +let timestamp = new Date().getTime() +const showMessage = (msg: string) => { + if (oldMsg !== msg) { + timestamp = new Date().getTime() + oldMsg = msg + Message.error({ + content: isString(msg) ? msg : '系统错误,请联系平台管理员', + duration: 6 * 1000, + closable: true + }) + return + } + const now = new Date().getTime() + if (now - timestamp > 1000) { + show(msg) + } +} + +export default (error: any) => { + // eslint-disable-next-line no-console + console.log('=======[Axios Error res]', error) + let msg + if (error.status || error.response) { + const { status, data, statusText, config } = error.status ? error : error.response + if (data && (data.code === -1 || data.code > 0)) { + msg = data.msg ? data.msg : data.data + } else { + msg = data || statusText + } + if (status === 401 || msg === '请先登录' || msg === '请先登陆') { + msg = '登录过期,请重新登陆' + removeStore('token') + if (window.location.pathname !== '/') { + const path = qs.stringify({ + ...router.currentRoute.value.query, + redirect: undefined + }) + router.push(`/login?redirect=${window.location.pathname}${encodeURIComponent(`?${path}`)}`) + } else { + router.push('/login') + } + } else if (status === 404) { + msg = '接口地址错误,请通过右上角的反馈入口提交错误信息' + } else if (status === 500 && msg === 'Internal Server Error') { + msg = '服务器维护中,请十分钟后再试' + } else if (status === 502) { + msg = '服务器维护中,请十分钟后再试' + } + if (config.headers && config.headers.toast !== false && config.headers.toast !== 'false') { + showMessage(msg) + } + return Promise.reject(msg) + } + if (error && error.message.indexOf('timeout of 20000ms exceeded') >= 0) { + msg = '网络连接失败,请稍后重试' + Message.error({ + content: msg, + closable: true + }) + } else { + msg = `请求失败:${error.message}` + Message.error({ + content: msg, + duration: 0, + closable: true + }) + } + return Promise.reject(msg) +} diff --git a/src/utils/axios.ts b/src/utils/axios.ts new file mode 100644 index 0000000..d5d6bbe --- /dev/null +++ b/src/utils/axios.ts @@ -0,0 +1,53 @@ +import Axios from 'axios' +// @ts-ignore +import qs from 'qs' +import { isUndefined } from 'lodash' +import axiosResponse from './axios-response' +import { getStore } from './storage' + +const baseURL = '/webapi' + +const axios = Axios.create({ + timeout: 20000, // 请求超时 20s + paramsSerializer(params) { + return qs.stringify(params, { arrayFormat: 'repeat' }) + } +}) + +// 前置拦截器(发起请求之前的拦截) +axios.interceptors.request.use( + (request) => { + if (request.url && !request.url.startsWith(baseURL) && !request.url.startsWith('http')) { + request.url = baseURL + (request.url.startsWith('/') ? request.url : `/${request.url}`) + } + // request.headers.secret = encrypt(new Date().getTime().toString()) + const token = getStore('token') + if (token) { + request.headers.Authorization = `Bearer ${token}` + } + return request + }, + (error) => Promise.reject(error) +) + +// 后置拦截器(获取到响应时的拦截) +axios.interceptors.response.use((response) => { + if (response.status === 200) { + if (response.config.responseType === 'blob') { + return Promise.resolve(response) + } + if (isUndefined(response.data.code)) { + return Promise.resolve(response.data) + } + if (response.data.code !== 0) { + return axiosResponse(response) + } + if (response.data.code === 0) { + return Promise.resolve(response.data.data) + } + return Promise.resolve(response.data) + } + return axiosResponse(response) +}, axiosResponse) + +export default axios diff --git a/src/utils/crypto.ts b/src/utils/crypto.ts new file mode 100644 index 0000000..17ecfc0 --- /dev/null +++ b/src/utils/crypto.ts @@ -0,0 +1,23 @@ +// @ts-ignore +import * as CryptoJS from 'crypto-js' + +const AES_KEY = 'fxboot!!fxboot!!' +export function encrypt(val: string) { + const key = CryptoJS.enc.Latin1.parse(AES_KEY) + const encrypted = CryptoJS.AES.encrypt(val, key, { + iv: key, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.Pkcs7 + }) + return encrypted.toString() +} + +export function decrypt(val: string) { + const key = CryptoJS.enc.Latin1.parse(AES_KEY) + const decrypted = CryptoJS.AES.decrypt(val, key, { + iv: key, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.Pkcs7 + }) + return CryptoJS.enc.Utf8.stringify(decrypted).toString() +} diff --git a/src/utils/excel.ts b/src/utils/excel.ts new file mode 100644 index 0000000..88f4414 --- /dev/null +++ b/src/utils/excel.ts @@ -0,0 +1,83 @@ +import * as xlsx from 'xlsx' + +export type Column = { + name: string + prop: string +} + +/** + * 导出xlsx文件 + * @param title 文件名,不包含后缀 + * @param column 导出对象结构 + * @param data 导出数据 + * @param strongData 是否强数据,默认true,若数据空则返回错误 + */ +export const exportExcel = ( + title: string, + columns: Column[], + data: any[] = [], + strongData?: boolean +) => { + return new Promise((RES, REJ) => { + try { + if (columns.length <= 0) { + REJ(Error('未设置表头')) + return + } + if (strongData !== false && data.length === 0) { + REJ(Error('无可导出数据')) + return + } + const wb = xlsx.utils.book_new() + wb.SheetNames.push('sheet') + wb.Sheets.sheet = xlsx.utils.json_to_sheet( + (data.length === 0 ? [{}] : data).map((item) => { + const obj: any = {} + columns.forEach((t) => { + obj[t.name] = item[t.prop] + }) + return obj + }) + ) + xlsx.writeFile(wb, `${title}.xlsx`) + RES() + } catch (e: any) { + REJ(e) + throw e + } + }) +} + +/** + * 导入excel,返回excel数据 + * @param file 文件 + * @param columns 数据结构 + * @returns Promise + */ +export const importExcel = (file: File | undefined, columns: Column[]) => { + return new Promise((RES, REJ) => { + if (file === undefined || file === null) { + REJ(Error('文件不存在')) + return + } + const reader = new FileReader() + reader.readAsBinaryString(file) + reader.onload = (ev: any) => { + const workBook = xlsx.read(ev.target.result, { type: 'binary', cellDates: true, raw: false }) + const workSheet = workBook.Sheets[workBook.SheetNames[0]] + const data: Array = xlsx.utils.sheet_to_json(workSheet) + const res = [] + for (let i = 0; i < data.length; i += 1) { + const obj: any = {} + columns.forEach((t) => { + obj[t.prop] = data[i][t.name] + }) + res.push(obj) + } + RES(res) + } + reader.onerror = (e) => { + REJ(e) + } + }) +} diff --git a/src/utils/image.ts b/src/utils/image.ts new file mode 100644 index 0000000..45e9207 --- /dev/null +++ b/src/utils/image.ts @@ -0,0 +1,16 @@ +// eslint-disable-next-line import/prefer-default-export +export function progressive(src: string) { + return new Promise((RES, REJ) => { + const img = new Image() + img.onload = () => { + RES(true) + } + img.onerror = () => { + REJ() + } + img.src = src + if (img.complete) { + RES(true) + } + }) +} diff --git a/src/utils/rsa.ts b/src/utils/rsa.ts new file mode 100644 index 0000000..1ad4afe --- /dev/null +++ b/src/utils/rsa.ts @@ -0,0 +1,13 @@ +// @ts-ignore +import Encrypt from 'encryptlong' + +const publicKey = + 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCjj2wCi2yAWJOs8+N8XnzXoG7/4Bj973gIkpUC7/IYIPEXosrSLnrWBXWlk2s9puIjQjmQtgnzoMLwf4seW9o6nTSHr+p+6KNn4t701X0JToLjCjr+cGpGDJ+f2PN1HwU4G9xYfMyiZnGUNXgXhJZ58tWfaXBGxxSmr8Ag6bJPwQIDAQAB' + +const encryptor = new Encrypt() +encryptor.setPublicKey(publicKey) +// eslint-disable-next-line import/prefer-default-export +export function encrypt(val: string) { + const result = encryptor.encryptLong(val) + return result +} diff --git a/src/utils/storage.ts b/src/utils/storage.ts new file mode 100644 index 0000000..899697c --- /dev/null +++ b/src/utils/storage.ts @@ -0,0 +1,59 @@ +const keyName = 'fx-boot-ui-' +/** + * 存储localStorage + */ +export const setStore = (key: string, value: any, isSession = false) => { + const cacheName = keyName + key + const obj = { + dataType: typeof value, + content: value, + isSession, + datetime: new Date().getTime() + } + if (isSession) { + window.sessionStorage.setItem(cacheName, JSON.stringify(obj)) + } else { + window.localStorage.setItem(cacheName, JSON.stringify(obj)) + } +} +/** + * 获取localStorage + */ + +export const getStore = (key: string, isSession = false) => { + const cacheName = keyName + key + let obj + let content + if (isSession) { + obj = window.sessionStorage.getItem(cacheName) + } else { + obj = window.localStorage.getItem(cacheName) + } + if (!obj) return null + try { + obj = JSON.parse(obj) + } catch (e) { + return obj + } + if (obj.dataType === 'string') { + content = obj.content + } else if (obj.dataType === 'number') { + content = Number(obj.content) + } else if (obj.dataType === 'boolean') { + content = JSON.parse(obj.content) + } else if (obj.dataType === 'object') { + content = obj.content + } + return content +} +/** + * 删除localStorage + */ +export const removeStore = (key: string, isSession = false) => { + const cacheName = keyName + key + if (isSession) { + window.sessionStorage.removeItem(cacheName) + } else { + window.localStorage.removeItem(cacheName) + } +} diff --git a/src/utils/upload-event.ts b/src/utils/upload-event.ts new file mode 100644 index 0000000..a7d85cc --- /dev/null +++ b/src/utils/upload-event.ts @@ -0,0 +1,43 @@ +import { isString } from 'lodash' +import axios from './axios' +/** + * 允许上传文件时,中途删除文件 + * @param file file + * @returns + */ +/* eslint-disable no-param-reassign */ +export const onBeforeRemove = (file: any) => { + return new Promise((RES) => { + file.status = 'uploading' + file.percent = 0.0 + const timer = setInterval(() => { + file.percent += 0.1 + if (file.percent >= 0.9) { + clearInterval(timer) + } + }, 40) + let filename + if (file.response && file.response.filename) { + filename = file.response.filename + } + if (isString(filename)) { + axios + .post(`/sys/file/del/${filename}`) + .then(() => { + file.percent = 1 + setTimeout(() => { + clearInterval(timer) + RES(true) + }, 100) + }) + .catch(() => { + file.status = 'done' + file.percent = 0.0 + clearInterval(timer) + RES(false) + }) + return + } + RES(true) + }) +} diff --git a/src/utils/validate.ts b/src/utils/validate.ts new file mode 100644 index 0000000..6adde60 --- /dev/null +++ b/src/utils/validate.ts @@ -0,0 +1,69 @@ +/** + * 手机号码 + * @param {*} s + */ +export function isMobile(s: string) { + return /^1[0-9]{10}$/.test(s) +} + +/* 合法uri */ +export function validateURL(textVal: string) { + const urlRegex = + /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/ + return urlRegex.test(textVal) +} + +/* 小写字母 */ +export function validateLowerCase(str: string) { + const reg = /^[a-z]+$/ + return reg.test(str) +} + +/* 数字 */ +export function validateNumber(str: string) { + const reg = /^[0-9]+$/ + return reg.test(str) +} + +/* 数字和小写字母 */ +export function validateNumberAndLowerCase(str: string) { + const reg = /^[a-z0-9]+$/ + return reg.test(str) +} + +/* 大写字母 */ +export function validateUpperCase(str: string) { + const reg = /^[A-Z]+$/ + return reg.test(str) +} + +/* 大小写字母 */ +export function validateAlphabets(str: string) { + const reg = /^[A-Za-z]+$/ + return reg.test(str) +} + +/* 验证pad还是pc */ +export const validatePc = () => { + const userAgentInfo = navigator.userAgent + const Agents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPad', 'iPod'] + let flag = true + for (let v = 0; v < Agents.length; v += 1) { + if (userAgentInfo.indexOf(Agents[v]) > 0) { + flag = false + break + } + } + return flag +} + +/** + * validate email + * @param email + * @returns {boolean} + */ +export const validateEmail = (email: string): boolean => { + const re = + /^(([^<>()\\[\]\\.,;:\s@"]+(\.[^<>()\\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ + return re.test(email) +} diff --git a/src/views/recruit/resume/index.vue b/src/views/recruit/resume/index.vue new file mode 100644 index 0000000..ebeb871 --- /dev/null +++ b/src/views/recruit/resume/index.vue @@ -0,0 +1,6 @@ + + diff --git a/src/views/recruit/resume/option.ts b/src/views/recruit/resume/option.ts new file mode 100644 index 0000000..a17f2c7 --- /dev/null +++ b/src/views/recruit/resume/option.ts @@ -0,0 +1,51 @@ +import { useUserStore } from '@/store/user' +import { TableOption } from '@/types' +import { onBeforeRemove } from '@/utils/upload-event' + +const userStore = useUserStore() +const option: TableOption = { + api: { + base: '/recruit/resume', + page: '/page/res' + }, + permissionPrefix: 'recruit_resume_', + permissions: userStore.permissions, + columns: [ + { + name: '姓名', + prop: 'fullName', + rules: [ + { required: true, message: '姓名不能为空' }, + { minLength: 2, message: '姓名不少于2个字符' }, + { maxLength: 20, message: '不能超过20个字符' } + ] + }, + { + name: '附件', + prop: 'files', + type: 'upload', + action: '/sys/file/upload', + onBeforeRemove, + stringify: true + }, + { + name: '简历来源', + prop: 'resumeSource', + type: 'select', + dicUrl: '/sys/dict/resume_source' + }, + { + name: '创建人', + prop: 'createName', + addDisplay: false, + editDisplay: false + }, + { + name: '创建人手机号', + prop: 'createPhone', + addDisplay: false, + editDisplay: false + } + ] +} +export default option diff --git a/src/views/upms/dept/index.vue b/src/views/upms/dept/index.vue new file mode 100644 index 0000000..6bdb113 --- /dev/null +++ b/src/views/upms/dept/index.vue @@ -0,0 +1,11 @@ + + diff --git a/src/views/upms/dept/option.ts b/src/views/upms/dept/option.ts new file mode 100644 index 0000000..0af26c4 --- /dev/null +++ b/src/views/upms/dept/option.ts @@ -0,0 +1,115 @@ +/* eslint-disable prefer-destructuring */ +/* eslint-disable no-param-reassign */ +import { IconUserGroup } from '@arco-design/web-vue/es/icon' +import { useUserStore } from '@/store/user' +import axios from '@/utils/axios' +import { ListFormOption } from '@/types' +import FUserSelect from '@/components/f-user-select/index.vue' + +const userStore = useUserStore() +export default { + api: { + base: '/sys/dept', + edit: '/edit/new', + fetch: '/fetch/with/drag' + }, + isTree: true, + addBtn: { + onBefore: (form: any): any => { + return { + parentId: form ? form.id : '0' + } + } + }, + editBtn: { + display: (form: any) => form.id !== '0' + }, + delBtn: { + display: (form: any) => form.id !== '0' + }, + permissionPrefix: 'sys_dept_', + permissions: userStore.permissions, + tabsProps: { + autoSwitchToBase: false, + columns: [ + { + title: '成员管理', + slotName: 'deptUserManager', + permission: 'sys_dept_user_manager' + } + ] + }, + treeProps: { + draggable: true, + onDrop: (e: any) => + axios.post('/sys/dept/drag', { + dragId: e.dragNode.id, + dropId: e.dropNode.id, + dropPosition: e.dropPosition + }), + iconRender: (node: any) => { + if (node.id === '0') { + return h('div', { class: 'iconfont icon-enterprise dept-tree-icon' }) + } + return h(IconUserGroup) + } + }, + columns: [ + { + name: '父级部门', + prop: 'parentId', + type: 'tree', + viewDisplay: false, + dicData: () => axios.post('/sys/dept/fetch/all'), + props: { + key: 'id', + title: 'name', + icon: 'iconRender' + }, + rules: [{ required: true, message: '请选择父级部门' }] + }, + { + name: '部门名称', + prop: 'name', + rules: [ + { required: true, message: '名称不能为空' }, + { minLength: 2, message: '名称不少于2个字符' }, + { maxLength: 50, message: '不能超过50个字符' } + ] + }, + { + name: '主负责人', + prop: 'primaryChargeUserId', + type: (form: any) => + h(FUserSelect, { + selectIds: form.primaryChargeUserId ? [form.primaryChargeUserId] : [], + limit: 1, + onChange: (val: string[]) => { + form.primaryChargeUserId = val[0] + const idx = form.secondaryChargeUserIds.findIndex((item: string) => item === val[0]) + if (idx >= 0) { + form.secondaryChargeUserIds.splice(idx, 1) + } + } + }), + formatValue: (record: any) => record.primaryChargeUserName + }, + { + name: '副负责人', + prop: 'secondaryChargeUserIds', + value: [], + type: (form: any) => + h(FUserSelect, { + selectIds: form.secondaryChargeUserIds, + limit: 10, + onChange: (val: string[]) => { + form.secondaryChargeUserIds = val + if (val.findIndex((item) => item === form.primaryChargeUserId) >= 0) { + form.primaryChargeUserId = undefined + } + } + }), + formatValue: (record: any) => h('span', record.secondaryChargeUserNames) + } + ] +} as ListFormOption diff --git a/src/views/upms/dept/user-option.ts b/src/views/upms/dept/user-option.ts new file mode 100644 index 0000000..b8ee534 --- /dev/null +++ b/src/views/upms/dept/user-option.ts @@ -0,0 +1,29 @@ +import { TableOption } from '@/types' + +const option: TableOption = { + api: { + base: '/sys/user', + page: '/page/res' + }, + addBtn: false, + editBtn: false, + delBtn: false, + viewBtn: false, + columns: [ + { + name: '姓名', + prop: 'fullName' + }, + { + name: '手机号', + prop: 'phone' + }, + { + name: '部门', + prop: 'deptNames', + addDisplay: false, + editDisplay: false + } + ] +} +export default option diff --git a/src/views/upms/dept/user-table.vue b/src/views/upms/dept/user-table.vue new file mode 100644 index 0000000..2f928fc --- /dev/null +++ b/src/views/upms/dept/user-table.vue @@ -0,0 +1,98 @@ + + + + + diff --git a/src/views/upms/dict/dict-item-option.ts b/src/views/upms/dict/dict-item-option.ts new file mode 100644 index 0000000..d81f642 --- /dev/null +++ b/src/views/upms/dict/dict-item-option.ts @@ -0,0 +1,81 @@ +import { ComputedRef } from 'vue' +import { TableOption } from '@/types' +import { useUserStore } from '@/store/user' +import { SysDict } from '@/entity/upms' + +export default (dict: ComputedRef) => { + const userStore = useUserStore() + + const isSys = computed(() => userStore.user.claims.platformType === 'sys') + + const hasEditable = (record: any) => { + if (isSys.value) { + return true + } + return record && record.editable + } + + const option: TableOption = { + api: { + base: '/sys/dict/item' + }, + permissionPrefix: 'sys_dict_', + permissions: userStore.permissions, + addBtn: { + onBefore: () => { + return { + dictId: dict.value.id, + editable: true + } + } + }, + delBtn: { + display: hasEditable + }, + columns: [ + { + name: '字典标签', + prop: 'label', + disabled: (record: any) => !hasEditable(record), + rules: [ + { required: true, message: '名称不能为空' }, + { maxLength: 50, message: '不能超过50个字符' } + ] + }, + { + name: '字典值', + prop: 'value', + disabled: (record: any) => !hasEditable(record), + rules: [ + { required: true, message: '名称不能为空' }, + { maxLength: 50, message: '不能超过50个字符' } + ] + }, + { + name: '描述', + prop: 'description', + disabled: (record: any) => !hasEditable(record) + }, + { + name: '是否禁用', + prop: 'disabled', + value: false, + type: 'switch' + }, + { + name: '是否可编辑', + prop: 'editable', + type: 'switch', + value: true, + addDisplay: () => isSys.value, + editDisplay: () => isSys.value + }, + { + name: '排序值', + prop: 'sort', + type: 'number' + } + ] + } + return option +} diff --git a/src/views/upms/dict/dict-item-table.vue b/src/views/upms/dict/dict-item-table.vue new file mode 100644 index 0000000..f52c480 --- /dev/null +++ b/src/views/upms/dict/dict-item-table.vue @@ -0,0 +1,24 @@ + + + + + diff --git a/src/views/upms/dict/index.vue b/src/views/upms/dict/index.vue new file mode 100644 index 0000000..19ec478 --- /dev/null +++ b/src/views/upms/dict/index.vue @@ -0,0 +1,14 @@ + + + diff --git a/src/views/upms/dict/use-option.ts b/src/views/upms/dict/use-option.ts new file mode 100644 index 0000000..f26c69e --- /dev/null +++ b/src/views/upms/dict/use-option.ts @@ -0,0 +1,71 @@ +import { useUserStore } from '@/store/user' +import { ListFormOption } from '@/types' +import { DictTypeDic } from '@/enums/upms/dict-type' + +export default () => { + const userStore = useUserStore() + const option = computed(() => { + return { + api: '/sys/dict', + permissionPrefix: 'sys_dict_', + permissions: userStore.permissions, + tabsProps: { + columns: [ + { + title: '字典项', + slotName: 'dictItem', + permission: 'sys_dict_edit' + } + ] + }, + addBtn: { + display: userStore.user.claims.platformType === 'sys' + }, + editBtn: { + display: userStore.user.claims.platformType === 'sys' + }, + delBtn: { + display: userStore.user.claims.platformType === 'sys' + }, + columns: [ + { + name: '字典名称', + prop: 'name', + rules: [ + { required: true, message: '名称不能为空' }, + { maxLength: 50, message: '不能超过50个字符' } + ] + }, + { + name: '字典编码', + prop: 'dicCode', + rules: [ + { required: true, message: '名称不能为空' }, + { maxLength: 50, message: '不能超过50个字符' } + ] + }, + { + name: '描述', + prop: 'description', + type: 'textarea', + rules: [{ maxLength: 200, message: '不能超过200个字符' }] + }, + { + name: '类型', + prop: 'type', + type: 'radio', + tooltip: + '全局字典:仅平台端可配置,作用于所有租户,例如存放性别等\n默认字典:仅平台端可配置,租户创建时初始化会取值作为普通字典', + dicData: DictTypeDic, + value: userStore.user.claims.platformType === 'sys' ? undefined : 'normal', + addDisplay: userStore.user.claims.platformType === 'sys', + editDisplay: userStore.user.claims.platformType === 'sys', + rules: { required: true, message: '不能为空' } + } + ] + } + }) + return { + option + } +} diff --git a/src/views/upms/group/index.vue b/src/views/upms/group/index.vue new file mode 100644 index 0000000..b392b9f --- /dev/null +++ b/src/views/upms/group/index.vue @@ -0,0 +1,11 @@ + + diff --git a/src/views/upms/group/option.ts b/src/views/upms/group/option.ts new file mode 100644 index 0000000..4e85a30 --- /dev/null +++ b/src/views/upms/group/option.ts @@ -0,0 +1,78 @@ +/* eslint-disable prefer-destructuring */ +/* eslint-disable no-param-reassign */ +import { useUserStore } from '@/store/user' +import { ListFormOption } from '@/types' +import FUserSelect from '@/components/f-user-select/index.vue' + +const userStore = useUserStore() + +export default { + api: { + base: '/sys/group' + }, + permissionPrefix: 'sys_group_', + permissions: userStore.permissions, + tabsProps: { + autoSwitchToBase: false, + columns: [ + { + title: '成员管理', + slotName: 'userManager', + permission: 'sys_group_user_manager' + } + ] + }, + columns: [ + { + name: '名称', + prop: 'name', + rules: [ + { required: true, message: '名称不能为空' }, + { minLength: 2, message: '名称不少于2个字符' }, + { maxLength: 50, message: '不能超过50个字符' } + ] + }, + { + name: '主负责人', + prop: 'primaryChargeUserId', + type: (form: any) => + h(FUserSelect, { + selectIds: form.primaryChargeUserId ? [form.primaryChargeUserId] : [], + limit: 1, + onChange: (val: string[]) => { + form.primaryChargeUserId = val[0] + const idx = form.secondaryChargeUserIds.findIndex((item: string) => item === val[0]) + if (idx >= 0) { + form.secondaryChargeUserIds.splice(idx, 1) + } + } + }), + formatValue: (record: any) => record.primaryChargeUserName + }, + { + name: '副负责人', + prop: 'secondaryChargeUserIds', + value: [], + type: (form: any) => + h(FUserSelect, { + selectIds: form.secondaryChargeUserIds, + limit: 10, + onChange: (val: string[]) => { + form.secondaryChargeUserIds = val + if (val.findIndex((item) => item === form.primaryChargeUserId) >= 0) { + form.primaryChargeUserId = undefined + } + } + }), + formatValue: (record: any) => h('span', record.secondaryChargeUserNames) + }, + { + name: '排序值', + prop: 'sort', + type: 'number', + min: 0, + max: 9999999, + precision: 0 + } + ] +} as ListFormOption diff --git a/src/views/upms/group/user-option.ts b/src/views/upms/group/user-option.ts new file mode 100644 index 0000000..19f904d --- /dev/null +++ b/src/views/upms/group/user-option.ts @@ -0,0 +1,29 @@ +import { TableOption } from '@/types' + +const option: TableOption = { + api: { + base: '/sys/group', + page: '/user/page' + }, + addBtn: false, + editBtn: false, + delBtn: false, + viewBtn: false, + columns: [ + { + name: '姓名', + prop: 'fullName' + }, + { + name: '手机号', + prop: 'phone' + }, + { + name: '部门', + prop: 'groupNames', + addDisplay: false, + editDisplay: false + } + ] +} +export default option diff --git a/src/views/upms/group/user-table.vue b/src/views/upms/group/user-table.vue new file mode 100644 index 0000000..c00be7b --- /dev/null +++ b/src/views/upms/group/user-table.vue @@ -0,0 +1,98 @@ + + + + + diff --git a/src/views/upms/menu/index.vue b/src/views/upms/menu/index.vue new file mode 100644 index 0000000..a866a21 --- /dev/null +++ b/src/views/upms/menu/index.vue @@ -0,0 +1,76 @@ + + + diff --git a/src/views/upms/menu/use-option.ts b/src/views/upms/menu/use-option.ts new file mode 100644 index 0000000..8067cb6 --- /dev/null +++ b/src/views/upms/menu/use-option.ts @@ -0,0 +1,140 @@ +import { Tag } from '@arco-design/web-vue' +import { computed, h, Ref } from 'vue' +import menuTypeEnum from '@/enums/menu_type' +import { useUserStore } from '@/store/user' +import axios from '@/utils/axios' +import { ListFormOption } from '@/types' + +const onlyMenuDisplay = (row: any): boolean => row.menuType === 'menu' +const onlyBtnDisplay = (row: any): boolean => row.menuType === 'button' + +const userStore = useUserStore() + +export default (platformType: Ref) => { + const option = computed(() => { + return { + api: { + base: '/sys/menu' + }, + isTree: true, + addBtn: { + onBefore: (form: any): any => { + return { + parentId: form ? form.id : undefined, + platformType: platformType.value + } + } + }, + permissionPrefix: 'sys_menu_', + permissions: userStore.permissions, + columns: [ + { + name: '父级id', + prop: 'parentId', + type: 'tree', + viewDisplay: false, + allowClear: true, + dicData: () => axios.post('/sys/menu/fetch', { platformType: platformType.value }), + props: { + key: 'id', + title: 'name', + icon: 'iconRender' + } + }, + { + name: '名称', + prop: 'name', + rules: [ + { required: true, message: '名称不能为空' }, + { minLength: 2, message: '名称不少于2个字符' }, + { maxLength: 50, message: '不能超过50个字符' } + ], + formatValue: (record: any) => { + return h( + 'span', + {}, + { + default: () => { + if (record.type === '1') { + return [h(Tag, {}, { default: () => [h('span', record.name)] })] + } + const arr = [h('span', record.name)] + if (record.icon) { + arr.splice(0, 0, h('i', { class: record.icon, style: 'margin-right:4px;' })) + } + return arr + } + } + ) + } + }, + { + name: '类型', + prop: 'menuType', + type: 'radio', + value: 'menu', + dicData: menuTypeEnum, + rules: [{ required: true, message: '类型不能为空' }] + }, + { + name: '图标', + prop: 'icon', + display: onlyMenuDisplay + }, + { + name: '路径', + prop: 'path', + display: onlyMenuDisplay, + rules: [ + { required: true, message: '路径不能为空' }, + { maxLength: 50, message: '不能超过50个字符' } + ] + }, + { + name: '权限', + prop: 'permission', + display: onlyBtnDisplay, + rules: (record: any) => { + if (record.menuType === 'button') { + return [ + { required: true, message: '权限不能为空' }, + { maxLength: 50, message: '不能超过50个字符' } + ] + } + return undefined + } + }, + { + name: '是否缓存', + prop: 'isKeepAlive', + value: false, + type: 'switch', + display: onlyMenuDisplay, + rules: [{ required: true, message: '类型不能为空' }], + formatValue: (record: any) => { + if (record.type === '1') { + return h('span', '') + } + return h( + Tag, + { color: record.isKeepAlive ? 'orangered' : '' }, + { default: () => [h('span', record.isKeepAlive ? '是' : '否')] } + ) + } + }, + { + name: '排序', + prop: 'sort', + type: 'number', + value: 0, + min: 0, + width: 80, + max: 99999999 + } + ] + } + }) + return { + option + } +} diff --git a/src/views/upms/notify/channel/index.vue b/src/views/upms/notify/channel/index.vue new file mode 100644 index 0000000..572b02b --- /dev/null +++ b/src/views/upms/notify/channel/index.vue @@ -0,0 +1,44 @@ + + + diff --git a/src/views/upms/notify/channel/mail-option.ts b/src/views/upms/notify/channel/mail-option.ts new file mode 100644 index 0000000..a83db52 --- /dev/null +++ b/src/views/upms/notify/channel/mail-option.ts @@ -0,0 +1,47 @@ +import { FormOption } from '@/types' + +const option: FormOption = { + span: 24, + btn: false, + columns: [ + { + prop: 'host', + name: '邮箱服务器地址', + placeholder: '例如:smtp.qq.com', + rules: [{ required: true, message: '不能为空' }] + }, + { + prop: 'port', + name: '邮箱服务器端口', + type: 'number', + placeholder: '例如:25', + rules: [{ required: true, message: '不能为空' }] + }, + { + prop: 'ssl', + name: '是否开启ssl', + type: 'switch', + value: true, + rules: [{ required: true, message: '不能为空' }] + }, + { + prop: 'from', + name: '发件人邮箱', + placeholder: '例如:hcm@edpfm.cn', + rules: [{ required: true, message: '不能为空' }] + }, + { + prop: 'user', + name: '用户名', + placeholder: '一般为发件人邮箱前缀或完整邮箱,如果使用foxmail邮箱,此处为qq号', + rules: [{ required: true, message: '不能为空' }] + }, + { + prop: 'pass', + name: '密码', + placeholder: '某些邮箱需要为SMTP服务单独设置授权码', + rules: [{ required: true, message: '不能为空' }] + } + ] +} +export default option diff --git a/src/views/upms/notify/channel/mail.vue b/src/views/upms/notify/channel/mail.vue new file mode 100644 index 0000000..882930f --- /dev/null +++ b/src/views/upms/notify/channel/mail.vue @@ -0,0 +1,96 @@ + + diff --git a/src/views/upms/notify/channel/use-config.ts b/src/views/upms/notify/channel/use-config.ts new file mode 100644 index 0000000..a202f85 --- /dev/null +++ b/src/views/upms/notify/channel/use-config.ts @@ -0,0 +1,3 @@ +export default () => { + return {} +} diff --git a/src/views/upms/notify/channel/wechat-option.ts b/src/views/upms/notify/channel/wechat-option.ts new file mode 100644 index 0000000..d08c7d1 --- /dev/null +++ b/src/views/upms/notify/channel/wechat-option.ts @@ -0,0 +1,33 @@ +import { FormOption } from '@/types' + +const option: FormOption = { + span: 24, + btn: false, + columns: [ + { + prop: 'corpid', + name: '企业ID', + placeholder: '例如:ww62fgcee7058a481f', + tooltip: '查看位置:企业微信管理后台-我的企业-企业信息,最底部企业ID', + rules: [{ required: true, message: '不能为空' }] + }, + { + prop: 'agentId', + name: '企业应用AgentId', + type: 'number', + placeholder: '例如:1000000', + tooltip: + '查看位置:企业微信管理后台-应用管理-应用-自建,首次使用请自行创建一个应用,名称自拟', + rules: [{ required: true, message: '不能为空' }] + }, + { + prop: 'corpsecret', + name: '企业应用Secret', + placeholder: '例如:1bf7wBAgoRV08wxetdCdye84720yBf9rR9XFk-oNRI4', + tooltip: + '查看位置:企业微信管理后台-应用管理-应用-自建,首次使用请自行创建一个应用,名称自拟', + rules: [{ required: true, message: '不能为空' }] + } + ] +} +export default option diff --git a/src/views/upms/notify/channel/wechat.vue b/src/views/upms/notify/channel/wechat.vue new file mode 100644 index 0000000..051d898 --- /dev/null +++ b/src/views/upms/notify/channel/wechat.vue @@ -0,0 +1,96 @@ + + diff --git a/src/views/upms/package/index.vue b/src/views/upms/package/index.vue new file mode 100644 index 0000000..8b378f6 --- /dev/null +++ b/src/views/upms/package/index.vue @@ -0,0 +1,12 @@ + + + diff --git a/src/views/upms/package/option.ts b/src/views/upms/package/option.ts new file mode 100644 index 0000000..96be608 --- /dev/null +++ b/src/views/upms/package/option.ts @@ -0,0 +1,40 @@ +import { useUserStore } from '@/store/user' +import { ListFormOption } from '@/types' + +const userStore = useUserStore() +const option: ListFormOption = { + api: { + base: '/sys/package' + }, + permissionPrefix: 'sys_package_', + permissions: userStore.permissions, + tabsProps: { + columns: [ + { + title: '权限管理', + slotName: 'permission', + permission: 'sys_package_permission' + } + ] + }, + columns: [ + { + name: '名称', + prop: 'name', + width: 200, + search: true, + placeholder: '请输入名称', + rules: [ + { required: true, message: '名称不能为空' }, + { maxLength: 50, message: '不能超过50个字符' } + ] + }, + { + name: '描述', + prop: 'description', + type: 'textarea', + rules: [{ maxLength: 200, message: '不能超过200个字符' }] + } + ] +} +export default option diff --git a/src/views/upms/package/permission.vue b/src/views/upms/package/permission.vue new file mode 100644 index 0000000..e93e497 --- /dev/null +++ b/src/views/upms/package/permission.vue @@ -0,0 +1,72 @@ + + diff --git a/src/views/upms/position/index.vue b/src/views/upms/position/index.vue new file mode 100644 index 0000000..c648c33 --- /dev/null +++ b/src/views/upms/position/index.vue @@ -0,0 +1,7 @@ + + + diff --git a/src/views/upms/position/option.ts b/src/views/upms/position/option.ts new file mode 100644 index 0000000..b62e6e7 --- /dev/null +++ b/src/views/upms/position/option.ts @@ -0,0 +1,39 @@ +import { useUserStore } from '@/store/user' +import { ListFormOption } from '@/types' + +const userStore = useUserStore() +const option: ListFormOption = { + api: '/sys/position', + permissionPrefix: 'sys_position_', + permissions: userStore.permissions, + viewBtn: { + display: false + }, + tabsProps: { + columns: [ + { + title: '权限管理', + slotName: 'permission', + permission: 'sys_position_permission' + } + ] + }, + columns: [ + { + name: '职位名称', + prop: 'name', + rules: [ + { required: true, message: '名称不能为空' }, + { minLength: 2, message: '名称不少于2个字符' }, + { maxLength: 20, message: '不能超过20个字符' } + ] + }, + { + name: '职位描述', + prop: 'description', + type: 'textarea', + rules: [{ maxLength: 200, message: '不能超过200个字符' }] + } + ] +} +export default option diff --git a/src/views/upms/role/index.vue b/src/views/upms/role/index.vue new file mode 100644 index 0000000..0c3da01 --- /dev/null +++ b/src/views/upms/role/index.vue @@ -0,0 +1,12 @@ + + + diff --git a/src/views/upms/role/option.ts b/src/views/upms/role/option.ts new file mode 100644 index 0000000..bd35f45 --- /dev/null +++ b/src/views/upms/role/option.ts @@ -0,0 +1,60 @@ +import { Tag } from '@arco-design/web-vue' +import { h } from 'vue' +import { useUserStore } from '@/store/user' +import { ListFormOption } from '@/types' + +const userStore = useUserStore() +const option: ListFormOption = { + api: '/sys/role', + permissionPrefix: 'sys_role_', + permissions: userStore.permissions, + viewBtn: { + display: false + }, + delBtn: { + display: (record: any) => !record.isSystem + }, + tabsProps: { + columns: [ + { + title: '权限管理', + slotName: 'permission', + permission: 'sys_role_permission' + } + ] + }, + columns: [ + { + name: '角色名', + prop: 'name', + rules: [ + { required: true, message: '名称不能为空' }, + { minLength: 2, message: '名称不少于2个字符' }, + { maxLength: 20, message: '不能超过20个字符' } + ] + }, + { + name: '角色描述', + prop: 'description', + type: 'textarea', + rules: [{ maxLength: 200, message: '不能超过200个字符' }] + }, + { + name: '系统内置', + prop: 'isSystem', + width: 150, + value: false, + type: 'switch', + addDisplay: false, + editDisplay: false, + formatValue: (record: any) => { + return h( + Tag, + { color: record.isSystem ? 'orangered' : '' }, + { default: () => [h('span', record.isSystem ? '是' : '否')] } + ) + } + } + ] +} +export default option diff --git a/src/views/upms/role/permission.vue b/src/views/upms/role/permission.vue new file mode 100644 index 0000000..ea8f186 --- /dev/null +++ b/src/views/upms/role/permission.vue @@ -0,0 +1,76 @@ + + diff --git a/src/views/upms/tenant/index.vue b/src/views/upms/tenant/index.vue new file mode 100644 index 0000000..ebeb871 --- /dev/null +++ b/src/views/upms/tenant/index.vue @@ -0,0 +1,6 @@ + + diff --git a/src/views/upms/tenant/option.ts b/src/views/upms/tenant/option.ts new file mode 100644 index 0000000..30e1e16 --- /dev/null +++ b/src/views/upms/tenant/option.ts @@ -0,0 +1,121 @@ +import { Tag } from '@arco-design/web-vue' +import { h } from 'vue' +import { passwordRule, passwordWithBlankRule } from '@/rules/user-rules' +import { phoneRule } from '@/rules/login-rules' +import { useUserStore } from '@/store/user' +import { TableOption } from '@/types' + +const userStore = useUserStore() +const option: TableOption = { + api: { + base: '/sys/tenant', + page: '/page/res', + add: '/add' + }, + permissionPrefix: 'sys_tenant_', + permissions: userStore.permissions, + viewBtn: { display: false }, + delBtn: { display: false }, + columns: [ + { + name: '租户名称', + prop: 'name', + editDisabled: true, + rules: [ + { required: true, message: '名称不能为空' }, + { minLength: 3, message: '名称不少于3个字符' }, + { maxLength: 50, message: '不能超过50个字符' } + ] + }, + { + name: 'Logo', + prop: 'logo', + type: 'upload', + listType: 'picture-card', + limit: 1, + // 上传图片专用接口, + // size=128表示宽高最大不能超过此值(会按比例缩放), + // scale=0.5表示缩小50%, + // quality=0.8表示, + // rotate=90表示旋转90度 + // base64=1表示返回的是base64 + action: '/sys/file/upload/image?size=80&quality=0.8', + urlOnly: true + }, + { + name: '超管姓名', + prop: 'fullName', + editDisabled: true, + rules: [ + { required: true, message: '不能为空' }, + { minLength: 2, message: '不少于2个字符' }, + { maxLength: 20, message: '不能超过20个字符' } + ] + }, + { + name: '超管手机号', + prop: 'phone', + editDisabled: true, + addRules: phoneRule + }, + { + name: '超管密码', + prop: 'password', + display: false, + addDisplay: true, + editDisplay: true, + editTooltip: '当密码不为空时,将会修改该租户超管密码', + rules: passwordRule, + editRules: passwordWithBlankRule + }, + { + name: '活跃用户数限制', + prop: 'activeUserNumberLimit', + type: 'number', + min: 0, + max: 100000000, + value: 0, + tooltip: '为0表示不限制租户活跃用户数', + rules: [{ required: true, message: '不能为空' }] + }, + { + name: '套餐', + prop: 'packageIds', + type: 'select', + placeholder: '请选择套餐', + dicUrl: '/sys/package/list', + allowClear: true, + allowSearch: true, + props: { + value: 'id', + label: 'name' + }, + multiple: true, + searchMultiple: false, + rules: [{ required: true, message: '套餐不能为空' }] + }, + { + name: '锁定', + prop: 'isLock', + width: 150, + value: false, + type: 'switch', + addDisplay: false, + editDisplay: true, + formatValue: (record: any) => { + return h( + Tag, + { color: record.isLock ? 'orangered' : '' }, + { default: () => [h('span', record.isLock ? '是' : '否')] } + ) + } + }, + { + name: '过期时间', + prop: 'expirationDate', + type: 'date', + tooltip: '为空表示默认为2999-12-31' + } + ] +} +export default option diff --git a/src/views/upms/user/index.vue b/src/views/upms/user/index.vue new file mode 100644 index 0000000..d0078f6 --- /dev/null +++ b/src/views/upms/user/index.vue @@ -0,0 +1,34 @@ + + diff --git a/src/views/upms/user/info/index.vue b/src/views/upms/user/info/index.vue new file mode 100644 index 0000000..cabca0b --- /dev/null +++ b/src/views/upms/user/info/index.vue @@ -0,0 +1,43 @@ + + + diff --git a/src/views/upms/user/info/info.vue b/src/views/upms/user/info/info.vue new file mode 100644 index 0000000..9403586 --- /dev/null +++ b/src/views/upms/user/info/info.vue @@ -0,0 +1,31 @@ + + diff --git a/src/views/upms/user/info/pwd.vue b/src/views/upms/user/info/pwd.vue new file mode 100644 index 0000000..9999c7c --- /dev/null +++ b/src/views/upms/user/info/pwd.vue @@ -0,0 +1,63 @@ + + diff --git a/src/views/upms/user/option.ts b/src/views/upms/user/option.ts new file mode 100644 index 0000000..68305b5 --- /dev/null +++ b/src/views/upms/user/option.ts @@ -0,0 +1,201 @@ +import { Tag } from '@arco-design/web-vue' +import { h } from 'vue' +import { passwordRule, passwordWithBlankRule } from '@/rules/user-rules' +import { phoneRule, emailRule } from '@/rules/login-rules' +import { useUserStore } from '@/store/user' +import { TableOption } from '@/types' +import axios from '@/utils/axios' +import { userActiveStatus } from '@/enums/active_status' +import { filterLabel } from '@/enums/util' +import FUserSelect from '@/components/f-user-select/index.vue' + +const userStore = useUserStore() +const option: TableOption = { + // new + api: { + base: '/sys/user', + page: '/page/res', + add: '/add', + edit: '/edit', + del: '/del' + }, + permissionPrefix: 'sys_user_', + permissions: userStore.permissions, + // old + searchOption: { + columns: [ + { + name: '姓名', + prop: 'fullName' + }, + { + name: '手机号', + prop: 'phone' + }, + { + name: '账号状态', + prop: 'status', + type: 'select', + dicData: userActiveStatus, + allowClear: true + } + ] + }, + columns: [ + { + name: '头像', + prop: 'avatarUrl', + type: 'upload', + listType: 'picture-card', + limit: 1, + // 上传图片专用接口, + // size=128表示宽高最大不能超过此值(会按比例缩放), + // scale=0.5表示缩小50%, + // quality=0.8表示, + // rotate=90表示旋转90度 + // base64=1表示返回的是base64 + action: '/sys/file/upload/image?size=80&quality=0.8', + urlOnly: true + }, + { + name: '姓名', + prop: 'fullName', + rules: [ + { required: true, message: '姓名不能为空' }, + { minLength: 2, message: '姓名不少于2个字符' }, + { maxLength: 20, message: '不能超过20个字符' } + ] + }, + { + name: '手机号', + prop: 'phone', + rules: phoneRule + }, + { + name: '邮箱', + prop: 'email', + rules: emailRule + }, + { + name: '密码', + prop: 'password', + display: false, + addDisplay: true, + editDisplay: true, + rules: passwordRule, + editRules: passwordWithBlankRule + }, + { + name: '部门', + prop: 'deptNames', + addDisplay: false, + editDisplay: false + }, + { + name: '部门', + prop: 'deptIds', + type: 'tree', + display: false, + addDisplay: true, + editDisplay: true, + dicData: () => axios.post('/sys/dept/fetch/all'), + multiple: true, + props: { + key: 'id', + title: 'name', + icon: 'iconRender' + }, + placeholder: '选择用户所属部门(多选)', + rules: [{ required: true, message: '请选择所属部门' }] + }, + { + name: '直属负责人', + prop: 'leaderId', + display: false, + addDisplay: true, + editDisplay: true, + type: (record: any) => { + return h(FUserSelect, { + limit: 1, + selectIds: record.leaderId ? [record.leaderId] : [], + ignoreIds: [record.id], + onChange: (val: string[]) => { + // eslint-disable-next-line no-param-reassign + record.leaderId = val.length > 0 ? val[0] : null + } + }) + } + }, + { + name: '角色', + prop: 'roleIds', + type: 'select', + dicUrl: '/sys/role/list', + multiple: true, + tooltip: (record: any) => (record.isSystem ? '管理员账号默认拥有所有权限,无法修改角色' : ''), + editDisabled: (record: any) => record.isSystem, + props: { + value: 'id', + label: 'name' + } + }, + { + name: '主要职位', + prop: 'positionPrimaryId', + type: 'select', + dicUrl: '/sys/position/list', + props: { + value: 'id', + label: 'name' + }, + allowClear: true + }, + { + name: '次要职位', + prop: 'positionSecondaryIds', + type: 'select', + dicUrl: '/sys/position/list', + multiple: true, + props: { + value: 'id', + label: 'name' + }, + allowClear: true + }, + { + name: '账号状态', + prop: 'status', + type: 'select', + value: 'normal', + tooltip: (record: any) => (record.isSystem ? '管理员账号无法修改账号状态' : ''), + dicData: userActiveStatus, + disabled: (record: any) => record.isSystem, + formatValue: (record: any) => { + const normal = record.status === 'normal' + return h( + Tag, + { color: normal ? 'green' : 'gray' }, + { default: () => [h('span', filterLabel(record.status, userActiveStatus))] } + ) + }, + rules: [{ required: true, message: '请选择账号状态' }] + } + // { + // name: '管理员', + // prop: 'isSystem', + // width: 150, + // value: false, + // type: 'switch', + // addDisplay: false, + // editDisplay: false, + // formatValue: (record: any) => { + // return h( + // Tag, + // { color: record.isSystem ? 'orangered' : '' }, + // { default: () => [h('span', record.isSystem ? '是' : '否')] } + // ) + // } + // } + ] +} +export default option diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..d050962 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,10 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: ['./index.html', './src/**/*.{vue,js,ts,jsx,tsx}'], + theme: { + extend: {} + }, + // 添加dark到html的class启动暗黑模式 + darkMode: ['class', '[arco-theme="dark"]'], + plugins: [] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..641b83d --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "forceConsistentCasingInFileNames": true, + "target": "esnext", + "useDefineForClassFields": true, + "module": "esnext", + "moduleResolution": "node", + "strict": true, + "jsx": "preserve", + "jsxFactory": "h", + "jsxFragmentFactory": "Fragment", + "sourceMap": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "lib": ["esnext", "dom"], + "baseUrl": "./", + "paths": { + "@/*": ["./src/*"] + }, + "skipLibCheck": true, + "typeRoots": ["./node_modules/@types"] + }, + "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue", "auto-imports.d.ts", "components.d.ts"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..c586df3 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,115 @@ +import { ConfigEnv, defineConfig, loadEnv, UserConfigExport } from 'vite' +import vue from '@vitejs/plugin-vue' +import vueJsx from '@vitejs/plugin-vue-jsx' +import { resolve } from 'path' +import viteCompression from 'vite-plugin-compression' +import { ArcoResolver } from 'unplugin-vue-components/resolvers' +import Components from 'unplugin-vue-components/vite' +import AutoImport from 'unplugin-auto-import/vite' + +const autoImport = AutoImport({ + imports: ['vue', 'vue-router', '@vueuse/core'], + resolvers: [ArcoResolver()], + eslintrc: { + enabled: true + } +}) +// Ensure .d.ts file is created when running `vite optimize` +autoImport.buildStart() + +// https://vitejs.dev/config/ +export default async (config: ConfigEnv): Promise => { + return defineConfig({ + plugins: [ + vue(), + vueJsx(), + viteCompression(), + autoImport, + Components({ + resolvers: [ + ArcoResolver({ + sideEffect: false + }), + { + type: 'component', + resolve: (name: string) => { + if (name === 'IconPark') { + return { + name, + from: '@icon-park/vue-next/es/all' + } + } + return undefined + } + } + ], + dirs: ['src/components'], + extensions: ['vue'] + }) + ], + css: { + preprocessorOptions: { + scss: { charset: false } + // less: { + // modifyVars: { + // 'arcoblue-1': '#E8FAFF', + // 'arcoblue-2': '#B0E0F2', + // 'arcoblue-3': '#7DC5E4', + // 'arcoblue-4': '#4EA9D7', + // 'arcoblue-5': '#258DC9', + // 'arcoblue-6': '#0071bc', + // 'arcoblue-7': '#005BA0', + // 'arcoblue-8': '#004784', + // 'arcoblue-9': '#003468', + // 'arcoblue-10': '#00244D' + // }, + // javascriptEnabled: true + // } + } + }, + resolve: { + alias: { + '@': resolve(__dirname, 'src') // 设置 `@` 指向 `src` 目录 + } + }, + build: { + manifest: true, + cssCodeSplit: true, // 如果设置为false,整个项目中的所有 CSS 将被提取到一个 CSS 文件中 + sourcemap: false, // 构建后是否生成 source map 文件。如果为 true,将会创建一个独立的 source map 文件 + target: 'modules', // 设置最终构建的浏览器兼容目标。默认值是一个 Vite 特有的值——'modules' 还可设置为 'es2015' 'es2016'等 + chunkSizeWarningLimit: 550, // 单位kb 打包后文件大小警告的限制 (文件大于此此值会出现警告) + assetsInlineLimit: 4096, // 单位字节(1024等于1kb) 小于此阈值的导入或引用资源将内联为 base64 编码,以避免额外的 http 请求。设置为 0 可以完全禁用此项。 + minify: 'terser', // 'terser' 相对较慢,但大多数情况下构建后的文件体积更小。'esbuild' 最小化混淆更快但构建后的文件相对更大。 + terserOptions: { + compress: { + // eslint-disable-next-line camelcase + drop_console: true, // 生产环境去除console + // eslint-disable-next-line camelcase + drop_debugger: true // 生产环境去除debugger + } + } + }, + server: { + host: '0.0.0.0', + port: 4000, // 设置服务启动端口号 + open: true, // 设置服务启动时是否自动打开浏览器 + cors: true, // 允许跨域 + // 设置代理,根据我们项目实际情况配置 + proxy: { + // 项目根目录新建 .env.development 文件,填入 VITE_BASE_URL=http://xxx + '/webapi': { + target: loadEnv(config.mode, process.cwd()).VITE_HTTP_BASE_URL || 'http://127.0.0.1:8020', + changeOrigin: true, + secure: false, + rewrite: (path) => path.replace('/webapi/', '/') + }, + '/sys/file': { + target: loadEnv(config.mode, process.cwd()).VITE_HTTP_BASE_URL || 'http://127.0.0.1:8020', + changeOrigin: true, + secure: false, + rewrite: (path) => path + } + } + } + }) +}